{"report_id":"f0d92466-a287-477f-98fe-5e9ee8e944b7","version":0,"status":"done","tags":[],"date":"2026-07-27T06:14:35Z","url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":0,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"final":{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"title":"farosson Global Trade","dom":{"size":41914,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (26399)","md5":"f9c80be5efe2f2e7908cbc6464a4baa1","sha1":"7c0e9f1f6a741316015e209aaccd4280bb8140e6","sha256":"3432aeb269181b7717693d00dee9e8cb7c65d8ca5f55cd8f256814ef3c1dfcc8","sha512":"21d456fda273365aef1226c05d8ece08a4ef27ce93be2cef19159c86b92fcf060e436cc20acfb22e4e9b1c3830c864d76efec26873cd4ef89d1a3e7202ec1a98","ssdeep":"768:0yJi2qbCmmWq38FTbfsTO+hDGq3t8UtN2v3k/SR+D/5km58:FJzqbCmmWq38FTbfsTO+hDZ3t8UtAk/C","tlshash":"a513a7276784452c9c53d278f399b54ea32af688ef6259eef7c23410c2d93ff088a455","dom_hash":"domhash5a2e7b986a359100c1311ce7180015d1","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":0,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T06:14:35Z","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":1}},"detection":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null},"summary":[{"fqdn":"translate.google.com","ip":{"addr":"142.250.178.78","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":609,"first_seen":"2012-05-30T01:30:32Z","last_seen":"2026-07-20T21:58:05.03314Z","alert_count":0,"request_count":2,"received_data":77722,"sent_data":1102,"comment":"","tags":null,"fingerprints":null},{"fqdn":"bootstrap.smartsuppchat.com","ip":{"addr":"18.185.198.9","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":1579,"sent_data":547,"comment":"","tags":null,"fingerprints":null},{"fqdn":"websocket-visitors.smartsupp.com","ip":{"addr":"18.195.200.162","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":637,"comment":"","tags":null,"fingerprints":null},{"fqdn":"fonts.gstatic.com","ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":0,"first_seen":"2014-04-02T10:51:04Z","last_seen":"2026-07-26T22:19:52.505461Z","alert_count":0,"request_count":1,"received_data":7063,"sent_data":577,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.google.com","ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":22,"first_seen":"2015-05-10T13:11:19Z","last_seen":"2026-07-26T22:51:17.688286Z","alert_count":0,"request_count":1,"received_data":717,"sent_data":554,"comment":"","tags":null,"fingerprints":null},{"fqdn":"ajax.googleapis.com","ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":3691,"first_seen":"2012-05-22T10:38:03Z","last_seen":"2026-07-20T08:29:09.21945Z","alert_count":0,"request_count":1,"received_data":73158,"sent_data":493,"comment":"","tags":null,"fingerprints":null},{"fqdn":"translate-pa.googleapis.com","ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":8472,"first_seen":"2021-11-04T06:37:42Z","last_seen":"2026-07-21T21:38:43.172366Z","alert_count":0,"request_count":1,"received_data":32351,"sent_data":578,"comment":"","tags":null,"fingerprints":null},{"fqdn":"widget-v3.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":532262,"first_seen":"2022-10-03T13:48:45Z","last_seen":"2026-07-24T15:28:31.507831Z","alert_count":0,"request_count":4,"received_data":329031,"sent_data":1905,"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":"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":7731,"sent_data":529,"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":"static.getbutton.io","ip":{"addr":"104.26.14.221","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2019-09-03","domain_rank":386210,"first_seen":"2019-10-01T09:11:58Z","last_seen":"2026-07-25T14:48:54.018453Z","alert_count":0,"request_count":2,"received_data":443359,"sent_data":959,"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"]}]},{"fqdn":"c1.coinlore.com","ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2016-10-04","domain_rank":0,"first_seen":"2018-11-08T23:39:02Z","last_seen":"2026-07-27T04:22:15.596792Z","alert_count":0,"request_count":10,"received_data":15442,"sent_data":5580,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":"widget-v4.tidiochat.com","ip":{"addr":"104.26.8.139","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2014-06-01","domain_rank":2781269,"first_seen":"2018-06-14T06:38:01Z","last_seen":"2026-07-26T06:19:18.251815Z","alert_count":0,"request_count":5,"received_data":944894,"sent_data":2562,"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"]}]},{"fqdn":"translate.googleapis.com","ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":6317,"first_seen":"2012-05-31T07:21:21Z","last_seen":"2026-07-20T14:48:05.930258Z","alert_count":0,"request_count":5,"received_data":200674,"sent_data":2977,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.gstatic.com","ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":146047,"first_seen":"2012-05-29T15:36:17Z","last_seen":"2026-07-26T23:06:30.068608Z","alert_count":0,"request_count":5,"received_data":48622,"sent_data":3105,"comment":"","tags":null,"fingerprints":null},{"fqdn":"widget.coinlore.com","ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2016-10-04","domain_rank":0,"first_seen":"2019-07-14T04:53:06Z","last_seen":"2026-07-27T04:22:15.564436Z","alert_count":0,"request_count":1,"received_data":3725,"sent_data":500,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":"farosonglobaltrade.ltd","ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2026-07-27T04:22:14.844158Z","last_seen":"2026-07-27T04:22:14.844158Z","alert_count":49,"request_count":49,"received_data":8359455,"sent_data":27281,"comment":"","tags":null,"fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"jQuery","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":"Lightbox","description":"Lightbox is small javascript library used to overlay images on top of the current page.","website":"https://lokeshdhakar.com/projects/lightbox2/","common_platform_enumeration":"cpe:2.3:a:lightbox_photo_gallery_project:lightbox_photo_gallery:*:*:*:*:*:*:*:*","icon":"Lightbox.png","categories":["JavaScript libraries"]},{"name":"PHP:7.4.33","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]}]},{"fqdn":"www.smartsuppchat.com","ip":{"addr":"185.76.9.11","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":18547,"sent_data":469,"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"]}]}],"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":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"493083b5caae07d68038bcc84e36a8da","sha1":"04c8c92d80b493b0d8b6305531c80f34ebecd745","sha256":"1780c40671f9d65747096981e282997f7831871924e5857776194ee738daa94e","sha512":"9c7df171a767ad7015a9c69221f66c58d0729021474e0bb5161401ececb9fc6b066134150fd7e4f51e6ffa810078ac0b645290ae1b3a195c2a52dd02d441ae1c","ssdeep":"","tlshash":"55d08c0bb074014b0086f10593ce08887124400b01350e28364c508a3ff2f8c034eaa8","size":216,"data":"","first_seen":"2026-06-08T23:34:24.192254Z","last_seen":"2026-07-27T10:13:37.02414Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"61deb0de62db83f65914a0f41a5d0318","sha1":"f94502d6ec60c6bcc98bf4adb5364f40dbdb786b","sha256":"52b9289c224ba35e65e6ca18eff9c798aff6c1f67b9dce42d8ef0fe505c2a099","sha512":"cf70ebaec9798caf8d922a5b424567900ad8d51c7a6b7eb9017a754f71db9947705c7b05a5315d2e89ed384cbd46925b4c853427be024fa8753bd56dd3ecbb5c","ssdeep":"","tlshash":"b001c08d9d167636260b72b9313f900035f8805a8815e81cb94ed6e06fa1e946d4e9ee","size":781,"data":"","first_seen":"2026-07-27T04:22:23.352858Z","last_seen":"2026-07-27T06:14:42.703452Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"cf470184cc8b4bd55e69b098ff7b341c","sha1":"178247514c067c7f7a1732ef56f5ae1714d55619","sha256":"c92fd862841900588fd4f8ad51c59034a992d376f27db73ecbbff7d5e0d8764a","sha512":"424d59935bf474381bf333fb395dbbaddd1e4df2261cb537cede451546a9e4a55357f6a0b7eeeb9b389589e87ff00f9fceeab5f9335860d177eb27724e2c7fb6","ssdeep":"","tlshash":"c831af14bce13050102b713b8abb11002637b0077549e9247dbda9c56f7a1b8d6776bf","size":1460,"data":"","first_seen":"2026-06-09T03:48:49.321656Z","last_seen":"2026-07-27T06:14:42.705107Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"9c106390445b7922f94e1734b0a0ea2f","sha1":"8b36a7dbc0af092f44f19568010d88f615a3d721","sha256":"636dfafc4e41faba45f03e7304115b9488afa30306e7b0d223ef5c8eba20e185","sha512":"863b06590d4b9e8624a4b0e1474b598b5981e4cb295a73f5da9cb308b738e7ff106f89957c75cc3153b99d02e6b28904debc227f11b1b3cb8cfe1aa53fcdf790","ssdeep":"","tlshash":"1bf0494c55b92637bd263909afa7a361b832012b31420852e16d489dbeb5c8357cdea8","size":631,"data":"","first_seen":"2026-06-08T23:52:07.911748Z","last_seen":"2026-07-27T09:18:32.815162Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"46e432b1682934d864fbf2cbefcd725e","sha1":"cd57bc2e8e7bd341e54426241c2385830fddb0af","sha256":"d2ed10fe5dbc45805ccfeac097aaa0cb99faf1d72c76b3ba141f9cabca163a74","sha512":"74ebe303e9ce18242698d1a85da713027443cbb1666ea73d083790ca5fe7f58d80ab46e130fbcff28d16d2968433f000e7037105a06985805f0051d08e478a87","ssdeep":"","tlshash":"b6e0ab7d3c394254579200f882a7f138392630644044c807989688285cb0bc96d01588","size":416,"data":"","first_seen":"2026-07-27T04:22:23.356342Z","last_seen":"2026-07-27T06:14:42.707005Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/widgets/ticker-widget.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"659e5841c56694a76d4be27b71789c66","sha1":"e44e9d25cbe1527de3a5106c81f181c7570cde72","sha256":"a83104eb189c8f9ded97c9c6678c33964d72bd8a42597b403f6f97e92be2b0ea","sha512":"1e73df50adf8a1b4e9231a9f98706f34cc3470a0ba78ab43d0a4ddf37154fca95fbd2b08160d7cdbce1f81776e0b003edf7b14313bd3cc3b548b99a8e45f7fae","ssdeep":"","tlshash":"3751e99ada004817957711dc903fa31d1d519070ef06c742b61cd5fa3ea8d6e6425fcb","size":2509,"data":"","first_seen":"2025-08-12T04:19:48.075932Z","last_seen":"2026-07-27T06:14:42.693066Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/owl-carousel.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"2fd359627020c93d2e7706075fb56a21","sha1":"d0e3c38a1597eb9cf96f4a3ed7f8883ad82d23af","sha256":"44df0b9f6a08c638c2ce544989cc8fc30e90fd2bda8465280d0cf0f2d214173e","sha512":"a9f8782dd85862ab165ad36309b8f17b41f4cf4827afec5edd239819f7b7444da99993be167517dca1a114a890d9efc6a00b81a9055caed38cf622f7d5d5b6b6","ssdeep":"1536:Z5u1MHUCBjloTO6JyqaiYhKPQ4ZarMMEpEa9wleUBj/DvRM3V2:Z5GUjloTO6JyViPZpMEpFalrBj/DvRMw","tlshash":"de93a2d5f31e262f4ab63320557e6309fa3dc525d10227ad78e8a5cc29a5448836effc","size":93438,"data":"","first_seen":"2023-03-07T12:08:44Z","last_seen":"2026-07-27T06:14:42.672551Z","times_seen":404,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/video.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"1821b7c03d28f3e99b77fe9f024860e9","sha1":"0bb6582404bc99092dc3390f7329a847a3d74583","sha256":"6246bc09a05e832766cb4397f3df9337e2f3f74281ef6e4695ce2beba61ebd75","sha512":"725934be8f0841496c22b1bd3f48351571dca19b736af188e0101877cf1002c7fc6838a8933dc4e77f13167bfadd6157228379a53b26802363ff3840ed2e8a09","ssdeep":"384:0/PhVPXQ2G2XAQyqVxRQ5giCCMLtA15h5/F6l8aZwHwztLCpmsk:0/PBIt8I5h5t1qkOLCMsk","tlshash":"08920794f2b2b21383a735b8686f60093a729953e906c855b55d94d86ffcfc89027f3c","size":20835,"data":"","first_seen":"2023-03-11T09:15:54Z","last_seen":"2026-07-27T06:14:42.665295Z","times_seen":52,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-CgMCAfor.js","fqdn":"widget-v3.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"},"introduction_type":"scriptElement","is_inline":false,"md5":"06c5668b0e6d3383e096c45abdbedf9d","sha1":"8d64309e8ec50da59f799336c11685ca7fd15ecc","sha256":"2724b50edb69a23cc951a77f775727b960c857d18d58cfa9a47fe5c094d9b99a","sha512":"c4a86d25f4e86be36db19539b4e3efc70500a48b9664349043d76a1451f8536c8bed7fe22f8ca790fb3ac7e26fa7efbfc37e0c927687966dc08a02442e15f85c","ssdeep":"6144:mLjnOEIL18ad2jJKaQo+tRkYcuBaay+moJG:iOEIZRd29lqj4n+moY","tlshash":"53443ad53294b035439b51e6906f1106f33e5c58580d812cf269ede678baec8a2f7fb8","size":272133,"data":"","first_seen":"2026-07-07T11:50:17.748529Z","last_seen":"2026-07-27T07:27:47.884385Z","times_seen":1867,"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.11","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-07-27T09:46:41.752116Z","times_seen":6851,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/exm=el_conf/ed=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_main","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"cdf9309b56a4ff330627409baead2538","sha1":"e98eac16441e99c9512052eb0087f535b9a609b9","sha256":"310629c4e47d7960e5a89cbd6a9c1d24a4e4d7c5e18346a69a67d92355cf2cd4","sha512":"cafd13a201e26b9f94f9a636ca1f7c191ec3a9fc3f297d35ee51b1304962383e7147509932a759bd903e27e53fb251600ad6942739e472161f5a09367c3776c1","ssdeep":"3072:kjsNxt45eITHt28KRu9gKavNuBDHK0QppB0/I:osb0muBzg","tlshash":"dd14e8d9b26270679263f4a5403f004eb53b68a5f9484dacb28de8e26df4d19017bf7c","size":194344,"data":"","first_seen":"2026-07-22T18:30:16.180779Z","last_seen":"2026-07-27T09:46:57.073481Z","times_seen":1955,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/1_141_0/static/js/render.326fdf51a69c63448a75.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"c202a949462d9335b4c98df71dc082aa","sha1":"acd23d8201202d3093dac380106cb9378dc44c75","sha256":"007651dbf596dc66b447b1512e5956977e667d3c801e3032782df7d8867936c4","sha512":"8be56199fd746d13b9c02fd6057b0266fa33c1342a69fd4d3171bf3c292053bd80dedefe42abcc1756c2f2e497a7340d662105f5d6c7c3f202fe11dd221eb617","ssdeep":"192:ML1f6EF4ObB2QGcND08tsVXHkD1E2266Y4KHGTYu26H3hpbKICkyXHQsrK/pMpW6:s8ObjZyuIs1EiHuYiX/uI9yXHPlW8xj","tlshash":"eda25389b689b5a512e770b8017f630fb2b7e955749ac5c1c266e5e0ac7c84f402bf3c","size":22303,"data":"","first_seen":"2025-08-12T04:19:47.992614Z","last_seen":"2026-07-27T06:14:42.646061Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"static.getbutton.io/widget-send-button/js/init.js","fqdn":"static.getbutton.io","domain":"getbutton.io","tld":"io"},"ip":{"addr":"104.26.14.221","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"bc3e8108dcd36c0d0c129a726dd8f47f","sha1":"db6320723c55ad91550a1ca87176058bed49d99c","sha256":"791450932271b1682c103cadb334baea8bf68100069c3c3eb317ed8a20098483","sha512":"821203cb21570cee7a989e40a417990e408949e7d239766562cfee62c0a0320c936bfbc8fcb2ecb35067ba1034eb7363d907edb72ccd878ee510640aa7a976b3","ssdeep":"6144:HSFryQhY3HpsS+U6qAcXha0oPKiqLVwoNbsR5LoQGnE2:xQhY3JsS+U6qASoPKiq+oNbsRFoQGnE2","tlshash":"53946de93290f0a653b352b700af240bf379641a785d8860a215ecdcf8b94ed513bf6d","size":442041,"data":"","first_seen":"2026-02-13T07:56:32.581356Z","last_seen":"2026-07-27T09:54:10.90244Z","times_seen":2595,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/vendor/jquery/jquery.min.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"a46fb81762396b7bf2020774a2fb4d9e","sha1":"fb5edd7a663dc8dda7ec10815a7cd82a30fc98a7","sha256":"d30b6114fb9496ae46b2a8cdf59379c8ffdb957534bd1dd73e626c7c61c7e67d","sha512":"40759595b05808dd911075918bdcc32fb91362019bdfca24827043b8e54116e6ebe7362050ec72182b66481f1dc8d4ec4c8942c984fd597659313d71ad60dc33","ssdeep":"1536:aLiBdiaWLOczCmZx6+VWuGzQNOzdn6x2RZd9SEnk9HB96c9Yo/NWLbVj3kC6tv:+kn6x2xe9NK6nC6N","tlshash":"378319dd72c6b06247ab71ba00bf550bf2361999684d4410f129e4eabc74b4e823bf7d","size":86927,"data":"","first_seen":"2023-03-07T01:10:49Z","last_seen":"2026-07-27T09:26:58.684267Z","times_seen":61887,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/recents.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"f272664f9d36eaaf2432590ac65e416d","sha1":"41062d86c871afb383d2c61f964abb129b66d8df","sha256":"9c0bd489eba3798c88e1be81c3a7b1aee85a09ccd973eb7ccb580c7cdcedd6d8","sha512":"c6283d030342b50a6a0a90d7357e310b052cbda01dda01d6c54f6807be38ab2a9b55e7bc924171587479af65f8e47390e0e7a9e5e7f825e3192a029a86341edc","ssdeep":"1536:Pm77S0UVcj3FJGr3lt+JwM9fMy93SGP11mZkt6A8D0AVexB2z2:PmnOVcj/iVgwMNMC3S81mZkt6nD0ARz2","tlshash":"59346abccdb20da3065ea6f00a4a1556a09482b71df43d45bf6c1c6f2fdec9e64b122d","size":243863,"data":"","first_seen":"2023-05-10T07:24:39Z","last_seen":"2026-07-27T07:36:54.133411Z","times_seen":23,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js","fqdn":"ajax.googleapis.com","domain":"ajax.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"10092eee563dec2dca82b77d2cf5a1ae","sha1":"65cbff4e9d95d47a6f31d96ab4ea361c1f538a7b","sha256":"e23a2a4e2d7c2b41ebcdd8ffc0679df7140eb7f52e1eebabf827a88182643c59","sha512":"cc92cf5a9b3a62a18af432fdffb81b76da84e2f43ce3c7800a919c10809118d0611e29a47f103ff3df18a54d5331bc5f06ef4771dc406cc763b30ff2a66a3e81","ssdeep":"1536:Du98G2ltZMNWnDr7doqPp07HVDTLGbY9TGA7zEcbnkb17jQq3nPRefqvpsz:DuJItn6qepq15nUfqvpsz","tlshash":"5063e9c9b2c67273c3e730b824af510af136a8aaa44c4854f06ce8e5bd74a55447bf7d","size":72174,"data":"","first_seen":"2023-03-07T01:07:10Z","last_seen":"2026-07-27T06:14:42.634407Z","times_seen":9525,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-t6WxLABA.js","fqdn":"widget-v3.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"},"introduction_type":"scriptElement","is_inline":false,"md5":"9253d4d9d6ea32e484f0be9a0320a7a7","sha1":"762fb8fdf15626507c1c26a66aa7fe399d39e803","sha256":"1fb0b8e426f707feea50785bc24016fe14a76fb763d5eca3bc9b1d265bf77fa2","sha512":"5a1592fc87a402c636315def22f3c60dd7eeda34701b08005a192ae060acbe7ed8ae8aa709cc1664c3d9489c641e1ada60e79c66f13073ab61e6ba5bd86f524d","ssdeep":"384:9rgi5RFMkSjJOE/0BW2rkZZ795P6zrnBOVmPCRkXQbpaIF2K:9EizlSjJOEiWYoR5P6nnBOVmycQbpaId","tlshash":"0272d7742700783f711f489e16ade546b232c29dd693892d9b6fec0976c5cc0a8b37b9","size":16281,"data":"","first_seen":"2026-07-07T11:50:17.711459Z","last_seen":"2026-07-27T07:27:47.896741Z","times_seen":1890,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/isotope.min.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"7ab4d60be52d7de334704579c00b3ee2","sha1":"b41ace7678acdb14e81f61973f38c8efbc57f0dd","sha256":"baf74d39ec64d772b23387815e88d1dc861b0599b1a4509b2b6c3967dcfb284d","sha512":"2f8bbbde64d8a09b10814f2bc4d5c84f54a6c9476125d829a173971b558cdccaeef14ac2c020ec82b86003ecc3dfceb6c3ad0a395dd74f2dfe2f663c3f26a45c","ssdeep":"3072:T4Ud/Jiz6UANJ8pa98HrWlZBndD6LD6nrTT/9zg:Mq/kZe6pa98Hr4ZBnw","tlshash":"a8c3fac9b782742187a770b551bf010fb23aa8adb80888a8f165d8e57db4d8d5137f3d","size":119998,"data":"","first_seen":"2023-03-08T00:35:20Z","last_seen":"2026-07-27T06:14:42.688475Z","times_seen":90,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/slick-slider.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"af2f1cfdc149f699184f9f77b38e2f63","sha1":"044c2bd5abfe6d64a7ae1cb6b2498292ac731376","sha256":"3e9129d59856462df961a1f4a040db63b1903001cc49abea9c9719f267245c95","sha512":"dd36193cb22f3d5b9d8a558ac2c5bce77babaf8af0cf0b7c2935035e6f3fc8f2aecf6c58a18b8648862aed066b80918b0afa529a496f52d74f8ba716ec7377d1","ssdeep":"1536:NOBYDpH7DRTtwn7158/HVqg8d/ZMuY2cpQX6i7:NOBYDpbDRTtwn7158/HVqg8dxMuY+7","tlshash":"1983128f5552131688b333b9ae56c12cf7bb91374101969dbddc4289afb04148beafec","size":87155,"data":"","first_seen":"2023-03-07T01:41:57Z","last_seen":"2026-07-27T06:14:42.620598Z","times_seen":336,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/custom.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"a32bf9127d22c6894ec0935519e05581","sha1":"20c6185523e4e52513e1cebf05ffa259b3f18189","sha256":"e81154249e4270dae282f94ca9f798696b3fd6cef8c9867091f76415a0473146","sha512":"c1b161b7767e4fcd99d7e0e15e231b15e136cbbe9f92a54df29a55700039786875193938eb7fe3775f56a4fed166d9251b8ba8e1c1a0c5db21dfef4585653d50","ssdeep":"96:ymISIVsOYn14jJ+fQjPAyTHMIchkKE0GJ3ys1hYxbGTzKW81Mt6YOWWBCtsuwdYu:54vU8HW3wphYkdW6Hwyw0103bUlW","tlshash":"43126049734ea0a9b9b77331ca3f5914fb39c013d102e415bc6c96983f705a922e2edd","size":9099,"data":"","first_seen":"2023-04-07T17:11:08Z","last_seen":"2026-07-27T06:14:42.627437Z","times_seen":34,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_conf","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"8d8bad1f0a2d504dc2cc47dc171e8865","sha1":"b8b5a20cc8af07b08fcafeac43b75234cedc63c1","sha256":"2a04b76b2e0cf9daf17467f5b845caa7bedbf76188b5fd9801ae96bcf4390bae","sha512":"819c1719ea45fa29f4302230cffe1c3193316e168bb840696c2fd92a87790467f4cd5710cbcb33d2d169ad4365079f1c4538b4014e66cf4cfebd538cbdab786f","ssdeep":"1536:XWjLpxIZnZzYOwRUSfl26KKZkXtmqR6Y06ECirwNWF0:XDD4U6KKZgtBgtCix0","tlshash":"b473b88cb6a5b4658363f4b5412f000eb23b58adf8484cadb288d8e1adf5949453bf7d","size":75427,"data":"","first_seen":"2026-07-27T06:01:16.233111Z","last_seen":"2026-07-27T07:00:44.813879Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/lightbox.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"f58c229bd407f4063d935b0a02f40191","sha1":"f20c5e033ddfc242ba7242f8d1ea1be02550c876","sha256":"db65737293ff206cfe801ea95ef29665d677bc5b19c142837096b9ad9dee886e","sha512":"88ad9bc63df3fb71224006e91a6f72e8f28d2c6d56bc26705469ea1acbeeb7efa87a72da033d38ff137042f2b24c2dc7cd48585f1cd7bf3dfdddca5f68e269c1","ssdeep":"384:ifXqSM0xmVjDOMo5XbHlxd2FFj/i3193O5GyLSwQzkn0:+C3AUnNLK","tlshash":"38827415a7242226d97732a76f0f6659eb7f52276803d34478bc92d81ff102091b6fec","size":18929,"data":"","first_seen":"2023-03-07T01:41:57Z","last_seen":"2026-07-27T08:27:40.292351Z","times_seen":332,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v4.tidiochat.com/1_141_0/static/js/widget.326fdf51a69c63448a75.js","fqdn":"widget-v4.tidiochat.com","domain":"tidiochat.com","tld":"com"},"ip":{"addr":"104.26.8.139","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"de50f4ad485f297375fdba2a7c0fffca","sha1":"bc8bcba01de2c842321d1e09bfc400f75bffc327","sha256":"75a18ff6c9f361ac782380effe66dab49ccb0d5a1759b9900bff06d46c9ad740","sha512":"4fd1d6127bb81c22abf48d029539c3cbd54c5b0d69c9cac3541a3401e660c39dacf8c30aad5216d2e61ca511d8d99a50479e7abafa8ab49c063e5df8870195b0","ssdeep":"6144:arisCL/4boX0NFVzfDq2XsS2NtUQogpTbotl09Z+kbW3vqTpN3AY:arisTZFVzf1n5ORW2NQY","tlshash":"7ac409cc76d6f0a547f321b6406f140bf33a692a680d8550f211e9e57cb898ea237f6d","size":544500,"data":"","first_seen":"2025-08-12T04:19:48.094026Z","last_seen":"2026-07-27T06:14:42.628649Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"478efef2bea4d7f559c31b8d9f1f2b99","sha1":"a5743c642c5a3fba777a9435f7800b5228cdfc1f","sha256":"eed3927ca8da4320f85d9a732f19707314fecb9ad090c1895f48be79859c59ac","sha512":"1a4af5675dd3b7d79327582d92f2e559e63af06fec4b981b61759177f3f88cc759c6e0dbae62c0323326d6bf455c0a69e56bfe5be1e1e997c48e61d5178be2ac","ssdeep":"","tlshash":"ca80000aac0c888a0aa833082332ba0828b220002ac0b2e820b3032032003cb2820880","size":29,"data":"","first_seen":"2026-07-27T06:14:42.708534Z","last_seen":"2026-07-27T06:14:42.708534Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/tabs.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"656f554e6ade3508dba8e3dc00638e59","sha1":"1f82aafd53d5a63096ab97bccf19a2ef85f5361b","sha256":"d112fb312cf5c654ec6b1b2e2a4b716c73588053128290d406ad02c36cb0dbd6","sha512":"e3b05ba94adc324ef75449663314be1d2a819f49041932fd584437e604ae194115072df5f1320553b54ccaf953511d18c3f43b9e6cd70201c0fd3562bd09fcbf","ssdeep":"6144:gAA+ruQfLwxjnDnn5ZOlhgpdgkCb8wsucT0uuEiuGdTieCt5t5Ql8KystWLyRimW:HbpsucT0O5t568KcIrJXA828cpV","tlshash":"7ea4b8d5734f266f8aea3359583a9189ea3dc0b5d202407d789d58dc24a8c1843bbffd","size":485937,"data":"","first_seen":"2023-03-07T18:52:09Z","last_seen":"2026-07-27T06:14:42.664422Z","times_seen":230,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"Function","is_inline":false,"md5":"29d0c84b9d1d8da446a6062c6a840ad9","sha1":"6d6b3a6065667c7c50d92f3889c85ed65a9ad784","sha256":"3c3cbdb71d0d2c22f504f4d63d8a6ffe8d250cde7e58300619be35b6bbab26a1","sha512":"52cfcbf2f7c3521c5a6c6120099ee6822d16e04ffbc04720da925a11242c8c2050f9cfc8d864a6d39a0036ac599f701080195a29a7c5e8d3e9308b91f9f0390f","ssdeep":"","tlshash":"428004d533c350004753117c04571cc4d034447014444d405040d4531c570315115c7c","size":37,"data":"","first_seen":"2023-04-11T21:31:25Z","last_seen":"2026-07-27T09:47:46.253163Z","times_seen":734110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/2/2.2.1/iconify.min.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"5d01ed9b7f0860991221e6fc60327961","sha1":"c45a9f68f835d8f80a7ccbd00ac45ae8bed737fa","sha256":"3bdb8c77e05fc0fe1c4921f7756422d44660c75995e2eae57672e72a8cbabaea","sha512":"b14e46cdcd74f1df044405c4528361dc3650dc6642432ca05647ae848c4547e0fd1a8f242f0dc27b71d50ff008e5c9e11b35bb2a6f55e2838e89ea4a703d2f96","ssdeep":"384:6wjt2SSjDHl8MZStId++UgYnkVWl+GTxS75ykvUoR91iGAU55KDcS+o:FjGDH7d7YkIl+B9ykvvR6GXK1","tlshash":"2cd2daecb29db06546a3187240bf040bf23be621685ec440d217f4e1acbd76e6977e6d","size":28397,"data":"","first_seen":"2023-03-08T07:43:28Z","last_seen":"2026-07-27T06:14:42.685407Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"log","text":"\u003e longCodeInit","filename":"https://static.getbutton.io/widget-send-button/js/init.js","line_number":2,"column_number":439085},{"level":"log","text":"\u003e try","filename":"https://static.getbutton.io/widget-send-button/js/init.js","line_number":2,"column_number":439267},{"level":"log","text":"config loading..10","filename":"https://static.getbutton.io/widget-send-button/js/init.js","line_number":2,"column_number":259826},{"level":"log","text":"validation...false","filename":"https://static.getbutton.io/widget-send-button/js/init.js","line_number":2,"column_number":254413},{"level":"log","text":"config loading..500","filename":"https://static.getbutton.io/widget-send-button/js/init.js","line_number":2,"column_number":259826}]},"http":[{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/fake.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.857Z","timestamp":1785132838857,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /fake.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\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 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1459,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-27T09:47:46.014144Z","times_seen":144055,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/prev.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.921Z","timestamp":1785132838921,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/prev.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/lightbox.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Mon, 03 Jan 2022 23:40:38 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1360\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1360,"size_decoded":1625,"mime_type":"image/png","magic":"PNG image data, 50 x 45, 8-bit/color RGBA, non-interlaced","md5":"84b76dee6b27b795e89e3649078a11c2","sha1":"6640a3432f7ba7aea6129cdf7a5d3eabd47c295c","sha256":"7fd9273f20fdb1229c224341271a119020a5eee74ccf6b4605730917c864caf2","sha512":"f7128971cd4b6442ebac344cad93186e1fcc976470e2f5a4e758f3439c7b07421fb99a927450414b86b4bbfc0f2cc605b0e63c217057e094f9d866d9906960f5","ssdeep":"","tlshash":"b121f8b5a75040bddc73b70a4428be38ced1ba204dcdce0b42719c77a082c29d7f1082","first_seen":"2023-04-05T16:20:30Z","last_seen":"2026-07-27T07:39:05.97901Z","times_seen":21101,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAADIAAAAtCAYAAADsvzj/AAAFF0lEQVR4Ac2ZW0xcVRSGPTNnhlPKcCsUAeeChkEVxhutDQwzMANaqamNWgpaH+yDIaZp1cRHbgH0gTsxkmDCI/hiRAqgD5qYRgKQ8II6TE00wfgGAcIdKeM/ydrNZIezxxg9m518gRxWmn6s9a9zhvNQJBL5T/gfjokwA5Uw0zWFeHBOugiTsAArfSWZky+iABVowAZSwRkiDSTRz1iHlJMmogATsIDTIAPYgRs8SeTTtXSQSLVKFNkivIQKksDDJFCsquqLmqZdAa/i+yCuPQ1cJHOKjdpJEWGdsIFs8BQoy83NvTEzMzO3t7f318HBweHc3Nxdj8dznWQeIWmpIryENUaiCPgdDsfN+fn5XyLcWV5eDlmt1gBqHgOpbAHIFmESySAHeECF0+m8hd/+vcgxZ3d39wBj9grqCkA6iaiyRBRunJhEpcvl+nBhYeG3iM7Z2dnZgkg1ZSgNqLI6wgebSVTZ7faPlpaW/tSTWF9f36ivr+9AbQkF3iZRhAs2dSInJ+eDUCj0h0Biq7S09BPUBkEhyAKJssKusE6QRCGoQLDfn56eDulJrK6ubgeDwS7UXgTPAztIkXUfUbhxKgLlyMRtBPtXPYm1tbXdqqoqJnEOOGhbJQCTkSJ8sJlEMNoJrFhdicPDw6PKyspe1FaD85yE2YBnLUGwSSIrK+s2bnZLehIbGxubfr+/B7WXSMJJ42QlCcVAES7YJJGdnR0dp7BgnLZKSko6qBPngIvrBEkYIKIT7PLoOKET4TjB7kbty+A8SaRxmcAxQEQn2BUI9q3Z2dl7gk7sINhRiZeoE87jMmGECB/s3JhgR8dJV2Jzc3Pb5/N1UieKKdgsEyaAY5wIk2Dj5GHBRifCgmBHb3adLBNsO3HBNkxEAWZwCmSCx4EPwb4ZJ9jbCHYXSRQDpyDYhomoNFIOUIRMvINO/KQnsbKyshMIBD5D7RVwgQWblzBahD2Sp5jN5jzM+9uLi4s/60mEw+FNbKcvUH8DVIECcAZoXLCliaRaLBbX8PBwb0RwRkZGfkftx+BdUM4+KInDbdxoWUCKoih5CQkJgYGBgS/xs6PjRPb394+ampp+RP174CIoBGcpYypQZIqYY+4dz4DLvb29Y6LONDY2fou6OuAF+SCDZCgj8kQSQDqNihfU9vX1TYlkGhoa7qDuDVBKMpQVrjMG30fYCs6gAHuRmdqurq5JkUxLS8sEaq+CMq4zJGOgCB2Fk8kHJSaTqaazs3Pi2MzQaWtrm0RtDfDFyCQyGUNFOJlEkMlkwLWenp5vRDKtra1TNGYsM5mcjKEifGeYjBfUQUaYmebm5omYzLjFC8C4zyNqTGfcNDZ1/2ABjKHudZLXkTFARJAZN/CqqnqNMqN7Ojo6vqMF4ONkVFmvFUQLQNiZ7u7u76PZAn6S4TJjrIhoAdT+iwXAdQYYKCJaAG/iPhNvAYyj7jXwAngUpAGrDBF+ATCZAuBXFOX60NDQ3TiPM1/hyfoyPf7kgNNSXyvwmSGZMk3T3hocHPwhzlPzJLLFnpZT5PztV5wZNyilbTZFmTnZrxU4GZWXATV4ap4kmeNELlEticjsSHyZq/39/V/j374P2Lk/Pj5+BznxUuDlj1acJ4B8cAH/4er29vbPR0dH58fGxubx/ac2my1Ab3iz5Yc9/gJIB05QCJ4Fz9FXD3gC5HIfi+WKCGQ0GpuzwA7yCDtdS+b/SCFfRPwaQqPxSSaS6JrlwUjR+RtEvCM0ct4sLQAAAABJRU5ErkJggg=="}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/css/templatemo-edu-meeting.css","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.044Z","timestamp":1785132838044,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/css/templatemo-edu-meeting.css HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: text/css\r\nlast-modified: Sat, 18 Feb 2023 19:24:48 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 5276\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":37577,"size_decoded":5585,"mime_type":"text/css","magic":"ASCII text, with CRLF line terminators","md5":"7a57354d6f15571daeeca48e5c9899d5","sha1":"66c2592fa3888a3654d7110458cb3eb925bf8a2f","sha256":"a3efa996c9f07bd39387041e3a472ce55cd1c7d58c39a5818eced7010ecd8913","sha512":"84f01e0441613ff00c2a1491aabd17c3dc75f08227e5e15cfe4fda18f6816b217874131743fe14364711b4f1bda870ed3617478f919f8029d0bbea72899862c6","ssdeep":"384:KSuh2xAvaYh0NY56YE4TR3S48wITR2w4BXzDmcTWxIlPnSB:KXwxAh09YE+S4+4fBOGWxIly","tlshash":"a8f25398ee0311052137ebb4f7939b68faa800529a07077cbbf51005fac969d526efcd","first_seen":"2025-08-12T04:19:47.964733Z","last_seen":"2026-07-27T06:14:42.613449Z","times_seen":3,"resource_available":false,"data":"LyoNCg0KVGVtcGxhdGVNbyA1NjkgRWR1IE1lZXRpbmcNCg0KaHR0cHM6Ly90ZW1wbGF0ZW1vLmNvbS90bS01NjktZWR1LW1lZXRpbmcNCg0KKi8NCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUYWJsZSBvZiBjb250ZW50cw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQowMS4gZm9udCAmIHJlc2V0IGNzcw0KMDIuIHJlc2V0DQowMy4gZ2xvYmFsIHN0eWxlcw0KMDQuIGhlYWRlcg0KMDUuIGJhbm5lcg0KMDYuIGZlYXR1cmVzDQowNy4gdGVzdGltb25pYWxzDQowOC4gY29udGFjdA0KMDkuIGZvb3Rlcg0KMTAuIHByZWxvYWRlcg0KMTEuIHNlYXJjaA0KMTIuIHBvcnRmb2xpbw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCi8qIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpmb250ICYgcmVzZXQgY3NzDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQoqLw0KQGltcG9ydCB1cmwoIi4uLy4uL2NzcyIpOw0KLyogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnJlc2V0DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQoqLw0KaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBkaXYNCnByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGZvbnQsIGltZywgaW5zLCBrYmQsIHEsDQpzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksDQpmaWd1cmUsIGhlYWRlciwgbmF2LCBzZWN0aW9uLCBhcnRpY2xlLCBhc2lkZSwgZm9vdGVyLCBmaWdjYXB0aW9uIHsNCiAgbWFyZ2luOiAwOw0KICBwYWRkaW5nOiAwOw0KICBib3JkZXI6IDA7DQogIG91dGxpbmU6IDA7DQp9DQoNCi5jbGVhcmZpeDphZnRlciB7DQogIGNvbnRlbnQ6ICIuIjsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNsZWFyOiBib3RoOw0KICB2aXNpYmlsaXR5OiBoaWRkZW47DQogIGxpbmUtaGVpZ2h0OiAwOw0KICBoZWlnaHQ6IDA7DQp9DQoNCi5jbGVhcmZpeCB7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCn0NCg0KaHRtbFt4bWxuc10gLmNsZWFyZml4IHsNCiAgZGlzcGxheTogYmxvY2s7DQp9DQoNCiogaHRtbCAuY2xlYXJmaXggew0KICBoZWlnaHQ6IDElOw0KfQ0KDQp1bCwgbGkgew0KICBwYWRkaW5nOiAwOw0KICBtYXJnaW46IDA7DQogIGxpc3Qtc3R5bGU6IG5vbmU7DQp9DQoNCmhlYWRlciwgbmF2LCBzZWN0aW9uLCBhcnRpY2xlLCBhc2lkZSwgZm9vdGVyLCBoZ3JvdXAgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KKiB7DQogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQp9DQoNCmh0bWwsIGJvZHkgew0KICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmOw0KICBmb250LXdlaWdodDogNDAwOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KICBmb250LXNpemU6IDE2cHg7DQogIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOw0KICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsNCiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsNCn0NCg0KYSB7DQogIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Ow0KICBjb2xvcjogIzNDRjsNCn0NCg0KYTpob3ZlciB7DQoJY29sb3I6ICNGQzM7DQp9DQoNCmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgew0KICBtYXJnaW4tdG9wOiAwcHg7DQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KdWwgew0KICBtYXJnaW4tYm90dG9tOiAwcHg7DQp9DQoNCnAgew0KICBmb250LXNpemU6IDE0cHg7DQogIGxpbmUtaGVpZ2h0OiAyNXB4Ow0KICBjb2xvcjogIzJhMmEyYTsNCn0NCg0KaW1nIHsNCiAgd2lkdGg6IDEwMCU7DQogIG92ZXJmbG93OiBoaWRkZW47DQp9DQoNCi8qIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpnbG9iYWwgc3R5bGVzDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQoqLw0KaHRtbCwNCmJvZHkgew0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmOw0KfQ0KDQo6OnNlbGVjdGlvbiB7DQogIGJhY2tncm91bmQ6ICNmNWE0MjU7DQogIGNvbG9yOiAjZmZmOw0KfQ0KDQo6Oi1tb3otc2VsZWN0aW9uIHsNCiAgYmFja2dyb3VuZDogI2Y1YTQyNTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkgew0KICBodG1sLCBib2R5IHsNCiAgICBvdmVyZmxvdy14OiBoaWRkZW47DQogIH0NCiAgLm1vYmlsZS10b3AtZml4IHsNCiAgICBtYXJnaW4tdG9wOiAzMHB4Ow0KICAgIG1hcmdpbi1ib3R0b206IDBweDsNCiAgfQ0KICAubW9iaWxlLWJvdHRvbS1maXggew0KICAgIG1hcmdpbi1ib3R0b206IDMwcHg7DQogIH0NCiAgLm1vYmlsZS1ib3R0b20tZml4LWJpZyB7DQogICAgbWFyZ2luLWJvdHRvbTogNjBweDsNCiAgfQ0KfQ0KDQoubWFpbi1idXR0b24tcmVkIGEgew0KICBmb250LXNpemU6IDEzcHg7DQogIGNvbG9yOiAjZmZmOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ5ZGVmOw0KICBwYWRkaW5nOiAxMnB4IDMwcHg7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgYm9yZGVyLXJhZGl1czogMjJweDsNCiAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgdHJhbnNpdGlvbjogYWxsIC4zczsNCn0NCg0KLm1haW4tYnV0dG9uLXJlZCBhOmhvdmVyIHsNCiAgb3BhY2l0eTogMC45Ow0KfQ0KDQoubWFpbi1idXR0b24teWVsbG93IGEgew0KICBmb250LXNpemU6IDEzcHg7DQogIGNvbG9yOiAjZmZmOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVhNDI1Ow0KICBwYWRkaW5nOiAxMnB4IDMwcHg7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgYm9yZGVyLXJhZGl1czogMjJweDsNCiAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgdHJhbnNpdGlvbjogYWxsIC4zczsNCn0NCg0KLm1haW4tYnV0dG9uLXllbGxvdyBhOmhvdmVyIHsNCiAgb3BhY2l0eTogMC45Ow0KfQ0KDQouc2VjdGlvbi1oZWFkaW5nIGgyIHsNCiAgbGluZS1oZWlnaHQ6IDQwcHg7DQogIG1hcmdpbi10b3A6IDBweDsNCiAgbWFyZ2luLWJvdHRvbTogNTBweDsgDQogIHBhZGRpbmctYm90dG9tOiAyMHB4Ow0KICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTAsMjUwLDI1MCwwLjE1KTsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBmb250LXdlaWdodDogNzAwOw0KICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KDQovKiANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaGVhZGVyDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQoqLw0KDQouc3ViLWhlYWRlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwZjlhZGY7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgei1pbmRleDogMTExMTsNCn0NCg0KLnN1Yi1oZWFkZXIgLmxlZnQtY29udGVudCBwIHsNCiAgY29sb3I6ICNmZmY7DQogIHBhZGRpbmc6IDhweCAwcHg7DQogIGZvbnQtc2l6ZTogMTNweDsNCn0NCg0KLnN1Yi1oZWFkZXIgLnJpZ2h0LWljb25zIHsNCiAgdGV4dC1hbGlnbjogcmlnaHQ7DQogIHBhZGRpbmc6IDhweCAwcHg7DQp9DQoNCi5zdWItaGVhZGVyIC5yaWdodC1pY29ucyB1bCBsaSB7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgbWFyZ2luLWxlZnQ6IDE1cHg7DQp9DQoNCi5zdWItaGVhZGVyIC5yaWdodC1pY29ucyB1bCBsaSBhIHsNCiAgY29sb3I6ICNmZmY7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgdHJhbnNpdGlvbjogYWxsIC4zczsNCn0NCg0KLnN1Yi1oZWFkZXIgLnJpZ2h0LWljb25zIHVsIGxpIGE6aG92ZXIgew0KICBjb2xvcjogI2Y1YTQyNTsNCn0NCg0KLnN1Yi1oZWFkZXIgLmxlZnQtY29udGVudCBwIGVtIHsNCiAgIGZvbnQtc3R5bGU6IG5vcm1hbDsNCiAgIGNvbG9yOiAjZjVhNDI1Ow0KfQ0KDQouYmFja2dyb3VuZC1oZWFkZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmIWltcG9ydGFudDsNCiAgaGVpZ2h0OiA4MHB4IWltcG9ydGFudDsNCiAgcG9zaXRpb246IGZpeGVkIWltcG9ydGFudDsNCiAgdG9wOiAwIWltcG9ydGFudDsNCiAgbGVmdDogMDsNCiAgcmlnaHQ6IDA7DQogIGJveC1zaGFkb3c6IDBweCAwcHggMTBweCByZ2JhKDAsMCwwLDAuMTUpIWltcG9ydGFudDsNCn0NCg0KLmJhY2tncm91bmQtaGVhZGVyIC5tYWluLW5hdiAubmF2IGxpIGEgew0KICBjb2xvcjogIzFlMWUxZSFpbXBvcnRhbnQ7DQp9DQoNCi5iYWNrZ3JvdW5kLWhlYWRlciAubG9nbywNCi5iYWNrZ3JvdW5kLWhlYWRlciAubWFpbi1uYXYgLm5hdiBsaSBhIHsNCiAgY29sb3I6ICMxZTFlMWUhaW1wb3J0YW50Ow0KfQ0KDQouYmFja2dyb3VuZC1oZWFkZXIgLm1haW4tbmF2IC5uYXYgbGk6aG92ZXIgYSB7DQogIGNvbG9yOiAjZmI1ODQ5IWltcG9ydGFudDsNCn0NCg0KLmJhY2tncm91bmQtaGVhZGVyIC5uYXYgbGkgYS5hY3RpdmUgew0KICBjb2xvcjogI2ZiNTg0OSFpbXBvcnRhbnQ7DQp9DQoNCi5oZWFkZXItYXJlYSB7DQogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUwLDI1MCwyNTAsMC4xNSk7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgdG9wOiA0MHB4Ow0KICBsZWZ0OiAwOw0KICByaWdodDogMDsNCiAgei1pbmRleDogMTAwOw0KICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuNXMgZWFzZSAwczsNCiAgLW1vei10cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2UgMHM7DQogIC1vLXRyYW5zaXRpb246IGFsbCAuNXMgZWFzZSAwczsNCiAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlIDBzOw0KfQ0KDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IHsNCiAgbWluLWhlaWdodDogODBweDsNCiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQp9DQoNCi5oZWFkZXItYXJlYSAubWFpbi1uYXYgLmxvZ28gew0KICBsaW5lLWhlaWdodDogMTAwcHg7DQogIGNvbG9yOiAjZmZmOw0KICBmb250LXNpemU6IDI4cHg7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQogIGZsb2F0OiBsZWZ0Ow0KICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7DQogIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwczsNCiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwczsNCiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwczsNCn0NCg0KLmJhY2tncm91bmQtaGVhZGVyIC5tYWluLW5hdiAubG9nbyB7DQogIGxpbmUtaGVpZ2h0OiA3NXB4Ow0KfQ0KDQouYmFja2dyb3VuZC1oZWFkZXIgLm5hdiB7DQogIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tdG9wOiAzMHB4Ow0KICBtYXJnaW4tcmlnaHQ6IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwczsNCiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOw0KICAtby10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOw0KICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOw0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIHotaW5kZXg6IDk5OTsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpIHsNCiAgcGFkZGluZy1sZWZ0OiAxNXB4Ow0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KfQ0KDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5uYXYgbGk6bGFzdC1jaGlsZCB7DQogIHBhZGRpbmctcmlnaHQ6IDBweDsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpIGEgew0KICBkaXNwbGF5OiBibG9jazsNCiAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgZm9udC1zaXplOiAxNHB4Ow0KICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICBjb2xvcjogI2ZmZjsNCiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOw0KICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7DQogIC1vLXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7DQogIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7DQogIGhlaWdodDogNDBweDsNCiAgbGluZS1oZWlnaHQ6IDQwcHg7DQogIGJvcmRlcjogdHJhbnNwYXJlbnQ7DQogIGxldHRlci1zcGFjaW5nOiAxcHg7DQp9DQoNCi5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiBsaTpob3ZlciBhLA0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpIGEuYWN0aXZlIHsNCiAgY29sb3I6ICNmNWE0MjUhaW1wb3J0YW50Ow0KfQ0KDQouYmFja2dyb3VuZC1oZWFkZXIgLm1haW4tbmF2IC5uYXYgbGk6aG92ZXIgYSwNCi5iYWNrZ3JvdW5kLWhlYWRlciAubWFpbi1uYXYgLm5hdiBsaSBhLmFjdGl2ZSB7DQogIGNvbG9yOiAjZjVhNDI1IWltcG9ydGFudDsNCiAgb3BhY2l0eTogMTsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpLmhhcy1zdWIgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQp9DQoNCi5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiBsaS5oYXMtc3ViOmFmdGVyIHsNCiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lOw0KICBjb250ZW50OiAiXGYxMDciOw0KICBmb250LXNpemU6IDEycHg7DQogIGNvbG9yOiAjZmZmOw0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiA1cHg7DQogIHRvcDogMTJweDsNCn0NCg0KLmJhY2tncm91bmQtaGVhZGVyIC5tYWluLW5hdiAubmF2IGxpLmhhcy1zdWI6YWZ0ZXIgew0KICBjb2xvcjogIzFlMWUxZTsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpLmhhcy1zdWIgdWwuc3ViLW1lbnUgew0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHdpZHRoOiAyMDBweDsNCiAgYm94LXNoYWRvdzogMCAycHggMjhweCAwIHJnYmEoMCwgMCwgMCwgMC4wNik7DQogIG92ZXJmbG93OiBoaWRkZW47DQogIHRvcDogNDBweDsNCiAgb3BhY2l0eTogMDsNCiAgdHJhbnNpdGlvbjogYWxsIC4zczsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCsyZW0pOw0KICB2aXNpYmlsaXR5OiBoaWRkZW47DQogIHotaW5kZXg6IC0xOw0KfQ0KDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5uYXYgbGkuaGFzLXN1YiB1bC5zdWItbWVudSBsaSB7DQogIG1hcmdpbi1sZWZ0OiAwcHg7DQogIHBhZGRpbmctbGVmdDogMHB4Ow0KICBwYWRkaW5nLXJpZ2h0OiAwcHg7DQp9DQoNCi5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiBsaS5oYXMtc3ViIHVsLnN1Yi1tZW51IGxpIGEgew0KICBvcGFjaXR5OiAxOw0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZDogI2Y3ZjdmNzsNCiAgY29sb3I6ICMyYTJhMmEhaW1wb3J0YW50Ow0KICBwYWRkaW5nLWxlZnQ6IDIwcHg7DQogIGhlaWdodDogNDBweDsNCiAgbGluZS1oZWlnaHQ6IDQwcHg7DQogIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwczsNCiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOw0KICAtby10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOw0KICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOw0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGZvbnQtc2l6ZTogMTNweDsNCiAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7DQp9DQoNCi5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiBsaS5oYXMtc3ViIHVsIGxpIGE6aG92ZXIgew0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KICBjb2xvcjogI2Y1YTQyNSFpbXBvcnRhbnQ7DQogIHBhZGRpbmctbGVmdDogMjVweDsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpLmhhcy1zdWIgdWwgbGkgYTpob3ZlcjpiZWZvcmUgew0KICB3aWR0aDogM3B4Ow0KfQ0KDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5uYXYgbGkuaGFzLXN1Yjpob3ZlciB1bC5zdWItbWVudSB7DQogIHZpc2liaWxpdHk6IHZpc2libGU7DQogIG9wYWNpdHk6IDE7DQogIHotaW5kZXg6IDE7DQogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7DQogIHRyYW5zaXRpb24tZGVsYXk6IDBzLCAwcywgMC4zczsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubWVudS10cmlnZ2VyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBkaXNwbGF5OiBibG9jazsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICB0b3A6IDMzcHg7DQogIHdpZHRoOiAzMnB4Ow0KICBoZWlnaHQ6IDQwcHg7DQogIHRleHQtaW5kZW50OiAtOTk5OWVtOw0KICB6LWluZGV4OiA5OTsNCiAgcmlnaHQ6IDQwcHg7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCi5iYWNrZ3JvdW5kLWhlYWRlciAubWFpbi1uYXYgLm1lbnUtdHJpZ2dlciB7DQogIHRvcDogMjNweDsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubWVudS10cmlnZ2VyIHNwYW4sDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIgc3BhbjpiZWZvcmUsDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIgc3BhbjphZnRlciB7DQogIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNHM7DQogIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzOw0KICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzOw0KICB0cmFuc2l0aW9uOiBhbGwgMC40czsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMWUxZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgd2lkdGg6IDMwcHg7DQogIGhlaWdodDogMnB4Ow0KICBsZWZ0OiAwOw0KfQ0KDQouYmFja2dyb3VuZC1oZWFkZXIgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIgc3BhbiwNCi5iYWNrZ3JvdW5kLWhlYWRlciAubWFpbi1uYXYgLm1lbnUtdHJpZ2dlciBzcGFuOmJlZm9yZSwNCi5iYWNrZ3JvdW5kLWhlYWRlciAubWFpbi1uYXYgLm1lbnUtdHJpZ2dlciBzcGFuOmFmdGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMWUxZTsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubWVudS10cmlnZ2VyIHNwYW46YmVmb3JlLA0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubWVudS10cmlnZ2VyIHNwYW46YWZ0ZXIgew0KICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzOw0KICAtby10cmFuc2l0aW9uOiBhbGwgMC40czsNCiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40czsNCiAgdHJhbnNpdGlvbjogYWxsIDAuNHM7DQogIGJhY2tncm91bmQtY29sb3I6ICMxZTFlMWU7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHdpZHRoOiAzMHB4Ow0KICBoZWlnaHQ6IDJweDsNCiAgbGVmdDogMDsNCiAgd2lkdGg6IDc1JTsNCn0NCg0KLmJhY2tncm91bmQtaGVhZGVyIC5tYWluLW5hdiAubWVudS10cmlnZ2VyIHNwYW46YmVmb3JlLA0KLmJhY2tncm91bmQtaGVhZGVyIC5tYWluLW5hdiAubWVudS10cmlnZ2VyIHNwYW46YWZ0ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWUxZTFlOw0KfQ0KDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIgc3BhbjpiZWZvcmUsDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIgc3BhbjphZnRlciB7DQogIGNvbnRlbnQ6ICIiOw0KfQ0KDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIgc3BhbiB7DQogIHRvcDogMTZweDsNCn0NCg0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubWVudS10cmlnZ2VyIHNwYW46YmVmb3JlIHsNCiAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiAzMyUgMTAwJTsNCiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDMzJSAxMDAlOw0KICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDMzJSAxMDAlOw0KICB0cmFuc2Zvcm0tb3JpZ2luOiAzMyUgMTAwJTsNCiAgdG9wOiAtMTBweDsNCiAgei1pbmRleDogMTA7DQp9DQoNCi5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm1lbnUtdHJpZ2dlciBzcGFuOmFmdGVyIHsNCiAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiAzMyUgMDsNCiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDMzJSAwOw0KICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDMzJSAwOw0KICB0cmFuc2Zvcm0tb3JpZ2luOiAzMyUgMDsNCiAgdG9wOiAxMHB4Ow0KfQ0KDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIuYWN0aXZlIHNwYW4sDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIuYWN0aXZlIHNwYW46YmVmb3JlLA0KLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubWVudS10cmlnZ2VyLmFjdGl2ZSBzcGFuOmFmdGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQouaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5tZW51LXRyaWdnZXIuYWN0aXZlIHNwYW46YmVmb3JlIHsNCiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSB0cmFuc2xhdGVYKDFweCkgcm90YXRlKDQ1ZGVnKTsNCiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoNDVkZWcpOw0KICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoNDVkZWcpOw0KICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSB0cmFuc2xhdGVYKDFweCkgcm90YXRlKDQ1ZGVnKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMWUxZTsNCn0NCg0KLmJhY2tncm91bmQtaGVhZGVyIC5tYWluLW5hdiAubWVudS10cmlnZ2VyLmFjdGl2ZSBzcGFuOmJlZm9yZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMxZTFlMWU7DQp9DQoNCi5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm1lbnUtdHJpZ2dlci5hY3RpdmUgc3BhbjphZnRlciB7DQogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoLTQ1ZGVnKTsNCiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSB0cmFuc2xhdGVYKDFweCkgcm90YXRlKC00NWRlZyk7DQogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoLTQ1ZGVnKTsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoLTQ1ZGVnKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMWUxZTsNCn0NCg0KLmJhY2tncm91bmQtaGVhZGVyIC5tYWluLW5hdiAubWVudS10cmlnZ2VyLmFjdGl2ZSBzcGFuOmFmdGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMWUxZTsNCn0NCg0KLmhlYWRlci1hcmVhLmhlYWRlci1zdGlja3kgew0KICBtaW4taGVpZ2h0OiA4MHB4Ow0KfQ0KDQouaGVhZGVyLWFyZWEgLm5hdiB7DQogIG1hcmdpbi10b3A6IDMwcHg7DQp9DQoNCi5oZWFkZXItYXJlYS5oZWFkZXItc3RpY2t5IC5uYXYgbGkgYS5hY3RpdmUgew0KICBjb2xvcjogI2Y1YTQyNTsNCn0NCg0KQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkgew0KICAuaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5uYXYgbGkgew0KICAgIHBhZGRpbmctbGVmdDogN3B4Ow0KICAgIHBhZGRpbmctcmlnaHQ6IDdweDsNCiAgfQ0KICAuaGVhZGVyLWFyZWEgLm1haW4tbmF2OmJlZm9yZSB7DQogICAgZGlzcGxheTogbm9uZTsNCiAgfQ0KfQ0KDQpAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsNCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubG9nbyB7DQogICAgY29sb3I6ICMxZTFlMWU7DQogIH0NCiAgLmhlYWRlci1hcmVhLmhlYWRlci1zdGlja3kgLm5hdiBsaSBhOmhvdmVyLA0KICAuaGVhZGVyLWFyZWEuaGVhZGVyLXN0aWNreSAubmF2IGxpIGEuYWN0aXZlIHsNCiAgICBjb2xvcjogI2Y1YTQyNSFpbXBvcnRhbnQ7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KICAuaGVhZGVyLWFyZWEuaGVhZGVyLXN0aWNreSAubmF2IGxpLnNlYXJjaC1pY29uIGEgew0KICAgIHdpZHRoOiAxMDAlOw0KICB9DQogIC5oZWFkZXItYXJlYSB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsNCiAgICBwYWRkaW5nOiAwcHggMTVweDsNCiAgICBoZWlnaHQ6IDEwMHB4Ow0KICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICB9DQogIC5oZWFkZXItYXJlYSAuY29udGFpbmVyIHsNCiAgICBwYWRkaW5nOiAwcHg7DQogIH0NCiAgLmhlYWRlci1hcmVhIC5sb2dvIHsNCiAgICBtYXJnaW4tbGVmdDogMzBweDsNCiAgfQ0KICAuaGVhZGVyLWFyZWEgLm1lbnUtdHJpZ2dlciB7DQogICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsNCiAgfQ0KICAuaGVhZGVyLWFyZWEgLm1haW4tbmF2IHsNCiAgICBvdmVyZmxvdzogaGlkZGVuOw0KICB9DQogIC5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiB7DQogICAgZmxvYXQ6IG5vbmU7DQogICAgd2lkdGg6IDEwMCU7DQogICAgZGlzcGxheTogbm9uZTsNCiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwcyBlYXNlIDBzOw0KICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDBzIGVhc2UgMHM7DQogICAgLW8tdHJhbnNpdGlvbjogYWxsIDBzIGVhc2UgMHM7DQogICAgdHJhbnNpdGlvbjogYWxsIDBzIGVhc2UgMHM7DQogICAgbWFyZ2luLWxlZnQ6IDBweDsNCiAgfQ0KICAuaGVhZGVyLWFyZWEgLm1haW4tbmF2IC5uYXYgbGk6Zmlyc3QtY2hpbGQgew0KICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlOw0KICB9DQogIC5oZWFkZXItYXJlYS5oZWFkZXItc3RpY2t5IC5uYXYgew0KICAgIG1hcmdpbi10b3A6IDEwMHB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpIHsNCiAgICB3aWR0aDogMTAwJTsNCiAgICBiYWNrZ3JvdW5kOiAjZmZmOw0KICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOw0KICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7DQogICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpIGEgew0KICAgIGhlaWdodDogNTBweCAhaW1wb3J0YW50Ow0KICAgIGxpbmUtaGVpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7DQogICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7DQogICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7DQogICAgYmFja2dyb3VuZDogI2Y3ZjdmNyAhaW1wb3J0YW50Ow0KICAgIGNvbG9yOiAjMTkxYTIwICFpbXBvcnRhbnQ7DQogIH0NCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpIGE6aG92ZXIgew0KICAgIGJhY2tncm91bmQ6ICNlZWUgIWltcG9ydGFudDsNCiAgICBjb2xvcjogI2Y1YTQyNSFpbXBvcnRhbnQ7DQogIH0NCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpLmhhcy1zdWIgdWwuc3ViLW1lbnUgew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB2aXNpYmlsaXR5OiBpbmhlcml0Ow0KICAgIG9wYWNpdHk6IDE7DQogICAgei1pbmRleDogMTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpOw0KICAgIHRvcDogMHB4Ow0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgaGVpZ2h0OiAwcHg7DQogICAgdHJhbnNpdGlvbjogYWxsIDBzOw0KICB9DQogIC5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiBsaS5zdWJtZW51IHVsIGxpIGEgew0KICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICBmb250LXdlaWdodDogNDAwOw0KICB9DQogIC5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiBsaS5zdWJtZW51IHVsIGxpIGE6aG92ZXI6YmVmb3JlIHsNCiAgICB3aWR0aDogMHB4Ow0KICB9DQogIC5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiBsaS5oYXMtc3ViIHVsLnN1Yi1tZW51IHsNCiAgICBoZWlnaHQ6IGF1dG87DQogIH0NCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpLmhhcy1zdWI6YWZ0ZXIgew0KICAgIGNvbG9yOiAjM0I1NjZFOw0KICAgIHJpZ2h0OiAzMHB4Ow0KICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICB0b3A6IDE1cHg7DQogIH0NCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpLnN1Ym1lbnU6aG92ZXIgdWwsIC5oZWFkZXItYXJlYSAubWFpbi1uYXYgLm5hdiBsaS5zdWJtZW51OmZvY3VzIHVsIHsNCiAgICBoZWlnaHQ6IDBweDsNCiAgfQ0KfQ0KDQpAbWVkaWEgKG1pbi13aWR0aDogNzY3cHgpIHsNCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IHsNCiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7DQogIH0NCn0NCg0KDQovKiANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KYmFubmVyDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQoqLw0KDQoubWFpbi1iYW5uZXIgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIG1heC1oZWlnaHQ6IDEwMCU7DQogIG92ZXJmbG93OiBoaWRkZW47DQogIG1hcmdpbi1ib3R0b206IC03cHg7DQp9DQoNCiNiZy12aWRlbyB7DQogICAgbWluLXdpZHRoOiAxMDAlOw0KICAgIG1pbi1oZWlnaHQ6IDEwMHZoOw0KICAgIG1heC13aWR0aDogMTAwJTsNCiAgICBtYXgtaGVpZ2h0OiAxMDB2aDsNCiAgICBvYmplY3QtZml0OiBjb3ZlcjsNCiAgICB6LWluZGV4OiAtMTsNCn0NCg0KI2JnLXZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzIHsNCiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7DQp9DQoNCi52aWRlby1vdmVybGF5IHsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMSwzOSw0MywwLjc1KTsNCiAgICB0b3A6IDA7DQogICAgbGVmdDogMDsNCiAgICBib3R0b206IDA7DQogICAgcmlnaHQ6IDA7DQogICAgd2lkdGg6IDEwMCU7DQp9DQoNCi5tYWluLWJhbm5lciAuY2FwdGlvbiB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgdG9wOiA1MCU7DQogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsNCn0NCg0KLm1haW4tYmFubmVyIC5jYXB0aW9uIGg2IHsNCiAgbWFyZ2luLXRvcDogMHB4Ow0KICBmb250LXNpemU6IDE1cHg7DQogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogIGZvbnQtd2VpZ2h0OiA2MDA7DQogIGNvbG9yOiAjZmZmOw0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQoubWFpbi1iYW5uZXIgLmNhcHRpb24gaDIgew0KICBtYXJnaW4tdG9wOiAyMHB4Ow0KICBtYXJnaW4tYm90dG9tOiAyMHB4Ow0KICBmb250LXNpemU6IDM2cHg7DQogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogIGZvbnQtd2VpZ2h0OiA4MDA7DQogIGNvbG9yOiAjZmZmOw0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQoubWFpbi1iYW5uZXIgLmNhcHRpb24gaDIgZW0gew0KICBmb250LXN0eWxlOiBub3JtYWw7DQogIGNvbG9yOiAjZjVhNDI1Ow0KICBmb250LXdlaWdodDogOTAwOw0KfQ0KDQoubWFpbi1iYW5uZXIgLmNhcHRpb24gcCB7DQogIGNvbG9yOiAjZmZmOw0KICBmb250LXNpemU6IDE0cHg7DQogIG1heC13aWR0aDogNTcwcHg7DQp9DQoNCi5tYWluLWJhbm5lciAuY2FwdGlvbiAubWFpbi1idXR0b24tcmVkIHsNCiAgbWFyZ2luLXRvcDogMzBweDsNCn0NCg0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHsNCg0KICAubWFpbi1iYW5uZXIgLmNhcHRpb24gaDYgew0KICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogIH0NCg0KICAubWFpbi1iYW5uZXIgLmNhcHRpb24gaDIgew0KICAgIGZvbnQtc2l6ZTogMzZweDsNCiAgfQ0KDQp9DQoNCg0KLyoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc2VydmljZXMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKi8NCg0KLnNlcnZpY2VzIHsNCiAgbWFyZ2luLXRvcDogLTEzNXB4Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQouc2VydmljZXMgLml0ZW0gew0KICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlcnZpY2UtaXRlbS1iZy5qcGcpOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICBib3JkZXItcmFkaXVzOiAyMHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIGNvbG9yOiAjZmZmOw0KICBwYWRkaW5nOiA0MHB4Ow0KfQ0KDQouc2VydmljZXMgLml0ZW0gLmljb24gew0KICBtYXgtd2lkdGg6IDYwcHg7DQogIG1hcmdpbjogMCBhdXRvOw0KfQ0KDQouc2VydmljZXMgLml0ZW0gaDQgew0KICBtYXJnaW4tdG9wOiAyNXB4Ow0KICBtYXJnaW4tYm90dG9tOiAxNXB4Ow0KICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtd2VpZ2h0OiA2MDA7DQp9DQoNCi5zZXJ2aWNlcyAuaXRlbSBwIHsNCiAgY29sb3I6ICNmZmY7DQogIGZvbnQtc2l6ZTogMTNweDsNCn0NCg0KLnNlcnZpY2VzIC5vd2wtbmF2IHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICB3aWR0aDogMTAwJTsNCiAgdG9wOiA1MCU7DQogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjVweCk7DQp9DQogICAgDQouc2VydmljZXMgLm93bC1uYXYgLm93bC1wcmV2ew0KICBtYXJnaW4tcmlnaHQ6IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgbGVmdDogLTgwcHg7DQp9DQoNCi5zZXJ2aWNlcyAub3dsLW5hdiAub3dsLXByZXYgc3BhbiwNCi5zZXJ2aWNlcyAub3dsLW5hdiAub3dsLW5leHQgc3BhbiB7DQogIG9wYWNpdHk6IDA7DQp9DQoNCi5zZXJ2aWNlcyAub3dsLW5hdiAub3dsLXByZXY6YmVmb3JlIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJzsNCiAgY29sb3I6ICMxZTFlMWU7DQogIGZvbnQtc2l6ZTogMjVweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgY29udGVudDogJ1xmMTA0JzsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgYm9yZGVyLXJhZGl1czogNTAlOw0KICBsaW5lLWhlaWdodDogNTBweDsNCn0NCg0KLnNlcnZpY2VzIC5vd2wtbmF2IC5vd2wtcHJldiB7DQogIG9wYWNpdHk6IDE7DQogIHRyYW5zaXRpb246IGFsbCAuNXM7DQp9DQoNCi5zZXJ2aWNlcyAub3dsLW5hdiAub3dsLXByZXY6aG92ZXIgew0KICBvcGFjaXR5OiAwLjk7DQp9DQoNCi5zZXJ2aWNlcyAub3dsLW5hdiAub3dsLW5leHQgew0KICBvcGFjaXR5OiAxOw0KICB0cmFuc2l0aW9uOiBhbGwgLjVzOw0KfQ0KDQouc2VydmljZXMgLm93bC1uYXYgLm93bC1uZXh0OmhvdmVyIHsNCiAgb3BhY2l0eTogMC45Ow0KfQ0KDQouc2VydmljZXMgLm93bC1uYXYgLm93bC1uZXh0ew0KICBtYXJnaW4tbGVmdDogMTBweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICByaWdodDogLTg1cHg7DQp9DQoNCi5zZXJ2aWNlcyAub3dsLW5hdiAub3dsLW5leHQ6YmVmb3JlIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJzsNCiAgY29sb3I6ICMxZTFlMWU7DQogIGZvbnQtc2l6ZTogMjVweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgY29udGVudDogJ1xmMTA1JzsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgYm9yZGVyLXJhZGl1czogNTAlOw0KICBsaW5lLWhlaWdodDogNTBweDsNCn0NCg0KDQovKg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQp1cGNvbWluZyBtZWV0aW5ncw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoqLw0KDQpzZWN0aW9uLnVwY29taW5nLW1lZXRpbmdzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9tZWV0aW5ncy1iZy5qcGcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICBwYWRkaW5nLXRvcDogMjMwcHg7DQogIHBhZGRpbmctYm90dG9tOiAxMTBweDsNCn0NCg0Kc2VjdGlvbi51cGNvbWluZy1tZWV0aW5ncyAuc2VjdGlvbi1oZWFkaW5nIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpzZWN0aW9uLnVwY29taW5nLW1lZXRpbmdzIC5jYXRlZ29yaWVzIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgYm9yZGVyLXJhZGl1czogMjBweDsNCiAgcGFkZGluZzogNDBweDsNCiAgbWFyZ2luLXJpZ2h0OiA0NXB4Ow0KfQ0KDQpzZWN0aW9uLnVwY29taW5nLW1lZXRpbmdzIC5jYXRlZ29yaWVzIGg0IHsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICBmb250LXdlaWdodDogNjAwOw0KICBjb2xvcjogIzFmMjcyYjsNCiAgbWFyZ2luLWJvdHRvbTogMzBweDsNCiAgcGFkZGluZy1ib3R0b206IDIwcHg7DQogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOw0KfQ0KDQpzZWN0aW9uLnVwY29taW5nLW1lZXRpbmdzIC5jYXRlZ29yaWVzIHVsIGxpIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBtYXJnaW4tYm90dG9tOiAxNXB4Ow0KfQ0KDQpzZWN0aW9uLnVwY29taW5nLW1lZXRpbmdzIC5jYXRlZ29yaWVzIHVsIGxpIGEgew0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiAjMWYyNzJiOw0KICBmb250LXdlaWdodDogNTAwOw0KICB0cmFuc2l0aW9uOiBhbGwgLjNzOw0KfQ0KDQpzZWN0aW9uLnVwY29taW5nLW1lZXRpbmdzIC5jYXRlZ29yaWVzIHVsIGxpIGE6aG92ZXIgew0KICBjb2xvcjogIzE0OWRlZjsNCn0NCg0Kc2VjdGlvbi51cGNvbWluZy1tZWV0aW5ncyAuY2F0ZWdvcmllcyAubWFpbi1idXR0b24tcmVkIHsNCiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7DQogIHBhZGRpbmctdG9wOiAzMHB4Ow0KICBtYXJnaW4tdG9wOiAxNXB4Ow0KfQ0KDQpzZWN0aW9uLnVwY29taW5nLW1lZXRpbmdzIC5jYXRlZ29yaWVzIC5tYWluLWJ1dHRvbi1yZWQgYSB7DQogIHdpZHRoOiAxMDAlOw0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCi5tZWV0aW5nLWl0ZW0gew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQoubWVldGluZy1pdGVtIC50aHVtYiB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCn0NCg0KLm1lZXRpbmctaXRlbSAudGh1bWIgaW1nIHsNCiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDIwcHg7DQogIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDIwcHg7DQp9DQoNCi5tZWV0aW5nLWl0ZW0gLnRodW1iIC5wcmljZSB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgbGVmdDogOTBweDsNCiAgdG9wOiAxMzBweDsNCn0NCg0KLm1lZXRpbmctaXRlbSAudGh1bWIgLnByaWNlIHNwYW4gew0KICBmb250LXNpemU6IDM2cHg7DQogIGNvbG9yOiAjMTQ5ZGVmOw0KICBmb250LXdlaWdodDogNjAwOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwyNTAsMjUwLDAuOSk7DQogIHBhZGRpbmc6IDdweCAxMnB4Ow0KICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KfQ0KDQoubWVldGluZy1pdGVtIC5kb3duLWNvbnRlbnQgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KICBwYWRkaW5nOiAzMHB4Ow0KICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjBweDsNCiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjBweDsNCn0NCg0KLm1lZXRpbmctaXRlbSAuZG93bi1jb250ZW50IC5kYXRlIHsNCiAgZmxvYXQ6IGxlZnQ7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBtYXJnaW4tcmlnaHQ6IDIwcHg7DQp9DQoNCi5tZWV0aW5nLWl0ZW0gLmRvd24tY29udGVudCAuZGF0ZSBoNiB7DQogIGZvbnQtc2l6ZTogMTNweDsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgY29sb3I6ICMxNDlkZWY7DQp9DQoNCi5tZWV0aW5nLWl0ZW0gLmRvd24tY29udGVudCAuZGF0ZSBzcGFuIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNvbG9yOiAjMWYyNzJiOw0KICBmb250LXNpemU6IDIycHg7DQogIG1hcmdpbi10b3A6IDdweDsNCn0NCg0KLm1lZXRpbmctaXRlbSAuZG93bi1jb250ZW50IGg0IHsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICBjb2xvcjogIzFmMjcyYjsNCiAgZm9udC13ZWlnaHQ6IDYwMDsNCg0KICBtYXJnaW4tYm90dG9tOiAxNXB4Ow0KfQ0KDQoubWVldGluZy1pdGVtIC5kb3duLWNvbnRlbnQgcCB7DQogIA0KICBjb2xvcjogIzFmMjcyYjsNCiAgZm9udC1zaXplOiAxNHB4Ow0KfQ0KDQoNCg0KLyoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KYXBwbHkgbm93DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiovDQoNCnNlY3Rpb24uYXBwbHktbm93IHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9hcHBseS1iZy5qcGcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICBwYWRkaW5nOiAxNDBweCAwcHg7DQp9DQoNCnNlY3Rpb24uYXBwbHktbm93IC5pdGVtIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTAsMjUwLDI1MCwwLjE1KTsNCiAgcGFkZGluZzogNDBweDsNCiAgbWFyZ2luLWJvdHRvbTogMzBweDsNCn0NCg0Kc2VjdGlvbi5hcHBseS1ub3cgLml0ZW0gaDMgew0KICBjb2xvcjogI2ZmZjsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgZm9udC1zaXplOiAyNHB4Ow0KICBmb250LXdlaWdodDogNzAwOw0KICBtYXJnaW4tYm90dG9tOiAyMHB4Ow0KfQ0KDQpzZWN0aW9uLmFwcGx5LW5vdyAuaXRlbSBwIHsNCiAgY29sb3I6ICNmZmY7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQp9DQoNCi5hY2NvcmRpb25zIHsNCiAgYm9yZGVyLXJhZGl1czogMjBweDsNCiAgcGFkZGluZzogNDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgbWFyZ2luLWxlZnQ6IDQ1cHg7DQp9DQouYWNjb3JkaW9ucyAuYWNjb3JkaW9uIHsNCiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7DQp9DQouYWNjb3JkaW9ucyAubGFzdC1hY2NvcmRpb24gew0KICBib3JkZXItYm90dG9tOiBub25lOw0KfQ0KLmFjY29yZGlvbi1oZWFkIHsNCiAgcGFkZGluZzogMjBweDsgIA0KICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIGNvbG9yOiAjMWYyNzJiOw0KICBjdXJzb3I6IHBvaW50ZXI7DQogIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2UtaW4tb3V0Ow0KICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjsNCn0NCkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7DQogIC5hY2NvcmRpb24taGVhZCB7DQogICAgcGFkZGluZzogMXJlbTsNCiAgICBmb250LXNpemU6IDEuMnJlbTsNCiAgfQ0KfQ0KLmFjY29yZGlvbi1oZWFkIC5pY29uIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7DQp9DQouYWNjb3JkaW9uLWhlYWQuaXMtb3BlbiB7DQogIGNvbG9yOiAjZjVhNDI1Ow0KICBib3JkZXItYm90dG9tOiBub25lOw0KfQ0KLmFjY29yZGlvbi1oZWFkLmlzLW9wZW4gLmljb24gew0KICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7DQp9DQouYWNjb3JkaW9uLWJvZHkgew0KICBvdmVyZmxvdzogaGlkZGVuOw0KICBoZWlnaHQ6IDA7DQogIHRyYW5zaXRpb246IGhlaWdodCAzMDBtcyBlYXNlLWluLW91dDsNCiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7DQp9DQouYWNjb3JkaW9uLWJvZHkgPiAuY29udGVudCB7DQogIHBhZGRpbmc6IDIwcHg7DQogIHBhZGRpbmctdG9wOiAwOw0KfQ0KDQoNCi8qIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpjb3Vyc2VzDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQoqLw0KDQpzZWN0aW9uLm91ci1jb3Vyc2VzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9tZWV0aW5ncy1iZy5qcGcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICBwYWRkaW5nLXRvcDogMTQwcHg7DQogIHBhZGRpbmctYm90dG9tOiAxMzBweDsNCn0NCg0KLm91ci1jb3Vyc2VzIC5pdGVtIC5kb3duLWNvbnRlbnQgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KfQ0KDQoub3VyLWNvdXJzZXMgLml0ZW0gLmRvd24tY29udGVudCBoNCB7DQogIHBhZGRpbmc6IDI1cHg7DQogIGZvbnQtc2l6ZTogMThweDsNCiAgY29sb3I6ICMxZjI3MmI7DQogIHRleHQtYWxpZ246IGNlbnRlcjsgDQogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOw0KfQ0KDQoub3VyLWNvdXJzZXMgLml0ZW0gLmRvd24tY29udGVudCAuaW5mbyB7DQogIHBhZGRpbmc6IDI1cHg7DQp9DQoNCi5vdXItY291cnNlcyAuaXRlbSAuZG93bi1jb250ZW50IC5pbmZvIHVsIGxpIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBtYXJnaW4tcmlnaHQ6IDFweDsNCn0NCg0KLm91ci1jb3Vyc2VzIC5pdGVtIC5kb3duLWNvbnRlbnQgLmluZm8gdWwgbGkgaSB7DQogIGNvbG9yOiAjZjVhNDI1Ow0KICBmb250LXNpemU6IDE0cHg7DQp9DQoNCi5vdXItY291cnNlcyAuaXRlbSAuZG93bi1jb250ZW50IC5pbmZvIHNwYW4gew0KICBjb2xvcjogIzE0OWRlZjsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICBmb250LXdlaWdodDogNjAwOw0KICB0ZXh0LWFsaWduOiByaWdodDsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCn0NCg0KLm91ci1jb3Vyc2VzIC5vd2wtbmF2IHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHdpZHRoOiAxMDAlOw0KICB0b3A6IDUwJTsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NXB4KTsNCn0NCg0KLm91ci1jb3Vyc2VzIC5vd2wtZG90cyB7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICB3aWR0aDogMTAwJTsNCiAgbWFyZ2luLXRvcDogNDBweDsNCn0NCg0KLm91ci1jb3Vyc2VzIC5vd2wtZG90cyAub3dsLWRvdCB7DQogIHRyYW5zaXRpb246IGFsbCAuNXM7DQogIHdpZHRoOiA3cHg7DQogIGhlaWdodDogN3B4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCA1cHg7DQogIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgb3V0bGluZTogbm9uZTsNCn0NCg0KLm91ci1jb3Vyc2VzIC5vd2wtZG90cyAuYWN0aXZlIHsNCiAgd2lkdGg6IDI0cHg7DQogIGhlaWdodDogOHB4Ow0KICBib3JkZXItcmFkaXVzOiA0cHg7DQp9DQogICAgDQoub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1wcmV2ew0KICBtYXJnaW4tcmlnaHQ6IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgbGVmdDogLTgwcHg7DQp9DQoNCi5vdXItY291cnNlcyAub3dsLW5hdiAub3dsLXByZXYgc3BhbiwNCi5vdXItY291cnNlcyAub3dsLW5hdiAub3dsLW5leHQgc3BhbiB7DQogIG9wYWNpdHk6IDA7DQp9DQoNCi5vdXItY291cnNlcyAub3dsLW5hdiAub3dsLXByZXY6YmVmb3JlIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJzsNCiAgY29sb3I6ICMxZTFlMWU7DQogIGZvbnQtc2l6ZTogMjVweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgY29udGVudDogJ1xmMTA0JzsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgYm9yZGVyLXJhZGl1czogNTAlOw0KICBsaW5lLWhlaWdodDogNTBweDsNCn0NCg0KLm91ci1jb3Vyc2VzIC5vd2wtbmF2IC5vd2wtcHJldiB7DQogIG9wYWNpdHk6IDE7DQogIHRyYW5zaXRpb246IGFsbCAuNXM7DQp9DQoNCi5vdXItY291cnNlcyAub3dsLW5hdiAub3dsLXByZXY6aG92ZXIgew0KICBvcGFjaXR5OiAwLjk7DQp9DQoNCi5vdXItY291cnNlcyAub3dsLW5hdiAub3dsLW5leHQgew0KICBvcGFjaXR5OiAxOw0KICB0cmFuc2l0aW9uOiBhbGwgLjVzOw0KfQ0KDQoub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1uZXh0OmhvdmVyIHsNCiAgb3BhY2l0eTogMC45Ow0KfQ0KDQoub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1uZXh0ew0KICBtYXJnaW4tbGVmdDogMTBweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICByaWdodDogLTg1cHg7DQp9DQoNCi5vdXItY291cnNlcyAub3dsLW5hdiAub3dsLW5leHQ6YmVmb3JlIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJzsNCiAgY29sb3I6ICMxZTFlMWU7DQogIGZvbnQtc2l6ZTogMjVweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgY29udGVudDogJ1xmMTA1JzsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgYm9yZGVyLXJhZGl1czogNTAlOw0KICBsaW5lLWhlaWdodDogNTBweDsNCn0NCg0KDQovKg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpvdXIgZmFjdHMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKi8NCg0Kc2VjdGlvbi5vdXItZmFjdHMgew0KICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ZhY3RzLWJnLmpwZyk7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7DQogIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtc2l6ZTogY292ZXI7DQogIHBhZGRpbmc6IDE0MHB4IDBweCAxMjVweCAwcHg7DQp9DQoNCnNlY3Rpb24ub3VyLWZhY3RzIGgyIHsNCiAgZm9udC1zaXplOiAzOHB4Ow0KICBjb2xvcjogI2ZmZjsNCiAgbGluZS1oZWlnaHQ6IDUwcHg7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIGxldHRlci1zcGFjaW5nOiAwLjVweDsNCiAgbWFyZ2luLWJvdHRvbTogNTBweDsNCn0NCg0KLmNvdW50LWFyZWEtY29udGVudCB7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTAsMjUwLDI1MCwwLjE1KTsNCiAgYm9yZGVyLXJhZGl1czogMjBweDsNCiAgcGFkZGluZzogMjVweCAzMHB4IDM1cHggMzBweDsNCiAgbWFyZ2luOiAxNXB4IDBweDsNCn0NCg0KLnBlcmNlbnRhZ2UgLmNvdW50LWRpZ2l0OmFmdGVyIHsNCiAgY29udGVudDogJyUnOw0KICBtYXJnaW4tbGVmdDogM3B4Ow0KfQ0KDQouY291bnQtZGlnaXQgew0KICAgIG1hcmdpbjogNXB4IDBweDsNCiAgICBjb2xvcjogI2Y1YTQyNTsNCiAgICBmb250LXdlaWdodDogNzAwOw0KICAgIGZvbnQtc2l6ZTogMzZweDsNCn0NCi5jb3VudC10aXRsZSB7DQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogICAgY29sb3I6ICNmZmY7DQogICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4Ow0KfQ0KDQoubmV3LXN0dWRlbnRzIHsNCiAgbWFyZ2luLXRvcDogNDVweDsNCn0NCg0Kc2VjdGlvbi5vdXItZmFjdHMgLnZpZGVvIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBtYXJnaW4tbGVmdDogNzBweDsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy92aWRlby1pdGVtLWJnLmpwZyk7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7DQogIGJhY2tncm91bmQtc2l6ZTogY292ZXI7DQogIGJvcmRlci1yYWRpdXM6IDIwcHg7DQp9DQoNCnNlY3Rpb24ub3VyLWZhY3RzIC52aWRlbyBpbWcgew0KICBwYWRkaW5nOiAxNzBweCAwcHg7DQogIG1heC13aWR0aDogNTZweDsNCn0NCg0KDQovKiANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY29udGFjdCB1cw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KKi8NCg0Kc2VjdGlvbi5jb250YWN0LXVzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9tZWV0aW5ncy1iZy5qcGcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICBwYWRkaW5nOiAxNDBweCAwcHggMHB4IDBweDsNCn0NCg0Kc2VjdGlvbi5jb250YWN0LXVzICNjb250YWN0IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgYm9yZGVyLXJhZGl1czogMjBweDsNCiAgcGFkZGluZzogNDBweDsNCn0NCg0Kc2VjdGlvbi5jb250YWN0LXVzICNjb250YWN0IGgyIHsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgY29sb3I6ICMxZjI3MmI7DQogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOw0KICBtYXJnaW4tYm90dG9tOiA0MHB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMjBweDsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBmb250LXdlaWdodDogNzAwOw0KfQ0KDQpzZWN0aW9uLmNvbnRhY3QtdXMgI2NvbnRhY3QgaW5wdXQgew0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiA0MHB4Ow0KICBib3JkZXItcmFkaXVzOiAyMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3Ow0KICBvdXRsaW5lOiBub25lOw0KICBib3JkZXI6IG5vbmU7DQogIGJveC1zaGFkb3c6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTNweDsNCiAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgY29sb3I6ICM3YTdhN2E7DQogIHBhZGRpbmc6IDBweCAxNXB4Ow0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQpzZWN0aW9uLmNvbnRhY3QtdXMgI2NvbnRhY3QgdGV4dGFyZWEgew0KICB3aWR0aDogMTAwJTsNCiAgbWluLWhlaWdodDogMTQwcHg7DQogIG1heC1oZWlnaHQ6IDE4MHB4Ow0KICBib3JkZXItcmFkaXVzOiAyMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3Ow0KICBvdXRsaW5lOiBub25lOw0KICBib3JkZXI6IG5vbmU7DQogIGJveC1zaGFkb3c6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTNweDsNCiAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgY29sb3I6ICM3YTdhN2E7DQogIHBhZGRpbmc6IDE1cHg7DQogIG1hcmdpbi1ib3R0b206IDMwcHg7DQp9DQoNCnNlY3Rpb24uY29udGFjdC11cyAjY29udGFjdCBidXR0b24gew0KICBmb250LXNpemU6IDEzcHg7DQogIGNvbG9yOiAjZmZmOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ5ZGVmOw0KICBwYWRkaW5nOiAxMnB4IDMwcHg7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgYm9yZGVyLXJhZGl1czogMjJweDsNCiAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgdHJhbnNpdGlvbjogYWxsIC4zczsNCiAgYm9yZGVyOiBub25lOw0KICBvdXRsaW5lOiBub25lOw0KfQ0KDQpzZWN0aW9uLmNvbnRhY3QtdXMgI2NvbnRhY3QgYnV0dG9uOmhvdmVyIHsNCiAgb3BhY2l0eTogMC45Ow0KfQ0KDQpzZWN0aW9uLmNvbnRhY3QtdXMgLnJpZ2h0LWluZm8gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ5ZGVmOw0KICBib3JkZXItcmFkaXVzOiAyMHB4Ow0KICBwYWRkaW5nOiA0MHB4Ow0KfQ0KDQpzZWN0aW9uLmNvbnRhY3QtdXMgLnJpZ2h0LWluZm8gdWwgbGkgew0KICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1MCwyNTAsMjUwLDAuMTUpOw0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMzBweDsNCn0NCg0Kc2VjdGlvbi5jb250YWN0LXVzIC5yaWdodC1pbmZvIHVsIGxpOmxhc3QtY2hpbGQgew0KICBtYXJnaW4tYm90dG9tOiAwOw0KICBwYWRkaW5nLWJvdHRvbTogMDsNCiAgYm9yZGVyLWJvdHRvbTogbm9uZTsNCn0NCg0Kc2VjdGlvbi5jb250YWN0LXVzIC5yaWdodC1pbmZvIHVsIGxpIGg2IHsNCiAgY29sb3I6ICNmZmY7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgbWFyZ2luLWJvdHRvbTogMTBweDsNCn0NCg0Kc2VjdGlvbi5jb250YWN0LXVzIC5yaWdodC1pbmZvIHVsIGxpIHNwYW4gew0KICBkaXNwbGF5OiBibG9jazsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICBjb2xvcjogI2ZmZjsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCn0NCg0KLmZvb3RlciB7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgbWFyZ2luLXRvcDogMTQwcHg7DQogIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1MCwyNTAsMjUwLDAuMTUpOw0KICBwYWRkaW5nOiA1MHB4IDBweDsNCn0NCi5mb290ZXIgcCB7DQogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCi5mb290ZXIgcCBhIHsNCiAgY29sb3I6ICNmNWE0MjU7DQp9DQoNCg0KLyoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaGVhZGluZyBwYWdlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiovDQoNCnNlY3Rpb24uaGVhZGluZy1wYWdlIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zaW5nbGUtbWVldGluZy5qcGcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICBwYWRkaW5nLXRvcDogMjMwcHg7DQogIHBhZGRpbmctYm90dG9tOiAxMTBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpzZWN0aW9uLmhlYWRpbmctcGFnZSBoNiB7DQogIG1hcmdpbi10b3A6IDBweDsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICBmb250LXdlaWdodDogNjAwOw0KICBjb2xvcjogI2ZmZjsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCn0NCg0Kc2VjdGlvbi5oZWFkaW5nLXBhZ2UgaDIgew0KICBtYXJnaW4tdG9wOiAyMHB4Ow0KICBtYXJnaW4tYm90dG9tOiAyMHB4Ow0KICBmb250LXNpemU6IDM2cHg7DQogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogIGZvbnQtd2VpZ2h0OiA4MDA7DQogIGNvbG9yOiAjZmZmOw0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQoNCi8qDQovKg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpoZWFkaW5nIHBhZ2UNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKi8NCg0Kc2VjdGlvbi5oZWFkaW5nLXBhZ2UxIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy85NjB4MC5qcGcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICBwYWRkaW5nLXRvcDogMjMwcHg7DQogIHBhZGRpbmctYm90dG9tOiAxMTBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpzZWN0aW9uLmhlYWRpbmctcGFnZTEgaDYgew0KICBtYXJnaW4tdG9wOiAwcHg7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgY29sb3I6ICNmZmY7DQogIGxldHRlci1zcGFjaW5nOiAxcHg7DQp9DQoNCnNlY3Rpb24uaGVhZGluZy1wYWdlMSBoMiB7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGZvbnQtc2l6ZTogMzZweDsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgZm9udC13ZWlnaHQ6IDgwMDsNCiAgY29sb3I6ICNmZmY7DQogIGxldHRlci1zcGFjaW5nOiAxcHg7DQp9DQoNCg0KLyoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaGVhZGluZyBwYWdlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiovDQoNCnNlY3Rpb24uaGVhZGluZy1wYWdlMiB7DQogIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvNjQxMTU0MjlfOTA1LmpwZyk7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtc2l6ZTogY292ZXI7DQogIHBhZGRpbmctdG9wOiAyMzBweDsNCiAgcGFkZGluZy1ib3R0b206IDExMHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCnNlY3Rpb24uaGVhZGluZy1wYWdlMiBoNiB7DQogIG1hcmdpbi10b3A6IDBweDsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICBmb250LXdlaWdodDogNjAwOw0KICBjb2xvcjogI2ZmZjsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCn0NCg0Kc2VjdGlvbi5oZWFkaW5nLXBhZ2UyIGgyIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgbWFyZ2luLWJvdHRvbTogMjBweDsNCiAgZm9udC1zaXplOiAzNnB4Ow0KICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICBmb250LXdlaWdodDogODAwOw0KICBjb2xvcjogI2ZmZjsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCn0NCg0KDQovKg0KLyoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdXBjb21pbmcgbWVldGluZ3MgcGFnZQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoqLw0KDQpzZWN0aW9uLm1lZXRpbmdzLXBhZ2Ugew0KICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL21lZXRpbmdzLXBhZ2UtYmcuanBnKTsNCiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsNCiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDsNCiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsNCiAgcGFkZGluZy10b3A6IDE0MHB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMHB4Ow0KfQ0KDQpzZWN0aW9uLm1lZXRpbmdzLXBhZ2UgLmZpbHRlcnMgew0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIG1hcmdpbi1ib3R0b206IDYwcHg7DQp9DQoNCnNlY3Rpb24ubWVldGluZ3MtcGFnZSAuZmlsdGVycyBsaSB7DQogIGZvbnQtc2l6ZTogMTNweDsNCiAgY29sb3I6ICMxNDlkZWY7DQogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7DQogIHBhZGRpbmc6IDExcHggMzBweDsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBib3JkZXItcmFkaXVzOiAyMnB4Ow0KICBmb250LXdlaWdodDogNjAwOw0KICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICB0cmFuc2l0aW9uOiBhbGwgLjNzOw0KICBjdXJzb3I6IHBvaW50ZXI7DQogIG1hcmdpbjogMHB4IDNweDsNCn0NCg0Kc2VjdGlvbi5tZWV0aW5ncy1wYWdlIC5maWx0ZXJzIHVsIGxpLmFjdGl2ZSwNCnNlY3Rpb24ubWVldGluZ3MtcGFnZSAuZmlsdGVycyB1bCBsaTpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMxNDlkZWY7DQogIGNvbG9yOiAjZmZmOw0KfQ0KDQpzZWN0aW9uLm1lZXRpbmdzLXBhZ2UgLnBhZ2luYXRpb24gew0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIHdpZHRoOiAxMDAlOw0KICBtYXJnaW4tdG9wOiAzMHB4Ow0KICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQp9DQoNCnNlY3Rpb24ubWVldGluZ3MtcGFnZSAucGFnaW5hdGlvbiB1bCBsaSB7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCn0NCg0Kc2VjdGlvbi5tZWV0aW5ncy1wYWdlIC5wYWdpbmF0aW9uIHVsIGxpIGEgew0KICB3aWR0aDogNDBweDsNCiAgaGVpZ2h0OiA0MHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KICBjb2xvcjogIzFmMjcyYjsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIGxpbmUtaGVpZ2h0OiA0MHB4Ow0KICBmb250LXdlaWdodDogNjAwOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IGFsbCAuM3M7DQp9DQoNCnNlY3Rpb24ubWVldGluZ3MtcGFnZSAubWFpbi1idXR0b24tcmVkIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpzZWN0aW9uLm1lZXRpbmdzLXBhZ2UgLm1haW4tYnV0dG9uLXJlZCBhIHsNCiAgcGFkZGluZzogMTJweCA2MHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIG1hcmdpbi10b3A6IDMwcHg7DQp9DQoNCnNlY3Rpb24ubWVldGluZ3MtcGFnZSAucGFnaW5hdGlvbiB1bCBsaS5hY3RpdmUgYSwNCnNlY3Rpb24ubWVldGluZ3MtcGFnZSAucGFnaW5hdGlvbiB1bCBsaSBhOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzE0OWRlZjsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCi5tZWV0aW5nLXNpbmdsZS1pdGVtIC50aHVtYiB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCn0NCg0KLm1lZXRpbmctc2luZ2xlLWl0ZW0gLnRodW1iIGltZyB7DQogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyMHB4Ow0KICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyMHB4Ow0KfQ0KDQoubWVldGluZy1zaW5nbGUtaXRlbSAudGh1bWIgLnByaWNlIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBsZWZ0OiAyMHB4Ow0KICB0b3A6IDIwcHg7DQp9DQoNCi5tZWV0aW5nLXNpbmdsZS1pdGVtIC50aHVtYiAucHJpY2Ugc3BhbiB7DQogIGZvbnQtc2l6ZTogMTZweDsNCiAgY29sb3I6ICMxZjI3MmI7DQogIGZvbnQtd2VpZ2h0OiA2MDA7DQogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUwLDI1MCwyNTAsMC45KTsNCiAgcGFkZGluZzogN3B4IDEycHg7DQogIGJvcmRlci1yYWRpdXM6IDEwcHg7DQp9DQoNCi5tZWV0aW5nLXNpbmdsZS1pdGVtIC5kb3duLWNvbnRlbnQgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KICBwYWRkaW5nOiA0MHB4Ow0KICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjBweDsNCiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjBweDsNCn0NCg0KLm1lZXRpbmctc2luZ2xlLWl0ZW0gLnRodW1iIC5kYXRlIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwyNTAsMjUwLDAuOSk7DQogIHdpZHRoOiA4MHB4Ow0KICBoZWlnaHQ6IDgwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgcGFkZGluZzogMTVweCAwcHg7DQogIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogIHJpZ2h0OiAyMHB4Ow0KICB0b3A6IDIwcHg7DQp9DQoNCi5tZWV0aW5nLXNpbmdsZS1pdGVtIC50aHVtYiAuZGF0ZSBoNiB7DQogIGZvbnQtc2l6ZTogMTNweDsNCiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgY29sb3I6ICMxNDlkZWY7DQp9DQoNCi5tZWV0aW5nLXNpbmdsZS1pdGVtIC50aHVtYiAuZGF0ZSBzcGFuIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNvbG9yOiAjMWYyNzJiOw0KICBmb250LXNpemU6IDIycHg7DQogIG1hcmdpbi10b3A6IDdweDsNCn0NCg0KLm1lZXRpbmctc2luZ2xlLWl0ZW0gLmRvd24tY29udGVudCBoNCB7DQogIGZvbnQtc2l6ZTogMjJweDsNCiAgY29sb3I6ICMxZjI3MmI7DQogIGZvbnQtd2VpZ2h0OiA2MDA7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgbWFyZ2luLWJvdHRvbTogMTVweDsNCn0NCg0KLm1lZXRpbmctc2luZ2xlLWl0ZW0gLmRvd24tY29udGVudCBoNSB7DQogIGZvbnQtc2l6ZTogMThweDsNCiAgY29sb3I6ICMxZjI3MmI7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgbWFyZ2luLWJvdHRvbTogMTVweDsNCn0NCg0KLm1lZXRpbmctc2luZ2xlLWl0ZW0gLmRvd24tY29udGVudCBwIHsNCiAgY29sb3I6ICMxZjI3MmI7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KLm1lZXRpbmctc2luZ2xlLWl0ZW0gLmRvd24tY29udGVudCBwLmRlc2NyaXB0aW9uIHsNCiAgbWFyZ2luLXRvcDogNDBweDsNCiAgcGFkZGluZy10b3A6IDQwcHg7DQogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlOw0KICBtYXJnaW4tYm90dG9tOiA0MHB4Ow0KICBwYWRkaW5nLWJvdHRvbTogNDBweDsNCiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7DQp9DQoNCi5tZWV0aW5nLXNpbmdsZS1pdGVtIC5kb3duLWNvbnRlbnQgLnNoYXJlIHsNCiAgbWFyZ2luLXRvcDogNDBweDsNCiAgcGFkZGluZy10b3A6IDQwcHg7DQogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlOw0KfQ0KDQoubWVldGluZy1zaW5nbGUtaXRlbSAuZG93bi1jb250ZW50IC5zaGFyZSBoNSB7DQogIGZsb2F0OiBsZWZ0Ow0KICBtYXJnaW4tcmlnaHQ6IDEwcHg7DQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KLm1lZXRpbmctc2luZ2xlLWl0ZW0gLmRvd24tY29udGVudCAuc2hhcmUgdWwgbGkgew0KICBkaXNwbGF5OiBpbmxpbmU7DQp9DQoNCi5tZWV0aW5nLXNpbmdsZS1pdGVtIC5kb3duLWNvbnRlbnQgLnNoYXJlIHVsIGxpIGEgew0KICBmb250LXNpemU6IDE0cHg7DQogIGNvbG9yOiAjMWYyNzJiOw0KICB0cmFuc2l0aW9uOiBhbGwgLjNzOw0KfQ0KDQoubWVldGluZy1zaW5nbGUtaXRlbSAuZG93bi1jb250ZW50IC5zaGFyZSB1bCBsaSBhOmhvdmVyIHsNCiAgY29sb3I6ICNmNWE0MjU7DQp9DQoNCi8qIE1lZXRpbmcgaXRlbSBjb2x1bW4gKi8NCi50ZW1wbGF0ZW1vLWl0ZW0tY29sIHsNCgl3aWR0aDogMzElOw0KfQ0KDQpAbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHsNCgkudGVtcGxhdGVtby1pdGVtLWNvbCB7DQoJCXdpZHRoOiA0NSU7DQoJfQ0KfQ0KDQpAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsNCgkudGVtcGxhdGVtby1pdGVtLWNvbCB7DQoJCXdpZHRoOiAxMDAlOw0KCX0NCn0NCg0KLyogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnJlc3BvbnNpdmUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCiovDQoNCkBtZWRpYSAobWF4LXdpZHRoOiAxMzAwcHgpIHsNCiAgLnNlcnZpY2VzIC5vd2wtbmF2IC5vd2wtbmV4dHsNCiAgICByaWdodDogLTMwcHg7DQogIH0NCiAgLnNlcnZpY2VzIC5vd2wtbmF2IC5vd2wtcHJldnsNCiAgICBsZWZ0OiAtMjVweDsNCiAgfQ0KICAub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1uZXh0ew0KICAgIHJpZ2h0OiAtMzBweDsNCiAgfQ0KICAub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1wcmV2ew0KICAgIGxlZnQ6IC0yNXB4Ow0KICB9DQp9DQoNCkBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHsNCiAgLnNlcnZpY2VzIC5vd2wtbmF2IC5vd2wtbmV4dHsNCiAgICByaWdodDogLTcwcHg7DQogIH0NCiAgLnNlcnZpY2VzIC5vd2wtbmF2IC5vd2wtcHJldnsNCiAgICBsZWZ0OiAtNjVweDsNCiAgfQ0KICAub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1uZXh0ew0KICAgIHJpZ2h0OiAtNzBweDsNCiAgfQ0KICAub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1wcmV2ew0KICAgIGxlZnQ6IC02NXB4Ow0KICB9DQp9DQoNCkBtZWRpYSAobWF4LXdpZHRoOiAxMDg1cHgpIHsNCiAgLnNlcnZpY2VzIC5vd2wtbmF2IC5vd2wtbmV4dHsNCiAgICByaWdodDogLTMwcHg7DQogIH0NCiAgLnNlcnZpY2VzIC5vd2wtbmF2IC5vd2wtcHJldnsNCiAgICBsZWZ0OiAtMjVweDsNCiAgfQ0KICAub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1uZXh0ew0KICAgIHJpZ2h0OiAtMzBweDsNCiAgfQ0KICAub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1wcmV2ew0KICAgIGxlZnQ6IC0yNXB4Ow0KICB9DQp9DQoNCkBtZWRpYSAobWF4LXdpZHRoOiAxMDA1cHgpIHsNCiAgLnNlcnZpY2VzIC5vd2wtbmF2IC5vd2wtbmV4dHsNCiAgICBkaXNwbGF5OiBub25lOw0KICB9DQogIC5zZXJ2aWNlcyAub3dsLW5hdiAub3dsLXByZXZ7DQogICAgZGlzcGxheTogbm9uZTsNCiAgfQ0KICAub3VyLWNvdXJzZXMgLm93bC1uYXYgLm93bC1uZXh0ew0KICAgIGRpc3BsYXk6IG5vbmU7DQogIH0NCiAgLm91ci1jb3Vyc2VzIC5vd2wtbmF2IC5vd2wtcHJldnsNCiAgICBkaXNwbGF5OiBub25lOw0KICB9DQp9DQoNCkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkgew0KDQogIC5tYWluLWJhbm5lciAuY2FwdGlvbiB7DQogICAgdG9wOiA2MCU7DQogIH0NCg0KICAubWFpbi1iYW5uZXIgLmNhcHRpb24gaDIgew0KICAgIG1hcmdpbi10b3A6IDEwcHg7DQogICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICBmb250LXNpemU6IDIycHg7DQogIH0NCg0KICAubWFpbi1iYW5uZXIgLmNhcHRpb24gLm1haW4tYnV0dG9uLXJlZCB7DQogICAgbWFyZ2luLXRvcDogMTVweDsNCiAgfQ0KDQogIC5zZXJ2aWNlcyB7DQogICAgbWFyZ2luLXRvcDogNjBweDsNCiAgfQ0KDQogIHNlY3Rpb24udXBjb21pbmctbWVldGluZ3Mgew0KICAgIHBhZGRpbmctdG9wOiA0MDBweDsNCiAgfQ0KDQogIHNlY3Rpb24udXBjb21pbmctbWVldGluZ3MgLmNhdGVnb3JpZXMgew0KICAgIG1hcmdpbi1yaWdodDogMHB4Ow0KICAgIG1hcmdpbi1ib3R0b206IDMwcHg7DQogIH0NCg0KICAuYWNjb3JkaW9ucyB7DQogICAgbWFyZ2luLWxlZnQ6IDBweDsNCiAgfQ0KDQogIC5uZXctc3R1ZGVudHMgew0KICAgIG1hcmdpbi10b3A6IDE1cHg7DQogIH0NCg0KICBzZWN0aW9uLm91ci1mYWN0cyAudmlkZW8gew0KICAgIG1hcmdpbi1sZWZ0OiAwcHg7DQogICAgbWFyZ2luLXRvcDogMTVweDsNCiAgfQ0KDQogIHNlY3Rpb24uY29udGFjdC11cyAjY29udGFjdCB7DQogICAgbWFyZ2luLWJvdHRvbTogMzBweDsNCiAgfQ0KDQp9DQoNCkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkgew0KDQogIC5zdWItaGVhZGVyIC5sZWZ0LWNvbnRlbnQgcCB7DQogICAgZGlzcGxheTogbm9uZTsNCiAgfQ0KDQogIC5zdWItaGVhZGVyIC5yaWdodC1pY29ucyB7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICB9DQoNCiAgLm1haW4tbmF2IC5uYXYgLnN1Yi1tZW51IHsNCiAgICBkaXNwbGF5OiBub25lOw0KICB9DQoNCiAgLmhlYWRlci1hcmVhIC5tYWluLW5hdiAubmF2IGxpIHVsLnN1Yi1tZW51IGxpIGEgew0KICAgIGNvbG9yOiAjMWYyNzJiOw0KICB9DQoNCn0="}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/ct4.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.391Z","timestamp":1785132838391,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/ct4.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 29 Apr 2022 18:22:34 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2641\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":2641,"size_decoded":2906,"mime_type":"image/png","magic":"PNG image data, 166 x 136, 8-bit colormap, non-interlaced","md5":"539f8dcffbf8a992cf9fc3ef591f282f","sha1":"62b8329284fe878c9bdcc703934e8266a13bc62d","sha256":"6a4ff25bb44022dc958c761019ca62db6f3967e450d5bd2ed89d1774c5cfba3c","sha512":"fc8c4d1682b3393b18ce8aa676494466a7094a82663f1db6e1f01e2c53a5789472640658fc38418fa97260c3342dc0af135c7a876c0dd7bc459c5fdc1ca9589e","ssdeep":"","tlshash":"8b515cdb7c5386e61c7d39fdd2ad1458bfb34da0b120cf169e82e88aa4703b05d051e4","first_seen":"2025-08-12T04:19:48.056641Z","last_seen":"2026-07-27T06:14:42.615257Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/carousel-image.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.593Z","timestamp":1785132838593,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/carousel-image.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Thu, 28 Nov 2024 07:45:22 GMT\r\naccept-ranges: bytes\r\ncontent-length: 48043\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":48043,"size_decoded":48309,"mime_type":"image/png","magic":"ISO Media, AVIF Image","md5":"a5acf2200ab0550c856f1e0a0b57cfbb","sha1":"6771a89a2625a80f95e173cae6d597004d935e22","sha256":"f1fa57654c84264b53181d64e28f9489300c8a037755564c364a78e3d3bbf46c","sha512":"ce8b6d85df2a27298838ceba0a140c0cb953f40e55f40ecc5f22128c5f75365341656a12f0515254093b7ba24e828de9dae6b1b4f6dda057e0dff71933c0a9e8","ssdeep":"768:TbT56Ld8DP6ifogcoXr6aY02JjIQIKo56HY8Ml0DiDaCltfiBU4o8pIGakk3z:TP56e6Qogcir6aY0+jIQIKoY48MdDaUZ","tlshash":"f123f17659b86f2cc4411639c88feb911f0218d18859f4a8f055fd5a3f4a92dcbeb4d3","first_seen":"2025-08-12T04:19:47.97061Z","last_seen":"2026-07-27T06:14:42.616214Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/service-item-bg.jpg","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.838Z","timestamp":1785132838838,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/service-item-bg.jpg HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/templatemo-edu-meeting.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Thu, 16 Feb 2023 22:37:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 12358\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":12358,"size_decoded":12625,"mime_type":"image/jpeg","magic":"JPEG image data, baseline, precision 8, 370x220, components 3","md5":"63193cb320d73820301d87d88b2f16a3","sha1":"0706d2e974619fb74aa0e21cea08e01999a6588e","sha256":"b69eb2ee58454187672ffa10f3b4597af63d34df2ba0ba7a7f991927d5e6b694","sha512":"b3e9466dfde47c68ed0d82123be6b790292e8eb62916d4638944c6762be2f455a368b037ff38be9dd5056d53a0a62fec55c2d1af0cfee9252a6bcee8c3fa427f","ssdeep":"384:ny31GYuzMRTKYgQiQ5n5pnl3Wpv05rLfoqU8Ia+3G:9w5KnQiQdtWEgqDIab","tlshash":"b942b0c29f13d201dd37728ec47524de78f11b8429b739b15423ea67c8a63de1eb4919","first_seen":"2025-08-12T04:19:47.9769Z","last_seen":"2026-07-27T06:14:42.617112Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":23,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":23,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/next.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.923Z","timestamp":1785132838923,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/next.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/lightbox.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Mon, 03 Jan 2022 23:40:36 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1350\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1350,"size_decoded":1615,"mime_type":"image/png","magic":"PNG image data, 50 x 45, 8-bit/color RGBA, non-interlaced","md5":"31f15875975aab69085470aabbfec802","sha1":"777e92c050f600b4519299c3d786b8f2f459fea4","sha256":"15b869b02c6fbaa8c6c26445a2dd2d9bad80fd27b1409f8179e5dd89dc89d90a","sha512":"edc920dcd2f5ac9a6e08098c6a59f888a9cb135ff4ef3dc2183931e065b6531e00e2c8acd3c329a3d90eb939ea3db318a9b677b5aa78a227815373d7008d40aa","ssdeep":"","tlshash":"c221d8f1f658249b813a8279587be1602cbf985e31b4cb8709ddbb3323b5c04e102376","first_seen":"2023-04-05T16:20:30Z","last_seen":"2026-07-27T07:39:05.981928Z","times_seen":21085,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAADIAAAAtCAYAAADsvzj/AAAFDUlEQVR4Ac2ZS0xcVRjHvTN3hisw0GIRZ3AeLWHQWqdVsRqgA86AUmpqoy20Whd2YYhprJq45BVAF7yJkQQTluDGiEhBF5qYRsIjYYMKQxNNMO4gQHgjZfxP8pF8ufEe0qQ5pyf5BTKcWfzyff/vnHt5xLQ0wgbsQCfswEY80BWPxx8I5sUlHMBJP0nm4RfRWAUMkAqOgseII8AFDNqjPYwiGuEAySADeEEuOEkE6bNjIIX22riQchHWSo+SRACc1nU9ahjGG+ASfn8Vn+WT0BNUMV0so04kFTwJTodCoeuTk5N3dnd397a3t/8dHx+fzM7OvoG/nQPPADdwscqoF2HBPgJynE5nZGFhYTZuWlNTU3/4fL6b2FMMnmUyTpJRLqKTSAbIQyu9vrW1tRv/n4Uqzfv9/g+x7xUQAh6QxmVUV0SnKRWESMXm5uZ63GJNT0//GQgEPsHeUibD20xTLeKioBdUV1e3rKysrFrJzM3N/eP1ej/F3jImIxgAcsOeDLLAKRAtLCz8HDKWlZmdnf3b4/F8zCojGADyz5F04AUvgPJoNNq2tLS0YSUzNjY2iwHwEWXmFHCzymiqRGwgiaaXD7wIysvKytqWl5e3rGQwAO4iM7ewt4SmmYfLqLpr2U0yZ0FFaWlp597e3r6VDEbzXapMlGQEA0COiEYyTmozP8lcKC4u7lhdXV2zksGhOZeVlXWLy5gHgDwRJsMqE6A2qygoKGhBm60L2izmdruZjGkAyBShxTNzlGTOgvMYAO2iAYDKxKjNSgQDQI6IRWb8VJnXMADaUZlNK5mJiYl5DAC6AQgGgCwRWjaWGR/IB+fD4XDr2trahqDN5lEZ3mbZ5gEgW4QPAD6aK3BotmIArAsqE2MDIMTajGTkinAZ3mb5NAAS58zGIQPgJvaGwVMgk5597ECTLcJl+AB4GVyKRCJfLi4uijLzGzLzHrWYj1pMVyXCB4BBz/J5oAzcwDT7OhaLWZ4zMzMzvyNX79rt9uOUNyewqRSxsbzk0Jh9H3w2MDDwV1yw+vv7Ox0OR4C+q1REAzr1+ON0TpSDD+rq6n7d2dmxusbs9/T0fJOUlBTRNO2gIg6lGSGJYyAXFIFrtbW1P4oq0dnZOYR9F8EZdqaoCDtVgrJBEoXgck1Nzfciia6urlHsu0rSOSADJEkXYRK8EufAlYaGhtsiiba2thFk4kAij75Po1fiOcIkkplEGFQ2NTWNCBz2W1tbb9tstkrsLaDvcQlN5hWFS2SyTFxubGwcFUl0dHT8gH1VTCITJHMJWSLmYAcPMlFfXy9sJ0gkMnGNpEnCXAkJIhYSReAtBHvosGCTRBgEWSV0qc8jPNhMIgyutLS0/CSSSGRC1/Uqkg5aZUKGiDkTQVAMqtrb238+RGJUHGyZb1F4Je4/2FfFwZYr4qRb7QnwEngTwR4+5JxIZOJtcbDlv2lMAR5wBjfUi7h2fCuS6Ovru6Np2nVqvzwmQcFW9+43HeSg10twix0RSfT29v5iGMY7dMLniTOh+N8KghN7lKZTIQgKMiG/IkwkCJELFiL7uMWOYE+lWUL8elRNa51APoqGh4cTN9p7TOJed3f3d4nz5P4l1ITdDU66XK5Ic3PzF0NDQ1ODg4NT+P0rCFbQM3qu4MRWLsIfX7PB0yAEngPP089TwA8yBMFWKmJ+qZBGj7FecJzw0mfpwBBLqBexseAbIBWkESnAEPybQLnIf4JfIzSb+FymAAAAAElFTkSuQmCC"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/favicon.ico","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.164Z","timestamp":1785132839164,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /favicon.ico HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:59 GMT\r\ncontent-type: image/x-icon\r\nlast-modified: Sun, 18 Aug 2019 12:04:34 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 451\r\ndate: Mon, 27 Jul 2026 06:13:59 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1150,"size_decoded":763,"mime_type":"image/x-icon","magic":"MS Windows icon resource - 1 icon, 16x16, 32 bits/pixel","md5":"b9e9cfccd15ebf492b4410f605037a10","sha1":"d866c1eb6918ac833f5ae69b8a3b6c9314968aa1","sha256":"fd0d560d08308290efaa44db399268fba4e8957d3927a6f189c665a9f5b8aa2c","sha512":"936fdc33e7e889830d3d2d11a536948e4a006147130954e9005f1950e28a55f1382fa0d713f353da397f2cdae30bd1980f7643e1624e9bbc7ed75c505241564a","ssdeep":"","tlshash":"f72199f0ba477e54fd324370d1d6bf02820ebc63900042cdb368bc5bb883458e923a89","first_seen":"2023-05-23T21:09:26Z","last_seen":"2026-07-27T07:02:07.759977Z","times_seen":158,"resource_available":false,"data":"AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABMLAAATCwAAAAAAAAAAAAAinv8BIp7/ASKe/wAinv8GIp7/RiKe/6Minv/gIp7/+CKe//cinv/eIp7/oiKe/0Yinv8GIp7/ACKe/wAinv8AIp7/ASKe/wAinv8XIp7/jyKe/+0inv//Ip7//yGe//8inv//Ip7//yKe//8inv/tIp7/jSKe/xYinv8AIp7/ACKe/wAinv8WIp7/rSKe//4inv//Ip7//yKe//8wpP//KKH//yKe//8inv//Ip7//yKe//4inv+tIp7/FyKe/wAinv8GIp7/jiKe//8inv//Ip7//ymh//8pof//mtP//2u+//98xf//J6D//yKe//8inv//Ip7//yKe/5Einv8GIp7/SCKe/+winv//Ip7//ySf//+Rz///vOH//93w//+y3f//uOD//y2j//8gnf//Ip7//yKe//8inv/tIp7/SSKe/6Qinv//Ip7//yKe//8inv//V7X//+Hy///s9///zOn//+b0//+94v//UbP//yGd//8inv//Ip7//yKe/6Yinv/gIp7//yKe//8inv//IJ3//zio///i8v//q9r//ymh//9iuv//7/j//8Pl//8rov//IZ7//yKe//8inv/jIp7/+iKe//8inv//Ip7//x+d//9VtP//9vv//7bf//9Wtf//bb///+/4///O6f//LaP//yGe//8inv//Ip7/+yKe//sinv//Ip7//yKe//8cm///d8P///n8//+03v//yOf///f7///g8f//cMD//yKe//8inv//Ip7//yKe//oinv/hIp7//yKe//8moP//Ra7//6/c///p9v//Pqr//0Gs///k8///st3//ySf//8inv//Ip7//yKe//8inv/hIp7/oyKe//8hnv//MKT//6ra///o9f//8vr//6na//+s2v//+Pz//7Hd//8ln///Ip7//yKe//8inv//Ip7/pSKe/0Yinv/sIp7//yOe//8sov//h8r//8Tl///T7P//wuT//5rT//9Hrv//IZ3//yKe//8inv//Ip7/7SKe/0kinv8GIp7/kCKe//8inv//H53//2G6//9uv///otb//0au//8enP//IJ3//yKe//8inv//Ip7//yKe/48inv8GIp7/ACKe/xginv+uIp7//iKe//8inv//JJ///zOl//8moP//Ip7//yKe//8inv//Ip7//iKe/64inv8XIp7/ACKe/wEinv8AIp7/FyKe/44inv/tIp7//yKe//8hnv//Ip7//yKe//8inv//Ip7/7iKe/5Einv8YIp7/ACKe/wEinv8BIp7/ASKe/wAinv8GIp7/RiKe/6Iinv/fIp7/+CKe//kinv/hIp7/pSKe/0cinv8HIp7/ACKe/wEinv8BIAcAAEADAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAABAAgAAIAQAAA=="}},"time_used":22,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/translate_static/img/te_bk.gif","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.772Z","timestamp":1785132839772,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /translate_static/img/te_bk.gif HTTP/1.1\r\nHost: translate.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 848\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 10:11:17 GMT\r\nexpires: Fri, 23 Jul 2027 10:11:17 GMT\r\ncache-control: public, max-age=31536000\r\nage: 331362\r\nlast-modified: Sun, 25 Jun 2023 02:58:00 GMT\r\ncontent-type: image/gif\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":848,"size_decoded":1507,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 59","md5":"daf9b48977041ac85a62dc9b7c16b38d","sha1":"049dcb061470572d06fd83b287ebd1d96e6bb870","sha256":"cb1fd0e051209c32622e91cdeda967e50d80a184b185ac6a656a807986e8eb75","sha512":"99f5f27990b6b5559c751a92c04037f5d42e848a966893484af66d3f66828c29a2dddc8788d7dd4cd835e8ab6d834e74fb3eaa4e2cd72d55b2813d7aab990af2","ssdeep":"","tlshash":"1c018c0cc8700a19e3422fb0ca5b6e0429675b465d88b20fb6aa22c27d04ba48049b1c","first_seen":"2023-04-05T23:29:53Z","last_seen":"2026-07-27T09:46:57.038892Z","times_seen":9548,"resource_available":false,"data":"R0lGODlhAQA7APcAANfX19/f3+Hh4eLi4uTk5Obm5ujo6Orq6uvr6+3t7e7u7uTv++bw++fw/Ojx/Ory/O30/O71/fHx8fP4/fT5/fb6/vj7/vr8/vz9//7+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAQA7AAAINQAzCBxIUCCGCwgtVFhIYcKECA8jQHgw8UEDBg4aLGCwIIOEjyAlKEiA4ICBAgQGCAgQAEBAADs="}},"time_used":17,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/slick-slider.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.349Z","timestamp":1785132838349,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/js/slick-slider.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 03 Jan 2022 23:41:00 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 14213\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":87155,"size_decoded":14451,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with CRLF line terminators","md5":"af2f1cfdc149f699184f9f77b38e2f63","sha1":"044c2bd5abfe6d64a7ae1cb6b2498292ac731376","sha256":"3e9129d59856462df961a1f4a040db63b1903001cc49abea9c9719f267245c95","sha512":"dd36193cb22f3d5b9d8a558ac2c5bce77babaf8af0cf0b7c2935035e6f3fc8f2aecf6c58a18b8648862aed066b80918b0afa529a496f52d74f8ba716ec7377d1","ssdeep":"1536:NOBYDpH7DRTtwn7158/HVqg8d/ZMuY2cpQX6i7:NOBYDpbDRTtwn7158/HVqg8dxMuY+7","tlshash":"1983128f5552131688b333b9ae56c12cf7bb91374101969dbddc4289afb04148beafec","first_seen":"2023-03-07T01:41:57Z","last_seen":"2026-07-27T06:14:42.620598Z","times_seen":336,"resource_available":true,"data":"LyoNCiAgICAgXyBfICAgICAgXyAgICAgICBfDQogX19ffCAoXykgX19ffCB8IF9fICAoXylfX18NCi8gX198IHwgfC8gX198IHwvIC8gIHwgLyBfX3wNClxfXyBcIHwgfCAoX198ICAgPCBfIHwgXF9fIFwNCnxfX18vX3xffFxfX198X3xcXyhfKS8gfF9fXy8NCiAgICAgICAgICAgICAgICAgICB8X18vDQoNCiBWZXJzaW9uOiAxLjguMA0KICBBdXRob3I6IEtlbiBXaGVlbGVyDQogV2Vic2l0ZTogaHR0cDovL2tlbndoZWVsZXIuZ2l0aHViLmlvDQogICAgRG9jczogaHR0cDovL2tlbndoZWVsZXIuZ2l0aHViLmlvL3NsaWNrDQogICAgUmVwbzogaHR0cDovL2dpdGh1Yi5jb20va2Vud2hlZWxlci9zbGljaw0KICBJc3N1ZXM6IGh0dHA6Ly9naXRodWIuY29tL2tlbndoZWVsZXIvc2xpY2svaXNzdWVzDQoNCiAqLw0KLyogZ2xvYmFsIHdpbmRvdywgZG9jdW1lbnQsIGRlZmluZSwgalF1ZXJ5LCBzZXRJbnRlcnZhbCwgY2xlYXJJbnRlcnZhbCAqLw0KKGZ1bmN0aW9uKGZhY3RvcnkpIHsNCiAgICAndXNlIHN0cmljdCc7DQogICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkgew0KICAgICAgICBkZWZpbmUoWydqcXVlcnknXSwgZmFjdG9yeSk7DQogICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHsNCiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoJ2pxdWVyeScpKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICBmYWN0b3J5KGpRdWVyeSk7DQogICAgfQ0KDQp9KGZ1bmN0aW9uKCQpIHsNCiAgICAndXNlIHN0cmljdCc7DQogICAgdmFyIFNsaWNrID0gd2luZG93LlNsaWNrIHx8IHt9Ow0KDQogICAgU2xpY2sgPSAoZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIGluc3RhbmNlVWlkID0gMDsNCg0KICAgICAgICBmdW5jdGlvbiBTbGljayhlbGVtZW50LCBzZXR0aW5ncykgew0KDQogICAgICAgICAgICB2YXIgXyA9IHRoaXMsIGRhdGFTZXR0aW5nczsNCg0KICAgICAgICAgICAgXy5kZWZhdWx0cyA9IHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5OiB0cnVlLA0KICAgICAgICAgICAgICAgIGFkYXB0aXZlSGVpZ2h0OiBmYWxzZSwNCiAgICAgICAgICAgICAgICBhcHBlbmRBcnJvd3M6ICQoZWxlbWVudCksDQogICAgICAgICAgICAgICAgYXBwZW5kRG90czogJChlbGVtZW50KSwNCiAgICAgICAgICAgICAgICBhcnJvd3M6IHRydWUsDQogICAgICAgICAgICAgICAgYXNOYXZGb3I6IG51bGwsDQogICAgICAgICAgICAgICAgcHJldkFycm93OiAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtcm9sZT0ibm9uZSIgY2xhc3M9InNsaWNrLXByZXYiIGFyaWEtbGFiZWw9IlByZXZpb3VzIiB0YWJpbmRleD0iMCIgcm9sZT0iYnV0dG9uIj5QcmV2aW91czwvYnV0dG9uPicsDQogICAgICAgICAgICAgICAgbmV4dEFycm93OiAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtcm9sZT0ibm9uZSIgY2xhc3M9InNsaWNrLW5leHQiIGFyaWEtbGFiZWw9Ik5leHQiIHRhYmluZGV4PSIwIiByb2xlPSJidXR0b24iPk5leHQ8L2J1dHRvbj4nLA0KICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSwNCiAgICAgICAgICAgICAgICBhdXRvcGxheVNwZWVkOiAzMDAwLA0KICAgICAgICAgICAgICAgIGNlbnRlck1vZGU6IGZhbHNlLA0KICAgICAgICAgICAgICAgIGNlbnRlclBhZGRpbmc6ICc1MHB4JywNCiAgICAgICAgICAgICAgICBjc3NFYXNlOiAnZWFzZScsDQogICAgICAgICAgICAgICAgY3VzdG9tUGFnaW5nOiBmdW5jdGlvbihzbGlkZXIsIGkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJzxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLXJvbGU9Im5vbmUiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIC8+JykudGV4dChpICsgMSk7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBkb3RzOiBmYWxzZSwNCiAgICAgICAgICAgICAgICBkb3RzQ2xhc3M6ICdzbGljay1kb3RzJywNCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsDQogICAgICAgICAgICAgICAgZWFzaW5nOiAnbGluZWFyJywNCiAgICAgICAgICAgICAgICBlZGdlRnJpY3Rpb246IDAuMzUsDQogICAgICAgICAgICAgICAgZmFkZTogZmFsc2UsDQogICAgICAgICAgICAgICAgZm9jdXNPblNlbGVjdDogZmFsc2UsDQogICAgICAgICAgICAgICAgaW5maW5pdGU6IHRydWUsDQogICAgICAgICAgICAgICAgaW5pdGlhbFNsaWRlOiAwLA0KICAgICAgICAgICAgICAgIGxhenlMb2FkOiAnb25kZW1hbmQnLA0KICAgICAgICAgICAgICAgIG1vYmlsZUZpcnN0OiBmYWxzZSwNCiAgICAgICAgICAgICAgICBwYXVzZU9uSG92ZXI6IHRydWUsDQogICAgICAgICAgICAgICAgcGF1c2VPbkZvY3VzOiB0cnVlLA0KICAgICAgICAgICAgICAgIHBhdXNlT25Eb3RzSG92ZXI6IGZhbHNlLA0KICAgICAgICAgICAgICAgIHJlc3BvbmRUbzogJ3dpbmRvdycsDQogICAgICAgICAgICAgICAgcmVzcG9uc2l2ZTogbnVsbCwNCiAgICAgICAgICAgICAgICByb3dzOiAxLA0KICAgICAgICAgICAgICAgIHJ0bDogZmFsc2UsDQogICAgICAgICAgICAgICAgc2xpZGU6ICcnLA0KICAgICAgICAgICAgICAgIHNsaWRlc1BlclJvdzogMSwNCiAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsDQogICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsDQogICAgICAgICAgICAgICAgc3BlZWQ6IDUwMCwNCiAgICAgICAgICAgICAgICBzd2lwZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICBzd2lwZVRvU2xpZGU6IGZhbHNlLA0KICAgICAgICAgICAgICAgIHRvdWNoTW92ZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICB0b3VjaFRocmVzaG9sZDogNSwNCiAgICAgICAgICAgICAgICB1c2VDU1M6IHRydWUsDQogICAgICAgICAgICAgICAgdXNlVHJhbnNmb3JtOiB0cnVlLA0KICAgICAgICAgICAgICAgIHZhcmlhYmxlV2lkdGg6IGZhbHNlLA0KICAgICAgICAgICAgICAgIHZlcnRpY2FsOiBmYWxzZSwNCiAgICAgICAgICAgICAgICB2ZXJ0aWNhbFN3aXBpbmc6IGZhbHNlLA0KICAgICAgICAgICAgICAgIHdhaXRGb3JBbmltYXRlOiB0cnVlLA0KICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMA0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgXy5pbml0aWFscyA9IHsNCiAgICAgICAgICAgICAgICBhbmltYXRpbmc6IGZhbHNlLA0KICAgICAgICAgICAgICAgIGRyYWdnaW5nOiBmYWxzZSwNCiAgICAgICAgICAgICAgICBhdXRvUGxheVRpbWVyOiBudWxsLA0KICAgICAgICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IDAsDQogICAgICAgICAgICAgICAgY3VycmVudExlZnQ6IG51bGwsDQogICAgICAgICAgICAgICAgY3VycmVudFNsaWRlOiAwLA0KICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogMSwNCiAgICAgICAgICAgICAgICAkZG90czogbnVsbCwNCiAgICAgICAgICAgICAgICBsaXN0V2lkdGg6IG51bGwsDQogICAgICAgICAgICAgICAgbGlzdEhlaWdodDogbnVsbCwNCiAgICAgICAgICAgICAgICBsb2FkSW5kZXg6IDAsDQogICAgICAgICAgICAgICAgJG5leHRBcnJvdzogbnVsbCwNCiAgICAgICAgICAgICAgICAkcHJldkFycm93OiBudWxsLA0KICAgICAgICAgICAgICAgIHNsaWRlQ291bnQ6IG51bGwsDQogICAgICAgICAgICAgICAgc2xpZGVXaWR0aDogbnVsbCwNCiAgICAgICAgICAgICAgICAkc2xpZGVUcmFjazogbnVsbCwNCiAgICAgICAgICAgICAgICAkc2xpZGVzOiBudWxsLA0KICAgICAgICAgICAgICAgIHNsaWRpbmc6IGZhbHNlLA0KICAgICAgICAgICAgICAgIHNsaWRlT2Zmc2V0OiAwLA0KICAgICAgICAgICAgICAgIHN3aXBlTGVmdDogbnVsbCwNCiAgICAgICAgICAgICAgICAkbGlzdDogbnVsbCwNCiAgICAgICAgICAgICAgICB0b3VjaE9iamVjdDoge30sDQogICAgICAgICAgICAgICAgdHJhbnNmb3Jtc0VuYWJsZWQ6IGZhbHNlLA0KICAgICAgICAgICAgICAgIHVuc2xpY2tlZDogZmFsc2UNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICQuZXh0ZW5kKF8sIF8uaW5pdGlhbHMpOw0KDQogICAgICAgICAgICBfLmFjdGl2ZUJyZWFrcG9pbnQgPSBudWxsOw0KICAgICAgICAgICAgXy5hbmltVHlwZSA9IG51bGw7DQogICAgICAgICAgICBfLmFuaW1Qcm9wID0gbnVsbDsNCiAgICAgICAgICAgIF8uYnJlYWtwb2ludHMgPSBbXTsNCiAgICAgICAgICAgIF8uYnJlYWtwb2ludFNldHRpbmdzID0gW107DQogICAgICAgICAgICBfLmNzc1RyYW5zaXRpb25zID0gZmFsc2U7DQogICAgICAgICAgICBfLmZvY3Vzc2VkID0gZmFsc2U7DQogICAgICAgICAgICBfLmludGVycnVwdGVkID0gZmFsc2U7DQogICAgICAgICAgICBfLmhpZGRlbiA9ICdoaWRkZW4nOw0KICAgICAgICAgICAgXy5wYXVzZWQgPSB0cnVlOw0KICAgICAgICAgICAgXy5wb3NpdGlvblByb3AgPSBudWxsOw0KICAgICAgICAgICAgXy5yZXNwb25kVG8gPSBudWxsOw0KICAgICAgICAgICAgXy5yb3dDb3VudCA9IDE7DQogICAgICAgICAgICBfLnNob3VsZENsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgIF8uJHNsaWRlciA9ICQoZWxlbWVudCk7DQogICAgICAgICAgICBfLiRzbGlkZXNDYWNoZSA9IG51bGw7DQogICAgICAgICAgICBfLnRyYW5zZm9ybVR5cGUgPSBudWxsOw0KICAgICAgICAgICAgXy50cmFuc2l0aW9uVHlwZSA9IG51bGw7DQogICAgICAgICAgICBfLnZpc2liaWxpdHlDaGFuZ2UgPSAndmlzaWJpbGl0eWNoYW5nZSc7DQogICAgICAgICAgICBfLndpbmRvd1dpZHRoID0gMDsNCiAgICAgICAgICAgIF8ud2luZG93VGltZXIgPSBudWxsOw0KDQogICAgICAgICAgICBkYXRhU2V0dGluZ3MgPSAkKGVsZW1lbnQpLmRhdGEoJ3NsaWNrJykgfHwge307DQoNCiAgICAgICAgICAgIF8ub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBfLmRlZmF1bHRzLCBzZXR0aW5ncywgZGF0YVNldHRpbmdzKTsNCg0KICAgICAgICAgICAgXy5jdXJyZW50U2xpZGUgPSBfLm9wdGlvbnMuaW5pdGlhbFNsaWRlOw0KDQogICAgICAgICAgICBfLm9yaWdpbmFsU2V0dGluZ3MgPSBfLm9wdGlvbnM7DQoNCiAgICAgICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQubW96SGlkZGVuICE9PSAndW5kZWZpbmVkJykgew0KICAgICAgICAgICAgICAgIF8uaGlkZGVuID0gJ21vekhpZGRlbic7DQogICAgICAgICAgICAgICAgXy52aXNpYmlsaXR5Q2hhbmdlID0gJ21venZpc2liaWxpdHljaGFuZ2UnOw0KICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQud2Via2l0SGlkZGVuICE9PSAndW5kZWZpbmVkJykgew0KICAgICAgICAgICAgICAgIF8uaGlkZGVuID0gJ3dlYmtpdEhpZGRlbic7DQogICAgICAgICAgICAgICAgXy52aXNpYmlsaXR5Q2hhbmdlID0gJ3dlYmtpdHZpc2liaWxpdHljaGFuZ2UnOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBfLmF1dG9QbGF5ID0gJC5wcm94eShfLmF1dG9QbGF5LCBfKTsNCiAgICAgICAgICAgIF8uYXV0b1BsYXlDbGVhciA9ICQucHJveHkoXy5hdXRvUGxheUNsZWFyLCBfKTsNCiAgICAgICAgICAgIF8uYXV0b1BsYXlJdGVyYXRvciA9ICQucHJveHkoXy5hdXRvUGxheUl0ZXJhdG9yLCBfKTsNCiAgICAgICAgICAgIF8uY2hhbmdlU2xpZGUgPSAkLnByb3h5KF8uY2hhbmdlU2xpZGUsIF8pOw0KICAgICAgICAgICAgXy5jbGlja0hhbmRsZXIgPSAkLnByb3h5KF8uY2xpY2tIYW5kbGVyLCBfKTsNCiAgICAgICAgICAgIF8uc2VsZWN0SGFuZGxlciA9ICQucHJveHkoXy5zZWxlY3RIYW5kbGVyLCBfKTsNCiAgICAgICAgICAgIF8uc2V0UG9zaXRpb24gPSAkLnByb3h5KF8uc2V0UG9zaXRpb24sIF8pOw0KICAgICAgICAgICAgXy5zd2lwZUhhbmRsZXIgPSAkLnByb3h5KF8uc3dpcGVIYW5kbGVyLCBfKTsNCiAgICAgICAgICAgIF8uZHJhZ0hhbmRsZXIgPSAkLnByb3h5KF8uZHJhZ0hhbmRsZXIsIF8pOw0KICAgICAgICAgICAgXy5rZXlIYW5kbGVyID0gJC5wcm94eShfLmtleUhhbmRsZXIsIF8pOw0KDQogICAgICAgICAgICBfLmluc3RhbmNlVWlkID0gaW5zdGFuY2VVaWQrKzsNCg0KICAgICAgICAgICAgLy8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3MNCiAgICAgICAgICAgIC8vIFN0cmljdCBIVE1MIHJlY29nbml0aW9uIChtdXN0IHN0YXJ0IHdpdGggPCkNCiAgICAgICAgICAgIC8vIEV4dHJhY3RlZCBmcm9tIGpRdWVyeSB2MS4xMSBzb3VyY2UNCiAgICAgICAgICAgIF8uaHRtbEV4cHIgPSAvXig/OlxzKig8W1x3XFddKz4pW14+XSopJC87DQoNCg0KICAgICAgICAgICAgXy5yZWdpc3RlckJyZWFrcG9pbnRzKCk7DQogICAgICAgICAgICBfLmluaXQodHJ1ZSk7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBTbGljazsNCg0KICAgIH0oKSk7DQoNCiAgICBTbGljay5wcm90b3R5cGUuYWN0aXZhdGVBREEgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIF8uJHNsaWRlVHJhY2suZmluZCgnLnNsaWNrLWFjdGl2ZScpLmF0dHIoew0KICAgICAgICAgICAgJ2FyaWEtaGlkZGVuJzogJ2ZhbHNlJw0KICAgICAgICB9KS5maW5kKCdhLCBpbnB1dCwgYnV0dG9uLCBzZWxlY3QnKS5hdHRyKHsNCiAgICAgICAgICAgICd0YWJpbmRleCc6ICcwJw0KICAgICAgICB9KTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuYWRkU2xpZGUgPSBTbGljay5wcm90b3R5cGUuc2xpY2tBZGQgPSBmdW5jdGlvbihtYXJrdXAsIGluZGV4LCBhZGRCZWZvcmUpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgaWYgKHR5cGVvZihpbmRleCkgPT09ICdib29sZWFuJykgew0KICAgICAgICAgICAgYWRkQmVmb3JlID0gaW5kZXg7DQogICAgICAgICAgICBpbmRleCA9IG51bGw7DQogICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPCAwIHx8IChpbmRleCA+PSBfLnNsaWRlQ291bnQpKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBfLnVubG9hZCgpOw0KDQogICAgICAgIGlmICh0eXBlb2YoaW5kZXgpID09PSAnbnVtYmVyJykgew0KICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwICYmIF8uJHNsaWRlcy5sZW5ndGggPT09IDApIHsNCiAgICAgICAgICAgICAgICAkKG1hcmt1cCkuYXBwZW5kVG8oXy4kc2xpZGVUcmFjayk7DQogICAgICAgICAgICB9IGVsc2UgaWYgKGFkZEJlZm9yZSkgew0KICAgICAgICAgICAgICAgICQobWFya3VwKS5pbnNlcnRCZWZvcmUoXy4kc2xpZGVzLmVxKGluZGV4KSk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICQobWFya3VwKS5pbnNlcnRBZnRlcihfLiRzbGlkZXMuZXEoaW5kZXgpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGlmIChhZGRCZWZvcmUgPT09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAkKG1hcmt1cCkucHJlcGVuZFRvKF8uJHNsaWRlVHJhY2spOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkKG1hcmt1cCkuYXBwZW5kVG8oXy4kc2xpZGVUcmFjayk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBfLiRzbGlkZXMgPSBfLiRzbGlkZVRyYWNrLmNoaWxkcmVuKHRoaXMub3B0aW9ucy5zbGlkZSk7DQoNCiAgICAgICAgXy4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmRldGFjaCgpOw0KDQogICAgICAgIF8uJHNsaWRlVHJhY2suYXBwZW5kKF8uJHNsaWRlcyk7DQoNCiAgICAgICAgXy4kc2xpZGVzLmVhY2goZnVuY3Rpb24oaW5kZXgsIGVsZW1lbnQpIHsNCiAgICAgICAgICAgICQoZWxlbWVudCkuYXR0cignZGF0YS1zbGljay1pbmRleCcsIGluZGV4KTsNCiAgICAgICAgfSk7DQoNCiAgICAgICAgXy4kc2xpZGVzQ2FjaGUgPSBfLiRzbGlkZXM7DQoNCiAgICAgICAgXy5yZWluaXQoKTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuYW5pbWF0ZUhlaWdodCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgXyA9IHRoaXM7DQogICAgICAgIGlmIChfLm9wdGlvbnMuc2xpZGVzVG9TaG93ID09PSAxICYmIF8ub3B0aW9ucy5hZGFwdGl2ZUhlaWdodCA9PT0gdHJ1ZSAmJiBfLm9wdGlvbnMudmVydGljYWwgPT09IGZhbHNlKSB7DQogICAgICAgICAgICB2YXIgdGFyZ2V0SGVpZ2h0ID0gXy4kc2xpZGVzLmVxKF8uY3VycmVudFNsaWRlKS5vdXRlckhlaWdodCh0cnVlKTsNCiAgICAgICAgICAgIF8uJGxpc3QuYW5pbWF0ZSh7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiB0YXJnZXRIZWlnaHQNCiAgICAgICAgICAgIH0sIF8ub3B0aW9ucy5zcGVlZCk7DQogICAgICAgIH0NCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmFuaW1hdGVTbGlkZSA9IGZ1bmN0aW9uKHRhcmdldExlZnQsIGNhbGxiYWNrKSB7DQoNCiAgICAgICAgdmFyIGFuaW1Qcm9wcyA9IHt9LA0KICAgICAgICAgICAgXyA9IHRoaXM7DQoNCiAgICAgICAgXy5hbmltYXRlSGVpZ2h0KCk7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5ydGwgPT09IHRydWUgJiYgXy5vcHRpb25zLnZlcnRpY2FsID09PSBmYWxzZSkgew0KICAgICAgICAgICAgdGFyZ2V0TGVmdCA9IC10YXJnZXRMZWZ0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChfLnRyYW5zZm9ybXNFbmFibGVkID09PSBmYWxzZSkgew0KICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy52ZXJ0aWNhbCA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBfLiRzbGlkZVRyYWNrLmFuaW1hdGUoew0KICAgICAgICAgICAgICAgICAgICBsZWZ0OiB0YXJnZXRMZWZ0DQogICAgICAgICAgICAgICAgfSwgXy5vcHRpb25zLnNwZWVkLCBfLm9wdGlvbnMuZWFzaW5nLCBjYWxsYmFjayk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIF8uJHNsaWRlVHJhY2suYW5pbWF0ZSh7DQogICAgICAgICAgICAgICAgICAgIHRvcDogdGFyZ2V0TGVmdA0KICAgICAgICAgICAgICAgIH0sIF8ub3B0aW9ucy5zcGVlZCwgXy5vcHRpb25zLmVhc2luZywgY2FsbGJhY2spOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgICAgIGlmIChfLmNzc1RyYW5zaXRpb25zID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIGlmIChfLm9wdGlvbnMucnRsID09PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIF8uY3VycmVudExlZnQgPSAtKF8uY3VycmVudExlZnQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkKHsNCiAgICAgICAgICAgICAgICAgICAgYW5pbVN0YXJ0OiBfLmN1cnJlbnRMZWZ0DQogICAgICAgICAgICAgICAgfSkuYW5pbWF0ZSh7DQogICAgICAgICAgICAgICAgICAgIGFuaW1TdGFydDogdGFyZ2V0TGVmdA0KICAgICAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IF8ub3B0aW9ucy5zcGVlZCwNCiAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiBfLm9wdGlvbnMuZWFzaW5nLA0KICAgICAgICAgICAgICAgICAgICBzdGVwOiBmdW5jdGlvbihub3cpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vdyA9IE1hdGguY2VpbChub3cpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy52ZXJ0aWNhbCA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltUHJvcHNbXy5hbmltVHlwZV0gPSAndHJhbnNsYXRlKCcgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3cgKyAncHgsIDBweCknOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8uJHNsaWRlVHJhY2suY3NzKGFuaW1Qcm9wcyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1Qcm9wc1tfLmFuaW1UeXBlXSA9ICd0cmFuc2xhdGUoMHB4LCcgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3cgKyAncHgpJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLiRzbGlkZVRyYWNrLmNzcyhhbmltUHJvcHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgICAgIF8uYXBwbHlUcmFuc2l0aW9uKCk7DQogICAgICAgICAgICAgICAgdGFyZ2V0TGVmdCA9IE1hdGguY2VpbCh0YXJnZXRMZWZ0KTsNCg0KICAgICAgICAgICAgICAgIGlmIChfLm9wdGlvbnMudmVydGljYWwgPT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgIGFuaW1Qcm9wc1tfLmFuaW1UeXBlXSA9ICd0cmFuc2xhdGUzZCgnICsgdGFyZ2V0TGVmdCArICdweCwgMHB4LCAwcHgpJzsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBhbmltUHJvcHNbXy5hbmltVHlwZV0gPSAndHJhbnNsYXRlM2QoMHB4LCcgKyB0YXJnZXRMZWZ0ICsgJ3B4LCAwcHgpJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgXy4kc2xpZGVUcmFjay5jc3MoYW5pbVByb3BzKTsNCg0KICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykgew0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBfLmRpc2FibGVUcmFuc2l0aW9uKCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgfSwgXy5vcHRpb25zLnNwZWVkKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmdldE5hdlRhcmdldCA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIGFzTmF2Rm9yID0gXy5vcHRpb25zLmFzTmF2Rm9yOw0KDQogICAgICAgIGlmICggYXNOYXZGb3IgJiYgYXNOYXZGb3IgIT09IG51bGwgKSB7DQogICAgICAgICAgICBhc05hdkZvciA9ICQoYXNOYXZGb3IpLm5vdChfLiRzbGlkZXIpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIGFzTmF2Rm9yOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5hc05hdkZvciA9IGZ1bmN0aW9uKGluZGV4KSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLA0KICAgICAgICAgICAgYXNOYXZGb3IgPSBfLmdldE5hdlRhcmdldCgpOw0KDQogICAgICAgIGlmICggYXNOYXZGb3IgIT09IG51bGwgJiYgdHlwZW9mIGFzTmF2Rm9yID09PSAnb2JqZWN0JyApIHsNCiAgICAgICAgICAgIGFzTmF2Rm9yLmVhY2goZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9ICQodGhpcykuc2xpY2soJ2dldFNsaWNrJyk7DQogICAgICAgICAgICAgICAgaWYoIXRhcmdldC51bnNsaWNrZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnNsaWRlSGFuZGxlcihpbmRleCwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuYXBwbHlUcmFuc2l0aW9uID0gZnVuY3Rpb24oc2xpZGUpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXMsDQogICAgICAgICAgICB0cmFuc2l0aW9uID0ge307DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5mYWRlID09PSBmYWxzZSkgew0KICAgICAgICAgICAgdHJhbnNpdGlvbltfLnRyYW5zaXRpb25UeXBlXSA9IF8udHJhbnNmb3JtVHlwZSArICcgJyArIF8ub3B0aW9ucy5zcGVlZCArICdtcyAnICsgXy5vcHRpb25zLmNzc0Vhc2U7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB0cmFuc2l0aW9uW18udHJhbnNpdGlvblR5cGVdID0gJ29wYWNpdHkgJyArIF8ub3B0aW9ucy5zcGVlZCArICdtcyAnICsgXy5vcHRpb25zLmNzc0Vhc2U7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmZhZGUgPT09IGZhbHNlKSB7DQogICAgICAgICAgICBfLiRzbGlkZVRyYWNrLmNzcyh0cmFuc2l0aW9uKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIF8uJHNsaWRlcy5lcShzbGlkZSkuY3NzKHRyYW5zaXRpb24pOw0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmF1dG9QbGF5ID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIF8uYXV0b1BsYXlDbGVhcigpOw0KDQogICAgICAgIGlmICggXy5zbGlkZUNvdW50ID4gXy5vcHRpb25zLnNsaWRlc1RvU2hvdyApIHsNCiAgICAgICAgICAgIF8uYXV0b1BsYXlUaW1lciA9IHNldEludGVydmFsKCBfLmF1dG9QbGF5SXRlcmF0b3IsIF8ub3B0aW9ucy5hdXRvcGxheVNwZWVkICk7DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuYXV0b1BsYXlDbGVhciA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAoXy5hdXRvUGxheVRpbWVyKSB7DQogICAgICAgICAgICBjbGVhckludGVydmFsKF8uYXV0b1BsYXlUaW1lcik7DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuYXV0b1BsYXlJdGVyYXRvciA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIHNsaWRlVG8gPSBfLmN1cnJlbnRTbGlkZSArIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDsNCg0KICAgICAgICBpZiAoICFfLnBhdXNlZCAmJiAhXy5pbnRlcnJ1cHRlZCAmJiAhXy5mb2N1c3NlZCApIHsNCg0KICAgICAgICAgICAgaWYgKCBfLm9wdGlvbnMuaW5maW5pdGUgPT09IGZhbHNlICkgew0KDQogICAgICAgICAgICAgICAgaWYgKCBfLmRpcmVjdGlvbiA9PT0gMSAmJiAoIF8uY3VycmVudFNsaWRlICsgMSApID09PSAoIF8uc2xpZGVDb3VudCAtIDEgKSkgew0KICAgICAgICAgICAgICAgICAgICBfLmRpcmVjdGlvbiA9IDA7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZWxzZSBpZiAoIF8uZGlyZWN0aW9uID09PSAwICkgew0KDQogICAgICAgICAgICAgICAgICAgIHNsaWRlVG8gPSBfLmN1cnJlbnRTbGlkZSAtIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAoIF8uY3VycmVudFNsaWRlIC0gMSA9PT0gMCApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF8uZGlyZWN0aW9uID0gMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIF8uc2xpZGVIYW5kbGVyKCBzbGlkZVRvICk7DQoNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5idWlsZEFycm93cyA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmFycm93cyA9PT0gdHJ1ZSApIHsNCg0KICAgICAgICAgICAgXy4kcHJldkFycm93ID0gJChfLm9wdGlvbnMucHJldkFycm93KS5hZGRDbGFzcygnc2xpY2stYXJyb3cnKTsNCiAgICAgICAgICAgIF8uJG5leHRBcnJvdyA9ICQoXy5vcHRpb25zLm5leHRBcnJvdykuYWRkQ2xhc3MoJ3NsaWNrLWFycm93Jyk7DQoNCiAgICAgICAgICAgIGlmKCBfLnNsaWRlQ291bnQgPiBfLm9wdGlvbnMuc2xpZGVzVG9TaG93ICkgew0KDQogICAgICAgICAgICAgICAgXy4kcHJldkFycm93LnJlbW92ZUNsYXNzKCdzbGljay1oaWRkZW4nKS5yZW1vdmVBdHRyKCdhcmlhLWhpZGRlbiB0YWJpbmRleCcpOw0KICAgICAgICAgICAgICAgIF8uJG5leHRBcnJvdy5yZW1vdmVDbGFzcygnc2xpY2staGlkZGVuJykucmVtb3ZlQXR0cignYXJpYS1oaWRkZW4gdGFiaW5kZXgnKTsNCg0KICAgICAgICAgICAgICAgIGlmIChfLmh0bWxFeHByLnRlc3QoXy5vcHRpb25zLnByZXZBcnJvdykpIHsNCiAgICAgICAgICAgICAgICAgICAgXy4kcHJldkFycm93LnByZXBlbmRUbyhfLm9wdGlvbnMuYXBwZW5kQXJyb3dzKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoXy5odG1sRXhwci50ZXN0KF8ub3B0aW9ucy5uZXh0QXJyb3cpKSB7DQogICAgICAgICAgICAgICAgICAgIF8uJG5leHRBcnJvdy5hcHBlbmRUbyhfLm9wdGlvbnMuYXBwZW5kQXJyb3dzKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoXy5vcHRpb25zLmluZmluaXRlICE9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIF8uJHByZXZBcnJvdw0KICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdzbGljay1kaXNhYmxlZCcpDQogICAgICAgICAgICAgICAgICAgICAgICAuYXR0cignYXJpYS1kaXNhYmxlZCcsICd0cnVlJyk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB9IGVsc2Ugew0KDQogICAgICAgICAgICAgICAgXy4kcHJldkFycm93LmFkZCggXy4kbmV4dEFycm93ICkNCg0KICAgICAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ3NsaWNrLWhpZGRlbicpDQogICAgICAgICAgICAgICAgICAgIC5hdHRyKHsNCiAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLWRpc2FibGVkJzogJ3RydWUnLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYmluZGV4JzogJy0xJw0KICAgICAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuYnVpbGREb3RzID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLA0KICAgICAgICAgICAgaSwgZG90Ow0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuZG90cyA9PT0gdHJ1ZSAmJiBfLnNsaWRlQ291bnQgPiBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSB7DQoNCiAgICAgICAgICAgIF8uJHNsaWRlci5hZGRDbGFzcygnc2xpY2stZG90dGVkJyk7DQoNCiAgICAgICAgICAgIGRvdCA9ICQoJzx1bCAvPicpLmFkZENsYXNzKF8ub3B0aW9ucy5kb3RzQ2xhc3MpOw0KDQogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IF8uZ2V0RG90Q291bnQoKTsgaSArPSAxKSB7DQogICAgICAgICAgICAgICAgZG90LmFwcGVuZCgkKCc8bGkgLz4nKS5hcHBlbmQoXy5vcHRpb25zLmN1c3RvbVBhZ2luZy5jYWxsKHRoaXMsIF8sIGkpKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIF8uJGRvdHMgPSBkb3QuYXBwZW5kVG8oXy5vcHRpb25zLmFwcGVuZERvdHMpOw0KDQogICAgICAgICAgICBfLiRkb3RzLmZpbmQoJ2xpJykuZmlyc3QoKS5hZGRDbGFzcygnc2xpY2stYWN0aXZlJykuYXR0cignYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmJ1aWxkT3V0ID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIF8uJHNsaWRlcyA9DQogICAgICAgICAgICBfLiRzbGlkZXINCiAgICAgICAgICAgICAgICAuY2hpbGRyZW4oIF8ub3B0aW9ucy5zbGlkZSArICc6bm90KC5zbGljay1jbG9uZWQpJykNCiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ3NsaWNrLXNsaWRlJyk7DQoNCiAgICAgICAgXy5zbGlkZUNvdW50ID0gXy4kc2xpZGVzLmxlbmd0aDsNCg0KICAgICAgICBfLiRzbGlkZXMuZWFjaChmdW5jdGlvbihpbmRleCwgZWxlbWVudCkgew0KICAgICAgICAgICAgJChlbGVtZW50KQ0KICAgICAgICAgICAgICAgIC5hdHRyKCdkYXRhLXNsaWNrLWluZGV4JywgaW5kZXgpDQogICAgICAgICAgICAgICAgLmRhdGEoJ29yaWdpbmFsU3R5bGluZycsICQoZWxlbWVudCkuYXR0cignc3R5bGUnKSB8fCAnJyk7DQogICAgICAgIH0pOw0KDQogICAgICAgIF8uJHNsaWRlci5hZGRDbGFzcygnc2xpY2stc2xpZGVyJyk7DQoNCiAgICAgICAgXy4kc2xpZGVUcmFjayA9IChfLnNsaWRlQ291bnQgPT09IDApID8NCiAgICAgICAgICAgICQoJzxkaXYgY2xhc3M9InNsaWNrLXRyYWNrIi8+JykuYXBwZW5kVG8oXy4kc2xpZGVyKSA6DQogICAgICAgICAgICBfLiRzbGlkZXMud3JhcEFsbCgnPGRpdiBjbGFzcz0ic2xpY2stdHJhY2siLz4nKS5wYXJlbnQoKTsNCg0KICAgICAgICBfLiRsaXN0ID0gXy4kc2xpZGVUcmFjay53cmFwKA0KICAgICAgICAgICAgJzxkaXYgYXJpYS1saXZlPSJwb2xpdGUiIGNsYXNzPSJzbGljay1saXN0Ii8+JykucGFyZW50KCk7DQogICAgICAgIF8uJHNsaWRlVHJhY2suY3NzKCdvcGFjaXR5JywgMCk7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5jZW50ZXJNb2RlID09PSB0cnVlIHx8IF8ub3B0aW9ucy5zd2lwZVRvU2xpZGUgPT09IHRydWUpIHsNCiAgICAgICAgICAgIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCA9IDE7DQogICAgICAgIH0NCg0KICAgICAgICAkKCdpbWdbZGF0YS1sYXp5XScsIF8uJHNsaWRlcikubm90KCdbc3JjXScpLmFkZENsYXNzKCdzbGljay1sb2FkaW5nJyk7DQoNCiAgICAgICAgXy5zZXR1cEluZmluaXRlKCk7DQoNCiAgICAgICAgXy5idWlsZEFycm93cygpOw0KDQogICAgICAgIF8uYnVpbGREb3RzKCk7DQoNCiAgICAgICAgXy51cGRhdGVEb3RzKCk7DQoNCg0KICAgICAgICBfLnNldFNsaWRlQ2xhc3Nlcyh0eXBlb2YgXy5jdXJyZW50U2xpZGUgPT09ICdudW1iZXInID8gXy5jdXJyZW50U2xpZGUgOiAwKTsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmRyYWdnYWJsZSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgXy4kbGlzdC5hZGRDbGFzcygnZHJhZ2dhYmxlJyk7DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuYnVpbGRSb3dzID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLCBhLCBiLCBjLCBuZXdTbGlkZXMsIG51bU9mU2xpZGVzLCBvcmlnaW5hbFNsaWRlcyxzbGlkZXNQZXJTZWN0aW9uOw0KDQogICAgICAgIG5ld1NsaWRlcyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsNCiAgICAgICAgb3JpZ2luYWxTbGlkZXMgPSBfLiRzbGlkZXIuY2hpbGRyZW4oKTsNCg0KICAgICAgICBpZihfLm9wdGlvbnMucm93cyA+IDEpIHsNCg0KICAgICAgICAgICAgc2xpZGVzUGVyU2VjdGlvbiA9IF8ub3B0aW9ucy5zbGlkZXNQZXJSb3cgKiBfLm9wdGlvbnMucm93czsNCiAgICAgICAgICAgIG51bU9mU2xpZGVzID0gTWF0aC5jZWlsKA0KICAgICAgICAgICAgICAgIG9yaWdpbmFsU2xpZGVzLmxlbmd0aCAvIHNsaWRlc1BlclNlY3Rpb24NCiAgICAgICAgICAgICk7DQoNCiAgICAgICAgICAgIGZvcihhID0gMDsgYSA8IG51bU9mU2xpZGVzOyBhKyspew0KICAgICAgICAgICAgICAgIHZhciBzbGlkZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICAgICAgICAgIGZvcihiID0gMDsgYiA8IF8ub3B0aW9ucy5yb3dzOyBiKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICAgICAgICAgICAgICBmb3IoYyA9IDA7IGMgPCBfLm9wdGlvbnMuc2xpZGVzUGVyUm93OyBjKyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSAoYSAqIHNsaWRlc1BlclNlY3Rpb24gKyAoKGIgKiBfLm9wdGlvbnMuc2xpZGVzUGVyUm93KSArIGMpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbFNsaWRlcy5nZXQodGFyZ2V0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChvcmlnaW5hbFNsaWRlcy5nZXQodGFyZ2V0KSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgc2xpZGUuYXBwZW5kQ2hpbGQocm93KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgbmV3U2xpZGVzLmFwcGVuZENoaWxkKHNsaWRlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgXy4kc2xpZGVyLmVtcHR5KCkuYXBwZW5kKG5ld1NsaWRlcyk7DQogICAgICAgICAgICBfLiRzbGlkZXIuY2hpbGRyZW4oKS5jaGlsZHJlbigpLmNoaWxkcmVuKCkNCiAgICAgICAgICAgICAgICAuY3NzKHsNCiAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzooMTAwIC8gXy5vcHRpb25zLnNsaWRlc1BlclJvdykgKyAnJScsDQogICAgICAgICAgICAgICAgICAgICdkaXNwbGF5JzogJ2lubGluZS1ibG9jaycNCiAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmNoZWNrUmVzcG9uc2l2ZSA9IGZ1bmN0aW9uKGluaXRpYWwsIGZvcmNlVXBkYXRlKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLA0KICAgICAgICAgICAgYnJlYWtwb2ludCwgdGFyZ2V0QnJlYWtwb2ludCwgcmVzcG9uZFRvV2lkdGgsIHRyaWdnZXJCcmVha3BvaW50ID0gZmFsc2U7DQogICAgICAgIHZhciBzbGlkZXJXaWR0aCA9IF8uJHNsaWRlci53aWR0aCgpOw0KICAgICAgICB2YXIgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCB8fCAkKHdpbmRvdykud2lkdGgoKTsNCg0KICAgICAgICBpZiAoXy5yZXNwb25kVG8gPT09ICd3aW5kb3cnKSB7DQogICAgICAgICAgICByZXNwb25kVG9XaWR0aCA9IHdpbmRvd1dpZHRoOw0KICAgICAgICB9IGVsc2UgaWYgKF8ucmVzcG9uZFRvID09PSAnc2xpZGVyJykgew0KICAgICAgICAgICAgcmVzcG9uZFRvV2lkdGggPSBzbGlkZXJXaWR0aDsNCiAgICAgICAgfSBlbHNlIGlmIChfLnJlc3BvbmRUbyA9PT0gJ21pbicpIHsNCiAgICAgICAgICAgIHJlc3BvbmRUb1dpZHRoID0gTWF0aC5taW4od2luZG93V2lkdGgsIHNsaWRlcldpZHRoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICggXy5vcHRpb25zLnJlc3BvbnNpdmUgJiYNCiAgICAgICAgICAgIF8ub3B0aW9ucy5yZXNwb25zaXZlLmxlbmd0aCAmJg0KICAgICAgICAgICAgXy5vcHRpb25zLnJlc3BvbnNpdmUgIT09IG51bGwpIHsNCg0KICAgICAgICAgICAgdGFyZ2V0QnJlYWtwb2ludCA9IG51bGw7DQoNCiAgICAgICAgICAgIGZvciAoYnJlYWtwb2ludCBpbiBfLmJyZWFrcG9pbnRzKSB7DQogICAgICAgICAgICAgICAgaWYgKF8uYnJlYWtwb2ludHMuaGFzT3duUHJvcGVydHkoYnJlYWtwb2ludCkpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKF8ub3JpZ2luYWxTZXR0aW5ncy5tb2JpbGVGaXJzdCA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25kVG9XaWR0aCA8IF8uYnJlYWtwb2ludHNbYnJlYWtwb2ludF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRCcmVha3BvaW50ID0gXy5icmVha3BvaW50c1ticmVha3BvaW50XTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25kVG9XaWR0aCA+IF8uYnJlYWtwb2ludHNbYnJlYWtwb2ludF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRCcmVha3BvaW50ID0gXy5icmVha3BvaW50c1ticmVha3BvaW50XTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHRhcmdldEJyZWFrcG9pbnQgIT09IG51bGwpIHsNCiAgICAgICAgICAgICAgICBpZiAoXy5hY3RpdmVCcmVha3BvaW50ICE9PSBudWxsKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRCcmVha3BvaW50ICE9PSBfLmFjdGl2ZUJyZWFrcG9pbnQgfHwgZm9yY2VVcGRhdGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF8uYWN0aXZlQnJlYWtwb2ludCA9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QnJlYWtwb2ludDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfLmJyZWFrcG9pbnRTZXR0aW5nc1t0YXJnZXRCcmVha3BvaW50XSA9PT0gJ3Vuc2xpY2snKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXy51bnNsaWNrKHRhcmdldEJyZWFrcG9pbnQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgXy5vcmlnaW5hbFNldHRpbmdzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLmJyZWFrcG9pbnRTZXR0aW5nc1sNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEJyZWFrcG9pbnRdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbCA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLmN1cnJlbnRTbGlkZSA9IF8ub3B0aW9ucy5pbml0aWFsU2xpZGU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8ucmVmcmVzaChpbml0aWFsKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJCcmVha3BvaW50ID0gdGFyZ2V0QnJlYWtwb2ludDsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIF8uYWN0aXZlQnJlYWtwb2ludCA9IHRhcmdldEJyZWFrcG9pbnQ7DQogICAgICAgICAgICAgICAgICAgIGlmIChfLmJyZWFrcG9pbnRTZXR0aW5nc1t0YXJnZXRCcmVha3BvaW50XSA9PT0gJ3Vuc2xpY2snKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBfLnVuc2xpY2sodGFyZ2V0QnJlYWtwb2ludCk7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBfLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgXy5vcmlnaW5hbFNldHRpbmdzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8uYnJlYWtwb2ludFNldHRpbmdzWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRCcmVha3BvaW50XSk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbCA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8uY3VycmVudFNsaWRlID0gXy5vcHRpb25zLmluaXRpYWxTbGlkZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIF8ucmVmcmVzaChpbml0aWFsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyQnJlYWtwb2ludCA9IHRhcmdldEJyZWFrcG9pbnQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoXy5hY3RpdmVCcmVha3BvaW50ICE9PSBudWxsKSB7DQogICAgICAgICAgICAgICAgICAgIF8uYWN0aXZlQnJlYWtwb2ludCA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgIF8ub3B0aW9ucyA9IF8ub3JpZ2luYWxTZXR0aW5nczsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGluaXRpYWwgPT09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF8uY3VycmVudFNsaWRlID0gXy5vcHRpb25zLmluaXRpYWxTbGlkZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBfLnJlZnJlc2goaW5pdGlhbCk7DQogICAgICAgICAgICAgICAgICAgIHRyaWdnZXJCcmVha3BvaW50ID0gdGFyZ2V0QnJlYWtwb2ludDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIG9ubHkgdHJpZ2dlciBicmVha3BvaW50cyBkdXJpbmcgYW4gYWN0dWFsIGJyZWFrLiBub3Qgb24gaW5pdGlhbGl6ZS4NCiAgICAgICAgICAgIGlmKCAhaW5pdGlhbCAmJiB0cmlnZ2VyQnJlYWtwb2ludCAhPT0gZmFsc2UgKSB7DQogICAgICAgICAgICAgICAgXy4kc2xpZGVyLnRyaWdnZXIoJ2JyZWFrcG9pbnQnLCBbXywgdHJpZ2dlckJyZWFrcG9pbnRdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5jaGFuZ2VTbGlkZSA9IGZ1bmN0aW9uKGV2ZW50LCBkb250QW5pbWF0ZSkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgICR0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLA0KICAgICAgICAgICAgaW5kZXhPZmZzZXQsIHNsaWRlT2Zmc2V0LCB1bmV2ZW5PZmZzZXQ7DQoNCiAgICAgICAgLy8gSWYgdGFyZ2V0IGlzIGEgbGluaywgcHJldmVudCBkZWZhdWx0IGFjdGlvbi4NCiAgICAgICAgaWYoJHRhcmdldC5pcygnYScpKSB7DQogICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gSWYgdGFyZ2V0IGlzIG5vdCB0aGUgPGxpPiBlbGVtZW50IChpZTogYSBjaGlsZCksIGZpbmQgdGhlIDxsaT4uDQogICAgICAgIGlmKCEkdGFyZ2V0LmlzKCdsaScpKSB7DQogICAgICAgICAgICAkdGFyZ2V0ID0gJHRhcmdldC5jbG9zZXN0KCdsaScpOw0KICAgICAgICB9DQoNCiAgICAgICAgdW5ldmVuT2Zmc2V0ID0gKF8uc2xpZGVDb3VudCAlIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCAhPT0gMCk7DQogICAgICAgIGluZGV4T2Zmc2V0ID0gdW5ldmVuT2Zmc2V0ID8gMCA6IChfLnNsaWRlQ291bnQgLSBfLmN1cnJlbnRTbGlkZSkgJSBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw7DQoNCiAgICAgICAgc3dpdGNoIChldmVudC5kYXRhLm1lc3NhZ2UpIHsNCg0KICAgICAgICAgICAgY2FzZSAncHJldmlvdXMnOg0KICAgICAgICAgICAgICAgIHNsaWRlT2Zmc2V0ID0gaW5kZXhPZmZzZXQgPT09IDAgPyBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwgOiBfLm9wdGlvbnMuc2xpZGVzVG9TaG93IC0gaW5kZXhPZmZzZXQ7DQogICAgICAgICAgICAgICAgaWYgKF8uc2xpZGVDb3VudCA+IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpIHsNCiAgICAgICAgICAgICAgICAgICAgXy5zbGlkZUhhbmRsZXIoXy5jdXJyZW50U2xpZGUgLSBzbGlkZU9mZnNldCwgZmFsc2UsIGRvbnRBbmltYXRlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGNhc2UgJ25leHQnOg0KICAgICAgICAgICAgICAgIHNsaWRlT2Zmc2V0ID0gaW5kZXhPZmZzZXQgPT09IDAgPyBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwgOiBpbmRleE9mZnNldDsNCiAgICAgICAgICAgICAgICBpZiAoXy5zbGlkZUNvdW50ID4gXy5vcHRpb25zLnNsaWRlc1RvU2hvdykgew0KICAgICAgICAgICAgICAgICAgICBfLnNsaWRlSGFuZGxlcihfLmN1cnJlbnRTbGlkZSArIHNsaWRlT2Zmc2V0LCBmYWxzZSwgZG9udEFuaW1hdGUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgY2FzZSAnaW5kZXgnOg0KICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IGV2ZW50LmRhdGEuaW5kZXggPT09IDAgPyAwIDoNCiAgICAgICAgICAgICAgICAgICAgZXZlbnQuZGF0YS5pbmRleCB8fCAkdGFyZ2V0LmluZGV4KCkgKiBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw7DQoNCiAgICAgICAgICAgICAgICBfLnNsaWRlSGFuZGxlcihfLmNoZWNrTmF2aWdhYmxlKGluZGV4KSwgZmFsc2UsIGRvbnRBbmltYXRlKTsNCiAgICAgICAgICAgICAgICAkdGFyZ2V0LmNoaWxkcmVuKCkudHJpZ2dlcignZm9jdXMnKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuY2hlY2tOYXZpZ2FibGUgPSBmdW5jdGlvbihpbmRleCkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIG5hdmlnYWJsZXMsIHByZXZOYXZpZ2FibGU7DQoNCiAgICAgICAgbmF2aWdhYmxlcyA9IF8uZ2V0TmF2aWdhYmxlSW5kZXhlcygpOw0KICAgICAgICBwcmV2TmF2aWdhYmxlID0gMDsNCiAgICAgICAgaWYgKGluZGV4ID4gbmF2aWdhYmxlc1tuYXZpZ2FibGVzLmxlbmd0aCAtIDFdKSB7DQogICAgICAgICAgICBpbmRleCA9IG5hdmlnYWJsZXNbbmF2aWdhYmxlcy5sZW5ndGggLSAxXTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGZvciAodmFyIG4gaW4gbmF2aWdhYmxlcykgew0KICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IG5hdmlnYWJsZXNbbl0pIHsNCiAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBwcmV2TmF2aWdhYmxlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcHJldk5hdmlnYWJsZSA9IG5hdmlnYWJsZXNbbl07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gaW5kZXg7DQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5jbGVhblVwRXZlbnRzID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuZG90cyAmJiBfLiRkb3RzICE9PSBudWxsKSB7DQoNCiAgICAgICAgICAgICQoJ2xpJywgXy4kZG90cykNCiAgICAgICAgICAgICAgICAub2ZmKCdjbGljay5zbGljaycsIF8uY2hhbmdlU2xpZGUpDQogICAgICAgICAgICAgICAgLm9mZignbW91c2VlbnRlci5zbGljaycsICQucHJveHkoXy5pbnRlcnJ1cHQsIF8sIHRydWUpKQ0KICAgICAgICAgICAgICAgIC5vZmYoJ21vdXNlbGVhdmUuc2xpY2snLCAkLnByb3h5KF8uaW50ZXJydXB0LCBfLCBmYWxzZSkpOw0KDQogICAgICAgIH0NCg0KICAgICAgICBfLiRzbGlkZXIub2ZmKCdmb2N1cy5zbGljayBibHVyLnNsaWNrJyk7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5hcnJvd3MgPT09IHRydWUgJiYgXy5zbGlkZUNvdW50ID4gXy5vcHRpb25zLnNsaWRlc1RvU2hvdykgew0KICAgICAgICAgICAgXy4kcHJldkFycm93ICYmIF8uJHByZXZBcnJvdy5vZmYoJ2NsaWNrLnNsaWNrJywgXy5jaGFuZ2VTbGlkZSk7DQogICAgICAgICAgICBfLiRuZXh0QXJyb3cgJiYgXy4kbmV4dEFycm93Lm9mZignY2xpY2suc2xpY2snLCBfLmNoYW5nZVNsaWRlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIF8uJGxpc3Qub2ZmKCd0b3VjaHN0YXJ0LnNsaWNrIG1vdXNlZG93bi5zbGljaycsIF8uc3dpcGVIYW5kbGVyKTsNCiAgICAgICAgXy4kbGlzdC5vZmYoJ3RvdWNobW92ZS5zbGljayBtb3VzZW1vdmUuc2xpY2snLCBfLnN3aXBlSGFuZGxlcik7DQogICAgICAgIF8uJGxpc3Qub2ZmKCd0b3VjaGVuZC5zbGljayBtb3VzZXVwLnNsaWNrJywgXy5zd2lwZUhhbmRsZXIpOw0KICAgICAgICBfLiRsaXN0Lm9mZigndG91Y2hjYW5jZWwuc2xpY2sgbW91c2VsZWF2ZS5zbGljaycsIF8uc3dpcGVIYW5kbGVyKTsNCg0KICAgICAgICBfLiRsaXN0Lm9mZignY2xpY2suc2xpY2snLCBfLmNsaWNrSGFuZGxlcik7DQoNCiAgICAgICAgJChkb2N1bWVudCkub2ZmKF8udmlzaWJpbGl0eUNoYW5nZSwgXy52aXNpYmlsaXR5KTsNCg0KICAgICAgICBfLmNsZWFuVXBTbGlkZUV2ZW50cygpOw0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuYWNjZXNzaWJpbGl0eSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgXy4kbGlzdC5vZmYoJ2tleWRvd24uc2xpY2snLCBfLmtleUhhbmRsZXIpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5mb2N1c09uU2VsZWN0ID09PSB0cnVlKSB7DQogICAgICAgICAgICAkKF8uJHNsaWRlVHJhY2spLmNoaWxkcmVuKCkub2ZmKCdjbGljay5zbGljaycsIF8uc2VsZWN0SGFuZGxlcik7DQogICAgICAgIH0NCg0KICAgICAgICAkKHdpbmRvdykub2ZmKCdvcmllbnRhdGlvbmNoYW5nZS5zbGljay5zbGljay0nICsgXy5pbnN0YW5jZVVpZCwgXy5vcmllbnRhdGlvbkNoYW5nZSk7DQoNCiAgICAgICAgJCh3aW5kb3cpLm9mZigncmVzaXplLnNsaWNrLnNsaWNrLScgKyBfLmluc3RhbmNlVWlkLCBfLnJlc2l6ZSk7DQoNCiAgICAgICAgJCgnW2RyYWdnYWJsZSE9dHJ1ZV0nLCBfLiRzbGlkZVRyYWNrKS5vZmYoJ2RyYWdzdGFydCcsIF8ucHJldmVudERlZmF1bHQpOw0KDQogICAgICAgICQod2luZG93KS5vZmYoJ2xvYWQuc2xpY2suc2xpY2stJyArIF8uaW5zdGFuY2VVaWQsIF8uc2V0UG9zaXRpb24pOw0KICAgICAgICAkKGRvY3VtZW50KS5vZmYoJ3JlYWR5LnNsaWNrLnNsaWNrLScgKyBfLmluc3RhbmNlVWlkLCBfLnNldFBvc2l0aW9uKTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuY2xlYW5VcFNsaWRlRXZlbnRzID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIF8uJGxpc3Qub2ZmKCdtb3VzZWVudGVyLnNsaWNrJywgJC5wcm94eShfLmludGVycnVwdCwgXywgdHJ1ZSkpOw0KICAgICAgICBfLiRsaXN0Lm9mZignbW91c2VsZWF2ZS5zbGljaycsICQucHJveHkoXy5pbnRlcnJ1cHQsIF8sIGZhbHNlKSk7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmNsZWFuVXBSb3dzID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLCBvcmlnaW5hbFNsaWRlczsNCg0KICAgICAgICBpZihfLm9wdGlvbnMucm93cyA+IDEpIHsNCiAgICAgICAgICAgIG9yaWdpbmFsU2xpZGVzID0gXy4kc2xpZGVzLmNoaWxkcmVuKCkuY2hpbGRyZW4oKTsNCiAgICAgICAgICAgIG9yaWdpbmFsU2xpZGVzLnJlbW92ZUF0dHIoJ3N0eWxlJyk7DQogICAgICAgICAgICBfLiRzbGlkZXIuZW1wdHkoKS5hcHBlbmQob3JpZ2luYWxTbGlkZXMpOw0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmNsaWNrSGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIGlmIChfLnNob3VsZENsaWNrID09PSBmYWxzZSkgew0KICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7DQogICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsNCiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKHJlZnJlc2gpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgXy5hdXRvUGxheUNsZWFyKCk7DQoNCiAgICAgICAgXy50b3VjaE9iamVjdCA9IHt9Ow0KDQogICAgICAgIF8uY2xlYW5VcEV2ZW50cygpOw0KDQogICAgICAgICQoJy5zbGljay1jbG9uZWQnLCBfLiRzbGlkZXIpLmRldGFjaCgpOw0KDQogICAgICAgIGlmIChfLiRkb3RzKSB7DQogICAgICAgICAgICBfLiRkb3RzLnJlbW92ZSgpOw0KICAgICAgICB9DQoNCg0KICAgICAgICBpZiAoIF8uJHByZXZBcnJvdyAmJiBfLiRwcmV2QXJyb3cubGVuZ3RoICkgew0KDQogICAgICAgICAgICBfLiRwcmV2QXJyb3cNCiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ3NsaWNrLWRpc2FibGVkIHNsaWNrLWFycm93IHNsaWNrLWhpZGRlbicpDQogICAgICAgICAgICAgICAgLnJlbW92ZUF0dHIoJ2FyaWEtaGlkZGVuIGFyaWEtZGlzYWJsZWQgdGFiaW5kZXgnKQ0KICAgICAgICAgICAgICAgIC5jc3MoJ2Rpc3BsYXknLCcnKTsNCg0KICAgICAgICAgICAgaWYgKCBfLmh0bWxFeHByLnRlc3QoIF8ub3B0aW9ucy5wcmV2QXJyb3cgKSkgew0KICAgICAgICAgICAgICAgIF8uJHByZXZBcnJvdy5yZW1vdmUoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmICggXy4kbmV4dEFycm93ICYmIF8uJG5leHRBcnJvdy5sZW5ndGggKSB7DQoNCiAgICAgICAgICAgIF8uJG5leHRBcnJvdw0KICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnc2xpY2stZGlzYWJsZWQgc2xpY2stYXJyb3cgc2xpY2staGlkZGVuJykNCiAgICAgICAgICAgICAgICAucmVtb3ZlQXR0cignYXJpYS1oaWRkZW4gYXJpYS1kaXNhYmxlZCB0YWJpbmRleCcpDQogICAgICAgICAgICAgICAgLmNzcygnZGlzcGxheScsJycpOw0KDQogICAgICAgICAgICBpZiAoIF8uaHRtbEV4cHIudGVzdCggXy5vcHRpb25zLm5leHRBcnJvdyApKSB7DQogICAgICAgICAgICAgICAgXy4kbmV4dEFycm93LnJlbW92ZSgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCg0KDQogICAgICAgIGlmIChfLiRzbGlkZXMpIHsNCg0KICAgICAgICAgICAgXy4kc2xpZGVzDQogICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdzbGljay1zbGlkZSBzbGljay1hY3RpdmUgc2xpY2stY2VudGVyIHNsaWNrLXZpc2libGUgc2xpY2stY3VycmVudCcpDQogICAgICAgICAgICAgICAgLnJlbW92ZUF0dHIoJ2FyaWEtaGlkZGVuJykNCiAgICAgICAgICAgICAgICAucmVtb3ZlQXR0cignZGF0YS1zbGljay1pbmRleCcpDQogICAgICAgICAgICAgICAgLmVhY2goZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdzdHlsZScsICQodGhpcykuZGF0YSgnb3JpZ2luYWxTdHlsaW5nJykpOw0KICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBfLiRzbGlkZVRyYWNrLmNoaWxkcmVuKHRoaXMub3B0aW9ucy5zbGlkZSkuZGV0YWNoKCk7DQoNCiAgICAgICAgICAgIF8uJHNsaWRlVHJhY2suZGV0YWNoKCk7DQoNCiAgICAgICAgICAgIF8uJGxpc3QuZGV0YWNoKCk7DQoNCiAgICAgICAgICAgIF8uJHNsaWRlci5hcHBlbmQoXy4kc2xpZGVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIF8uY2xlYW5VcFJvd3MoKTsNCg0KICAgICAgICBfLiRzbGlkZXIucmVtb3ZlQ2xhc3MoJ3NsaWNrLXNsaWRlcicpOw0KICAgICAgICBfLiRzbGlkZXIucmVtb3ZlQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJyk7DQogICAgICAgIF8uJHNsaWRlci5yZW1vdmVDbGFzcygnc2xpY2stZG90dGVkJyk7DQoNCiAgICAgICAgXy51bnNsaWNrZWQgPSB0cnVlOw0KDQogICAgICAgIGlmKCFyZWZyZXNoKSB7DQogICAgICAgICAgICBfLiRzbGlkZXIudHJpZ2dlcignZGVzdHJveScsIFtfXSk7DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuZGlzYWJsZVRyYW5zaXRpb24gPSBmdW5jdGlvbihzbGlkZSkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIHRyYW5zaXRpb24gPSB7fTsNCg0KICAgICAgICB0cmFuc2l0aW9uW18udHJhbnNpdGlvblR5cGVdID0gJyc7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5mYWRlID09PSBmYWxzZSkgew0KICAgICAgICAgICAgXy4kc2xpZGVUcmFjay5jc3ModHJhbnNpdGlvbik7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBfLiRzbGlkZXMuZXEoc2xpZGUpLmNzcyh0cmFuc2l0aW9uKTsNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5mYWRlU2xpZGUgPSBmdW5jdGlvbihzbGlkZUluZGV4LCBjYWxsYmFjaykgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAoXy5jc3NUcmFuc2l0aW9ucyA9PT0gZmFsc2UpIHsNCg0KICAgICAgICAgICAgXy4kc2xpZGVzLmVxKHNsaWRlSW5kZXgpLmNzcyh7DQogICAgICAgICAgICAgICAgekluZGV4OiBfLm9wdGlvbnMuekluZGV4DQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgXy4kc2xpZGVzLmVxKHNsaWRlSW5kZXgpLmFuaW1hdGUoew0KICAgICAgICAgICAgICAgIG9wYWNpdHk6IDENCiAgICAgICAgICAgIH0sIF8ub3B0aW9ucy5zcGVlZCwgXy5vcHRpb25zLmVhc2luZywgY2FsbGJhY2spOw0KDQogICAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgICAgIF8uYXBwbHlUcmFuc2l0aW9uKHNsaWRlSW5kZXgpOw0KDQogICAgICAgICAgICBfLiRzbGlkZXMuZXEoc2xpZGVJbmRleCkuY3NzKHsNCiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLA0KICAgICAgICAgICAgICAgIHpJbmRleDogXy5vcHRpb25zLnpJbmRleA0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGlmIChjYWxsYmFjaykgew0KICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgXy5kaXNhYmxlVHJhbnNpdGlvbihzbGlkZUluZGV4KTsNCg0KICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKCk7DQogICAgICAgICAgICAgICAgfSwgXy5vcHRpb25zLnNwZWVkKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmZhZGVTbGlkZU91dCA9IGZ1bmN0aW9uKHNsaWRlSW5kZXgpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgaWYgKF8uY3NzVHJhbnNpdGlvbnMgPT09IGZhbHNlKSB7DQoNCiAgICAgICAgICAgIF8uJHNsaWRlcy5lcShzbGlkZUluZGV4KS5hbmltYXRlKHsNCiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLA0KICAgICAgICAgICAgICAgIHpJbmRleDogXy5vcHRpb25zLnpJbmRleCAtIDINCiAgICAgICAgICAgIH0sIF8ub3B0aW9ucy5zcGVlZCwgXy5vcHRpb25zLmVhc2luZyk7DQoNCiAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgXy5hcHBseVRyYW5zaXRpb24oc2xpZGVJbmRleCk7DQoNCiAgICAgICAgICAgIF8uJHNsaWRlcy5lcShzbGlkZUluZGV4KS5jc3Moew0KICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsDQogICAgICAgICAgICAgICAgekluZGV4OiBfLm9wdGlvbnMuekluZGV4IC0gMg0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5maWx0ZXJTbGlkZXMgPSBTbGljay5wcm90b3R5cGUuc2xpY2tGaWx0ZXIgPSBmdW5jdGlvbihmaWx0ZXIpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCkgew0KDQogICAgICAgICAgICBfLiRzbGlkZXNDYWNoZSA9IF8uJHNsaWRlczsNCg0KICAgICAgICAgICAgXy51bmxvYWQoKTsNCg0KICAgICAgICAgICAgXy4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmRldGFjaCgpOw0KDQogICAgICAgICAgICBfLiRzbGlkZXNDYWNoZS5maWx0ZXIoZmlsdGVyKS5hcHBlbmRUbyhfLiRzbGlkZVRyYWNrKTsNCg0KICAgICAgICAgICAgXy5yZWluaXQoKTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmZvY3VzSGFuZGxlciA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBfLiRzbGlkZXINCiAgICAgICAgICAgIC5vZmYoJ2ZvY3VzLnNsaWNrIGJsdXIuc2xpY2snKQ0KICAgICAgICAgICAgLm9uKCdmb2N1cy5zbGljayBibHVyLnNsaWNrJywNCiAgICAgICAgICAgICAgICAnKjpub3QoLnNsaWNrLWFycm93KScsIGZ1bmN0aW9uKGV2ZW50KSB7DQoNCiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOw0KICAgICAgICAgICAgdmFyICRzZiA9ICQodGhpcyk7DQoNCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICBpZiggXy5vcHRpb25zLnBhdXNlT25Gb2N1cyApIHsNCiAgICAgICAgICAgICAgICAgICAgXy5mb2N1c3NlZCA9ICRzZi5pcygnOmZvY3VzJyk7DQogICAgICAgICAgICAgICAgICAgIF8uYXV0b1BsYXkoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0sIDApOw0KDQogICAgICAgIH0pOw0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuZ2V0Q3VycmVudCA9IFNsaWNrLnByb3RvdHlwZS5zbGlja0N1cnJlbnRTbGlkZSA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCiAgICAgICAgcmV0dXJuIF8uY3VycmVudFNsaWRlOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5nZXREb3RDb3VudCA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICB2YXIgYnJlYWtQb2ludCA9IDA7DQogICAgICAgIHZhciBjb3VudGVyID0gMDsNCiAgICAgICAgdmFyIHBhZ2VyUXR5ID0gMDsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmluZmluaXRlID09PSB0cnVlKSB7DQogICAgICAgICAgICB3aGlsZSAoYnJlYWtQb2ludCA8IF8uc2xpZGVDb3VudCkgew0KICAgICAgICAgICAgICAgICsrcGFnZXJRdHk7DQogICAgICAgICAgICAgICAgYnJlYWtQb2ludCA9IGNvdW50ZXIgKyBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw7DQogICAgICAgICAgICAgICAgY291bnRlciArPSBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwgPD0gXy5vcHRpb25zLnNsaWRlc1RvU2hvdyA/IF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCA6IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3c7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSBpZiAoXy5vcHRpb25zLmNlbnRlck1vZGUgPT09IHRydWUpIHsNCiAgICAgICAgICAgIHBhZ2VyUXR5ID0gXy5zbGlkZUNvdW50Ow0KICAgICAgICB9IGVsc2UgaWYoIV8ub3B0aW9ucy5hc05hdkZvcikgew0KICAgICAgICAgICAgcGFnZXJRdHkgPSAxICsgTWF0aC5jZWlsKChfLnNsaWRlQ291bnQgLSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSAvIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCk7DQogICAgICAgIH1lbHNlIHsNCiAgICAgICAgICAgIHdoaWxlIChicmVha1BvaW50IDwgXy5zbGlkZUNvdW50KSB7DQogICAgICAgICAgICAgICAgKytwYWdlclF0eTsNCiAgICAgICAgICAgICAgICBicmVha1BvaW50ID0gY291bnRlciArIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDsNCiAgICAgICAgICAgICAgICBjb3VudGVyICs9IF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCA8PSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93ID8gXy5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsIDogXy5vcHRpb25zLnNsaWRlc1RvU2hvdzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBwYWdlclF0eSAtIDE7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmdldExlZnQgPSBmdW5jdGlvbihzbGlkZUluZGV4KSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLA0KICAgICAgICAgICAgdGFyZ2V0TGVmdCwNCiAgICAgICAgICAgIHZlcnRpY2FsSGVpZ2h0LA0KICAgICAgICAgICAgdmVydGljYWxPZmZzZXQgPSAwLA0KICAgICAgICAgICAgdGFyZ2V0U2xpZGU7DQoNCiAgICAgICAgXy5zbGlkZU9mZnNldCA9IDA7DQogICAgICAgIHZlcnRpY2FsSGVpZ2h0ID0gXy4kc2xpZGVzLmZpcnN0KCkub3V0ZXJIZWlnaHQodHJ1ZSk7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5pbmZpbml0ZSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgaWYgKF8uc2xpZGVDb3VudCA+IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpIHsNCiAgICAgICAgICAgICAgICBfLnNsaWRlT2Zmc2V0ID0gKF8uc2xpZGVXaWR0aCAqIF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpICogLTE7DQogICAgICAgICAgICAgICAgdmVydGljYWxPZmZzZXQgPSAodmVydGljYWxIZWlnaHQgKiBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSAqIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKF8uc2xpZGVDb3VudCAlIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCAhPT0gMCkgew0KICAgICAgICAgICAgICAgIGlmIChzbGlkZUluZGV4ICsgXy5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsID4gXy5zbGlkZUNvdW50ICYmIF8uc2xpZGVDb3VudCA+IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHNsaWRlSW5kZXggPiBfLnNsaWRlQ291bnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF8uc2xpZGVPZmZzZXQgPSAoKF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgLSAoc2xpZGVJbmRleCAtIF8uc2xpZGVDb3VudCkpICogXy5zbGlkZVdpZHRoKSAqIC0xOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWxPZmZzZXQgPSAoKF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgLSAoc2xpZGVJbmRleCAtIF8uc2xpZGVDb3VudCkpICogdmVydGljYWxIZWlnaHQpICogLTE7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBfLnNsaWRlT2Zmc2V0ID0gKChfLnNsaWRlQ291bnQgJSBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwpICogXy5zbGlkZVdpZHRoKSAqIC0xOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWxPZmZzZXQgPSAoKF8uc2xpZGVDb3VudCAlIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCkgKiB2ZXJ0aWNhbEhlaWdodCkgKiAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGlmIChzbGlkZUluZGV4ICsgXy5vcHRpb25zLnNsaWRlc1RvU2hvdyA+IF8uc2xpZGVDb3VudCkgew0KICAgICAgICAgICAgICAgIF8uc2xpZGVPZmZzZXQgPSAoKHNsaWRlSW5kZXggKyBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSAtIF8uc2xpZGVDb3VudCkgKiBfLnNsaWRlV2lkdGg7DQogICAgICAgICAgICAgICAgdmVydGljYWxPZmZzZXQgPSAoKHNsaWRlSW5kZXggKyBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSAtIF8uc2xpZGVDb3VudCkgKiB2ZXJ0aWNhbEhlaWdodDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLnNsaWRlQ291bnQgPD0gXy5vcHRpb25zLnNsaWRlc1RvU2hvdykgew0KICAgICAgICAgICAgXy5zbGlkZU9mZnNldCA9IDA7DQogICAgICAgICAgICB2ZXJ0aWNhbE9mZnNldCA9IDA7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmNlbnRlck1vZGUgPT09IHRydWUgJiYgXy5vcHRpb25zLmluZmluaXRlID09PSB0cnVlKSB7DQogICAgICAgICAgICBfLnNsaWRlT2Zmc2V0ICs9IF8uc2xpZGVXaWR0aCAqIE1hdGguZmxvb3IoXy5vcHRpb25zLnNsaWRlc1RvU2hvdyAvIDIpIC0gXy5zbGlkZVdpZHRoOw0KICAgICAgICB9IGVsc2UgaWYgKF8ub3B0aW9ucy5jZW50ZXJNb2RlID09PSB0cnVlKSB7DQogICAgICAgICAgICBfLnNsaWRlT2Zmc2V0ID0gMDsNCiAgICAgICAgICAgIF8uc2xpZGVPZmZzZXQgKz0gXy5zbGlkZVdpZHRoICogTWF0aC5mbG9vcihfLm9wdGlvbnMuc2xpZGVzVG9TaG93IC8gMik7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoXy5vcHRpb25zLnZlcnRpY2FsID09PSBmYWxzZSkgew0KICAgICAgICAgICAgdGFyZ2V0TGVmdCA9ICgoc2xpZGVJbmRleCAqIF8uc2xpZGVXaWR0aCkgKiAtMSkgKyBfLnNsaWRlT2Zmc2V0Ow0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdGFyZ2V0TGVmdCA9ICgoc2xpZGVJbmRleCAqIHZlcnRpY2FsSGVpZ2h0KSAqIC0xKSArIHZlcnRpY2FsT2Zmc2V0Ow0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy52YXJpYWJsZVdpZHRoID09PSB0cnVlKSB7DQoNCiAgICAgICAgICAgIGlmIChfLnNsaWRlQ291bnQgPD0gXy5vcHRpb25zLnNsaWRlc1RvU2hvdyB8fCBfLm9wdGlvbnMuaW5maW5pdGUgPT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgdGFyZ2V0U2xpZGUgPSBfLiRzbGlkZVRyYWNrLmNoaWxkcmVuKCcuc2xpY2stc2xpZGUnKS5lcShzbGlkZUluZGV4KTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgdGFyZ2V0U2xpZGUgPSBfLiRzbGlkZVRyYWNrLmNoaWxkcmVuKCcuc2xpY2stc2xpZGUnKS5lcShzbGlkZUluZGV4ICsgXy5vcHRpb25zLnNsaWRlc1RvU2hvdyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChfLm9wdGlvbnMucnRsID09PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaWYgKHRhcmdldFNsaWRlWzBdKSB7DQogICAgICAgICAgICAgICAgICAgIHRhcmdldExlZnQgPSAoXy4kc2xpZGVUcmFjay53aWR0aCgpIC0gdGFyZ2V0U2xpZGVbMF0ub2Zmc2V0TGVmdCAtIHRhcmdldFNsaWRlLndpZHRoKCkpICogLTE7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TGVmdCA9ICAwOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgdGFyZ2V0TGVmdCA9IHRhcmdldFNsaWRlWzBdID8gdGFyZ2V0U2xpZGVbMF0ub2Zmc2V0TGVmdCAqIC0xIDogMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy5jZW50ZXJNb2RlID09PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaWYgKF8uc2xpZGVDb3VudCA8PSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93IHx8IF8ub3B0aW9ucy5pbmZpbml0ZSA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U2xpZGUgPSBfLiRzbGlkZVRyYWNrLmNoaWxkcmVuKCcuc2xpY2stc2xpZGUnKS5lcShzbGlkZUluZGV4KTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICB0YXJnZXRTbGlkZSA9IF8uJHNsaWRlVHJhY2suY2hpbGRyZW4oJy5zbGljay1zbGlkZScpLmVxKHNsaWRlSW5kZXggKyBfLm9wdGlvbnMuc2xpZGVzVG9TaG93ICsgMSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy5ydGwgPT09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldFNsaWRlWzBdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRMZWZ0ID0gKF8uJHNsaWRlVHJhY2sud2lkdGgoKSAtIHRhcmdldFNsaWRlWzBdLm9mZnNldExlZnQgLSB0YXJnZXRTbGlkZS53aWR0aCgpKSAqIC0xOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TGVmdCA9ICAwOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TGVmdCA9IHRhcmdldFNsaWRlWzBdID8gdGFyZ2V0U2xpZGVbMF0ub2Zmc2V0TGVmdCAqIC0xIDogMDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICB0YXJnZXRMZWZ0ICs9IChfLiRsaXN0LndpZHRoKCkgLSB0YXJnZXRTbGlkZS5vdXRlcldpZHRoKCkpIC8gMjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0YXJnZXRMZWZ0Ow0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5nZXRPcHRpb24gPSBTbGljay5wcm90b3R5cGUuc2xpY2tHZXRPcHRpb24gPSBmdW5jdGlvbihvcHRpb24pIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgcmV0dXJuIF8ub3B0aW9uc1tvcHRpb25dOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5nZXROYXZpZ2FibGVJbmRleGVzID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLA0KICAgICAgICAgICAgYnJlYWtQb2ludCA9IDAsDQogICAgICAgICAgICBjb3VudGVyID0gMCwNCiAgICAgICAgICAgIGluZGV4ZXMgPSBbXSwNCiAgICAgICAgICAgIG1heDsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmluZmluaXRlID09PSBmYWxzZSkgew0KICAgICAgICAgICAgbWF4ID0gXy5zbGlkZUNvdW50Ow0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgYnJlYWtQb2ludCA9IF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCAqIC0xOw0KICAgICAgICAgICAgY291bnRlciA9IF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCAqIC0xOw0KICAgICAgICAgICAgbWF4ID0gXy5zbGlkZUNvdW50ICogMjsNCiAgICAgICAgfQ0KDQogICAgICAgIHdoaWxlIChicmVha1BvaW50IDwgbWF4KSB7DQogICAgICAgICAgICBpbmRleGVzLnB1c2goYnJlYWtQb2ludCk7DQogICAgICAgICAgICBicmVha1BvaW50ID0gY291bnRlciArIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDsNCiAgICAgICAgICAgIGNvdW50ZXIgKz0gXy5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsIDw9IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgPyBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwgOiBfLm9wdGlvbnMuc2xpZGVzVG9TaG93Ow0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIGluZGV4ZXM7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmdldFNsaWNrID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgcmV0dXJuIHRoaXM7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmdldFNsaWRlQ291bnQgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXMsDQogICAgICAgICAgICBzbGlkZXNUcmF2ZXJzZWQsIHN3aXBlZFNsaWRlLCBjZW50ZXJPZmZzZXQ7DQoNCiAgICAgICAgY2VudGVyT2Zmc2V0ID0gXy5vcHRpb25zLmNlbnRlck1vZGUgPT09IHRydWUgPyBfLnNsaWRlV2lkdGggKiBNYXRoLmZsb29yKF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgLyAyKSA6IDA7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5zd2lwZVRvU2xpZGUgPT09IHRydWUpIHsNCiAgICAgICAgICAgIF8uJHNsaWRlVHJhY2suZmluZCgnLnNsaWNrLXNsaWRlJykuZWFjaChmdW5jdGlvbihpbmRleCwgc2xpZGUpIHsNCiAgICAgICAgICAgICAgICBpZiAoc2xpZGUub2Zmc2V0TGVmdCAtIGNlbnRlck9mZnNldCArICgkKHNsaWRlKS5vdXRlcldpZHRoKCkgLyAyKSA+IChfLnN3aXBlTGVmdCAqIC0xKSkgew0KICAgICAgICAgICAgICAgICAgICBzd2lwZWRTbGlkZSA9IHNsaWRlOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHNsaWRlc1RyYXZlcnNlZCA9IE1hdGguYWJzKCQoc3dpcGVkU2xpZGUpLmF0dHIoJ2RhdGEtc2xpY2staW5kZXgnKSAtIF8uY3VycmVudFNsaWRlKSB8fCAxOw0KDQogICAgICAgICAgICByZXR1cm4gc2xpZGVzVHJhdmVyc2VkOw0KDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICByZXR1cm4gXy5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsOw0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmdvVG8gPSBTbGljay5wcm90b3R5cGUuc2xpY2tHb1RvID0gZnVuY3Rpb24oc2xpZGUsIGRvbnRBbmltYXRlKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIF8uY2hhbmdlU2xpZGUoew0KICAgICAgICAgICAgZGF0YTogew0KICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdpbmRleCcsDQogICAgICAgICAgICAgICAgaW5kZXg6IHBhcnNlSW50KHNsaWRlKQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9LCBkb250QW5pbWF0ZSk7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbihjcmVhdGlvbikgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAoISQoXy4kc2xpZGVyKS5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKSkgew0KDQogICAgICAgICAgICAkKF8uJHNsaWRlcikuYWRkQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJyk7DQoNCiAgICAgICAgICAgIF8uYnVpbGRSb3dzKCk7DQogICAgICAgICAgICBfLmJ1aWxkT3V0KCk7DQogICAgICAgICAgICBfLnNldFByb3BzKCk7DQogICAgICAgICAgICBfLnN0YXJ0TG9hZCgpOw0KICAgICAgICAgICAgXy5sb2FkU2xpZGVyKCk7DQogICAgICAgICAgICBfLmluaXRpYWxpemVFdmVudHMoKTsNCiAgICAgICAgICAgIF8udXBkYXRlQXJyb3dzKCk7DQogICAgICAgICAgICBfLnVwZGF0ZURvdHMoKTsNCiAgICAgICAgICAgIF8uY2hlY2tSZXNwb25zaXZlKHRydWUpOw0KICAgICAgICAgICAgXy5mb2N1c0hhbmRsZXIoKTsNCg0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGNyZWF0aW9uKSB7DQogICAgICAgICAgICBfLiRzbGlkZXIudHJpZ2dlcignaW5pdCcsIFtfXSk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmFjY2Vzc2liaWxpdHkgPT09IHRydWUpIHsNCiAgICAgICAgICAgIF8uaW5pdEFEQSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKCBfLm9wdGlvbnMuYXV0b3BsYXkgKSB7DQoNCiAgICAgICAgICAgIF8ucGF1c2VkID0gZmFsc2U7DQogICAgICAgICAgICBfLmF1dG9QbGF5KCk7DQoNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5pbml0QURBID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciBfID0gdGhpczsNCiAgICAgICAgXy4kc2xpZGVzLmFkZChfLiRzbGlkZVRyYWNrLmZpbmQoJy5zbGljay1jbG9uZWQnKSkuYXR0cih7DQogICAgICAgICAgICAnYXJpYS1oaWRkZW4nOiAndHJ1ZScsDQogICAgICAgICAgICAndGFiaW5kZXgnOiAnLTEnDQogICAgICAgIH0pLmZpbmQoJ2EsIGlucHV0LCBidXR0b24sIHNlbGVjdCcpLmF0dHIoew0KICAgICAgICAgICAgJ3RhYmluZGV4JzogJy0xJw0KICAgICAgICB9KTsNCg0KICAgICAgICBfLiRzbGlkZVRyYWNrLmF0dHIoJ3JvbGUnLCAnbGlzdGJveCcpOw0KDQogICAgICAgIF8uJHNsaWRlcy5ub3QoXy4kc2xpZGVUcmFjay5maW5kKCcuc2xpY2stY2xvbmVkJykpLmVhY2goZnVuY3Rpb24oaSkgew0KICAgICAgICAgICAgJCh0aGlzKS5hdHRyKHsNCiAgICAgICAgICAgICAgICAncm9sZSc6ICdvcHRpb24nLA0KICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogJ3NsaWNrLXNsaWRlJyArIF8uaW5zdGFuY2VVaWQgKyBpICsgJycNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9KTsNCg0KICAgICAgICBpZiAoXy4kZG90cyAhPT0gbnVsbCkgew0KICAgICAgICAgICAgXy4kZG90cy5hdHRyKCdyb2xlJywgJ3RhYmxpc3QnKS5maW5kKCdsaScpLmVhY2goZnVuY3Rpb24oaSkgew0KICAgICAgICAgICAgICAgICQodGhpcykuYXR0cih7DQogICAgICAgICAgICAgICAgICAgICdyb2xlJzogJ3ByZXNlbnRhdGlvbicsDQogICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogJ2ZhbHNlJywNCiAgICAgICAgICAgICAgICAgICAgJ2FyaWEtY29udHJvbHMnOiAnbmF2aWdhdGlvbicgKyBfLmluc3RhbmNlVWlkICsgaSArICcnLA0KICAgICAgICAgICAgICAgICAgICAnaWQnOiAnc2xpY2stc2xpZGUnICsgXy5pbnN0YW5jZVVpZCArIGkgKyAnJw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAuZmlyc3QoKS5hdHRyKCdhcmlhLXNlbGVjdGVkJywgJ3RydWUnKS5lbmQoKQ0KICAgICAgICAgICAgICAgIC5maW5kKCdidXR0b24nKS5hdHRyKCdyb2xlJywgJ2J1dHRvbicpLmVuZCgpDQogICAgICAgICAgICAgICAgLmNsb3Nlc3QoJ2RpdicpLmF0dHIoJ3JvbGUnLCAndG9vbGJhcicpOw0KICAgICAgICB9DQogICAgICAgIF8uYWN0aXZhdGVBREEoKTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuaW5pdEFycm93RXZlbnRzID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuYXJyb3dzID09PSB0cnVlICYmIF8uc2xpZGVDb3VudCA+IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpIHsNCiAgICAgICAgICAgIF8uJHByZXZBcnJvdw0KICAgICAgICAgICAgICAgLm9mZignY2xpY2suc2xpY2snKQ0KICAgICAgICAgICAgICAgLm9uKCdjbGljay5zbGljaycsIHsNCiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ3ByZXZpb3VzJw0KICAgICAgICAgICAgICAgfSwgXy5jaGFuZ2VTbGlkZSk7DQogICAgICAgICAgICBfLiRuZXh0QXJyb3cNCiAgICAgICAgICAgICAgIC5vZmYoJ2NsaWNrLnNsaWNrJykNCiAgICAgICAgICAgICAgIC5vbignY2xpY2suc2xpY2snLCB7DQogICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICduZXh0Jw0KICAgICAgICAgICAgICAgfSwgXy5jaGFuZ2VTbGlkZSk7DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuaW5pdERvdEV2ZW50cyA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmRvdHMgPT09IHRydWUgJiYgXy5zbGlkZUNvdW50ID4gXy5vcHRpb25zLnNsaWRlc1RvU2hvdykgew0KICAgICAgICAgICAgJCgnbGknLCBfLiRkb3RzKS5vbignY2xpY2suc2xpY2snLCB7DQogICAgICAgICAgICAgICAgbWVzc2FnZTogJ2luZGV4Jw0KICAgICAgICAgICAgfSwgXy5jaGFuZ2VTbGlkZSk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoIF8ub3B0aW9ucy5kb3RzID09PSB0cnVlICYmIF8ub3B0aW9ucy5wYXVzZU9uRG90c0hvdmVyID09PSB0cnVlICkgew0KDQogICAgICAgICAgICAkKCdsaScsIF8uJGRvdHMpDQogICAgICAgICAgICAgICAgLm9uKCdtb3VzZWVudGVyLnNsaWNrJywgJC5wcm94eShfLmludGVycnVwdCwgXywgdHJ1ZSkpDQogICAgICAgICAgICAgICAgLm9uKCdtb3VzZWxlYXZlLnNsaWNrJywgJC5wcm94eShfLmludGVycnVwdCwgXywgZmFsc2UpKTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmluaXRTbGlkZUV2ZW50cyA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAoIF8ub3B0aW9ucy5wYXVzZU9uSG92ZXIgKSB7DQoNCiAgICAgICAgICAgIF8uJGxpc3Qub24oJ21vdXNlZW50ZXIuc2xpY2snLCAkLnByb3h5KF8uaW50ZXJydXB0LCBfLCB0cnVlKSk7DQogICAgICAgICAgICBfLiRsaXN0Lm9uKCdtb3VzZWxlYXZlLnNsaWNrJywgJC5wcm94eShfLmludGVycnVwdCwgXywgZmFsc2UpKTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmluaXRpYWxpemVFdmVudHMgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgXy5pbml0QXJyb3dFdmVudHMoKTsNCg0KICAgICAgICBfLmluaXREb3RFdmVudHMoKTsNCiAgICAgICAgXy5pbml0U2xpZGVFdmVudHMoKTsNCg0KICAgICAgICBfLiRsaXN0Lm9uKCd0b3VjaHN0YXJ0LnNsaWNrIG1vdXNlZG93bi5zbGljaycsIHsNCiAgICAgICAgICAgIGFjdGlvbjogJ3N0YXJ0Jw0KICAgICAgICB9LCBfLnN3aXBlSGFuZGxlcik7DQogICAgICAgIF8uJGxpc3Qub24oJ3RvdWNobW92ZS5zbGljayBtb3VzZW1vdmUuc2xpY2snLCB7DQogICAgICAgICAgICBhY3Rpb246ICdtb3ZlJw0KICAgICAgICB9LCBfLnN3aXBlSGFuZGxlcik7DQogICAgICAgIF8uJGxpc3Qub24oJ3RvdWNoZW5kLnNsaWNrIG1vdXNldXAuc2xpY2snLCB7DQogICAgICAgICAgICBhY3Rpb246ICdlbmQnDQogICAgICAgIH0sIF8uc3dpcGVIYW5kbGVyKTsNCiAgICAgICAgXy4kbGlzdC5vbigndG91Y2hjYW5jZWwuc2xpY2sgbW91c2VsZWF2ZS5zbGljaycsIHsNCiAgICAgICAgICAgIGFjdGlvbjogJ2VuZCcNCiAgICAgICAgfSwgXy5zd2lwZUhhbmRsZXIpOw0KDQogICAgICAgIF8uJGxpc3Qub24oJ2NsaWNrLnNsaWNrJywgXy5jbGlja0hhbmRsZXIpOw0KDQogICAgICAgICQoZG9jdW1lbnQpLm9uKF8udmlzaWJpbGl0eUNoYW5nZSwgJC5wcm94eShfLnZpc2liaWxpdHksIF8pKTsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmFjY2Vzc2liaWxpdHkgPT09IHRydWUpIHsNCiAgICAgICAgICAgIF8uJGxpc3Qub24oJ2tleWRvd24uc2xpY2snLCBfLmtleUhhbmRsZXIpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5mb2N1c09uU2VsZWN0ID09PSB0cnVlKSB7DQogICAgICAgICAgICAkKF8uJHNsaWRlVHJhY2spLmNoaWxkcmVuKCkub24oJ2NsaWNrLnNsaWNrJywgXy5zZWxlY3RIYW5kbGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgICQod2luZG93KS5vbignb3JpZW50YXRpb25jaGFuZ2Uuc2xpY2suc2xpY2stJyArIF8uaW5zdGFuY2VVaWQsICQucHJveHkoXy5vcmllbnRhdGlvbkNoYW5nZSwgXykpOw0KDQogICAgICAgICQod2luZG93KS5vbigncmVzaXplLnNsaWNrLnNsaWNrLScgKyBfLmluc3RhbmNlVWlkLCAkLnByb3h5KF8ucmVzaXplLCBfKSk7DQoNCiAgICAgICAgJCgnW2RyYWdnYWJsZSE9dHJ1ZV0nLCBfLiRzbGlkZVRyYWNrKS5vbignZHJhZ3N0YXJ0JywgXy5wcmV2ZW50RGVmYXVsdCk7DQoNCiAgICAgICAgJCh3aW5kb3cpLm9uKCdsb2FkLnNsaWNrLnNsaWNrLScgKyBfLmluc3RhbmNlVWlkLCBfLnNldFBvc2l0aW9uKTsNCiAgICAgICAgJChkb2N1bWVudCkub24oJ3JlYWR5LnNsaWNrLnNsaWNrLScgKyBfLmluc3RhbmNlVWlkLCBfLnNldFBvc2l0aW9uKTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuaW5pdFVJID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuYXJyb3dzID09PSB0cnVlICYmIF8uc2xpZGVDb3VudCA+IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpIHsNCg0KICAgICAgICAgICAgXy4kcHJldkFycm93LnNob3coKTsNCiAgICAgICAgICAgIF8uJG5leHRBcnJvdy5zaG93KCk7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuZG90cyA9PT0gdHJ1ZSAmJiBfLnNsaWRlQ291bnQgPiBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSB7DQoNCiAgICAgICAgICAgIF8uJGRvdHMuc2hvdygpOw0KDQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUua2V5SGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KICAgICAgICAgLy9Eb250IHNsaWRlIGlmIHRoZSBjdXJzb3IgaXMgaW5zaWRlIHRoZSBmb3JtIGZpZWxkcyBhbmQgYXJyb3cga2V5cyBhcmUgcHJlc3NlZA0KICAgICAgICBpZighZXZlbnQudGFyZ2V0LnRhZ05hbWUubWF0Y2goJ1RFWFRBUkVBfElOUFVUfFNFTEVDVCcpKSB7DQogICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzcgJiYgXy5vcHRpb25zLmFjY2Vzc2liaWxpdHkgPT09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBfLmNoYW5nZVNsaWRlKHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YTogew0KICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXy5vcHRpb25zLnJ0bCA9PT0gdHJ1ZSA/ICduZXh0JyA6ICAncHJldmlvdXMnDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzkgJiYgXy5vcHRpb25zLmFjY2Vzc2liaWxpdHkgPT09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBfLmNoYW5nZVNsaWRlKHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YTogew0KICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXy5vcHRpb25zLnJ0bCA9PT0gdHJ1ZSA/ICdwcmV2aW91cycgOiAnbmV4dCcNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmxhenlMb2FkID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLA0KICAgICAgICAgICAgbG9hZFJhbmdlLCBjbG9uZVJhbmdlLCByYW5nZVN0YXJ0LCByYW5nZUVuZDsNCg0KICAgICAgICBmdW5jdGlvbiBsb2FkSW1hZ2VzKGltYWdlc1Njb3BlKSB7DQoNCiAgICAgICAgICAgICQoJ2ltZ1tkYXRhLWxhenldJywgaW1hZ2VzU2NvcGUpLmVhY2goZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICB2YXIgaW1hZ2UgPSAkKHRoaXMpLA0KICAgICAgICAgICAgICAgICAgICBpbWFnZVNvdXJjZSA9ICQodGhpcykuYXR0cignZGF0YS1sYXp5JyksDQogICAgICAgICAgICAgICAgICAgIGltYWdlVG9Mb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7DQoNCiAgICAgICAgICAgICAgICBpbWFnZVRvTG9hZC5vbmxvYWQgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICAgICAgICAgICAgICBpbWFnZQ0KICAgICAgICAgICAgICAgICAgICAgICAgLmFuaW1hdGUoeyBvcGFjaXR5OiAwIH0sIDEwMCwgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ3NyYycsIGltYWdlU291cmNlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYW5pbWF0ZSh7IG9wYWNpdHk6IDEgfSwgMjAwLCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUF0dHIoJ2RhdGEtbGF6eScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdzbGljay1sb2FkaW5nJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8uJHNsaWRlci50cmlnZ2VyKCdsYXp5TG9hZGVkJywgW18sIGltYWdlLCBpbWFnZVNvdXJjZV0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgaW1hZ2VUb0xvYWQub25lcnJvciA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAgICAgICAgIGltYWdlDQogICAgICAgICAgICAgICAgICAgICAgICAucmVtb3ZlQXR0ciggJ2RhdGEtbGF6eScgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCAnc2xpY2stbG9hZGluZycgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCAnc2xpY2stbGF6eWxvYWQtZXJyb3InICk7DQoNCiAgICAgICAgICAgICAgICAgICAgXy4kc2xpZGVyLnRyaWdnZXIoJ2xhenlMb2FkRXJyb3InLCBbIF8sIGltYWdlLCBpbWFnZVNvdXJjZSBdKTsNCg0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpbWFnZVRvTG9hZC5zcmMgPSBpbWFnZVNvdXJjZTsNCg0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuY2VudGVyTW9kZSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy5pbmZpbml0ZSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIHJhbmdlU3RhcnQgPSBfLmN1cnJlbnRTbGlkZSArIChfLm9wdGlvbnMuc2xpZGVzVG9TaG93IC8gMiArIDEpOw0KICAgICAgICAgICAgICAgIHJhbmdlRW5kID0gcmFuZ2VTdGFydCArIF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgKyAyOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByYW5nZVN0YXJ0ID0gTWF0aC5tYXgoMCwgXy5jdXJyZW50U2xpZGUgLSAoXy5vcHRpb25zLnNsaWRlc1RvU2hvdyAvIDIgKyAxKSk7DQogICAgICAgICAgICAgICAgcmFuZ2VFbmQgPSAyICsgKF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgLyAyICsgMSkgKyBfLmN1cnJlbnRTbGlkZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHJhbmdlU3RhcnQgPSBfLm9wdGlvbnMuaW5maW5pdGUgPyBfLm9wdGlvbnMuc2xpZGVzVG9TaG93ICsgXy5jdXJyZW50U2xpZGUgOiBfLmN1cnJlbnRTbGlkZTsNCiAgICAgICAgICAgIHJhbmdlRW5kID0gTWF0aC5jZWlsKHJhbmdlU3RhcnQgKyBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KTsNCiAgICAgICAgICAgIGlmIChfLm9wdGlvbnMuZmFkZSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlmIChyYW5nZVN0YXJ0ID4gMCkgcmFuZ2VTdGFydC0tOw0KICAgICAgICAgICAgICAgIGlmIChyYW5nZUVuZCA8PSBfLnNsaWRlQ291bnQpIHJhbmdlRW5kKys7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBsb2FkUmFuZ2UgPSBfLiRzbGlkZXIuZmluZCgnLnNsaWNrLXNsaWRlJykuc2xpY2UocmFuZ2VTdGFydCwgcmFuZ2VFbmQpOw0KICAgICAgICBsb2FkSW1hZ2VzKGxvYWRSYW5nZSk7DQoNCiAgICAgICAgaWYgKF8uc2xpZGVDb3VudCA8PSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSB7DQogICAgICAgICAgICBjbG9uZVJhbmdlID0gXy4kc2xpZGVyLmZpbmQoJy5zbGljay1zbGlkZScpOw0KICAgICAgICAgICAgbG9hZEltYWdlcyhjbG9uZVJhbmdlKTsNCiAgICAgICAgfSBlbHNlDQogICAgICAgIGlmIChfLmN1cnJlbnRTbGlkZSA+PSBfLnNsaWRlQ291bnQgLSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSB7DQogICAgICAgICAgICBjbG9uZVJhbmdlID0gXy4kc2xpZGVyLmZpbmQoJy5zbGljay1jbG9uZWQnKS5zbGljZSgwLCBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KTsNCiAgICAgICAgICAgIGxvYWRJbWFnZXMoY2xvbmVSYW5nZSk7DQogICAgICAgIH0gZWxzZSBpZiAoXy5jdXJyZW50U2xpZGUgPT09IDApIHsNCiAgICAgICAgICAgIGNsb25lUmFuZ2UgPSBfLiRzbGlkZXIuZmluZCgnLnNsaWNrLWNsb25lZCcpLnNsaWNlKF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgKiAtMSk7DQogICAgICAgICAgICBsb2FkSW1hZ2VzKGNsb25lUmFuZ2UpOw0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLmxvYWRTbGlkZXIgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgXy5zZXRQb3NpdGlvbigpOw0KDQogICAgICAgIF8uJHNsaWRlVHJhY2suY3NzKHsNCiAgICAgICAgICAgIG9wYWNpdHk6IDENCiAgICAgICAgfSk7DQoNCiAgICAgICAgXy4kc2xpZGVyLnJlbW92ZUNsYXNzKCdzbGljay1sb2FkaW5nJyk7DQoNCiAgICAgICAgXy5pbml0VUkoKTsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmxhenlMb2FkID09PSAncHJvZ3Jlc3NpdmUnKSB7DQogICAgICAgICAgICBfLnByb2dyZXNzaXZlTGF6eUxvYWQoKTsNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5uZXh0ID0gU2xpY2sucHJvdG90eXBlLnNsaWNrTmV4dCA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBfLmNoYW5nZVNsaWRlKHsNCiAgICAgICAgICAgIGRhdGE6IHsNCiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnbmV4dCcNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLm9yaWVudGF0aW9uQ2hhbmdlID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIF8uY2hlY2tSZXNwb25zaXZlKCk7DQogICAgICAgIF8uc2V0UG9zaXRpb24oKTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUucGF1c2UgPSBTbGljay5wcm90b3R5cGUuc2xpY2tQYXVzZSA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBfLmF1dG9QbGF5Q2xlYXIoKTsNCiAgICAgICAgXy5wYXVzZWQgPSB0cnVlOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5wbGF5ID0gU2xpY2sucHJvdG90eXBlLnNsaWNrUGxheSA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBfLmF1dG9QbGF5KCk7DQogICAgICAgIF8ub3B0aW9ucy5hdXRvcGxheSA9IHRydWU7DQogICAgICAgIF8ucGF1c2VkID0gZmFsc2U7DQogICAgICAgIF8uZm9jdXNzZWQgPSBmYWxzZTsNCiAgICAgICAgXy5pbnRlcnJ1cHRlZCA9IGZhbHNlOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5wb3N0U2xpZGUgPSBmdW5jdGlvbihpbmRleCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiggIV8udW5zbGlja2VkICkgew0KDQogICAgICAgICAgICBfLiRzbGlkZXIudHJpZ2dlcignYWZ0ZXJDaGFuZ2UnLCBbXywgaW5kZXhdKTsNCg0KICAgICAgICAgICAgXy5hbmltYXRpbmcgPSBmYWxzZTsNCg0KICAgICAgICAgICAgXy5zZXRQb3NpdGlvbigpOw0KDQogICAgICAgICAgICBfLnN3aXBlTGVmdCA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICggXy5vcHRpb25zLmF1dG9wbGF5ICkgew0KICAgICAgICAgICAgICAgIF8uYXV0b1BsYXkoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy5hY2Nlc3NpYmlsaXR5ID09PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgXy5pbml0QURBKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5wcmV2ID0gU2xpY2sucHJvdG90eXBlLnNsaWNrUHJldiA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBfLmNoYW5nZVNsaWRlKHsNCiAgICAgICAgICAgIGRhdGE6IHsNCiAgICAgICAgICAgICAgICBtZXNzYWdlOiAncHJldmlvdXMnDQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uKGV2ZW50KSB7DQoNCiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUucHJvZ3Jlc3NpdmVMYXp5TG9hZCA9IGZ1bmN0aW9uKCB0cnlDb3VudCApIHsNCg0KICAgICAgICB0cnlDb3VudCA9IHRyeUNvdW50IHx8IDE7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLA0KICAgICAgICAgICAgJGltZ3NUb0xvYWQgPSAkKCAnaW1nW2RhdGEtbGF6eV0nLCBfLiRzbGlkZXIgKSwNCiAgICAgICAgICAgIGltYWdlLA0KICAgICAgICAgICAgaW1hZ2VTb3VyY2UsDQogICAgICAgICAgICBpbWFnZVRvTG9hZDsNCg0KICAgICAgICBpZiAoICRpbWdzVG9Mb2FkLmxlbmd0aCApIHsNCg0KICAgICAgICAgICAgaW1hZ2UgPSAkaW1nc1RvTG9hZC5maXJzdCgpOw0KICAgICAgICAgICAgaW1hZ2VTb3VyY2UgPSBpbWFnZS5hdHRyKCdkYXRhLWxhenknKTsNCiAgICAgICAgICAgIGltYWdlVG9Mb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7DQoNCiAgICAgICAgICAgIGltYWdlVG9Mb2FkLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAgICAgaW1hZ2UNCiAgICAgICAgICAgICAgICAgICAgLmF0dHIoICdzcmMnLCBpbWFnZVNvdXJjZSApDQogICAgICAgICAgICAgICAgICAgIC5yZW1vdmVBdHRyKCdkYXRhLWxhenknKQ0KICAgICAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ3NsaWNrLWxvYWRpbmcnKTsNCg0KICAgICAgICAgICAgICAgIGlmICggXy5vcHRpb25zLmFkYXB0aXZlSGVpZ2h0ID09PSB0cnVlICkgew0KICAgICAgICAgICAgICAgICAgICBfLnNldFBvc2l0aW9uKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgXy4kc2xpZGVyLnRyaWdnZXIoJ2xhenlMb2FkZWQnLCBbIF8sIGltYWdlLCBpbWFnZVNvdXJjZSBdKTsNCiAgICAgICAgICAgICAgICBfLnByb2dyZXNzaXZlTGF6eUxvYWQoKTsNCg0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgaW1hZ2VUb0xvYWQub25lcnJvciA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAgICAgaWYgKCB0cnlDb3VudCA8IDMgKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgLyoqDQogICAgICAgICAgICAgICAgICAgICAqIHRyeSB0byBsb2FkIHRoZSBpbWFnZSAzIHRpbWVzLA0KICAgICAgICAgICAgICAgICAgICAgKiBsZWF2ZSBhIHNsaWdodCBkZWxheSBzbyB3ZSBkb24ndCBnZXQNCiAgICAgICAgICAgICAgICAgICAgICogc2VydmVycyBibG9ja2luZyB0aGUgcmVxdWVzdC4NCiAgICAgICAgICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgXy5wcm9ncmVzc2l2ZUxhenlMb2FkKCB0cnlDb3VudCArIDEgKTsNCiAgICAgICAgICAgICAgICAgICAgfSwgNTAwICk7DQoNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KDQogICAgICAgICAgICAgICAgICAgIGltYWdlDQogICAgICAgICAgICAgICAgICAgICAgICAucmVtb3ZlQXR0ciggJ2RhdGEtbGF6eScgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCAnc2xpY2stbG9hZGluZycgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCAnc2xpY2stbGF6eWxvYWQtZXJyb3InICk7DQoNCiAgICAgICAgICAgICAgICAgICAgXy4kc2xpZGVyLnRyaWdnZXIoJ2xhenlMb2FkRXJyb3InLCBbIF8sIGltYWdlLCBpbWFnZVNvdXJjZSBdKTsNCg0KICAgICAgICAgICAgICAgICAgICBfLnByb2dyZXNzaXZlTGF6eUxvYWQoKTsNCg0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgaW1hZ2VUb0xvYWQuc3JjID0gaW1hZ2VTb3VyY2U7DQoNCiAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgXy4kc2xpZGVyLnRyaWdnZXIoJ2FsbEltYWdlc0xvYWRlZCcsIFsgXyBdKTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbiggaW5pdGlhbGl6aW5nICkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywgY3VycmVudFNsaWRlLCBsYXN0VmlzaWJsZUluZGV4Ow0KDQogICAgICAgIGxhc3RWaXNpYmxlSW5kZXggPSBfLnNsaWRlQ291bnQgLSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93Ow0KDQogICAgICAgIC8vIGluIG5vbi1pbmZpbml0ZSBzbGlkZXJzLCB3ZSBkb24ndCB3YW50IHRvIGdvIHBhc3QgdGhlDQogICAgICAgIC8vIGxhc3QgdmlzaWJsZSBpbmRleC4NCiAgICAgICAgaWYoICFfLm9wdGlvbnMuaW5maW5pdGUgJiYgKCBfLmN1cnJlbnRTbGlkZSA+IGxhc3RWaXNpYmxlSW5kZXggKSkgew0KICAgICAgICAgICAgXy5jdXJyZW50U2xpZGUgPSBsYXN0VmlzaWJsZUluZGV4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLy8gaWYgbGVzcyBzbGlkZXMgdGhhbiB0byBzaG93LCBnbyB0byBzdGFydC4NCiAgICAgICAgaWYgKCBfLnNsaWRlQ291bnQgPD0gXy5vcHRpb25zLnNsaWRlc1RvU2hvdyApIHsNCiAgICAgICAgICAgIF8uY3VycmVudFNsaWRlID0gMDsNCg0KICAgICAgICB9DQoNCiAgICAgICAgY3VycmVudFNsaWRlID0gXy5jdXJyZW50U2xpZGU7DQoNCiAgICAgICAgXy5kZXN0cm95KHRydWUpOw0KDQogICAgICAgICQuZXh0ZW5kKF8sIF8uaW5pdGlhbHMsIHsgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGUgfSk7DQoNCiAgICAgICAgXy5pbml0KCk7DQoNCiAgICAgICAgaWYoICFpbml0aWFsaXppbmcgKSB7DQoNCiAgICAgICAgICAgIF8uY2hhbmdlU2xpZGUoew0KICAgICAgICAgICAgICAgIGRhdGE6IHsNCiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ2luZGV4JywNCiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGN1cnJlbnRTbGlkZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sIGZhbHNlKTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnJlZ2lzdGVyQnJlYWtwb2ludHMgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXMsIGJyZWFrcG9pbnQsIGN1cnJlbnRCcmVha3BvaW50LCBsLA0KICAgICAgICAgICAgcmVzcG9uc2l2ZVNldHRpbmdzID0gXy5vcHRpb25zLnJlc3BvbnNpdmUgfHwgbnVsbDsNCg0KICAgICAgICBpZiAoICQudHlwZShyZXNwb25zaXZlU2V0dGluZ3MpID09PSAnYXJyYXknICYmIHJlc3BvbnNpdmVTZXR0aW5ncy5sZW5ndGggKSB7DQoNCiAgICAgICAgICAgIF8ucmVzcG9uZFRvID0gXy5vcHRpb25zLnJlc3BvbmRUbyB8fCAnd2luZG93JzsNCg0KICAgICAgICAgICAgZm9yICggYnJlYWtwb2ludCBpbiByZXNwb25zaXZlU2V0dGluZ3MgKSB7DQoNCiAgICAgICAgICAgICAgICBsID0gXy5icmVha3BvaW50cy5sZW5ndGgtMTsNCiAgICAgICAgICAgICAgICBjdXJyZW50QnJlYWtwb2ludCA9IHJlc3BvbnNpdmVTZXR0aW5nc1ticmVha3BvaW50XS5icmVha3BvaW50Ow0KDQogICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNpdmVTZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShicmVha3BvaW50KSkgew0KDQogICAgICAgICAgICAgICAgICAgIC8vIGxvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgYW5kIGN1dCBvdXQgYW55IGV4aXN0aW5nDQogICAgICAgICAgICAgICAgICAgIC8vIG9uZXMgd2l0aCB0aGUgc2FtZSBicmVha3BvaW50IG51bWJlciwgd2UgZG9uJ3Qgd2FudCBkdXBlcy4NCiAgICAgICAgICAgICAgICAgICAgd2hpbGUoIGwgPj0gMCApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBfLmJyZWFrcG9pbnRzW2xdICYmIF8uYnJlYWtwb2ludHNbbF0gPT09IGN1cnJlbnRCcmVha3BvaW50ICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8uYnJlYWtwb2ludHMuc3BsaWNlKGwsMSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBsLS07DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBfLmJyZWFrcG9pbnRzLnB1c2goY3VycmVudEJyZWFrcG9pbnQpOw0KICAgICAgICAgICAgICAgICAgICBfLmJyZWFrcG9pbnRTZXR0aW5nc1tjdXJyZW50QnJlYWtwb2ludF0gPSByZXNwb25zaXZlU2V0dGluZ3NbYnJlYWtwb2ludF0uc2V0dGluZ3M7DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgXy5icmVha3BvaW50cy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gKCBfLm9wdGlvbnMubW9iaWxlRmlyc3QgKSA/IGEtYiA6IGItYTsNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUucmVpbml0ID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIF8uJHNsaWRlcyA9DQogICAgICAgICAgICBfLiRzbGlkZVRyYWNrDQogICAgICAgICAgICAgICAgLmNoaWxkcmVuKF8ub3B0aW9ucy5zbGlkZSkNCiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ3NsaWNrLXNsaWRlJyk7DQoNCiAgICAgICAgXy5zbGlkZUNvdW50ID0gXy4kc2xpZGVzLmxlbmd0aDsNCg0KICAgICAgICBpZiAoXy5jdXJyZW50U2xpZGUgPj0gXy5zbGlkZUNvdW50ICYmIF8uY3VycmVudFNsaWRlICE9PSAwKSB7DQogICAgICAgICAgICBfLmN1cnJlbnRTbGlkZSA9IF8uY3VycmVudFNsaWRlIC0gXy5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKF8uc2xpZGVDb3VudCA8PSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSB7DQogICAgICAgICAgICBfLmN1cnJlbnRTbGlkZSA9IDA7DQogICAgICAgIH0NCg0KICAgICAgICBfLnJlZ2lzdGVyQnJlYWtwb2ludHMoKTsNCg0KICAgICAgICBfLnNldFByb3BzKCk7DQogICAgICAgIF8uc2V0dXBJbmZpbml0ZSgpOw0KICAgICAgICBfLmJ1aWxkQXJyb3dzKCk7DQogICAgICAgIF8udXBkYXRlQXJyb3dzKCk7DQogICAgICAgIF8uaW5pdEFycm93RXZlbnRzKCk7DQogICAgICAgIF8uYnVpbGREb3RzKCk7DQogICAgICAgIF8udXBkYXRlRG90cygpOw0KICAgICAgICBfLmluaXREb3RFdmVudHMoKTsNCiAgICAgICAgXy5jbGVhblVwU2xpZGVFdmVudHMoKTsNCiAgICAgICAgXy5pbml0U2xpZGVFdmVudHMoKTsNCg0KICAgICAgICBfLmNoZWNrUmVzcG9uc2l2ZShmYWxzZSwgdHJ1ZSk7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5mb2N1c09uU2VsZWN0ID09PSB0cnVlKSB7DQogICAgICAgICAgICAkKF8uJHNsaWRlVHJhY2spLmNoaWxkcmVuKCkub24oJ2NsaWNrLnNsaWNrJywgXy5zZWxlY3RIYW5kbGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIF8uc2V0U2xpZGVDbGFzc2VzKHR5cGVvZiBfLmN1cnJlbnRTbGlkZSA9PT0gJ251bWJlcicgPyBfLmN1cnJlbnRTbGlkZSA6IDApOw0KDQogICAgICAgIF8uc2V0UG9zaXRpb24oKTsNCiAgICAgICAgXy5mb2N1c0hhbmRsZXIoKTsNCg0KICAgICAgICBfLnBhdXNlZCA9ICFfLm9wdGlvbnMuYXV0b3BsYXk7DQogICAgICAgIF8uYXV0b1BsYXkoKTsNCg0KICAgICAgICBfLiRzbGlkZXIudHJpZ2dlcigncmVJbml0JywgW19dKTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUucmVzaXplID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIGlmICgkKHdpbmRvdykud2lkdGgoKSAhPT0gXy53aW5kb3dXaWR0aCkgew0KICAgICAgICAgICAgY2xlYXJUaW1lb3V0KF8ud2luZG93RGVsYXkpOw0KICAgICAgICAgICAgXy53aW5kb3dEZWxheSA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIF8ud2luZG93V2lkdGggPSAkKHdpbmRvdykud2lkdGgoKTsNCiAgICAgICAgICAgICAgICBfLmNoZWNrUmVzcG9uc2l2ZSgpOw0KICAgICAgICAgICAgICAgIGlmKCAhXy51bnNsaWNrZWQgKSB7IF8uc2V0UG9zaXRpb24oKTsgfQ0KICAgICAgICAgICAgfSwgNTApOw0KICAgICAgICB9DQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5yZW1vdmVTbGlkZSA9IFNsaWNrLnByb3RvdHlwZS5zbGlja1JlbW92ZSA9IGZ1bmN0aW9uKGluZGV4LCByZW1vdmVCZWZvcmUsIHJlbW92ZUFsbCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAodHlwZW9mKGluZGV4KSA9PT0gJ2Jvb2xlYW4nKSB7DQogICAgICAgICAgICByZW1vdmVCZWZvcmUgPSBpbmRleDsNCiAgICAgICAgICAgIGluZGV4ID0gcmVtb3ZlQmVmb3JlID09PSB0cnVlID8gMCA6IF8uc2xpZGVDb3VudCAtIDE7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBpbmRleCA9IHJlbW92ZUJlZm9yZSA9PT0gdHJ1ZSA/IC0taW5kZXggOiBpbmRleDsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLnNsaWRlQ291bnQgPCAxIHx8IGluZGV4IDwgMCB8fCBpbmRleCA+IF8uc2xpZGVDb3VudCAtIDEpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIF8udW5sb2FkKCk7DQoNCiAgICAgICAgaWYgKHJlbW92ZUFsbCA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgXy4kc2xpZGVUcmFjay5jaGlsZHJlbigpLnJlbW92ZSgpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgXy4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmVxKGluZGV4KS5yZW1vdmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIF8uJHNsaWRlcyA9IF8uJHNsaWRlVHJhY2suY2hpbGRyZW4odGhpcy5vcHRpb25zLnNsaWRlKTsNCg0KICAgICAgICBfLiRzbGlkZVRyYWNrLmNoaWxkcmVuKHRoaXMub3B0aW9ucy5zbGlkZSkuZGV0YWNoKCk7DQoNCiAgICAgICAgXy4kc2xpZGVUcmFjay5hcHBlbmQoXy4kc2xpZGVzKTsNCg0KICAgICAgICBfLiRzbGlkZXNDYWNoZSA9IF8uJHNsaWRlczsNCg0KICAgICAgICBfLnJlaW5pdCgpOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5zZXRDU1MgPSBmdW5jdGlvbihwb3NpdGlvbikgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIHBvc2l0aW9uUHJvcHMgPSB7fSwNCiAgICAgICAgICAgIHgsIHk7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5ydGwgPT09IHRydWUpIHsNCiAgICAgICAgICAgIHBvc2l0aW9uID0gLXBvc2l0aW9uOw0KICAgICAgICB9DQogICAgICAgIHggPSBfLnBvc2l0aW9uUHJvcCA9PSAnbGVmdCcgPyBNYXRoLmNlaWwocG9zaXRpb24pICsgJ3B4JyA6ICcwcHgnOw0KICAgICAgICB5ID0gXy5wb3NpdGlvblByb3AgPT0gJ3RvcCcgPyBNYXRoLmNlaWwocG9zaXRpb24pICsgJ3B4JyA6ICcwcHgnOw0KDQogICAgICAgIHBvc2l0aW9uUHJvcHNbXy5wb3NpdGlvblByb3BdID0gcG9zaXRpb247DQoNCiAgICAgICAgaWYgKF8udHJhbnNmb3Jtc0VuYWJsZWQgPT09IGZhbHNlKSB7DQogICAgICAgICAgICBfLiRzbGlkZVRyYWNrLmNzcyhwb3NpdGlvblByb3BzKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHBvc2l0aW9uUHJvcHMgPSB7fTsNCiAgICAgICAgICAgIGlmIChfLmNzc1RyYW5zaXRpb25zID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIHBvc2l0aW9uUHJvcHNbXy5hbmltVHlwZV0gPSAndHJhbnNsYXRlKCcgKyB4ICsgJywgJyArIHkgKyAnKSc7DQogICAgICAgICAgICAgICAgXy4kc2xpZGVUcmFjay5jc3MocG9zaXRpb25Qcm9wcyk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHBvc2l0aW9uUHJvcHNbXy5hbmltVHlwZV0gPSAndHJhbnNsYXRlM2QoJyArIHggKyAnLCAnICsgeSArICcsIDBweCknOw0KICAgICAgICAgICAgICAgIF8uJHNsaWRlVHJhY2suY3NzKHBvc2l0aW9uUHJvcHMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnNldERpbWVuc2lvbnMgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy52ZXJ0aWNhbCA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGlmIChfLm9wdGlvbnMuY2VudGVyTW9kZSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIF8uJGxpc3QuY3NzKHsNCiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogKCcwcHggJyArIF8ub3B0aW9ucy5jZW50ZXJQYWRkaW5nKQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgXy4kbGlzdC5oZWlnaHQoXy4kc2xpZGVzLmZpcnN0KCkub3V0ZXJIZWlnaHQodHJ1ZSkgKiBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KTsNCiAgICAgICAgICAgIGlmIChfLm9wdGlvbnMuY2VudGVyTW9kZSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIF8uJGxpc3QuY3NzKHsNCiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogKF8ub3B0aW9ucy5jZW50ZXJQYWRkaW5nICsgJyAwcHgnKQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgXy5saXN0V2lkdGggPSBfLiRsaXN0LndpZHRoKCk7DQogICAgICAgIF8ubGlzdEhlaWdodCA9IF8uJGxpc3QuaGVpZ2h0KCk7DQoNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLnZlcnRpY2FsID09PSBmYWxzZSAmJiBfLm9wdGlvbnMudmFyaWFibGVXaWR0aCA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgIF8uc2xpZGVXaWR0aCA9IE1hdGguY2VpbChfLmxpc3RXaWR0aCAvIF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpOw0KICAgICAgICAgICAgXy4kc2xpZGVUcmFjay53aWR0aChNYXRoLmNlaWwoKF8uc2xpZGVXaWR0aCAqIF8uJHNsaWRlVHJhY2suY2hpbGRyZW4oJy5zbGljay1zbGlkZScpLmxlbmd0aCkpKTsNCg0KICAgICAgICB9IGVsc2UgaWYgKF8ub3B0aW9ucy52YXJpYWJsZVdpZHRoID09PSB0cnVlKSB7DQogICAgICAgICAgICBfLiRzbGlkZVRyYWNrLndpZHRoKDUwMDAgKiBfLnNsaWRlQ291bnQpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgXy5zbGlkZVdpZHRoID0gTWF0aC5jZWlsKF8ubGlzdFdpZHRoKTsNCiAgICAgICAgICAgIF8uJHNsaWRlVHJhY2suaGVpZ2h0KE1hdGguY2VpbCgoXy4kc2xpZGVzLmZpcnN0KCkub3V0ZXJIZWlnaHQodHJ1ZSkgKiBfLiRzbGlkZVRyYWNrLmNoaWxkcmVuKCcuc2xpY2stc2xpZGUnKS5sZW5ndGgpKSk7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2Zmc2V0ID0gXy4kc2xpZGVzLmZpcnN0KCkub3V0ZXJXaWR0aCh0cnVlKSAtIF8uJHNsaWRlcy5maXJzdCgpLndpZHRoKCk7DQogICAgICAgIGlmIChfLm9wdGlvbnMudmFyaWFibGVXaWR0aCA9PT0gZmFsc2UpIF8uJHNsaWRlVHJhY2suY2hpbGRyZW4oJy5zbGljay1zbGlkZScpLndpZHRoKF8uc2xpZGVXaWR0aCAtIG9mZnNldCk7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnNldEZhZGUgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXMsDQogICAgICAgICAgICB0YXJnZXRMZWZ0Ow0KDQogICAgICAgIF8uJHNsaWRlcy5lYWNoKGZ1bmN0aW9uKGluZGV4LCBlbGVtZW50KSB7DQogICAgICAgICAgICB0YXJnZXRMZWZ0ID0gKF8uc2xpZGVXaWR0aCAqIGluZGV4KSAqIC0xOw0KICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy5ydGwgPT09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmNzcyh7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLA0KICAgICAgICAgICAgICAgICAgICByaWdodDogdGFyZ2V0TGVmdCwNCiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLA0KICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IF8ub3B0aW9ucy56SW5kZXggLSAyLA0KICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICQoZWxlbWVudCkuY3NzKHsNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsDQogICAgICAgICAgICAgICAgICAgIGxlZnQ6IHRhcmdldExlZnQsDQogICAgICAgICAgICAgICAgICAgIHRvcDogMCwNCiAgICAgICAgICAgICAgICAgICAgekluZGV4OiBfLm9wdGlvbnMuekluZGV4IC0gMiwNCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCg0KICAgICAgICBfLiRzbGlkZXMuZXEoXy5jdXJyZW50U2xpZGUpLmNzcyh7DQogICAgICAgICAgICB6SW5kZXg6IF8ub3B0aW9ucy56SW5kZXggLSAxLA0KICAgICAgICAgICAgb3BhY2l0eTogMQ0KICAgICAgICB9KTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuc2V0SGVpZ2h0ID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuc2xpZGVzVG9TaG93ID09PSAxICYmIF8ub3B0aW9ucy5hZGFwdGl2ZUhlaWdodCA9PT0gdHJ1ZSAmJiBfLm9wdGlvbnMudmVydGljYWwgPT09IGZhbHNlKSB7DQogICAgICAgICAgICB2YXIgdGFyZ2V0SGVpZ2h0ID0gXy4kc2xpZGVzLmVxKF8uY3VycmVudFNsaWRlKS5vdXRlckhlaWdodCh0cnVlKTsNCiAgICAgICAgICAgIF8uJGxpc3QuY3NzKCdoZWlnaHQnLCB0YXJnZXRIZWlnaHQpOw0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnNldE9wdGlvbiA9DQogICAgU2xpY2sucHJvdG90eXBlLnNsaWNrU2V0T3B0aW9uID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgLyoqDQogICAgICAgICAqIGFjY2VwdHMgYXJndW1lbnRzIGluIGZvcm1hdCBvZjoNCiAgICAgICAgICoNCiAgICAgICAgICogIC0gZm9yIGNoYW5naW5nIGEgc2luZ2xlIG9wdGlvbidzIHZhbHVlOg0KICAgICAgICAgKiAgICAgLnNsaWNrKCJzZXRPcHRpb24iLCBvcHRpb24sIHZhbHVlLCByZWZyZXNoICkNCiAgICAgICAgICoNCiAgICAgICAgICogIC0gZm9yIGNoYW5naW5nIGEgc2V0IG9mIHJlc3BvbnNpdmUgb3B0aW9uczoNCiAgICAgICAgICogICAgIC5zbGljaygic2V0T3B0aW9uIiwgJ3Jlc3BvbnNpdmUnLCBbe30sIC4uLl0sIHJlZnJlc2ggKQ0KICAgICAgICAgKg0KICAgICAgICAgKiAgLSBmb3IgdXBkYXRpbmcgbXVsdGlwbGUgdmFsdWVzIGF0IG9uY2UgKG5vdCByZXNwb25zaXZlKQ0KICAgICAgICAgKiAgICAgLnNsaWNrKCJzZXRPcHRpb24iLCB7ICdvcHRpb24nOiB2YWx1ZSwgLi4uIH0sIHJlZnJlc2ggKQ0KICAgICAgICAgKi8NCg0KICAgICAgICB2YXIgXyA9IHRoaXMsIGwsIGl0ZW0sIG9wdGlvbiwgdmFsdWUsIHJlZnJlc2ggPSBmYWxzZSwgdHlwZTsNCg0KICAgICAgICBpZiggJC50eXBlKCBhcmd1bWVudHNbMF0gKSA9PT0gJ29iamVjdCcgKSB7DQoNCiAgICAgICAgICAgIG9wdGlvbiA9ICBhcmd1bWVudHNbMF07DQogICAgICAgICAgICByZWZyZXNoID0gYXJndW1lbnRzWzFdOw0KICAgICAgICAgICAgdHlwZSA9ICdtdWx0aXBsZSc7DQoNCiAgICAgICAgfSBlbHNlIGlmICggJC50eXBlKCBhcmd1bWVudHNbMF0gKSA9PT0gJ3N0cmluZycgKSB7DQoNCiAgICAgICAgICAgIG9wdGlvbiA9ICBhcmd1bWVudHNbMF07DQogICAgICAgICAgICB2YWx1ZSA9IGFyZ3VtZW50c1sxXTsNCiAgICAgICAgICAgIHJlZnJlc2ggPSBhcmd1bWVudHNbMl07DQoNCiAgICAgICAgICAgIGlmICggYXJndW1lbnRzWzBdID09PSAncmVzcG9uc2l2ZScgJiYgJC50eXBlKCBhcmd1bWVudHNbMV0gKSA9PT0gJ2FycmF5JyApIHsNCg0KICAgICAgICAgICAgICAgIHR5cGUgPSAncmVzcG9uc2l2ZSc7DQoNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoIHR5cGVvZiBhcmd1bWVudHNbMV0gIT09ICd1bmRlZmluZWQnICkgew0KDQogICAgICAgICAgICAgICAgdHlwZSA9ICdzaW5nbGUnOw0KDQogICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICggdHlwZSA9PT0gJ3NpbmdsZScgKSB7DQoNCiAgICAgICAgICAgIF8ub3B0aW9uc1tvcHRpb25dID0gdmFsdWU7DQoNCg0KICAgICAgICB9IGVsc2UgaWYgKCB0eXBlID09PSAnbXVsdGlwbGUnICkgew0KDQogICAgICAgICAgICAkLmVhY2goIG9wdGlvbiAsIGZ1bmN0aW9uKCBvcHQsIHZhbCApIHsNCg0KICAgICAgICAgICAgICAgIF8ub3B0aW9uc1tvcHRdID0gdmFsOw0KDQogICAgICAgICAgICB9KTsNCg0KDQogICAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09ICdyZXNwb25zaXZlJyApIHsNCg0KICAgICAgICAgICAgZm9yICggaXRlbSBpbiB2YWx1ZSApIHsNCg0KICAgICAgICAgICAgICAgIGlmKCAkLnR5cGUoIF8ub3B0aW9ucy5yZXNwb25zaXZlICkgIT09ICdhcnJheScgKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgXy5vcHRpb25zLnJlc3BvbnNpdmUgPSBbIHZhbHVlW2l0ZW1dIF07DQoNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KDQogICAgICAgICAgICAgICAgICAgIGwgPSBfLm9wdGlvbnMucmVzcG9uc2l2ZS5sZW5ndGgtMTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBsb29wIHRocm91Z2ggdGhlIHJlc3BvbnNpdmUgb2JqZWN0IGFuZCBzcGxpY2Ugb3V0IGR1cGxpY2F0ZXMuDQogICAgICAgICAgICAgICAgICAgIHdoaWxlKCBsID49IDAgKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBfLm9wdGlvbnMucmVzcG9uc2l2ZVtsXS5icmVha3BvaW50ID09PSB2YWx1ZVtpdGVtXS5icmVha3BvaW50ICkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXy5vcHRpb25zLnJlc3BvbnNpdmUuc3BsaWNlKGwsMSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgbC0tOw0KDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBfLm9wdGlvbnMucmVzcG9uc2l2ZS5wdXNoKCB2YWx1ZVtpdGVtXSApOw0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICggcmVmcmVzaCApIHsNCg0KICAgICAgICAgICAgXy51bmxvYWQoKTsNCiAgICAgICAgICAgIF8ucmVpbml0KCk7DQoNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5zZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBfLnNldERpbWVuc2lvbnMoKTsNCg0KICAgICAgICBfLnNldEhlaWdodCgpOw0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuZmFkZSA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgIF8uc2V0Q1NTKF8uZ2V0TGVmdChfLmN1cnJlbnRTbGlkZSkpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgXy5zZXRGYWRlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBfLiRzbGlkZXIudHJpZ2dlcignc2V0UG9zaXRpb24nLCBbX10pOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5zZXRQcm9wcyA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIGJvZHlTdHlsZSA9IGRvY3VtZW50LmJvZHkuc3R5bGU7DQoNCiAgICAgICAgXy5wb3NpdGlvblByb3AgPSBfLm9wdGlvbnMudmVydGljYWwgPT09IHRydWUgPyAndG9wJyA6ICdsZWZ0JzsNCg0KICAgICAgICBpZiAoXy5wb3NpdGlvblByb3AgPT09ICd0b3AnKSB7DQogICAgICAgICAgICBfLiRzbGlkZXIuYWRkQ2xhc3MoJ3NsaWNrLXZlcnRpY2FsJyk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBfLiRzbGlkZXIucmVtb3ZlQ2xhc3MoJ3NsaWNrLXZlcnRpY2FsJyk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoYm9keVN0eWxlLldlYmtpdFRyYW5zaXRpb24gIT09IHVuZGVmaW5lZCB8fA0KICAgICAgICAgICAgYm9keVN0eWxlLk1velRyYW5zaXRpb24gIT09IHVuZGVmaW5lZCB8fA0KICAgICAgICAgICAgYm9keVN0eWxlLm1zVHJhbnNpdGlvbiAhPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBpZiAoXy5vcHRpb25zLnVzZUNTUyA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIF8uY3NzVHJhbnNpdGlvbnMgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKCBfLm9wdGlvbnMuZmFkZSApIHsNCiAgICAgICAgICAgIGlmICggdHlwZW9mIF8ub3B0aW9ucy56SW5kZXggPT09ICdudW1iZXInICkgew0KICAgICAgICAgICAgICAgIGlmKCBfLm9wdGlvbnMuekluZGV4IDwgMyApIHsNCiAgICAgICAgICAgICAgICAgICAgXy5vcHRpb25zLnpJbmRleCA9IDM7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBfLm9wdGlvbnMuekluZGV4ID0gXy5kZWZhdWx0cy56SW5kZXg7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoYm9keVN0eWxlLk9UcmFuc2Zvcm0gIT09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgXy5hbmltVHlwZSA9ICdPVHJhbnNmb3JtJzsNCiAgICAgICAgICAgIF8udHJhbnNmb3JtVHlwZSA9ICctby10cmFuc2Zvcm0nOw0KICAgICAgICAgICAgXy50cmFuc2l0aW9uVHlwZSA9ICdPVHJhbnNpdGlvbic7DQogICAgICAgICAgICBpZiAoYm9keVN0eWxlLnBlcnNwZWN0aXZlUHJvcGVydHkgPT09IHVuZGVmaW5lZCAmJiBib2R5U3R5bGUud2Via2l0UGVyc3BlY3RpdmUgPT09IHVuZGVmaW5lZCkgXy5hbmltVHlwZSA9IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIGlmIChib2R5U3R5bGUuTW96VHJhbnNmb3JtICE9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIF8uYW5pbVR5cGUgPSAnTW96VHJhbnNmb3JtJzsNCiAgICAgICAgICAgIF8udHJhbnNmb3JtVHlwZSA9ICctbW96LXRyYW5zZm9ybSc7DQogICAgICAgICAgICBfLnRyYW5zaXRpb25UeXBlID0gJ01velRyYW5zaXRpb24nOw0KICAgICAgICAgICAgaWYgKGJvZHlTdHlsZS5wZXJzcGVjdGl2ZVByb3BlcnR5ID09PSB1bmRlZmluZWQgJiYgYm9keVN0eWxlLk1velBlcnNwZWN0aXZlID09PSB1bmRlZmluZWQpIF8uYW5pbVR5cGUgPSBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoYm9keVN0eWxlLndlYmtpdFRyYW5zZm9ybSAhPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBfLmFuaW1UeXBlID0gJ3dlYmtpdFRyYW5zZm9ybSc7DQogICAgICAgICAgICBfLnRyYW5zZm9ybVR5cGUgPSAnLXdlYmtpdC10cmFuc2Zvcm0nOw0KICAgICAgICAgICAgXy50cmFuc2l0aW9uVHlwZSA9ICd3ZWJraXRUcmFuc2l0aW9uJzsNCiAgICAgICAgICAgIGlmIChib2R5U3R5bGUucGVyc3BlY3RpdmVQcm9wZXJ0eSA9PT0gdW5kZWZpbmVkICYmIGJvZHlTdHlsZS53ZWJraXRQZXJzcGVjdGl2ZSA9PT0gdW5kZWZpbmVkKSBfLmFuaW1UeXBlID0gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGJvZHlTdHlsZS5tc1RyYW5zZm9ybSAhPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBfLmFuaW1UeXBlID0gJ21zVHJhbnNmb3JtJzsNCiAgICAgICAgICAgIF8udHJhbnNmb3JtVHlwZSA9ICctbXMtdHJhbnNmb3JtJzsNCiAgICAgICAgICAgIF8udHJhbnNpdGlvblR5cGUgPSAnbXNUcmFuc2l0aW9uJzsNCiAgICAgICAgICAgIGlmIChib2R5U3R5bGUubXNUcmFuc2Zvcm0gPT09IHVuZGVmaW5lZCkgXy5hbmltVHlwZSA9IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIGlmIChib2R5U3R5bGUudHJhbnNmb3JtICE9PSB1bmRlZmluZWQgJiYgXy5hbmltVHlwZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIF8uYW5pbVR5cGUgPSAndHJhbnNmb3JtJzsNCiAgICAgICAgICAgIF8udHJhbnNmb3JtVHlwZSA9ICd0cmFuc2Zvcm0nOw0KICAgICAgICAgICAgXy50cmFuc2l0aW9uVHlwZSA9ICd0cmFuc2l0aW9uJzsNCiAgICAgICAgfQ0KICAgICAgICBfLnRyYW5zZm9ybXNFbmFibGVkID0gXy5vcHRpb25zLnVzZVRyYW5zZm9ybSAmJiAoXy5hbmltVHlwZSAhPT0gbnVsbCAmJiBfLmFuaW1UeXBlICE9PSBmYWxzZSk7DQogICAgfTsNCg0KDQogICAgU2xpY2sucHJvdG90eXBlLnNldFNsaWRlQ2xhc3NlcyA9IGZ1bmN0aW9uKGluZGV4KSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzLA0KICAgICAgICAgICAgY2VudGVyT2Zmc2V0LCBhbGxTbGlkZXMsIGluZGV4T2Zmc2V0LCByZW1haW5kZXI7DQoNCiAgICAgICAgYWxsU2xpZGVzID0gXy4kc2xpZGVyDQogICAgICAgICAgICAuZmluZCgnLnNsaWNrLXNsaWRlJykNCiAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnc2xpY2stYWN0aXZlIHNsaWNrLWNlbnRlciBzbGljay1jdXJyZW50JykNCiAgICAgICAgICAgIC5hdHRyKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7DQoNCiAgICAgICAgXy4kc2xpZGVzDQogICAgICAgICAgICAuZXEoaW5kZXgpDQogICAgICAgICAgICAuYWRkQ2xhc3MoJ3NsaWNrLWN1cnJlbnQnKTsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmNlbnRlck1vZGUgPT09IHRydWUpIHsNCg0KICAgICAgICAgICAgY2VudGVyT2Zmc2V0ID0gTWF0aC5mbG9vcihfLm9wdGlvbnMuc2xpZGVzVG9TaG93IC8gMik7DQoNCiAgICAgICAgICAgIGlmIChfLm9wdGlvbnMuaW5maW5pdGUgPT09IHRydWUpIHsNCg0KICAgICAgICAgICAgICAgIGlmIChpbmRleCA+PSBjZW50ZXJPZmZzZXQgJiYgaW5kZXggPD0gKF8uc2xpZGVDb3VudCAtIDEpIC0gY2VudGVyT2Zmc2V0KSB7DQoNCiAgICAgICAgICAgICAgICAgICAgXy4kc2xpZGVzDQogICAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoaW5kZXggLSBjZW50ZXJPZmZzZXQsIGluZGV4ICsgY2VudGVyT2Zmc2V0ICsgMSkNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2xpY2stYWN0aXZlJykNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdhcmlhLWhpZGRlbicsICdmYWxzZScpOw0KDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgICAgICAgICBpbmRleE9mZnNldCA9IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgKyBpbmRleDsNCiAgICAgICAgICAgICAgICAgICAgYWxsU2xpZGVzDQogICAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoaW5kZXhPZmZzZXQgLSBjZW50ZXJPZmZzZXQgKyAxLCBpbmRleE9mZnNldCArIGNlbnRlck9mZnNldCArIDIpDQogICAgICAgICAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ3NsaWNrLWFjdGl2ZScpDQogICAgICAgICAgICAgICAgICAgICAgICAuYXR0cignYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTsNCg0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkgew0KDQogICAgICAgICAgICAgICAgICAgIGFsbFNsaWRlcw0KICAgICAgICAgICAgICAgICAgICAgICAgLmVxKGFsbFNsaWRlcy5sZW5ndGggLSAxIC0gXy5vcHRpb25zLnNsaWRlc1RvU2hvdykNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2xpY2stY2VudGVyJyk7DQoNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSBfLnNsaWRlQ291bnQgLSAxKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgYWxsU2xpZGVzDQogICAgICAgICAgICAgICAgICAgICAgICAuZXEoXy5vcHRpb25zLnNsaWRlc1RvU2hvdykNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2xpY2stY2VudGVyJyk7DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgXy4kc2xpZGVzDQogICAgICAgICAgICAgICAgLmVxKGluZGV4KQ0KICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2xpY2stY2VudGVyJyk7DQoNCiAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPD0gKF8uc2xpZGVDb3VudCAtIF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpKSB7DQoNCiAgICAgICAgICAgICAgICBfLiRzbGlkZXMNCiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKGluZGV4LCBpbmRleCArIF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpDQogICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2xpY2stYWN0aXZlJykNCiAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJyk7DQoNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWxsU2xpZGVzLmxlbmd0aCA8PSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSB7DQoNCiAgICAgICAgICAgICAgICBhbGxTbGlkZXMNCiAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdzbGljay1hY3RpdmUnKQ0KICAgICAgICAgICAgICAgICAgICAuYXR0cignYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTsNCg0KICAgICAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgICAgIHJlbWFpbmRlciA9IF8uc2xpZGVDb3VudCAlIF8ub3B0aW9ucy5zbGlkZXNUb1Nob3c7DQogICAgICAgICAgICAgICAgaW5kZXhPZmZzZXQgPSBfLm9wdGlvbnMuaW5maW5pdGUgPT09IHRydWUgPyBfLm9wdGlvbnMuc2xpZGVzVG9TaG93ICsgaW5kZXggOiBpbmRleDsNCg0KICAgICAgICAgICAgICAgIGlmIChfLm9wdGlvbnMuc2xpZGVzVG9TaG93ID09IF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCAmJiAoXy5zbGlkZUNvdW50IC0gaW5kZXgpIDwgXy5vcHRpb25zLnNsaWRlc1RvU2hvdykgew0KDQogICAgICAgICAgICAgICAgICAgIGFsbFNsaWRlcw0KICAgICAgICAgICAgICAgICAgICAgICAgLnNsaWNlKGluZGV4T2Zmc2V0IC0gKF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgLSByZW1haW5kZXIpLCBpbmRleE9mZnNldCArIHJlbWFpbmRlcikNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2xpY2stYWN0aXZlJykNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdhcmlhLWhpZGRlbicsICdmYWxzZScpOw0KDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgICAgICAgICBhbGxTbGlkZXMNCiAgICAgICAgICAgICAgICAgICAgICAgIC5zbGljZShpbmRleE9mZnNldCwgaW5kZXhPZmZzZXQgKyBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KQ0KICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdzbGljay1hY3RpdmUnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJyk7DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy5sYXp5TG9hZCA9PT0gJ29uZGVtYW5kJykgew0KICAgICAgICAgICAgXy5sYXp5TG9hZCgpOw0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnNldHVwSW5maW5pdGUgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXMsDQogICAgICAgICAgICBpLCBzbGlkZUluZGV4LCBpbmZpbml0ZUNvdW50Ow0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuZmFkZSA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgXy5vcHRpb25zLmNlbnRlck1vZGUgPSBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuaW5maW5pdGUgPT09IHRydWUgJiYgXy5vcHRpb25zLmZhZGUgPT09IGZhbHNlKSB7DQoNCiAgICAgICAgICAgIHNsaWRlSW5kZXggPSBudWxsOw0KDQogICAgICAgICAgICBpZiAoXy5zbGlkZUNvdW50ID4gXy5vcHRpb25zLnNsaWRlc1RvU2hvdykgew0KDQogICAgICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy5jZW50ZXJNb2RlID09PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIGluZmluaXRlQ291bnQgPSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93ICsgMTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBpbmZpbml0ZUNvdW50ID0gXy5vcHRpb25zLnNsaWRlc1RvU2hvdzsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGkgPSBfLnNsaWRlQ291bnQ7IGkgPiAoXy5zbGlkZUNvdW50IC0NCiAgICAgICAgICAgICAgICAgICAgICAgIGluZmluaXRlQ291bnQpOyBpIC09IDEpIHsNCiAgICAgICAgICAgICAgICAgICAgc2xpZGVJbmRleCA9IGkgLSAxOw0KICAgICAgICAgICAgICAgICAgICAkKF8uJHNsaWRlc1tzbGlkZUluZGV4XSkuY2xvbmUodHJ1ZSkuYXR0cignaWQnLCAnJykNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdkYXRhLXNsaWNrLWluZGV4Jywgc2xpZGVJbmRleCAtIF8uc2xpZGVDb3VudCkNCiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmVwZW5kVG8oXy4kc2xpZGVUcmFjaykuYWRkQ2xhc3MoJ3NsaWNrLWNsb25lZCcpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5maW5pdGVDb3VudDsgaSArPSAxKSB7DQogICAgICAgICAgICAgICAgICAgIHNsaWRlSW5kZXggPSBpOw0KICAgICAgICAgICAgICAgICAgICAkKF8uJHNsaWRlc1tzbGlkZUluZGV4XSkuY2xvbmUodHJ1ZSkuYXR0cignaWQnLCAnJykNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdkYXRhLXNsaWNrLWluZGV4Jywgc2xpZGVJbmRleCArIF8uc2xpZGVDb3VudCkNCiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhfLiRzbGlkZVRyYWNrKS5hZGRDbGFzcygnc2xpY2stY2xvbmVkJyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIF8uJHNsaWRlVHJhY2suZmluZCgnLnNsaWNrLWNsb25lZCcpLmZpbmQoJ1tpZF0nKS5lYWNoKGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2lkJywgJycpOw0KICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5pbnRlcnJ1cHQgPSBmdW5jdGlvbiggdG9nZ2xlICkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiggIXRvZ2dsZSApIHsNCiAgICAgICAgICAgIF8uYXV0b1BsYXkoKTsNCiAgICAgICAgfQ0KICAgICAgICBfLmludGVycnVwdGVkID0gdG9nZ2xlOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5zZWxlY3RIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgdmFyIHRhcmdldEVsZW1lbnQgPQ0KICAgICAgICAgICAgJChldmVudC50YXJnZXQpLmlzKCcuc2xpY2stc2xpZGUnKSA/DQogICAgICAgICAgICAgICAgJChldmVudC50YXJnZXQpIDoNCiAgICAgICAgICAgICAgICAkKGV2ZW50LnRhcmdldCkucGFyZW50cygnLnNsaWNrLXNsaWRlJyk7DQoNCiAgICAgICAgdmFyIGluZGV4ID0gcGFyc2VJbnQodGFyZ2V0RWxlbWVudC5hdHRyKCdkYXRhLXNsaWNrLWluZGV4JykpOw0KDQogICAgICAgIGlmICghaW5kZXgpIGluZGV4ID0gMDsNCg0KICAgICAgICBpZiAoXy5zbGlkZUNvdW50IDw9IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpIHsNCg0KICAgICAgICAgICAgXy5zZXRTbGlkZUNsYXNzZXMoaW5kZXgpOw0KICAgICAgICAgICAgXy5hc05hdkZvcihpbmRleCk7DQogICAgICAgICAgICByZXR1cm47DQoNCiAgICAgICAgfQ0KDQogICAgICAgIF8uc2xpZGVIYW5kbGVyKGluZGV4KTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuc2xpZGVIYW5kbGVyID0gZnVuY3Rpb24oaW5kZXgsIHN5bmMsIGRvbnRBbmltYXRlKSB7DQoNCiAgICAgICAgdmFyIHRhcmdldFNsaWRlLCBhbmltU2xpZGUsIG9sZFNsaWRlLCBzbGlkZUxlZnQsIHRhcmdldExlZnQgPSBudWxsLA0KICAgICAgICAgICAgXyA9IHRoaXMsIG5hdlRhcmdldDsNCg0KICAgICAgICBzeW5jID0gc3luYyB8fCBmYWxzZTsNCg0KICAgICAgICBpZiAoXy5hbmltYXRpbmcgPT09IHRydWUgJiYgXy5vcHRpb25zLndhaXRGb3JBbmltYXRlID09PSB0cnVlKSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmZhZGUgPT09IHRydWUgJiYgXy5jdXJyZW50U2xpZGUgPT09IGluZGV4KSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoXy5zbGlkZUNvdW50IDw9IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpIHsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChzeW5jID09PSBmYWxzZSkgew0KICAgICAgICAgICAgXy5hc05hdkZvcihpbmRleCk7DQogICAgICAgIH0NCg0KICAgICAgICB0YXJnZXRTbGlkZSA9IGluZGV4Ow0KICAgICAgICB0YXJnZXRMZWZ0ID0gXy5nZXRMZWZ0KHRhcmdldFNsaWRlKTsNCiAgICAgICAgc2xpZGVMZWZ0ID0gXy5nZXRMZWZ0KF8uY3VycmVudFNsaWRlKTsNCg0KICAgICAgICBfLmN1cnJlbnRMZWZ0ID0gXy5zd2lwZUxlZnQgPT09IG51bGwgPyBzbGlkZUxlZnQgOiBfLnN3aXBlTGVmdDsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmluZmluaXRlID09PSBmYWxzZSAmJiBfLm9wdGlvbnMuY2VudGVyTW9kZSA9PT0gZmFsc2UgJiYgKGluZGV4IDwgMCB8fCBpbmRleCA+IF8uZ2V0RG90Q291bnQoKSAqIF8ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCkpIHsNCiAgICAgICAgICAgIGlmIChfLm9wdGlvbnMuZmFkZSA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICB0YXJnZXRTbGlkZSA9IF8uY3VycmVudFNsaWRlOw0KICAgICAgICAgICAgICAgIGlmIChkb250QW5pbWF0ZSAhPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBfLmFuaW1hdGVTbGlkZShzbGlkZUxlZnQsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgXy5wb3N0U2xpZGUodGFyZ2V0U2xpZGUpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBfLnBvc3RTbGlkZSh0YXJnZXRTbGlkZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9IGVsc2UgaWYgKF8ub3B0aW9ucy5pbmZpbml0ZSA9PT0gZmFsc2UgJiYgXy5vcHRpb25zLmNlbnRlck1vZGUgPT09IHRydWUgJiYgKGluZGV4IDwgMCB8fCBpbmRleCA+IChfLnNsaWRlQ291bnQgLSBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwpKSkgew0KICAgICAgICAgICAgaWYgKF8ub3B0aW9ucy5mYWRlID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIHRhcmdldFNsaWRlID0gXy5jdXJyZW50U2xpZGU7DQogICAgICAgICAgICAgICAgaWYgKGRvbnRBbmltYXRlICE9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIF8uYW5pbWF0ZVNsaWRlKHNsaWRlTGVmdCwgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBfLnBvc3RTbGlkZSh0YXJnZXRTbGlkZSk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIF8ucG9zdFNsaWRlKHRhcmdldFNsaWRlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoIF8ub3B0aW9ucy5hdXRvcGxheSApIHsNCiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoXy5hdXRvUGxheVRpbWVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICh0YXJnZXRTbGlkZSA8IDApIHsNCiAgICAgICAgICAgIGlmIChfLnNsaWRlQ291bnQgJSBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwgIT09IDApIHsNCiAgICAgICAgICAgICAgICBhbmltU2xpZGUgPSBfLnNsaWRlQ291bnQgLSAoXy5zbGlkZUNvdW50ICUgXy5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgYW5pbVNsaWRlID0gXy5zbGlkZUNvdW50ICsgdGFyZ2V0U2xpZGU7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0U2xpZGUgPj0gXy5zbGlkZUNvdW50KSB7DQogICAgICAgICAgICBpZiAoXy5zbGlkZUNvdW50ICUgXy5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsICE9PSAwKSB7DQogICAgICAgICAgICAgICAgYW5pbVNsaWRlID0gMDsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgYW5pbVNsaWRlID0gdGFyZ2V0U2xpZGUgLSBfLnNsaWRlQ291bnQ7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBhbmltU2xpZGUgPSB0YXJnZXRTbGlkZTsNCiAgICAgICAgfQ0KDQogICAgICAgIF8uYW5pbWF0aW5nID0gdHJ1ZTsNCg0KICAgICAgICBfLiRzbGlkZXIudHJpZ2dlcignYmVmb3JlQ2hhbmdlJywgW18sIF8uY3VycmVudFNsaWRlLCBhbmltU2xpZGVdKTsNCg0KICAgICAgICBvbGRTbGlkZSA9IF8uY3VycmVudFNsaWRlOw0KICAgICAgICBfLmN1cnJlbnRTbGlkZSA9IGFuaW1TbGlkZTsNCg0KICAgICAgICBfLnNldFNsaWRlQ2xhc3NlcyhfLmN1cnJlbnRTbGlkZSk7DQoNCiAgICAgICAgaWYgKCBfLm9wdGlvbnMuYXNOYXZGb3IgKSB7DQoNCiAgICAgICAgICAgIG5hdlRhcmdldCA9IF8uZ2V0TmF2VGFyZ2V0KCk7DQogICAgICAgICAgICBuYXZUYXJnZXQgPSBuYXZUYXJnZXQuc2xpY2soJ2dldFNsaWNrJyk7DQoNCiAgICAgICAgICAgIGlmICggbmF2VGFyZ2V0LnNsaWRlQ291bnQgPD0gbmF2VGFyZ2V0Lm9wdGlvbnMuc2xpZGVzVG9TaG93ICkgew0KICAgICAgICAgICAgICAgIG5hdlRhcmdldC5zZXRTbGlkZUNsYXNzZXMoXy5jdXJyZW50U2xpZGUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCg0KICAgICAgICBfLnVwZGF0ZURvdHMoKTsNCiAgICAgICAgXy51cGRhdGVBcnJvd3MoKTsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmZhZGUgPT09IHRydWUpIHsNCiAgICAgICAgICAgIGlmIChkb250QW5pbWF0ZSAhPT0gdHJ1ZSkgew0KDQogICAgICAgICAgICAgICAgXy5mYWRlU2xpZGVPdXQob2xkU2xpZGUpOw0KDQogICAgICAgICAgICAgICAgXy5mYWRlU2xpZGUoYW5pbVNsaWRlLCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgXy5wb3N0U2xpZGUoYW5pbVNsaWRlKTsNCiAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBfLnBvc3RTbGlkZShhbmltU2xpZGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgXy5hbmltYXRlSGVpZ2h0KCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoZG9udEFuaW1hdGUgIT09IHRydWUpIHsNCiAgICAgICAgICAgIF8uYW5pbWF0ZVNsaWRlKHRhcmdldExlZnQsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIF8ucG9zdFNsaWRlKGFuaW1TbGlkZSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIF8ucG9zdFNsaWRlKGFuaW1TbGlkZSk7DQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuc3RhcnRMb2FkID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgdmFyIF8gPSB0aGlzOw0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuYXJyb3dzID09PSB0cnVlICYmIF8uc2xpZGVDb3VudCA+IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpIHsNCg0KICAgICAgICAgICAgXy4kcHJldkFycm93LmhpZGUoKTsNCiAgICAgICAgICAgIF8uJG5leHRBcnJvdy5oaWRlKCk7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLm9wdGlvbnMuZG90cyA9PT0gdHJ1ZSAmJiBfLnNsaWRlQ291bnQgPiBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSB7DQoNCiAgICAgICAgICAgIF8uJGRvdHMuaGlkZSgpOw0KDQogICAgICAgIH0NCg0KICAgICAgICBfLiRzbGlkZXIuYWRkQ2xhc3MoJ3NsaWNrLWxvYWRpbmcnKTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuc3dpcGVEaXJlY3Rpb24gPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgeERpc3QsIHlEaXN0LCByLCBzd2lwZUFuZ2xlLCBfID0gdGhpczsNCg0KICAgICAgICB4RGlzdCA9IF8udG91Y2hPYmplY3Quc3RhcnRYIC0gXy50b3VjaE9iamVjdC5jdXJYOw0KICAgICAgICB5RGlzdCA9IF8udG91Y2hPYmplY3Quc3RhcnRZIC0gXy50b3VjaE9iamVjdC5jdXJZOw0KICAgICAgICByID0gTWF0aC5hdGFuMih5RGlzdCwgeERpc3QpOw0KDQogICAgICAgIHN3aXBlQW5nbGUgPSBNYXRoLnJvdW5kKHIgKiAxODAgLyBNYXRoLlBJKTsNCiAgICAgICAgaWYgKHN3aXBlQW5nbGUgPCAwKSB7DQogICAgICAgICAgICBzd2lwZUFuZ2xlID0gMzYwIC0gTWF0aC5hYnMoc3dpcGVBbmdsZSk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoKHN3aXBlQW5nbGUgPD0gNDUpICYmIChzd2lwZUFuZ2xlID49IDApKSB7DQogICAgICAgICAgICByZXR1cm4gKF8ub3B0aW9ucy5ydGwgPT09IGZhbHNlID8gJ2xlZnQnIDogJ3JpZ2h0Jyk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKChzd2lwZUFuZ2xlIDw9IDM2MCkgJiYgKHN3aXBlQW5nbGUgPj0gMzE1KSkgew0KICAgICAgICAgICAgcmV0dXJuIChfLm9wdGlvbnMucnRsID09PSBmYWxzZSA/ICdsZWZ0JyA6ICdyaWdodCcpOw0KICAgICAgICB9DQogICAgICAgIGlmICgoc3dpcGVBbmdsZSA+PSAxMzUpICYmIChzd2lwZUFuZ2xlIDw9IDIyNSkpIHsNCiAgICAgICAgICAgIHJldHVybiAoXy5vcHRpb25zLnJ0bCA9PT0gZmFsc2UgPyAncmlnaHQnIDogJ2xlZnQnKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoXy5vcHRpb25zLnZlcnRpY2FsU3dpcGluZyA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgaWYgKChzd2lwZUFuZ2xlID49IDM1KSAmJiAoc3dpcGVBbmdsZSA8PSAxMzUpKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICdkb3duJzsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICd1cCc7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gJ3ZlcnRpY2FsJzsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuc3dpcGVFbmQgPSBmdW5jdGlvbihldmVudCkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIHNsaWRlQ291bnQsDQogICAgICAgICAgICBkaXJlY3Rpb247DQoNCiAgICAgICAgXy5kcmFnZ2luZyA9IGZhbHNlOw0KICAgICAgICBfLmludGVycnVwdGVkID0gZmFsc2U7DQogICAgICAgIF8uc2hvdWxkQ2xpY2sgPSAoIF8udG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPiAxMCApID8gZmFsc2UgOiB0cnVlOw0KDQogICAgICAgIGlmICggXy50b3VjaE9iamVjdC5jdXJYID09PSB1bmRlZmluZWQgKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoIF8udG91Y2hPYmplY3QuZWRnZUhpdCA9PT0gdHJ1ZSApIHsNCiAgICAgICAgICAgIF8uJHNsaWRlci50cmlnZ2VyKCdlZGdlJywgW18sIF8uc3dpcGVEaXJlY3Rpb24oKSBdKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICggXy50b3VjaE9iamVjdC5zd2lwZUxlbmd0aCA+PSBfLnRvdWNoT2JqZWN0Lm1pblN3aXBlICkgew0KDQogICAgICAgICAgICBkaXJlY3Rpb24gPSBfLnN3aXBlRGlyZWN0aW9uKCk7DQoNCiAgICAgICAgICAgIHN3aXRjaCAoIGRpcmVjdGlvbiApIHsNCg0KICAgICAgICAgICAgICAgIGNhc2UgJ2xlZnQnOg0KICAgICAgICAgICAgICAgIGNhc2UgJ2Rvd24nOg0KDQogICAgICAgICAgICAgICAgICAgIHNsaWRlQ291bnQgPQ0KICAgICAgICAgICAgICAgICAgICAgICAgXy5vcHRpb25zLnN3aXBlVG9TbGlkZSA/DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXy5jaGVja05hdmlnYWJsZSggXy5jdXJyZW50U2xpZGUgKyBfLmdldFNsaWRlQ291bnQoKSApIDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLmN1cnJlbnRTbGlkZSArIF8uZ2V0U2xpZGVDb3VudCgpOw0KDQogICAgICAgICAgICAgICAgICAgIF8uY3VycmVudERpcmVjdGlvbiA9IDA7DQoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBjYXNlICdyaWdodCc6DQogICAgICAgICAgICAgICAgY2FzZSAndXAnOg0KDQogICAgICAgICAgICAgICAgICAgIHNsaWRlQ291bnQgPQ0KICAgICAgICAgICAgICAgICAgICAgICAgXy5vcHRpb25zLnN3aXBlVG9TbGlkZSA/DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXy5jaGVja05hdmlnYWJsZSggXy5jdXJyZW50U2xpZGUgLSBfLmdldFNsaWRlQ291bnQoKSApIDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLmN1cnJlbnRTbGlkZSAtIF8uZ2V0U2xpZGVDb3VudCgpOw0KDQogICAgICAgICAgICAgICAgICAgIF8uY3VycmVudERpcmVjdGlvbiA9IDE7DQoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KDQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYoIGRpcmVjdGlvbiAhPSAndmVydGljYWwnICkgew0KDQogICAgICAgICAgICAgICAgXy5zbGlkZUhhbmRsZXIoIHNsaWRlQ291bnQgKTsNCiAgICAgICAgICAgICAgICBfLnRvdWNoT2JqZWN0ID0ge307DQogICAgICAgICAgICAgICAgXy4kc2xpZGVyLnRyaWdnZXIoJ3N3aXBlJywgW18sIGRpcmVjdGlvbiBdKTsNCg0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgICAgIGlmICggXy50b3VjaE9iamVjdC5zdGFydFggIT09IF8udG91Y2hPYmplY3QuY3VyWCApIHsNCg0KICAgICAgICAgICAgICAgIF8uc2xpZGVIYW5kbGVyKCBfLmN1cnJlbnRTbGlkZSApOw0KICAgICAgICAgICAgICAgIF8udG91Y2hPYmplY3QgPSB7fTsNCg0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUuc3dpcGVIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgaWYgKChfLm9wdGlvbnMuc3dpcGUgPT09IGZhbHNlKSB8fCAoJ29udG91Y2hlbmQnIGluIGRvY3VtZW50ICYmIF8ub3B0aW9ucy5zd2lwZSA9PT0gZmFsc2UpKSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0gZWxzZSBpZiAoXy5vcHRpb25zLmRyYWdnYWJsZSA9PT0gZmFsc2UgJiYgZXZlbnQudHlwZS5pbmRleE9mKCdtb3VzZScpICE9PSAtMSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgXy50b3VjaE9iamVjdC5maW5nZXJDb3VudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQgJiYgZXZlbnQub3JpZ2luYWxFdmVudC50b3VjaGVzICE9PSB1bmRlZmluZWQgPw0KICAgICAgICAgICAgZXZlbnQub3JpZ2luYWxFdmVudC50b3VjaGVzLmxlbmd0aCA6IDE7DQoNCiAgICAgICAgXy50b3VjaE9iamVjdC5taW5Td2lwZSA9IF8ubGlzdFdpZHRoIC8gXy5vcHRpb25zDQogICAgICAgICAgICAudG91Y2hUaHJlc2hvbGQ7DQoNCiAgICAgICAgaWYgKF8ub3B0aW9ucy52ZXJ0aWNhbFN3aXBpbmcgPT09IHRydWUpIHsNCiAgICAgICAgICAgIF8udG91Y2hPYmplY3QubWluU3dpcGUgPSBfLmxpc3RIZWlnaHQgLyBfLm9wdGlvbnMNCiAgICAgICAgICAgICAgICAudG91Y2hUaHJlc2hvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICBzd2l0Y2ggKGV2ZW50LmRhdGEuYWN0aW9uKSB7DQoNCiAgICAgICAgICAgIGNhc2UgJ3N0YXJ0JzoNCiAgICAgICAgICAgICAgICBfLnN3aXBlU3RhcnQoZXZlbnQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICBjYXNlICdtb3ZlJzoNCiAgICAgICAgICAgICAgICBfLnN3aXBlTW92ZShldmVudCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGNhc2UgJ2VuZCc6DQogICAgICAgICAgICAgICAgXy5zd2lwZUVuZChldmVudCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgfQ0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5zd2lwZU1vdmUgPSBmdW5jdGlvbihldmVudCkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIGVkZ2VXYXNIaXQgPSBmYWxzZSwNCiAgICAgICAgICAgIGN1ckxlZnQsIHN3aXBlRGlyZWN0aW9uLCBzd2lwZUxlbmd0aCwgcG9zaXRpb25PZmZzZXQsIHRvdWNoZXM7DQoNCiAgICAgICAgdG91Y2hlcyA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQgIT09IHVuZGVmaW5lZCA/IGV2ZW50Lm9yaWdpbmFsRXZlbnQudG91Y2hlcyA6IG51bGw7DQoNCiAgICAgICAgaWYgKCFfLmRyYWdnaW5nIHx8IHRvdWNoZXMgJiYgdG91Y2hlcy5sZW5ndGggIT09IDEpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGN1ckxlZnQgPSBfLmdldExlZnQoXy5jdXJyZW50U2xpZGUpOw0KDQogICAgICAgIF8udG91Y2hPYmplY3QuY3VyWCA9IHRvdWNoZXMgIT09IHVuZGVmaW5lZCA/IHRvdWNoZXNbMF0ucGFnZVggOiBldmVudC5jbGllbnRYOw0KICAgICAgICBfLnRvdWNoT2JqZWN0LmN1clkgPSB0b3VjaGVzICE9PSB1bmRlZmluZWQgPyB0b3VjaGVzWzBdLnBhZ2VZIDogZXZlbnQuY2xpZW50WTsNCg0KICAgICAgICBfLnRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoID0gTWF0aC5yb3VuZChNYXRoLnNxcnQoDQogICAgICAgICAgICBNYXRoLnBvdyhfLnRvdWNoT2JqZWN0LmN1clggLSBfLnRvdWNoT2JqZWN0LnN0YXJ0WCwgMikpKTsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLnZlcnRpY2FsU3dpcGluZyA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgXy50b3VjaE9iamVjdC5zd2lwZUxlbmd0aCA9IE1hdGgucm91bmQoTWF0aC5zcXJ0KA0KICAgICAgICAgICAgICAgIE1hdGgucG93KF8udG91Y2hPYmplY3QuY3VyWSAtIF8udG91Y2hPYmplY3Quc3RhcnRZLCAyKSkpOw0KICAgICAgICB9DQoNCiAgICAgICAgc3dpcGVEaXJlY3Rpb24gPSBfLnN3aXBlRGlyZWN0aW9uKCk7DQoNCiAgICAgICAgaWYgKHN3aXBlRGlyZWN0aW9uID09PSAndmVydGljYWwnKSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoZXZlbnQub3JpZ2luYWxFdmVudCAhPT0gdW5kZWZpbmVkICYmIF8udG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPiA0KSB7DQogICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcG9zaXRpb25PZmZzZXQgPSAoXy5vcHRpb25zLnJ0bCA9PT0gZmFsc2UgPyAxIDogLTEpICogKF8udG91Y2hPYmplY3QuY3VyWCA+IF8udG91Y2hPYmplY3Quc3RhcnRYID8gMSA6IC0xKTsNCiAgICAgICAgaWYgKF8ub3B0aW9ucy52ZXJ0aWNhbFN3aXBpbmcgPT09IHRydWUpIHsNCiAgICAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gXy50b3VjaE9iamVjdC5jdXJZID4gXy50b3VjaE9iamVjdC5zdGFydFkgPyAxIDogLTE7DQogICAgICAgIH0NCg0KDQogICAgICAgIHN3aXBlTGVuZ3RoID0gXy50b3VjaE9iamVjdC5zd2lwZUxlbmd0aDsNCg0KICAgICAgICBfLnRvdWNoT2JqZWN0LmVkZ2VIaXQgPSBmYWxzZTsNCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmluZmluaXRlID09PSBmYWxzZSkgew0KICAgICAgICAgICAgaWYgKChfLmN1cnJlbnRTbGlkZSA9PT0gMCAmJiBzd2lwZURpcmVjdGlvbiA9PT0gJ3JpZ2h0JykgfHwgKF8uY3VycmVudFNsaWRlID49IF8uZ2V0RG90Q291bnQoKSAmJiBzd2lwZURpcmVjdGlvbiA9PT0gJ2xlZnQnKSkgew0KICAgICAgICAgICAgICAgIHN3aXBlTGVuZ3RoID0gXy50b3VjaE9iamVjdC5zd2lwZUxlbmd0aCAqIF8ub3B0aW9ucy5lZGdlRnJpY3Rpb247DQogICAgICAgICAgICAgICAgXy50b3VjaE9iamVjdC5lZGdlSGl0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLm9wdGlvbnMudmVydGljYWwgPT09IGZhbHNlKSB7DQogICAgICAgICAgICBfLnN3aXBlTGVmdCA9IGN1ckxlZnQgKyBzd2lwZUxlbmd0aCAqIHBvc2l0aW9uT2Zmc2V0Ow0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgXy5zd2lwZUxlZnQgPSBjdXJMZWZ0ICsgKHN3aXBlTGVuZ3RoICogKF8uJGxpc3QuaGVpZ2h0KCkgLyBfLmxpc3RXaWR0aCkpICogcG9zaXRpb25PZmZzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKF8ub3B0aW9ucy52ZXJ0aWNhbFN3aXBpbmcgPT09IHRydWUpIHsNCiAgICAgICAgICAgIF8uc3dpcGVMZWZ0ID0gY3VyTGVmdCArIHN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoXy5vcHRpb25zLmZhZGUgPT09IHRydWUgfHwgXy5vcHRpb25zLnRvdWNoTW92ZSA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLmFuaW1hdGluZyA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgXy5zd2lwZUxlZnQgPSBudWxsOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgXy5zZXRDU1MoXy5zd2lwZUxlZnQpOw0KDQogICAgfTsNCg0KICAgIFNsaWNrLnByb3RvdHlwZS5zd2lwZVN0YXJ0ID0gZnVuY3Rpb24oZXZlbnQpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXMsDQogICAgICAgICAgICB0b3VjaGVzOw0KDQogICAgICAgIF8uaW50ZXJydXB0ZWQgPSB0cnVlOw0KDQogICAgICAgIGlmIChfLnRvdWNoT2JqZWN0LmZpbmdlckNvdW50ICE9PSAxIHx8IF8uc2xpZGVDb3VudCA8PSBfLm9wdGlvbnMuc2xpZGVzVG9TaG93KSB7DQogICAgICAgICAgICBfLnRvdWNoT2JqZWN0ID0ge307DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoZXZlbnQub3JpZ2luYWxFdmVudCAhPT0gdW5kZWZpbmVkICYmIGV2ZW50Lm9yaWdpbmFsRXZlbnQudG91Y2hlcyAhPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0b3VjaGVzID0gZXZlbnQub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdOw0KICAgICAgICB9DQoNCiAgICAgICAgXy50b3VjaE9iamVjdC5zdGFydFggPSBfLnRvdWNoT2JqZWN0LmN1clggPSB0b3VjaGVzICE9PSB1bmRlZmluZWQgPyB0b3VjaGVzLnBhZ2VYIDogZXZlbnQuY2xpZW50WDsNCiAgICAgICAgXy50b3VjaE9iamVjdC5zdGFydFkgPSBfLnRvdWNoT2JqZWN0LmN1clkgPSB0b3VjaGVzICE9PSB1bmRlZmluZWQgPyB0b3VjaGVzLnBhZ2VZIDogZXZlbnQuY2xpZW50WTsNCg0KICAgICAgICBfLmRyYWdnaW5nID0gdHJ1ZTsNCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUudW5maWx0ZXJTbGlkZXMgPSBTbGljay5wcm90b3R5cGUuc2xpY2tVbmZpbHRlciA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAoXy4kc2xpZGVzQ2FjaGUgIT09IG51bGwpIHsNCg0KICAgICAgICAgICAgXy51bmxvYWQoKTsNCg0KICAgICAgICAgICAgXy4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmRldGFjaCgpOw0KDQogICAgICAgICAgICBfLiRzbGlkZXNDYWNoZS5hcHBlbmRUbyhfLiRzbGlkZVRyYWNrKTsNCg0KICAgICAgICAgICAgXy5yZWluaXQoKTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnVubG9hZCA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICAkKCcuc2xpY2stY2xvbmVkJywgXy4kc2xpZGVyKS5yZW1vdmUoKTsNCg0KICAgICAgICBpZiAoXy4kZG90cykgew0KICAgICAgICAgICAgXy4kZG90cy5yZW1vdmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChfLiRwcmV2QXJyb3cgJiYgXy5odG1sRXhwci50ZXN0KF8ub3B0aW9ucy5wcmV2QXJyb3cpKSB7DQogICAgICAgICAgICBfLiRwcmV2QXJyb3cucmVtb3ZlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoXy4kbmV4dEFycm93ICYmIF8uaHRtbEV4cHIudGVzdChfLm9wdGlvbnMubmV4dEFycm93KSkgew0KICAgICAgICAgICAgXy4kbmV4dEFycm93LnJlbW92ZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgXy4kc2xpZGVzDQogICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ3NsaWNrLXNsaWRlIHNsaWNrLWFjdGl2ZSBzbGljay12aXNpYmxlIHNsaWNrLWN1cnJlbnQnKQ0KICAgICAgICAgICAgLmF0dHIoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKQ0KICAgICAgICAgICAgLmNzcygnd2lkdGgnLCAnJyk7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnVuc2xpY2sgPSBmdW5jdGlvbihmcm9tQnJlYWtwb2ludCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCiAgICAgICAgXy4kc2xpZGVyLnRyaWdnZXIoJ3Vuc2xpY2snLCBbXywgZnJvbUJyZWFrcG9pbnRdKTsNCiAgICAgICAgXy5kZXN0cm95KCk7DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnVwZGF0ZUFycm93cyA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpcywNCiAgICAgICAgICAgIGNlbnRlck9mZnNldDsNCg0KICAgICAgICBjZW50ZXJPZmZzZXQgPSBNYXRoLmZsb29yKF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgLyAyKTsNCg0KICAgICAgICBpZiAoIF8ub3B0aW9ucy5hcnJvd3MgPT09IHRydWUgJiYNCiAgICAgICAgICAgIF8uc2xpZGVDb3VudCA+IF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgJiYNCiAgICAgICAgICAgICFfLm9wdGlvbnMuaW5maW5pdGUgKSB7DQoNCiAgICAgICAgICAgIF8uJHByZXZBcnJvdy5yZW1vdmVDbGFzcygnc2xpY2stZGlzYWJsZWQnKS5hdHRyKCdhcmlhLWRpc2FibGVkJywgJ2ZhbHNlJyk7DQogICAgICAgICAgICBfLiRuZXh0QXJyb3cucmVtb3ZlQ2xhc3MoJ3NsaWNrLWRpc2FibGVkJykuYXR0cignYXJpYS1kaXNhYmxlZCcsICdmYWxzZScpOw0KDQogICAgICAgICAgICBpZiAoXy5jdXJyZW50U2xpZGUgPT09IDApIHsNCg0KICAgICAgICAgICAgICAgIF8uJHByZXZBcnJvdy5hZGRDbGFzcygnc2xpY2stZGlzYWJsZWQnKS5hdHRyKCdhcmlhLWRpc2FibGVkJywgJ3RydWUnKTsNCiAgICAgICAgICAgICAgICBfLiRuZXh0QXJyb3cucmVtb3ZlQ2xhc3MoJ3NsaWNrLWRpc2FibGVkJykuYXR0cignYXJpYS1kaXNhYmxlZCcsICdmYWxzZScpOw0KDQogICAgICAgICAgICB9IGVsc2UgaWYgKF8uY3VycmVudFNsaWRlID49IF8uc2xpZGVDb3VudCAtIF8ub3B0aW9ucy5zbGlkZXNUb1Nob3cgJiYgXy5vcHRpb25zLmNlbnRlck1vZGUgPT09IGZhbHNlKSB7DQoNCiAgICAgICAgICAgICAgICBfLiRuZXh0QXJyb3cuYWRkQ2xhc3MoJ3NsaWNrLWRpc2FibGVkJykuYXR0cignYXJpYS1kaXNhYmxlZCcsICd0cnVlJyk7DQogICAgICAgICAgICAgICAgXy4kcHJldkFycm93LnJlbW92ZUNsYXNzKCdzbGljay1kaXNhYmxlZCcpLmF0dHIoJ2FyaWEtZGlzYWJsZWQnLCAnZmFsc2UnKTsNCg0KICAgICAgICAgICAgfSBlbHNlIGlmIChfLmN1cnJlbnRTbGlkZSA+PSBfLnNsaWRlQ291bnQgLSAxICYmIF8ub3B0aW9ucy5jZW50ZXJNb2RlID09PSB0cnVlKSB7DQoNCiAgICAgICAgICAgICAgICBfLiRuZXh0QXJyb3cuYWRkQ2xhc3MoJ3NsaWNrLWRpc2FibGVkJykuYXR0cignYXJpYS1kaXNhYmxlZCcsICd0cnVlJyk7DQogICAgICAgICAgICAgICAgXy4kcHJldkFycm93LnJlbW92ZUNsYXNzKCdzbGljay1kaXNhYmxlZCcpLmF0dHIoJ2FyaWEtZGlzYWJsZWQnLCAnZmFsc2UnKTsNCg0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCg0KICAgIH07DQoNCiAgICBTbGljay5wcm90b3R5cGUudXBkYXRlRG90cyA9IGZ1bmN0aW9uKCkgew0KDQogICAgICAgIHZhciBfID0gdGhpczsNCg0KICAgICAgICBpZiAoXy4kZG90cyAhPT0gbnVsbCkgew0KDQogICAgICAgICAgICBfLiRkb3RzDQogICAgICAgICAgICAgICAgLmZpbmQoJ2xpJykNCiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ3NsaWNrLWFjdGl2ZScpDQogICAgICAgICAgICAgICAgLmF0dHIoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTsNCg0KICAgICAgICAgICAgXy4kZG90cw0KICAgICAgICAgICAgICAgIC5maW5kKCdsaScpDQogICAgICAgICAgICAgICAgLmVxKE1hdGguZmxvb3IoXy5jdXJyZW50U2xpZGUgLyBfLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwpKQ0KICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2xpY2stYWN0aXZlJykNCiAgICAgICAgICAgICAgICAuYXR0cignYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTsNCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgU2xpY2sucHJvdG90eXBlLnZpc2liaWxpdHkgPSBmdW5jdGlvbigpIHsNCg0KICAgICAgICB2YXIgXyA9IHRoaXM7DQoNCiAgICAgICAgaWYgKCBfLm9wdGlvbnMuYXV0b3BsYXkgKSB7DQoNCiAgICAgICAgICAgIGlmICggZG9jdW1lbnRbXy5oaWRkZW5dICkgew0KDQogICAgICAgICAgICAgICAgXy5pbnRlcnJ1cHRlZCA9IHRydWU7DQoNCiAgICAgICAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgICAgICAgICBfLmludGVycnVwdGVkID0gZmFsc2U7DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgJC5mbi5zbGljayA9IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgXyA9IHRoaXMsDQogICAgICAgICAgICBvcHQgPSBhcmd1bWVudHNbMF0sDQogICAgICAgICAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSwNCiAgICAgICAgICAgIGwgPSBfLmxlbmd0aCwNCiAgICAgICAgICAgIGksDQogICAgICAgICAgICByZXQ7DQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHsNCiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0ID09ICdvYmplY3QnIHx8IHR5cGVvZiBvcHQgPT0gJ3VuZGVmaW5lZCcpDQogICAgICAgICAgICAgICAgX1tpXS5zbGljayA9IG5ldyBTbGljayhfW2ldLCBvcHQpOw0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHJldCA9IF9baV0uc2xpY2tbb3B0XS5hcHBseShfW2ldLnNsaWNrLCBhcmdzKTsNCiAgICAgICAgICAgIGlmICh0eXBlb2YgcmV0ICE9ICd1bmRlZmluZWQnKSByZXR1cm4gcmV0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBfOw0KICAgIH07DQoNCn0pKTs="}},"time_used":87,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":85,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/fake.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.355Z","timestamp":1785132838355,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /fake.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\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 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1459,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-27T09:47:46.014144Z","times_seen":144055,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":83,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":83,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/ct5.jpeg","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.599Z","timestamp":1785132838599,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/ct5.jpeg HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Fri, 29 Apr 2022 18:22:40 GMT\r\naccept-ranges: bytes\r\ncontent-length: 78279\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":78279,"size_decoded":78546,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 1280x805, components 3","md5":"239335a1ee788096ef101264869ec52d","sha1":"c3846b0674b9fc1d4f14d0c7acdc3887f58ee1fa","sha256":"51b4fa273556bdd43da3bb8c194676ab3e72bef6dc30c82c3cbcb03b2ddcb6cb","sha512":"13646c897094f5b0613292d49d2df505465c284609791f9592f9869aea70205c79e144f295a1c48ba9df493c2bdea4334215e911e06d471d5d67afdf87632210","ssdeep":"1536:/86hnHn40q2Ib3z+DS1pFClRdRwZYM1A/2wiUUn:BH40RIjaDS1pFGq2M1AWUO","tlshash":"ea7302519020c6b5d6334f398eb58209e967ff2e935a5523e600fc26b0bd1f2489f9ed","first_seen":"2025-08-12T04:19:47.958352Z","last_seen":"2026-07-27T06:14:42.621571Z","times_seen":3,"resource_available":false,"data":"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARFUFGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkFEEEHEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkEVGsEEHGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEF2tLCoMEFHUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhkFHKEnK48MkEGWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABT0UUurYbPmKLKkFW10gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR3kUms84D24W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oV0FDTQN5se/ujCRxBjyChRAxTBTSxSTjxzyxSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xAAC/9oADAMBAAIAAwAAABDzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzjsvDzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzwe/wD/AMPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOH/8A/wD/AP7+PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOI1+6/P/64/PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPIwx6NoQsfw05/PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPMIw1zXVGqB9Cww18PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPJPxzzLE1VWP7waw1729PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPJH+2xWWBpiwtUQf9X/AP8Abc8888888888888888888888888888888888888888888888888888888888gT3Ee736Pxlzf71Obak7M8888888888888888888888888888888888888888888888888888888888gf3nX1F5hHL8SmdvTEuYb8888888888888888888888888888888888888888888888888888888888z7vio+qdWPdh4B047aGyd8c88888888888888888888888888888888888888888888888888888884rjHnA02Y9UgXYBcb3M81qHDc8888888888888888888888888888888888888888888888888888888f/YpX0MynjYkCQ7kZ7rCaXv/ANPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPE/06X7m7pWeKkk540afeXfkWMxfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPB+2HdZspJ/RTdnSFhaKYgWLJem2PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPMA+8D96bBLArK9Vm5pLHurYHhGfW1/PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP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"}},"time_used":36,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":12,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/vid.mp4","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"media","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.659Z","timestamp":1785132838659,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/vid.mp4 HTTP/1.1\r\nHost: farosonglobaltrade.ltd\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nRange: bytes=0-\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: video\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nAccept-Encoding: identity\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 206 \r\ncontent-type: video/mp4\r\nlast-modified: Mon, 03 Jan 2022 23:40:48 GMT\r\ncontent-range: bytes 0-6129512/6129513\r\ncontent-length: 6129513\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"206","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":6129513,"size_decoded":6129720,"mime_type":"video/mp4","magic":"ISO Media, MP4 v2 [ISO 14496-14]","md5":"89ae6d1706be6b185ac81f1d34f48503","sha1":"16bac5324e70e41edeff849a17c215ee69c4e1d9","sha256":"c78e6b905d022222c7b853eca3a09de9541b1985022b67e39120a1fe516874d7","sha512":"882d7a5a717e38d7054d796fb2950655b6305360b316ae8af9bce51abe76b839485df9b7c6f724605e157be8495f16c9bb2281d434851675b6aa6abd1dc2f558","ssdeep":"24576:4rCir+crLgirOH0JCXG0BRg4m9glXt397nCZwzivX:4rR+6HrOHOURg4mSl9NLKUm","tlshash":"f52523047bcfd417d301a571cd52b329b662f653a783123f1c548a7e6e66bb788b8039","first_seen":"2025-11-08T08:56:12.989688Z","last_seen":"2026-07-27T06:14:42.622465Z","times_seen":6,"resource_available":false,"data":"AAAAIGZ0eXBtcDQyAAAAAG1wNDJtcDQxaXNvbWF2YzEAABj3bW9vdgAAAGxtdmhkAAAAANnuvuPZ7r7jAAAAGQAAAawAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAACFpb2RzAAAAABCAgIAQAE////9//w6AgIAEAAAAAQAAGGJ0cmFrAAAAXHRraGQAAAAH2e6+49nuvuMAAAABAAAAAAAAAawAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAABQAAAALQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAGsAAAAAgABAAAAABfabWRpYQAAACBtZGhkAAAAANnuvuPZ7r7jAAAAGQAAAaxVxAAAAAAANmhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABMLVNNQVNIIFZpZGVvIEhhbmRsZXIAAAAXfG1pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAFzxzdGJsAAAAsHN0c2QAAAAAAAAAAQAAAKBhdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAABQAC0ABIAAAASAAAAAAAAAABCkFWQyBDb2RpbmcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAN2F2Y0MBZAgg/+EAG2dkCCCs2YBQBbpqAgICgAAAAwCAAAAZB4wYzQEABWjpeyyL/fj4AAAAABNjb2xybmNseAABAAEAAQAAAAAYc3R0cwAAAAAAAAABAAABrAAAAAEAAAzYY3R0cwAAAAAAAAGZAAAAAQAAAAIAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAIAAAABAAAABAAAAAIAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABAAAAAIAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABAAAAAIAAAABAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAACAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAEAAAAAgAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAADAAAAAQAAAAEAAAABAAAABAAAAAIAAAABAAAAAQAAAAIAAAABAAAABAAAAAIAAAABAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAEAAAAAgAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAADAAAAAQAAAAEAAAABAAAABAAAAAIAAAABAAAAAQAAAAIAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAIAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAQAAAACAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAEAAAAAgAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAACAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAEAAAAAgAAAAEAAAABAAAABQAAAAEAAAACAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAFAAAAAQAAAAIAAAABAAAAAAAAAAEAAAABAAAAAQAAAAUAAAABAAAAAgAAAAEAAAAAAAAAAQAAAAEAAAAoc3RzcwAAAAAAAAAGAAAAAQAAAE0AAACZAAAA5QAAATEAAAF9AAABuHNkdHAAAAAAppaWmpqWlpqalpaalpaampaWmpqWlpqalpaampaWmpqWlpqalpaampaWmpqWlpqalpaampaWmpqWlpqalpaampaWmpqWlpqalpaamqaWlpqWlpqalpaampaWmpqWlpqalpaampaWmpqWlpqalpaalpaampaWmpqWlpqalpaampaWmpaWmpaWmpqWlpqWlpqalpaampaWmpqmlpaalpaampaWmpqWlpqalpaampaWmpqWlpqalpaampaWmpqWlpqalpaampaWmpqWlpqalpaalpaampaWmpqWlpqalpaampaalpaappaWmpaWmpaWmpqWlpqWlpqWlpqalpaampaWmpqWlpqalpaampaWmpaWmpqWlpqalpaampaWmpqWlpqWlpqalpaampaWmpqWmpaWmqaWlpqalpaampaWmpqWlpqalpaampaWlpqalpaampaWmpqWlpqalpaampaWmpaWmpqWlpqalpaampaWmpqWlpqalpaampaWmpaWmpqmlpaampaWmpqWlpqalpaampaWmpqWlpqalpaampaWmpqWlpqWlpqalpaampaWmpoAAAAoc3RzYwAAAAAAAAACAAAAAQAAAA0AAAABAAAAIQAAAAwAAAABAAAGxHN0c3oA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K9ufAC56DwAw+J8ANW22ADggxQA6bCAAPPbtAD9I3wBBuu4ARin7AEiIbABLXocATdxDAE/m+wBSWjQAVoIHAFjoDwBbUR8AAAAYc2dwZAEAAAByb2xsAAAAAgAAAAAAAAAcc2JncAAAAAByb2xsAAAAAQAAAawAAAAAAF1uUm1kYXQAAAAAAAAAAAAAAwQGBf///wDcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTU3IHIxMCBkNDA5OWRkIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxOSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTUgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9OCBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MiA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTIyIGxvb2thaGVhZF90aHJlYWRzPTMgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBzdGl0Y2hhYmxlPTEgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0yIGJfYmlhcz0wIGRpcmVjdD0zIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9aW5maW5pdGUga2V5aW50X21pbj0yNSBzY2VuZWN1dD00MCBpbnRyYV9yZWZyZXNoPTAgcmNfbG9va2FoZWFkPTUwIHJjPWNyZiBtYnRyZWU9MSBjcmY9MjAuMCBxY29tcD0wLjYwIHFwbWluPTUgcXBtYXg9NjkgcXBzdGVwPTQgdmJ2X21heHJhdGU9Mjc1MCB2YnZfYnVmc2l6ZT03NTAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0x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"}},"time_used":251,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":23,"receive":228,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/product/2x/translate_24dp.png","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.395Z","timestamp":1785132839395,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /images/branding/product/2x/translate_24dp.png HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 1842\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 07:17:13 GMT\r\nexpires: Sat, 24 Jul 2027 07:17:13 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 14 Oct 2021 09:08:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 255406\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1842,"size_decoded":2516,"mime_type":"image/png","magic":"PNG image data, 48 x 48, 8-bit/color RGBA, non-interlaced","md5":"c69c796362406f9e11c7f4bf5bb628da","sha1":"e489ce95ab56208090868882113d7416abf46775","sha256":"4dac0026fbfa2615dce30c0af12830863fe885f84387a0147b9e338f548d5d82","sha512":"d3ad560ed0fd29be7d2cc434694f09e5a6fbea8b29c0611aecb54a1b73b4d722c53f42a19dae9e3d5d358444e50fb8fffbc39d67ce751bdbc8c861f6f95d3162","ssdeep":"","tlshash":"4e31f9fd129220437101ade72165eef798347c15f412da60ce65ba389c9fe20ed9a619","first_seen":"2023-04-05T07:39:29Z","last_seen":"2026-07-27T09:46:57.015074Z","times_seen":71585,"resource_available":false,"data":"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"}},"time_used":17,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/translate_static/img/te_ctrl3.gif","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.773Z","timestamp":1785132839773,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /translate_static/img/te_ctrl3.gif HTTP/1.1\r\nHost: translate.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 1412\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 02:32:24 GMT\r\nexpires: Fri, 23 Jul 2027 02:32:24 GMT\r\ncache-control: public, max-age=31536000\r\nage: 358895\r\nlast-modified: Thu, 03 Oct 2019 10:15:00 GMT\r\ncontent-type: image/gif\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1412,"size_decoded":2072,"mime_type":"image/gif","magic":"GIF image data, version 89a, 84 x 19","md5":"9afe50090c0bc612953d081295eab5b1","sha1":"71a4da2a622879c29176ecfa5afe1bbe3e8cfa40","sha256":"d228d0256370863119c043f1e5ca8f3930f6999bd9f250434b6d8935f45dc171","sha512":"d7290b951cec51994f3480c32b70de0faeca433b5d99209b044e1d4c12327768de8c344b6bded806d993251e0ee6f98f0dd64f4480e999fbc06abfe3dd8056fa","ssdeep":"","tlshash":"042182b5cc99114a5be1bd27a334899da8b12c56c38d74595436bdb43470f098422812","first_seen":"2023-04-05T08:27:37Z","last_seen":"2026-07-27T09:46:56.991083Z","times_seen":14949,"resource_available":false,"data":"R0lGODlhVAATAOePAAAAyxZBmhdFrBhHrhpMyB1Uxh1Vzh5X0R9ZzR9awSFf1SNk2CYW0SZq2yZs4Cka2yt45TB9ITJ11TODHjODIDWKGzdgrDmUGjuaRTybGT1svj6hGUClGEF1tEGnFkGpGUKrFUNnrkWjYUWoUkZtskdww0dxy0l/EkmP5EqlLUtLS0uxFFCmLlGY6lON3la4E1e0GFhYD1uxRlu5EVyyU1+vLGW8FGef5mmTx22p7W6PEW+d32+e4XKa2Hp6en6p5H9lE4eHh4i06YurxYyqyYyufoy8iI29ho7AhpCz55DEhJW55ZaT15jClqGm9afE2KgeFavK7LDN47rV7b7J4cTa9cXi0MjX8Mrd9c0lGs3l/9QmGtbW1tfq/9jl9djl+NmcANns0dnt4NonG9otM9yGft4pG9/x4OCrIuG3I+Hv/+Lfz+Px4eRWTOSaAeSyNuUpHOWIgOalAOby/+c5P+egD+exAefJcOhYXuqjAOq3Tuq9YOtqbuvHG+vz++xYTOy8AO2sAe6xAO7x9+/Ecu/SaPDYaPD2//D47/KzAPS7APfpy/ng3fzp7P347f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAABUABMAAAj+AP+pGEiw4MB//4goXMhQ4b8gECNKnIiwosWLGBE+2sjxkaNGIB115KjCB5eTKFP6UEEkypyXMGNGIRJkpM2NQSwO2bkzI8aRjOL8oUP0TxxGI1WkXIqSZcynMGnetJnz386OanpWxNGhKw6NHOMQHUs2jsiNSpkudQr1qVScI2vitLpRTZe7XdRoGYKQ65K/Hb5yxEO2MJ0/HdNyYQCgMQAGTYnAfOAYwIOociNy1Pwo55BHXZZ07XC3Ct9/HZZUFP1vo9ixfNYsWsOHDp6kKJlUZhIZppPKTjBvhtiZOM7PdlN34Xp3Ct/Uqzu0XjT2z5qRaxrhRsn4cUq2Lyn+W475FqfEjkE+4+0yhXkXKUNGy+/6yFAdotc7HrqpmItuALz15ltjwQmHnnGbqddcV3jBl9pfEIrmSB+KKILYVNtxB9l3ksX0wGXkyWUeZ8eBdheDDcY332iOVKiIIR0tgcKMNKKQwyP9+ReggL4VaGBxNZGYnl3r4TXFE/FFCGEHLVa4SEdR1EhjDofkqBZ4bb30lpDGeUYkiu89t2JXTb4Yo5Qz3mglU1hmWZ6IcM01hBZVrDeFFEiipiRgE1ZYREdzaCGoFi3MKASOJql10kotZfnSTHBiWNVOd0qBp1Zj0mdIGiOMYMVNVdAYxSMCGWQqQg2lSsRDGKKnE09jp/lU0SNhdDqCCJ929EWhKLTQBamyBuvTRMRKJKywGxlh6whGWOGsESLQeCiwx1Zr7bWyckTDstxi0MENHGEr7rjWdqQst7Ya0RG57LZ70UhWQGurCM2O5O697N6EyL773hQQADs="}},"time_used":16,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/staked-ether.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.054Z","timestamp":1785132868054,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/staked-ether.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, 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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:44:51 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae2183-24d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\npriority: u=4,i\r\ncf-bgj: imgq:85,h2pri\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=QhnmQXVagvD4wA7QjPOGKZ%2FAApXKMCKIZSOPk0hW%2FCldKiq2kPkZ7QttyxeNLOgV4GT3mvebtf5FSXUwKfdMe6z%2BrcY6QUcbvUE9I2MXZakx0ClRbJZ77aEv1SBEKDV%2FYg%3D%3D\"}]}\r\nx-content-type-options: nosniff\r\ncf-polished: ok, orig_size=589\r\nvary: accept, accept-encoding\r\nage: 130375\r\ncf-cache-status: HIT\r\ncf-ray: a21981095ed95ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 368\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":368,"size_decoded":1488,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"57604bc93df49bf069940b9b74659ae6","sha1":"295b80d371854bd2dad0d9a9b71d36626ddabc2d","sha256":"2f9aeb1ff47bdbf9ade61b854d802b0198a4476a192abe717e64e7021f9d05cd","sha512":"dab1ea39e27acbac1c06365af662387c9e1b07db753e99373a89d7ca9ff92ce82bf102fa0417547a5bc8c8da5edb950611e4282a3f3e7e5c6fa87fbac286580f","ssdeep":"","tlshash":"f4e06004c940e538c220ecac13aa30b9f273920b92816f3000b29df581bae3f0503f94","first_seen":"2026-07-27T04:22:23.329086Z","last_seen":"2026-07-27T06:14:42.625543Z","times_seen":2,"resource_available":false,"data":"UklGRmgBAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSG4AAAABV6Aqsg06fR9IYCTxp4aICER9XK9GYFLbtpSzIAMeiUSSYHRYNIoGICHEpOeX87+bIaL/atu2YeQpvZwB6bBNZQSwmpkVQGeBErhDenJzihdPdnnaxzO+nvn3nAplqBTVSF2krhSXq2/ID4mvAVZQOCDUAAAAsAQAnQEqFAAUAD5JHI1EIqGhGAwEACgEhLYADtTiIvC/2YqKrK6h2OY9F1CAAAD+/qwjjD4A9L4Y/FHbvoIejufieB6hS/cMEMiHLjvGUQF9TSWXg4fQhSpBJ8V0kcYdfQxU5opCnC5L8MB8yNxP+yZVM9yF8BWXYz5EM4dMzH+UefOV2PcgaLlq5e/i/o5ffJcEegv4/W6H+P5ycv7/6zb9n/n+swMuOMOD+f8fO3MNeYSiEYBZphTwkBeTVS0kWOiN+RjYpMpoLEVpzOH79faAAAA="}},"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":"farosonglobaltrade.ltd/vendor/bootstrap/js/bootstrap.bundle.min.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.341Z","timestamp":1785132838341,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /vendor/bootstrap/js/bootstrap.bundle.min.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\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 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1459,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-27T09:47:46.014144Z","times_seen":144055,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":38,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/custom.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.351Z","timestamp":1785132838351,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/js/custom.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 03 Jan 2022 23:40:58 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2449\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":9099,"size_decoded":2686,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with CRLF line terminators","md5":"a32bf9127d22c6894ec0935519e05581","sha1":"20c6185523e4e52513e1cebf05ffa259b3f18189","sha256":"e81154249e4270dae282f94ca9f798696b3fd6cef8c9867091f76415a0473146","sha512":"c1b161b7767e4fcd99d7e0e15e231b15e136cbbe9f92a54df29a55700039786875193938eb7fe3775f56a4fed166d9251b8ba8e1c1a0c5db21dfef4585653d50","ssdeep":"96:ymISIVsOYn14jJ+fQjPAyTHMIchkKE0GJ3ys1hYxbGTzKW81Mt6YOWWBCtsuwdYu:54vU8HW3wphYkdW6Hwyw0103bUlW","tlshash":"43126049734ea0a9b9b77331ca3f5914fb39c013d102e415bc6c96983f705a922e2edd","first_seen":"2023-04-07T17:11:08Z","last_seen":"2026-07-27T06:14:42.627437Z","times_seen":34,"resource_available":true,"data":"KGZ1bmN0aW9uICgkKSB7DQoJDQoJInVzZSBzdHJpY3QiOw0KDQoJJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbigpIHsNCgkgIHZhciBzY3JvbGwgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCk7DQoJICB2YXIgYm94ID0gJCgnLmhlYWRlci10ZXh0JykuaGVpZ2h0KCk7DQoJICB2YXIgaGVhZGVyID0gJCgnaGVhZGVyJykuaGVpZ2h0KCk7DQoNCgkgIGlmIChzY3JvbGwgPj0gYm94IC0gaGVhZGVyKSB7DQoJICAgICQoImhlYWRlciIpLmFkZENsYXNzKCJiYWNrZ3JvdW5kLWhlYWRlciIpOw0KCSAgfSBlbHNlIHsNCgkgICAgJCgiaGVhZGVyIikucmVtb3ZlQ2xhc3MoImJhY2tncm91bmQtaGVhZGVyIik7DQoJICB9DQoJfSk7DQoJDQoJJCgnLmZpbHRlcnMgdWwgbGknKS5jbGljayhmdW5jdGlvbigpew0KICAgICAgICAkKCcuZmlsdGVycyB1bCBsaScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsNCiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7DQogICAgICAgICAgDQogICAgICAgICAgdmFyIGRhdGEgPSAkKHRoaXMpLmF0dHIoJ2RhdGEtZmlsdGVyJyk7DQogICAgICAgICAgJGdyaWQuaXNvdG9wZSh7DQogICAgICAgICAgICBmaWx0ZXI6IGRhdGENCiAgICAgICAgICB9KQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgJGdyaWQgPSAkKCIuZ3JpZCIpLmlzb3RvcGUoew0KICAgICAgICAgIGl0ZW1TZWxlY3RvcjogIi5hbGwiLA0KICAgICAgICAgIHBlcmNlbnRQb3NpdGlvbjogdHJ1ZSwNCiAgICAgICAgICBtYXNvbnJ5OiB7DQogICAgICAgICAgICBjb2x1bW5XaWR0aDogIi5hbGwiDQogICAgICAgICAgfQ0KICAgICAgICB9KTsNCg0KDQoJY29uc3QgQWNjb3JkaW9uID0gew0KCSAgc2V0dGluZ3M6IHsNCgkgICAgLy8gRXhwYW5kIHRoZSBmaXJzdCBpdGVtIGJ5IGRlZmF1bHQNCgkgICAgZmlyc3RfZXhwYW5kZWQ6IGZhbHNlLA0KCSAgICAvLyBBbGxvdyBpdGVtcyB0byBiZSB0b2dnbGVkIGluZGVwZW5kZW50bHkNCgkgICAgdG9nZ2xlOiBmYWxzZQ0KCSAgfSwNCg0KCSAgb3BlbkFjY29yZGlvbjogZnVuY3Rpb24odG9nZ2xlLCBjb250ZW50KSB7DQoJICAgIGlmIChjb250ZW50LmNoaWxkcmVuLmxlbmd0aCkgew0KCSAgICAgIHRvZ2dsZS5jbGFzc0xpc3QuYWRkKCJpcy1vcGVuIik7DQoJICAgICAgbGV0IGZpbmFsX2hlaWdodCA9IE1hdGguZmxvb3IoY29udGVudC5jaGlsZHJlblswXS5vZmZzZXRIZWlnaHQpOw0KCSAgICAgIGNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gZmluYWxfaGVpZ2h0ICsgInB4IjsNCgkgICAgfQ0KCSAgfSwNCg0KCSAgY2xvc2VBY2NvcmRpb246IGZ1bmN0aW9uKHRvZ2dsZSwgY29udGVudCkgew0KCSAgICB0b2dnbGUuY2xhc3NMaXN0LnJlbW92ZSgiaXMtb3BlbiIpOw0KCSAgICBjb250ZW50LnN0eWxlLmhlaWdodCA9IDA7DQoJICB9LA0KDQoJICBpbml0OiBmdW5jdGlvbihlbCkgew0KCSAgICBjb25zdCBfdGhpcyA9IHRoaXM7DQoNCgkgICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCBzZXR0aW5ncyB3aXRoIGNsYXNzZXMNCgkgICAgbGV0IGlzX2ZpcnN0X2V4cGFuZGVkID0gX3RoaXMuc2V0dGluZ3MuZmlyc3RfZXhwYW5kZWQ7DQoJICAgIGlmIChlbC5jbGFzc0xpc3QuY29udGFpbnMoImlzLWZpcnN0LWV4cGFuZGVkIikpIGlzX2ZpcnN0X2V4cGFuZGVkID0gdHJ1ZTsNCgkgICAgbGV0IGlzX3RvZ2dsZSA9IF90aGlzLnNldHRpbmdzLnRvZ2dsZTsNCgkgICAgaWYgKGVsLmNsYXNzTGlzdC5jb250YWlucygiaXMtdG9nZ2xlIikpIGlzX3RvZ2dsZSA9IHRydWU7DQoNCgkgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBhY2NvcmRpb24ncyBzZWN0aW9ucyBhbmQgc2V0IHVwIHRoZSBjbGljayBiZWhhdmlvcg0KCSAgICBjb25zdCBzZWN0aW9ucyA9IGVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbiIpOw0KCSAgICBjb25zdCBhbGxfdG9nZ2xlcyA9IGVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbi1oZWFkIik7DQoJICAgIGNvbnN0IGFsbF9jb250ZW50cyA9IGVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbi1ib2R5Iik7DQoJICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHsNCgkgICAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbnNbaV07DQoJICAgICAgY29uc3QgdG9nZ2xlID0gYWxsX3RvZ2dsZXNbaV07DQoJICAgICAgY29uc3QgY29udGVudCA9IGFsbF9jb250ZW50c1tpXTsNCg0KCSAgICAgIC8vIENsaWNrIGJlaGF2aW9yDQoJICAgICAgdG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZSkgew0KCSAgICAgICAgaWYgKCFpc190b2dnbGUpIHsNCgkgICAgICAgICAgLy8gSGlkZSBhbGwgY29udGVudCBhcmVhcyBmaXJzdA0KCSAgICAgICAgICBmb3IgKGxldCBhID0gMDsgYSA8IGFsbF9jb250ZW50cy5sZW5ndGg7IGErKykgew0KCSAgICAgICAgICAgIF90aGlzLmNsb3NlQWNjb3JkaW9uKGFsbF90b2dnbGVzW2FdLCBhbGxfY29udGVudHNbYV0pOw0KCSAgICAgICAgICB9DQoNCgkgICAgICAgICAgLy8gRXhwYW5kIHRoZSBjbGlja2VkIGl0ZW0NCgkgICAgICAgICAgX3RoaXMub3BlbkFjY29yZGlvbih0b2dnbGUsIGNvbnRlbnQpOw0KCSAgICAgICAgfSBlbHNlIHsNCgkgICAgICAgICAgLy8gVG9nZ2xlIHRoZSBjbGlja2VkIGl0ZW0NCgkgICAgICAgICAgaWYgKHRvZ2dsZS5jbGFzc0xpc3QuY29udGFpbnMoImlzLW9wZW4iKSkgew0KCSAgICAgICAgICAgIF90aGlzLmNsb3NlQWNjb3JkaW9uKHRvZ2dsZSwgY29udGVudCk7DQoJICAgICAgICAgIH0gZWxzZSB7DQoJICAgICAgICAgICAgX3RoaXMub3BlbkFjY29yZGlvbih0b2dnbGUsIGNvbnRlbnQpOw0KCSAgICAgICAgICB9DQoJICAgICAgICB9DQoJICAgICAgfSk7DQoNCgkgICAgICAvLyBFeHBhbmQgdGhlIGZpcnN0IGl0ZW0NCgkgICAgICBpZiAoaSA9PT0gMCAmJiBpc19maXJzdF9leHBhbmRlZCkgew0KCSAgICAgICAgX3RoaXMub3BlbkFjY29yZGlvbih0b2dnbGUsIGNvbnRlbnQpOw0KCSAgICAgIH0NCgkgICAgfQ0KCSAgfQ0KCX07DQoNCgkoZnVuY3Rpb24oKSB7DQoJICAvLyBJbml0aWF0ZSBhbGwgaW5zdGFuY2VzIG9uIHRoZSBwYWdlDQoJICBjb25zdCBhY2NvcmRpb25zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYWNjb3JkaW9ucyIpOw0KCSAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY2NvcmRpb25zLmxlbmd0aDsgaSsrKSB7DQoJICAgIEFjY29yZGlvbi5pbml0KGFjY29yZGlvbnNbaV0pOw0KCSAgfQ0KCX0pKCk7DQoNCg0KCSQoJy5vd2wtc2VydmljZS1pdGVtJykub3dsQ2Fyb3VzZWwoew0KCQlpdGVtczozLA0KCQlsb29wOnRydWUsDQoJCWRvdHM6IHRydWUsDQoJCW5hdjogdHJ1ZSwNCgkJYXV0b3BsYXk6IHRydWUsDQoJCW1hcmdpbjozMCwNCgkJICByZXNwb25zaXZlOnsNCgkJCSAgMDp7DQoJCQkJICBpdGVtczoxDQoJCQkgIH0sDQoJCQkgIDYwMDp7DQoJCQkJICBpdGVtczoyDQoJCQkgIH0sDQoJCQkgIDEwMDA6ew0KCQkJCSAgaXRlbXM6Mw0KCQkJICB9DQoJCSAgfQ0KCSAgfSkNCg0KCSQoJy5vd2wtY291cnNlcy1pdGVtJykub3dsQ2Fyb3VzZWwoew0KCQlpdGVtczo0LA0KCQlsb29wOnRydWUsDQoJCWRvdHM6IHRydWUsDQoJCW5hdjogdHJ1ZSwNCgkJYXV0b3BsYXk6IHRydWUsDQoJCW1hcmdpbjozMCwNCgkJICByZXNwb25zaXZlOnsNCgkJCSAgMDp7DQoJCQkJICBpdGVtczoxDQoJCQkgIH0sDQoJCQkgIDYwMDp7DQoJCQkJICBpdGVtczoyDQoJCQkgIH0sDQoJCQkgIDEwMDA6ew0KCQkJCSAgaXRlbXM6NA0KCQkJICB9DQoJCSAgfQ0KCSAgfSkNCgkNCg0KCS8vIE1lbnUgRHJvcGRvd24gVG9nZ2xlDQoJaWYoJCgnLm1lbnUtdHJpZ2dlcicpLmxlbmd0aCl7DQoJCSQoIi5tZW51LXRyaWdnZXIiKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsJDQoJCQkkKHRoaXMpLnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTsNCgkJCSQoJy5oZWFkZXItYXJlYSAubmF2Jykuc2xpZGVUb2dnbGUoMjAwKTsNCgkJfSk7DQoJfQ0KDQoNCgkvLyBNZW51IGVsZXZhdG9yIGFuaW1hdGlvbg0KCSQoJy5zY3JvbGwtdG8tc2VjdGlvbiBhW2hyZWYqPVxcI106bm90KFtocmVmPVxcI10pJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7DQoJCWlmIChsb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9eXC8vLCcnKSA9PSB0aGlzLnBhdGhuYW1lLnJlcGxhY2UoL15cLy8sJycpICYmIGxvY2F0aW9uLmhvc3RuYW1lID09IHRoaXMuaG9zdG5hbWUpIHsNCgkJCXZhciB0YXJnZXQgPSAkKHRoaXMuaGFzaCk7DQoJCQl0YXJnZXQgPSB0YXJnZXQubGVuZ3RoID8gdGFyZ2V0IDogJCgnW25hbWU9JyArIHRoaXMuaGFzaC5zbGljZSgxKSArJ10nKTsNCgkJCWlmICh0YXJnZXQubGVuZ3RoKSB7DQoJCQkJdmFyIHdpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7DQoJCQkJaWYod2lkdGggPCA5OTEpIHsNCgkJCQkJJCgnLm1lbnUtdHJpZ2dlcicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsNCgkJCQkJJCgnLmhlYWRlci1hcmVhIC5uYXYnKS5zbGlkZVVwKDIwMCk7CQ0KCQkJCX0JCQkJDQoJCQkJJCgnaHRtbCxib2R5JykuYW5pbWF0ZSh7DQoJCQkJCXNjcm9sbFRvcDogKHRhcmdldC5vZmZzZXQoKS50b3ApIC0gODANCgkJCQl9LCA3MDApOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KCX0pOw0KDQoJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgew0KCSAgICAkKGRvY3VtZW50KS5vbigic2Nyb2xsIiwgb25TY3JvbGwpOw0KCSAgICANCgkgICAgLy9zbW9vdGhzY3JvbGwNCgkgICAgJCgnLnNjcm9sbC10by1zZWN0aW9uIGFbaHJlZl49IiMiXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7DQoJICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQoJICAgICAgICAkKGRvY3VtZW50KS5vZmYoInNjcm9sbCIpOw0KCSAgICAgICAgDQoJICAgICAgICAkKCcuc2Nyb2xsLXRvLXNlY3Rpb24gYScpLmVhY2goZnVuY3Rpb24gKCkgew0KCSAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOw0KCSAgICAgICAgfSkNCgkgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KCSAgICAgIA0KCSAgICAgICAgdmFyIHRhcmdldCA9IHRoaXMuaGFzaCwNCgkgICAgICAgIG1lbnUgPSB0YXJnZXQ7DQoJICAgICAgIAl2YXIgdGFyZ2V0ID0gJCh0aGlzLmhhc2gpOw0KCSAgICAgICAgJCgnaHRtbCwgYm9keScpLnN0b3AoKS5hbmltYXRlKHsNCgkgICAgICAgICAgICBzY3JvbGxUb3A6ICh0YXJnZXQub2Zmc2V0KCkudG9wKSAtIDc5DQoJICAgICAgICB9LCA1MDAsICdzd2luZycsIGZ1bmN0aW9uICgpIHsNCgkgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9IHRhcmdldDsNCgkgICAgICAgICAgICAkKGRvY3VtZW50KS5vbigic2Nyb2xsIiwgb25TY3JvbGwpOw0KCSAgICAgICAgfSk7DQoJICAgIH0pOw0KCX0pOw0KDQoJZnVuY3Rpb24gb25TY3JvbGwoZXZlbnQpew0KCSAgICB2YXIgc2Nyb2xsUG9zID0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCk7DQoJICAgICQoJy5uYXYgYScpLmVhY2goZnVuY3Rpb24gKCkgew0KCSAgICAgICAgdmFyIGN1cnJMaW5rID0gJCh0aGlzKTsNCgkgICAgICAgIHZhciByZWZFbGVtZW50ID0gJChjdXJyTGluay5hdHRyKCJocmVmIikpOw0KCSAgICAgICAgaWYgKHJlZkVsZW1lbnQucG9zaXRpb24oKS50b3AgPD0gc2Nyb2xsUG9zICYmIHJlZkVsZW1lbnQucG9zaXRpb24oKS50b3AgKyByZWZFbGVtZW50LmhlaWdodCgpID4gc2Nyb2xsUG9zKSB7DQoJICAgICAgICAgICAgJCgnLm5hdiB1bCBsaSBhJykucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpOw0KCSAgICAgICAgICAgIGN1cnJMaW5rLmFkZENsYXNzKCJhY3RpdmUiKTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2V7DQoJICAgICAgICAgICAgY3VyckxpbmsucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpOw0KCSAgICAgICAgfQ0KCSAgICB9KTsNCgl9DQoNCg0KCS8vIFBhZ2UgbG9hZGluZyBhbmltYXRpb24NCgkkKHdpbmRvdykub24oJ2xvYWQnLCBmdW5jdGlvbigpIHsNCgkJaWYoJCgnLmNvdmVyJykubGVuZ3RoKXsNCgkJCSQoJy5jb3ZlcicpLnBhcmFsbGF4KHsNCgkJCQlpbWFnZVNyYzogJCgnLmNvdmVyJykuZGF0YSgnaW1hZ2UnKSwNCgkJCQl6SW5kZXg6ICcxJw0KCQkJfSk7DQoJCX0NCg0KCQkkKCIjcHJlbG9hZGVyIikuYW5pbWF0ZSh7DQoJCQknb3BhY2l0eSc6ICcwJw0KCQl9LCA2MDAsIGZ1bmN0aW9uKCl7DQoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQoJCQkJJCgiI3ByZWxvYWRlciIpLmNzcygidmlzaWJpbGl0eSIsICJoaWRkZW4iKS5mYWRlT3V0KCk7DQoJCQl9LCAzMDApOw0KCQl9KTsNCgl9KTsNCg0KCQ0KDQoJY29uc3QgZHJvcGRvd25PcGVuZXIgPSAkKCcubWFpbi1uYXYgdWwubmF2IC5oYXMtc3ViID4gYScpOw0KDQogICAgLy8gT3Blbi9DbG9zZSBTdWJtZW51cw0KICAgIGlmIChkcm9wZG93bk9wZW5lci5sZW5ndGgpIHsNCiAgICAgICAgZHJvcGRvd25PcGVuZXIuZWFjaChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICB2YXIgX3RoaXMgPSAkKHRoaXMpOw0KDQogICAgICAgICAgICBfdGhpcy5vbigndGFwIGNsaWNrJywgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGhpc0l0ZW1QYXJlbnQgPSBfdGhpcy5wYXJlbnQoJ2xpJyksDQogICAgICAgICAgICAgICAgICAgIHRoaXNJdGVtUGFyZW50U2libGluZ3NXaXRoRHJvcCA9IHRoaXNJdGVtUGFyZW50LnNpYmxpbmdzKCcuaGFzLXN1YicpOw0KDQogICAgICAgICAgICAgICAgaWYgKHRoaXNJdGVtUGFyZW50Lmhhc0NsYXNzKCdoYXMtc3ViJykpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHN1Ym1lbnUgPSB0aGlzSXRlbVBhcmVudC5maW5kKCc+IHVsLnN1Yi1tZW51Jyk7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHN1Ym1lbnUuaXMoJzp2aXNpYmxlJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1lbnUuc2xpZGVVcCg0NTAsICdlYXNlSW5PdXRRdWFkJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzSXRlbVBhcmVudC5yZW1vdmVDbGFzcygnaXMtb3Blbi1zdWInKTsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNJdGVtUGFyZW50LmFkZENsYXNzKCdpcy1vcGVuLXN1YicpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpc0l0ZW1QYXJlbnRTaWJsaW5nc1dpdGhEcm9wLmxlbmd0aCA9PT0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNJdGVtUGFyZW50LmZpbmQoJy5zdWItbWVudScpLnNsaWRlVXAoNDAwLCAnZWFzZUluT3V0UXVhZCcsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWVudS5zbGlkZURvd24oMjUwLCAnZWFzZUluT3V0UXVhZCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzSXRlbVBhcmVudC5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdpcy1vcGVuLXN1YicpLmZpbmQoJy5zdWItbWVudScpLnNsaWRlVXAoMjUwLCAnZWFzZUluT3V0UXVhZCcsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWVudS5zbGlkZURvd24oMjUwLCAnZWFzZUluT3V0UXVhZCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0pOw0KICAgIH0NCg0KDQoJZnVuY3Rpb24gdmlzaWJsZShwYXJ0aWFsKSB7DQogICAgICAgIHZhciAkdCA9IHBhcnRpYWwsDQogICAgICAgICAgICAkdyA9IGpRdWVyeSh3aW5kb3cpLA0KICAgICAgICAgICAgdmlld1RvcCA9ICR3LnNjcm9sbFRvcCgpLA0KICAgICAgICAgICAgdmlld0JvdHRvbSA9IHZpZXdUb3AgKyAkdy5oZWlnaHQoKSwNCiAgICAgICAgICAgIF90b3AgPSAkdC5vZmZzZXQoKS50b3AsDQogICAgICAgICAgICBfYm90dG9tID0gX3RvcCArICR0LmhlaWdodCgpLA0KICAgICAgICAgICAgY29tcGFyZVRvcCA9IHBhcnRpYWwgPT09IHRydWUgPyBfYm90dG9tIDogX3RvcCwNCiAgICAgICAgICAgIGNvbXBhcmVCb3R0b20gPSBwYXJ0aWFsID09PSB0cnVlID8gX3RvcCA6IF9ib3R0b207DQoNCiAgICAgICAgcmV0dXJuICgoY29tcGFyZUJvdHRvbSA8PSB2aWV3Qm90dG9tKSAmJiAoY29tcGFyZVRvcCA+PSB2aWV3VG9wKSAmJiAkdC5pcygnOnZpc2libGUnKSk7DQoNCiAgICB9DQoNCiAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCkgew0KDQogICAgICAgIGlmICh2aXNpYmxlKCQoJy5jb3VudC1kaWdpdCcpKSkgew0KICAgICAgICAgICAgaWYgKCQoJy5jb3VudC1kaWdpdCcpLmhhc0NsYXNzKCdjb3VudGVyLWxvYWRlZCcpKSByZXR1cm47DQogICAgICAgICAgICAkKCcuY291bnQtZGlnaXQnKS5hZGRDbGFzcygnY291bnRlci1sb2FkZWQnKTsNCg0KICAgICAgICAgICAgJCgnLmNvdW50LWRpZ2l0JykuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOw0KICAgICAgICAgICAgICAgIGpRdWVyeSh7DQogICAgICAgICAgICAgICAgICAgIENvdW50ZXI6IDANCiAgICAgICAgICAgICAgICB9KS5hbmltYXRlKHsNCiAgICAgICAgICAgICAgICAgICAgQ291bnRlcjogJHRoaXMudGV4dCgpDQogICAgICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCwNCiAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAnc3dpbmcnLA0KICAgICAgICAgICAgICAgICAgICBzdGVwOiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnRleHQoTWF0aC5jZWlsKHRoaXMuQ291bnRlcikpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgIH0pDQoNCg0KfSkod2luZG93LmpRdWVyeSk7"}},"time_used":84,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":84,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"widget-v4.tidiochat.com/1_141_0/static/js/widget.326fdf51a69c63448a75.js","fqdn":"widget-v4.tidiochat.com","domain":"tidiochat.com","tld":"com"},"ip":{"addr":"104.26.8.139","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.007Z","timestamp":1785132839007,"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":"tidiochat.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 22 Jun 2026 00:15:11 GMT","end":"Sun, 20 Sep 2026 01:15:06 GMT"},"fingerprint":{"sha1":"49:82:83:48:29:F7:56:11:1A:16:1F:DB:82:A9:D7:C1:51:57:D2:6F","sha256":"AF:B4:C8:AE:35:50:AC:7C:42:29:0C:7F:AC:47:8A:59:39:40:B2:F3:6E:1A:D7:59:73:0D:A8:F3:33:D4:7C:9F"}}},"request":{"raw":"GET /1_141_0/static/js/widget.326fdf51a69c63448a75.js HTTP/1.1\r\nHost: widget-v4.tidiochat.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\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 06:13:59 GMT\r\ncontent-type: application/javascript\r\nserver: cloudflare\r\nlast-modified: Wed, 15 Feb 2023 13:03:23 GMT\r\nvary: Accept-Encoding\r\netag: W/\"63ecd81b-84ef4\"\r\ncache-control: public, max-age=31536000, immutable\r\naccess-control-allow-origin: *\r\ncontent-encoding: gzip\r\nage: 6756\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2BQ6fJ20t6dQ5fva8AgqzGJvA7AlfWm6%2BOteWn2m%2BghW2dPyIxEbpFtHcBqd69awXU9inoUAJjkbRKPCFtl6S2aVzix%2B7o2QkqwTUv6M4f%2F7I4mxgmJxlV7eJB8VBPoneoaI7X3BqBw03\"}]}\r\ncf-ray: a2198053df89712e-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":544500,"size_decoded":197744,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65451)","md5":"de50f4ad485f297375fdba2a7c0fffca","sha1":"bc8bcba01de2c842321d1e09bfc400f75bffc327","sha256":"75a18ff6c9f361ac782380effe66dab49ccb0d5a1759b9900bff06d46c9ad740","sha512":"4fd1d6127bb81c22abf48d029539c3cbd54c5b0d69c9cac3541a3401e660c39dacf8c30aad5216d2e61ca511d8d99a50479e7abafa8ab49c063e5df8870195b0","ssdeep":"6144:arisCL/4boX0NFVzfDq2XsS2NtUQogpTbotl09Z+kbW3vqTpN3AY:arisTZFVzf1n5ORW2NQY","tlshash":"7ac409cc76d6f0a547f321b6406f140bf33a692a680d8550f211e9e57cb898ea237f6d","first_seen":"2025-08-12T04:19:48.094026Z","last_seen":"2026-07-27T06:14:42.628649Z","times_seen":3,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgd2lkZ2V0LjMyNmZkZjUxYTY5YzYzNDQ4YTc1LmpzLkxJQ0VOU0UudHh0ICovCiFmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe2Zvcih2YXIgbixvLGk9dFswXSxhPXRbMV0scz0wLGM9W107czxpLmxlbmd0aDtzKyspbz1pW3NdLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG8pJiZyW29dJiZjLnB1c2gocltvXVswXSkscltvXT0wO2ZvcihuIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsbikmJihlW25dPWFbbl0pO2Zvcih1JiZ1KHQpO2MubGVuZ3RoOyljLnNoaWZ0KCkoKX12YXIgbj17fSxyPXs1OjB9O2Z1bmN0aW9uIG8odCl7aWYoblt0XSlyZXR1cm4gblt0XS5leHBvcnRzO3ZhciByPW5bdF09e2k6dCxsOiExLGV4cG9ydHM6e319O3JldHVybiBlW3RdLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLG8pLHIubD0hMCxyLmV4cG9ydHN9by5lPWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49cltlXTtpZigwIT09bilpZihuKXQucHVzaChuWzJdKTtlbHNle3ZhciBpPW5ldyBQcm9taXNlKChmdW5jdGlvbih0LG8pe249cltlXT1bdCxvXX0pKTt0LnB1c2goblsyXT1pKTt2YXIgYSxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3MuY2hhcnNldD0idXRmLTgiLHMudGltZW91dD0xMjAsby5uYyYmcy5zZXRBdHRyaWJ1dGUoIm5vbmNlIixvLm5jKSxzLnNyYz1mdW5jdGlvbihlKXtyZXR1cm4gby5wKyIxXzE0MV8wL3N0YXRpYy9qcy9jaHVuay0iKyh7MDoiRW1vamlQaWNrZXIiLDE6IkltYWdlIiwyOiJXaWRnZXRJZnJhbWUiLDQ6InZpc3VhbFJlZ3Jlc2lvbkhlbHBlcnMifVtlXXx8ZSkrIi0zMjZmZGY1MWE2OWM2MzQ0OGE3NS5qcyJ9KGUpO3ZhciB1PW5ldyBFcnJvcjthPWZ1bmN0aW9uKHQpe3Mub25lcnJvcj1zLm9ubG9hZD1udWxsLGNsZWFyVGltZW91dChjKTt2YXIgbj1yW2VdO2lmKDAhPT1uKXtpZihuKXt2YXIgbz10JiYoImxvYWQiPT09dC50eXBlPyJtaXNzaW5nIjp0LnR5cGUpLGk9dCYmdC50YXJnZXQmJnQudGFyZ2V0LnNyYzt1Lm1lc3NhZ2U9IkxvYWRpbmcgY2h1bmsgIitlKyIgZmFpbGVkLlxuKCIrbysiOiAiK2krIikiLHUubmFtZT0iQ2h1bmtMb2FkRXJyb3IiLHUudHlwZT1vLHUucmVxdWVzdD1pLG5bMV0odSl9cltlXT12b2lkIDB9fTt2YXIgYz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2Eoe3R5cGU6InRpbWVvdXQiLHRhcmdldDpzfSl9KSwxMmU0KTtzLm9uZXJyb3I9cy5vbmxvYWQ9YSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpfXJldHVybiBQcm9taXNlLmFsbCh0KX0sby5tPWUsby5jPW4sby5kPWZ1bmN0aW9uKGUsdCxuKXtvLm8oZSx0KXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6bn0pfSxvLnI9ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCIhPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG8udD1mdW5jdGlvbihlLHQpe2lmKDEmdCYmKGU9byhlKSksOCZ0KXJldHVybiBlO2lmKDQmdCYmIm9iamVjdCI9PT10eXBlb2YgZSYmZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoby5yKG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSksMiZ0JiYic3RyaW5nIiE9dHlwZW9mIGUpZm9yKHZhciByIGluIGUpby5kKG4scixmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0uYmluZChudWxsLHIpKTtyZXR1cm4gbn0sby5uPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBvLmQodCwiYSIsdCksdH0sby5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxvLnA9Imh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIixvLm9lPWZ1bmN0aW9uKGUpe3Rocm93IGNvbnNvbGUuZXJyb3IoZSksZX0sby5oPSIzMjZmZGY1MWE2OWM2MzQ0OGE3NSIsby5jbj0id2lkZ2V0Ijt2YXIgaT13aW5kb3cud2VicGFja0pzb25wPXdpbmRvdy53ZWJwYWNrSnNvbnB8fFtdLGE9aS5wdXNoLmJpbmQoaSk7aS5wdXNoPXQsaT1pLnNsaWNlKCk7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspdChpW3NdKTt2YXIgdT1hO28oby5zPTIyNCl9KFtmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJqYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSksbi5kKHQsIlZjIiwoZnVuY3Rpb24oKXtyZXR1cm4gY30pKSxuLmQodCwiRCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGx9KSksbi5kKHQsImtjIiwoZnVuY3Rpb24oKXtyZXR1cm4gZn0pKSxuLmQodCwiSCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGR9KSksbi5kKHQsIm9jIiwoZnVuY3Rpb24oKXtyZXR1cm4gcH0pKSxuLmQodCwic2IiLChmdW5jdGlvbigpe3JldHVybiBofSkpLG4uZCh0LCJmZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHZ9KSksbi5kKHQsInUiLChmdW5jdGlvbigpe3JldHVybiBnfSkpLG4uZCh0LCJjYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHl9KSksbi5kKHQsInEiLChmdW5jdGlvbigpe3JldHVybiBtfSkpLG4uZCh0LCJZYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGJ9KSksbi5kKHQsImsiLChmdW5jdGlvbigpe3JldHVybiB3fSkpLG4uZCh0LCJTYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIE99KSksbi5kKHQsInYiLChmdW5jdGlvbigpe3JldHVybiBffSkpLG4uZCh0LCJkYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIEV9KSksbi5kKHQsIkkiLChmdW5jdGlvbigpe3JldHVybiBDfSkpLG4uZCh0LCJwYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIFN9KSksbi5kKHQsIkNiIiwoZnVuY3Rpb24oKXtyZXR1cm4ga30pKSxuLmQodCwibWQiLChmdW5jdGlvbigpe3JldHVybiB4fSkpLG4uZCh0LCJkYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEF9KSksbi5kKHQsIkxjIiwoZnVuY3Rpb24oKXtyZXR1cm4gan0pKSxuLmQodCwiUSIsKGZ1bmN0aW9uKCl7cmV0dXJuIFR9KSksbi5kKHQsInhjIiwoZnVuY3Rpb24oKXtyZXR1cm4gUH0pKSxuLmQodCwiVyIsKGZ1bmN0aW9uKCl7cmV0dXJuIEl9KSksbi5kKHQsIkRjIiwoZnVuY3Rpb24oKXtyZXR1cm4gUn0pKSxuLmQodCwiaWIiLChmdW5jdGlvbigpe3JldHVybiBEfSkpLG4uZCh0LCJVYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIE59KSksbi5kKHQsIlYiLChmdW5jdGlvbigpe3JldHVybiBMfSkpLG4uZCh0LCJDYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIEZ9KSksbi5kKHQsImFiIiwoZnVuY3Rpb24oKXtyZXR1cm4gTX0pKSxuLmQodCwiSWMiLChmdW5jdGlvbigpe3JldHVybiBCfSkpLG4uZCh0LCJaIiwoZnVuY3Rpb24oKXtyZXR1cm4gVX0pKSxuLmQodCwiR2MiLChmdW5jdGlvbigpe3JldHVybiB6fSkpLG4uZCh0LCJ6IiwoZnVuY3Rpb24oKXtyZXR1cm4gVn0pKSxuLmQodCwiSGMiLChmdW5jdGlvbigpe3JldHVybiBIfSkpLG4uZCh0LCJ6YiIsKGZ1bmN0aW9uKCl7cmV0dXJuIFd9KSksbi5kKHQsIlBjIiwoZnVuY3Rpb24oKXtyZXR1cm4gcX0pKSxuLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuICR9KSksbi5kKHQsIkliIiwoZnVuY3Rpb24oKXtyZXR1cm4gWX0pKSxuLmQodCwid2IiLChmdW5jdGlvbigpe3JldHVybiBHfSkpLG4uZCh0LCJrZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIEt9KSksbi5kKHQsInRiIiwoZnVuY3Rpb24oKXtyZXR1cm4gWH0pKSxuLmQodCwiZ2QiLChmdW5jdGlvbigpe3JldHVybiBRfSkpLG4uZCh0LCJ1YiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEp9KSksbi5kKHQsImhkIiwoZnVuY3Rpb24oKXtyZXR1cm4gWn0pKSxuLmQodCwiTCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGVlfSkpLG4uZCh0LCJzYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRlfSkpLG4uZCh0LCJ0YyIsKGZ1bmN0aW9uKCl7cmV0dXJuIG5lfSkpLG4uZCh0LCJ4IiwoZnVuY3Rpb24oKXtyZXR1cm4gcmV9KSksbi5kKHQsImZjIiwoZnVuY3Rpb24oKXtyZXR1cm4gb2V9KSksbi5kKHQsIkIiLChmdW5jdGlvbigpe3JldHVybiBpZX0pKSxuLmQodCwiaWMiLChmdW5jdGlvbigpe3JldHVybiBhZX0pKSxuLmQodCwiQSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHNlfSkpLG4uZCh0LCJoYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHVlfSkpLG4uZCh0LCJDIiwoZnVuY3Rpb24oKXtyZXR1cm4gY2V9KSksbi5kKHQsImpjIiwoZnVuY3Rpb24oKXtyZXR1cm4gbGV9KSksbi5kKHQsInkiLChmdW5jdGlvbigpe3JldHVybiBmZX0pKSxuLmQodCwiZ2MiLChmdW5jdGlvbigpe3JldHVybiBkZX0pKSxuLmQodCwiTyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHBlfSkpLG4uZCh0LCJ2YyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGhlfSkpLG4uZCh0LCJLIiwoZnVuY3Rpb24oKXtyZXR1cm4gdmV9KSksbi5kKHQsInJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gZ2V9KSksbi5kKHQsIkoiLChmdW5jdGlvbigpe3JldHVybiB5ZX0pKSxuLmQodCwicWMiLChmdW5jdGlvbigpe3JldHVybiBtZX0pKSxuLmQodCwiRGIiLChmdW5jdGlvbigpe3JldHVybiBiZX0pKSxuLmQodCwibmQiLChmdW5jdGlvbigpe3JldHVybiB3ZX0pKSxuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIE9lfSkpLG4uZCh0LCJIYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIF9lfSkpLG4uZCh0LCJyYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEVlfSkpLG4uZCh0LCJlZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIENlfSkpLG4uZCh0LCJCYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIFNlfSkpLG4uZCh0LCJSYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGtlfSkpLG4uZCh0LCJYIiwoZnVuY3Rpb24oKXtyZXR1cm4geGV9KSksbi5kKHQsIkVjIiwoZnVuY3Rpb24oKXtyZXR1cm4gQWV9KSksbi5kKHQsIk0iLChmdW5jdGlvbigpe3JldHVybiBqZX0pKSxuLmQodCwidWMiLChmdW5jdGlvbigpe3JldHVybiBUZX0pKSxuLmQodCwiRWIiLChmdW5jdGlvbigpe3JldHVybiBQZX0pKSxuLmQodCwiaWQiLChmdW5jdGlvbigpe3JldHVybiBJZX0pKSxuLmQodCwieGIiLChmdW5jdGlvbigpe3JldHVybiBSZX0pKSxuLmQodCwiSmIiLChmdW5jdGlvbigpe3JldHVybiBEZX0pKSxuLmQodCwiUiIsKGZ1bmN0aW9uKCl7cmV0dXJuIE5lfSkpLG4uZCh0LCJ5YyIsKGZ1bmN0aW9uKCl7cmV0dXJuIExlfSkpLG4uZCh0LCJ0IiwoZnVuY3Rpb24oKXtyZXR1cm4gRmV9KSksbi5kKHQsImJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gTWV9KSksbi5kKHQsImMiLChmdW5jdGlvbigpe3JldHVybiBCZX0pKSxuLmQodCwiTGIiLChmdW5jdGlvbigpe3JldHVybiBVZX0pKSxuLmQodCwibmIiLChmdW5jdGlvbigpe3JldHVybiB6ZX0pKSxuLmQodCwiWmMiLChmdW5jdGlvbigpe3JldHVybiBWZX0pKSxuLmQodCwibyIsKGZ1bmN0aW9uKCl7cmV0dXJuIEhlfSkpLG4uZCh0LCJXYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIFdlfSkpLG4uZCh0LCJHIiwoZnVuY3Rpb24oKXtyZXR1cm4gcWV9KSksbi5kKHQsIm5jIiwoZnVuY3Rpb24oKXtyZXR1cm4gJGV9KSksbi5kKHQsImNkIiwoZnVuY3Rpb24oKXtyZXR1cm4gWWV9KSksbi5kKHQsInFiIiwoZnVuY3Rpb24oKXtyZXR1cm4gR2V9KSksbi5kKHQsImRkIiwoZnVuY3Rpb24oKXtyZXR1cm4gS2V9KSksbi5kKHQsImQiLChmdW5jdGlvbigpe3JldHVybiBYZX0pKSxuLmQodCwiS2IiLChmdW5jdGlvbigpe3JldHVybiBRZX0pKSxuLmQodCwibCIsKGZ1bmN0aW9uKCl7cmV0dXJuIEplfSkpLG4uZCh0LCJUYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIFplfSkpLG4uZCh0LCJjYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGV0fSkpLG4uZCh0LCJLYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHR0fSkpLG4uZCh0LCJQIiwoZnVuY3Rpb24oKXtyZXR1cm4gbnR9KSksbi5kKHQsIndjIiwoZnVuY3Rpb24oKXtyZXR1cm4gcnR9KSksbi5kKHQsImUiLChmdW5jdGlvbigpe3JldHVybiBvdH0pKSxuLmQodCwiTWIiLChmdW5jdGlvbigpe3JldHVybiBpdH0pKSxuLmQodCwicCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGF0fSkpLG4uZCh0LCJYYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHN0fSkpLG4uZCh0LCJtIiwoZnVuY3Rpb24oKXtyZXR1cm4gdXR9KSksbi5kKHQsIlViIiwoZnVuY3Rpb24oKXtyZXR1cm4gY3R9KSksbi5kKHQsImdiIiwoZnVuY3Rpb24oKXtyZXR1cm4gbHR9KSksbi5kKHQsIk9jIiwoZnVuY3Rpb24oKXtyZXR1cm4gZnR9KSksbi5kKHQsInZiIiwoZnVuY3Rpb24oKXtyZXR1cm4gZHR9KSksbi5kKHQsImpkIiwoZnVuY3Rpb24oKXtyZXR1cm4gcHR9KSksbi5kKHQsInBiIiwoZnVuY3Rpb24oKXtyZXR1cm4gaHR9KSksbi5kKHQsImJkIiwoZnVuY3Rpb24oKXtyZXR1cm4gdnR9KSksbi5kKHQsIlUiLChmdW5jdGlvbigpe3JldHVybiBndH0pKSxuLmQodCwiQmMiLChmdW5jdGlvbigpe3JldHVybiB5dH0pKSxuLmQodCwib2IiLChmdW5jdGlvbigpe3JldHVybiBtdH0pKSxuLmQodCwiYWQiLChmdW5jdGlvbigpe3JldHVybiBidH0pKSxuLmQodCwiVCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHd0fSkpLG4uZCh0LCJBYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIE90fSkpLG4uZCh0LCJpIiwoZnVuY3Rpb24oKXtyZXR1cm4gX3R9KSksbi5kKHQsIlFiIiwoZnVuY3Rpb24oKXtyZXR1cm4gRXR9KSksbi5kKHQsImhiIiwoZnVuY3Rpb24oKXtyZXR1cm4gQ3R9KSksbi5kKHQsIlFjIiwoZnVuY3Rpb24oKXtyZXR1cm4gU3R9KSksbi5kKHQsInliIiwoZnVuY3Rpb24oKXtyZXR1cm4ga3R9KSksbi5kKHQsImxkIiwoZnVuY3Rpb24oKXtyZXR1cm4geHR9KSksbi5kKHQsImJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gQXR9KSksbi5kKHQsIkpjIiwoZnVuY3Rpb24oKXtyZXR1cm4ganR9KSksbi5kKHQsIkFiIiwoZnVuY3Rpb24oKXtyZXR1cm4gVHR9KSksbi5kKHQsIlNjIiwoZnVuY3Rpb24oKXtyZXR1cm4gUHR9KSksbi5kKHQsIm1iIiwoZnVuY3Rpb24oKXtyZXR1cm4gSXR9KSksbi5kKHQsIlljIiwoZnVuY3Rpb24oKXtyZXR1cm4gUnR9KSksbi5kKHQsImtiIiwoZnVuY3Rpb24oKXtyZXR1cm4gRHR9KSksbi5kKHQsIldjIiwoZnVuY3Rpb24oKXtyZXR1cm4gTnR9KSksbi5kKHQsImxiIiwoZnVuY3Rpb24oKXtyZXR1cm4gTHR9KSksbi5kKHQsIlhjIiwoZnVuY3Rpb24oKXtyZXR1cm4gRnR9KSksbi5kKHQsIkZiIiwoZnVuY3Rpb24oKXtyZXR1cm4gTXR9KSksbi5kKHQsIlRjIiwoZnVuY3Rpb24oKXtyZXR1cm4gQnR9KSksbi5kKHQsIk4iLChmdW5jdGlvbigpe3JldHVybiBVdH0pKSxuLmQodCwidyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHp0fSkpLG4uZCh0LCJlYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIFZ0fSkpLG4uZCh0LCJoIiwoZnVuY3Rpb24oKXtyZXR1cm4gSHR9KSksbi5kKHQsIlBiIiwoZnVuY3Rpb24oKXtyZXR1cm4gV3R9KSksbi5kKHQsIkdiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcXR9KSksbi5kKHQsIm9kIiwoZnVuY3Rpb24oKXtyZXR1cm4gJHR9KSksbi5kKHQsIm4iLChmdW5jdGlvbigpe3JldHVybiBZdH0pKSxuLmQodCwiVmIiLChmdW5jdGlvbigpe3JldHVybiBHdH0pKSxuLmQodCwiZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIEt0fSkpLG4uZCh0LCJPYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIFh0fSkpLG4uZCh0LCJZIiwoZnVuY3Rpb24oKXtyZXR1cm4gUXR9KSksbi5kKHQsIkZjIiwoZnVuY3Rpb24oKXtyZXR1cm4gSnR9KSksbi5kKHQsIkUiLChmdW5jdGlvbigpe3JldHVybiBadH0pKSxuLmQodCwibGMiLChmdW5jdGlvbigpe3JldHVybiBlbn0pKSxuLmQodCwiZWIiLChmdW5jdGlvbigpe3JldHVybiB0bn0pKSxuLmQodCwiTWMiLChmdW5jdGlvbigpe3JldHVybiBubn0pKSxuLmQodCwiUyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJufSkpLG4uZCh0LCJ6YyIsKGZ1bmN0aW9uKCl7cmV0dXJuIG9ufSkpLG4uZCh0LCJmYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGFufSkpLG4uZCh0LCJOYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHNufSkpLG4uZCh0LCJGIiwoZnVuY3Rpb24oKXtyZXR1cm4gdW59KSksbi5kKHQsIm1jIiwoZnVuY3Rpb24oKXtyZXR1cm4gY259KSksbi5kKHQsImoiLChmdW5jdGlvbigpe3JldHVybiBsbn0pKSxuLmQodCwiUmIiLChmdW5jdGlvbigpe3JldHVybiBmbn0pKSxuLmQodCwiciIsKGZ1bmN0aW9uKCl7cmV0dXJuIGRufSkpLG4uZCh0LCJaYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHBufSkpLG4uZCh0LCJzIiwoZnVuY3Rpb24oKXtyZXR1cm4gaG59KSksbi5kKHQsImFjIiwoZnVuY3Rpb24oKXtyZXR1cm4gdm59KSksbi5kKHQsImYiLChmdW5jdGlvbigpe3JldHVybiBnbn0pKSxuLmQodCwiTmIiLChmdW5jdGlvbigpe3JldHVybiB5bn0pKTt2YXIgcj1uKDUpLG89bi5uKHIpLGk9bigxMSk7ZnVuY3Rpb24gYShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gcyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9hKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bygpKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTphKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfXZhciB1PSJTRVRfV0lER0VUX01PVU5UX1NUQVRFIjtmdW5jdGlvbiBjKCl7dmFyIGU9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtyZXR1cm57dHlwZTp1LHN0YXR1czplfX12YXIgbD0iUEVSU0lTVEVEX1NUQVRFX0xPQURFRCI7ZnVuY3Rpb24gZihlKXtyZXR1cm57dHlwZTpsLHN0YXRlOmV9fXZhciBkPSJSRVBMQUNFX1NUQVRFX1dJVEhfU0FWRUQiO2Z1bmN0aW9uIHAoZSl7cmV0dXJue3R5cGU6ZCxzdGF0ZTplfX12YXIgaD0iVFJJR0dFUl9SRVBMQUNFX1NUQVRFX1dJVEhfU0FWRUQiO2Z1bmN0aW9uIHYoKXtyZXR1cm57dHlwZTpofX12YXIgZz0iTUVSR0VfVklTSVRPUiI7ZnVuY3Rpb24geShlKXtyZXR1cm57dHlwZTpnLHZpc2l0b3JJZDplfX12YXIgbT0iSU5JVElBTElaRV9WSVNJVE9SX0RBVEEiO2Z1bmN0aW9uIGIoZSl7cmV0dXJue3R5cGU6bSx2aXNpdG9yRGF0YTplfX12YXIgdz0iQ09NUEFSRV9USURJT19JREVOVElGWV9EQVRBIjtmdW5jdGlvbiBPKGUpe3JldHVybnt0eXBlOncsaWRlbnRpZnlEYXRhOmV9fXZhciBfPSJNRVJHRV9WSVNJVE9SX0RBVEFfRlJPTV9JREVOVElGWSI7ZnVuY3Rpb24gRShlKXtyZXR1cm57dHlwZTpfLGRhdGFUb01lcmdlOmV9fXZhciBDPSJTQVZFX1RJRElPX0lERU5USUZZX0RBVEEiO2Z1bmN0aW9uIFMoZSl7cmV0dXJue3R5cGU6QyxpZGVudGlmeURhdGE6ZX19dmFyIGs9IlZJU0lUT1JfUkVHSVNURVJfSU1QT1JUX0RBVEEiO2Z1bmN0aW9uIHgoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmZ1bmN0aW9uKCl7fTtyZXR1cm57dHlwZTprLGRhdGE6ZSxjYWxsYmFjazp0fX12YXIgQT0iU0VUX1BST0pFQ1RfU1RBVFVTIjtmdW5jdGlvbiBqKGUpe3JldHVybnt0eXBlOkEsc3RhdHVzOmV9fXZhciBUPSJTRVRfQ0hBVF9PUEVORURfU1RBVEUiO2Z1bmN0aW9uIFAoZSl7cmV0dXJue3R5cGU6VCxvcGVuOmV9fXZhciBJPSJTRVRfSUZSQU1FX1ZJRVciO2Z1bmN0aW9uIFIoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7cmV0dXJue3R5cGU6SSxpZnJhbWVWaWV3OmUsZGltZW5zaW9uczp0fX12YXIgRD0iU0VUX1dJREdFVF9DT0xPUiI7ZnVuY3Rpb24gTihlKXtyZXR1cm57dHlwZTpELGNvbG9yOmV9fXZhciBMPSJTRVRfRkxBR19TRU5EX01FU1NBR0VfRlJPTV9WSVNJVE9SIjtmdW5jdGlvbiBGKGUpe3JldHVybnt0eXBlOkwsc2hvdWxkU2VuZDplfX12YXIgTT0iU0VUX09QVElPTl9EUk9QRE9XTl9WSVNJQklMSVRZIjtmdW5jdGlvbiBCKGUpe3JldHVybnt0eXBlOk0sdmlzaWJsZTplfX12YXIgVT0iU0VUX05PVElGSUNBVElPTl9TVEFUVVMiO2Z1bmN0aW9uIHooZSl7cmV0dXJue3R5cGU6VSxzdGF0dXM6ZX19dmFyIFY9Ik9QRVJBVE9SX0lTX1RZUElOR19TVEFUVVMiO2Z1bmN0aW9uIEgoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO3JldHVybnt0eXBlOlYsb3BlcmF0b3JJZE9yU3RhdHVzOmV9fXZhciBXPSJWSVNJVE9SX0lTX1RZUElORyI7ZnVuY3Rpb24gcSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIjtyZXR1cm57dHlwZTpXLG1lc3NhZ2U6ZX19dmFyICQ9IkFERF9NRVNTQUdFIjtmdW5jdGlvbiBZKGUpe3JldHVybnt0eXBlOiQsbWVzc2FnZTplfX12YXIgRz0iVVBMT0FEX0ZJTEUiO2Z1bmN0aW9uIEsoZSl7cmV0dXJue3R5cGU6RyxwYXlsb2FkOk9iamVjdChpLm4pKGUpfX12YXIgWD0iVVBEQVRFX0FUVEFDSE1FTlQiO2Z1bmN0aW9uIFEoZSx0LG4scixvLGkpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+NiYmdm9pZCAwIT09YXJndW1lbnRzWzZdJiZhcmd1bWVudHNbNl07cmV0dXJue3R5cGU6WCxtZXNzYWdlSWQ6ZSxhdHRhY2htZW50VHlwZTp0LHVybDpuLG5hbWU6cixleHRlbnNpb246byx0aHVtYjppLGltYWdlTG9hZGVkOmF9fXZhciBKPSJVUERBVEVfQVRUQUNITUVOVF9MT0FERURfU1RBVEUiO2Z1bmN0aW9uIFooZSx0KXtyZXR1cm57dHlwZTpKLG1lc3NhZ2VJZDplLGltYWdlTG9hZGVkOnR9fXZhciBlZT0iU0VORF9NRVNTQUdFX0ZST01fVklTSVRPUiI7ZnVuY3Rpb24gdGUoZSl7dmFyIHQ9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtyZXR1cm57dHlwZTplZSxtZXNzYWdlOmUscGF5bG9hZDpPYmplY3QoaS5vKShlKSxlbWl0OnR9fWZ1bmN0aW9uIG5lKGUsdCl7dmFyIG49dGUoZSwhMCk7cmV0dXJuIHMocyh7fSxuKSx7fSx7cGF5bG9hZDpzKHMoe30sbi5wYXlsb2FkKSx7fSx7cGF5bG9hZDp0fSl9KX12YXIgcmU9Ik9QRVJBVE9SX0FTU0lHTkVEX0RFUEFSVE1FTlQiO2Z1bmN0aW9uIG9lKGUpe3JldHVybnt0eXBlOnJlLGRlcGFydG1lbnRJZDplfX12YXIgaWU9Ik9QRVJBVE9SX0pPSU5FRF9DT05WRVJTQVRJT04iO2Z1bmN0aW9uIGFlKGUpe3JldHVybnt0eXBlOmllLG9wZXJhdG9ySWQ6ZX19dmFyIHNlPSJPUEVSQVRPUl9MRUZUX0NPTlZFUlNBVElPTiI7ZnVuY3Rpb24gdWUoZSl7cmV0dXJue3R5cGU6c2Usb3BlcmF0b3JJZDplfX12YXIgY2U9Ik9QRVJBVE9SX1RSQU5TRkVSUkVEX0NPTlZFUlNBVElPTiI7ZnVuY3Rpb24gbGUoZSx0KXtyZXR1cm57dHlwZTpjZSxzb3VyY2VPcGVyYXRvcklkOmUsdGFyZ2V0T3BlcmF0b3JJZDp0fX12YXIgZmU9Ik9QRVJBVE9SX0NIQU5HRURfU1RBVFVTIjtmdW5jdGlvbiBkZShlLHQpe3JldHVybnt0eXBlOmZlLG9wZXJhdG9ySWQ6ZSxpc09ubGluZTp0fX12YXIgcGU9IlNFVF9CTE9DS0VEX01FU1NBR0UiO2Z1bmN0aW9uIGhlKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7cmV0dXJue3R5cGU6cGUsbWVzc2FnZTplfX12YXIgdmU9IlNFTkRfRklMTEVEX1BSRUNIQVQiO2Z1bmN0aW9uIGdlKGUpe3JldHVybnt0eXBlOnZlLHVwZGF0ZURhdGE6ZX19dmFyIHllPSJTRU5EX0ZJTExFRF9BTFdBWVNfT05MSU5FX01FU1NBR0UiO2Z1bmN0aW9uIG1lKGUpe3JldHVybnt0eXBlOnllLGVtYWlsOmV9fXZhciBiZT0iVklTSVRPUl9TRVRfUkFUSU5HIjtmdW5jdGlvbiB3ZShlKXtyZXR1cm57dHlwZTpiZSxyYXRpbmdJc0dvb2Q6ZX19dmFyIE9lPSJBRERfTkVXX01FU1NBR0VfRU1PSkkiO2Z1bmN0aW9uIF9lKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7cmV0dXJue3R5cGU6T2UsZW1vamk6ZX19dmFyIEVlPSJUT0dHTEVfRU1PSklfUEFORUwiO2Z1bmN0aW9uIENlKGUpe3JldHVybnt0eXBlOkVlLHN0YXR1czplfX12YXIgU2U9IlZJU0lUT1JfTUVTU0FHRV9ERUxJVkVSWV9TVEFUVVMiO2Z1bmN0aW9uIGtlKGUsdCxuKXtyZXR1cm57dHlwZTpTZSxtZXNzYWdlSWQ6ZSxpZEZyb21TZXJ2ZXI6dCxzdGF0dXM6bn19dmFyIHhlPSJTRVRfTUVTU0FHRV9ESVNBQkxFRF9TVEFURSI7ZnVuY3Rpb24gQWUoZSl7cmV0dXJue3R5cGU6eGUsbWVzc2FnZUlkT3JBcnJheU9mSWRzOmV9fXZhciBqZT0iU0VORF9SQVRFX0NPTlZFUlNBVElPTl9DT01NRU5UIjtmdW5jdGlvbiBUZShlLHQpe3JldHVybnt0eXBlOmplLG1lc3NhZ2VJZDplLGNvbW1lbnQ6dH19dmFyIFBlPSJWSVNJVE9SX1VQREFURV9EQVRBIjtmdW5jdGlvbiBJZShlKXt2YXIgdD0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3JldHVybnt0eXBlOlBlLHVwZGF0ZURhdGE6ZSxlbWl0OnR9fXZhciBSZT0iVklTSVRPUl9BRERfVEFHUyI7ZnVuY3Rpb24gRGUoZSl7cmV0dXJue3R5cGU6UmUsdGFnczplfX12YXIgTmU9IlNFVF9DT05UQUNUX1BST1BFUlRJRVMiO2Z1bmN0aW9uIExlKGUpe3JldHVybnt0eXBlOk5lLHByb3BlcnRpZXM6ZX19dmFyIEZlPSJNRVJHRV9GRVRDSEVEX01FU1NBR0VTIjtmdW5jdGlvbiBNZShlLHQpe3JldHVybnt0eXBlOkZlLG1lc3NhZ2VzVG9NZXJnZTplLGxhc3RNZXNzYWdlSWQ6dH19dmFyIEJlPSJCT1RTX0dFVF9TVEFSVEVEIjtmdW5jdGlvbiBVZSgpe3JldHVybnt0eXBlOkJlfX12YXIgemU9IlNIT1dfQUxFUlQiO2Z1bmN0aW9uIFZlKGUpe3JldHVybnt0eXBlOnplLG1lc3NhZ2U6ZX19dmFyIEhlPSJISURFX0FMRVJUIjtmdW5jdGlvbiBXZSgpe3JldHVybnt0eXBlOkhlfX12YXIgcWU9IlJFTU9WRV9NRVNTQUdFIjtmdW5jdGlvbiAkZShlKXtyZXR1cm57dHlwZTpxZSxtZXNzYWdlSWQ6ZX19ZnVuY3Rpb24gWWUoZSx0KXtyZXR1cm57dHlwZToiVElESU9DSEFUQVBJX0ZVTkNUSU9OX0NBTEwiLGZ1bmN0aW9uTmFtZTplLGFyZ3M6dH19dmFyIEdlPSJUSURJT0NIQVRBUElfVFJBQ0siO2Z1bmN0aW9uIEtlKGUsdCxuKXtyZXR1cm57dHlwZTpHZSxldmVudE5hbWU6ZSxldmVudERhdGE6dCxzdWNjZXNzQ2FsbGJhY2s6bn19dmFyIFhlPSJCT1RfVFJJR0dFUiI7ZnVuY3Rpb24gUWUoZSl7cmV0dXJue3R5cGU6WGUsaWRzOmV9fXZhciBKZT0iREFUQV9JTVBPUlRFRF9GUk9NX09MRF9XSURHRVQiO2Z1bmN0aW9uIFplKCl7cmV0dXJue3R5cGU6SmV9fXZhciBldD0iU0VUX1BSRVZJRVdfREFUQSI7ZnVuY3Rpb24gdHQoZSx0KXtyZXR1cm57dHlwZTpldCxwcm9wOmUscGF5bG9hZDp0fX12YXIgbnQ9IlNFVF9CT1RfU1RBVFVTIjtmdW5jdGlvbiBydCgpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07cmV0dXJue3R5cGU6bnQsaXNBY3RpdmU6ZX19dmFyIG90PSJDQU5DRUxfQk9UUyI7ZnVuY3Rpb24gaXQoKXtyZXR1cm57dHlwZTpvdH19dmFyIGF0PSJISURFX0hFQURFUiI7ZnVuY3Rpb24gc3QoKXt2YXIgZT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO3JldHVybnt0eXBlOmF0LHN0YXR1czplfX12YXIgdXQ9IkRJU0FCTEVfQk9UX0FOSU1BVElPTiI7ZnVuY3Rpb24gY3QoKXt2YXIgZT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO3JldHVybnt0eXBlOnV0LHN0YXR1czplfX12YXIgbHQ9IlNFVF9WSUVXIjtmdW5jdGlvbiBmdChlKXtyZXR1cm57dHlwZTpsdCx2aWV3OmV9fXZhciBkdD0iVVBEQVRFX1ZJU0lUT1JfVVJMIjtmdW5jdGlvbiBwdChlKXtyZXR1cm57dHlwZTpkdCx1cmw6ZX19dmFyIGh0PSJTSE9XX1VTRVJfREFUQV9NT0RBTCI7ZnVuY3Rpb24gdnQoZSl7cmV0dXJue3R5cGU6aHQsbW9kYWw6ZX19dmFyIGd0PSJTRVRfRkVBVFVSRVNfRlJPTV9BUEkiO2Z1bmN0aW9uIHl0KGUpe3JldHVybnt0eXBlOmd0LGZlYXR1cmVzOmV9fXZhciBtdD0iU0hPV19PTERFUl9NRVNTQUdFUyI7ZnVuY3Rpb24gYnQoZSl7cmV0dXJue3R5cGU6bXQsc3RhdHVzOmV9fXZhciB3dD0iU0VUX0RSQUdfQU5EX0RST1BfU1RBVFVTIjtmdW5jdGlvbiBPdChlKXtyZXR1cm57dHlwZTp3dCxzdGF0dXM6ZX19dmFyIF90PSJDTE9TRV9TT0NLRVRfQ09OTkVDVElPTiI7ZnVuY3Rpb24gRXQoKXtyZXR1cm57dHlwZTpfdH19dmFyIEN0PSJTRVRfVklTSVRPUl9NRVJHRURfRU1JVF9RVUVVRSI7ZnVuY3Rpb24gU3QoZSl7cmV0dXJue3R5cGU6Q3QsY2FsbGJhY2s6ZX19dmFyIGt0PSJWSVNJVE9SX0NMSUNLU19PTl9DSEFUX0lDT04iO2Z1bmN0aW9uIHh0KCl7cmV0dXJue3R5cGU6a3R9fXZhciBBdD0iU0VUX1BBR0VfVklTSUJMSVRZX1NUQVRVUyI7ZnVuY3Rpb24ganQoZSl7cmV0dXJue3R5cGU6QXQsc3RhdHVzOmV9fXZhciBUdD0iVklTSVRPUl9NQVJLX01FU1NBR0VTX0FTX1JFQUQiO2Z1bmN0aW9uIFB0KCl7cmV0dXJue3R5cGU6VHR9fXZhciBJdD0iU0hPUElGWV9PUkRFUl9DUkVBVEVEIjtmdW5jdGlvbiBSdChlKXtyZXR1cm57dHlwZTpJdCxwYXJhbXM6ZX19dmFyIER0PSJTSE9QSUZZX0NBUlRfVE9LRU5fVVBEQVRFRCI7ZnVuY3Rpb24gTnQoZSl7cmV0dXJue3R5cGU6RHQscGFyYW1zOmV9fXZhciBMdD0iU0hPUElGWV9DSEVDS09VVF9DUkVBVEVEIjtmdW5jdGlvbiBGdChlKXtyZXR1cm57dHlwZTpMdCxwYXJhbXM6ZX19dmFyIE10PSJWSVNJVE9SX1dJREdFVF9QT1NJVElPTiI7ZnVuY3Rpb24gQnQoZSl7cmV0dXJue3R5cGU6TXQscGFyYW1zOmV9fXZhciBVdD0iU0VUX0FXRVNPTUVfSUZSQU1FIjt2YXIgenQ9Ik9QRU4tSU1BR0UtUE9QVVAiO2Z1bmN0aW9uIFZ0KGUpe3JldHVybnt0eXBlOnp0LGltYWdlOmV9fXZhciBIdD0iQ0xPU0UtSU1BR0UtUE9QVVAiO2Z1bmN0aW9uIFd0KCl7cmV0dXJue3R5cGU6SHR9fXZhciBxdD0iV0lER0VULUFDVElWSVRZLVRSQUNLSU5HIjtmdW5jdGlvbiAkdChlLHQpe3JldHVybnt0eXBlOnF0LGV2ZW50OmUsYWRkaXRpb25hbERhdGE6dH19dmFyIFl0PSJGRVRDSC1TSE9QSUZZLUNBUlQtQ09OVEVOVCI7ZnVuY3Rpb24gR3QoKXtyZXR1cm57dHlwZTpZdH19dmFyIEt0PSJDTEVBUi1TSE9QSUZZLUNBUlQtQVRUUklCVVRFUyI7ZnVuY3Rpb24gWHQoKXtyZXR1cm57dHlwZTpLdH19dmFyIFF0PSJTRVQtTUVTU0FHRS1GT1ItRkxZIjtmdW5jdGlvbiBKdChlKXtyZXR1cm57dHlwZTpRdCxtZXNzYWdlOmV9fXZhciBadD0iUkFURS1DSEFULUJPVCI7ZnVuY3Rpb24gZW4oZSx0LG4pe3JldHVybnt0eXBlOlp0LG1lc3NhZ2VJZDplLHJhdGluZ0lkOnQscmF0aW5nOm59fXZhciB0bj0iU0VUX1JFQ09OTkVDVElPTl9BVFRFTVBUX0NPVU5UIjtmdW5jdGlvbiBubihlKXtyZXR1cm57dHlwZTp0bixjb3VudDplfX12YXIgcm49IlNFVF9ESVNBQkxFX1RFWFRfSU5QVVQiO2Z1bmN0aW9uIG9uKGUpe3JldHVybnt0eXBlOnJuLHN0YXR1czplfX12YXIgYW49IlNFVC1TQVRJU0ZBQ1RJT04tU1VSVkVZLUNPTkZJRyI7ZnVuY3Rpb24gc24oZSx0LG4pe3JldHVybnt0eXBlOmFuLGNvbmZpZzplLHRocmVhZElkOnQsbWVzc2FnZUlkOm59fXZhciB1bj0iUkFURS1TQVRJU0ZBQ1RJT04tU1VSVkVZIjtmdW5jdGlvbiBjbihlLHQsbil7cmV0dXJue3R5cGU6dW4scmF0aW5nOmUsdGhyZWFkSWQ6dCxtZXNzYWdlSWQ6bn19dmFyIGxuPSJDT01NRU5ULVNBVElTRkFDVElPTi1TVVJWRVkiO2Z1bmN0aW9uIGZuKGUsdCxuKXtyZXR1cm57dHlwZTpsbixjb21tZW50OmUsdGhyZWFkSWQ6dCxtZXNzYWdlSWQ6bn19dmFyIGRuPSJKVURHRV9NRV9SQVRJTkdfQ0xJQ0siO2Z1bmN0aW9uIHBuKGUpe3JldHVybnt0eXBlOmRuLHJhdGluZzplfX12YXIgaG49IkpVREdFX01FX1JFVklFV19TRU5UIjtmdW5jdGlvbiB2bihlKXtyZXR1cm57dHlwZTpobixyYXRpbmc6ZX19dmFyIGduPSJDQVJUX1ZBTFVFX0NIQU5HRURfU0VOVCI7ZnVuY3Rpb24geW4oZSl7cmV0dXJue3R5cGU6Z24sZXZlbnREYXRhOmV9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiaCIsKGZ1bmN0aW9uKCl7cmV0dXJuIG19KSksbi5kKHQsInkiLChmdW5jdGlvbigpe3JldHVybiB3fSkpLG4uZCh0LCJBIiwoZnVuY3Rpb24oKXtyZXR1cm4gX30pKSxuLmQodCwieiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEN9KSksbi5kKHQsIkIiLChmdW5jdGlvbigpe3JldHVybiBrfSkpLG4uZCh0LCJzIiwoZnVuY3Rpb24oKXtyZXR1cm4geH0pKSxuLmQodCwieCIsKGZ1bmN0aW9uKCl7cmV0dXJuIEF9KSksbi5kKHQsImwiLChmdW5jdGlvbigpe3JldHVybiBqfSkpLG4uZCh0LCJvIiwoZnVuY3Rpb24oKXtyZXR1cm4gVH0pKSxuLmQodCwiRCIsKGZ1bmN0aW9uKCl7cmV0dXJuIFB9KSksbi5kKHQsIkkiLChmdW5jdGlvbigpe3JldHVybiBJfSkpLG4uZCh0LCJyIiwoZnVuY3Rpb24oKXtyZXR1cm4gUn0pKSxuLmQodCwiZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIER9KSksbi5kKHQsIk0iLChmdW5jdGlvbigpe3JldHVybiBOfSkpLG4uZCh0LCJ0IiwoZnVuY3Rpb24oKXtyZXR1cm4gTH0pKSxuLmQodCwiZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIEZ9KSksbi5kKHQsImoiLChmdW5jdGlvbigpe3JldHVybiBVfSkpLG4uZCh0LCJrIiwoZnVuY3Rpb24oKXtyZXR1cm4gen0pKSxuLmQodCwiaSIsKGZ1bmN0aW9uKCl7cmV0dXJuIFZ9KSksbi5kKHQsIkciLChmdW5jdGlvbigpe3JldHVybiBIfSkpLG4uZCh0LCJIIiwoZnVuY3Rpb24oKXtyZXR1cm4gV30pKSxuLmQodCwidSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHF9KSksbi5kKHQsInciLChmdW5jdGlvbigpe3JldHVybiAkfSkpLG4uZCh0LCJkIiwoZnVuY3Rpb24oKXtyZXR1cm4gWX0pKSxuLmQodCwidiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEd9KSksbi5kKHQsImYiLChmdW5jdGlvbigpe3JldHVybiBLfSkpLG4uZCh0LCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gWH0pKSxuLmQodCwiTCIsKGZ1bmN0aW9uKCl7cmV0dXJuIFF9KSksbi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBKfSkpLG4uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gWn0pKSxuLmQodCwicCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGVlfSkpLG4uZCh0LCJuIiwoZnVuY3Rpb24oKXtyZXR1cm4gdGV9KSksbi5kKHQsIm0iLChmdW5jdGlvbigpe3JldHVybiBuZX0pKSxuLmQodCwiSyIsKGZ1bmN0aW9uKCl7cmV0dXJuIG9lfSkpLG4uZCh0LCJxIiwoZnVuY3Rpb24oKXtyZXR1cm4gaWV9KSksbi5kKHQsIkUiLChmdW5jdGlvbigpe3JldHVybiBhZX0pKSxuLmQodCwiQyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHNlfSkpLG4uZCh0LCJKIiwoZnVuY3Rpb24oKXtyZXR1cm4gdWV9KSksbi5kKHQsIk8iLChmdW5jdGlvbigpe3JldHVybiBjZX0pKSxuLmQodCwiRiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGxlfSkpLG4uZCh0LCJOIiwoZnVuY3Rpb24oKXtyZXR1cm4gZmV9KSk7bigzNiksbigzNyksbigzOSksbig1OCksbig2OSksbigxNjApLG4oNTUpLG4oMTYxKSxuKDU3KSxuKDg2KSxuKDg0KSxuKDEwOSksbigyNTMpLG4oMTExKSxuKDEyNyksbigzMiksbigxMjYpLG4oNTkpLG4oMTQzKSxuKDg5KSxuKDIxMSksbigyNTgpLG4oMTU5KTt2YXIgcj1uKDUyKSxvPW4ubihyKSxpPW4oNSksYT1uLm4oaSkscz1uKDE5KSx1PW4ubihzKSxjPW4oMTUxKSxsPW4ubihjKSxmPW4oMzEpLGQ9bi5uKGYpLHA9bigzKSxoPW4oNik7ZnVuY3Rpb24gdihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj92KE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7YSgpKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp2KE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIHkoZSl7dHJ5e2lmKGUudGlkaW9DaGF0Q29kZSlyZXR1cm4gZS50aWRpb0NoYXRDb2RlfWNhdGNoKHQpe3JldHVybiExfXJldHVybiExfWZ1bmN0aW9uIG0oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d2luZG93LnBhcmVudC5kb2N1bWVudDt0cnl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0iY29kZS50aWRpby5jbyJdJyk7aWYodHx8KHQ9ZS5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0iY29kZS50aWRpbyJdLHNjcmlwdFtzcmMqPSJjb2RlIl1bc3JjKj0idGlkaW8iXSxzY3JpcHRbc3JjKj0idXBsb2Fkcy9yZWRpcmVjdCJdW3NyYyo9InRpZGlvIl0nKSksbnVsbD09PXQpe3ZhciBuPXkoZSk7cmV0dXJuIG58fCExfXZhciByPS8oW2EtejAtOV0rKShcLmpzfCQpL2csbz1yLmV4ZWModC5zcmMpO3JldHVybiEoIW98fDA9PT1vLmxlbmd0aHx8MzIhPT1vWzFdLmxlbmd0aCkmJm9bMV19Y2F0Y2goaSl7cmV0dXJuIE9iamVjdChoLmEpKGkpLCExfX12YXIgYj1udWxsO2Z1bmN0aW9uIHcoKXtpZihudWxsPT09Yil0cnl7Yj0hMD09PXdpbmRvdy5wYXJlbnQuZG9jdW1lbnQudGlkaW9DaGF0UHJldmlld01vZGV9Y2F0Y2goZSl7T2JqZWN0KGguYSkoZSksYj0hMX1yZXR1cm4gYn12YXIgTz1udWxsO2Z1bmN0aW9uIF8oKXtpZihudWxsPT09Tyl0cnl7Tz0hMD09PXdpbmRvdy5wYXJlbnQuZG9jdW1lbnQudGlkaW9DaGF0VGVzdGluZ01vZGV9Y2F0Y2goZSl7T2JqZWN0KGguYSkoZSksTz0hMX1yZXR1cm4gT312YXIgRT1udWxsO2Z1bmN0aW9uIEMoKXt0cnl7dmFyIGU9d2luZG93LnBhcmVudC5kb2N1bWVudDtudWxsPT09RSYmKEU9Qm9vbGVhbihlLnRpZGlvU2FuZGJveCYmT2JqZWN0LmtleXMoZS50aWRpb1NhbmRib3gpLmxlbmd0aD4wKSl9Y2F0Y2godCl7RT0hMX1yZXR1cm4gRX12YXIgUz1udWxsO2Z1bmN0aW9uIGsoKXt0cnl7dmFyIGU7aWYobnVsbD09PVMpUz1Cb29sZWFuKG51bGw9PT0oZT13aW5kb3cucGFyZW50LmRvY3VtZW50LnRpZGlvQ2hhdFByZXZpZXdNb2RlRGF0YSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuaXNJblRvdXIpfWNhdGNoKHQpe09iamVjdChoLmEpKHQpLFM9ITF9cmV0dXJuIFN9ZnVuY3Rpb24geCgpe3JldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LnRpZGlvU2FuZGJveHx8e319ZnVuY3Rpb24gQSgpe3RyeXtyZXR1cm4hMD09PXdpbmRvdy5wYXJlbnQuZG9jdW1lbnQudGlkaW9DaGF0T25TaXRlfWNhdGNoKGUpe3JldHVybiBPYmplY3QoaC5hKShlKSwhMX19ZnVuY3Rpb24gaigpe3JldHVybiBkKCkoKS5yZXBsYWNlKC8tL2csIiIpfWZ1bmN0aW9uIFQoKXtyZXR1cm4gTWF0aC5mbG9vcigobmV3IERhdGUpLmdldFRpbWUoKS8xZTMpfWZ1bmN0aW9uIFAoKXtpZih3KCkmJmsoKSlyZXR1cm4hMTt0cnl7cmV0dXJuIEJvb2xlYW4obmF2aWdhdG9yLnVzZXJBZ2VudCYmL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIEkoKXt0cnl7cmV0dXJuLTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJpUGFkIil9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIFIoKXt2YXIgZT1wLmYuVU5LTk9XTjtyZXR1cm4tMSE9PW5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoIldpbiIpP2U9cC5mLldJTkRPV1M6LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJBbmRyb2lkIik/ZT1wLmYuQU5EUk9JRDotMSE9PW5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoImlQYWQiKXx8LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJpUGhvbmUiKT9lPXAuZi5JT1M6LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNYWMiKT9lPXAuZi5PU1g6LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJYMTEiKT9lPXAuZi5VTklYOi0xIT09bmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTGludXgiKSYmKGU9cC5mLkxJTlVYKSx7bmFtZTplLHZlcnNpb246IiJ9fWZ1bmN0aW9uIEQoZSl7cmV0dXJuIGwoKShlKX1mdW5jdGlvbiBOKGUsdCl7aWYodSgpKGUpIT09dSgpKHQpKXJldHVybiExO3ZhciBuPU9iamVjdC5rZXlzKGUpLHI9T2JqZWN0LmtleXModCk7aWYobi5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG8gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSYmZVtvXSE9PXRbb10pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gTCgpe3RyeXtmb3IodmFyIGU9d2luZG93LHQ9bnVsbCxuPTA7IXQmJm48MyYmKHQ9ZS5kb2N1bWVudC50aWRpb0lkZW50aWZ5LGUhPT13aW5kb3cudG9wKTspdHx8KGU9d2luZG93LnBhcmVudCksbis9MTtyZXR1cm4gdCYmIm9iamVjdCI9PT11KCkodCkmJnR8fG51bGx9Y2F0Y2gocil7cmV0dXJuIE9iamVjdChoLmEpKHIpLG51bGx9fXZhciBGPXtkaXN0aW5jdF9pZDpudWxsLGVtYWlsOiIiLG5hbWU6IiIscGhvbmU6IiIsdGFnczpudWxsfSxNPXtwcm9wZXJ0aWVzOnt9LGVtYWlsQ29uc2VudDohMH07ZnVuY3Rpb24gQihlLHQpe3ZhciBuPXQucmVkdWNlKChmdW5jdGlvbih0LG4pe3JldHVybiBnKGcoe30sdCkse30sYSgpKHt9LG4sZVtuXSkpfSkse30pO3JldHVybiAwIT09T2JqZWN0LmtleXMobikubGVuZ3RoJiZufWZ1bmN0aW9uIFUoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307cmV0dXJuISFlJiZCKGUsT2JqZWN0LmtleXMoZSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmtleXMoRikuaW5jbHVkZXModCkmJkJvb2xlYW4oZVt0XSl9KSkpfWZ1bmN0aW9uIHooKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307cmV0dXJuISFlJiZCKGUsT2JqZWN0LmtleXMoZSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm5bXS5jb25jYXQobygpKE9iamVjdC5rZXlzKEYpKSxvKCkoT2JqZWN0LmtleXMoTSkpKS5pbmNsdWRlcyhlKX0pKSl9ZnVuY3Rpb24gVigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtpZighZSlyZXR1cm4hMTt2YXIgdD17d2lkZ2V0TGFiZWxTdGF0dXM6ITEsbW9iaWxlSGFzaDohMSxhbGxvd0F0dGFjaG1lbnRzOiExLGN1c3RvbUJyYW5kaW5nOiExLHByZWNoYXRTdWJzY3JpcHRpb25DaGVja2JveERlZmF1bHRWYWx1ZTohMX07cmV0dXJuIEIoZSxPYmplY3Qua2V5cyhlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBvKCkoT2JqZWN0LmtleXModCkpLmluY2x1ZGVzKGUpfSkpKX1mdW5jdGlvbiBIKGUpe2lmKC0xPT09ZS5pbmRleE9mKCJAIil8fC0xPT09ZS5pbmRleE9mKCIuIikpcmV0dXJuITE7cmV0dXJuL14oKFtePD4oKVxbXF1cXC4sOzpcc0AiXSsoXC5bXjw+KClcW1xdXFwuLDs6XHNAIl0rKSopfCgiLisiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31dKXwoKFthLXpBLVpcLTAtOV0rXC4pK1thLXpBLVpdezIsfSkpJC8udGVzdChlKX12YXIgVz1mdW5jdGlvbihlKXtyZXR1cm4vXihcKz9cZCtbIC1dPyk/KFwoXGQrXCkpPyggP1wvID8pPyhbXHMtLl0/XGR7MSw1fSl7NSx9LipcZCQvLnRlc3QoZXx8IiIpfSxxPWZ1bmN0aW9uKCl7dHJ5e3ZhciBlPXdpbmRvdy5wYXJlbnQuZG9jdW1lbnQ7aWYoZS50aWRpb0NoYXRMYW5nKXt2YXIgdD1lLnRpZGlvQ2hhdExhbmc7aWYoInN0cmluZyI9PT10eXBlb2YgdClyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXJldHVybiBuYXZpZ2F0b3IubGFuZ3VhZ2UmJiJzdHJpbmciPT09dHlwZW9mIG5hdmlnYXRvci5sYW5ndWFnZT9uYXZpZ2F0b3IubGFuZ3VhZ2UudG9Mb3dlckNhc2UoKTpuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZBcnJheS5pc0FycmF5KG5hdmlnYXRvci5sYW5ndWFnZXMpJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aD4wP25hdmlnYXRvci5sYW5ndWFnZXNbMF0udG9Mb3dlckNhc2UoKToiZW4ifWNhdGNoKG4pe3JldHVybiBPYmplY3QoaC5hKShuKSwiZW4ifX07ZnVuY3Rpb24gJChlKXtpZihlWzBdPT09ZVsxXXx8NCE9PWUubGVuZ3RoKXJldHVybltlWzBdLGVbMF0sZVsyXXx8IiNmZmYiLCIjMDIwNjEwIl07dmFyIHQ9W1siIzBhMGU4OCIsIiMwMGIxY2UiLCIjZmZmIiwiIzAyMDYxMCJdLFsiIzE5MDI1YyIsIiM2ZTI4YmYiLCIjZmZmIiwiIzAyMDYxMCJdLFsiIzMxMDAzZSIsIiNjMzI4NmUiLCIjZmZmIiwiIzAyMDYxMCJdLFsiIzk4MDMzYSIsIiNmNzRmMjgiLCIjZmZmIiwiIzAyMDYxMCJdLFsiIzA0N2M4ZCIsIiMyZmYyODkiLCIjZmZmIiwiIzAyMDYxMCJdXTtzd2l0Y2goZVswXSl7Y2FzZSIjMDA0OGVhIjpyZXR1cm4gdFswXTtjYXNlIiM3ZDJkZmYiOnJldHVybiB0WzFdO2Nhc2UiI2IyMmNkNCI6cmV0dXJuIHRbMl07Y2FzZSIjZjcyNzQ5IjpyZXR1cm4gdFszXTtjYXNlIiMwMGI2YmYiOnJldHVybiB0WzRdO2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIFkoZSl7aWYoZVswXT09PWVbMV0pcmV0dXJuIGU7dmFyIHQsbj1bWyIjMDA0OGVhIiwiIzFjZTJmZiJdLFsiIzdkMmRmZiIsIiMxZjZlZmYiXSxbIiNiMjJjZDQiLCIjZjAzOTdhIl0sWyIjZjcyNzQ5IiwiI2Y3ODMyMCJdLFsiIzAwYjZiZiIsIiM5YmU2OGQiXV0scj1bIiMwYTBlODgiLCIjMTkwMjVjIiwiIzMxMDAzZSIsIiM5ODAzM2EiLCIjMDQ3YzhkIl07c3dpdGNoKGVbMF0pe2Nhc2UgclswXTp0PW5bMF07YnJlYWs7Y2FzZSByWzFdOnQ9blsxXTticmVhaztjYXNlIHJbMl06dD1uWzJdO2JyZWFrO2Nhc2UgclszXTp0PW5bM107YnJlYWs7Y2FzZSByWzRdOnQ9bls0XTticmVhaztkZWZhdWx0OnQ9W2VbMF0sZVsxXV19cmV0dXJuW3RbMF0sdFsxXSxlWzJdLGVbM11dfWZ1bmN0aW9uIEcoZSx0KXt2YXIgbj1lO3RyeXt2YXIgcjtyZXR1cm4icmdiYSgiLmNvbmNhdChudWxsPT09KHI9KG49bi5yZXBsYWNlKCIjIiwiIikpLm1hdGNoKG5ldyBSZWdFeHAoIigueyIuY29uY2F0KG4ubGVuZ3RoLzMsIn0pIiksImciKSkpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KG4ubGVuZ3RoJTI/ZStlOmUsMTYpfSkpLmNvbmNhdCh0fHwxKS5qb2luKCIsIiksIikiKXx8ZX1jYXRjaChvKXtyZXR1cm4gT2JqZWN0KGguYSkobyksbn19ZnVuY3Rpb24gSyhlLHQpe3RyeXt2YXIgbj1TdHJpbmcoZSkucmVwbGFjZSgvW14wLTlhLWZdL2dpLCIiKTtuLmxlbmd0aDw2JiYobj1uWzBdK25bMF0rblsxXStuWzFdK25bMl0rblsyXSk7dmFyIHIsbz10fHwwLGk9IiMiLGE9MDtmb3IoYT0wO2E8MzthKz0xKXI9cGFyc2VJbnQobi5zdWJzdHIoMiphLDIpLDE2KSxyPU1hdGgucm91bmQoTWF0aC5taW4oTWF0aC5tYXgoMCxyK3IqbyksMjU1KSkudG9TdHJpbmcoMTYpLGkrPSIwMCIuY29uY2F0KHIpLnN1YnN0cihyLmxlbmd0aCk7cmV0dXJuIGl9Y2F0Y2gocyl7cmV0dXJuIE9iamVjdChoLmEpKHMpLGV9fXZhciBYPWZ1bmN0aW9uKGUpe3RyeXtpZih3aW5kb3cucGFyZW50KWlmKCJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LnBhcmVudC5vbnBvcHN0YXRlKXt2YXIgdD13aW5kb3cucGFyZW50Lm9ucG9wc3RhdGU7d2luZG93LnBhcmVudC5vbnBvcHN0YXRlPWZ1bmN0aW9uKCl7aWYoZSgpLCJmdW5jdGlvbiI9PT10eXBlb2YgdCl7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkobiksbz0wO288bjtvKyspcltvXT1hcmd1bWVudHNbb107dChyKX19fWVsc2V7dmFyIG49d2luZG93LnBhcmVudC5vbmhhc2hjaGFuZ2U7d2luZG93LnBhcmVudC5vbmhhc2hjaGFuZ2U9ZnVuY3Rpb24oKXtpZihlKCksImZ1bmN0aW9uIj09PXR5cGVvZiBuKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheSh0KSxvPTA7bzx0O28rKylyW29dPWFyZ3VtZW50c1tvXTtuKHIpfX19dmFyIHI9d2luZG93Lm9ucHVzaHN0YXRlO3dpbmRvdy5vbnB1c2hzdGF0ZT1mdW5jdGlvbigpe2lmKGUoKSwiZnVuY3Rpb24iPT09dHlwZW9mIHIpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHQpLG89MDtvPHQ7bysrKW5bb109YXJndW1lbnRzW29dO3Iobil9fX1jYXRjaChvKXtPYmplY3QoaC5hKSgiQ2FuJ3QgYWNjZXNzIHdpbmRvdy5wYXJlbnQgd2hlbiB0cnlpbmcgdG8gYWRkIFNQQSBhY3Rpb25zIix7ZTpvfSl9fSxRPXt3b3JkcHJlc3M6IndvcmRwcmVzcyIsc2hvcGlmeToic2hvcGlmeSIsd2l4OiJ3aXgiLG90aGVyczoib3RoZXJzIn0sSj0oT2JqZWN0LnZhbHVlcyhRKSwiYm9vbGVhbiI9PT10eXBlb2YgUFJPRFVDVElPTl9ERVZFTE9QTUVOVF9CVUlMRCYmITA9PT1QUk9EVUNUSU9OX0RFVkVMT1BNRU5UX0JVSUxEKSxaPUo/IiIuY29uY2F0KCJodHRwczovL3dpZGdldC12NC50aWRpb2NoYXQuY29tLyIsIi9kaXN0LyIpOiJodHRwczovL3dpZGdldC12NC50aWRpb2NoYXQuY29tLyIsZWU9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQudGlkaW9Mb2NhdGlvblVSTD93aW5kb3cucGFyZW50LmRvY3VtZW50LnRpZGlvTG9jYXRpb25VUkw6d2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmfWNhdGNoKGUpe3JldHVybiIifX0sdGU9ZnVuY3Rpb24oKXt0cnl7dmFyIGU7aWYod2luZG93LnBhcmVudC5kb2N1bWVudC50aWRpb0xvY2F0aW9uVVJMKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIHQuaHJlZj13aW5kb3cucGFyZW50LmRvY3VtZW50LnRpZGlvTG9jYXRpb25VUkwsdC5ob3N0bmFtZX12YXIgbj1udWxsPT09KGU9d2luZG93LnRvcCl8fHZvaWQgMD09PWU/dm9pZCAwOmUubG9jYXRpb247cmV0dXJuIG4/IiIuY29uY2F0KG4uaG9zdG5hbWUpOiIifWNhdGNoKHIpe3JldHVybiIifX0sbmU9ZnVuY3Rpb24oKXt2YXIgZSx0PW5hdmlnYXRvcixuPXQuYXBwTmFtZSxyPXQudXNlckFnZW50LG89ci5tYXRjaCgvKGNyaW9zfG9wZXJhfGNocm9tZXxzYWZhcml8ZmlyZWZveHxtc2llfHRyaWRlbnQoPz1cLykpXC8/XHMqKFxkKykvaSk7dHJ5e3JldHVybiBvJiYvdHJpZGVudC9pLnRlc3QocikmJihlPS9cYnJ2WyA6XSsoXGQrKS9nLmV4ZWMocil8fFtdLG9bMV09IklFIixvWzJdPWVbMV18fCIiKSxvJiYiQ2hyb21lIj09PW9bMV0mJm51bGwhPT0oZT1yLm1hdGNoKC9cYihPUFJ8RWRnZSlcLyhcZCspLykpJiYoZVsxXT1lWzFdLnJlcGxhY2UoIk9QUiIsIk9wZXJhIiksbz1lKSxvJiYiQ3JpT1MiPT09b1sxXSYmKG9bMV09IkNocm9tZSIpLGU9ci5tYXRjaCgvdmVyc2lvblwvKFsuXGRdKykvaSksbyYmbnVsbCE9PWUmJihvWzJdPWVbMV0pLHtuYW1lOihvPW8/W29bMV0sb1syXV06WyIiLmNvbmNhdChuLCItPyIpLG5hdmlnYXRvci5hcHBWZXJzaW9uXSlbMF0sdmVyc2lvbjpwYXJzZUZsb2F0KG9bMV0pfX1jYXRjaChpKXtyZXR1cm57bmFtZToiIix2ZXJzaW9uOjB9fX0scmU9L14oPzpcdytzY3JpcHR8ZGF0YSk6L2ksb2U9ZnVuY3Rpb24gZSh0KXtpZighdHx8cmUudGVzdCh0LnRyaW0oKSkpcmV0dXJuIG51bGw7dHJ5e2lmKCF0LmluY2x1ZGVzKCJodHRwOi8vIikmJiF0LmluY2x1ZGVzKCJodHRwczovLyIpJiYhdC5zdGFydHNXaXRoKCIvLyIpKXJldHVybiBlKCJodHRwczovLyIuY29uY2F0KHQpKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIG4uaHJlZj10LHtwcm90b2NvbDpuLnByb3RvY29sLGhvc3Q6bi5ob3N0LHBhdGhuYW1lOm4ucGF0aG5hbWUsc2VhcmNoOm4uc2VhcmNoLGhhc2g6bi5oYXNofX1jYXRjaChyKXtyZXR1cm4gbnVsbH19LGllPWZ1bmN0aW9uKGUpe3ZhciB0PW9lKGUpO3JldHVybiB0PyIiLmNvbmNhdCh0LnByb3RvY29sLCIvLyIpLmNvbmNhdCh0Lmhvc3QpLmNvbmNhdCh0LnBhdGhuYW1lKS5jb25jYXQodC5zZWFyY2gpLmNvbmNhdCh0Lmhhc2gpOiIifSxhZT1mdW5jdGlvbihlLHQpe2lmKCFlfHwhdClyZXR1cm4hMTt0cnl7dmFyIG49b2UoZSkscj1vZSh0KTtyZXR1cm4obnVsbD09PW58fHZvaWQgMD09PW4/dm9pZCAwOm4uaG9zdCk9PT0obnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuaG9zdCl9Y2F0Y2gobyl7cmV0dXJuITF9fTtmdW5jdGlvbiBzZSgpe3JldHVybiFmdW5jdGlvbigpe3ZhciBlPSIiO3RyeXtlPXRlKCl9Y2F0Y2godCl7cmV0dXJuITF9cmV0dXJuISFlLm1hdGNoKC90aWRpb2NoYXRcLmNvbS8pfHwoISFlLm1hdGNoKC90aWRpb1wuZGV2Lyl8fCghIWUubWF0Y2goL3RpZGlvXC5pbi8pfHwhIWUubWF0Y2goL3RpZGlvXC5jb20vKSkpfSgpJiZCb29sZWFuKG5hdmlnYXRvci53ZWJkcml2ZXIpfXZhciB1ZT1mdW5jdGlvbihlKXt2YXIgdD1hZShlZSgpLGUpO3RyeXt0JiZ3aW5kb3cudG9wP3dpbmRvdy50b3AubG9jYXRpb24uYXNzaWduKGUpOndpbmRvdy5vcGVuKGUpfWNhdGNoKG4pe3dpbmRvdy5vcGVuKGUpfX07ZnVuY3Rpb24gY2UoZSl7cmV0dXJuIEJvb2xlYW4oZSl9ZnVuY3Rpb24gbGUoZSl7cmV0dXJuIncwaTRiN2ZkZWVyZnFxbjR3OGx3YjdhaGphc2pucm1kIj09PWV9ZnVuY3Rpb24gZmUoZSl7cmV0dXJuIGUucmVwbGFjZSgiczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYXZhdGFycy50aWRpb2NoYXQuY29tIiwiYXZhdGFycy50aWRpb2NoYXQuY29tIil9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gZH0pKSxuLmQodCwiaCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGd9KSksbi5kKHQsImUiLChmdW5jdGlvbigpe3JldHVybiB5fSkpLG4uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gYn0pKSxuLmQodCwiZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHd9KSksbi5kKHQsImciLChmdW5jdGlvbigpe3JldHVybiBPfSkpLG4uZCh0LCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gX30pKSxuLmQodCwiZiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEV9KSk7bigzNiksbigzNyksbig1NSksbig4NSksbig1Nyk7dmFyIHI9big1KSxvPW4ubihyKSxpPW4oMSksYT1uKDUzKSxzPW4oNiksdT1uKDcpO2Z1bmN0aW9uIGMoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGwoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/YyhPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe28oKShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6YyhPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX12YXIgZj0wLGQ9e2dldDpmdW5jdGlvbigpe3JldHVybiBmfSxzZXQ6ZnVuY3Rpb24oZSl7Zj1lfX0scD1udWxsLGg9ZnVuY3Rpb24oKXtpZighcCl7dmFyIGU9T2JqZWN0KGkuaCkoKXx8InByZXZpZXciO3A9InRpZGlvX3N0YXRlXyIuY29uY2F0KGUpfXJldHVybiBwfSx2PSEwLGc9ZnVuY3Rpb24oZSl7aWYoIXYpcmV0dXJuITE7dHJ5e3ZhciB0PU9iamVjdChpLmUpKGUpO2Quc2V0KGQuZ2V0KCkrMSksdC5wZXJzaXN0ZWRTdGF0ZVJldj1kLmdldCgpO3ZhciBuPUpTT04uc3RyaW5naWZ5KHQpO3JldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShoKCksbiksITB9Y2F0Y2gocil7cmV0dXJuIHY9ITEsITF9fSx5PWZ1bmN0aW9uKGUpe2lmKHYpdHJ5e3JldHVybiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiIi5jb25jYXQoaCgpLCJfIikuY29uY2F0KGUpKSwhMH1jYXRjaCh0KXtyZXR1cm4gdm9pZCh2PSExKX19LG09ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKChmdW5jdGlvbihlKXtpZigidXBsb2FkZWRGaWxlIj09PWUudHlwZSYmImltYWdlIj09PWUuYXR0YWNobWVudFR5cGUpe3ZhciB0PWU7cmV0dXJuIHQuaW1hZ2VMb2FkZWQ9ITEsdH1pZigidXBsb2FkaW5nRmlsZSIhPT1lLnR5cGUpcmV0dXJuIGV9KSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09ZX0pKX0sYj1mdW5jdGlvbigpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07dHJ5e2lmKCF2KXJldHVybiExO3ZhciB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKGgoKSk7aWYoIXQpcmV0dXJuO3RyeXt2YXIgbixyPTg2NDAwLG89SlNPTi5wYXJzZSh0KTtpZihudWxsPT09KG49by52aXNpdG9yKXx8dm9pZCAwPT09bnx8IW4uaWQpcmV0dXJuO3JldHVybiBlJiYoby5yZWNvbm5lY3RBdHRlbXB0Q291bnQ9MCxvLmlzTW91bnRlZD0hMSxvLnRpZGlvSWRlbnRpZnlDaGFuZ2VkPSExLG8ub3BlcmF0b3JJc1R5cGluZz0hMSxvLnNob3dPcHRpb25zRHJvcGRvd249ITEsby5uZXdNZXNzYWdlRW1vamk9bnVsbCxvLmJsb2NrZWRNZXNzYWdlPW51bGwsby5pc0Vtb2ppUGFuZWxWaXNpYmxlPSExLG8uc2VuZFZpc2l0b3JNZXNzYWdlRmxhZz0hMSxvLmlzRHJhZ0FuZERyb3BBY3RpdmU9ITEsby5zaG93VXNlckRhdGFNb2RhbD0hMSxvLmlzUGFnZVZpc2libGU9ITAsby5wb3B1cEltYWdlU3JjPSIiLG8ubW9iaWxlSGFzaD0hMCxvLmFsbG93QXR0YWNobWVudHM9ITAsby5tZXNzYWdlRm9yRmx5PW51bGwsby5wcmVjaGF0U3Vic2NyaXB0aW9uQ2hlY2tib3hEZWZhdWx0VmFsdWU9ITEsby52aWV3PT09dS5hLmZseSYmKG8udmlldz11LmEuY2xvc2VkKSxvLnNob3dNZXNzYWdlc0J1dHRvbkNsaWNrZWRUaW1lc3RhbXAmJk1hdGguZmxvb3IoRGF0ZS5ub3coKS8xZTMpLW8uc2hvd01lc3NhZ2VzQnV0dG9uQ2xpY2tlZFRpbWVzdGFtcD5yJiYoby5zaG93TWVzc2FnZXNCdXR0b25DbGlja2VkVGltZXN0YW1wPW51bGwsby5zaG93T2xkTWVzc2FnZXM9ITEpKSxvLm1lc3NhZ2VzJiYoby5tZXNzYWdlcz1tKG8ubWVzc2FnZXMpKSxvfWNhdGNoKGkpe3JldHVybiB2b2lkIE9iamVjdChzLmEpKGkpfX1jYXRjaChpKXtyZXR1cm59fTtmdW5jdGlvbiB3KGUsdCl7dHJ5e2lmKGUudmVyc2lvbj09PXQudmVyc2lvbilyZXR1cm4gZTt2YXIgbj1PYmplY3QoaS5lKSh0KSxyPU9iamVjdChpLmUpKGUubWVzc2FnZXMpLG89bChsKHt9LGUudmlzaXRvciksT2JqZWN0KGEuYSkoKSksdT1sKHt9LGUucHJlQ2hhdCksYz1PYmplY3QoaS5lKShlLnRpZGlvSWRlbnRpZnlEYXRhKTtyZXR1cm4geSgiY2FjaGUiKSxsKGwoe30sbikse30se21lc3NhZ2VzOnIsdmlzaXRvcjpvLHRpZGlvSWRlbnRpZnlEYXRhOmMscHJlQ2hhdDp1fSl9Y2F0Y2goZil7cmV0dXJuIE9iamVjdChzLmEpKGYpLHkoImNhY2hlIiksT2JqZWN0KGkuZSkodCl9fXZhciBPPWZ1bmN0aW9uKGUsdCl7aWYoIXYpcmV0dXJuITE7dHJ5e3ZhciBuPUpTT04uc3RyaW5naWZ5KHQpO3JldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiIi5jb25jYXQoaCgpLCJfIikuY29uY2F0KGUpLG4pLCEwfWNhdGNoKHIpe3JldHVybiB2PSExLCExfX0sXz1mdW5jdGlvbihlKXtpZih2KXRyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiIi5jb25jYXQoaCgpLCJfIikuY29uY2F0KGUpKTtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaChuKXtyZXR1cm4gdm9pZCh2PSExKX19LEU9ZnVuY3Rpb24oKXtpZih2KXRyeXtyZXR1cm4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oaCgpKSwhMH1jYXRjaChlKXtyZXR1cm4gdm9pZCh2PSExKX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByLG8saSxhLHMsdSxjLGw7bi5kKHQsImciLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZCh0LCJlIiwoZnVuY3Rpb24oKXtyZXR1cm4gb30pKSxuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKHQsImgiLChmdW5jdGlvbigpe3JldHVybiBhfSkpLG4uZCh0LCJkIiwoZnVuY3Rpb24oKXtyZXR1cm4gc30pKSxuLmQodCwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSksbi5kKHQsImYiLChmdW5jdGlvbigpe3JldHVybiBjfSkpLG4uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gbH0pKSxmdW5jdGlvbihlKXtlLlNIT1BJRlk9InNob3BpZnkiLGUuV09SRFBSRVNTPSJ3b3JkcHJlc3MiLGUuV0lYPSJ3aXgiLGUuT1RIRVJTPSJvdGhlcnMifShyfHwocj17fSkpLGZ1bmN0aW9uKGUpe2UuU01BTEw9InNtYWxsIixlLk1FRElVTT0ibWVkaXVtIixlLkxBUkdFPSJsYXJnZSJ9KG98fChvPXt9KSksZnVuY3Rpb24oZSl7ZS5PTkxZX0JVQkJMRT0ib25seUJ1YmJsZSIsZS5PTkxZX0JVQkJMRV9TTUFMTD0ib25seUJ1YmJsZVNtYWxsIixlLk9OTFlfQlVCQkxFX01FRElVTT0ib25seUJ1YmJsZU1lZGl1bSIsZS5PTkxZX0JVQkJMRV9MQVJHRT0ib25seUJ1YmJsZUxhcmdlIixlLk9OTFlfU0lERUJBUj0ib25seVNpZGViYXIiLGUuQlVCQkxFX1dJVEhfTEFCRUw9ImJ1YmJsZVdpdGhMYWJlbCIsZS5DSEFUX1NJWkVfMT0iY2hhdFNpemUxIixlLkNIQVRfU0laRV8yPSJjaGF0U2l6ZTIiLGUuQ0hBVF9TSVpFXzM9ImNoYXRTaXplMyIsZS5NT0JJTEU9Im1vYmlsZSIsZS5EWU5BTUlDPSJkeW5hbWljIn0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtlLkNMT1NFRD0iY2xvc2VkIixlLkZMWT0iZmx5IixlLldFTENPTUU9IndlbGNvbWUiLGUuQ0hBVD0iY2hhdCJ9KGF8fChhPXt9KSksZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLlBSRUNIQVQ9InByZUNoYXQiLGUuUkFURV9DT05WRVJTQVRJT049InJhdGVDb252ZXJzYXRpb24iLGUuQUxXQVlTX09OTElORT0iYWx3YXlzT25saW5lIixlLlJBVEVfQ09NTUVOVF9HT09EPSJyYXRlQ29udmVyc2F0aW9uQ29tbWVudFJhdGVXYXNHb29kIixlLlJBVEVfQ09NTUVOVF9CQUQ9InJhdGVDb252ZXJzYXRpb25Db21tZW50UmF0ZVdhc0JhZCIsZS5VUExPQURJTkdfRklMRT0idXBsb2FkaW5nRmlsZSIsZS5VUExPQURFRF9GSUxFPSJ1cGxvYWRlZEZpbGUiLGUuQ0FSRF9HQUxMRVJZPSJjYXJkR2FsbGVyeSIsZS5CVVRUT05TPSJidXR0b25zIixlLkNPVVBPTl9DT0RFPSJjb3Vwb25Db2RlIixlLlNZU1RFTT0ic3lzdGVtIixlLkNPTlZFUlNBVElPTl9NQVJLRURfQVNfU09MVkVEPSJjb252ZXJzYXRpb25NYXJrZWRBc1NvbHZlZCIsZS5BVVRPTUFUSUNfU1VSVkVZPSJyYXRlQXV0b21hdGljU3VydmV5IixlLkFVVE9NQVRJQ19TVVJWRVlfUkFURUQ9InJhdGVkQXV0b21hdGljU3VydmV5IixlLkFVVE9NQVRJQ19TVVJWRVlfQ09NTUVOVEVEPSJjb21tZW50QXV0b21hdGljU3VydmV5In0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlLk9QRVJBVE9SPSJvcGVyYXRvciIsZS5WSVNJVE9SPSJ2aXNpdG9yIixlLkJPVD0iYm90IixlLlNZU1RFTT0ic3lzdGVtIixlLkxPRz0ibG9nIn0odXx8KHU9e30pKSxmdW5jdGlvbihlKXtlLlVOS05PV049InVua25vd24iLGUuV0lORE9XUz0iV2luZG93cyIsZS5BTkRST0lEPSJBbmRyb2lkIixlLklPUz0iaU9TIixlLk9TWD0iT1MgWCIsZS5VTklYPSJVbml4IixlLkxJTlVYPSJMaW51eCJ9KGN8fChjPXt9KSksZnVuY3Rpb24oZSl7ZS5NQUlMQ0hJTVA9Im1haWxjaGltcCIsZS5LTEFWSVlPPSJrbGF2aXlvIixlLk1BSUxDSElNUF9WMj0ibWFpbGNoaW1wX3YyIn0obHx8KGw9e30pKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9bigyNDEpfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gYX0pKSxuLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHN9KSk7dmFyIHI9big1NCksbz1uLm4ociksaT0iYm9vbGVhbiI9PT10eXBlb2YgUFJPRFVDVElPTl9ERVZFTE9QTUVOVF9CVUlMRCYmITA9PT1QUk9EVUNUSU9OX0RFVkVMT1BNRU5UX0JVSUxELGE9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2l8fG8uYS5jYXB0dXJlRXhjZXB0aW9uKGUse2V4dHJhOnQsbGV2ZWw6Indhcm5pbmcifSl9LHM9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2l8fG8uYS5jYXB0dXJlTWVzc2FnZShlLHtsZXZlbDoiaW5mbyIsZXh0cmE6dH0pfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSk7bigxMDkpO3ZhciByPXtjbG9zZWQ6ImNsb3NlZCIsZmx5OiJmbHkiLHdlbGNvbWU6IndlbGNvbWUiLGNoYXQ6ImNoYXQifTtPYmplY3QudmFsdWVzKHIpfSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKHQpe3ZhciBuPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLk1hdGg9PU1hdGgmJmV9O2UuZXhwb3J0cz1uKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fG4oIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fG4oIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8bigib2JqZWN0Ij09dHlwZW9mIHQmJnQpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfSkuY2FsbCh0aGlzLG4oMTMpKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oOCksbz1uKDQ3KS5mLGk9bigyNCksYT1uKDMwKSxzPW4oNjApLHU9bigxMzIpLGM9big3Nyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4sbCxmLGQscCxoPWUudGFyZ2V0LHY9ZS5nbG9iYWwsZz1lLnN0YXQ7aWYobj12P3I6Zz9yW2hdfHxzKGgse30pOihyW2hdfHx7fSkucHJvdG90eXBlKWZvcihsIGluIHQpe2lmKGQ9dFtsXSxmPWUubm9UYXJnZXRHZXQ/KHA9byhuLGwpKSYmcC52YWx1ZTpuW2xdLCFjKHY/bDpoKyhnPyIuIjoiIyIpK2wsZS5mb3JjZWQpJiZ2b2lkIDAhPT1mKXtpZih0eXBlb2YgZD09PXR5cGVvZiBmKWNvbnRpbnVlO3UoZCxmKX0oZS5zaGFtfHxmJiZmLnNoYW0pJiZpKGQsInNoYW0iLCEwKSxhKG4sbCxkLGUpfX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4hIWUoKX1jYXRjaCh0KXtyZXR1cm4hMH19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJnIiwoZnVuY3Rpb24oKXtyZXR1cm4geX0pKSxuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIG19KSksbi5kKHQsImUiLChmdW5jdGlvbigpe3JldHVybiBifSkpLG4uZCh0LCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gX30pKSxuLmQodCwibyIsKGZ1bmN0aW9uKCl7cmV0dXJuIFN9KSksbi5kKHQsIm0iLChmdW5jdGlvbigpe3JldHVybiBrfSkpLG4uZCh0LCJsIiwoZnVuY3Rpb24oKXtyZXR1cm4geH0pKSxuLmQodCwiaSIsKGZ1bmN0aW9uKCl7cmV0dXJuIEF9KSksbi5kKHQsImsiLChmdW5jdGlvbigpe3JldHVybiBqfSkpLG4uZCh0LCJuIiwoZnVuY3Rpb24oKXtyZXR1cm4gVH0pKSxuLmQodCwiaCIsKGZ1bmN0aW9uKCl7cmV0dXJuIFB9KSksbi5kKHQsImIiLChmdW5jdGlvbigpe3JldHVybiBJfSkpLG4uZCh0LCJkIiwoZnVuY3Rpb24oKXtyZXR1cm4gUn0pKSxuLmQodCwiaiIsKGZ1bmN0aW9uKCl7cmV0dXJuIER9KSksbi5kKHQsImYiLChmdW5jdGlvbigpe3JldHVybiBOfSkpO24oMzYpLG4oMzcpLG4oNTYpLG4oNzIpLG4oNTgpLG4oNjkpLG4oMTYwKSxuKDU1KSxuKDgzKSxuKDEwOSksbigxMjcpLG4oMzIpLG4oMTI2KSxuKDE0MyksbigxNTkpLG4oNzMpO3ZhciByPW4oMTUyKSxvPW4ubihyKSxpPW4oNDUpLGE9bi5uKGkpLHM9big1KSx1PW4ubihzKSxjPW4oMzEpLGw9bi5uKGMpLGY9bigxKSxkPW4oNikscD1uKDMpLGg9big0Mik7ZnVuY3Rpb24gdihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj92KE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dSgpKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp2KE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfXZhciB5PXtvcGVyYXRvcjoib3BlcmF0b3IiLHZpc2l0b3I6InZpc2l0b3IiLHN5c3RlbToic3lzdGVtIixib3Q6ImJvdCJ9LG09WyJwZGYiLCJkb2MiLCJkb2N4IiwieGxzIiwieGxzeCIsImNzdiIsInR4dCIsInJ0ZiIsIm1wMyIsIndtYSIsIm1wZyIsIm1wNCIsImZsdiIsImF2aSIsImpwZyIsImpwZWciLCJwbmciLCJnaWYiXSxiPXt0ZXh0OiJ0ZXh0IixjYXJkczoiY2FyZEdhbGxlcnkiLGJ1dHRvbnM6ImJ1dHRvbnMiLGNvdXBvbkNvZGU6ImNvdXBvbkNvZGUiLHVwbG9hZGVkRmlsZToidXBsb2FkZWRGaWxlIixyYXRlQXV0b21hdGljU3VydmV5OiJyYXRlQXV0b21hdGljU3VydmV5In0sdz1SZWdFeHAoIl4oaHR0cHM/OlsvfC58XFx3fFxcc3wtXSovKC4qKSlcXC4oIi5jb25jYXQobS5qb2luKCJ8IiksIikkIikpLE89UmVnRXhwKCIoPyEuKi1tZWRpdW0kKWh0dHBzOlxcL1xcL3MzLiouYW1hem9uYXdzLmNvbVxcLyh0aWRpby1maWxlc3x0aWRpby1maWxlcy1kZXYpIiksXz1mdW5jdGlvbihlKXtyZXR1cm4tMSE9PVsianBnIiwianBlZyIsInBuZyIsImdpZiJdLmluZGV4T2YoZSk/ImltYWdlIjoiZmlsZSJ9O2Z1bmN0aW9uIEUoZSl7cmV0dXJuIHcudGVzdChlLmNvbnRlbnQpfWZ1bmN0aW9uIEMoZSl7dmFyIHQ9Zyh7fSxlKTt0LnR5cGU9cC5kLlVQTE9BREVEX0ZJTEU7dmFyIG49dC5jb250ZW50Lm1hdGNoKHcpO2lmKCFuKXJldHVybiBlO3ZhciByPWEoKShuLDQpLG89clsxXSxpPXJbMl0scz1yWzNdO3JldHVybiB0Lm5hbWU9aSx0LmV4dGVuc2lvbj1zLHQuYXR0YWNobWVudFR5cGU9XyhzKSx0LmltYWdlTG9hZGVkPSExLCJpbWFnZSI9PT10LmF0dGFjaG1lbnRUeXBlP3QudGh1bWI9ImdpZiI9PT1zPyIiLmNvbmNhdChvLCIuIikuY29uY2F0KHMpOiIiLmNvbmNhdChvKS5jb25jYXQoTy50ZXN0KG8pPyItbWVkaXVtIjoiIiwiLiIpLmNvbmNhdChzKTp0LnRodW1iPSIiLHR9ZnVuY3Rpb24gUyhlKXt2YXIgdD17aWQ6bCgpKCksdHlwZTpwLmQuVEVYVCxzZW5kZXI6cC5jLlZJU0lUT1IsaXNEZWxpdmVyZWQ6ITAsdXJsOk9iamVjdChmLnApKCl9O2lmKCJzdHJpbmciPT09dHlwZW9mIGUpe3ZhciBuPWcoZyh7fSx0KSx7fSx7aWRGcm9tU2VydmVyOm51bGwsY29udGVudDplLHRpbWVfc2VudDpPYmplY3QoZi5vKSgpfSk7cmV0dXJuIEUobikmJihuPUMobikpLG59dmFyIHI9ZS5pZCxvPWUubWVzc2FnZS5tZXNzYWdlLGk9ZS50aW1lX3NlbnQsYT1nKGcoe30sdCkse30se2lkRnJvbVNlcnZlcjpyLGNvbnRlbnQ6byx0aW1lX3NlbnQ6aX0pO3JldHVybiBFKGEpJiYoYT1DKGEpKSxhfWZ1bmN0aW9uIGsoZSl7cmV0dXJue2lkOmwoKSgpLHR5cGU6cC5kLlNZU1RFTSxjb250ZW50OmUsc2VuZGVyOnAuYy5PUEVSQVRPUix0aW1lX3NlbnQ6T2JqZWN0KGYubykoKX19ZnVuY3Rpb24geCgpe3JldHVybntpZDpsKCkoKSx0eXBlOnAuZC5SQVRFX0NPTlZFUlNBVElPTixjb250ZW50OiIiLHNlbmRlcjpwLmMuT1BFUkFUT1IsdGltZV9zZW50Ok9iamVjdChmLm8pKCksZGlzYWJsZWQ6ITF9fWZ1bmN0aW9uIEEoZSx0LG4pe3JldHVybntpZDpsKCkoKSx0eXBlOm4sY29udGVudDoiIixzZW5kZXI6cC5jLk9QRVJBVE9SLHRpbWVfc2VudDpPYmplY3QoZi5vKSgpLGRpc2FibGVkOiExLHRocmVhZElkOmUsbWVzc2FnZUlkOnR9fWZ1bmN0aW9uIGooZSl7cmV0dXJue2lkOmwoKSgpLHR5cGU6ZT9wLmQuUkFURV9DT01NRU5UX0dPT0Q6cC5kLlJBVEVfQ09NTUVOVF9CQUQsY29udGVudDoiIixzZW5kZXI6cC5jLk9QRVJBVE9SLHRpbWVfc2VudDpPYmplY3QoZi5vKSgpLGRpc2FibGVkOiExfX1mdW5jdGlvbiBUKGUpe3JldHVybntpZDpsKCkoKSx0eXBlOnAuZC5VUExPQURJTkdfRklMRSxjb250ZW50OiIiLHNlbmRlcjpwLmMuVklTSVRPUix0aW1lX3NlbnQ6T2JqZWN0KGYubykoKSxmaWxlOmV9fWZ1bmN0aW9uIFAoKXtyZXR1cm57aWQ6bCgpKCksdHlwZTpwLmQuQUxXQVlTX09OTElORSxjb250ZW50OiIiLHNlbmRlcjpwLmMuT1BFUkFUT1IsdGltZV9zZW50Ok9iamVjdChmLm8pKCksZGlzYWJsZWQ6ITF9fXZhciBJPVsiZW1haWwiLCJuYW1lIiwicGhvbmUiLCJnZHByQ29uc2VudCIsInNpZ25VcE5ld3NsZXR0ZXIiLGguYl07ZnVuY3Rpb24gUihlLHQpe3ZhciBuPVtdLHI9ITA7dHJ5e2lmKCFlKXJldHVybltdOyhmdW5jdGlvbihlKXt2YXIgdD1lO3JldHVybiB0LmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT1oLmJ9KSkmJnQuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuInNpZ25VcE5ld3NsZXR0ZXIiPT09ZS50eXBlfSkpJiYodD10LmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuInNpZ25VcE5ld3NsZXR0ZXIiIT09ZS50eXBlfSkpKSx0fSkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sdD1lLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT1oLmJ9KSk7aWYoIXQpcmV0dXJuIGU7dmFyIG49ZS5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4iZW1haWwiPT09ZS50eXBlfSkpO3JldHVybiBuPyEwIT09dC52YWx1ZT9lLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZSE9PWguYn0pKTplOmUuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS50eXBlIT09aC5iJiYic2lnblVwTmV3c2xldHRlciIhPT1lLnR5cGV9KSl9KGUuZmllbGRzKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG89ZS50eXBlO0kuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1vfSkpJiYtMSE9PVsiZW1haWwiLCJuYW1lIiwicGhvbmUiLCJnZHByQ29uc2VudCIsImVtYWlsQ29uc2VudCIsInNpZ25VcE5ld3NsZXR0ZXIiXS5pbmRleE9mKG8pP3Rbb10mJiJlbWFpbENvbnNlbnQiPT09b3x8dFtvXSYmImVtYWlsQ29uc2VudCIhPT1vP24ucHVzaCh7dHlwZTpvLHBsYWNlaG9sZGVyOiJwcmVmb3JtSW5wdXRfIi5jb25jYXQobyksdmFsdWU6dFtvXX0pOihyPSExLG4ucHVzaCh7dHlwZTpvLHBsYWNlaG9sZGVyOiJwcmVmb3JtSW5wdXRfIi5jb25jYXQobyl9KSk6ImZpcnN0bXNnIiE9PW8mJk9iamVjdChkLmEpKCJVbmtub3duIHByZUNoYXQgZmllbGQgdHlwZSAtICIuY29uY2F0KG8pKX0pKX1jYXRjaChvKXtPYmplY3QoZC5hKShvKX1yZXR1cm4gcj9bXTpmdW5jdGlvbihlKXt2YXIgdD1lLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT1oLmJ9KSk7cmV0dXJuIHQ/ZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGUhPT1oLmJ9KSkuY29uY2F0KHQpOmV9KG4pfWZ1bmN0aW9uIEQoZSx0KXt2YXIgbj1SKGUsdCk7cmV0dXJuIDA9PT1uLmxlbmd0aD9udWxsOntpZDpsKCkoKSx0eXBlOnAuZC5QUkVDSEFULGNvbnRlbnQ6InByZUNoYXQiLHNlbmRlcjpwLmMuT1BFUkFUT1IsdGltZV9zZW50Ok9iamVjdChmLm8pKCksZGlzYWJsZWQ6ITEscHJlQ2hhdEZpZWxkczpufX1mdW5jdGlvbiBOKGUpe3ZhciB0PWUuZGF0YSxuPXQudHlwZTtpZigiMSI9PT10LmF1dG8mJihuPXAuYy5CT1QpLC0xIT09T2JqZWN0LnZhbHVlcyh5KS5pbmRleE9mKG4pKXt2YXIgcjtpZihuPT09eS52aXNpdG9yKXI9Uyh0KTtlbHNle3ZhciBpLGE9bnVsbD09PShpPXQubWVzc2FnZSl8fHZvaWQgMD09PWk/dm9pZCAwOmkudHlwZSxzPWJbYV0sdT1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSBiLmNhcmRzOnJldHVybiBiLmNhcmRzPT09cC5kLkNBUkRfR0FMTEVSWTtjYXNlIGIuYnV0dG9uczpyZXR1cm4gYi5idXR0b25zPT09cC5kLkJVVFRPTlM7Y2FzZSBiLmNvdXBvbkNvZGU6cmV0dXJuIGIuY291cG9uQ29kZT09PXAuZC5DT1VQT05fQ09ERTtjYXNlIGIudXBsb2FkZWRGaWxlOnJldHVybiBiLnVwbG9hZGVkRmlsZT09PXAuZC5VUExPQURFRF9GSUxFO2Nhc2UgYi5yYXRlQXV0b21hdGljU3VydmV5OnJldHVybiBiLnJhdGVBdXRvbWF0aWNTdXJ2ZXk9PT1wLmQuQVVUT01BVElDX1NVUlZFWTtkZWZhdWx0OnJldHVybiExfX0ocyk/czpwLmQuVEVYVCxjPXQubWVzc2FnZS5tZXNzYWdlOyJzdHJpbmciPT09dHlwZW9mIGMmJihjPWMudHJpbSgpKTt2YXIgZixkLGg9dC5vcGVyYXRvcl9pZCx2PXQudGltZV9zZW50LG09dC5pZCx3PXQuaXNfd2FpdGluZ19mb3JfYW5zd2VyO2lmKG49PT15LmJvdCkobnVsbD09PShkPXQubWVzc2FnZSl8fHZvaWQgMD09PWQ/dm9pZCAwOmQucXVpY2tfcmVwbGllcykmJkFycmF5LmlzQXJyYXkodC5tZXNzYWdlLnF1aWNrX3JlcGxpZXMpJiZ0Lm1lc3NhZ2UucXVpY2tfcmVwbGllcy5sZW5ndGg+MCYmKGY9dC5tZXNzYWdlLnF1aWNrX3JlcGxpZXMpO3I9e2lkOmwoKSgpLGlkRnJvbVNlcnZlcjptLGlzV2FpdGluZ0ZvckFuc3dlcjp3LHJhdGluZ0lkOnQucmF0aW5nX2lkfHxudWxsLHR5cGU6dSxjb250ZW50OmMsc2VuZGVyOm4scXVpY2tSZXBsaWVzOmYsb3BlcmF0b3JfaWQ6aCx0aW1lX3NlbnQ6dixkaXNhYmxlVGV4dElucHV0OkJvb2xlYW4odC5kaXNhYmxlX3RleHRfaW5wdXQpfX1pZihyKXtpZihyLnR5cGU9PT1iLmNhcmRzKXI9ZnVuY3Rpb24oZSx0KXt2YXIgbj1nKHt9LGUpO3RyeXtpZighdC5jYXJkcylyZXR1cm47bi5jYXJkcz10LmNhcmRzO3ZhciByPW4uY2FyZHNbMF0uaW1hZ2VVcmw7cmV0dXJuKCJzdHJpbmciIT09dHlwZW9mIHJ8fDA9PT1yLmxlbmd0aCkmJihuLmNhcmRzPW4uY2FyZHMubWFwKChmdW5jdGlvbihlKXtlLmltYWdlVXJsO3JldHVybiBnKHt9LG8oKShlLFsiaW1hZ2VVcmwiXSkpfSkpKSxuLmNhcmRzPW4uY2FyZHMubWFwKChmdW5jdGlvbihlKXt2YXIgdD1lLnVybCxuPWUuc3VidGl0bGUscj1lLmltYWdlVXJsLGk9bygpKGUsWyJ1cmwiLCJzdWJ0aXRsZSIsImltYWdlVXJsIl0pLGE9InN0cmluZyI9PT10eXBlb2YgZS5pbWFnZVVybCYmZS5pbWFnZVVybC5sZW5ndGg+MCxzPSJzdHJpbmciPT09dHlwZW9mIHQmJnQubGVuZ3RoPjAsdT0ic3RyaW5nIj09PXR5cGVvZiBuJiZuLmxlbmd0aD4wLGM9Zyh7fSxpKTtyZXR1cm4gYSYmKGMuaW1hZ2VVcmw9cikscyYmKGMudXJsPXQpLHUmJihjLnN1YnRpdGxlPW4pLGN9KSksbn1jYXRjaChpKXtyZXR1cm59fShyLHQubWVzc2FnZSk7ZWxzZSBpZihyLnR5cGU9PT1iLmJ1dHRvbnMpQT1yLGo9dC5tZXNzYWdlLHI9ZyhnKHt9LEEpLHt9LHtidXR0b25zOmouYnV0dG9uc3x8W119KTtlbHNlIGlmKHIudHlwZT09PWIuY291cG9uQ29kZSlyPWZ1bmN0aW9uKGUsdCl7dmFyIG47cmV0dXJuIGcoZyh7fSxlKSx7fSx7Y291cG9uQ29kZToobnVsbD09PShuPXQuY291cG9uQ29kZSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uY291cG9uQ29kZSl8fCIifSl9KHIsdC5tZXNzYWdlKTtlbHNlIGlmKEUocikpcj1DKHIpO2Vsc2UgaWYoci50eXBlPT09Yi5yYXRlQXV0b21hdGljU3VydmV5KXt2YXIgTz10Lm1lc3NhZ2UsXz1PLnNhdGlzZmFjdGlvblN1cnZleS5yZXNwb25zZSxrPV8uY29tbWVudCx4PV8ucmF0aW5nO2lmKGt8fHgpcmV0dXJuO3I9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZyhnKHt9LGUpLHt9LHtzYXRpc2ZhY3Rpb25TdXJ2ZXk6dC5zYXRpc2ZhY3Rpb25TdXJ2ZXksbWVzc2FnZUlkOihudWxsPT09ZXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5pZEZyb21TZXJ2ZXIpfHx2b2lkIDAsdGhyZWFkSWQ6dC5zYXRpc2ZhY3Rpb25TdXJ2ZXkudGhyZWFkSWR9KX0ocixPKX12YXIgQSxqO3JldHVybiByfX19fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big4KSxvPW4oOTUpLGk9bigxOCksYT1uKDk2KSxzPW4oMTAxKSx1PW4oMTM2KSxjPW8oIndrcyIpLGw9ci5TeW1ib2wsZj11P2w6bCYmbC53aXRob3V0U2V0dGVyfHxhO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaShjLGUpfHwocyYmaShsLGUpP2NbZV09bFtlXTpjW2VdPWYoIlN5bWJvbC4iK2UpKSxjW2VdfX0sZnVuY3Rpb24oZSx0KXt2YXIgbjtuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCk7dHJ5e249bnx8bmV3IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9Y2F0Y2gocil7Im9iamVjdCI9PT10eXBlb2Ygd2luZG93JiYobj13aW5kb3cpfWUuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCFyKGUpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoZSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiBlP251bGwhPT1lOiJmdW5jdGlvbiI9PT10eXBlb2YgZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7big1Niksbig3Miksbig1OCksbig2OSksbig4NiksbigzMiksbig4OSksbigxMjgpLG4oNzMpO3ZhciByPW4oMTkpLG89bi5uKHIpLGk9big2KTtuLmQodCwiZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHN9KSksbi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBjfSkpLG4uZCh0LCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gbH0pKSxuLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ9KSk7dmFyIGEscz17YWxsOmE9YXx8bmV3IE1hcCxvbjpmdW5jdGlvbihlLHQpe3ZhciBuPWEuZ2V0KGUpO24mJm4ucHVzaCh0KXx8YS5zZXQoZSxbdF0pfSxvZmY6ZnVuY3Rpb24oZSx0KXt2YXIgbj1hLmdldChlKTtuJiZuLnNwbGljZShuLmluZGV4T2YodCk+Pj4wLDEpfSxlbWl0OmZ1bmN0aW9uKGUsdCl7KGEuZ2V0KGUpfHxbXSkuc2xpY2UoKS5tYXAoKGZ1bmN0aW9uKGUpe2UodCl9KSksKGEuZ2V0KCIqIil8fFtdKS5zbGljZSgpLm1hcCgoZnVuY3Rpb24obil7bihlLHQpfSkpfX0sdT17ZGF0YTp7fX07ZnVuY3Rpb24gYygpe3ZhciBlPXUubGFuZ3x8ImVuIjtyZXR1cm5bImFyIiwiZHYiLCJmYSIsImhlIiwia3UiLCJwcyIsInNkIiwidWciLCJ1ciIsInlpIl0uaW5kZXhPZihlKT4tMX1mdW5jdGlvbiBsKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwscj11LmRhdGFbZV07cmV0dXJuIHQ/KHJ8fChPYmplY3QoaS5hKSgiVHJhbnM6IE5vIHRyYW5zbGF0aW9uIGZvciBrZXkgIi5jb25jYXQoZSwiIGZvdW5kLiIpLHtrZXk6ZX0pLHI9bnx8IiIpLE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3I9ci5yZXBsYWNlKGUsdFtlXSl9KSkscik6cnx8KG51bGwhPT1uP246IiIpfWZ1bmN0aW9uIGYoZSx0KXt0cnl7dmFyIG49ZS5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS5sYW5nPT09dH0pKTsodT1ufHxmdW5jdGlvbihlKXt0cnl7aWYod2luZG93LnBhcmVudC5kb2N1bWVudC50aWRpb0NoYXRMYW5nKXt2YXIgdD13aW5kb3cucGFyZW50LmRvY3VtZW50LnRpZGlvQ2hhdExhbmc7aWYoInN0cmluZyI9PT10eXBlb2YgdCl7dmFyIG49dC5zcGxpdCgiLSIpWzBdLnRvTG93ZXJDYXNlKCkscj1lLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxhbmc9PT1ufSkpO2lmKHIpcmV0dXJuIHJ9fWlmKG5hdmlnYXRvci5sYW5ndWFnZXMmJkFycmF5LmlzQXJyYXkobmF2aWdhdG9yLmxhbmd1YWdlcykmJm5hdmlnYXRvci5sYW5ndWFnZXMubGVuZ3RoPjApZm9yKHZhciBpPWZ1bmN0aW9uKHQpe3ZhciBuPW5hdmlnYXRvci5sYW5ndWFnZXNbdF0udG9Mb3dlckNhc2UoKSxyPWUuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUubGFuZz09PW59KSk7aWYocilyZXR1cm57djpyfTt2YXIgbz1uLnNwbGl0KCItIilbMF07cmV0dXJuKHI9ZS5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS5sYW5nPT09b30pKSk/e3Y6cn06dm9pZCAwfSxhPTA7YTxuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aDthKz0xKXt2YXIgcz1pKGEpO2lmKCJvYmplY3QiPT09bygpKHMpKXJldHVybiBzLnZ9aWYobmF2aWdhdG9yLmxhbmd1YWdlJiYic3RyaW5nIj09PXR5cGVvZiBuYXZpZ2F0b3IubGFuZ3VhZ2Upe3ZhciB1PW5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgiLSIpWzBdO2lmKDI9PT11Lmxlbmd0aCl7dmFyIGM9ZS5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS5sYW5nPT09dX0pKTtpZihjKXJldHVybiBjfX19Y2F0Y2gobCl7fXJldHVybiBlWzBdfShlKSkuZGF0YXx8KHUuZGF0YT17fSkscy5lbWl0KCJ0cmFuc2xhdGlvbnNDaGFuZ2VkIil9Y2F0Y2gocil7dT17ZGF0YTp7fX19fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKHQsImIiLChmdW5jdGlvbigpe3JldHVybiBhfSkpLG4uZCh0LCJoIiwoZnVuY3Rpb24oKXtyZXR1cm4gc30pKSxuLmQodCwiciIsKGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSksbi5kKHQsInAiLChmdW5jdGlvbigpe3JldHVybiBsfSkpLG4uZCh0LCJ2IiwoZnVuY3Rpb24oKXtyZXR1cm4gZn0pKSxuLmQodCwibCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGR9KSksbi5kKHQsImoiLChmdW5jdGlvbigpe3JldHVybiBwfSkpLG4uZCh0LCJ3IiwoZnVuY3Rpb24oKXtyZXR1cm4gaH0pKSxuLmQodCwicyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHZ9KSksbi5kKHQsIm0iLChmdW5jdGlvbigpe3JldHVybiBnfSkpLG4uZCh0LCJkIiwoZnVuY3Rpb24oKXtyZXR1cm4geX0pKSxuLmQodCwiayIsKGZ1bmN0aW9uKCl7cmV0dXJuIG19KSksbi5kKHQsIm4iLChmdW5jdGlvbigpe3JldHVybiBifSkpLG4uZCh0LCJpIiwoZnVuY3Rpb24oKXtyZXR1cm4gd30pKSxuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIE99KSksbi5kKHQsInQiLChmdW5jdGlvbigpe3JldHVybiBffSkpLG4uZCh0LCJxIiwoZnVuY3Rpb24oKXtyZXR1cm4gRX0pKSxuLmQodCwidSIsKGZ1bmN0aW9uKCl7cmV0dXJuIEN9KSksbi5kKHQsImMiLChmdW5jdGlvbigpe3JldHVybiBTfSkpLG4uZCh0LCJmIiwoZnVuY3Rpb24oKXtyZXR1cm4ga30pKSxuLmQodCwiZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHh9KSksbi5kKHQsIm8iLChmdW5jdGlvbigpe3JldHVybiBBfSkpO24oMTU4KSxuKDE3NCk7dmFyIHI9bigzKSxvPW4oNyksaT1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4hKG51bGw9PT1lfHx2b2lkIDA9PT1lfHxudWxsPT09KHQ9ZS52aXNpdG9yKXx8dm9pZCAwPT09dHx8IXQuaXNfY2hhdF9vbl9zaXRlKSYmZS52aXNpdG9yLmlzX2NoYXRfb25fc2l0ZX0sYT1mdW5jdGlvbihlKXtyZXR1cm4gZS5yb3V0aW5nUnVsZXMuYXJlRW5hYmxlZH0scz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9PWUuc2VsZWN0ZWREZXBhcnRtZW50fSx1PWZ1bmN0aW9uKGUpe3JldHVybiBlLnNlbGVjdGVkRGVwYXJ0bWVudH0sYz1mdW5jdGlvbihlLHQpe3JldHVybiBlLnBvc2l0aW9uLXQucG9zaXRpb259LGw9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucm91dGluZ1J1bGVzLm9wdGlvbnMuc2xpY2UoKS5zb3J0KGMpfSxmPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlY29ubmVjdEF0dGVtcHRDb3VudD41fSxkPWZ1bmN0aW9uKGUpe3ZhciB0PWUubWVzc2FnZXMubGVuZ3RoO2lmKHQ+MClyZXR1cm4gZS5tZXNzYWdlc1t0LTFdfSxwPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBCb29sZWFuKG51bGw9PT0odD1kKGUpKXx8dm9pZCAwPT09dD92b2lkIDA6dC5kaXNhYmxlVGV4dElucHV0KX0saD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gQm9vbGVhbihudWxsPT09KHQ9ZChlKSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuaXNXYWl0aW5nRm9yQW5zd2VyKX0sdj1mdW5jdGlvbihlKXtyZXR1cm4gZS52aWV3fSxnPWZ1bmN0aW9uKGUpe3JldHVybiBlLm1vYmlsZUJ1dHRvblNpemV9LHk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhdElmcmFtZVN0eWxlcy5kaW1lbnNpb25zfSxtPWZ1bmN0aW9uKGUpe3JldHVybiBlLnNob3dVc2VyRGF0YU1vZGFsJiZlLnZpZXc9PT1vLmEuY2hhdHx8ZihlKXx8cChlKXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlzYWJsZVRleHRJbnB1dH0oZSkmJiFoKGUpfSxiPWZ1bmN0aW9uKGUpe3JldHVybiBlLnBsYXRmb3JtfSx3PWZ1bmN0aW9uKGUpe3JldHVybiBlLmlzRHJhZ0FuZERyb3BBY3RpdmUmJmUuYWxsb3dBdHRhY2htZW50c30sTz1mdW5jdGlvbihlKXtyZXR1cm4gZS5hbGVydC5jb250ZW50fSxfPWZ1bmN0aW9uKGUpe3JldHVybiBlLnZpc2l0b3IuZW1haWx9LEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnNhdGlzZmFjdGlvblN1cnZleVt0XTpudWxsfSxDPWZ1bmN0aW9uKGUpe3JldHVybiBlLndpZGdldENvbG9yfSxTPWZ1bmN0aW9uKGUpe3JldHVybiBlLmN1c3RvbUJyYW5kaW5nfSxrPWZ1bmN0aW9uKCl7cmV0dXJuW3IuYi5NQUlMQ0hJTVAsci5iLktMQVZJWU8sci5iLk1BSUxDSElNUF9WMl19LHg9ZnVuY3Rpb24oKXtyZXR1cm5bci5iLktMQVZJWU8sci5iLk1BSUxDSElNUF9WMl19LEE9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJlY2hhdFN1YnNjcmlwdGlvbkNoZWNrYm94RGVmYXVsdFZhbHVlfX0sZnVuY3Rpb24oZSx0KXt2YXIgbj17fS5oYXNPd25Qcm9wZXJ0eTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5jYWxsKGUsdCl9fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4odCl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9lLmV4cG9ydHM9bj1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmUuZXhwb3J0cz1uPWZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LG4odCl9ZS5leHBvcnRzPW59LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDEwKTtlLmV4cG9ydHM9IXIoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSksbi5kKHQsImYiLChmdW5jdGlvbigpe3JldHVybiBjfSkpLG4uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gbH0pKSxuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ9KSksbi5kKHQsImUiLChmdW5jdGlvbigpe3JldHVybiBkfSkpLG4uZCh0LCJkIiwoZnVuY3Rpb24oKXtyZXR1cm4gcH0pKSxuLmQodCwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGh9KSk7bigzOSksbig1OSk7dmFyIHIsbyxpPW4oNSksYT1uLm4oaSkscz1uKDE2KSx1PTI0LGM9e29ubHlCdWJibGU6Im9ubHlCdWJibGUiLG9ubHlCdWJibGVTbWFsbDoib25seUJ1YmJsZVNtYWxsIixvbmx5QnViYmxlTWVkaXVtOiJvbmx5QnViYmxlTWVkaXVtIixvbmx5QnViYmxlTGFyZ2U6Im9ubHlCdWJibGVMYXJnZSIsb25seVNpZGViYXI6Im9ubHlTaWRlYmFyIixidWJibGVXaXRoTGFiZWw6ImJ1YmJsZVdpdGhMYWJlbCIsY2hhdFNpemUxOiJjaGF0U2l6ZTEiLGNoYXRTaXplMjoiY2hhdFNpemUyIixjaGF0U2l6ZTM6ImNoYXRTaXplMyIsbW9iaWxlOiJtb2JpbGUiLGR5bmFtaWM6ImR5bmFtaWMifSxsPShyPXt9LGEoKShyLGMub25seUJ1YmJsZSx7d2lkdGg6Ijk0cHgiLGhlaWdodDoiOTRweCIsYm90dG9tOiIzNXB4IixyaWdodDoiOXB4IixsZWZ0OiI5cHgifSksYSgpKHIsYy5vbmx5QnViYmxlU21hbGwse3dpZHRoOiI2MHB4IixoZWlnaHQ6IjYwcHgiLGJvdHRvbToiMjBweCIscmlnaHQ6IjEwcHgiLGxlZnQ6IjEwcHgifSksYSgpKHIsYy5vbmx5QnViYmxlTWVkaXVtLHt3aWR0aDoiODBweCIsaGVpZ2h0OiI4MHB4Iixib3R0b206IjEwcHgifSksYSgpKHIsYy5vbmx5QnViYmxlTGFyZ2Use3dpZHRoOiI5NHB4IixoZWlnaHQ6Ijk0cHgiLGJvdHRvbToiMTVweCIscmlnaHQ6Ii03cHgiLGxlZnQ6Ii03cHgifSksYSgpKHIsYy5idWJibGVXaXRoTGFiZWwse2JvdHRvbToiMzVweCIscmlnaHQ6IjlweCIsbGVmdDoiOXB4In0pLGEoKShyLGMub25seVNpZGViYXIse2JvdHRvbToiNTAlIn0pLHIpLGY9T2JqZWN0KHMuYSkoKT8iMzBweCA0N3B4IDQ3cHggNDdweCI6IjQ3cHggMzBweCA0N3B4IDQ3cHgiLGQ9KG89e30sYSgpKG8sYy5vbmx5QnViYmxlLHt3aWR0aDoiMTEycHgiLGhlaWdodDoiMTQwcHgifSksYSgpKG8sYy5vbmx5QnViYmxlU21hbGwse3dpZHRoOiI3MHB4IixoZWlnaHQ6Ijc1cHgifSksYSgpKG8sYy5vbmx5QnViYmxlTWVkaXVtLHt3aWR0aDoiODBweCIsaGVpZ2h0OiI4NXB4In0pLGEoKShvLGMub25seVNpZGViYXIse3dpZHRoOiI2MHB4IixoZWlnaHQ6IjM1MHB4Iixib3R0b206IjUwJSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDUwJSkifSksYSgpKG8sYy5jaGF0U2l6ZTEse3dpZHRoOiI0NTBweCIsaGVpZ2h0OiIiLmNvbmNhdCg2NDcsInB4IiksbWF4SGVpZ2h0OiIxMDAlIn0pLGEoKShvLGMuY2hhdFNpemUyLHt3aWR0aDoiNDUwcHgiLGhlaWdodDoiIi5jb25jYXQoNjQ3K3UsInB4IiksbWF4SGVpZ2h0OiIxMDAlIn0pLGEoKShvLGMuY2hhdFNpemUzLHt3aWR0aDoiNDUwcHgiLGhlaWdodDoiIi5jb25jYXQoNjQ3KzIqdSwicHgiKSxtYXhIZWlnaHQ6IjEwMCUifSksYSgpKG8sYy5tb2JpbGUse3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifSksYSgpKG8sImR5bmFtaWMiLHt3aWR0aDoiNDUwcHgiLGhlaWdodDoiIi5jb25jYXQoNjQ3LCJweCIpLG1heEhlaWdodDoiMTAwJSJ9KSxvKSxwPWZ1bmN0aW9uKGUpe3JldHVybiBkW2VdfHxkW2MuZHluYW1pY119LGg9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lOyJzdHJpbmciPT09dHlwZW9mIGUmJihlLmluY2x1ZGVzKCJweCIpfHxlLmluY2x1ZGVzKCIlIil8fChuPSIiLmNvbmNhdChlLCJweCIpKSk7dmFyIHI9dDsic3RyaW5nIj09PXR5cGVvZiB0JiYodC5pbmNsdWRlcygicHgiKXx8dC5pbmNsdWRlcygiJSIpfHwocj0iIi5jb25jYXQodCwicHgiKSkpLGQuZHluYW1pYz17d2lkdGg6InN0cmluZyI9PT10eXBlb2Ygbj9uOiIiLmNvbmNhdChuLCJweCIpLGhlaWdodDoic3RyaW5nIj09PXR5cGVvZiByP3I6IiIuY29uY2F0KHIsInB4Iil9fX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT1lKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitlKTtyZXR1cm4gZX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQxKSxvPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZT4wP28ocihlKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMjApLG89bigyNiksaT1uKDQ4KTtlLmV4cG9ydHM9cj9mdW5jdGlvbihlLHQsbil7cmV0dXJuIG8uZihlLHQsaSgxLG4pKX06ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlW3RdPW4sZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBvfSkpLG4uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKTt2YXIgcj1uKDIpLG89e3dpZGdldExvYWRlZDoid2lkZ2V0TG9hZGVkIixwcmVjaGF0T3BlbmVkOiJwcmVjaGF0T3BlbmVkIixhbHdheXNPbmxpbmVPcGVuZWQ6ImFsd2F5c09ubGluZU9wZW5lZCIsY2xvc2VNb2RhbENsaWNrZWQ6ImNsb3NlTW9kYWxDbGlja2VkIixyYXRlQ29udmVyc2F0aW9uQ2xpY2tlZDoicmF0ZUNvbnZlcnNhdGlvbkNsaWNrZWQiLGNhcmRzU2Nyb2xsZWQ6ImNhcmRzU2Nyb2xsZWQiLHF1aWNrUmVwbHlDbGlja2VkOiJxdWlja1JlcGx5Q2xpY2tlZCIsYnV0dG9uQ2xpY2tlZDoiYnV0dG9uQ2xpY2tlZCIsZmx5TWVzc2FnZURpc3BsYXllZDoiZmx5TWVzc2FnZURpc3BsYXllZCIsZmx5TWVzc2FnZUNsb3NlZDoiZmx5TWVzc2FnZUNsb3NlZCIsZmx5TWVzc2FnZUNsaWNrZWQ6ImZseU1lc3NhZ2VDbGlja2VkIix3aWRnZXRMYWJlbENsaWNrZWQ6IndpZGdldExhYmVsQ2xpY2tlZCIsd2lkZ2V0SWNvbkNsaWNrZWQ6IndpZGdldEljb25DbGlja2VkIixlbW9qaVBhbmVsT3BlbmVkOiJlbW9qaVBhbmVsT3BlbmVkIixlbW9qaUFkZGVkOiJlbW9qaUFkZGVkIixub3RpZmljYXRpb25zVHVybmVkT2ZmOiJub3RpZmljYXRpb25zVHVybmVkT2ZmIixub3RpZmljYXRpb25zVHVybmVkT246Im5vdGlmaWNhdGlvbnNUdXJuZWRPbiIsYm90c0J1dHRvbkNsaWNrZWQ6ImJvdHNCdXR0b25DbGlja2VkIixmbHlNZXNzYWdlQnV0dG9uc0NsaWNrZWQ6ImZseU1lc3NhZ2VCdXR0b25zQ2xpY2tlZCIsYm90U3RhcnRlZEZyb21Cb3RzTWVudToiYm90U3RhcnRlZEZyb21Cb3RzTWVudSIsYm90Q2FuY2VsZWQ6ImJvdENhbmNlbGVkIix1cGxvYWRCdXR0b25DbGlja2VkOiJ1cGxvYWRCdXR0b25DbGlja2VkIixjaGF0Q2xvc2VkOiJjaGF0Q2xvc2VkIixvcHRpb25zQnV0dG9uQ2xpY2tlZDoib3B0aW9uc0J1dHRvbkNsaWNrZWQiLHNob3dQcmV2aW91c01lc3NhZ2VzQ2xpY2tlZDoic2hvd1ByZXZpb3VzTWVzc2FnZXNDbGlja2VkIix0aWRpb0NoYXRBcGlGdW5jdGlvbkNhbGw6InRpZGlvQ2hhdEFwaUZ1bmN0aW9uQ2FsbCIsaW1hZ2VNb2RhbERpc3BsYXllZDoiaW1hZ2VNb2RhbERpc3BsYXllZCIsaW1hZ2VNb2RhbENsb3NlZDoiaW1hZ2VNb2RhbENsb3NlZCIsZnVsbENvbnZlcnNhdGlvbkhpc3RvcnlSZXF1ZXN0ZWQ6ImZ1bGxDb252ZXJzYXRpb25IaXN0b3J5UmVxdWVzdGVkIix3aGl0ZWxhYmVsaW5nRW5hYmxlZDoid2hpdGVsYWJlbGluZ0VuYWJsZWQifSxpPWZ1bmN0aW9uKGUpe3ZhciB0PSJ0cmFja1dpZGdldEV2ZW50XyIuY29uY2F0KGUpO3JldHVybiEhT2JqZWN0KHIuYSkodCl8fChPYmplY3Qoci5nKSh0LDEpLCExKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDIwKSxvPW4oOTIpLGk9bigxNCksYT1uKDQ5KSxzPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt0LmY9cj9zOmZ1bmN0aW9uKGUsdCxuKXtpZihpKGUpLHQ9YSh0LCEwKSxpKG4pLG8pdHJ5e3JldHVybiBzKGUsdCxuKX1jYXRjaChyKXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgVHlwZUVycm9yKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpO3JldHVybiJ2YWx1ZSJpbiBuJiYoZVt0XT1uLnZhbHVlKSxlfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX19LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fWUuZXhwb3J0cz1mdW5jdGlvbihlLHQscil7cmV0dXJuIHQmJm4oZS5wcm90b3R5cGUsdCksciYmbihlLHIpLGV9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big5KSxvPW4oOCksaT1uKDY3KSxhPVtdLnNsaWNlLHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLG89cj9hLmNhbGwoYXJndW1lbnRzLDIpOnZvaWQgMDtyZXR1cm4gZShyP2Z1bmN0aW9uKCl7KCJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RnVuY3Rpb24odCkpLmFwcGx5KHRoaXMsbyl9OnQsbil9fTtyKHtnbG9iYWw6ITAsYmluZDohMCxmb3JjZWQ6L01TSUUgLlwuLy50ZXN0KGkpfSx7c2V0VGltZW91dDpzKG8uc2V0VGltZW91dCksc2V0SW50ZXJ2YWw6cyhvLnNldEludGVydmFsKX0pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big4KSxvPW4oMjQpLGk9bigxOCksYT1uKDYwKSxzPW4oNzUpLHU9big2MiksYz11LmdldCxsPXUuZW5mb3JjZSxmPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKTsoZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHMpe3ZhciB1LGM9ISFzJiYhIXMudW5zYWZlLGQ9ISFzJiYhIXMuZW51bWVyYWJsZSxwPSEhcyYmISFzLm5vVGFyZ2V0R2V0OyJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoInN0cmluZyIhPXR5cGVvZiB0fHxpKG4sIm5hbWUiKXx8byhuLCJuYW1lIix0KSwodT1sKG4pKS5zb3VyY2V8fCh1LnNvdXJjZT1mLmpvaW4oInN0cmluZyI9PXR5cGVvZiB0P3Q6IiIpKSksZSE9PXI/KGM/IXAmJmVbdF0mJihkPSEwKTpkZWxldGUgZVt0XSxkP2VbdF09bjpvKGUsdCxuKSk6ZD9lW3RdPW46YSh0LG4pfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJmModGhpcykuc291cmNlfHxzKHRoaXMpfSkpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyNjQpLG89bigyNjUpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGk9dCYmbnx8MDsic3RyaW5nIj09dHlwZW9mIGUmJih0PSJiaW5hcnkiPT09ZT9uZXcgQXJyYXkoMTYpOm51bGwsZT1udWxsKTt2YXIgYT0oZT1lfHx7fSkucmFuZG9tfHwoZS5ybmd8fHIpKCk7aWYoYVs2XT0xNSZhWzZdfDY0LGFbOF09NjMmYVs4XXwxMjgsdClmb3IodmFyIHM9MDtzPDE2Oysrcyl0W2krc109YVtzXTtyZXR1cm4gdHx8byhhKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big5KSxvPW4oNTEpO3Ioe3RhcmdldDoiUmVnRXhwIixwcm90bzohMCxmb3JjZWQ6Ly4vLmV4ZWMhPT1vfSx7ZXhlYzpvfSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDIyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChyKGUpKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDc0KSxvPW4oMjIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihvKGUpKX19LGZ1bmN0aW9uKGUsdCl7dmFyIG49e30udG9TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwoZSkuc2xpY2UoOCwtMSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDEwKSxpPW4oNjQpLGE9bigxNSkscz1uKDMzKSx1PW4oMjMpLGM9big4OCksbD1uKDEwMCksZj1uKDY1KSxkPW4oMTIpLHA9big2NiksaD1kKCJpc0NvbmNhdFNwcmVhZGFibGUiKSx2PXA+PTUxfHwhbygoZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gZVtoXT0hMSxlLmNvbmNhdCgpWzBdIT09ZX0pKSxnPWYoImNvbmNhdCIpLHk9ZnVuY3Rpb24oZSl7aWYoIWEoZSkpcmV0dXJuITE7dmFyIHQ9ZVtoXTtyZXR1cm4gdm9pZCAwIT09dD8hIXQ6aShlKX07cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiF2fHwhZ30se2NvbmNhdDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxpLGE9cyh0aGlzKSxmPWwoYSwwKSxkPTA7Zm9yKHQ9LTEscj1hcmd1bWVudHMubGVuZ3RoO3Q8cjt0KyspaWYoeShpPS0xPT09dD9hOmFyZ3VtZW50c1t0XSkpe2lmKGQrKG89dShpLmxlbmd0aCkpPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgVHlwZUVycm9yKCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtmb3Iobj0wO248bztuKyssZCsrKW4gaW4gaSYmYyhmLGQsaVtuXSl9ZWxzZXtpZihkPj05MDA3MTk5MjU0NzQwOTkxKXRocm93IFR5cGVFcnJvcigiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7YyhmLGQrKyxpKX1yZXR1cm4gZi5sZW5ndGg9ZCxmfX0pfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDkxKS5maWx0ZXIsaT1uKDY1KSxhPW4oNDApLHM9aSgiZmlsdGVyIiksdT1hKCJmaWx0ZXIiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IXN8fCF1fSx7ZmlsdGVyOmZ1bmN0aW9uKGUpe3JldHVybiBvKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQsImYiLChmdW5jdGlvbigpe3JldHVybiBhfSkpLG4uZCh0LCJlIiwoZnVuY3Rpb24oKXtyZXR1cm4gdX0pKSxuLmQodCwiZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSksbi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBsfSkpLG4uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gZn0pKSxuLmQodCwiaSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGR9KSksbi5kKHQsImoiLChmdW5jdGlvbigpe3JldHVybiBwfSkpLG4uZCh0LCJrIiwoZnVuY3Rpb24oKXtyZXR1cm4gaH0pKSxuLmQodCwiaCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHZ9KSksbi5kKHQsImwiLChmdW5jdGlvbigpe3JldHVybiBnfSkpLG4uZCh0LCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4geX0pKSxuLmQodCwiZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIG19KSk7bigzNyksbig1NiksbigxODIpLG4oNTcpO3ZhciByPW4oMSksbz1uKDYpLGk9bigxMSksYT1mdW5jdGlvbihlLHQpe3ZhciBuPWUub3BlcmF0b3JzLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dH0pKTtyZXR1cm4gbiYmbnx8e2lkOiIifX0scz1mdW5jdGlvbihlLHQpe3JldHVybiBlLm1lc3NhZ2VzLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT10fSkpfSx1PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubWVzc2FnZXMuZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gZS50eXBlPT09dH0pKX0sYz1mdW5jdGlvbihlKXtyZXR1cm4gcyhlLCJwcmVDaGF0Iil9LGw9ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgcyhlLCJhbHdheXNPbmxpbmUiKX0sZj1mdW5jdGlvbihlLHQpe3JldHVybiBlLm1lc3NhZ2VzLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PXR9KSl9LGQ9ZnVuY3Rpb24oZSl7dHJ5e3ZhciB0PWZ1bmN0aW9uKGUpe3ZhciB0PWYoZSwiYWx3YXlzT25saW5lIik7cmV0dXJuIHQubGVuZ3RoPjA/dFt0Lmxlbmd0aC0xXTp2b2lkIDB9KGUpO3JldHVybiBuPXQsT2JqZWN0KHIubykoKS0zNjAwPj1uLnRpbWVfc2VudH1jYXRjaChpKXtyZXR1cm4gT2JqZWN0KG8uYSkoaSksITF9dmFyIG59LHA9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLm1lc3NhZ2VzLmxlbmd0aC0xO3JldHVybiBlLm1lc3NhZ2VzW25dLmlkPT09dH0saD1mdW5jdGlvbihlKXt2YXIgdD1lLm1lc3NhZ2VzLG49dC5sZW5ndGg+MD90W3QubGVuZ3RoLTFdLnRpbWVfc2VudDowO3JldHVybiBNYXRoLmZsb29yKChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFlMyktbj44NjQwMH0sdj1mdW5jdGlvbihlKXtyZXR1cm4gZS53aWRnZXRMYWJlbFN0YXR1cyYmIWUuaXNNb2JpbGUmJiExPT09ZS5zaWRlYmFySWZyYW1lU3R5bGVzfSxnPWZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdChpLmQpKGUucHJlQ2hhdC5kYXRhLGUudmlzaXRvcik7cmV0dXJuIWZ1bmN0aW9uKGUpe3JldHVybiBlLnByZUNoYXQuaXNGaWxsZWR9KGUpJiYwIT09dC5sZW5ndGh9LHk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNBd2Vzb21lSWZyYW1lJiYhMT09PWUuc2lkZWJhcklmcmFtZVN0eWxlcyYmZS5wbGF0Zm9ybSE9PXIuTC53aXh9LG09ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWVzc2FnZUZvckZseXx8bnVsbH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big5KSxvPW4oOTgpLmluY2x1ZGVzLGk9bigxMTcpO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohbig0MCkoImluZGV4T2YiLHtBQ0NFU1NPUlM6ITAsMTowfSl9LHtpbmNsdWRlczpmdW5jdGlvbihlKXtyZXR1cm4gbyh0aGlzLGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGkoImluY2x1ZGVzIil9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDIwKSxvPW4oMTApLGk9bigxOCksYT1PYmplY3QuZGVmaW5lUHJvcGVydHkscz17fSx1PWZ1bmN0aW9uKGUpe3Rocm93IGV9O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKGkocyxlKSlyZXR1cm4gc1tlXTt0fHwodD17fSk7dmFyIG49W11bZV0sYz0hIWkodCwiQUNDRVNTT1JTIikmJnQuQUNDRVNTT1JTLGw9aSh0LDApP3RbMF06dSxmPWkodCwxKT90WzFdOnZvaWQgMDtyZXR1cm4gc1tlXT0hIW4mJiFvKChmdW5jdGlvbigpe2lmKGMmJiFyKXJldHVybiEwO3ZhciBlPXtsZW5ndGg6LTF9O2M/YShlLDEse2VudW1lcmFibGU6ITAsZ2V0OnV9KTplWzFdPTEsbi5jYWxsKGUsbCxmKX0pKX19LGZ1bmN0aW9uKGUsdCl7dmFyIG49TWF0aC5jZWlsLHI9TWF0aC5mbG9vcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGlzTmFOKGU9K2UpPzA6KGU+MD9yOm4pKGUpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBvfSkpO3ZhciByPSJlbWFpbENvbnNlbnQiLG89ImRlcGFydG1lbnRfaWQifSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNCksbz1uLm4ociksaT0obigyMTApLG8uYS5jcmVhdGVDb250ZXh0KG51bGwpKTt2YXIgYT1mdW5jdGlvbihlKXtlKCl9LHM9e25vdGlmeTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHUoKXt2YXIgZT1hLHQ9bnVsbCxuPW51bGw7cmV0dXJue2NsZWFyOmZ1bmN0aW9uKCl7dD1udWxsLG49bnVsbH0sbm90aWZ5OmZ1bmN0aW9uKCl7ZSgoZnVuY3Rpb24oKXtmb3IodmFyIGU9dDtlOyllLmNhbGxiYWNrKCksZT1lLm5leHR9KSl9LGdldDpmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxuPXQ7bjspZS5wdXNoKG4pLG49bi5uZXh0O3JldHVybiBlfSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSl7dmFyIHI9ITAsbz1uPXtjYWxsYmFjazplLG5leHQ6bnVsbCxwcmV2Om59O3JldHVybiBvLnByZXY/by5wcmV2Lm5leHQ9bzp0PW8sZnVuY3Rpb24oKXtyJiZudWxsIT09dCYmKHI9ITEsby5uZXh0P28ubmV4dC5wcmV2PW8ucHJldjpuPW8ucHJldixvLnByZXY/by5wcmV2Lm5leHQ9by5uZXh0OnQ9by5uZXh0KX19fX12YXIgYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt0aGlzLnN0b3JlPWUsdGhpcy5wYXJlbnRTdWI9dCx0aGlzLnVuc3Vic2NyaWJlPW51bGwsdGhpcy5saXN0ZW5lcnM9cyx0aGlzLmhhbmRsZUNoYW5nZVdyYXBwZXI9dGhpcy5oYW5kbGVDaGFuZ2VXcmFwcGVyLmJpbmQodGhpcyl9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuYWRkTmVzdGVkU3ViPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRyeVN1YnNjcmliZSgpLHRoaXMubGlzdGVuZXJzLnN1YnNjcmliZShlKX0sdC5ub3RpZnlOZXN0ZWRTdWJzPWZ1bmN0aW9uKCl7dGhpcy5saXN0ZW5lcnMubm90aWZ5KCl9LHQuaGFuZGxlQ2hhbmdlV3JhcHBlcj1mdW5jdGlvbigpe3RoaXMub25TdGF0ZUNoYW5nZSYmdGhpcy5vblN0YXRlQ2hhbmdlKCl9LHQuaXNTdWJzY3JpYmVkPWZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy51bnN1YnNjcmliZSl9LHQudHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy51bnN1YnNjcmliZXx8KHRoaXMudW5zdWJzY3JpYmU9dGhpcy5wYXJlbnRTdWI/dGhpcy5wYXJlbnRTdWIuYWRkTmVzdGVkU3ViKHRoaXMuaGFuZGxlQ2hhbmdlV3JhcHBlcik6dGhpcy5zdG9yZS5zdWJzY3JpYmUodGhpcy5oYW5kbGVDaGFuZ2VXcmFwcGVyKSx0aGlzLmxpc3RlbmVycz11KCkpfSx0LnRyeVVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy51bnN1YnNjcmliZSYmKHRoaXMudW5zdWJzY3JpYmUoKSx0aGlzLnVuc3Vic2NyaWJlPW51bGwsdGhpcy5saXN0ZW5lcnMuY2xlYXIoKSx0aGlzLmxpc3RlbmVycz1zKX0sZX0oKTt2YXIgbD1mdW5jdGlvbihlKXt2YXIgdD1lLnN0b3JlLG49ZS5jb250ZXh0LGE9ZS5jaGlsZHJlbixzPU9iamVjdChyLnVzZU1lbW8pKChmdW5jdGlvbigpe3ZhciBlPW5ldyBjKHQpO3JldHVybiBlLm9uU3RhdGVDaGFuZ2U9ZS5ub3RpZnlOZXN0ZWRTdWJzLHtzdG9yZTp0LHN1YnNjcmlwdGlvbjplfX0pLFt0XSksdT1PYmplY3Qoci51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gdC5nZXRTdGF0ZSgpfSksW3RdKTtPYmplY3Qoci51c2VFZmZlY3QpKChmdW5jdGlvbigpe3ZhciBlPXMuc3Vic2NyaXB0aW9uO3JldHVybiBlLnRyeVN1YnNjcmliZSgpLHUhPT10LmdldFN0YXRlKCkmJmUubm90aWZ5TmVzdGVkU3VicygpLGZ1bmN0aW9uKCl7ZS50cnlVbnN1YnNjcmliZSgpLGUub25TdGF0ZUNoYW5nZT1udWxsfX0pLFtzLHVdKTt2YXIgbD1ufHxpO3JldHVybiBvLmEuY3JlYXRlRWxlbWVudChsLlByb3ZpZGVyLHt2YWx1ZTpzfSxhKX07ZnVuY3Rpb24gZigpe3JldHVybihmPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZChlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGk9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb312YXIgcD1uKDE1NCksaD1uLm4ocCksdj1uKDIwMyksZz0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudCYmInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ/ci51c2VMYXlvdXRFZmZlY3Q6ci51c2VFZmZlY3QseT1bXSxtPVtudWxsLG51bGxdO2Z1bmN0aW9uIGIoZSx0KXt2YXIgbj1lWzFdO3JldHVyblt0LnBheWxvYWQsbisxXX1mdW5jdGlvbiB3KGUsdCxuKXtnKChmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHZvaWQgMCx0KX0pLG4pfWZ1bmN0aW9uIE8oZSx0LG4scixvLGksYSl7ZS5jdXJyZW50PXIsdC5jdXJyZW50PW8sbi5jdXJyZW50PSExLGkuY3VycmVudCYmKGkuY3VycmVudD1udWxsLGEoKSl9ZnVuY3Rpb24gXyhlLHQsbixyLG8saSxhLHMsdSxjKXtpZihlKXt2YXIgbD0hMSxmPW51bGwsZD1mdW5jdGlvbigpe2lmKCFsKXt2YXIgZSxuLGQ9dC5nZXRTdGF0ZSgpO3RyeXtlPXIoZCxvLmN1cnJlbnQpfWNhdGNoKHApe249cCxmPXB9bnx8KGY9bnVsbCksZT09PWkuY3VycmVudD9hLmN1cnJlbnR8fHUoKTooaS5jdXJyZW50PWUscy5jdXJyZW50PWUsYS5jdXJyZW50PSEwLGMoe3R5cGU6IlNUT1JFX1VQREFURUQiLHBheWxvYWQ6e2Vycm9yOm59fSkpfX07bi5vblN0YXRlQ2hhbmdlPWQsbi50cnlTdWJzY3JpYmUoKSxkKCk7cmV0dXJuIGZ1bmN0aW9uKCl7aWYobD0hMCxuLnRyeVVuc3Vic2NyaWJlKCksbi5vblN0YXRlQ2hhbmdlPW51bGwsZil0aHJvdyBmfX19dmFyIEU9ZnVuY3Rpb24oKXtyZXR1cm5bbnVsbCwwXX07ZnVuY3Rpb24gQyhlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgbj10LGE9bi5nZXREaXNwbGF5TmFtZSxzPXZvaWQgMD09PWE/ZnVuY3Rpb24oZSl7cmV0dXJuIkNvbm5lY3RBZHZhbmNlZCgiK2UrIikifTphLHU9bi5tZXRob2ROYW1lLGw9dm9pZCAwPT09dT8iY29ubmVjdEFkdmFuY2VkIjp1LHA9bi5yZW5kZXJDb3VudFByb3AsZz12b2lkIDA9PT1wP3ZvaWQgMDpwLEM9bi5zaG91bGRIYW5kbGVTdGF0ZUNoYW5nZXMsUz12b2lkIDA9PT1DfHxDLGs9bi5zdG9yZUtleSx4PXZvaWQgMD09PWs/InN0b3JlIjprLEE9KG4ud2l0aFJlZixuLmZvcndhcmRSZWYpLGo9dm9pZCAwIT09QSYmQSxUPW4uY29udGV4dCxQPXZvaWQgMD09PVQ/aTpULEk9ZChuLFsiZ2V0RGlzcGxheU5hbWUiLCJtZXRob2ROYW1lIiwicmVuZGVyQ291bnRQcm9wIiwic2hvdWxkSGFuZGxlU3RhdGVDaGFuZ2VzIiwic3RvcmVLZXkiLCJ3aXRoUmVmIiwiZm9yd2FyZFJlZiIsImNvbnRleHQiXSksUj1QO3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj10LmRpc3BsYXlOYW1lfHx0Lm5hbWV8fCJDb21wb25lbnQiLGk9cyhuKSxhPWYoe30sSSx7Z2V0RGlzcGxheU5hbWU6cyxtZXRob2ROYW1lOmwscmVuZGVyQ291bnRQcm9wOmcsc2hvdWxkSGFuZGxlU3RhdGVDaGFuZ2VzOlMsc3RvcmVLZXk6eCxkaXNwbGF5TmFtZTppLHdyYXBwZWRDb21wb25lbnROYW1lOm4sV3JhcHBlZENvbXBvbmVudDp0fSksdT1JLnB1cmU7dmFyIHA9dT9yLnVzZU1lbW86ZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX07ZnVuY3Rpb24gQyhuKXt2YXIgaT1PYmplY3Qoci51c2VNZW1vKSgoZnVuY3Rpb24oKXt2YXIgZT1uLnJlYWN0UmVkdXhGb3J3YXJkZWRSZWYsdD1kKG4sWyJyZWFjdFJlZHV4Rm9yd2FyZGVkUmVmIl0pO3JldHVybltuLmNvbnRleHQsZSx0XX0pLFtuXSkscz1pWzBdLHU9aVsxXSxsPWlbMl0saD1PYmplY3Qoci51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gcyYmcy5Db25zdW1lciYmT2JqZWN0KHYuaXNDb250ZXh0Q29uc3VtZXIpKG8uYS5jcmVhdGVFbGVtZW50KHMuQ29uc3VtZXIsbnVsbCkpP3M6Un0pLFtzLFJdKSxnPU9iamVjdChyLnVzZUNvbnRleHQpKGgpLEM9Qm9vbGVhbihuLnN0b3JlKSYmQm9vbGVhbihuLnN0b3JlLmdldFN0YXRlKSYmQm9vbGVhbihuLnN0b3JlLmRpc3BhdGNoKTtCb29sZWFuKGcpJiZCb29sZWFuKGcuc3RvcmUpO3ZhciBrPUM/bi5zdG9yZTpnLnN0b3JlLHg9T2JqZWN0KHIudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQuZGlzcGF0Y2gsYSl9KGspfSksW2tdKSxBPU9iamVjdChyLnVzZU1lbW8pKChmdW5jdGlvbigpe2lmKCFTKXJldHVybiBtO3ZhciBlPW5ldyBjKGssQz9udWxsOmcuc3Vic2NyaXB0aW9uKSx0PWUubm90aWZ5TmVzdGVkU3Vicy5iaW5kKGUpO3JldHVybltlLHRdfSksW2ssQyxnXSksaj1BWzBdLFQ9QVsxXSxQPU9iamVjdChyLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiBDP2c6Zih7fSxnLHtzdWJzY3JpcHRpb246an0pfSksW0MsZyxqXSksST1PYmplY3Qoci51c2VSZWR1Y2VyKShiLHksRSksRD1JWzBdWzBdLE49SVsxXTtpZihEJiZELmVycm9yKXRocm93IEQuZXJyb3I7dmFyIEw9T2JqZWN0KHIudXNlUmVmKSgpLEY9T2JqZWN0KHIudXNlUmVmKShsKSxNPU9iamVjdChyLnVzZVJlZikoKSxCPU9iamVjdChyLnVzZVJlZikoITEpLFU9cCgoZnVuY3Rpb24oKXtyZXR1cm4gTS5jdXJyZW50JiZsPT09Ri5jdXJyZW50P00uY3VycmVudDp4KGsuZ2V0U3RhdGUoKSxsKX0pLFtrLEQsbF0pO3coTyxbRixMLEIsbCxVLE0sVF0pLHcoXyxbUyxrLGoseCxGLEwsQixNLFQsTl0sW2ssaix4XSk7dmFyIHo9T2JqZWN0KHIudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIG8uYS5jcmVhdGVFbGVtZW50KHQsZih7fSxVLHtyZWY6dX0pKX0pLFt1LHQsVV0pO3JldHVybiBPYmplY3Qoci51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gUz9vLmEuY3JlYXRlRWxlbWVudChoLlByb3ZpZGVyLHt2YWx1ZTpQfSx6KTp6fSksW2gseixQXSl9dmFyIGs9dT9vLmEubWVtbyhDKTpDO2lmKGsuV3JhcHBlZENvbXBvbmVudD10LGsuZGlzcGxheU5hbWU9aSxqKXt2YXIgQT1vLmEuZm9yd2FyZFJlZigoZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5hLmNyZWF0ZUVsZW1lbnQoayxmKHt9LGUse3JlYWN0UmVkdXhGb3J3YXJkZWRSZWY6dH0pKX0pKTtyZXR1cm4gQS5kaXNwbGF5TmFtZT1pLEEuV3JhcHBlZENvbXBvbmVudD10LGgoKShBLHQpfXJldHVybiBoKCkoayx0KX19ZnVuY3Rpb24gUyhlLHQpe3JldHVybiBlPT09dD8wIT09ZXx8MCE9PXR8fDEvZT09PTEvdDplIT09ZSYmdCE9PXR9ZnVuY3Rpb24gayhlLHQpe2lmKFMoZSx0KSlyZXR1cm4hMDtpZigib2JqZWN0IiE9PXR5cGVvZiBlfHxudWxsPT09ZXx8Im9iamVjdCIhPT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7dmFyIG49T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKWlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuW29dKXx8IVMoZVtuW29dXSx0W25bb11dKSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgeD1uKDcwKTtmdW5jdGlvbiBBKGUpe3JldHVybiBmdW5jdGlvbih0LG4pe3ZhciByPWUodCxuKTtmdW5jdGlvbiBvKCl7cmV0dXJuIHJ9cmV0dXJuIG8uZGVwZW5kc09uT3duUHJvcHM9ITEsb319ZnVuY3Rpb24gaihlKXtyZXR1cm4gbnVsbCE9PWUuZGVwZW5kc09uT3duUHJvcHMmJnZvaWQgMCE9PWUuZGVwZW5kc09uT3duUHJvcHM/Qm9vbGVhbihlLmRlcGVuZHNPbk93blByb3BzKToxIT09ZS5sZW5ndGh9ZnVuY3Rpb24gVChlLHQpe3JldHVybiBmdW5jdGlvbih0LG4pe24uZGlzcGxheU5hbWU7dmFyIHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5kZXBlbmRzT25Pd25Qcm9wcz9yLm1hcFRvUHJvcHMoZSx0KTpyLm1hcFRvUHJvcHMoZSl9O3JldHVybiByLmRlcGVuZHNPbk93blByb3BzPSEwLHIubWFwVG9Qcm9wcz1mdW5jdGlvbih0LG4pe3IubWFwVG9Qcm9wcz1lLHIuZGVwZW5kc09uT3duUHJvcHM9aihlKTt2YXIgbz1yKHQsbik7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBvJiYoci5tYXBUb1Byb3BzPW8sci5kZXBlbmRzT25Pd25Qcm9wcz1qKG8pLG89cih0LG4pKSxvfSxyfX12YXIgUD1bZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBlP1QoZSk6dm9pZCAwfSxmdW5jdGlvbihlKXtyZXR1cm4gZT92b2lkIDA6QSgoZnVuY3Rpb24oZSl7cmV0dXJue2Rpc3BhdGNoOmV9fSkpfSxmdW5jdGlvbihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PT10eXBlb2YgZT9BKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0KHguYikoZSx0KX0pKTp2b2lkIDB9XTt2YXIgST1bZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBlP1QoZSk6dm9pZCAwfSxmdW5jdGlvbihlKXtyZXR1cm4gZT92b2lkIDA6QSgoZnVuY3Rpb24oKXtyZXR1cm57fX0pKX1dO2Z1bmN0aW9uIFIoZSx0LG4pe3JldHVybiBmKHt9LG4sZSx0KX12YXIgRD1bZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBlP2Z1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4pe24uZGlzcGxheU5hbWU7dmFyIHIsbz1uLnB1cmUsaT1uLmFyZU1lcmdlZFByb3BzRXF1YWwsYT0hMTtyZXR1cm4gZnVuY3Rpb24odCxuLHMpe3ZhciB1PWUodCxuLHMpO3JldHVybiBhP28mJmkodSxyKXx8KHI9dSk6KGE9ITAscj11KSxyfX19KGUpOnZvaWQgMH0sZnVuY3Rpb24oZSl7cmV0dXJuIGU/dm9pZCAwOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9fV07ZnVuY3Rpb24gTihlLHQsbixyKXtyZXR1cm4gZnVuY3Rpb24obyxpKXtyZXR1cm4gbihlKG8saSksdChyLGkpLGkpfX1mdW5jdGlvbiBMKGUsdCxuLHIsbyl7dmFyIGksYSxzLHUsYyxsPW8uYXJlU3RhdGVzRXF1YWwsZj1vLmFyZU93blByb3BzRXF1YWwsZD1vLmFyZVN0YXRlUHJvcHNFcXVhbCxwPSExO2Z1bmN0aW9uIGgobyxwKXt2YXIgaD0hZihwLGEpLHY9IWwobyxpKTtyZXR1cm4gaT1vLGE9cCxoJiZ2PyhzPWUoaSxhKSx0LmRlcGVuZHNPbk93blByb3BzJiYodT10KHIsYSkpLGM9bihzLHUsYSkpOmg/KGUuZGVwZW5kc09uT3duUHJvcHMmJihzPWUoaSxhKSksdC5kZXBlbmRzT25Pd25Qcm9wcyYmKHU9dChyLGEpKSxjPW4ocyx1LGEpKTp2P2Z1bmN0aW9uKCl7dmFyIHQ9ZShpLGEpLHI9IWQodCxzKTtyZXR1cm4gcz10LHImJihjPW4ocyx1LGEpKSxjfSgpOmN9cmV0dXJuIGZ1bmN0aW9uKG8sbCl7cmV0dXJuIHA/aChvLGwpOihzPWUoaT1vLGE9bCksdT10KHIsYSksYz1uKHMsdSxhKSxwPSEwLGMpfX1mdW5jdGlvbiBGKGUsdCl7dmFyIG49dC5pbml0TWFwU3RhdGVUb1Byb3BzLHI9dC5pbml0TWFwRGlzcGF0Y2hUb1Byb3BzLG89dC5pbml0TWVyZ2VQcm9wcyxpPWQodCxbImluaXRNYXBTdGF0ZVRvUHJvcHMiLCJpbml0TWFwRGlzcGF0Y2hUb1Byb3BzIiwiaW5pdE1lcmdlUHJvcHMiXSksYT1uKGUsaSkscz1yKGUsaSksdT1vKGUsaSk7cmV0dXJuKGkucHVyZT9MOk4pKGEscyx1LGUsaSl9ZnVuY3Rpb24gTShlLHQsbil7Zm9yKHZhciByPXQubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBvPXRbcl0oZSk7aWYobylyZXR1cm4gb31yZXR1cm4gZnVuY3Rpb24odCxyKXt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFsdWUgb2YgdHlwZSAiK3R5cGVvZiBlKyIgZm9yICIrbisiIGFyZ3VtZW50IHdoZW4gY29ubmVjdGluZyBjb21wb25lbnQgIityLndyYXBwZWRDb21wb25lbnROYW1lKyIuIil9fWZ1bmN0aW9uIEIoZSx0KXtyZXR1cm4gZT09PXR9ZnVuY3Rpb24gVShlKXt2YXIgdD12b2lkIDA9PT1lP3t9OmUsbj10LmNvbm5lY3RIT0Mscj12b2lkIDA9PT1uP0M6bixvPXQubWFwU3RhdGVUb1Byb3BzRmFjdG9yaWVzLGk9dm9pZCAwPT09bz9JOm8sYT10Lm1hcERpc3BhdGNoVG9Qcm9wc0ZhY3RvcmllcyxzPXZvaWQgMD09PWE/UDphLHU9dC5tZXJnZVByb3BzRmFjdG9yaWVzLGM9dm9pZCAwPT09dT9EOnUsbD10LnNlbGVjdG9yRmFjdG9yeSxwPXZvaWQgMD09PWw/RjpsO3JldHVybiBmdW5jdGlvbihlLHQsbixvKXt2b2lkIDA9PT1vJiYobz17fSk7dmFyIGE9byx1PWEucHVyZSxsPXZvaWQgMD09PXV8fHUsaD1hLmFyZVN0YXRlc0VxdWFsLHY9dm9pZCAwPT09aD9COmgsZz1hLmFyZU93blByb3BzRXF1YWwseT12b2lkIDA9PT1nP2s6ZyxtPWEuYXJlU3RhdGVQcm9wc0VxdWFsLGI9dm9pZCAwPT09bT9rOm0sdz1hLmFyZU1lcmdlZFByb3BzRXF1YWwsTz12b2lkIDA9PT13P2s6dyxfPWQoYSxbInB1cmUiLCJhcmVTdGF0ZXNFcXVhbCIsImFyZU93blByb3BzRXF1YWwiLCJhcmVTdGF0ZVByb3BzRXF1YWwiLCJhcmVNZXJnZWRQcm9wc0VxdWFsIl0pLEU9TShlLGksIm1hcFN0YXRlVG9Qcm9wcyIpLEM9TSh0LHMsIm1hcERpc3BhdGNoVG9Qcm9wcyIpLFM9TShuLGMsIm1lcmdlUHJvcHMiKTtyZXR1cm4gcihwLGYoe21ldGhvZE5hbWU6ImNvbm5lY3QiLGdldERpc3BsYXlOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiJDb25uZWN0KCIrZSsiKSJ9LHNob3VsZEhhbmRsZVN0YXRlQ2hhbmdlczpCb29sZWFuKGUpLGluaXRNYXBTdGF0ZVRvUHJvcHM6RSxpbml0TWFwRGlzcGF0Y2hUb1Byb3BzOkMsaW5pdE1lcmdlUHJvcHM6UyxwdXJlOmwsYXJlU3RhdGVzRXF1YWw6dixhcmVPd25Qcm9wc0VxdWFsOnksYXJlU3RhdGVQcm9wc0VxdWFsOmIsYXJlTWVyZ2VkUHJvcHNFcXVhbDpPfSxfKSl9fXZhciB6PVUoKTtmdW5jdGlvbiBWKCl7cmV0dXJuIE9iamVjdChyLnVzZUNvbnRleHQpKGkpfWZ1bmN0aW9uIEgoZSl7dm9pZCAwPT09ZSYmKGU9aSk7dmFyIHQ9ZT09PWk/VjpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qoci51c2VDb250ZXh0KShlKX07cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5zdG9yZX19dmFyIFc9SCgpO2Z1bmN0aW9uIHEoZSl7dm9pZCAwPT09ZSYmKGU9aSk7dmFyIHQ9ZT09PWk/VzpIKGUpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KCkuZGlzcGF0Y2h9fXZhciAkPXEoKSxZPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fTtmdW5jdGlvbiBHKGUpe3ZvaWQgMD09PWUmJihlPWkpO3ZhciB0PWU9PT1pP1Y6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIudXNlQ29udGV4dCkoZSl9O3JldHVybiBmdW5jdGlvbihlLG4pe3ZvaWQgMD09PW4mJihuPVkpO3ZhciBvPXQoKSxpPWZ1bmN0aW9uKGUsdCxuLG8pe3ZhciBpLGE9T2JqZWN0KHIudXNlUmVkdWNlcikoKGZ1bmN0aW9uKGUpe3JldHVybiBlKzF9KSwwKVsxXSxzPU9iamVjdChyLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiBuZXcgYyhuLG8pfSksW24sb10pLHU9T2JqZWN0KHIudXNlUmVmKSgpLGw9T2JqZWN0KHIudXNlUmVmKSgpLGY9T2JqZWN0KHIudXNlUmVmKSgpLGQ9T2JqZWN0KHIudXNlUmVmKSgpLHA9bi5nZXRTdGF0ZSgpO3RyeXtpPWUhPT1sLmN1cnJlbnR8fHAhPT1mLmN1cnJlbnR8fHUuY3VycmVudD9lKHApOmQuY3VycmVudH1jYXRjaChoKXt0aHJvdyB1LmN1cnJlbnQmJihoLm1lc3NhZ2UrPSJcblRoZSBlcnJvciBtYXkgYmUgY29ycmVsYXRlZCB3aXRoIHRoaXMgcHJldmlvdXMgZXJyb3I6XG4iK3UuY3VycmVudC5zdGFjaysiXG5cbiIpLGh9cmV0dXJuIGcoKGZ1bmN0aW9uKCl7bC5jdXJyZW50PWUsZi5jdXJyZW50PXAsZC5jdXJyZW50PWksdS5jdXJyZW50PXZvaWQgMH0pKSxnKChmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0cnl7dmFyIGU9bC5jdXJyZW50KG4uZ2V0U3RhdGUoKSk7aWYodChlLGQuY3VycmVudCkpcmV0dXJuO2QuY3VycmVudD1lfWNhdGNoKGgpe3UuY3VycmVudD1ofWEoKX1yZXR1cm4gcy5vblN0YXRlQ2hhbmdlPWUscy50cnlTdWJzY3JpYmUoKSxlKCksZnVuY3Rpb24oKXtyZXR1cm4gcy50cnlVbnN1YnNjcmliZSgpfX0pLFtuLHNdKSxpfShlLG4sby5zdG9yZSxvLnN1YnNjcmlwdGlvbik7cmV0dXJuIE9iamVjdChyLnVzZURlYnVnVmFsdWUpKGkpLGl9fXZhciBLLFg9RygpLFE9bigxMDgpO24uZCh0LCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gbH0pKSxuLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHp9KSksbi5kKHQsImMiLChmdW5jdGlvbigpe3JldHVybiAkfSkpLG4uZCh0LCJkIiwoZnVuY3Rpb24oKXtyZXR1cm4gWH0pKSxLPVEudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMsYT1LfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMjA1KSxvPW4ubihyKSxpPW4oNCksYT1uKDE2NCk7ZnVuY3Rpb24gcyhlLHQsbil7dmFyIHI9IiI7cmV0dXJuIG4uc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihuKXt2b2lkIDAhPT1lW25dP3QucHVzaChlW25dKTpyKz1uKyIgIn0pKSxyfXZhciB1PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmtleSsiLSIrdC5uYW1lO2lmKCExPT09biYmdm9pZCAwPT09ZS5yZWdpc3RlcmVkW3JdJiYoZS5yZWdpc3RlcmVkW3JdPXQuc3R5bGVzKSx2b2lkIDA9PT1lLmluc2VydGVkW3QubmFtZV0pe3ZhciBvPXQ7ZG97ZS5pbnNlcnQoIi4iK3IsbyxlLnNoZWV0LCEwKTtvPW8ubmV4dH13aGlsZSh2b2lkIDAhPT1vKX19LGM9big3MSksbD1uKDEyNCksZj1uKDExMCk7bi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBofSkpLG4uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gT30pKSxuLmQodCwiZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHd9KSksbi5kKHQsImMiLChmdW5jdGlvbigpe3JldHVybiBmLmF9KSk7dmFyIGQ9T2JqZWN0KGkuY3JlYXRlQ29udGV4dCkoInVuZGVmaW5lZCIhPT10eXBlb2YgSFRNTEVsZW1lbnQ/T2JqZWN0KGEuYSkoKTpudWxsKSxwPU9iamVjdChpLmNyZWF0ZUNvbnRleHQpKHt9KSxoPWQuUHJvdmlkZXIsdj1mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KGkuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIE9iamVjdChpLmNyZWF0ZUVsZW1lbnQpKGQuQ29uc3VtZXIsbnVsbCwoZnVuY3Rpb24ocil7cmV0dXJuIGUodCxyLG4pfSkpfSkpfSxnPSJfX0VNT1RJT05fVFlQRV9QTEVBU0VfRE9fTk9UX1VTRV9fIix5PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbT1mdW5jdGlvbihlLHQsbixyKXt2YXIgbz1udWxsPT09bj90LmNzczp0LmNzcyhuKTsic3RyaW5nIj09PXR5cGVvZiBvJiZ2b2lkIDAhPT1lLnJlZ2lzdGVyZWRbb10mJihvPWUucmVnaXN0ZXJlZFtvXSk7dmFyIGE9dFtnXSxsPVtvXSxmPSIiOyJzdHJpbmciPT09dHlwZW9mIHQuY2xhc3NOYW1lP2Y9cyhlLnJlZ2lzdGVyZWQsbCx0LmNsYXNzTmFtZSk6bnVsbCE9dC5jbGFzc05hbWUmJihmPXQuY2xhc3NOYW1lKyIgIik7dmFyIGQ9T2JqZWN0KGMuYSkobCk7dShlLGQsInN0cmluZyI9PT10eXBlb2YgYSk7Zis9ZS5rZXkrIi0iK2QubmFtZTt2YXIgcD17fTtmb3IodmFyIGggaW4gdCl5LmNhbGwodCxoKSYmImNzcyIhPT1oJiZoIT09ZyYmKHBbaF09dFtoXSk7cmV0dXJuIHAucmVmPXIscC5jbGFzc05hbWU9ZixPYmplY3QoaS5jcmVhdGVFbGVtZW50KShhLHApfSxiPXYoKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGUuY3NzP09iamVjdChpLmNyZWF0ZUVsZW1lbnQpKHAuQ29uc3VtZXIsbnVsbCwoZnVuY3Rpb24ocil7cmV0dXJuIG0odCxlLHIsbil9KSk6bSh0LGUsbnVsbCxuKX0pKTt2YXIgdz1mdW5jdGlvbihlLHQpe3ZhciBuPWFyZ3VtZW50cztpZihudWxsPT10fHwheS5jYWxsKHQsImNzcyIpKXJldHVybiBpLmNyZWF0ZUVsZW1lbnQuYXBwbHkodm9pZCAwLG4pO3ZhciByPW4ubGVuZ3RoLG89bmV3IEFycmF5KHIpO29bMF09Yjt2YXIgYT17fTtmb3IodmFyIHMgaW4gdCl5LmNhbGwodCxzKSYmKGFbc109dFtzXSk7YVtnXT1lLG9bMV09YTtmb3IodmFyIHU9Mjt1PHI7dSsrKW9bdV09blt1XTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50LmFwcGx5KG51bGwsbyl9LE89digoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnN0eWxlcztpZigiZnVuY3Rpb24iPT09dHlwZW9mIG4pcmV0dXJuIE9iamVjdChpLmNyZWF0ZUVsZW1lbnQpKHAuQ29uc3VtZXIsbnVsbCwoZnVuY3Rpb24oZSl7dmFyIHI9T2JqZWN0KGMuYSkoW24oZSldKTtyZXR1cm4gT2JqZWN0KGkuY3JlYXRlRWxlbWVudCkoXyx7c2VyaWFsaXplZDpyLGNhY2hlOnR9KX0pKTt2YXIgcj1PYmplY3QoYy5hKShbbl0pO3JldHVybiBPYmplY3QoaS5jcmVhdGVFbGVtZW50KShfLHtzZXJpYWxpemVkOnIsY2FjaGU6dH0pfSkpLF89ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4scil7cmV0dXJuIGUuY2FsbCh0aGlzLHQsbixyKXx8dGhpc31vKCkodCxlKTt2YXIgbj10LnByb3RvdHlwZTtyZXR1cm4gbi5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3RoaXMuc2hlZXQ9bmV3IGwuYSh7a2V5OnRoaXMucHJvcHMuY2FjaGUua2V5KyItZ2xvYmFsIixub25jZTp0aGlzLnByb3BzLmNhY2hlLnNoZWV0Lm5vbmNlLGNvbnRhaW5lcjp0aGlzLnByb3BzLmNhY2hlLnNoZWV0LmNvbnRhaW5lcn0pO3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInN0eWxlW2RhdGEtZW1vdGlvbi0iK3RoaXMucHJvcHMuY2FjaGUua2V5Kyc9IicrdGhpcy5wcm9wcy5zZXJpYWxpemVkLm5hbWUrJyJdJyk7bnVsbCE9PWUmJnRoaXMuc2hlZXQudGFncy5wdXNoKGUpLHRoaXMucHJvcHMuY2FjaGUuc2hlZXQudGFncy5sZW5ndGgmJih0aGlzLnNoZWV0LmJlZm9yZT10aGlzLnByb3BzLmNhY2hlLnNoZWV0LnRhZ3NbMF0pLHRoaXMuaW5zZXJ0U3R5bGVzKCl9LG4uY29tcG9uZW50RGlkVXBkYXRlPWZ1bmN0aW9uKGUpe2Uuc2VyaWFsaXplZC5uYW1lIT09dGhpcy5wcm9wcy5zZXJpYWxpemVkLm5hbWUmJnRoaXMuaW5zZXJ0U3R5bGVzKCl9LG4uaW5zZXJ0U3R5bGVzPWZ1bmN0aW9uKCl7aWYodm9pZCAwIT09dGhpcy5wcm9wcy5zZXJpYWxpemVkLm5leHQmJnUodGhpcy5wcm9wcy5jYWNoZSx0aGlzLnByb3BzLnNlcmlhbGl6ZWQubmV4dCwhMCksdGhpcy5zaGVldC50YWdzLmxlbmd0aCl7dmFyIGU9dGhpcy5zaGVldC50YWdzW3RoaXMuc2hlZXQudGFncy5sZW5ndGgtMV0ubmV4dEVsZW1lbnRTaWJsaW5nO3RoaXMuc2hlZXQuYmVmb3JlPWUsdGhpcy5zaGVldC5mbHVzaCgpfXRoaXMucHJvcHMuY2FjaGUuaW5zZXJ0KCIiLHRoaXMucHJvcHMuc2VyaWFsaXplZCx0aGlzLnNoZWV0LCExKX0sbi5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMuc2hlZXQuZmx1c2goKX0sbi5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sdH0oaS5Db21wb25lbnQpLEU9ZnVuY3Rpb24gZSh0KXtmb3IodmFyIG49dC5sZW5ndGgscj0wLG89IiI7cjxuO3IrKyl7dmFyIGk9dFtyXTtpZihudWxsIT1pKXt2YXIgYT12b2lkIDA7c3dpdGNoKHR5cGVvZiBpKXtjYXNlImJvb2xlYW4iOmJyZWFrO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGkpKWE9ZShpKTtlbHNlIGZvcih2YXIgcyBpbiBhPSIiLGkpaVtzXSYmcyYmKGEmJihhKz0iICIpLGErPXMpO2JyZWFrO2RlZmF1bHQ6YT1pfWEmJihvJiYobys9IiAiKSxvKz1hKX19cmV0dXJuIG99O2Z1bmN0aW9uIEMoZSx0LG4pe3ZhciByPVtdLG89cyhlLHIsbik7cmV0dXJuIHIubGVuZ3RoPDI/bjpvK3Qocil9digoZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0KGkuY3JlYXRlRWxlbWVudCkocC5Db25zdW1lcixudWxsLChmdW5jdGlvbihuKXt2YXIgcj1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKW5bcl09YXJndW1lbnRzW3JdO3ZhciBvPU9iamVjdChjLmEpKG4sdC5yZWdpc3RlcmVkKTtyZXR1cm4gdSh0LG8sITEpLHQua2V5KyItIitvLm5hbWV9LG89e2NzczpyLGN4OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZSksbz0wO288ZTtvKyspbltvXT1hcmd1bWVudHNbb107cmV0dXJuIEModC5yZWdpc3RlcmVkLHIsRShuKSl9LHRoZW1lOm59LGk9ZS5jaGlsZHJlbihvKTtyZXR1cm4hMCxpfSkpfSkpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyNzIpLG89bigyNzMpLGk9bigxODApLGE9bigyNzQpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiByKGUpfHxvKGUsdCl8fGkoZSx0KXx8YSgpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSksbi5kKHQsImQiLChmdW5jdGlvbigpe3JldHVybiBzfSkpLG4uZCh0LCJlIiwoZnVuY3Rpb24oKXtyZXR1cm4gdX0pKSxuLmQodCwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSksbi5kKHQsImIiLChmdW5jdGlvbigpe3JldHVybiBsfSkpLG4uZCh0LCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gZn0pKSxuLmQodCwiZiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGR9KSk7dmFyIHI9big2KSxvPW51bGwsaT1udWxsO2Z1bmN0aW9uIGEoZSx0KXtvPWUsaT10fXZhciBzPWZ1bmN0aW9uKCl7cmV0dXJuIGk/aS5mcmFtZUVsZW1lbnQ6bnVsbH0sdT1mdW5jdGlvbigpe3JldHVybiBpfSxjPWZ1bmN0aW9uKCl7cmV0dXJuIG99O2Z1bmN0aW9uIGwoKXtpZighbylyZXR1cm4hMTt2YXIgZT1vLmdldEVsZW1lbnRCeUlkKCJuZXctbWVzc2FnZS10ZXh0YXJlYSIpO3JldHVybiBlJiZlLmZvY3VzKCksITB9ZnVuY3Rpb24gZigpe2lmKCFvKXJldHVybiExO3RyeXt2YXIgZT1vLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hbHdheXMtb25saW5lIGlucHV0Om5vdCguZGlzYWJsZWQpLCAucHJlLWNoYXQgaW5wdXQ6bm90KC5kaXNhYmxlZCkiKTtpZihlLmxlbmd0aD4wKXt2YXIgdD1lW2UubGVuZ3RoLTFdO3QuZm9jdXMoKTt2YXIgbj10LnBhcmVudE5vZGUucGFyZW50Tm9kZTtuLmNsYXNzTGlzdC5hZGQoInNoYWtlIiksbi5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLChmdW5jdGlvbiBlKCl7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLGUpLG4uY2xhc3NMaXN0LnJlbW92ZSgic2hha2UiKX0pKX1yZXR1cm4hMH1jYXRjaChpKXtyZXR1cm4gT2JqZWN0KHIuYSkoaSksITF9fWZ1bmN0aW9uIGQoKXtpZighbylyZXR1cm4hMTt0cnl7dmFyIGU9by5xdWVyeVNlbGVjdG9yKCIubWVzc2FnZS13aXRoLWJ1dHRvbnM6bm90KC5idXR0b25zLWhpZGRlbikiKTtpZihlJiZlLnNjcm9sbEludG9WaWV3KXRyeXtlLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIn0pfWNhdGNoKHQpe2Uuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1jYXRjaCh0KXtyZXR1cm4gT2JqZWN0KHIuYSkodCksITF9fX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMjApLG89bigxMTIpLGk9big0OCksYT1uKDM0KSxzPW4oNDkpLHU9bigxOCksYz1uKDkyKSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dC5mPXI/bDpmdW5jdGlvbihlLHQpe2lmKGU9YShlKSx0PXModCwhMCksYyl0cnl7cmV0dXJuIGwoZSx0KX1jYXRjaChuKXt9aWYodShlLHQpKXJldHVybiBpKCFvLmYuY2FsbChlLHQpLGVbdF0pfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm57ZW51bWVyYWJsZTohKDEmZSksY29uZmlndXJhYmxlOiEoMiZlKSx3cml0YWJsZTohKDQmZSksdmFsdWU6dH19fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYoIXIoZSkpcmV0dXJuIGU7dmFyIG4sbztpZih0JiYiZnVuY3Rpb24iPT10eXBlb2Yobj1lLnRvU3RyaW5nKSYmIXIobz1uLmNhbGwoZSkpKXJldHVybiBvO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihuPWUudmFsdWVPZikmJiFyKG89bi5jYWxsKGUpKSlyZXR1cm4gbztpZighdCYmImZ1bmN0aW9uIj09dHlwZW9mKG49ZS50b1N0cmluZykmJiFyKG89bi5jYWxsKGUpKSlyZXR1cm4gbzt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTM0KSxvPW4oOCksaT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnZvaWQgMH07ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9pKHJbZV0pfHxpKG9bZV0pOnJbZV0mJnJbZV1bdF18fG9bZV0mJm9bZV1bdF19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTAyKSxvPW4oMTE0KSxpPVJlZ0V4cC5wcm90b3R5cGUuZXhlYyxhPVN0cmluZy5wcm90b3R5cGUucmVwbGFjZSxzPWksdT1mdW5jdGlvbigpe3ZhciBlPS9hLyx0PS9iKi9nO3JldHVybiBpLmNhbGwoZSwiYSIpLGkuY2FsbCh0LCJhIiksMCE9PWUubGFzdEluZGV4fHwwIT09dC5sYXN0SW5kZXh9KCksYz1vLlVOU1VQUE9SVEVEX1l8fG8uQlJPS0VOX0NBUkVULGw9dm9pZCAwIT09LygpPz8vLmV4ZWMoIiIpWzFdOyh1fHxsfHxjKSYmKHM9ZnVuY3Rpb24oZSl7dmFyIHQsbixvLHMsZj10aGlzLGQ9YyYmZi5zdGlja3kscD1yLmNhbGwoZiksaD1mLnNvdXJjZSx2PTAsZz1lO3JldHVybiBkJiYoLTE9PT0ocD1wLnJlcGxhY2UoInkiLCIiKSkuaW5kZXhPZigiZyIpJiYocCs9ImciKSxnPVN0cmluZyhlKS5zbGljZShmLmxhc3RJbmRleCksZi5sYXN0SW5kZXg+MCYmKCFmLm11bHRpbGluZXx8Zi5tdWx0aWxpbmUmJiJcbiIhPT1lW2YubGFzdEluZGV4LTFdKSYmKGg9Iig/OiAiK2grIikiLGc9IiAiK2csdisrKSxuPW5ldyBSZWdFeHAoIl4oPzoiK2grIikiLHApKSxsJiYobj1uZXcgUmVnRXhwKCJeIitoKyIkKD8hXFxzKSIscCkpLHUmJih0PWYubGFzdEluZGV4KSxvPWkuY2FsbChkP246ZixnKSxkP28/KG8uaW5wdXQ9by5pbnB1dC5zbGljZSh2KSxvWzBdPW9bMF0uc2xpY2Uodiksby5pbmRleD1mLmxhc3RJbmRleCxmLmxhc3RJbmRleCs9b1swXS5sZW5ndGgpOmYubGFzdEluZGV4PTA6dSYmbyYmKGYubGFzdEluZGV4PWYuZ2xvYmFsP28uaW5kZXgrb1swXS5sZW5ndGg6dCksbCYmbyYmby5sZW5ndGg+MSYmYS5jYWxsKG9bMF0sbiwoZnVuY3Rpb24oKXtmb3Iocz0xO3M8YXJndW1lbnRzLmxlbmd0aC0yO3MrKyl2b2lkIDA9PT1hcmd1bWVudHNbc10mJihvW3NdPXZvaWQgMCl9KSksb30pLGUuZXhwb3J0cz1zfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyNjApLG89bigyNjEpLGk9bigxODApLGE9bigyNjIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihlKXx8byhlKXx8aShlKXx8YSgpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSksbi5kKHQsImIiLChmdW5jdGlvbigpe3JldHVybiBsfSkpO24oODMpO3ZhciByPW4oNSksbz1uLm4ociksaT1uKDIwNyksYT1uLm4oaSkscz1uKDEpO2Z1bmN0aW9uIHUoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGMoKXt2YXIgZT1PYmplY3Qocy5tKSgpLHQ9T2JqZWN0KHMucikoKSxuPSIiO3RyeXtuPWEuYS5kZXRlcm1pbmUoKS5uYW1lKCl9Y2F0Y2gocil7fXJldHVybntpcDpudWxsLGxhbmc6T2JqZWN0KHMudSkoKSxicm93c2VyOmUubmFtZSxicm93c2VyX3ZlcnNpb246ZS52ZXJzaW9uLHVybDpPYmplY3Qocy5wKSgpLHJlZmVyOndpbmRvdy5wYXJlbnQuZG9jdW1lbnQucmVmZXJyZXIsb3NfbmFtZTp0Lm5hbWUsb3NfdmVyc2lvbjp0LnZlcnNpb24sc2NyZWVuX3dpZHRoOndpbmRvdy5zY3JlZW4ud2lkdGgsc2NyZWVuX2hlaWdodDp3aW5kb3cuc2NyZWVuLmhlaWdodCx1c2VyX2FnZW50OndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LHRpbWV6b25lOm4sbW9iaWxlOk9iamVjdChzLkQpKCksaXNfY2hhdF9vbl9zaXRlOk9iamVjdChzLngpKCl9fWZ1bmN0aW9uIGwoKXt2YXIgZT1PYmplY3Qocy5sKSgpO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj91KE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bygpKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp1KE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfSh7aWQ6ZSxvcmlnaW5hbFZpc2l0b3JJZDplLGRpc3RpbmN0X2lkOm51bGwsY291bnRyeTpudWxsLG5hbWU6IiIsY2l0eTpudWxsLGJyb3dzZXJfc2Vzc2lvbl9pZDoiIixjcmVhdGVkOk9iamVjdChzLm8pKCksZW1haWw6IiIscHJvamVjdF9wdWJsaWNfa2V5Ok9iamVjdChzLmgpKCkscGhvbmU6IiJ9LGMoKSl9fSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKHQpe3ZhciByPW4oMjY2KSxvPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPT10eXBlb2YgdD90OiJ1bmRlZmluZWQiIT09dHlwZW9mIHNlbGY/c2VsZjp7fSxpPW8uUmF2ZW4sYT1uZXcgcjthLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gby5SYXZlbj1pLGF9LGEuYWZ0ZXJMb2FkKCksZS5leHBvcnRzPWEsZS5leHBvcnRzLkNsaWVudD1yfSkuY2FsbCh0aGlzLG4oMTMpKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDkpLG89big5MSkubWFwLGk9big2NSksYT1uKDQwKSxzPWkoIm1hcCIpLHU9YSgibWFwIik7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFzfHwhdX0se21hcDpmdW5jdGlvbihlKXtyZXR1cm4gbyh0aGlzLGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDkxKS5maW5kLGk9bigxMTcpLGE9big0MCkscz0hMCx1PWEoImZpbmQiKTsiZmluZCJpbltdJiZBcnJheSgxKS5maW5kKChmdW5jdGlvbigpe3M9ITF9KSkscih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOnN8fCF1fSx7ZmluZDpmdW5jdGlvbihlKXtyZXR1cm4gbyh0aGlzLGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGkoImZpbmQiKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzApLG89RGF0ZS5wcm90b3R5cGUsaT1vLnRvU3RyaW5nLGE9by5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPSJJbnZhbGlkIERhdGUiJiZyKG8sInRvU3RyaW5nIiwoZnVuY3Rpb24oKXt2YXIgZT1hLmNhbGwodGhpcyk7cmV0dXJuIGU9PT1lP2kuY2FsbCh0aGlzKToiSW52YWxpZCBEYXRlIn0pKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDkpLG89big5OCkuaW5kZXhPZixpPW4oOTApLGE9big0MCkscz1bXS5pbmRleE9mLHU9ISFzJiYxL1sxXS5pbmRleE9mKDEsLTApPDAsYz1pKCJpbmRleE9mIiksbD1hKCJpbmRleE9mIix7QUNDRVNTT1JTOiEwLDE6MH0pO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDp1fHwhY3x8IWx9LHtpbmRleE9mOmZ1bmN0aW9uKGUpe3JldHVybiB1P3MuYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwOm8odGhpcyxlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDkpLG89bigxNzcpLGk9bigyMik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohbigxNzgpKCJpbmNsdWRlcyIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24oZSl7cmV0dXJuISF+U3RyaW5nKGkodGhpcykpLmluZGV4T2YobyhlKSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDgpLG89bigyNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHJ5e28ocixlLHQpfWNhdGNoKG4pe3JbZV09dH1yZXR1cm4gdH19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDgpLG89big2MCksaT1yWyJfX2NvcmUtanNfc2hhcmVkX18iXXx8bygiX19jb3JlLWpzX3NoYXJlZF9fIix7fSk7ZS5leHBvcnRzPWl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGksYT1uKDEzMSkscz1uKDgpLHU9bigxNSksYz1uKDI0KSxsPW4oMTgpLGY9big2MSksZD1uKDk0KSxwPW4oNzYpLGg9cy5XZWFrTWFwO2lmKGEpe3ZhciB2PWYuc3RhdGV8fChmLnN0YXRlPW5ldyBoKSxnPXYuZ2V0LHk9di5oYXMsbT12LnNldDtyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZmFjYWRlPWUsbS5jYWxsKHYsZSx0KSx0fSxvPWZ1bmN0aW9uKGUpe3JldHVybiBnLmNhbGwodixlKXx8e319LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIHkuY2FsbCh2LGUpfX1lbHNle3ZhciBiPWQoInN0YXRlIik7cFtiXT0hMCxyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZmFjYWRlPWUsYyhlLGIsdCksdH0sbz1mdW5jdGlvbihlKXtyZXR1cm4gbChlLGIpP2VbYl06e319LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSxiKX19ZS5leHBvcnRzPXtzZXQ6cixnZXQ6byxoYXM6aSxlbmZvcmNlOmZ1bmN0aW9uKGUpe3JldHVybiBpKGUpP28oZSk6cihlLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbjtpZighdSh0KXx8KG49byh0KSkudHlwZSE9PWUpdGhyb3cgVHlwZUVycm9yKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrZSsiIHJlcXVpcmVkIik7cmV0dXJuIG59fX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPSExfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzNSk7ZS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJBcnJheSI9PXIoZSl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxMCksbz1uKDEyKSxpPW4oNjYpLGE9bygic3BlY2llcyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaT49NTF8fCFyKChmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybih0LmNvbnN0cnVjdG9yPXt9KVthXT1mdW5jdGlvbigpe3JldHVybntmb286MX19LDEhPT10W2VdKEJvb2xlYW4pLmZvb30pKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGk9big4KSxhPW4oNjcpLHM9aS5wcm9jZXNzLHU9cyYmcy52ZXJzaW9ucyxjPXUmJnUudjg7Yz9vPShyPWMuc3BsaXQoIi4iKSlbMF0rclsxXTphJiYoIShyPWEubWF0Y2goL0VkZ2VcLyhcZCspLykpfHxyWzFdPj03NCkmJihyPWEubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihvPXJbMV0pLGUuZXhwb3J0cz1vJiYrb30sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNTApO2UuZXhwb3J0cz1yKCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiKXx8IiJ9LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcihTdHJpbmcoZSkrIiBpcyBub3QgYSBmdW5jdGlvbiIpO3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LG4pe24oOSkoe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITB9LHtpc0FycmF5Om4oNjQpfSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBofSkpLG4uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gY30pKSxuLmQodCwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHB9KSksbi5kKHQsImQiLChmdW5jdGlvbigpe3JldHVybiBzfSkpO3ZhciByPW4oMTU1KSxvPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg3KS5zcGxpdCgiIikuam9pbigiLiIpfSxpPXtJTklUOiJAQHJlZHV4L0lOSVQiK28oKSxSRVBMQUNFOiJAQHJlZHV4L1JFUExBQ0UiK28oKSxQUk9CRV9VTktOT1dOX0FDVElPTjpmdW5jdGlvbigpe3JldHVybiJAQHJlZHV4L1BST0JFX1VOS05PV05fQUNUSU9OIitvKCl9fTtmdW5jdGlvbiBhKGUpe2lmKCJvYmplY3QiIT09dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiExO2Zvcih2YXIgdD1lO251bGwhPT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7KXQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT10fWZ1bmN0aW9uIHMoZSx0LG4pe3ZhciBvO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgdCYmImZ1bmN0aW9uIj09PXR5cGVvZiBufHwiZnVuY3Rpb24iPT09dHlwZW9mIG4mJiJmdW5jdGlvbiI9PT10eXBlb2YgYXJndW1lbnRzWzNdKXRocm93IG5ldyBFcnJvcigiSXQgbG9va3MgbGlrZSB5b3UgYXJlIHBhc3Npbmcgc2V2ZXJhbCBzdG9yZSBlbmhhbmNlcnMgdG8gY3JlYXRlU3RvcmUoKS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBjb21wb3NlIHRoZW0gdG9nZXRoZXIgdG8gYSBzaW5nbGUgZnVuY3Rpb24uIik7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiB0JiYidW5kZWZpbmVkIj09PXR5cGVvZiBuJiYobj10LHQ9dm9pZCAwKSwidW5kZWZpbmVkIiE9PXR5cGVvZiBuKXtpZigiZnVuY3Rpb24iIT09dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB0aGUgZW5oYW5jZXIgdG8gYmUgYSBmdW5jdGlvbi4iKTtyZXR1cm4gbihzKShlLHQpfWlmKCJmdW5jdGlvbiIhPT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHRoZSByZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uIik7dmFyIHU9ZSxjPXQsbD1bXSxmPWwsZD0hMTtmdW5jdGlvbiBwKCl7Zj09PWwmJihmPWwuc2xpY2UoKSl9ZnVuY3Rpb24gaCgpe2lmKGQpdGhyb3cgbmV3IEVycm9yKCJZb3UgbWF5IG5vdCBjYWxsIHN0b3JlLmdldFN0YXRlKCkgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiBUaGUgcmVkdWNlciBoYXMgYWxyZWFkeSByZWNlaXZlZCB0aGUgc3RhdGUgYXMgYW4gYXJndW1lbnQuIFBhc3MgaXQgZG93biBmcm9tIHRoZSB0b3AgcmVkdWNlciBpbnN0ZWFkIG9mIHJlYWRpbmcgaXQgZnJvbSB0aGUgc3RvcmUuIik7cmV0dXJuIGN9ZnVuY3Rpb24gdihlKXtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB0aGUgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbi4iKTtpZihkKXRocm93IG5ldyBFcnJvcigiWW91IG1heSBub3QgY2FsbCBzdG9yZS5zdWJzY3JpYmUoKSB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuIElmIHlvdSB3b3VsZCBsaWtlIHRvIGJlIG5vdGlmaWVkIGFmdGVyIHRoZSBzdG9yZSBoYXMgYmVlbiB1cGRhdGVkLCBzdWJzY3JpYmUgZnJvbSBhIGNvbXBvbmVudCBhbmQgaW52b2tlIHN0b3JlLmdldFN0YXRlKCkgaW4gdGhlIGNhbGxiYWNrIHRvIGFjY2VzcyB0aGUgbGF0ZXN0IHN0YXRlLiBTZWUgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvYXBpLXJlZmVyZW5jZS9zdG9yZSNzdWJzY3JpYmVsaXN0ZW5lciBmb3IgbW9yZSBkZXRhaWxzLiIpO3ZhciB0PSEwO3JldHVybiBwKCksZi5wdXNoKGUpLGZ1bmN0aW9uKCl7aWYodCl7aWYoZCl0aHJvdyBuZXcgRXJyb3IoIllvdSBtYXkgbm90IHVuc3Vic2NyaWJlIGZyb20gYSBzdG9yZSBsaXN0ZW5lciB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuIFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy9hcGktcmVmZXJlbmNlL3N0b3JlI3N1YnNjcmliZWxpc3RlbmVyIGZvciBtb3JlIGRldGFpbHMuIik7dD0hMSxwKCk7dmFyIG49Zi5pbmRleE9mKGUpO2Yuc3BsaWNlKG4sMSksbD1udWxsfX19ZnVuY3Rpb24gZyhlKXtpZighYShlKSl0aHJvdyBuZXcgRXJyb3IoIkFjdGlvbnMgbXVzdCBiZSBwbGFpbiBvYmplY3RzLiBVc2UgY3VzdG9tIG1pZGRsZXdhcmUgZm9yIGFzeW5jIGFjdGlvbnMuIik7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgZS50eXBlKXRocm93IG5ldyBFcnJvcignQWN0aW9ucyBtYXkgbm90IGhhdmUgYW4gdW5kZWZpbmVkICJ0eXBlIiBwcm9wZXJ0eS4gSGF2ZSB5b3UgbWlzc3BlbGxlZCBhIGNvbnN0YW50PycpO2lmKGQpdGhyb3cgbmV3IEVycm9yKCJSZWR1Y2VycyBtYXkgbm90IGRpc3BhdGNoIGFjdGlvbnMuIik7dHJ5e2Q9ITAsYz11KGMsZSl9ZmluYWxseXtkPSExfWZvcih2YXIgdD1sPWYsbj0wO248dC5sZW5ndGg7bisrKXsoMCx0W25dKSgpfXJldHVybiBlfWZ1bmN0aW9uIHkoZSl7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdGhlIG5leHRSZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uIik7dT1lLGcoe3R5cGU6aS5SRVBMQUNFfSl9ZnVuY3Rpb24gbSgpe3ZhciBlLHQ9djtyZXR1cm4oZT17c3Vic2NyaWJlOmZ1bmN0aW9uKGUpe2lmKCJvYmplY3QiIT09dHlwZW9mIGV8fG51bGw9PT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHRoZSBvYnNlcnZlciB0byBiZSBhbiBvYmplY3QuIik7ZnVuY3Rpb24gbigpe2UubmV4dCYmZS5uZXh0KGgoKSl9cmV0dXJuIG4oKSx7dW5zdWJzY3JpYmU6dChuKX19fSlbci5hXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlfXJldHVybiBnKHt0eXBlOmkuSU5JVH0pLChvPXtkaXNwYXRjaDpnLHN1YnNjcmliZTp2LGdldFN0YXRlOmgscmVwbGFjZVJlZHVjZXI6eX0pW3IuYV09bSxvfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fWZ1bmN0aW9uIGMoZSx0KXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGUpcmV0dXJuIHUoZSx0KTtpZigib2JqZWN0IiE9PXR5cGVvZiBlfHxudWxsPT09ZSl0aHJvdyBuZXcgRXJyb3IoImJpbmRBY3Rpb25DcmVhdG9ycyBleHBlY3RlZCBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbiwgaW5zdGVhZCByZWNlaXZlZCAiKyhudWxsPT09ZT8ibnVsbCI6dHlwZW9mIGUpKycuIERpZCB5b3Ugd3JpdGUgImltcG9ydCBBY3Rpb25DcmVhdG9ycyBmcm9tIiBpbnN0ZWFkIG9mICJpbXBvcnQgKiBhcyBBY3Rpb25DcmVhdG9ycyBmcm9tIj8nKTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSl7dmFyIG89ZVtyXTsiZnVuY3Rpb24iPT09dHlwZW9mIG8mJihuW3JdPXUobyx0KSl9cmV0dXJuIG59ZnVuY3Rpb24gbChlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gZihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiZuLnB1c2guYXBwbHkobixPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpKSx0JiYobj1uLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxufWZ1bmN0aW9uIGQoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/ZihuLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtsKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpmKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBwKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIDA9PT10Lmxlbmd0aD9mdW5jdGlvbihlKXtyZXR1cm4gZX06MT09PXQubGVuZ3RoP3RbMF06dC5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9fSkpfWZ1bmN0aW9uIGgoKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSxyPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJEaXNwYXRjaGluZyB3aGlsZSBjb25zdHJ1Y3RpbmcgeW91ciBtaWRkbGV3YXJlIGlzIG5vdCBhbGxvd2VkLiBPdGhlciBtaWRkbGV3YXJlIHdvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoaXMgZGlzcGF0Y2guIil9LG89e2dldFN0YXRlOm4uZ2V0U3RhdGUsZGlzcGF0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19LGk9dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlKG8pfSkpO3JldHVybiBkKHt9LG4se2Rpc3BhdGNoOnI9cC5hcHBseSh2b2lkIDAsaSkobi5kaXNwYXRjaCl9KX19fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1mdW5jdGlvbihlKXtmb3IodmFyIHQsbj0wLHI9MCxvPWUubGVuZ3RoO28+PTQ7KytyLG8tPTQpdD0xNTQwNDgzNDc3Kig2NTUzNSYodD0yNTUmZS5jaGFyQ29kZUF0KHIpfCgyNTUmZS5jaGFyQ29kZUF0KCsrcikpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KCsrcikpPDwxNnwoMjU1JmUuY2hhckNvZGVBdCgrK3IpKTw8MjQpKSsoNTk3OTcqKHQ+Pj4xNik8PDE2KSxuPTE1NDA0ODM0NzcqKDY1NTM1Jih0Xj10Pj4+MjQpKSsoNTk3OTcqKHQ+Pj4xNik8PDE2KV4xNTQwNDgzNDc3Kig2NTUzNSZuKSsoNTk3OTcqKG4+Pj4xNik8PDE2KTtzd2l0Y2gobyl7Y2FzZSAzOm5ePSgyNTUmZS5jaGFyQ29kZUF0KHIrMikpPDwxNjtjYXNlIDI6bl49KDI1NSZlLmNoYXJDb2RlQXQocisxKSk8PDg7Y2FzZSAxOm49MTU0MDQ4MzQ3NyooNjU1MzUmKG5ePTI1NSZlLmNoYXJDb2RlQXQocikpKSsoNTk3OTcqKG4+Pj4xNik8PDE2KX1yZXR1cm4oKChuPTE1NDA0ODM0NzcqKDY1NTM1JihuXj1uPj4+MTMpKSsoNTk3OTcqKG4+Pj4xNik8PDE2KSlebj4+PjE1KT4+PjApLnRvU3RyaW5nKDM2KX0sbz17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6MSxib3JkZXJJbWFnZU91dHNldDoxLGJvcmRlckltYWdlU2xpY2U6MSxib3JkZXJJbWFnZVdpZHRoOjEsYm94RmxleDoxLGJveEZsZXhHcm91cDoxLGJveE9yZGluYWxHcm91cDoxLGNvbHVtbkNvdW50OjEsY29sdW1uczoxLGZsZXg6MSxmbGV4R3JvdzoxLGZsZXhQb3NpdGl2ZToxLGZsZXhTaHJpbms6MSxmbGV4TmVnYXRpdmU6MSxmbGV4T3JkZXI6MSxncmlkUm93OjEsZ3JpZFJvd0VuZDoxLGdyaWRSb3dTcGFuOjEsZ3JpZFJvd1N0YXJ0OjEsZ3JpZENvbHVtbjoxLGdyaWRDb2x1bW5FbmQ6MSxncmlkQ29sdW1uU3BhbjoxLGdyaWRDb2x1bW5TdGFydDoxLG1zR3JpZFJvdzoxLG1zR3JpZFJvd1NwYW46MSxtc0dyaWRDb2x1bW46MSxtc0dyaWRDb2x1bW5TcGFuOjEsZm9udFdlaWdodDoxLGxpbmVIZWlnaHQ6MSxvcGFjaXR5OjEsb3JkZXI6MSxvcnBoYW5zOjEsdGFiU2l6ZToxLHdpZG93czoxLHpJbmRleDoxLHpvb206MSxXZWJraXRMaW5lQ2xhbXA6MSxmaWxsT3BhY2l0eToxLGZsb29kT3BhY2l0eToxLHN0b3BPcGFjaXR5OjEsc3Ryb2tlRGFzaGFycmF5OjEsc3Ryb2tlRGFzaG9mZnNldDoxLHN0cm9rZU1pdGVybGltaXQ6MSxzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2lkdGg6MX07dmFyIGk9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB2b2lkIDA9PT10W25dJiYodFtuXT1lKG4pKSx0W25dfX07bi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiB2fSkpO3ZhciBhPS9bQS1aXXxebXMvZyxzPS9fRU1PXyhbXl9dKz8pXyhbXl0qPylfRU1PXy9nLHU9ZnVuY3Rpb24oZSl7cmV0dXJuIDQ1PT09ZS5jaGFyQ29kZUF0KDEpfSxjPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiYiYm9vbGVhbiIhPT10eXBlb2YgZX0sbD1pKChmdW5jdGlvbihlKXtyZXR1cm4gdShlKT9lOmUucmVwbGFjZShhLCItJCYiKS50b0xvd2VyQ2FzZSgpfSkpLGY9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJhbmltYXRpb24iOmNhc2UiYW5pbWF0aW9uTmFtZSI6aWYoInN0cmluZyI9PT10eXBlb2YgdClyZXR1cm4gdC5yZXBsYWNlKHMsKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gcD17bmFtZTp0LHN0eWxlczpuLG5leHQ6cH0sdH0pKX1yZXR1cm4gMT09PW9bZV18fHUoZSl8fCJudW1iZXIiIT09dHlwZW9mIHR8fDA9PT10P3Q6dCsicHgifTtmdW5jdGlvbiBkKGUsdCxuLHIpe2lmKG51bGw9PW4pcmV0dXJuIiI7aWYodm9pZCAwIT09bi5fX2Vtb3Rpb25fc3R5bGVzKXJldHVybiBuO3N3aXRjaCh0eXBlb2Ygbil7Y2FzZSJib29sZWFuIjpyZXR1cm4iIjtjYXNlIm9iamVjdCI6aWYoMT09PW4uYW5pbSlyZXR1cm4gcD17bmFtZTpuLm5hbWUsc3R5bGVzOm4uc3R5bGVzLG5leHQ6cH0sbi5uYW1lO2lmKHZvaWQgMCE9PW4uc3R5bGVzKXt2YXIgbz1uLm5leHQ7aWYodm9pZCAwIT09bylmb3IoO3ZvaWQgMCE9PW87KXA9e25hbWU6by5uYW1lLHN0eWxlczpvLnN0eWxlcyxuZXh0OnB9LG89by5uZXh0O3JldHVybiBuLnN0eWxlcysiOyJ9cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0iIjtpZihBcnJheS5pc0FycmF5KG4pKWZvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKXIrPWQoZSx0LG5bb10sITEpO2Vsc2UgZm9yKHZhciBpIGluIG4pe3ZhciBhPW5baV07aWYoIm9iamVjdCIhPT10eXBlb2YgYSludWxsIT10JiZ2b2lkIDAhPT10W2FdP3IrPWkrInsiK3RbYV0rIn0iOmMoYSkmJihyKz1sKGkpKyI6IitmKGksYSkrIjsiKTtlbHNlIGlmKCFBcnJheS5pc0FycmF5KGEpfHwic3RyaW5nIiE9PXR5cGVvZiBhWzBdfHxudWxsIT10JiZ2b2lkIDAhPT10W2FbMF1dKXt2YXIgcz1kKGUsdCxhLCExKTtzd2l0Y2goaSl7Y2FzZSJhbmltYXRpb24iOmNhc2UiYW5pbWF0aW9uTmFtZSI6cis9bChpKSsiOiIrcysiOyI7YnJlYWs7ZGVmYXVsdDpyKz1pKyJ7IitzKyJ9In19ZWxzZSBmb3IodmFyIHU9MDt1PGEubGVuZ3RoO3UrKyljKGFbdV0pJiYocis9bChpKSsiOiIrZihpLGFbdV0pKyI7Iil9cmV0dXJuIHJ9KGUsdCxuKTtjYXNlImZ1bmN0aW9uIjppZih2b2lkIDAhPT1lKXt2YXIgaT1wLGE9bihlKTtyZXR1cm4gcD1pLGQoZSx0LGEscil9YnJlYWs7Y2FzZSJzdHJpbmciOn1pZihudWxsPT10KXJldHVybiBuO3ZhciBzPXRbbl07cmV0dXJuIHZvaWQgMD09PXN8fHI/bjpzfXZhciBwLGg9L2xhYmVsOlxzKihbXlxzO1xue10rKVxzKjsvZzt2YXIgdj1mdW5jdGlvbihlLHQsbil7aWYoMT09PWUubGVuZ3RoJiYib2JqZWN0Ij09PXR5cGVvZiBlWzBdJiZudWxsIT09ZVswXSYmdm9pZCAwIT09ZVswXS5zdHlsZXMpcmV0dXJuIGVbMF07dmFyIG89ITAsaT0iIjtwPXZvaWQgMDt2YXIgYT1lWzBdO251bGw9PWF8fHZvaWQgMD09PWEucmF3PyhvPSExLGkrPWQobix0LGEsITEpKTppKz1hWzBdO2Zvcih2YXIgcz0xO3M8ZS5sZW5ndGg7cysrKWkrPWQobix0LGVbc10sNDY9PT1pLmNoYXJDb2RlQXQoaS5sZW5ndGgtMSkpLG8mJihpKz1hW3NdKTtoLmxhc3RJbmRleD0wO2Zvcih2YXIgdSxjPSIiO251bGwhPT0odT1oLmV4ZWMoaSkpOyljKz0iLSIrdVsxXTtyZXR1cm57bmFtZTpyKGkpK2Msc3R5bGVzOmksbmV4dDpwfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big5KSxvPW4oMTgzKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6W10uZm9yRWFjaCE9b30se2ZvckVhY2g6b30pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big4KSxvPW4oMTg0KSxpPW4oMTgzKSxhPW4oMjQpO2Zvcih2YXIgcyBpbiBvKXt2YXIgdT1yW3NdLGM9dSYmdS5wcm90b3R5cGU7aWYoYyYmYy5mb3JFYWNoIT09aSl0cnl7YShjLCJmb3JFYWNoIixpKX1jYXRjaChsKXtjLmZvckVhY2g9aX19fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxMCksbz1uKDM1KSxpPSIiLnNwbGl0O2UuZXhwb3J0cz1yKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihlKXtyZXR1cm4iU3RyaW5nIj09byhlKT9pLmNhbGwoZSwiIik6T2JqZWN0KGUpfTpPYmplY3R9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDYxKSxvPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiByLmluc3BlY3RTb3VyY2UmJihyLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY2FsbChlKX0pLGUuZXhwb3J0cz1yLmluc3BlY3RTb3VyY2V9LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPXt9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxMCksbz0vI3xcLnByb3RvdHlwZVwuLyxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49c1thKGUpXTtyZXR1cm4gbj09Y3x8biE9dSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0P3IodCk6ISF0KX0sYT1pLm5vcm1hbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UobywiLiIpLnRvTG93ZXJDYXNlKCl9LHM9aS5kYXRhPXt9LHU9aS5OQVRJVkU9Ik4iLGM9aS5QT0xZRklMTD0iUCI7ZS5leHBvcnRzPWl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bigzMik7dmFyIHI9bigzMCksbz1uKDEwKSxpPW4oMTIpLGE9big1MSkscz1uKDI0KSx1PWkoInNwZWNpZXMiKSxjPSFvKChmdW5jdGlvbigpe3ZhciBlPS8uLztyZXR1cm4gZS5leGVjPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIGUuZ3JvdXBzPXthOiI3In0sZX0sIjciIT09IiIucmVwbGFjZShlLCIkPGE+Iil9KSksbD0iJDAiPT09ImEiLnJlcGxhY2UoLy4vLCIkMCIpLGY9aSgicmVwbGFjZSIpLGQ9ISEvLi9bZl0mJiIiPT09Ly4vW2ZdKCJhIiwiJDAiKSxwPSFvKChmdW5jdGlvbigpe3ZhciBlPS8oPzopLyx0PWUuZXhlYztlLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBuPSJhYiIuc3BsaXQoZSk7cmV0dXJuIDIhPT1uLmxlbmd0aHx8ImEiIT09blswXXx8ImIiIT09blsxXX0pKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4sZil7dmFyIGg9aShlKSx2PSFvKChmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0W2hdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW2VdKHQpfSkpLGc9diYmIW8oKGZ1bmN0aW9uKCl7dmFyIHQ9ITEsbj0vYS87cmV0dXJuInNwbGl0Ij09PWUmJigobj17fSkuY29uc3RydWN0b3I9e30sbi5jb25zdHJ1Y3Rvclt1XT1mdW5jdGlvbigpe3JldHVybiBufSxuLmZsYWdzPSIiLG5baF09Ly4vW2hdKSxuLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gdD0hMCxudWxsfSxuW2hdKCIiKSwhdH0pKTtpZighdnx8IWd8fCJyZXBsYWNlIj09PWUmJighY3x8IWx8fGQpfHwic3BsaXQiPT09ZSYmIXApe3ZhciB5PS8uL1toXSxtPW4oaCwiIltlXSwoZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gdC5leGVjPT09YT92JiYhbz97ZG9uZTohMCx2YWx1ZTp5LmNhbGwodCxuLHIpfTp7ZG9uZTohMCx2YWx1ZTplLmNhbGwobix0LHIpfTp7ZG9uZTohMX19KSx7UkVQTEFDRV9LRUVQU18kMDpsLFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFOmR9KSxiPW1bMF0sdz1tWzFdO3IoU3RyaW5nLnByb3RvdHlwZSxlLGIpLHIoUmVnRXhwLnByb3RvdHlwZSxoLDI9PXQ/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdy5jYWxsKGUsdGhpcyx0KX06ZnVuY3Rpb24oZSl7cmV0dXJuIHcuY2FsbChlLHRoaXMpfSl9ZiYmcyhSZWdFeHAucHJvdG90eXBlW2hdLCJzaGFtIiwhMCl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzNSksbz1uKDUxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmV4ZWM7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBuKXt2YXIgaT1uLmNhbGwoZSx0KTtpZigib2JqZWN0IiE9PXR5cGVvZiBpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIGl9aWYoIlJlZ0V4cCIhPT1yKGUpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBvLmNhbGwoZSx0KX19LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKGUpe2lmKGUpcmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiByLnByb3RvdHlwZSllW3RdPXIucHJvdG90eXBlW3RdO3JldHVybiBlfShlKX1lLmV4cG9ydHM9cixyLnByb3RvdHlwZS5vbj1yLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9LCh0aGlzLl9jYWxsYmFja3NbIiQiK2VdPXRoaXMuX2NhbGxiYWNrc1siJCIrZV18fFtdKS5wdXNoKHQpLHRoaXN9LHIucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKCl7dGhpcy5vZmYoZSxuKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gbi5mbj10LHRoaXMub24oZSxuKSx0aGlzfSxyLnByb3RvdHlwZS5vZmY9ci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPXIucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwwPT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl9jYWxsYmFja3M9e30sdGhpczt2YXIgbixyPXRoaXMuX2NhbGxiYWNrc1siJCIrZV07aWYoIXIpcmV0dXJuIHRoaXM7aWYoMT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1siJCIrZV0sdGhpcztmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylpZigobj1yW29dKT09PXR8fG4uZm49PT10KXtyLnNwbGljZShvLDEpO2JyZWFrfXJldHVybiB0aGlzfSxyLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9O3ZhciB0PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLG49dGhpcy5fY2FsbGJhY2tzWyIkIitlXTtpZihuKWZvcih2YXIgcj0wLG89KG49bi5zbGljZSgwKSkubGVuZ3RoO3I8bzsrK3IpbltyXS5hcHBseSh0aGlzLHQpO3JldHVybiB0aGlzfSxyLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9LHRoaXMuX2NhbGxiYWNrc1siJCIrZV18fFtdfSxyLnByb3RvdHlwZS5oYXNMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLmxpc3RlbmVycyhlKS5sZW5ndGh9fSxmdW5jdGlvbihlLHQsbil7dmFyIHIsbz1uKDI5MCksaT1uKDE5MSksYT1uKDI5Nikscz1uKDI5NyksdT1uKDI5OCk7InVuZGVmaW5lZCIhPT10eXBlb2YgQXJyYXlCdWZmZXImJihyPW4oMjk5KSk7dmFyIGM9InVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiYvQW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbD0idW5kZWZpbmVkIiE9PXR5cGVvZiBuYXZpZ2F0b3ImJi9QaGFudG9tSlMvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGY9Y3x8bDt0LnByb3RvY29sPTM7dmFyIGQ9dC5wYWNrZXRzPXtvcGVuOjAsY2xvc2U6MSxwaW5nOjIscG9uZzozLG1lc3NhZ2U6NCx1cGdyYWRlOjUsbm9vcDo2fSxwPW8oZCksaD17dHlwZToiZXJyb3IiLGRhdGE6InBhcnNlciBlcnJvciJ9LHY9bigzMDApO2Z1bmN0aW9uIGcoZSx0LG4pe2Zvcih2YXIgcj1uZXcgQXJyYXkoZS5sZW5ndGgpLG89cyhlLmxlbmd0aCxuKSxpPWZ1bmN0aW9uKGUsbixvKXt0KG4sKGZ1bmN0aW9uKHQsbil7cltlXT1uLG8odCxyKX0pKX0sYT0wO2E8ZS5sZW5ndGg7YSsrKWkoYSxlW2FdLG8pfXQuZW5jb2RlUGFja2V0PWZ1bmN0aW9uKGUsbixyLG8peyJmdW5jdGlvbiI9PT10eXBlb2YgbiYmKG89bixuPSExKSwiZnVuY3Rpb24iPT09dHlwZW9mIHImJihvPXIscj1udWxsKTt2YXIgaT12b2lkIDA9PT1lLmRhdGE/dm9pZCAwOmUuZGF0YS5idWZmZXJ8fGUuZGF0YTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBBcnJheUJ1ZmZlciYmaSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBmdW5jdGlvbihlLG4scil7aWYoIW4pcmV0dXJuIHQuZW5jb2RlQmFzZTY0UGFja2V0KGUscik7dmFyIG89ZS5kYXRhLGk9bmV3IFVpbnQ4QXJyYXkobyksYT1uZXcgVWludDhBcnJheSgxK28uYnl0ZUxlbmd0aCk7YVswXT1kW2UudHlwZV07Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspYVtzKzFdPWlbc107cmV0dXJuIHIoYS5idWZmZXIpfShlLG4sbyk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgdiYmaSBpbnN0YW5jZW9mIHYpcmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtpZighbilyZXR1cm4gdC5lbmNvZGVCYXNlNjRQYWNrZXQoZSxyKTtpZihmKXJldHVybiBmdW5jdGlvbihlLG4scil7aWYoIW4pcmV0dXJuIHQuZW5jb2RlQmFzZTY0UGFja2V0KGUscik7dmFyIG89bmV3IEZpbGVSZWFkZXI7cmV0dXJuIG8ub25sb2FkPWZ1bmN0aW9uKCl7dC5lbmNvZGVQYWNrZXQoe3R5cGU6ZS50eXBlLGRhdGE6by5yZXN1bHR9LG4sITAscil9LG8ucmVhZEFzQXJyYXlCdWZmZXIoZS5kYXRhKX0oZSxuLHIpO3ZhciBvPW5ldyBVaW50OEFycmF5KDEpO29bMF09ZFtlLnR5cGVdO3ZhciBpPW5ldyB2KFtvLmJ1ZmZlcixlLmRhdGFdKTtyZXR1cm4gcihpKX0oZSxuLG8pO2lmKGkmJmkuYmFzZTY0KXJldHVybiBmdW5jdGlvbihlLG4pe3ZhciByPSJiIit0LnBhY2tldHNbZS50eXBlXStlLmRhdGEuZGF0YTtyZXR1cm4gbihyKX0oZSxvKTt2YXIgYT1kW2UudHlwZV07cmV0dXJuIHZvaWQgMCE9PWUuZGF0YSYmKGErPXI/dS5lbmNvZGUoU3RyaW5nKGUuZGF0YSkse3N0cmljdDohMX0pOlN0cmluZyhlLmRhdGEpKSxvKCIiK2EpfSx0LmVuY29kZUJhc2U2NFBhY2tldD1mdW5jdGlvbihlLG4pe3ZhciByLG89ImIiK3QucGFja2V0c1tlLnR5cGVdO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHYmJmUuZGF0YSBpbnN0YW5jZW9mIHYpe3ZhciBpPW5ldyBGaWxlUmVhZGVyO3JldHVybiBpLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBlPWkucmVzdWx0LnNwbGl0KCIsIilbMV07bihvK2UpfSxpLnJlYWRBc0RhdGFVUkwoZS5kYXRhKX10cnl7cj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoZS5kYXRhKSl9Y2F0Y2goYyl7Zm9yKHZhciBhPW5ldyBVaW50OEFycmF5KGUuZGF0YSkscz1uZXcgQXJyYXkoYS5sZW5ndGgpLHU9MDt1PGEubGVuZ3RoO3UrKylzW3VdPWFbdV07cj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwscyl9cmV0dXJuIG8rPWJ0b2EociksbihvKX0sdC5kZWNvZGVQYWNrZXQ9ZnVuY3Rpb24oZSxuLHIpe2lmKHZvaWQgMD09PWUpcmV0dXJuIGg7aWYoInN0cmluZyI9PT10eXBlb2YgZSl7aWYoImIiPT09ZS5jaGFyQXQoMCkpcmV0dXJuIHQuZGVjb2RlQmFzZTY0UGFja2V0KGUuc3Vic3RyKDEpLG4pO2lmKHImJiExPT09KGU9ZnVuY3Rpb24oZSl7dHJ5e2U9dS5kZWNvZGUoZSx7c3RyaWN0OiExfSl9Y2F0Y2godCl7cmV0dXJuITF9cmV0dXJuIGV9KGUpKSlyZXR1cm4gaDt2YXIgbz1lLmNoYXJBdCgwKTtyZXR1cm4gTnVtYmVyKG8pPT1vJiZwW29dP2UubGVuZ3RoPjE/e3R5cGU6cFtvXSxkYXRhOmUuc3Vic3RyaW5nKDEpfTp7dHlwZTpwW29dfTpofW89bmV3IFVpbnQ4QXJyYXkoZSlbMF07dmFyIGk9YShlLDEpO3JldHVybiB2JiYiYmxvYiI9PT1uJiYoaT1uZXcgdihbaV0pKSx7dHlwZTpwW29dLGRhdGE6aX19LHQuZGVjb2RlQmFzZTY0UGFja2V0PWZ1bmN0aW9uKGUsdCl7dmFyIG49cFtlLmNoYXJBdCgwKV07aWYoIXIpcmV0dXJue3R5cGU6bixkYXRhOntiYXNlNjQ6ITAsZGF0YTplLnN1YnN0cigxKX19O3ZhciBvPXIuZGVjb2RlKGUuc3Vic3RyKDEpKTtyZXR1cm4iYmxvYiI9PT10JiZ2JiYobz1uZXcgdihbb10pKSx7dHlwZTpuLGRhdGE6b319LHQuZW5jb2RlUGF5bG9hZD1mdW5jdGlvbihlLG4scil7ImZ1bmN0aW9uIj09PXR5cGVvZiBuJiYocj1uLG49bnVsbCk7dmFyIG89aShlKTtpZihuJiZvKXJldHVybiB2JiYhZj90LmVuY29kZVBheWxvYWRBc0Jsb2IoZSxyKTp0LmVuY29kZVBheWxvYWRBc0FycmF5QnVmZmVyKGUscik7aWYoIWUubGVuZ3RoKXJldHVybiByKCIwOiIpO2coZSwoZnVuY3Rpb24oZSxyKXt0LmVuY29kZVBhY2tldChlLCEhbyYmbiwhMSwoZnVuY3Rpb24oZSl7cihudWxsLGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aCsiOiIrZX0oZSkpfSkpfSksKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIodC5qb2luKCIiKSl9KSl9LHQuZGVjb2RlUGF5bG9hZD1mdW5jdGlvbihlLG4scil7aWYoInN0cmluZyIhPT10eXBlb2YgZSlyZXR1cm4gdC5kZWNvZGVQYXlsb2FkQXNCaW5hcnkoZSxuLHIpO3ZhciBvO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgbiYmKHI9bixuPW51bGwpLCIiPT09ZSlyZXR1cm4gcihoLDAsMSk7Zm9yKHZhciBpLGEscz0iIix1PTAsYz1lLmxlbmd0aDt1PGM7dSsrKXt2YXIgbD1lLmNoYXJBdCh1KTtpZigiOiI9PT1sKXtpZigiIj09PXN8fHMhPShpPU51bWJlcihzKSkpcmV0dXJuIHIoaCwwLDEpO2lmKHMhPShhPWUuc3Vic3RyKHUrMSxpKSkubGVuZ3RoKXJldHVybiByKGgsMCwxKTtpZihhLmxlbmd0aCl7aWYobz10LmRlY29kZVBhY2tldChhLG4sITEpLGgudHlwZT09PW8udHlwZSYmaC5kYXRhPT09by5kYXRhKXJldHVybiByKGgsMCwxKTtpZighMT09PXIobyx1K2ksYykpcmV0dXJufXUrPWkscz0iIn1lbHNlIHMrPWx9cmV0dXJuIiIhPT1zP3IoaCwwLDEpOnZvaWQgMH0sdC5lbmNvZGVQYXlsb2FkQXNBcnJheUJ1ZmZlcj1mdW5jdGlvbihlLG4pe2lmKCFlLmxlbmd0aClyZXR1cm4gbihuZXcgQXJyYXlCdWZmZXIoMCkpO2coZSwoZnVuY3Rpb24oZSxuKXt0LmVuY29kZVBhY2tldChlLCEwLCEwLChmdW5jdGlvbihlKXtyZXR1cm4gbihudWxsLGUpfSkpfSksKGZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7dmFyIG47cmV0dXJuIGUrKG49InN0cmluZyI9PT10eXBlb2YgdD90Lmxlbmd0aDp0LmJ5dGVMZW5ndGgpLnRvU3RyaW5nKCkubGVuZ3RoK24rMn0pLDApLG89bmV3IFVpbnQ4QXJyYXkociksaT0wO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PSJzdHJpbmciPT09dHlwZW9mIGUsbj1lO2lmKHQpe2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCksYT0wO2E8ZS5sZW5ndGg7YSsrKXJbYV09ZS5jaGFyQ29kZUF0KGEpO249ci5idWZmZXJ9b1tpKytdPXQ/MDoxO3ZhciBzPW4uYnl0ZUxlbmd0aC50b1N0cmluZygpO2ZvcihhPTA7YTxzLmxlbmd0aDthKyspb1tpKytdPXBhcnNlSW50KHNbYV0pO29baSsrXT0yNTU7Zm9yKHI9bmV3IFVpbnQ4QXJyYXkobiksYT0wO2E8ci5sZW5ndGg7YSsrKW9baSsrXT1yW2FdfSkpLG4oby5idWZmZXIpfSkpfSx0LmVuY29kZVBheWxvYWRBc0Jsb2I9ZnVuY3Rpb24oZSxuKXtnKGUsKGZ1bmN0aW9uKGUsbil7dC5lbmNvZGVQYWNrZXQoZSwhMCwhMCwoZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFVpbnQ4QXJyYXkoMSk7aWYodFswXT0xLCJzdHJpbmciPT09dHlwZW9mIGUpe2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCksbz0wO288ZS5sZW5ndGg7bysrKXJbb109ZS5jaGFyQ29kZUF0KG8pO2U9ci5idWZmZXIsdFswXT0wfXZhciBpPShlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ZS5ieXRlTGVuZ3RoOmUuc2l6ZSkudG9TdHJpbmcoKSxhPW5ldyBVaW50OEFycmF5KGkubGVuZ3RoKzEpO2ZvcihvPTA7bzxpLmxlbmd0aDtvKyspYVtvXT1wYXJzZUludChpW29dKTtpZihhW2kubGVuZ3RoXT0yNTUsdil7dmFyIHM9bmV3IHYoW3QuYnVmZmVyLGEuYnVmZmVyLGVdKTtuKG51bGwscyl9fSkpfSksKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4obmV3IHYodCkpfSkpfSx0LmRlY29kZVBheWxvYWRBc0JpbmFyeT1mdW5jdGlvbihlLG4scil7ImZ1bmN0aW9uIj09PXR5cGVvZiBuJiYocj1uLG49bnVsbCk7Zm9yKHZhciBvPWUsaT1bXTtvLmJ5dGVMZW5ndGg+MDspe2Zvcih2YXIgcz1uZXcgVWludDhBcnJheShvKSx1PTA9PT1zWzBdLGM9IiIsbD0xOzI1NSE9PXNbbF07bCsrKXtpZihjLmxlbmd0aD4zMTApcmV0dXJuIHIoaCwwLDEpO2MrPXNbbF19bz1hKG8sMitjLmxlbmd0aCksYz1wYXJzZUludChjKTt2YXIgZj1hKG8sMCxjKTtpZih1KXRyeXtmPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheShmKSl9Y2F0Y2godil7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoZik7Zj0iIjtmb3IobD0wO2w8ZC5sZW5ndGg7bCsrKWYrPVN0cmluZy5mcm9tQ2hhckNvZGUoZFtsXSl9aS5wdXNoKGYpLG89YShvLGMpfXZhciBwPWkubGVuZ3RoO2kuZm9yRWFjaCgoZnVuY3Rpb24oZSxvKXtyKHQuZGVjb2RlUGFja2V0KGUsbiwhMCksbyxwKX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24odCl7dmFyIG49L15ccyt8XHMrJC9nLHI9L15bLStdMHhbMC05YS1mXSskL2ksbz0vXjBiWzAxXSskL2ksaT0vXjBvWzAtN10rJC9pLGE9cGFyc2VJbnQscz0ib2JqZWN0Ij09dHlwZW9mIHQmJnQmJnQuT2JqZWN0PT09T2JqZWN0JiZ0LHU9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixjPXN8fHV8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksbD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGY9TWF0aC5tYXgsZD1NYXRoLm1pbixwPWZ1bmN0aW9uKCl7cmV0dXJuIGMuRGF0ZS5ub3coKX07ZnVuY3Rpb24gaChlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4hIWUmJigib2JqZWN0Ij09dHx8ImZ1bmN0aW9uIj09dCl9ZnVuY3Rpb24gdihlKXtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoZnVuY3Rpb24oZSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBlfHxmdW5jdGlvbihlKXtyZXR1cm4hIWUmJiJvYmplY3QiPT10eXBlb2YgZX0oZSkmJiJbb2JqZWN0IFN5bWJvbF0iPT1sLmNhbGwoZSl9KGUpKXJldHVybiBOYU47aWYoaChlKSl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGUudmFsdWVPZj9lLnZhbHVlT2YoKTplO2U9aCh0KT90KyIiOnR9aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiAwPT09ZT9lOitlO2U9ZS5yZXBsYWNlKG4sIiIpO3ZhciBzPW8udGVzdChlKTtyZXR1cm4gc3x8aS50ZXN0KGUpP2EoZS5zbGljZSgyKSxzPzI6OCk6ci50ZXN0KGUpP05hTjorZX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG8saSxhLHMsdSxjPTAsbD0hMSxnPSExLHk9ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIG0odCl7dmFyIG49cixpPW87cmV0dXJuIHI9bz12b2lkIDAsYz10LGE9ZS5hcHBseShpLG4pfWZ1bmN0aW9uIGIoZSl7cmV0dXJuIGM9ZSxzPXNldFRpbWVvdXQoTyx0KSxsP20oZSk6YX1mdW5jdGlvbiB3KGUpe3ZhciBuPWUtdTtyZXR1cm4gdm9pZCAwPT09dXx8bj49dHx8bjwwfHxnJiZlLWM+PWl9ZnVuY3Rpb24gTygpe3ZhciBlPXAoKTtpZih3KGUpKXJldHVybiBfKGUpO3M9c2V0VGltZW91dChPLGZ1bmN0aW9uKGUpe3ZhciBuPXQtKGUtdSk7cmV0dXJuIGc/ZChuLGktKGUtYykpOm59KGUpKX1mdW5jdGlvbiBfKGUpe3JldHVybiBzPXZvaWQgMCx5JiZyP20oZSk6KHI9bz12b2lkIDAsYSl9ZnVuY3Rpb24gRSgpe3ZhciBlPXAoKSxuPXcoZSk7aWYocj1hcmd1bWVudHMsbz10aGlzLHU9ZSxuKXtpZih2b2lkIDA9PT1zKXJldHVybiBiKHUpO2lmKGcpcmV0dXJuIHM9c2V0VGltZW91dChPLHQpLG0odSl9cmV0dXJuIHZvaWQgMD09PXMmJihzPXNldFRpbWVvdXQoTyx0KSksYX1yZXR1cm4gdD12KHQpfHwwLGgobikmJihsPSEhbi5sZWFkaW5nLGk9KGc9Im1heFdhaXQiaW4gbik/Zih2KG4ubWF4V2FpdCl8fDAsdCk6aSx5PSJ0cmFpbGluZyJpbiBuPyEhbi50cmFpbGluZzp5KSxFLmNhbmNlbD1mdW5jdGlvbigpe3ZvaWQgMCE9PXMmJmNsZWFyVGltZW91dChzKSxjPTAscj11PW89cz12b2lkIDB9LEUuZmx1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09cz9hOl8ocCgpKX0sRX19KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyMCksbz1uKDI2KS5mLGk9RnVuY3Rpb24ucHJvdG90eXBlLGE9aS50b1N0cmluZyxzPS9eXHMqZnVuY3Rpb24gKFteIChdKikvO3ImJiEoIm5hbWUiaW4gaSkmJm8oaSwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGEuY2FsbCh0aGlzKS5tYXRjaChzKVsxXX1jYXRjaChlKXtyZXR1cm4iIn19fSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDEzOCksbz1uKDMwKSxpPW4oMjI3KTtyfHxvKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIixpLHt1bnNhZmU6ITB9KX0sZnVuY3Rpb24oZSx0LG4pe24oOSkoe3RhcmdldDoiRGF0ZSIsc3RhdDohMH0se25vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfX0pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big5KSxvPW4oMzMpLGk9bigxNDApO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpuKDEwKSgoZnVuY3Rpb24oKXtpKDEpfSkpfSx7a2V5czpmdW5jdGlvbihlKXtyZXR1cm4gaShvKGUpKX19KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDEpLG89TWF0aC5tYXgsaT1NYXRoLm1pbjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yKGUpO3JldHVybiBuPDA/byhuK3QsMCk6aShuLHQpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQ5KSxvPW4oMjYpLGk9big0OCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgYT1yKHQpO2EgaW4gZT9vLmYoZSxhLGkoMCxuKSk6ZVthXT1ufX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDc4KSxvPW4oMTQpLGk9bigyMyksYT1uKDQxKSxzPW4oMjIpLHU9bigxMDMpLGM9bigxMzcpLGw9big3OSksZj1NYXRoLm1heCxkPU1hdGgubWluO3IoInJlcGxhY2UiLDIsKGZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBwPXIuUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUsaD1yLlJFUExBQ0VfS0VFUFNfJDAsdj1wPyIkIjoiJDAiO3JldHVybltmdW5jdGlvbihuLHIpe3ZhciBvPXModGhpcyksaT12b2lkIDA9PW4/dm9pZCAwOm5bZV07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKG4sbyxyKTp0LmNhbGwoU3RyaW5nKG8pLG4scil9LGZ1bmN0aW9uKGUscil7aWYoIXAmJmh8fCJzdHJpbmciPT09dHlwZW9mIHImJi0xPT09ci5pbmRleE9mKHYpKXt2YXIgcz1uKHQsZSx0aGlzLHIpO2lmKHMuZG9uZSlyZXR1cm4gcy52YWx1ZX12YXIgZz1vKGUpLHk9U3RyaW5nKHRoaXMpLG09ImZ1bmN0aW9uIj09PXR5cGVvZiByO218fChyPVN0cmluZyhyKSk7dmFyIGI9Zy5nbG9iYWw7aWYoYil7dmFyIHc9Zy51bmljb2RlO2cubGFzdEluZGV4PTB9Zm9yKHZhciBPPVtdOzspe3ZhciBfPWwoZyx5KTtpZihudWxsPT09XylicmVhaztpZihPLnB1c2goXyksIWIpYnJlYWs7IiI9PT1TdHJpbmcoX1swXSkmJihnLmxhc3RJbmRleD11KHksaShnLmxhc3RJbmRleCksdykpfWZvcih2YXIgRSxDPSIiLFM9MCxrPTA7azxPLmxlbmd0aDtrKyspe189T1trXTtmb3IodmFyIHg9U3RyaW5nKF9bMF0pLEE9ZihkKGEoXy5pbmRleCkseS5sZW5ndGgpLDApLGo9W10sVD0xO1Q8Xy5sZW5ndGg7VCsrKWoucHVzaCh2b2lkIDA9PT0oRT1fW1RdKT9FOlN0cmluZyhFKSk7dmFyIFA9Xy5ncm91cHM7aWYobSl7dmFyIEk9W3hdLmNvbmNhdChqLEEseSk7dm9pZCAwIT09UCYmSS5wdXNoKFApO3ZhciBSPVN0cmluZyhyLmFwcGx5KHZvaWQgMCxJKSl9ZWxzZSBSPWMoeCx5LEEsaixQLHIpO0E+PVMmJihDKz15LnNsaWNlKFMsQSkrUixTPUEreC5sZW5ndGgpfXJldHVybiBDK3kuc2xpY2UoUyl9XX0pKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDEwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXVtlXTtyZXR1cm4hIW4mJnIoKGZ1bmN0aW9uKCl7bi5jYWxsKG51bGwsdHx8ZnVuY3Rpb24oKXt0aHJvdyAxfSwxKX0pKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDEyOSksbz1uKDc0KSxpPW4oMzMpLGE9bigyMykscz1uKDEwMCksdT1bXS5wdXNoLGM9ZnVuY3Rpb24oZSl7dmFyIHQ9MT09ZSxuPTI9PWUsYz0zPT1lLGw9ND09ZSxmPTY9PWUsZD03PT1lLHA9NT09ZXx8ZjtyZXR1cm4gZnVuY3Rpb24oaCx2LGcseSl7Zm9yKHZhciBtLGIsdz1pKGgpLE89byh3KSxfPXIodixnLDMpLEU9YShPLmxlbmd0aCksQz0wLFM9eXx8cyxrPXQ/UyhoLEUpOm58fGQ/UyhoLDApOnZvaWQgMDtFPkM7QysrKWlmKChwfHxDIGluIE8pJiYoYj1fKG09T1tDXSxDLHcpLGUpKWlmKHQpa1tDXT1iO2Vsc2UgaWYoYilzd2l0Y2goZSl7Y2FzZSAzOnJldHVybiEwO2Nhc2UgNTpyZXR1cm4gbTtjYXNlIDY6cmV0dXJuIEM7Y2FzZSAyOnUuY2FsbChrLG0pfWVsc2Ugc3dpdGNoKGUpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6dS5jYWxsKGssbSl9cmV0dXJuIGY/LTE6Y3x8bD9sOmt9fTtlLmV4cG9ydHM9e2ZvckVhY2g6YygwKSxtYXA6YygxKSxmaWx0ZXI6YygyKSxzb21lOmMoMyksZXZlcnk6Yyg0KSxmaW5kOmMoNSksZmluZEluZGV4OmMoNiksZmlsdGVyT3V0OmMoNyl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyMCksbz1uKDEwKSxpPW4oOTMpO2UuZXhwb3J0cz0hciYmIW8oKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShpKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDgpLG89bigxNSksaT1yLmRvY3VtZW50LGE9byhpKSYmbyhpLmNyZWF0ZUVsZW1lbnQpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gYT9pLmNyZWF0ZUVsZW1lbnQoZSk6e319fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big5NSksbz1uKDk2KSxpPXIoImtleXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGlbZV18fChpW2VdPW8oZSkpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNjMpLG89big2MSk7KGUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBvW2VdfHwob1tlXT12b2lkIDAhPT10P3Q6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy44LjMiLG1vZGU6cj8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiJceGE5IDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LGZ1bmN0aW9uKGUsdCl7dmFyIG49MCxyPU1hdGgucmFuZG9tKCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJTeW1ib2woIitTdHJpbmcodm9pZCAwPT09ZT8iIjplKSsiKV8iKygrK24rcikudG9TdHJpbmcoMzYpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTEzKSxvPW4oOTkpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXtyZXR1cm4gcihlLG8pfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzQpLG89bigyMyksaT1uKDg3KSxhPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4sYSl7dmFyIHMsdT1yKHQpLGM9byh1Lmxlbmd0aCksbD1pKGEsYyk7aWYoZSYmbiE9bil7Zm9yKDtjPmw7KWlmKChzPXVbbCsrXSkhPXMpcmV0dXJuITB9ZWxzZSBmb3IoO2M+bDtsKyspaWYoKGV8fGwgaW4gdSkmJnVbbF09PT1uKXJldHVybiBlfHxsfHwwO3JldHVybiFlJiYtMX19O2UuZXhwb3J0cz17aW5jbHVkZXM6YSghMCksaW5kZXhPZjphKCExKX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE1KSxvPW4oNjQpLGk9bigxMikoInNwZWNpZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4gbyhlKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihuPWUuY29uc3RydWN0b3IpfHxuIT09QXJyYXkmJiFvKG4ucHJvdG90eXBlKT9yKG4pJiZudWxsPT09KG49bltpXSkmJihuPXZvaWQgMCk6bj12b2lkIDApLG5ldyh2b2lkIDA9PT1uP0FycmF5Om4pKDA9PT10PzA6dCl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxMCk7ZS5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXIoKGZ1bmN0aW9uKCl7cmV0dXJuIVN0cmluZyhTeW1ib2woKSl9KSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIGU9cih0aGlzKSx0PSIiO3JldHVybiBlLmdsb2JhbCYmKHQrPSJnIiksZS5pZ25vcmVDYXNlJiYodCs9ImkiKSxlLm11bHRpbGluZSYmKHQrPSJtIiksZS5kb3RBbGwmJih0Kz0icyIpLGUudW5pY29kZSYmKHQrPSJ1IiksZS5zdGlja3kmJih0Kz0ieSIpLHR9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTE1KS5jaGFyQXQ7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCsobj9yKGUsdCkubGVuZ3RoOjEpfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9e319LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigxNjIpfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByLG8saSxhLHM9big5KSx1PW4oNjMpLGM9big4KSxsPW4oNTApLGY9bigyMjgpLGQ9bigzMCkscD1uKDIyOSksaD1uKDEzOSksdj1uKDE2NiksZz1uKDE1KSx5PW4oNjgpLG09bigyMzApLGI9big3NSksdz1uKDIzMSksTz1uKDIxNyksXz1uKDE2NyksRT1uKDE2OCkuc2V0LEM9bigyMzIpLFM9bigyMzQpLGs9bigyMzUpLHg9bigxNzEpLEE9bigyMzYpLGo9big2MiksVD1uKDc3KSxQPW4oMTIpLEk9bigxMTYpLFI9big2NiksRD1QKCJzcGVjaWVzIiksTj0iUHJvbWlzZSIsTD1qLmdldCxGPWouc2V0LE09ai5nZXR0ZXJGb3IoTiksQj1mLFU9Yy5UeXBlRXJyb3Isej1jLmRvY3VtZW50LFY9Yy5wcm9jZXNzLEg9bCgiZmV0Y2giKSxXPXguZixxPVcsJD0hISh6JiZ6LmNyZWF0ZUV2ZW50JiZjLmRpc3BhdGNoRXZlbnQpLFk9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxHPVQoTiwoZnVuY3Rpb24oKXtpZighKGIoQikhPT1TdHJpbmcoQikpKXtpZig2Nj09PVIpcmV0dXJuITA7aWYoIUkmJiFZKXJldHVybiEwfWlmKHUmJiFCLnByb3RvdHlwZS5maW5hbGx5KXJldHVybiEwO2lmKFI+PTUxJiYvbmF0aXZlIGNvZGUvLnRlc3QoQikpcmV0dXJuITE7dmFyIGU9Qi5yZXNvbHZlKDEpLHQ9ZnVuY3Rpb24oZSl7ZSgoZnVuY3Rpb24oKXt9KSwoZnVuY3Rpb24oKXt9KSl9O3JldHVybihlLmNvbnN0cnVjdG9yPXt9KVtEXT10LCEoZS50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgdCl9KSksSz1HfHwhTygoZnVuY3Rpb24oZSl7Qi5hbGwoZSkuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpfSkpLFg9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuISghZyhlKXx8ImZ1bmN0aW9uIiE9dHlwZW9mKHQ9ZS50aGVuKSkmJnR9LFE9ZnVuY3Rpb24oZSx0KXtpZighZS5ub3RpZmllZCl7ZS5ub3RpZmllZD0hMDt2YXIgbj1lLnJlYWN0aW9ucztDKChmdW5jdGlvbigpe2Zvcih2YXIgcj1lLnZhbHVlLG89MT09ZS5zdGF0ZSxpPTA7bi5sZW5ndGg+aTspe3ZhciBhLHMsdSxjPW5baSsrXSxsPW8/Yy5vazpjLmZhaWwsZj1jLnJlc29sdmUsZD1jLnJlamVjdCxwPWMuZG9tYWluO3RyeXtsPyhvfHwoMj09PWUucmVqZWN0aW9uJiZ0ZShlKSxlLnJlamVjdGlvbj0xKSwhMD09PWw/YT1yOihwJiZwLmVudGVyKCksYT1sKHIpLHAmJihwLmV4aXQoKSx1PSEwKSksYT09PWMucHJvbWlzZT9kKFUoIlByb21pc2UtY2hhaW4gY3ljbGUiKSk6KHM9WChhKSk/cy5jYWxsKGEsZixkKTpmKGEpKTpkKHIpfWNhdGNoKGgpe3AmJiF1JiZwLmV4aXQoKSxkKGgpfX1lLnJlYWN0aW9ucz1bXSxlLm5vdGlmaWVkPSExLHQmJiFlLnJlamVjdGlvbiYmWihlKX0pKX19LEo9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG87JD8oKHI9ei5jcmVhdGVFdmVudCgiRXZlbnQiKSkucHJvbWlzZT10LHIucmVhc29uPW4sci5pbml0RXZlbnQoZSwhMSwhMCksYy5kaXNwYXRjaEV2ZW50KHIpKTpyPXtwcm9taXNlOnQscmVhc29uOm59LCFZJiYobz1jWyJvbiIrZV0pP28ocik6InVuaGFuZGxlZHJlamVjdGlvbiI9PT1lJiZrKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLG4pfSxaPWZ1bmN0aW9uKGUpe0UuY2FsbChjLChmdW5jdGlvbigpe3ZhciB0LG49ZS5mYWNhZGUscj1lLnZhbHVlO2lmKGVlKGUpJiYodD1BKChmdW5jdGlvbigpe0k/Vi5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLHIsbik6SigidW5oYW5kbGVkcmVqZWN0aW9uIixuLHIpfSkpLGUucmVqZWN0aW9uPUl8fGVlKGUpPzI6MSx0LmVycm9yKSl0aHJvdyB0LnZhbHVlfSkpfSxlZT1mdW5jdGlvbihlKXtyZXR1cm4gMSE9PWUucmVqZWN0aW9uJiYhZS5wYXJlbnR9LHRlPWZ1bmN0aW9uKGUpe0UuY2FsbChjLChmdW5jdGlvbigpe3ZhciB0PWUuZmFjYWRlO0k/Vi5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIix0KTpKKCJyZWplY3Rpb25oYW5kbGVkIix0LGUudmFsdWUpfSkpfSxuZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGZ1bmN0aW9uKHIpe2UodCxyLG4pfX0scmU9ZnVuY3Rpb24oZSx0LG4pe2UuZG9uZXx8KGUuZG9uZT0hMCxuJiYoZT1uKSxlLnZhbHVlPXQsZS5zdGF0ZT0yLFEoZSwhMCkpfSxvZT1mdW5jdGlvbiBlKHQsbixyKXtpZighdC5kb25lKXt0LmRvbmU9ITAsciYmKHQ9cik7dHJ5e2lmKHQuZmFjYWRlPT09bil0aHJvdyBVKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpO3ZhciBvPVgobik7bz9DKChmdW5jdGlvbigpe3ZhciByPXtkb25lOiExfTt0cnl7by5jYWxsKG4sbmUoZSxyLHQpLG5lKHJlLHIsdCkpfWNhdGNoKGkpe3JlKHIsaSx0KX19KSk6KHQudmFsdWU9bix0LnN0YXRlPTEsUSh0LCExKSl9Y2F0Y2goaSl7cmUoe2RvbmU6ITF9LGksdCl9fX07RyYmKEI9ZnVuY3Rpb24oZSl7bSh0aGlzLEIsTikseShlKSxyLmNhbGwodGhpcyk7dmFyIHQ9TCh0aGlzKTt0cnl7ZShuZShvZSx0KSxuZShyZSx0KSl9Y2F0Y2gobil7cmUodCxuKX19LChyPWZ1bmN0aW9uKGUpe0YodGhpcyx7dHlwZTpOLGRvbmU6ITEsbm90aWZpZWQ6ITEscGFyZW50OiExLHJlYWN0aW9uczpbXSxyZWplY3Rpb246ITEsc3RhdGU6MCx2YWx1ZTp2b2lkIDB9KX0pLnByb3RvdHlwZT1wKEIucHJvdG90eXBlLHt0aGVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49TSh0aGlzKSxyPVcoXyh0aGlzLEIpKTtyZXR1cm4gci5vaz0iZnVuY3Rpb24iIT10eXBlb2YgZXx8ZSxyLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQsci5kb21haW49ST9WLmRvbWFpbjp2b2lkIDAsbi5wYXJlbnQ9ITAsbi5yZWFjdGlvbnMucHVzaChyKSwwIT1uLnN0YXRlJiZRKG4sITEpLHIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZSl9fSksbz1mdW5jdGlvbigpe3ZhciBlPW5ldyByLHQ9TChlKTt0aGlzLnByb21pc2U9ZSx0aGlzLnJlc29sdmU9bmUob2UsdCksdGhpcy5yZWplY3Q9bmUocmUsdCl9LHguZj1XPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09Qnx8ZT09PWk/bmV3IG8oZSk6cShlKX0sdXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGZ8fChhPWYucHJvdG90eXBlLnRoZW4sZChmLnByb3RvdHlwZSwidGhlbiIsKGZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gbmV3IEIoKGZ1bmN0aW9uKGUsdCl7YS5jYWxsKG4sZSx0KX0pKS50aGVuKGUsdCl9KSx7dW5zYWZlOiEwfSksImZ1bmN0aW9uIj09dHlwZW9mIEgmJnMoe2dsb2JhbDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDohMH0se2ZldGNoOmZ1bmN0aW9uKGUpe3JldHVybiBTKEIsSC5hcHBseShjLGFyZ3VtZW50cykpfX0pKSkscyh7Z2xvYmFsOiEwLHdyYXA6ITAsZm9yY2VkOkd9LHtQcm9taXNlOkJ9KSxoKEIsTiwhMSwhMCksdihOKSxpPWwoTikscyh7dGFyZ2V0Ok4sc3RhdDohMCxmb3JjZWQ6R30se3JlamVjdDpmdW5jdGlvbihlKXt2YXIgdD1XKHRoaXMpO3JldHVybiB0LnJlamVjdC5jYWxsKHZvaWQgMCxlKSx0LnByb21pc2V9fSkscyh7dGFyZ2V0Ok4sc3RhdDohMCxmb3JjZWQ6dXx8R30se3Jlc29sdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIFModSYmdGhpcz09PWk/Qjp0aGlzLGUpfX0pLHMoe3RhcmdldDpOLHN0YXQ6ITAsZm9yY2VkOkt9LHthbGw6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPVcodCkscj1uLnJlc29sdmUsbz1uLnJlamVjdCxpPUEoKGZ1bmN0aW9uKCl7dmFyIG49eSh0LnJlc29sdmUpLGk9W10sYT0wLHM9MTt3KGUsKGZ1bmN0aW9uKGUpe3ZhciB1PWErKyxjPSExO2kucHVzaCh2b2lkIDApLHMrKyxuLmNhbGwodCxlKS50aGVuKChmdW5jdGlvbihlKXtjfHwoYz0hMCxpW3VdPWUsLS1zfHxyKGkpKX0pLG8pfSkpLC0tc3x8cihpKX0pKTtyZXR1cm4gaS5lcnJvciYmbyhpLnZhbHVlKSxuLnByb21pc2V9LHJhY2U6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPVcodCkscj1uLnJlamVjdCxvPUEoKGZ1bmN0aW9uKCl7dmFyIG89eSh0LnJlc29sdmUpO3coZSwoZnVuY3Rpb24oZSl7by5jYWxsKHQsZSkudGhlbihuLnJlc29sdmUscil9KSl9KSk7cmV0dXJuIG8uZXJyb3ImJnIoby52YWx1ZSksbi5wcm9taXNlfX0pfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyFmdW5jdGlvbiBlKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fJiYiZnVuY3Rpb24iPT09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl7MDt0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IodCl9fX0oKSxlLmV4cG9ydHM9bigyNDIpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big5KSxvPW4oMjE4KS52YWx1ZXM7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHt2YWx1ZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSl9fSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3MSk7dC5hPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIE9iamVjdChyLmEpKHQpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oOSksbz1uKDI1NSk7cih7Z2xvYmFsOiEwLGZvcmNlZDpwYXJzZUludCE9b30se3BhcnNlSW50Om99KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsaT1vJiYhci5jYWxsKHsxOjJ9LDEpO3QuZj1pP2Z1bmN0aW9uKGUpe3ZhciB0PW8odGhpcyxlKTtyZXR1cm4hIXQmJnQuZW51bWVyYWJsZX06cn0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTgpLG89bigzNCksaT1uKDk4KS5pbmRleE9mLGE9big3Nik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4scz1vKGUpLHU9MCxjPVtdO2ZvcihuIGluIHMpIXIoYSxuKSYmcihzLG4pJiZjLnB1c2gobik7Zm9yKDt0Lmxlbmd0aD51OylyKHMsbj10W3UrK10pJiYofmkoYyxuKXx8Yy5wdXNoKG4pKTtyZXR1cm4gY319LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMCk7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBSZWdFeHAoZSx0KX10LlVOU1VQUE9SVEVEX1k9cigoZnVuY3Rpb24oKXt2YXIgZT1vKCJhIiwieSIpO3JldHVybiBlLmxhc3RJbmRleD0yLG51bGwhPWUuZXhlYygiYWJjZCIpfSkpLHQuQlJPS0VOX0NBUkVUPXIoKGZ1bmN0aW9uKCl7dmFyIGU9bygiXnIiLCJneSIpO3JldHVybiBlLmxhc3RJbmRleD0yLG51bGwhPWUuZXhlYygic3RyIil9KSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQxKSxvPW4oMjIpLGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIGksYSxzPVN0cmluZyhvKHQpKSx1PXIobiksYz1zLmxlbmd0aDtyZXR1cm4gdTwwfHx1Pj1jP2U/IiI6dm9pZCAwOihpPXMuY2hhckNvZGVBdCh1KSk8NTUyOTZ8fGk+NTYzMTl8fHUrMT09PWN8fChhPXMuY2hhckNvZGVBdCh1KzEpKTw1NjMyMHx8YT41NzM0Mz9lP3MuY2hhckF0KHUpOmk6ZT9zLnNsaWNlKHUsdSsyKTphLTU2MzIwKyhpLTU1Mjk2PDwxMCkrNjU1MzZ9fTtlLmV4cG9ydHM9e2NvZGVBdDppKCExKSxjaGFyQXQ6aSghMCl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzNSksbz1uKDgpO2UuZXhwb3J0cz0icHJvY2VzcyI9PXIoby5wcm9jZXNzKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTIpLG89bigxNDEpLGk9bigyNiksYT1yKCJ1bnNjb3BhYmxlcyIpLHM9QXJyYXkucHJvdG90eXBlO3ZvaWQgMD09c1thXSYmaS5mKHMsYSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOm8obnVsbCl9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7c1thXVtlXT0hMH19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDIyKSxvPSJbIituKDExOSkrIl0iLGk9UmVnRXhwKCJeIitvK28rIioiKSxhPVJlZ0V4cChvK28rIiokIikscz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49U3RyaW5nKHIodCkpO3JldHVybiAxJmUmJihuPW4ucmVwbGFjZShpLCIiKSksMiZlJiYobj1uLnJlcGxhY2UoYSwiIikpLG59fTtlLmV4cG9ydHM9e3N0YXJ0OnMoMSksZW5kOnMoMiksdHJpbTpzKDMpfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9Ilx0XG5cdlxmXHIgXHhhMFx1MTY4MFx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOVx1ZmVmZiJ9LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24ocil7ZnVuY3Rpb24gbygpe3ZhciBlO3RyeXtlPXQuc3RvcmFnZS5kZWJ1Z31jYXRjaChuKXt9cmV0dXJuIWUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHImJiJlbnYiaW4gciYmKGU9T2JqZWN0KHtOT0RFX0VOVjoicHJvZHVjdGlvbiIsUFVCTElDX1VSTDoiIixORVdfV0lER0VUX1JFTEVBU0VfREFURToiMjAxOC0wNy0wOSAxMjoyNTowMCIsTkVXX1dJREdFVF9VUkk6Imh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIixORVdfV0lER0VUX1JBVkVOX1dJREdFVF9EU05fUFVCTElDOiJodHRwczovLzYxMWY1YjdkNjJhMDQ5YjY4ZWQ3MjIyMTNlMGFmYmUzQHNlbnRyeS50aWRpby5jby8xNSIsTkVXX1dJREdFVF9VUkxfU09DS0VUOiJodHRwczovL3NvY2tldC50aWRpby5jbzo0NDMiLE5FV19XSURHRVRfVVJMX0FQSToiaHR0cHM6Ly9hcGktdjIudGlkaW8uY28vIixORVdfV0lER0VUX1VSTF9XSURHRVQ6Imh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIixORVdfV0lER0VUX1VSTF9DSEFUX1BBR0U6Imh0dHBzOi8vY2hhdHRpbmcucGFnZS8iLE5FV19XSURHRVRfU0VORF9TT1VSQ0VNQVBTX1RPX1NFTlRSWToidHJ1ZSIsTkVXX1dJREdFVF9TVVBQT1JUX1BVQkxJQ19LRVk6IncwaTRiN2ZkZWVyZnFxbjR3OGx3YjdhaGphc2pucm1kIn0pLkRFQlVHKSxlfSh0PWUuZXhwb3J0cz1uKDI4MCkpLmxvZz1mdW5jdGlvbigpe3JldHVybiJvYmplY3QiPT09dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZyxjb25zb2xlLGFyZ3VtZW50cyl9LHQuZm9ybWF0QXJncz1mdW5jdGlvbihlKXt2YXIgbj10aGlzLnVzZUNvbG9ycztpZihlWzBdPShuPyIlYyI6IiIpK3RoaXMubmFtZXNwYWNlKyhuPyIgJWMiOiIgIikrZVswXSsobj8iJWMgIjoiICIpKyIrIit0Lmh1bWFuaXplKHRoaXMuZGlmZiksIW4pcmV0dXJuO3ZhciByPSJjb2xvcjogIit0aGlzLmNvbG9yO2Uuc3BsaWNlKDEsMCxyLCJjb2xvcjogaW5oZXJpdCIpO3ZhciBvPTAsaT0wO2VbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLChmdW5jdGlvbihlKXsiJSUiIT09ZSYmKG8rKywiJWMiPT09ZSYmKGk9bykpfSkpLGUuc3BsaWNlKGksMCxyKX0sdC5zYXZlPWZ1bmN0aW9uKGUpe3RyeXtudWxsPT1lP3Quc3RvcmFnZS5yZW1vdmVJdGVtKCJkZWJ1ZyIpOnQuc3RvcmFnZS5kZWJ1Zz1lfWNhdGNoKG4pe319LHQubG9hZD1vLHQudXNlQ29sb3JzPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucHJvY2VzcyYmInJlbmRlcmVyIj09PXdpbmRvdy5wcm9jZXNzLnR5cGUpcmV0dXJuITA7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pKXJldHVybiExO3JldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmd2luZG93LmNvbnNvbGUmJih3aW5kb3cuY29uc29sZS5maXJlYnVnfHx3aW5kb3cuY29uc29sZS5leGNlcHRpb24mJndpbmRvdy5jb25zb2xlLnRhYmxlKXx8InVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykmJnBhcnNlSW50KFJlZ0V4cC4kMSwxMCk+PTMxfHwidW5kZWZpbmVkIiE9PXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcLyhcZCspLyl9LHQuc3RvcmFnZT0idW5kZWZpbmVkIiE9dHlwZW9mIGNocm9tZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBjaHJvbWUuc3RvcmFnZT9jaHJvbWUuc3RvcmFnZS5sb2NhbDpmdW5jdGlvbigpe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaChlKXt9fSgpLHQuY29sb3JzPVsiIzAwMDBDQyIsIiMwMDAwRkYiLCIjMDAzM0NDIiwiIzAwMzNGRiIsIiMwMDY2Q0MiLCIjMDA2NkZGIiwiIzAwOTlDQyIsIiMwMDk5RkYiLCIjMDBDQzAwIiwiIzAwQ0MzMyIsIiMwMENDNjYiLCIjMDBDQzk5IiwiIzAwQ0NDQyIsIiMwMENDRkYiLCIjMzMwMENDIiwiIzMzMDBGRiIsIiMzMzMzQ0MiLCIjMzMzM0ZGIiwiIzMzNjZDQyIsIiMzMzY2RkYiLCIjMzM5OUNDIiwiIzMzOTlGRiIsIiMzM0NDMDAiLCIjMzNDQzMzIiwiIzMzQ0M2NiIsIiMzM0NDOTkiLCIjMzNDQ0NDIiwiIzMzQ0NGRiIsIiM2NjAwQ0MiLCIjNjYwMEZGIiwiIzY2MzNDQyIsIiM2NjMzRkYiLCIjNjZDQzAwIiwiIzY2Q0MzMyIsIiM5OTAwQ0MiLCIjOTkwMEZGIiwiIzk5MzNDQyIsIiM5OTMzRkYiLCIjOTlDQzAwIiwiIzk5Q0MzMyIsIiNDQzAwMDAiLCIjQ0MwMDMzIiwiI0NDMDA2NiIsIiNDQzAwOTkiLCIjQ0MwMENDIiwiI0NDMDBGRiIsIiNDQzMzMDAiLCIjQ0MzMzMzIiwiI0NDMzM2NiIsIiNDQzMzOTkiLCIjQ0MzM0NDIiwiI0NDMzNGRiIsIiNDQzY2MDAiLCIjQ0M2NjMzIiwiI0NDOTkwMCIsIiNDQzk5MzMiLCIjQ0NDQzAwIiwiI0NDQ0MzMyIsIiNGRjAwMDAiLCIjRkYwMDMzIiwiI0ZGMDA2NiIsIiNGRjAwOTkiLCIjRkYwMENDIiwiI0ZGMDBGRiIsIiNGRjMzMDAiLCIjRkYzMzMzIiwiI0ZGMzM2NiIsIiNGRjMzOTkiLCIjRkYzM0NDIiwiI0ZGMzNGRiIsIiNGRjY2MDAiLCIjRkY2NjMzIiwiI0ZGOTkwMCIsIiNGRjk5MzMiLCIjRkZDQzAwIiwiI0ZGQ0MzMyJdLHQuZm9ybWF0dGVycy5qPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2godCl7cmV0dXJuIltVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAiK3QubWVzc2FnZX19LHQuZW5hYmxlKG8oKSl9KS5jYWxsKHRoaXMsbigxNDUpKX0sZnVuY3Rpb24oZSx0KXt0LmVuY29kZT1mdW5jdGlvbihlKXt2YXIgdD0iIjtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodC5sZW5ndGgmJih0Kz0iJiIpLHQrPWVuY29kZVVSSUNvbXBvbmVudChuKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGVbbl0pKTtyZXR1cm4gdH0sdC5kZWNvZGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49ZS5zcGxpdCgiJiIpLHI9MCxvPW4ubGVuZ3RoO3I8bztyKyspe3ZhciBpPW5bcl0uc3BsaXQoIj0iKTt0W2RlY29kZVVSSUNvbXBvbmVudChpWzBdKV09ZGVjb2RlVVJJQ29tcG9uZW50KGlbMV0pfXJldHVybiB0fX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1mdW5jdGlvbigpe307bi5wcm90b3R5cGU9dC5wcm90b3R5cGUsZS5wcm90b3R5cGU9bmV3IG4sZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZX19LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24ocil7ZnVuY3Rpb24gbygpe3ZhciBlO3RyeXtlPXQuc3RvcmFnZS5kZWJ1Z31jYXRjaChuKXt9cmV0dXJuIWUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHImJiJlbnYiaW4gciYmKGU9T2JqZWN0KHtOT0RFX0VOVjoicHJvZHVjdGlvbiIsUFVCTElDX1VSTDoiIixORVdfV0lER0VUX1JFTEVBU0VfREFURToiMjAxOC0wNy0wOSAxMjoyNTowMCIsTkVXX1dJREdFVF9VUkk6Imh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIixORVdfV0lER0VUX1JBVkVOX1dJREdFVF9EU05fUFVCTElDOiJodHRwczovLzYxMWY1YjdkNjJhMDQ5YjY4ZWQ3MjIyMTNlMGFmYmUzQHNlbnRyeS50aWRpby5jby8xNSIsTkVXX1dJREdFVF9VUkxfU09DS0VUOiJodHRwczovL3NvY2tldC50aWRpby5jbzo0NDMiLE5FV19XSURHRVRfVVJMX0FQSToiaHR0cHM6Ly9hcGktdjIudGlkaW8uY28vIixORVdfV0lER0VUX1VSTF9XSURHRVQ6Imh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIixORVdfV0lER0VUX1VSTF9DSEFUX1BBR0U6Imh0dHBzOi8vY2hhdHRpbmcucGFnZS8iLE5FV19XSURHRVRfU0VORF9TT1VSQ0VNQVBTX1RPX1NFTlRSWToidHJ1ZSIsTkVXX1dJREdFVF9TVVBQT1JUX1BVQkxJQ19LRVk6IncwaTRiN2ZkZWVyZnFxbjR3OGx3YjdhaGphc2pucm1kIn0pLkRFQlVHKSxlfSh0PWUuZXhwb3J0cz1uKDMwMSkpLmxvZz1mdW5jdGlvbigpe3JldHVybiJvYmplY3QiPT09dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZyxjb25zb2xlLGFyZ3VtZW50cyl9LHQuZm9ybWF0QXJncz1mdW5jdGlvbihlKXt2YXIgbj10aGlzLnVzZUNvbG9ycztpZihlWzBdPShuPyIlYyI6IiIpK3RoaXMubmFtZXNwYWNlKyhuPyIgJWMiOiIgIikrZVswXSsobj8iJWMgIjoiICIpKyIrIit0Lmh1bWFuaXplKHRoaXMuZGlmZiksIW4pcmV0dXJuO3ZhciByPSJjb2xvcjogIit0aGlzLmNvbG9yO2Uuc3BsaWNlKDEsMCxyLCJjb2xvcjogaW5oZXJpdCIpO3ZhciBvPTAsaT0wO2VbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLChmdW5jdGlvbihlKXsiJSUiIT09ZSYmKG8rKywiJWMiPT09ZSYmKGk9bykpfSkpLGUuc3BsaWNlKGksMCxyKX0sdC5zYXZlPWZ1bmN0aW9uKGUpe3RyeXtudWxsPT1lP3Quc3RvcmFnZS5yZW1vdmVJdGVtKCJkZWJ1ZyIpOnQuc3RvcmFnZS5kZWJ1Zz1lfWNhdGNoKG4pe319LHQubG9hZD1vLHQudXNlQ29sb3JzPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucHJvY2VzcyYmInJlbmRlcmVyIj09PXdpbmRvdy5wcm9jZXNzLnR5cGUpcmV0dXJuITA7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pKXJldHVybiExO3JldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmd2luZG93LmNvbnNvbGUmJih3aW5kb3cuY29uc29sZS5maXJlYnVnfHx3aW5kb3cuY29uc29sZS5leGNlcHRpb24mJndpbmRvdy5jb25zb2xlLnRhYmxlKXx8InVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykmJnBhcnNlSW50KFJlZ0V4cC4kMSwxMCk+PTMxfHwidW5kZWZpbmVkIiE9PXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcLyhcZCspLyl9LHQuc3RvcmFnZT0idW5kZWZpbmVkIiE9dHlwZW9mIGNocm9tZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBjaHJvbWUuc3RvcmFnZT9jaHJvbWUuc3RvcmFnZS5sb2NhbDpmdW5jdGlvbigpe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaChlKXt9fSgpLHQuY29sb3JzPVsiIzAwMDBDQyIsIiMwMDAwRkYiLCIjMDAzM0NDIiwiIzAwMzNGRiIsIiMwMDY2Q0MiLCIjMDA2NkZGIiwiIzAwOTlDQyIsIiMwMDk5RkYiLCIjMDBDQzAwIiwiIzAwQ0MzMyIsIiMwMENDNjYiLCIjMDBDQzk5IiwiIzAwQ0NDQyIsIiMwMENDRkYiLCIjMzMwMENDIiwiIzMzMDBGRiIsIiMzMzMzQ0MiLCIjMzMzM0ZGIiwiIzMzNjZDQyIsIiMzMzY2RkYiLCIjMzM5OUNDIiwiIzMzOTlGRiIsIiMzM0NDMDAiLCIjMzNDQzMzIiwiIzMzQ0M2NiIsIiMzM0NDOTkiLCIjMzNDQ0NDIiwiIzMzQ0NGRiIsIiM2NjAwQ0MiLCIjNjYwMEZGIiwiIzY2MzNDQyIsIiM2NjMzRkYiLCIjNjZDQzAwIiwiIzY2Q0MzMyIsIiM5OTAwQ0MiLCIjOTkwMEZGIiwiIzk5MzNDQyIsIiM5OTMzRkYiLCIjOTlDQzAwIiwiIzk5Q0MzMyIsIiNDQzAwMDAiLCIjQ0MwMDMzIiwiI0NDMDA2NiIsIiNDQzAwOTkiLCIjQ0MwMENDIiwiI0NDMDBGRiIsIiNDQzMzMDAiLCIjQ0MzMzMzIiwiI0NDMzM2NiIsIiNDQzMzOTkiLCIjQ0MzM0NDIiwiI0NDMzNGRiIsIiNDQzY2MDAiLCIjQ0M2NjMzIiwiI0NDOTkwMCIsIiNDQzk5MzMiLCIjQ0NDQzAwIiwiI0NDQ0MzMyIsIiNGRjAwMDAiLCIjRkYwMDMzIiwiI0ZGMDA2NiIsIiNGRjAwOTkiLCIjRkYwMENDIiwiI0ZGMDBGRiIsIiNGRjMzMDAiLCIjRkYzMzMzIiwiI0ZGMzM2NiIsIiNGRjMzOTkiLCIjRkYzM0NDIiwiI0ZGMzNGRiIsIiNGRjY2MDAiLCIjRkY2NjMzIiwiI0ZGOTkwMCIsIiNGRjk5MzMiLCIjRkZDQzAwIiwiI0ZGQ0MzMyJdLHQuZm9ybWF0dGVycy5qPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2godCl7cmV0dXJuIltVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAiK3QubWVzc2FnZX19LHQuZW5hYmxlKG8oKSl9KS5jYWxsKHRoaXMsbigxNDUpKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuaXNTcGVlZHk9dm9pZCAwPT09ZS5zcGVlZHl8fGUuc3BlZWR5LHRoaXMudGFncz1bXSx0aGlzLmN0cj0wLHRoaXMubm9uY2U9ZS5ub25jZSx0aGlzLmtleT1lLmtleSx0aGlzLmNvbnRhaW5lcj1lLmNvbnRhaW5lcix0aGlzLmJlZm9yZT1udWxsfXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0Lmluc2VydD1mdW5jdGlvbihlKXtpZih0aGlzLmN0ciUodGhpcy5pc1NwZWVkeT82NWUzOjEpPT09MCl7dmFyIHQsbj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiB0LnNldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIixlLmtleSksdm9pZCAwIT09ZS5ub25jZSYmdC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixlLm5vbmNlKSx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKSksdH0odGhpcyk7dD0wPT09dGhpcy50YWdzLmxlbmd0aD90aGlzLmJlZm9yZTp0aGlzLnRhZ3NbdGhpcy50YWdzLmxlbmd0aC0xXS5uZXh0U2libGluZyx0aGlzLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUobix0KSx0aGlzLnRhZ3MucHVzaChuKX12YXIgcj10aGlzLnRhZ3NbdGhpcy50YWdzLmxlbmd0aC0xXTtpZih0aGlzLmlzU3BlZWR5KXt2YXIgbz1mdW5jdGlvbihlKXtpZihlLnNoZWV0KXJldHVybiBlLnNoZWV0O2Zvcih2YXIgdD0wO3Q8ZG9jdW1lbnQuc3R5bGVTaGVldHMubGVuZ3RoO3QrKylpZihkb2N1bWVudC5zdHlsZVNoZWV0c1t0XS5vd25lck5vZGU9PT1lKXJldHVybiBkb2N1bWVudC5zdHlsZVNoZWV0c1t0XX0ocik7dHJ5e3ZhciBpPTEwNT09PWUuY2hhckNvZGVBdCgxKSYmNjQ9PT1lLmNoYXJDb2RlQXQoMCk7by5pbnNlcnRSdWxlKGUsaT8wOm8uY3NzUnVsZXMubGVuZ3RoKX1jYXRjaChhKXswfX1lbHNlIHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpO3RoaXMuY3RyKyt9LHQuZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLnRhZ3MuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pKSx0aGlzLnRhZ3M9W10sdGhpcy5jdHI9MH0sZX0oKX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKHQpe3JldHVybiBlLmV4cG9ydHM9bj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3JldHVybiBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpfSxuKHQpfWUuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMzApLG89bigxNCksaT1uKDEwKSxhPW4oMTAyKSxzPVJlZ0V4cC5wcm90b3R5cGUsdT1zLnRvU3RyaW5nLGM9aSgoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPXUuY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKSxsPSJ0b1N0cmluZyIhPXUubmFtZTsoY3x8bCkmJnIoUmVnRXhwLnByb3RvdHlwZSwidG9TdHJpbmciLChmdW5jdGlvbigpe3ZhciBlPW8odGhpcyksdD1TdHJpbmcoZS5zb3VyY2UpLG49ZS5mbGFncztyZXR1cm4iLyIrdCsiLyIrU3RyaW5nKHZvaWQgMD09PW4mJmUgaW5zdGFuY2VvZiBSZWdFeHAmJiEoImZsYWdzImluIHMpP2EuY2FsbChlKTpuKX0pLHt1bnNhZmU6ITB9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMjApLG89big4KSxpPW4oNzcpLGE9bigxNzUpLHM9bigyNikuZix1PW4oOTcpLmYsYz1uKDE0MiksbD1uKDEwMiksZj1uKDExNCksZD1uKDMwKSxwPW4oMTApLGg9big2Mikuc2V0LHY9bigxNjYpLGc9bigxMikoIm1hdGNoIikseT1vLlJlZ0V4cCxtPXkucHJvdG90eXBlLGI9L2EvZyx3PS9hL2csTz1uZXcgeShiKSE9PWIsXz1mLlVOU1VQUE9SVEVEX1k7aWYociYmaSgiUmVnRXhwIiwhT3x8X3x8cCgoZnVuY3Rpb24oKXtyZXR1cm4gd1tnXT0hMSx5KGIpIT1ifHx5KHcpPT13fHwiL2EvaSIhPXkoYiwiaSIpfSkpKSl7Zm9yKHZhciBFPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj10aGlzIGluc3RhbmNlb2YgRSxvPWMoZSksaT12b2lkIDA9PT10O2lmKCFyJiZvJiZlLmNvbnN0cnVjdG9yPT09RSYmaSlyZXR1cm4gZTtPP28mJiFpJiYoZT1lLnNvdXJjZSk6ZSBpbnN0YW5jZW9mIEUmJihpJiYodD1sLmNhbGwoZSkpLGU9ZS5zb3VyY2UpLF8mJihuPSEhdCYmdC5pbmRleE9mKCJ5Iik+LTEpJiYodD10LnJlcGxhY2UoL3kvZywiIikpO3ZhciBzPWEoTz9uZXcgeShlLHQpOnkoZSx0KSxyP3RoaXM6bSxFKTtyZXR1cm4gXyYmbiYmaChzLHtzdGlja3k6bn0pLHN9LEM9ZnVuY3Rpb24oZSl7ZSBpbiBFfHxzKEUsZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB5W2VdfSxzZXQ6ZnVuY3Rpb24odCl7eVtlXT10fX0pfSxTPXUoeSksaz0wO1MubGVuZ3RoPms7KUMoU1trKytdKTttLmNvbnN0cnVjdG9yPUUsRS5wcm90b3R5cGU9bSxkKG8sIlJlZ0V4cCIsRSl9digiUmVnRXhwIil9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3OCksbz1uKDE0MiksaT1uKDE0KSxhPW4oMjIpLHM9bigxNjcpLHU9bigxMDMpLGM9bigyMyksbD1uKDc5KSxmPW4oNTEpLGQ9bigxMCkscD1bXS5wdXNoLGg9TWF0aC5taW4sdj0hZCgoZnVuY3Rpb24oKXtyZXR1cm4hUmVnRXhwKDQyOTQ5NjcyOTUsInkiKX0pKTtyKCJzcGxpdCIsMiwoZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiByPSJjIj09ImFiYmMiLnNwbGl0KC8oYikqLylbMV18fDQhPSJ0ZXN0Ii5zcGxpdCgvKD86KS8sLTEpLmxlbmd0aHx8MiE9ImFiIi5zcGxpdCgvKD86YWIpKi8pLmxlbmd0aHx8NCE9Ii4iLnNwbGl0KC8oLj8pKC4/KS8pLmxlbmd0aHx8Ii4iLnNwbGl0KC8oKSgpLykubGVuZ3RoPjF8fCIiLnNwbGl0KC8uPy8pLmxlbmd0aD9mdW5jdGlvbihlLG4pe3ZhciByPVN0cmluZyhhKHRoaXMpKSxpPXZvaWQgMD09PW4/NDI5NDk2NzI5NTpuPj4+MDtpZigwPT09aSlyZXR1cm5bXTtpZih2b2lkIDA9PT1lKXJldHVybltyXTtpZighbyhlKSlyZXR1cm4gdC5jYWxsKHIsZSxpKTtmb3IodmFyIHMsdSxjLGw9W10sZD0oZS5pZ25vcmVDYXNlPyJpIjoiIikrKGUubXVsdGlsaW5lPyJtIjoiIikrKGUudW5pY29kZT8idSI6IiIpKyhlLnN0aWNreT8ieSI6IiIpLGg9MCx2PW5ldyBSZWdFeHAoZS5zb3VyY2UsZCsiZyIpOyhzPWYuY2FsbCh2LHIpKSYmISgodT12Lmxhc3RJbmRleCk+aCYmKGwucHVzaChyLnNsaWNlKGgscy5pbmRleCkpLHMubGVuZ3RoPjEmJnMuaW5kZXg8ci5sZW5ndGgmJnAuYXBwbHkobCxzLnNsaWNlKDEpKSxjPXNbMF0ubGVuZ3RoLGg9dSxsLmxlbmd0aD49aSkpOyl2Lmxhc3RJbmRleD09PXMuaW5kZXgmJnYubGFzdEluZGV4Kys7cmV0dXJuIGg9PT1yLmxlbmd0aD8hYyYmdi50ZXN0KCIiKXx8bC5wdXNoKCIiKTpsLnB1c2goci5zbGljZShoKSksbC5sZW5ndGg+aT9sLnNsaWNlKDAsaSk6bH06IjAiLnNwbGl0KHZvaWQgMCwwKS5sZW5ndGg/ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmMD09PW4/W106dC5jYWxsKHRoaXMsZSxuKX06dCxbZnVuY3Rpb24odCxuKXt2YXIgbz1hKHRoaXMpLGk9dm9pZCAwPT10P3ZvaWQgMDp0W2VdO3JldHVybiB2b2lkIDAhPT1pP2kuY2FsbCh0LG8sbik6ci5jYWxsKFN0cmluZyhvKSx0LG4pfSxmdW5jdGlvbihlLG8pe3ZhciBhPW4ocixlLHRoaXMsbyxyIT09dCk7aWYoYS5kb25lKXJldHVybiBhLnZhbHVlO3ZhciBmPWkoZSksZD1TdHJpbmcodGhpcykscD1zKGYsUmVnRXhwKSxnPWYudW5pY29kZSx5PShmLmlnbm9yZUNhc2U/ImkiOiIiKSsoZi5tdWx0aWxpbmU/Im0iOiIiKSsoZi51bmljb2RlPyJ1IjoiIikrKHY/InkiOiJnIiksbT1uZXcgcCh2P2Y6Il4oPzoiK2Yuc291cmNlKyIpIix5KSxiPXZvaWQgMD09PW8/NDI5NDk2NzI5NTpvPj4+MDtpZigwPT09YilyZXR1cm5bXTtpZigwPT09ZC5sZW5ndGgpcmV0dXJuIG51bGw9PT1sKG0sZCk/W2RdOltdO2Zvcih2YXIgdz0wLE89MCxfPVtdO088ZC5sZW5ndGg7KXttLmxhc3RJbmRleD12P086MDt2YXIgRSxDPWwobSx2P2Q6ZC5zbGljZShPKSk7aWYobnVsbD09PUN8fChFPWgoYyhtLmxhc3RJbmRleCsodj8wOk8pKSxkLmxlbmd0aCkpPT09dylPPXUoZCxPLGcpO2Vsc2V7aWYoXy5wdXNoKGQuc2xpY2UodyxPKSksXy5sZW5ndGg9PT1iKXJldHVybiBfO2Zvcih2YXIgUz0xO1M8PUMubGVuZ3RoLTE7UysrKWlmKF8ucHVzaChDW1NdKSxfLmxlbmd0aD09PWIpcmV0dXJuIF87Tz13PUV9fXJldHVybiBfLnB1c2goZC5zbGljZSh3KSksX31dfSksIXYpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big2OCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtpZihyKGUpLHZvaWQgMD09PXQpcmV0dXJuIGU7c3dpdGNoKG4pe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHQpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBlLmNhbGwodCxuKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBlLmNhbGwodCxuLHIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKG4scixvKXtyZXR1cm4gZS5jYWxsKHQsbixyLG8pfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fX0sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbihlKXsoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9PXR5cGVvZiBlP2U6InVuZGVmaW5lZCIhPT10eXBlb2Ygc2VsZj9zZWxmOnt9KS5TRU5UUllfUkVMRUFTRT17aWQ6IjEuMTQxLjAifX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDgpLG89big3NSksaT1yLldlYWtNYXA7ZS5leHBvcnRzPSJmdW5jdGlvbiI9PT10eXBlb2YgaSYmL25hdGl2ZSBjb2RlLy50ZXN0KG8oaSkpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxOCksbz1uKDEzMyksaT1uKDQ3KSxhPW4oMjYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1vKHQpLHM9YS5mLHU9aS5mLGM9MDtjPG4ubGVuZ3RoO2MrKyl7dmFyIGw9bltjXTtyKGUsbCl8fHMoZSxsLHUodCxsKSl9fX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNTApLG89big5NyksaT1uKDEzNSksYT1uKDE0KTtlLmV4cG9ydHM9cigiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24oZSl7dmFyIHQ9by5mKGEoZSkpLG49aS5mO3JldHVybiBuP3QuY29uY2F0KG4oZSkpOnR9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big4KTtlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0KXt0LmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc30sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTAxKTtlLmV4cG9ydHM9ciYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzMpLG89TWF0aC5mbG9vcixpPSIiLnJlcGxhY2UsYT0vXCQoWyQmJ2BdfFxkXGQ/fDxbXj5dKj4pL2cscz0vXCQoWyQmJ2BdfFxkXGQ/KS9nO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbix1LGMsbCl7dmFyIGY9bitlLmxlbmd0aCxkPXUubGVuZ3RoLHA9cztyZXR1cm4gdm9pZCAwIT09YyYmKGM9cihjKSxwPWEpLGkuY2FsbChsLHAsKGZ1bmN0aW9uKHIsaSl7dmFyIGE7c3dpdGNoKGkuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBlO2Nhc2UiYCI6cmV0dXJuIHQuc2xpY2UoMCxuKTtjYXNlIiciOnJldHVybiB0LnNsaWNlKGYpO2Nhc2UiPCI6YT1jW2kuc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIHM9K2k7aWYoMD09PXMpcmV0dXJuIHI7aWYocz5kKXt2YXIgbD1vKHMvMTApO3JldHVybiAwPT09bD9yOmw8PWQ/dm9pZCAwPT09dVtsLTFdP2kuY2hhckF0KDEpOnVbbC0xXStpLmNoYXJBdCgxKTpyfWE9dVtzLTFdfXJldHVybiB2b2lkIDA9PT1hPyIiOmF9KSl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9e307cltuKDEyKSgidG9TdHJpbmdUYWciKV09InoiLGUuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcocil9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDI2KS5mLG89bigxOCksaT1uKDEyKSgidG9TdHJpbmdUYWciKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2UmJiFvKGU9bj9lOmUucHJvdG90eXBlLGkpJiZyKGUsaSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOnR9KX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDExMyksbz1uKDk5KTtlLmV4cG9ydHM9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGUpe3JldHVybiByKGUsbyl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHIsbz1uKDE0KSxpPW4oMjUxKSxhPW4oOTkpLHM9big3NiksdT1uKDE2OSksYz1uKDkzKSxsPW4oOTQpLGY9bCgiSUVfUFJPVE8iKSxkPWZ1bmN0aW9uKCl7fSxwPWZ1bmN0aW9uKGUpe3JldHVybiI8c2NyaXB0PiIrZSsiPFwvc2NyaXB0PiJ9LGg9ZnVuY3Rpb24oKXt0cnl7cj1kb2N1bWVudC5kb21haW4mJm5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKHQpe31oPXI/ZnVuY3Rpb24oZSl7ZS53cml0ZShwKCIiKSksZS5jbG9zZSgpO3ZhciB0PWUucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gZT1udWxsLHR9KHIpOmZ1bmN0aW9uKCl7dmFyIGUsdD1jKCJpZnJhbWUiKTtyZXR1cm4gdC5zdHlsZS5kaXNwbGF5PSJub25lIix1LmFwcGVuZENoaWxkKHQpLHQuc3JjPVN0cmluZygiamF2YXNjcmlwdDoiKSwoZT10LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSxlLndyaXRlKHAoImRvY3VtZW50LkY9T2JqZWN0IikpLGUuY2xvc2UoKSxlLkZ9KCk7Zm9yKHZhciBlPWEubGVuZ3RoO2UtLTspZGVsZXRlIGgucHJvdG90eXBlW2FbZV1dO3JldHVybiBoKCl9O3NbZl09ITAsZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKGUsdCl7dmFyIG47cmV0dXJuIG51bGwhPT1lPyhkLnByb3RvdHlwZT1vKGUpLG49bmV3IGQsZC5wcm90b3R5cGU9bnVsbCxuW2ZdPWUpOm49aCgpLHZvaWQgMD09PXQ/bjppKG4sdCl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNSksbz1uKDM1KSxpPW4oMTIpKCJtYXRjaCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gcihlKSYmKHZvaWQgMCE9PSh0PWVbaV0pPyEhdDoiUmVnRXhwIj09byhlKSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNzgpLG89bigxNCksaT1uKDIzKSxhPW4oMjIpLHM9bigxMDMpLHU9big3OSk7cigibWF0Y2giLDEsKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm5bZnVuY3Rpb24odCl7dmFyIG49YSh0aGlzKSxyPXZvaWQgMD09dD92b2lkIDA6dFtlXTtyZXR1cm4gdm9pZCAwIT09cj9yLmNhbGwodCxuKTpuZXcgUmVnRXhwKHQpW2VdKFN0cmluZyhuKSl9LGZ1bmN0aW9uKGUpe3ZhciByPW4odCxlLHRoaXMpO2lmKHIuZG9uZSlyZXR1cm4gci52YWx1ZTt2YXIgYT1vKGUpLGM9U3RyaW5nKHRoaXMpO2lmKCFhLmdsb2JhbClyZXR1cm4gdShhLGMpO3ZhciBsPWEudW5pY29kZTthLmxhc3RJbmRleD0wO2Zvcih2YXIgZixkPVtdLHA9MDtudWxsIT09KGY9dShhLGMpKTspe3ZhciBoPVN0cmluZyhmWzBdKTtkW3BdPWgsIiI9PT1oJiYoYS5sYXN0SW5kZXg9cyhjLGkoYS5sYXN0SW5kZXgpLGwpKSxwKyt9cmV0dXJuIDA9PT1wP251bGw6ZH1dfSkpfSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKHQpe3ZhciByPW4oMTgxKSxvPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPT10eXBlb2YgdD90OiJ1bmRlZmluZWQiIT09dHlwZW9mIHNlbGY/c2VsZjp7fTtmdW5jdGlvbiBpKGUpe3JldHVybiB2b2lkIDA9PT1lfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiB1KGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gYygpe2lmKCEoImZldGNoImluIG8pKXJldHVybiExO3RyeXtyZXR1cm4gbmV3IEhlYWRlcnMsbmV3IFJlcXVlc3QoIiIpLG5ldyBSZXNwb25zZSwhMH1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gbChlLHQpe3ZhciBuLHI7aWYoaShlLmxlbmd0aCkpZm9yKG4gaW4gZSlkKGUsbikmJnQuY2FsbChudWxsLG4sZVtuXSk7ZWxzZSBpZihyPWUubGVuZ3RoKWZvcihuPTA7bjxyO24rKyl0LmNhbGwobnVsbCxuLGVbbl0pfWZ1bmN0aW9uIGYoZSx0KXtpZigibnVtYmVyIiE9PXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiMm5kIGFyZ3VtZW50IHRvIGB0cnVuY2F0ZWAgZnVuY3Rpb24gc2hvdWxkIGJlIGEgbnVtYmVyIik7cmV0dXJuInN0cmluZyIhPT10eXBlb2YgZXx8MD09PXR8fGUubGVuZ3RoPD10P2U6ZS5zdWJzdHIoMCx0KSsiXHUyMDI2In1mdW5jdGlvbiBkKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfWZ1bmN0aW9uIHAoZSl7Zm9yKHZhciB0LG49W10scj0wLG89ZS5sZW5ndGg7cjxvO3IrKylzKHQ9ZVtyXSk/bi5wdXNoKHQucmVwbGFjZSgvKFsuKis/Xj0hOiR7fSgpfFxbXF1cL1xcXSkvZywiXFwkMSIpKTp0JiZ0LnNvdXJjZSYmbi5wdXNoKHQuc291cmNlKTtyZXR1cm4gbmV3IFJlZ0V4cChuLmpvaW4oInwiKSwiaSIpfWZ1bmN0aW9uIGgoZSl7dmFyIHQsbixyLG8saSxhPVtdO2lmKCFlfHwhZS50YWdOYW1lKXJldHVybiIiO2lmKGEucHVzaChlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSksZS5pZCYmYS5wdXNoKCIjIitlLmlkKSwodD1lLmNsYXNzTmFtZSkmJnModCkpZm9yKG49dC5zcGxpdCgvXHMrLyksaT0wO2k8bi5sZW5ndGg7aSsrKWEucHVzaCgiLiIrbltpXSk7dmFyIHU9WyJ0eXBlIiwibmFtZSIsInRpdGxlIiwiYWx0Il07Zm9yKGk9MDtpPHUubGVuZ3RoO2krKylyPXVbaV0sKG89ZS5nZXRBdHRyaWJ1dGUocikpJiZhLnB1c2goIlsiK3IrJz0iJytvKyciXScpO3JldHVybiBhLmpvaW4oIiIpfWZ1bmN0aW9uIHYoZSx0KXtyZXR1cm4hISghIWVeISF0KX1mdW5jdGlvbiBnKGUsdCl7aWYodihlLHQpKXJldHVybiExO3ZhciBuLHIsbz1lLmZyYW1lcyxpPXQuZnJhbWVzO2lmKHZvaWQgMD09PW98fHZvaWQgMD09PWkpcmV0dXJuITE7aWYoby5sZW5ndGghPT1pLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGE9MDthPG8ubGVuZ3RoO2ErKylpZihuPW9bYV0scj1pW2FdLG4uZmlsZW5hbWUhPT1yLmZpbGVuYW1lfHxuLmxpbmVubyE9PXIubGluZW5vfHxuLmNvbG5vIT09ci5jb2xub3x8bi5mdW5jdGlvbiE9PXIuZnVuY3Rpb24pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24geShlKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJufi1lbmNvZGVVUkkoZSkuc3BsaXQoLyUuLnwuLykubGVuZ3RofShKU09OLnN0cmluZ2lmeShlKSl9ZnVuY3Rpb24gbShlKXtpZigic3RyaW5nIj09PXR5cGVvZiBlKXtyZXR1cm4gZihlLDQwKX1pZigibnVtYmVyIj09PXR5cGVvZiBlfHwiYm9vbGVhbiI9PT10eXBlb2YgZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgZSlyZXR1cm4gZTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT10PyJbT2JqZWN0XSI6IltvYmplY3QgQXJyYXldIj09PXQ/IltBcnJheV0iOiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT10P2UubmFtZT8iW0Z1bmN0aW9uOiAiK2UubmFtZSsiXSI6IltGdW5jdGlvbl0iOmV9ZS5leHBvcnRzPXtpc09iamVjdDpmdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiBlJiZudWxsIT09ZX0saXNFcnJvcjpmdW5jdGlvbihlKXtzd2l0Y2goT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpKXtjYXNlIltvYmplY3QgRXJyb3JdIjpjYXNlIltvYmplY3QgRXhjZXB0aW9uXSI6Y2FzZSJbb2JqZWN0IERPTUV4Y2VwdGlvbl0iOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcn19LGlzRXJyb3JFdmVudDpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBFcnJvckV2ZW50XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9LGlzRE9NRXJyb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRE9NRXJyb3JdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX0saXNET01FeGNlcHRpb246ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRE9NRXhjZXB0aW9uXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9LGlzVW5kZWZpbmVkOmksaXNGdW5jdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGV9LGlzUGxhaW5PYmplY3Q6YSxpc1N0cmluZzpzLGlzQXJyYXk6dSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe2lmKCFhKGUpKXJldHVybiExO2Zvcih2YXIgdCBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuITE7cmV0dXJuITB9LHN1cHBvcnRzRXJyb3JFdmVudDpmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEVycm9yRXZlbnQoIiIpLCEwfWNhdGNoKGUpe3JldHVybiExfX0sc3VwcG9ydHNET01FcnJvcjpmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IERPTUVycm9yKCIiKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19LHN1cHBvcnRzRE9NRXhjZXB0aW9uOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgRE9NRXhjZXB0aW9uKCIiKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19LHN1cHBvcnRzRmV0Y2g6YyxzdXBwb3J0c1JlZmVycmVyUG9saWN5OmZ1bmN0aW9uKCl7aWYoIWMoKSlyZXR1cm4hMTt0cnl7cmV0dXJuIG5ldyBSZXF1ZXN0KCJwaWNrbGVSaWNrIix7cmVmZXJyZXJQb2xpY3k6Im9yaWdpbiJ9KSwhMH1jYXRjaChlKXtyZXR1cm4hMX19LHN1cHBvcnRzUHJvbWlzZVJlamVjdGlvbkV2ZW50OmZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBQcm9taXNlUmVqZWN0aW9uRXZlbnR9LHdyYXBwZWRDYWxsYmFjazpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt2YXIgcj1lKHQpfHx0O3JldHVybiBuJiZuKHIpfHxyfX0sZWFjaDpsLG9iamVjdE1lcmdlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/KGwodCwoZnVuY3Rpb24odCxuKXtlW3RdPW59KSksZSk6ZX0sdHJ1bmNhdGU6ZixvYmplY3RGcm96ZW46ZnVuY3Rpb24oZSl7cmV0dXJuISFPYmplY3QuaXNGcm96ZW4mJk9iamVjdC5pc0Zyb3plbihlKX0saGFzS2V5OmQsam9pblJlZ0V4cDpwLHVybGVuY29kZTpmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gbChlLChmdW5jdGlvbihlLG4pe3QucHVzaChlbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChuKSl9KSksdC5qb2luKCImIil9LHV1aWQ0OmZ1bmN0aW9uKCl7dmFyIGU9by5jcnlwdG98fG8ubXNDcnlwdG87aWYoIWkoZSkmJmUuZ2V0UmFuZG9tVmFsdWVzKXt2YXIgdD1uZXcgVWludDE2QXJyYXkoOCk7ZS5nZXRSYW5kb21WYWx1ZXModCksdFszXT00MDk1JnRbM118MTYzODQsdFs0XT0xNjM4MyZ0WzRdfDMyNzY4O3ZhciBuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnRvU3RyaW5nKDE2KTt0Lmxlbmd0aDw0Oyl0PSIwIit0O3JldHVybiB0fTtyZXR1cm4gbih0WzBdKStuKHRbMV0pK24odFsyXSkrbih0WzNdKStuKHRbNF0pK24odFs1XSkrbih0WzZdKStuKHRbN10pfXJldHVybiJ4eHh4eHh4eHh4eHg0eHh4eXh4eHh4eHh4eHh4eHh4eCIucmVwbGFjZSgvW3h5XS9nLChmdW5jdGlvbihlKXt2YXIgdD0xNipNYXRoLnJhbmRvbSgpfDA7cmV0dXJuKCJ4Ij09PWU/dDozJnR8OCkudG9TdHJpbmcoMTYpfSkpfSxodG1sVHJlZUFzU3RyaW5nOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPVtdLHI9MCxvPTAsaT0iID4gIi5sZW5ndGg7ZSYmcisrPDUmJiEoImh0bWwiPT09KHQ9aChlKSl8fHI+MSYmbytuLmxlbmd0aCppK3QubGVuZ3RoPj04MCk7KW4ucHVzaCh0KSxvKz10Lmxlbmd0aCxlPWUucGFyZW50Tm9kZTtyZXR1cm4gbi5yZXZlcnNlKCkuam9pbigiID4gIil9LGh0bWxFbGVtZW50QXNTdHJpbmc6aCxpc1NhbWVFeGNlcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4hdihlLHQpJiYoZT1lLnZhbHVlc1swXSx0PXQudmFsdWVzWzBdLGUudHlwZT09PXQudHlwZSYmZS52YWx1ZT09PXQudmFsdWUmJihuPWUuc3RhY2t0cmFjZSxyPXQuc3RhY2t0cmFjZSwoIWkobil8fCFpKHIpKSYmZyhlLnN0YWNrdHJhY2UsdC5zdGFja3RyYWNlKSkpO3ZhciBuLHJ9LGlzU2FtZVN0YWNrdHJhY2U6ZyxwYXJzZVVybDpmdW5jdGlvbihlKXtpZigic3RyaW5nIiE9PXR5cGVvZiBlKXJldHVybnt9O3ZhciB0PWUubWF0Y2goL14oKFteOlwvPyNdKyk6KT8oXC9cLyhbXlwvPyNdKikpPyhbXj8jXSopKFw/KFteI10qKSk/KCMoLiopKT8kLyksbj10WzZdfHwiIixyPXRbOF18fCIiO3JldHVybntwcm90b2NvbDp0WzJdLGhvc3Q6dFs0XSxwYXRoOnRbNV0scmVsYXRpdmU6dFs1XStuK3J9fSxmaWxsOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKG51bGwhPWUpe3ZhciBvPWVbdF07ZVt0XT1uKG8pLGVbdF0uX19yYXZlbl9fPSEwLGVbdF0uX19vcmlnX189byxyJiZyLnB1c2goW2UsdCxvXSl9fSxzYWZlSm9pbjpmdW5jdGlvbihlLHQpe2lmKCF1KGUpKXJldHVybiIiO2Zvcih2YXIgbj1bXSxyPTA7cjxlLmxlbmd0aDtyKyspdHJ5e24ucHVzaChTdHJpbmcoZVtyXSkpfWNhdGNoKG8pe24ucHVzaCgiW3ZhbHVlIGNhbm5vdCBiZSBzZXJpYWxpemVkXSIpfXJldHVybiBuLmpvaW4odCl9LHNlcmlhbGl6ZUV4Y2VwdGlvbjpmdW5jdGlvbiBlKHQsbixvKXtpZighYSh0KSlyZXR1cm4gdDtvPSJudW1iZXIiIT09dHlwZW9mKG49Im51bWJlciIhPT10eXBlb2Ygbj8zOm4pPzUxMjAwOm87dmFyIGk9ZnVuY3Rpb24gZSh0LG4pe3JldHVybiAwPT09bj9tKHQpOmEodCk/T2JqZWN0LmtleXModCkucmVkdWNlKChmdW5jdGlvbihyLG8pe3JldHVybiByW29dPWUodFtvXSxuLTEpLHJ9KSx7fSk6QXJyYXkuaXNBcnJheSh0KT90Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUodCxuLTEpfSkpOm0odCl9KHQsbik7cmV0dXJuIHkocihpKSk+bz9lKHQsbi0xKTppfSxzZXJpYWxpemVLZXlzRm9yTWVzc2FnZTpmdW5jdGlvbihlLHQpe2lmKCJudW1iZXIiPT09dHlwZW9mIGV8fCJzdHJpbmciPT09dHlwZW9mIGUpcmV0dXJuIGUudG9TdHJpbmcoKTtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4iIjtpZigwPT09KGU9ZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT09dHlwZW9mIGV9KSkpLmxlbmd0aClyZXR1cm4iW29iamVjdCBoYXMgbm8ga2V5c10iO2lmKHQ9Im51bWJlciIhPT10eXBlb2YgdD80MDp0LGVbMF0ubGVuZ3RoPj10KXJldHVybiBlWzBdO2Zvcih2YXIgbj1lLmxlbmd0aDtuPjA7bi0tKXt2YXIgcj1lLnNsaWNlKDAsbikuam9pbigiLCAiKTtpZighKHIubGVuZ3RoPnQpKXJldHVybiBuPT09ZS5sZW5ndGg/cjpyKyJcdTIwMjYifXJldHVybiIifSxzYW5pdGl6ZTpmdW5jdGlvbihlLHQpe2lmKCF1KHQpfHx1KHQpJiYwPT09dC5sZW5ndGgpcmV0dXJuIGU7dmFyIG4sbz1wKHQpO3RyeXtuPUpTT04ucGFyc2UocihlKSl9Y2F0Y2goaSl7cmV0dXJuIGV9cmV0dXJuIGZ1bmN0aW9uIGUodCl7cmV0dXJuIHUodCk/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkpOmEodCk/T2JqZWN0LmtleXModCkucmVkdWNlKChmdW5jdGlvbihuLHIpe3JldHVybiBvLnRlc3Qocik/bltyXT0iKioqKioqKioiOm5bcl09ZSh0W3JdKSxufSkse30pOnR9KG4pfX19KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1lLmV4cG9ydHM9e307ZnVuY3Rpb24gaSgpe3Rocm93IG5ldyBFcnJvcigic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfWZ1bmN0aW9uIGEoKXt0aHJvdyBuZXcgRXJyb3IoImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfWZ1bmN0aW9uIHMoZSl7aWYobj09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQoZSwwKTtpZigobj09PWl8fCFuKSYmc2V0VGltZW91dClyZXR1cm4gbj1zZXRUaW1lb3V0LHNldFRpbWVvdXQoZSwwKTt0cnl7cmV0dXJuIG4oZSwwKX1jYXRjaCh0KXt0cnl7cmV0dXJuIG4uY2FsbChudWxsLGUsMCl9Y2F0Y2godCl7cmV0dXJuIG4uY2FsbCh0aGlzLGUsMCl9fX0hZnVuY3Rpb24oKXt0cnl7bj0iZnVuY3Rpb24iPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDppfWNhdGNoKGUpe249aX10cnl7cj0iZnVuY3Rpb24iPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6YX1jYXRjaChlKXtyPWF9fSgpO3ZhciB1LGM9W10sbD0hMSxmPS0xO2Z1bmN0aW9uIGQoKXtsJiZ1JiYobD0hMSx1Lmxlbmd0aD9jPXUuY29uY2F0KGMpOmY9LTEsYy5sZW5ndGgmJnAoKSl9ZnVuY3Rpb24gcCgpe2lmKCFsKXt2YXIgZT1zKGQpO2w9ITA7Zm9yKHZhciB0PWMubGVuZ3RoO3Q7KXtmb3IodT1jLGM9W107KytmPHQ7KXUmJnVbZl0ucnVuKCk7Zj0tMSx0PWMubGVuZ3RofXU9bnVsbCxsPSExLGZ1bmN0aW9uKGUpe2lmKHI9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dChlKTtpZigocj09PWF8fCFyKSYmY2xlYXJUaW1lb3V0KXJldHVybiByPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQoZSk7dHJ5e3IoZSl9Y2F0Y2godCl7dHJ5e3JldHVybiByLmNhbGwobnVsbCxlKX1jYXRjaCh0KXtyZXR1cm4gci5jYWxsKHRoaXMsZSl9fX0oZSl9fWZ1bmN0aW9uIGgoZSx0KXt0aGlzLmZ1bj1lLHRoaXMuYXJyYXk9dH1mdW5jdGlvbiB2KCl7fW8ubmV4dFRpY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuLTFdPWFyZ3VtZW50c1tuXTtjLnB1c2gobmV3IGgoZSx0KSksMSE9PWMubGVuZ3RofHxsfHxzKHApfSxoLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxvLnRpdGxlPSJicm93c2VyIixvLmJyb3dzZXI9ITAsby5lbnY9e30sby5hcmd2PVtdLG8udmVyc2lvbj0iIixvLnZlcnNpb25zPXt9LG8ub249dixvLmFkZExpc3RlbmVyPXYsby5vbmNlPXYsby5vZmY9dixvLnJlbW92ZUxpc3RlbmVyPXYsby5yZW1vdmVBbGxMaXN0ZW5lcnM9dixvLmVtaXQ9dixvLnByZXBlbmRMaXN0ZW5lcj12LG8ucHJlcGVuZE9uY2VMaXN0ZW5lcj12LG8ubGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybltdfSxvLmJpbmRpbmc9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxvLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sby5jaGRpcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxvLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyODIpKCJzb2NrZXQuaW8tcGFyc2VyIiksbz1uKDgwKSxpPW4oMjg1KSxhPW4oMTg2KSxzPW4oMTg3KTtmdW5jdGlvbiB1KCl7fXQucHJvdG9jb2w9NCx0LnR5cGVzPVsiQ09OTkVDVCIsIkRJU0NPTk5FQ1QiLCJFVkVOVCIsIkFDSyIsIkVSUk9SIiwiQklOQVJZX0VWRU5UIiwiQklOQVJZX0FDSyJdLHQuQ09OTkVDVD0wLHQuRElTQ09OTkVDVD0xLHQuRVZFTlQ9Mix0LkFDSz0zLHQuRVJST1I9NCx0LkJJTkFSWV9FVkVOVD01LHQuQklOQVJZX0FDSz02LHQuRW5jb2Rlcj11LHQuRGVjb2Rlcj1mO3ZhciBjPXQuRVJST1IrJyJlbmNvZGUgZXJyb3IiJztmdW5jdGlvbiBsKGUpe3ZhciBuPSIiK2UudHlwZTtpZih0LkJJTkFSWV9FVkVOVCE9PWUudHlwZSYmdC5CSU5BUllfQUNLIT09ZS50eXBlfHwobis9ZS5hdHRhY2htZW50cysiLSIpLGUubnNwJiYiLyIhPT1lLm5zcCYmKG4rPWUubnNwKyIsIiksbnVsbCE9ZS5pZCYmKG4rPWUuaWQpLG51bGwhPWUuZGF0YSl7dmFyIG89ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1jYXRjaCh0KXtyZXR1cm4hMX19KGUuZGF0YSk7aWYoITE9PT1vKXJldHVybiBjO24rPW99cmV0dXJuIHIoImVuY29kZWQgJWogYXMgJXMiLGUsbiksbn1mdW5jdGlvbiBmKCl7dGhpcy5yZWNvbnN0cnVjdG9yPW51bGx9ZnVuY3Rpb24gZChlKXt0aGlzLnJlY29uUGFjaz1lLHRoaXMuYnVmZmVycz1bXX1mdW5jdGlvbiBwKGUpe3JldHVybnt0eXBlOnQuRVJST1IsZGF0YToicGFyc2VyIGVycm9yOiAiK2V9fXUucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihlLG4peyhyKCJlbmNvZGluZyBwYWNrZXQgJWoiLGUpLHQuQklOQVJZX0VWRU5UPT09ZS50eXBlfHx0LkJJTkFSWV9BQ0s9PT1lLnR5cGUpP2Z1bmN0aW9uKGUsdCl7aS5yZW1vdmVCbG9icyhlLChmdW5jdGlvbihlKXt2YXIgbj1pLmRlY29uc3RydWN0UGFja2V0KGUpLHI9bChuLnBhY2tldCksbz1uLmJ1ZmZlcnM7by51bnNoaWZ0KHIpLHQobyl9KSl9KGUsbik6bihbbChlKV0pfSxvKGYucHJvdG90eXBlKSxmLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7dmFyIG47aWYoInN0cmluZyI9PT10eXBlb2YgZSluPWZ1bmN0aW9uKGUpe3ZhciBuPTAsbz17dHlwZTpOdW1iZXIoZS5jaGFyQXQoMCkpfTtpZihudWxsPT10LnR5cGVzW28udHlwZV0pcmV0dXJuIHAoInVua25vd24gcGFja2V0IHR5cGUgIitvLnR5cGUpO2lmKHQuQklOQVJZX0VWRU5UPT09by50eXBlfHx0LkJJTkFSWV9BQ0s9PT1vLnR5cGUpe2Zvcih2YXIgaT0iIjsiLSIhPT1lLmNoYXJBdCgrK24pJiYoaSs9ZS5jaGFyQXQobiksbiE9ZS5sZW5ndGgpOyk7aWYoaSE9TnVtYmVyKGkpfHwiLSIhPT1lLmNoYXJBdChuKSl0aHJvdyBuZXcgRXJyb3IoIklsbGVnYWwgYXR0YWNobWVudHMiKTtvLmF0dGFjaG1lbnRzPU51bWJlcihpKX1pZigiLyI9PT1lLmNoYXJBdChuKzEpKWZvcihvLm5zcD0iIjsrK247KXtpZigiLCI9PT0odT1lLmNoYXJBdChuKSkpYnJlYWs7aWYoby5uc3ArPXUsbj09PWUubGVuZ3RoKWJyZWFrfWVsc2Ugby5uc3A9Ii8iO3ZhciBzPWUuY2hhckF0KG4rMSk7aWYoIiIhPT1zJiZOdW1iZXIocyk9PXMpe2ZvcihvLmlkPSIiOysrbjspe3ZhciB1O2lmKG51bGw9PSh1PWUuY2hhckF0KG4pKXx8TnVtYmVyKHUpIT11KXstLW47YnJlYWt9aWYoby5pZCs9ZS5jaGFyQXQobiksbj09PWUubGVuZ3RoKWJyZWFrfW8uaWQ9TnVtYmVyKG8uaWQpfWlmKGUuY2hhckF0KCsrbikpe3ZhciBjPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaCh0KXtyZXR1cm4hMX19KGUuc3Vic3RyKG4pKTtpZighKCExIT09YyYmKG8udHlwZT09PXQuRVJST1J8fGEoYykpKSlyZXR1cm4gcCgiaW52YWxpZCBwYXlsb2FkIik7by5kYXRhPWN9cmV0dXJuIHIoImRlY29kZWQgJXMgYXMgJWoiLGUsbyksb30oZSksdC5CSU5BUllfRVZFTlQ9PT1uLnR5cGV8fHQuQklOQVJZX0FDSz09PW4udHlwZT8odGhpcy5yZWNvbnN0cnVjdG9yPW5ldyBkKG4pLDA9PT10aGlzLnJlY29uc3RydWN0b3IucmVjb25QYWNrLmF0dGFjaG1lbnRzJiZ0aGlzLmVtaXQoImRlY29kZWQiLG4pKTp0aGlzLmVtaXQoImRlY29kZWQiLG4pO2Vsc2V7aWYoIXMoZSkmJiFlLmJhc2U2NCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdHlwZTogIitlKTtpZighdGhpcy5yZWNvbnN0cnVjdG9yKXRocm93IG5ldyBFcnJvcigiZ290IGJpbmFyeSBkYXRhIHdoZW4gbm90IHJlY29uc3RydWN0aW5nIGEgcGFja2V0Iik7KG49dGhpcy5yZWNvbnN0cnVjdG9yLnRha2VCaW5hcnlEYXRhKGUpKSYmKHRoaXMucmVjb25zdHJ1Y3Rvcj1udWxsLHRoaXMuZW1pdCgiZGVjb2RlZCIsbikpfX0sZi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMucmVjb25zdHJ1Y3RvciYmdGhpcy5yZWNvbnN0cnVjdG9yLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKX0sZC5wcm90b3R5cGUudGFrZUJpbmFyeURhdGE9ZnVuY3Rpb24oZSl7aWYodGhpcy5idWZmZXJzLnB1c2goZSksdGhpcy5idWZmZXJzLmxlbmd0aD09PXRoaXMucmVjb25QYWNrLmF0dGFjaG1lbnRzKXt2YXIgdD1pLnJlY29uc3RydWN0UGFja2V0KHRoaXMucmVjb25QYWNrLHRoaXMuYnVmZmVycyk7cmV0dXJuIHRoaXMuZmluaXNoZWRSZWNvbnN0cnVjdGlvbigpLHR9cmV0dXJuIG51bGx9LGQucHJvdG90eXBlLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb249ZnVuY3Rpb24oKXt0aGlzLnJlY29uUGFjaz1udWxsLHRoaXMuYnVmZmVycz1bXX19LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24odCl7dmFyIHI9bigyODgpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbj1lLnhkb21haW4sbz1lLnhzY2hlbWUsaT1lLmVuYWJsZXNYRFI7dHJ5e2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIFhNTEh0dHBSZXF1ZXN0JiYoIW58fHIpKXJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYSl7fXRyeXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBYRG9tYWluUmVxdWVzdCYmIW8mJmkpcmV0dXJuIG5ldyBYRG9tYWluUmVxdWVzdH1jYXRjaChhKXt9aWYoIW4pdHJ5e3JldHVybiBuZXcodFtbIkFjdGl2ZSJdLmNvbmNhdCgiT2JqZWN0Iikuam9pbigiWCIpXSkoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYSl7fX19KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big4MSksbz1uKDgwKTtmdW5jdGlvbiBpKGUpe3RoaXMucGF0aD1lLnBhdGgsdGhpcy5ob3N0bmFtZT1lLmhvc3RuYW1lLHRoaXMucG9ydD1lLnBvcnQsdGhpcy5zZWN1cmU9ZS5zZWN1cmUsdGhpcy5xdWVyeT1lLnF1ZXJ5LHRoaXMudGltZXN0YW1wUGFyYW09ZS50aW1lc3RhbXBQYXJhbSx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPWUudGltZXN0YW1wUmVxdWVzdHMsdGhpcy5yZWFkeVN0YXRlPSIiLHRoaXMuYWdlbnQ9ZS5hZ2VudHx8ITEsdGhpcy5zb2NrZXQ9ZS5zb2NrZXQsdGhpcy5lbmFibGVzWERSPWUuZW5hYmxlc1hEUix0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5mb3JjZU5vZGU9ZS5mb3JjZU5vZGUsdGhpcy5leHRyYUhlYWRlcnM9ZS5leHRyYUhlYWRlcnMsdGhpcy5sb2NhbEFkZHJlc3M9ZS5sb2NhbEFkZHJlc3N9ZS5leHBvcnRzPWksbyhpLnByb3RvdHlwZSksaS5wcm90b3R5cGUub25FcnJvcj1mdW5jdGlvbihlLHQpe3ZhciBuPW5ldyBFcnJvcihlKTtyZXR1cm4gbi50eXBlPSJUcmFuc3BvcnRFcnJvciIsbi5kZXNjcmlwdGlvbj10LHRoaXMuZW1pdCgiZXJyb3IiLG4pLHRoaXN9LGkucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oKXtyZXR1cm4iY2xvc2VkIiE9PXRoaXMucmVhZHlTdGF0ZSYmIiIhPT10aGlzLnJlYWR5U3RhdGV8fCh0aGlzLnJlYWR5U3RhdGU9Im9wZW5pbmciLHRoaXMuZG9PcGVuKCkpLHRoaXN9LGkucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIm9wZW5pbmciIT09dGhpcy5yZWFkeVN0YXRlJiYib3BlbiIhPT10aGlzLnJlYWR5U3RhdGV8fCh0aGlzLmRvQ2xvc2UoKSx0aGlzLm9uQ2xvc2UoKSksdGhpc30saS5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihlKXtpZigib3BlbiIhPT10aGlzLnJlYWR5U3RhdGUpdGhyb3cgbmV3IEVycm9yKCJUcmFuc3BvcnQgbm90IG9wZW4iKTt0aGlzLndyaXRlKGUpfSxpLnByb3RvdHlwZS5vbk9wZW49ZnVuY3Rpb24oKXt0aGlzLnJlYWR5U3RhdGU9Im9wZW4iLHRoaXMud3JpdGFibGU9ITAsdGhpcy5lbWl0KCJvcGVuIil9LGkucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt2YXIgdD1yLmRlY29kZVBhY2tldChlLHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpO3RoaXMub25QYWNrZXQodCl9LGkucHJvdG90eXBlLm9uUGFja2V0PWZ1bmN0aW9uKGUpe3RoaXMuZW1pdCgicGFja2V0IixlKX0saS5wcm90b3R5cGUub25DbG9zZT1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZT0iY2xvc2VkIix0aGlzLmVtaXQoImNsb3NlIil9fSxmdW5jdGlvbihlLHQsbil7big5KSh7dGFyZ2V0OiJGdW5jdGlvbiIscHJvdG86ITB9LHtiaW5kOm4oMzA4KX0pfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPVN0cmluZy5wcm90b3R5cGUucmVwbGFjZSxvPS8lMjAvZyxpPSJSRkMxNzM4IixhPSJSRkMzOTg2IjtlLmV4cG9ydHM9e2RlZmF1bHQ6YSxmb3JtYXR0ZXJzOntSRkMxNzM4OmZ1bmN0aW9uKGUpe3JldHVybiByLmNhbGwoZSxvLCIrIil9LFJGQzM5ODY6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKX19LFJGQzE3Mzg6aSxSRkMzOTg2OmF9fSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKGUsbil7dmFyIHI9IltvYmplY3QgQXJndW1lbnRzXSIsbz0iW29iamVjdCBGdW5jdGlvbl0iLGk9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixhPSJbb2JqZWN0IE1hcF0iLHM9IltvYmplY3QgU2V0XSIsdT0vXHcqJC8sYz0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxsPS9eKD86MHxbMS05XVxkKikkLyxmPXt9O2Zbcl09ZlsiW29iamVjdCBBcnJheV0iXT1mWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPWZbIltvYmplY3QgRGF0YVZpZXddIl09ZlsiW29iamVjdCBCb29sZWFuXSJdPWZbIltvYmplY3QgRGF0ZV0iXT1mWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1mWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1mWyJbb2JqZWN0IEludDhBcnJheV0iXT1mWyJbb2JqZWN0IEludDE2QXJyYXldIl09ZlsiW29iamVjdCBJbnQzMkFycmF5XSJdPWZbYV09ZlsiW29iamVjdCBOdW1iZXJdIl09ZlsiW29iamVjdCBPYmplY3RdIl09ZlsiW29iamVjdCBSZWdFeHBdIl09ZltzXT1mWyJbb2JqZWN0IFN0cmluZ10iXT1mWyJbb2JqZWN0IFN5bWJvbF0iXT1mWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09ZlsiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1mWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPWZbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsZlsiW29iamVjdCBFcnJvcl0iXT1mW29dPWZbIltvYmplY3QgV2Vha01hcF0iXT0hMTt2YXIgZD0ib2JqZWN0Ij09dHlwZW9mIGUmJmUmJmUuT2JqZWN0PT09T2JqZWN0JiZlLHA9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixoPWR8fHB8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksdj10JiYhdC5ub2RlVHlwZSYmdCxnPXYmJiJvYmplY3QiPT10eXBlb2YgbiYmbiYmIW4ubm9kZVR5cGUmJm4seT1nJiZnLmV4cG9ydHM9PT12O2Z1bmN0aW9uIG0oZSx0KXtyZXR1cm4gZS5zZXQodFswXSx0WzFdKSxlfWZ1bmN0aW9uIGIoZSx0KXtyZXR1cm4gZS5hZGQodCksZX1mdW5jdGlvbiB3KGUsdCxuLHIpe3ZhciBvPS0xLGk9ZT9lLmxlbmd0aDowO2ZvcihyJiZpJiYobj1lWysrb10pOysrbzxpOyluPXQobixlW29dLG8sZSk7cmV0dXJuIG59ZnVuY3Rpb24gTyhlKXt2YXIgdD0hMTtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZyl0cnl7dD0hIShlKyIiKX1jYXRjaChuKXt9cmV0dXJuIHR9ZnVuY3Rpb24gXyhlKXt2YXIgdD0tMSxuPUFycmF5KGUuc2l6ZSk7cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtuWysrdF09W3IsZV19KSksbn1mdW5jdGlvbiBFKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBlKHQobikpfX1mdW5jdGlvbiBDKGUpe3ZhciB0PS0xLG49QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXtuWysrdF09ZX0pKSxufXZhciBTPUFycmF5LnByb3RvdHlwZSxrPUZ1bmN0aW9uLnByb3RvdHlwZSx4PU9iamVjdC5wcm90b3R5cGUsQT1oWyJfX2NvcmUtanNfc2hhcmVkX18iXSxqPWZ1bmN0aW9uKCl7dmFyIGU9L1teLl0rJC8uZXhlYyhBJiZBLmtleXMmJkEua2V5cy5JRV9QUk9UT3x8IiIpO3JldHVybiBlPyJTeW1ib2woc3JjKV8xLiIrZToiIn0oKSxUPWsudG9TdHJpbmcsUD14Lmhhc093blByb3BlcnR5LEk9eC50b1N0cmluZyxSPVJlZ0V4cCgiXiIrVC5jYWxsKFApLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpLEQ9eT9oLkJ1ZmZlcjp2b2lkIDAsTj1oLlN5bWJvbCxMPWguVWludDhBcnJheSxGPUUoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksTT1PYmplY3QuY3JlYXRlLEI9eC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxVPVMuc3BsaWNlLHo9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxWPUQ/RC5pc0J1ZmZlcjp2b2lkIDAsSD1FKE9iamVjdC5rZXlzLE9iamVjdCksVz12ZShoLCJEYXRhVmlldyIpLHE9dmUoaCwiTWFwIiksJD12ZShoLCJQcm9taXNlIiksWT12ZShoLCJTZXQiKSxHPXZlKGgsIldlYWtNYXAiKSxLPXZlKE9iamVjdCwiY3JlYXRlIiksWD13ZShXKSxRPXdlKHEpLEo9d2UoJCksWj13ZShZKSxlZT13ZShHKSx0ZT1OP04ucHJvdG90eXBlOnZvaWQgMCxuZT10ZT90ZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiByZShlKXt2YXIgdD0tMSxuPWU/ZS5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrdDxuOyl7dmFyIHI9ZVt0XTt0aGlzLnNldChyWzBdLHJbMV0pfX1mdW5jdGlvbiBvZShlKXt2YXIgdD0tMSxuPWU/ZS5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrdDxuOyl7dmFyIHI9ZVt0XTt0aGlzLnNldChyWzBdLHJbMV0pfX1mdW5jdGlvbiBpZShlKXt2YXIgdD0tMSxuPWU/ZS5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrdDxuOyl7dmFyIHI9ZVt0XTt0aGlzLnNldChyWzBdLHJbMV0pfX1mdW5jdGlvbiBhZShlKXt0aGlzLl9fZGF0YV9fPW5ldyBvZShlKX1mdW5jdGlvbiBzZShlLHQpe3ZhciBuPV9lKGUpfHxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiEhZSYmIm9iamVjdCI9PXR5cGVvZiBlfShlKSYmRWUoZSl9KGUpJiZQLmNhbGwoZSwiY2FsbGVlIikmJighQi5jYWxsKGUsImNhbGxlZSIpfHxJLmNhbGwoZSk9PXIpfShlKT9mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0tMSxyPUFycmF5KGUpOysrbjxlOylyW25dPXQobik7cmV0dXJuIHJ9KGUubGVuZ3RoLFN0cmluZyk6W10sbz1uLmxlbmd0aCxpPSEhbztmb3IodmFyIGEgaW4gZSkhdCYmIVAuY2FsbChlLGEpfHxpJiYoImxlbmd0aCI9PWF8fG1lKGEsbykpfHxuLnB1c2goYSk7cmV0dXJuIG59ZnVuY3Rpb24gdWUoZSx0LG4pe3ZhciByPWVbdF07UC5jYWxsKGUsdCkmJk9lKHIsbikmJih2b2lkIDAhPT1ufHx0IGluIGUpfHwoZVt0XT1uKX1mdW5jdGlvbiBjZShlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aDtuLS07KWlmKE9lKGVbbl1bMF0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gbGUoZSx0LG4sYyxsLGQscCl7dmFyIGg7aWYoYyYmKGg9ZD9jKGUsbCxkLHApOmMoZSkpLHZvaWQgMCE9PWgpcmV0dXJuIGg7aWYoIWtlKGUpKXJldHVybiBlO3ZhciB2PV9lKGUpO2lmKHYpe2lmKGg9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGgsbj1lLmNvbnN0cnVjdG9yKHQpO3QmJiJzdHJpbmciPT10eXBlb2YgZVswXSYmUC5jYWxsKGUsImluZGV4IikmJihuLmluZGV4PWUuaW5kZXgsbi5pbnB1dD1lLmlucHV0KTtyZXR1cm4gbn0oZSksIXQpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49LTEscj1lLmxlbmd0aDt0fHwodD1BcnJheShyKSk7Zm9yKDsrK248cjspdFtuXT1lW25dO3JldHVybiB0fShlLGgpfWVsc2V7dmFyIGc9eWUoZSkseT1nPT1vfHxnPT1pO2lmKENlKGUpKXJldHVybiBmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuIGUuc2xpY2UoKTt2YXIgbj1uZXcgZS5jb25zdHJ1Y3RvcihlLmxlbmd0aCk7cmV0dXJuIGUuY29weShuKSxufShlLHQpO2lmKCJbb2JqZWN0IE9iamVjdF0iPT1nfHxnPT1yfHx5JiYhZCl7aWYoTyhlKSlyZXR1cm4gZD9lOnt9O2lmKGg9ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGUuY29uc3RydWN0b3J8fGJlKGUpP3t9Oih0PUYoZSksa2UodCk/TSh0KTp7fSk7dmFyIHR9KHk/e306ZSksIXQpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHBlKGUsZ2UoZSksdCl9KGUsZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmcGUodCx4ZSh0KSxlKX0oaCxlKSl9ZWxzZXtpZighZltnXSlyZXR1cm4gZD9lOnt9O2g9ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89ZS5jb25zdHJ1Y3Rvcjtzd2l0Y2godCl7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuIGRlKGUpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpyZXR1cm4gbmV3IG8oK2UpO2Nhc2UiW29iamVjdCBEYXRhVmlld10iOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPXQ/ZGUoZS5idWZmZXIpOmUuYnVmZmVyO3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcihuLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfShlLHIpO2Nhc2UiW29iamVjdCBGbG9hdDMyQXJyYXldIjpjYXNlIltvYmplY3QgRmxvYXQ2NEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDhBcnJheV0iOmNhc2UiW29iamVjdCBJbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDMyQXJyYXldIjpjYXNlIltvYmplY3QgVWludDhBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MzJBcnJheV0iOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPXQ/ZGUoZS5idWZmZXIpOmUuYnVmZmVyO3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcihuLGUuYnl0ZU9mZnNldCxlLmxlbmd0aCl9KGUscik7Y2FzZSBhOnJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHcodD9uKF8oZSksITApOl8oZSksbSxuZXcgZS5jb25zdHJ1Y3Rvcil9KGUscixuKTtjYXNlIltvYmplY3QgTnVtYmVyXSI6Y2FzZSJbb2JqZWN0IFN0cmluZ10iOnJldHVybiBuZXcgbyhlKTtjYXNlIltvYmplY3QgUmVnRXhwXSI6cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBlLmNvbnN0cnVjdG9yKGUuc291cmNlLHUuZXhlYyhlKSk7cmV0dXJuIHQubGFzdEluZGV4PWUubGFzdEluZGV4LHR9KGUpO2Nhc2UgczpyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB3KHQ/bihDKGUpLCEwKTpDKGUpLGIsbmV3IGUuY29uc3RydWN0b3IpfShlLHIsbik7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOnJldHVybiBpPWUsbmU/T2JqZWN0KG5lLmNhbGwoaSkpOnt9fXZhciBpfShlLGcsbGUsdCl9fXB8fChwPW5ldyBhZSk7dmFyIEU9cC5nZXQoZSk7aWYoRSlyZXR1cm4gRTtpZihwLnNldChlLGgpLCF2KXZhciBTPW4/ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10KGUpO3JldHVybiBfZShlKT9yOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPS0xLHI9dC5sZW5ndGgsbz1lLmxlbmd0aDsrK248cjspZVtvK25dPXRbbl07cmV0dXJuIGV9KHIsbihlKSl9KGUseGUsZ2UpfShlKTp4ZShlKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49LTEscj1lP2UubGVuZ3RoOjA7KytuPHImJiExIT09dChlW25dLG4sZSk7KTt9KFN8fGUsKGZ1bmN0aW9uKHIsbyl7UyYmKHI9ZVtvPXJdKSx1ZShoLG8sbGUocix0LG4sYyxvLGUscCkpfSkpLGh9ZnVuY3Rpb24gZmUoZSl7cmV0dXJuISgha2UoZSl8fCh0PWUsaiYmaiBpbiB0KSkmJihTZShlKXx8TyhlKT9SOmMpLnRlc3Qod2UoZSkpO3ZhciB0fWZ1bmN0aW9uIGRlKGUpe3ZhciB0PW5ldyBlLmNvbnN0cnVjdG9yKGUuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBMKHQpLnNldChuZXcgTChlKSksdH1mdW5jdGlvbiBwZShlLHQsbixyKXtufHwobj17fSk7Zm9yKHZhciBvPS0xLGk9dC5sZW5ndGg7KytvPGk7KXt2YXIgYT10W29dLHM9cj9yKG5bYV0sZVthXSxhLG4sZSk6dm9pZCAwO3VlKG4sYSx2b2lkIDA9PT1zP2VbYV06cyl9cmV0dXJuIG59ZnVuY3Rpb24gaGUoZSx0KXt2YXIgbj1lLl9fZGF0YV9fO3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4ic3RyaW5nIj09dHx8Im51bWJlciI9PXR8fCJzeW1ib2wiPT10fHwiYm9vbGVhbiI9PXQ/Il9fcHJvdG9fXyIhPT1lOm51bGw9PT1lfSh0KT9uWyJzdHJpbmciPT10eXBlb2YgdD8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfWZ1bmN0aW9uIHZlKGUsdCl7dmFyIG49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09ZT92b2lkIDA6ZVt0XX0oZSx0KTtyZXR1cm4gZmUobik/bjp2b2lkIDB9cmUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1LP0sobnVsbCk6e319LHJlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaGFzKGUpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1tlXX0scmUucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9fZGF0YV9fO2lmKEspe3ZhciBuPXRbZV07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09bj92b2lkIDA6bn1yZXR1cm4gUC5jYWxsKHQsZSk/dFtlXTp2b2lkIDB9LHJlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXztyZXR1cm4gSz92b2lkIDAhPT10W2VdOlAuY2FsbCh0LGUpfSxyZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX19kYXRhX19bZV09SyYmdm9pZCAwPT09dD8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6dCx0aGlzfSxvZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdfSxvZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX19kYXRhX18sbj1jZSh0LGUpO3JldHVybiEobjwwKSYmKG49PXQubGVuZ3RoLTE/dC5wb3AoKTpVLmNhbGwodCxuLDEpLCEwKX0sb2UucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9fZGF0YV9fLG49Y2UodCxlKTtyZXR1cm4gbjwwP3ZvaWQgMDp0W25dWzFdfSxvZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiBjZSh0aGlzLl9fZGF0YV9fLGUpPi0xfSxvZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fX2RhdGFfXyxyPWNlKG4sZSk7cmV0dXJuIHI8MD9uLnB1c2goW2UsdF0pOm5bcl1bMV09dCx0aGlzfSxpZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyByZSxtYXA6bmV3KHF8fG9lKSxzdHJpbmc6bmV3IHJlfX0saWUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaGUodGhpcyxlKS5kZWxldGUoZSl9LGllLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGhlKHRoaXMsZSkuZ2V0KGUpfSxpZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiBoZSh0aGlzLGUpLmhhcyhlKX0saWUucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe3JldHVybiBoZSh0aGlzLGUpLnNldChlLHQpLHRoaXN9LGFlLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189bmV3IG9lfSxhZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmRlbGV0ZShlKX0sYWUucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQoZSl9LGFlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGUpfSxhZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fX2RhdGFfXztpZihuIGluc3RhbmNlb2Ygb2Upe3ZhciByPW4uX19kYXRhX187aWYoIXF8fHIubGVuZ3RoPDE5OSlyZXR1cm4gci5wdXNoKFtlLHRdKSx0aGlzO249dGhpcy5fX2RhdGFfXz1uZXcgaWUocil9cmV0dXJuIG4uc2V0KGUsdCksdGhpc307dmFyIGdlPXo/RSh6LE9iamVjdCk6ZnVuY3Rpb24oKXtyZXR1cm5bXX0seWU9ZnVuY3Rpb24oZSl7cmV0dXJuIEkuY2FsbChlKX07ZnVuY3Rpb24gbWUoZSx0KXtyZXR1cm4hISh0PW51bGw9PXQ/OTAwNzE5OTI1NDc0MDk5MTp0KSYmKCJudW1iZXIiPT10eXBlb2YgZXx8bC50ZXN0KGUpKSYmZT4tMSYmZSUxPT0wJiZlPHR9ZnVuY3Rpb24gYmUoZSl7dmFyIHQ9ZSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4gZT09PSgiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5wcm90b3R5cGV8fHgpfWZ1bmN0aW9uIHdlKGUpe2lmKG51bGwhPWUpe3RyeXtyZXR1cm4gVC5jYWxsKGUpfWNhdGNoKHQpe310cnl7cmV0dXJuIGUrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn1mdW5jdGlvbiBPZShlLHQpe3JldHVybiBlPT09dHx8ZSE9PWUmJnQhPT10fShXJiYiW29iamVjdCBEYXRhVmlld10iIT15ZShuZXcgVyhuZXcgQXJyYXlCdWZmZXIoMSkpKXx8cSYmeWUobmV3IHEpIT1hfHwkJiYiW29iamVjdCBQcm9taXNlXSIhPXllKCQucmVzb2x2ZSgpKXx8WSYmeWUobmV3IFkpIT1zfHxHJiYiW29iamVjdCBXZWFrTWFwXSIhPXllKG5ldyBHKSkmJih5ZT1mdW5jdGlvbihlKXt2YXIgdD1JLmNhbGwoZSksbj0iW29iamVjdCBPYmplY3RdIj09dD9lLmNvbnN0cnVjdG9yOnZvaWQgMCxyPW4/d2Uobik6dm9pZCAwO2lmKHIpc3dpdGNoKHIpe2Nhc2UgWDpyZXR1cm4iW29iamVjdCBEYXRhVmlld10iO2Nhc2UgUTpyZXR1cm4gYTtjYXNlIEo6cmV0dXJuIltvYmplY3QgUHJvbWlzZV0iO2Nhc2UgWjpyZXR1cm4gcztjYXNlIGVlOnJldHVybiJbb2JqZWN0IFdlYWtNYXBdIn1yZXR1cm4gdH0pO3ZhciBfZT1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIEVlKGUpe3JldHVybiBudWxsIT1lJiZmdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJmU+LTEmJmUlMT09MCYmZTw9OTAwNzE5OTI1NDc0MDk5MX0oZS5sZW5ndGgpJiYhU2UoZSl9dmFyIENlPVZ8fGZ1bmN0aW9uKCl7cmV0dXJuITF9O2Z1bmN0aW9uIFNlKGUpe3ZhciB0PWtlKGUpP0kuY2FsbChlKToiIjtyZXR1cm4gdD09b3x8dD09aX1mdW5jdGlvbiBrZShlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4hIWUmJigib2JqZWN0Ij09dHx8ImZ1bmN0aW9uIj09dCl9ZnVuY3Rpb24geGUoZSl7cmV0dXJuIEVlKGUpP3NlKGUpOmZ1bmN0aW9uKGUpe2lmKCFiZShlKSlyZXR1cm4gSChlKTt2YXIgdD1bXTtmb3IodmFyIG4gaW4gT2JqZWN0KGUpKVAuY2FsbChlLG4pJiYiY29uc3RydWN0b3IiIT1uJiZ0LnB1c2gobik7cmV0dXJuIHR9KGUpfW4uZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbGUoZSwhMCwhMCl9fSkuY2FsbCh0aGlzLG4oMTMpLG4oMjYzKShlKSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDI3MSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixvLGk9cihlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKG89MDtvPGEubGVuZ3RoO28rKyluPWFbb10sdC5pbmRleE9mKG4pPj0wfHxPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKGlbbl09ZVtuXSl9cmV0dXJuIGl9fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSx0LG4scixvLGksYSl7dHJ5e3ZhciBzPWVbaV0oYSksdT1zLnZhbHVlfWNhdGNoKGMpe3JldHVybiB2b2lkIG4oYyl9cy5kb25lP3QodSk6UHJvbWlzZS5yZXNvbHZlKHUpLnRoZW4ocixvKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8saSl7dmFyIGE9ZS5hcHBseSh0LHIpO2Z1bmN0aW9uIHMoZSl7bihhLG8saSxzLHUsIm5leHQiLGUpfWZ1bmN0aW9uIHUoZSl7bihhLG8saSxzLHUsInRocm93IixlKX1zKHZvaWQgMCl9KSl9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDI0Nyksbz17Y2hpbGRDb250ZXh0VHlwZXM6ITAsY29udGV4dFR5cGU6ITAsY29udGV4dFR5cGVzOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxnZXREZWZhdWx0UHJvcHM6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yOiEwLGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczohMCxtaXhpbnM6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LGk9e25hbWU6ITAsbGVuZ3RoOiEwLHByb3RvdHlwZTohMCxjYWxsZXI6ITAsY2FsbGVlOiEwLGFyZ3VtZW50czohMCxhcml0eTohMH0sYT17JCR0eXBlb2Y6ITAsY29tcGFyZTohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LHM9e307ZnVuY3Rpb24gdShlKXtyZXR1cm4gci5pc01lbW8oZSk/YTpzW2UuJCR0eXBlb2ZdfHxvfXNbci5Gb3J3YXJkUmVmXT17JCR0eXBlb2Y6ITAscmVuZGVyOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITB9LHNbci5NZW1vXT1hO3ZhciBjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IscD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsaD1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1mdW5jdGlvbiBlKHQsbixyKXtpZigic3RyaW5nIiE9PXR5cGVvZiBuKXtpZihoKXt2YXIgbz1wKG4pO28mJm8hPT1oJiZlKHQsbyxyKX12YXIgYT1sKG4pO2YmJihhPWEuY29uY2F0KGYobikpKTtmb3IodmFyIHM9dSh0KSx2PXUobiksZz0wO2c8YS5sZW5ndGg7KytnKXt2YXIgeT1hW2ddO2lmKCFpW3ldJiYoIXJ8fCFyW3ldKSYmKCF2fHwhdlt5XSkmJighc3x8IXNbeV0pKXt2YXIgbT1kKG4seSk7dHJ5e2ModCx5LG0pfWNhdGNoKGIpe319fX1yZXR1cm4gdH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKGUscil7dmFyIG8saT1uKDIwNCk7bz0idW5kZWZpbmVkIiE9PXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9PXR5cGVvZiBlP2U6cjt2YXIgYT1PYmplY3QoaS5hKShvKTt0LmE9YX0pLmNhbGwodGhpcyxuKDEzKSxuKDI1MCkoZSkpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzMTMpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmcihlLHQpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTkpLG89bigxMDYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiF0fHwib2JqZWN0IiE9PXIodCkmJiJmdW5jdGlvbiIhPT10eXBlb2YgdD9vKGUpOnR9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDE1KSxpPW4oNjQpLGE9big4Nykscz1uKDIzKSx1PW4oMzQpLGM9big4OCksbD1uKDEyKSxmPW4oNjUpLGQ9big0MCkscD1mKCJzbGljZSIpLGg9ZCgic2xpY2UiLHtBQ0NFU1NPUlM6ITAsMDowLDE6Mn0pLHY9bCgic3BlY2llcyIpLGc9W10uc2xpY2UseT1NYXRoLm1heDtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IXB8fCFofSx7c2xpY2U6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGwsZj11KHRoaXMpLGQ9cyhmLmxlbmd0aCkscD1hKGUsZCksaD1hKHZvaWQgMD09PXQ/ZDp0LGQpO2lmKGkoZikmJigiZnVuY3Rpb24iIT10eXBlb2Yobj1mLmNvbnN0cnVjdG9yKXx8biE9PUFycmF5JiYhaShuLnByb3RvdHlwZSk/byhuKSYmbnVsbD09PShuPW5bdl0pJiYobj12b2lkIDApOm49dm9pZCAwLG49PT1BcnJheXx8dm9pZCAwPT09bikpcmV0dXJuIGcuY2FsbChmLHAsaCk7Zm9yKHI9bmV3KHZvaWQgMD09PW4/QXJyYXk6bikoeShoLXAsMCkpLGw9MDtwPGg7cCsrLGwrKylwIGluIGYmJmMocixsLGZbcF0pO3JldHVybiByLmxlbmd0aD1sLHJ9fSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big5KSxvPW4oMTE4KS50cmltO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigyNTkpKCJ0cmltIil9LHt0cmltOmZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyl9fSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big5KSxvPW4oNzQpLGk9bigzNCksYT1uKDkwKSxzPVtdLmpvaW4sdT1vIT1PYmplY3QsYz1hKCJqb2luIiwiLCIpO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDp1fHwhY30se2pvaW46ZnVuY3Rpb24oZSl7cmV0dXJuIHMuY2FsbChpKHRoaXMpLHZvaWQgMD09PWU/IiwiOmUpfX0pfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDI1MikubGVmdCxpPW4oOTApLGE9big0MCkscz1uKDY2KSx1PW4oMTE2KSxjPWkoInJlZHVjZSIpLGw9YSgicmVkdWNlIix7MTowfSk7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFjfHwhbHx8IXUmJnM+NzkmJnM8ODN9LHtyZWR1Y2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG8odGhpcyxlLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9ZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciB0PU9iamVjdC5wcm90b3R5cGUsbj10Lmhhc093blByb3BlcnR5LHI9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LG89ci5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLGk9ci5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixhPXIudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBzKGUsdCxuLHIpe3ZhciBvPXQmJnQucHJvdG90eXBlIGluc3RhbmNlb2YgbD90OmwsaT1PYmplY3QuY3JlYXRlKG8ucHJvdG90eXBlKSxhPW5ldyBfKHJ8fFtdKTtyZXR1cm4gaS5faW52b2tlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0ic3VzcGVuZGVkU3RhcnQiO3JldHVybiBmdW5jdGlvbihvLGkpe2lmKCJleGVjdXRpbmciPT09cil0aHJvdyBuZXcgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZigiY29tcGxldGVkIj09PXIpe2lmKCJ0aHJvdyI9PT1vKXRocm93IGk7cmV0dXJuIEMoKX1mb3Iobi5tZXRob2Q9byxuLmFyZz1pOzspe3ZhciBhPW4uZGVsZWdhdGU7aWYoYSl7dmFyIHM9YihhLG4pO2lmKHMpe2lmKHM9PT1jKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1uLm1ldGhvZCluLnNlbnQ9bi5fc2VudD1uLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1uLm1ldGhvZCl7aWYoInN1c3BlbmRlZFN0YXJ0Ij09PXIpdGhyb3cgcj0iY29tcGxldGVkIixuLmFyZztuLmRpc3BhdGNoRXhjZXB0aW9uKG4uYXJnKX1lbHNlInJldHVybiI9PT1uLm1ldGhvZCYmbi5hYnJ1cHQoInJldHVybiIsbi5hcmcpO3I9ImV4ZWN1dGluZyI7dmFyIGw9dShlLHQsbik7aWYoIm5vcm1hbCI9PT1sLnR5cGUpe2lmKHI9bi5kb25lPyJjb21wbGV0ZWQiOiJzdXNwZW5kZWRZaWVsZCIsbC5hcmc9PT1jKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpsLmFyZyxkb25lOm4uZG9uZX19InRocm93Ij09PWwudHlwZSYmKHI9ImNvbXBsZXRlZCIsbi5tZXRob2Q9InRocm93IixuLmFyZz1sLmFyZyl9fX0oZSxuLGEpLGl9ZnVuY3Rpb24gdShlLHQsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzplLmNhbGwodCxuKX19Y2F0Y2gocil7cmV0dXJue3R5cGU6InRocm93Iixhcmc6cn19fWUud3JhcD1zO3ZhciBjPXt9O2Z1bmN0aW9uIGwoKXt9ZnVuY3Rpb24gZigpe31mdW5jdGlvbiBkKCl7fXZhciBwPXt9O3Bbb109ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIGg9T2JqZWN0LmdldFByb3RvdHlwZU9mLHY9aCYmaChoKEUoW10pKSk7diYmdiE9PXQmJm4uY2FsbCh2LG8pJiYocD12KTt2YXIgZz1kLnByb3RvdHlwZT1sLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHApO2Z1bmN0aW9uIHkoZSl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pbnZva2UodCxlKX19KSl9ZnVuY3Rpb24gbShlLHQpe3ZhciByO3RoaXMuX2ludm9rZT1mdW5jdGlvbihvLGkpe2Z1bmN0aW9uIGEoKXtyZXR1cm4gbmV3IHQoKGZ1bmN0aW9uKHIsYSl7IWZ1bmN0aW9uIHIobyxpLGEscyl7dmFyIGM9dShlW29dLGUsaSk7aWYoInRocm93IiE9PWMudHlwZSl7dmFyIGw9Yy5hcmcsZj1sLnZhbHVlO3JldHVybiBmJiYib2JqZWN0Ij09PXR5cGVvZiBmJiZuLmNhbGwoZiwiX19hd2FpdCIpP3QucmVzb2x2ZShmLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKGUpe3IoIm5leHQiLGUsYSxzKX0pLChmdW5jdGlvbihlKXtyKCJ0aHJvdyIsZSxhLHMpfSkpOnQucmVzb2x2ZShmKS50aGVuKChmdW5jdGlvbihlKXtsLnZhbHVlPWUsYShsKX0pLChmdW5jdGlvbihlKXtyZXR1cm4gcigidGhyb3ciLGUsYSxzKX0pKX1zKGMuYXJnKX0obyxpLHIsYSl9KSl9cmV0dXJuIHI9cj9yLnRoZW4oYSxhKTphKCl9fWZ1bmN0aW9uIGIoZSx0KXt2YXIgbj1lLml0ZXJhdG9yW3QubWV0aG9kXTtpZih2b2lkIDA9PT1uKXtpZih0LmRlbGVnYXRlPW51bGwsInRocm93Ij09PXQubWV0aG9kKXtpZihlLml0ZXJhdG9yLnJldHVybiYmKHQubWV0aG9kPSJyZXR1cm4iLHQuYXJnPXZvaWQgMCxiKGUsdCksInRocm93Ij09PXQubWV0aG9kKSlyZXR1cm4gYzt0Lm1ldGhvZD0idGhyb3ciLHQuYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2QiKX1yZXR1cm4gY312YXIgcj11KG4sZS5pdGVyYXRvcix0LmFyZyk7aWYoInRocm93Ij09PXIudHlwZSlyZXR1cm4gdC5tZXRob2Q9InRocm93Iix0LmFyZz1yLmFyZyx0LmRlbGVnYXRlPW51bGwsYzt2YXIgbz1yLmFyZztyZXR1cm4gbz9vLmRvbmU/KHRbZS5yZXN1bHROYW1lXT1vLnZhbHVlLHQubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT10Lm1ldGhvZCYmKHQubWV0aG9kPSJuZXh0Iix0LmFyZz12b2lkIDApLHQuZGVsZWdhdGU9bnVsbCxjKTpvOih0Lm1ldGhvZD0idGhyb3ciLHQuYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0IiksdC5kZWxlZ2F0ZT1udWxsLGMpfWZ1bmN0aW9uIHcoZSl7dmFyIHQ9e3RyeUxvYzplWzBdfTsxIGluIGUmJih0LmNhdGNoTG9jPWVbMV0pLDIgaW4gZSYmKHQuZmluYWxseUxvYz1lWzJdLHQuYWZ0ZXJMb2M9ZVszXSksdGhpcy50cnlFbnRyaWVzLnB1c2godCl9ZnVuY3Rpb24gTyhlKXt2YXIgdD1lLmNvbXBsZXRpb258fHt9O3QudHlwZT0ibm9ybWFsIixkZWxldGUgdC5hcmcsZS5jb21wbGV0aW9uPXR9ZnVuY3Rpb24gXyhlKXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sZS5mb3JFYWNoKHcsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gRShlKXtpZihlKXt2YXIgdD1lW29dO2lmKHQpcmV0dXJuIHQuY2FsbChlKTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgcj0tMSxpPWZ1bmN0aW9uIHQoKXtmb3IoOysrcjxlLmxlbmd0aDspaWYobi5jYWxsKGUscikpcmV0dXJuIHQudmFsdWU9ZVtyXSx0LmRvbmU9ITEsdDtyZXR1cm4gdC52YWx1ZT12b2lkIDAsdC5kb25lPSEwLHR9O3JldHVybiBpLm5leHQ9aX19cmV0dXJue25leHQ6Q319ZnVuY3Rpb24gQygpe3JldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19cmV0dXJuIGYucHJvdG90eXBlPWcuY29uc3RydWN0b3I9ZCxkLmNvbnN0cnVjdG9yPWYsZFthXT1mLmRpc3BsYXlOYW1lPSJHZW5lcmF0b3JGdW5jdGlvbiIsZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PSJmdW5jdGlvbiI9PT10eXBlb2YgZSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4hIXQmJih0PT09Znx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PSh0LmRpc3BsYXlOYW1lfHx0Lm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsZCk6KGUuX19wcm90b19fPWQsYSBpbiBlfHwoZVthXT0iR2VuZXJhdG9yRnVuY3Rpb24iKSksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnKSxlfSxlLmF3cmFwPWZ1bmN0aW9uKGUpe3JldHVybntfX2F3YWl0OmV9fSx5KG0ucHJvdG90eXBlKSxtLnByb3RvdHlwZVtpXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlLkFzeW5jSXRlcmF0b3I9bSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IG0ocyh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZG9uZT9lLnZhbHVlOmEubmV4dCgpfSkpfSx5KGcpLGdbYV09IkdlbmVyYXRvciIsZ1tvXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxnLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9LGUua2V5cz1mdW5jdGlvbihlKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gZSl0LnB1c2gobik7cmV0dXJuIHQucmV2ZXJzZSgpLGZ1bmN0aW9uIG4oKXtmb3IoO3QubGVuZ3RoOyl7dmFyIHI9dC5wb3AoKTtpZihyIGluIGUpcmV0dXJuIG4udmFsdWU9cixuLmRvbmU9ITEsbn1yZXR1cm4gbi5kb25lPSEwLG59fSxlLnZhbHVlcz1FLF8ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpfLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXZvaWQgMCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz12b2lkIDAsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goTyksIWUpZm9yKHZhciB0IGluIHRoaXMpInQiPT09dC5jaGFyQXQoMCkmJm4uY2FsbCh0aGlzLHQpJiYhaXNOYU4oK3Quc2xpY2UoMSkpJiYodGhpc1t0XT12b2lkIDApfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciBlPXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1lLnR5cGUpdGhyb3cgZS5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIHQ9dGhpcztmdW5jdGlvbiByKG4scil7cmV0dXJuIGEudHlwZT0idGhyb3ciLGEuYXJnPWUsdC5uZXh0PW4sciYmKHQubWV0aG9kPSJuZXh0Iix0LmFyZz12b2lkIDApLCEhcn1mb3IodmFyIG89dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO28+PTA7LS1vKXt2YXIgaT10aGlzLnRyeUVudHJpZXNbb10sYT1pLmNvbXBsZXRpb247aWYoInJvb3QiPT09aS50cnlMb2MpcmV0dXJuIHIoImVuZCIpO2lmKGkudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPW4uY2FsbChpLCJjYXRjaExvYyIpLHU9bi5jYWxsKGksImZpbmFsbHlMb2MiKTtpZihzJiZ1KXtpZih0aGlzLnByZXY8aS5jYXRjaExvYylyZXR1cm4gcihpLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8aS5maW5hbGx5TG9jKXJldHVybiByKGkuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8aS5jYXRjaExvYylyZXR1cm4gcihpLmNhdGNoTG9jLCEwKX1lbHNle2lmKCF1KXRocm93IG5ldyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8aS5maW5hbGx5TG9jKXJldHVybiByKGkuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7cj49MDstLXIpe3ZhciBvPXRoaXMudHJ5RW50cmllc1tyXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZuLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PWV8fCJjb250aW51ZSI9PT1lKSYmaS50cnlMb2M8PXQmJnQ8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT1lLGEuYXJnPXQsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsYyk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24oZSx0KXtpZigidGhyb3ciPT09ZS50eXBlKXRocm93IGUuYXJnO3JldHVybiJicmVhayI9PT1lLnR5cGV8fCJjb250aW51ZSI9PT1lLnR5cGU/dGhpcy5uZXh0PWUuYXJnOiJyZXR1cm4iPT09ZS50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9ZS5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PWUudHlwZSYmdCYmKHRoaXMubmV4dD10KSxjfSxmaW5pc2g6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTt0Pj0wOy0tdCl7dmFyIG49dGhpcy50cnlFbnRyaWVzW3RdO2lmKG4uZmluYWxseUxvYz09PWUpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLE8obiksY319LGNhdGNoOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7dD49MDstLXQpe3ZhciBuPXRoaXMudHJ5RW50cmllc1t0XTtpZihuLnRyeUxvYz09PWUpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztPKG4pfXJldHVybiBvfX10aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6RShlKSxyZXN1bHROYW1lOnQsbmV4dExvYzpufSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXZvaWQgMCksY319LGV9KGUuZXhwb3J0cyk7dHJ5e3JlZ2VuZXJhdG9yUnVudGltZT1yfWNhdGNoKG8pe0Z1bmN0aW9uKCJyIiwicmVnZW5lcmF0b3JSdW50aW1lID0gciIpKHIpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDM0KSxvPW4oMTE3KSxpPW4oMTA0KSxhPW4oNjIpLHM9bigxOTcpLHU9YS5zZXQsYz1hLmdldHRlckZvcigiQXJyYXkgSXRlcmF0b3IiKTtlLmV4cG9ydHM9cyhBcnJheSwiQXJyYXkiLChmdW5jdGlvbihlLHQpe3UodGhpcyx7dHlwZToiQXJyYXkgSXRlcmF0b3IiLHRhcmdldDpyKGUpLGluZGV4OjAsa2luZDp0fSl9KSwoZnVuY3Rpb24oKXt2YXIgZT1jKHRoaXMpLHQ9ZS50YXJnZXQsbj1lLmtpbmQscj1lLmluZGV4Kys7cmV0dXJuIXR8fHI+PXQubGVuZ3RoPyhlLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1uP3t2YWx1ZTpyLGRvbmU6ITF9OiJ2YWx1ZXMiPT1uP3t2YWx1ZTp0W3JdLGRvbmU6ITF9Ont2YWx1ZTpbcix0W3JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKSxpLkFyZ3VtZW50cz1pLkFycmF5LG8oImtleXMiKSxvKCJ2YWx1ZXMiKSxvKCJlbnRyaWVzIil9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMjQpO3ZhciBvPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSx0LHIpe3ZhciBvPXQudHJpbSgpLnNwbGl0KGgpO3Q9bzt2YXIgaT1vLmxlbmd0aCxhPWUubGVuZ3RoO3N3aXRjaChhKXtjYXNlIDA6Y2FzZSAxOnZhciBzPTA7Zm9yKGU9MD09PWE/IiI6ZVswXSsiICI7czxpOysrcyl0W3NdPW4oZSx0W3NdLHIpLnRyaW0oKTticmVhaztkZWZhdWx0OnZhciB1PXM9MDtmb3IodD1bXTtzPGk7KytzKWZvcih2YXIgYz0wO2M8YTsrK2MpdFt1KytdPW4oZVtjXSsiICIsb1tzXSxyKS50cmltKCl9cmV0dXJuIHR9ZnVuY3Rpb24gbihlLHQsbil7dmFyIHI9dC5jaGFyQ29kZUF0KDApO3N3aXRjaCgzMz5yJiYocj0odD10LnRyaW0oKSkuY2hhckNvZGVBdCgwKSkscil7Y2FzZSAzODpyZXR1cm4gdC5yZXBsYWNlKHYsIiQxIitlLnRyaW0oKSk7Y2FzZSA1ODpyZXR1cm4gZS50cmltKCkrdC5yZXBsYWNlKHYsIiQxIitlLnRyaW0oKSk7ZGVmYXVsdDppZigwPDEqbiYmMDx0LmluZGV4T2YoIlxmIikpcmV0dXJuIHQucmVwbGFjZSh2LCg1OD09PWUuY2hhckNvZGVBdCgwKT8iIjoiJDEiKStlLnRyaW0oKSl9cmV0dXJuIGUrdH1mdW5jdGlvbiByKGUsdCxuLGkpe3ZhciBhPWUrIjsiLHM9Mip0KzMqbis0Kmk7aWYoOTQ0PT09cyl7ZT1hLmluZGV4T2YoIjoiLDkpKzE7dmFyIHU9YS5zdWJzdHJpbmcoZSxhLmxlbmd0aC0xKS50cmltKCk7cmV0dXJuIHU9YS5zdWJzdHJpbmcoMCxlKS50cmltKCkrdSsiOyIsMT09PWp8fDI9PT1qJiZvKHUsMSk/Ii13ZWJraXQtIit1K3U6dX1pZigwPT09anx8Mj09PWomJiFvKGEsMSkpcmV0dXJuIGE7c3dpdGNoKHMpe2Nhc2UgMTAxNTpyZXR1cm4gOTc9PT1hLmNoYXJDb2RlQXQoMTApPyItd2Via2l0LSIrYSthOmE7Y2FzZSA5NTE6cmV0dXJuIDExNj09PWEuY2hhckNvZGVBdCgzKT8iLXdlYmtpdC0iK2ErYTphO2Nhc2UgOTYzOnJldHVybiAxMTA9PT1hLmNoYXJDb2RlQXQoNSk/Ii13ZWJraXQtIithK2E6YTtjYXNlIDEwMDk6aWYoMTAwIT09YS5jaGFyQ29kZUF0KDQpKWJyZWFrO2Nhc2UgOTY5OmNhc2UgOTQyOnJldHVybiItd2Via2l0LSIrYSthO2Nhc2UgOTc4OnJldHVybiItd2Via2l0LSIrYSsiLW1vei0iK2ErYTtjYXNlIDEwMTk6Y2FzZSA5ODM6cmV0dXJuIi13ZWJraXQtIithKyItbW96LSIrYSsiLW1zLSIrYSthO2Nhc2UgODgzOmlmKDQ1PT09YS5jaGFyQ29kZUF0KDgpKXJldHVybiItd2Via2l0LSIrYSthO2lmKDA8YS5pbmRleE9mKCJpbWFnZS1zZXQoIiwxMSkpcmV0dXJuIGEucmVwbGFjZShTLCIkMS13ZWJraXQtJDIiKSthO2JyZWFrO2Nhc2UgOTMyOmlmKDQ1PT09YS5jaGFyQ29kZUF0KDQpKXN3aXRjaChhLmNoYXJDb2RlQXQoNSkpe2Nhc2UgMTAzOnJldHVybiItd2Via2l0LWJveC0iK2EucmVwbGFjZSgiLWdyb3ciLCIiKSsiLXdlYmtpdC0iK2ErIi1tcy0iK2EucmVwbGFjZSgiZ3JvdyIsInBvc2l0aXZlIikrYTtjYXNlIDExNTpyZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy0iK2EucmVwbGFjZSgic2hyaW5rIiwibmVnYXRpdmUiKSthO2Nhc2UgOTg6cmV0dXJuIi13ZWJraXQtIithKyItbXMtIithLnJlcGxhY2UoImJhc2lzIiwicHJlZmVycmVkLXNpemUiKSthfXJldHVybiItd2Via2l0LSIrYSsiLW1zLSIrYSthO2Nhc2UgOTY0OnJldHVybiItd2Via2l0LSIrYSsiLW1zLWZsZXgtIithK2E7Y2FzZSAxMDIzOmlmKDk5IT09YS5jaGFyQ29kZUF0KDgpKWJyZWFrO3JldHVybiItd2Via2l0LWJveC1wYWNrIisodT1hLnN1YnN0cmluZyhhLmluZGV4T2YoIjoiLDE1KSkucmVwbGFjZSgiZmxleC0iLCIiKS5yZXBsYWNlKCJzcGFjZS1iZXR3ZWVuIiwianVzdGlmeSIpKSsiLXdlYmtpdC0iK2ErIi1tcy1mbGV4LXBhY2siK3UrYTtjYXNlIDEwMDU6cmV0dXJuIGQudGVzdChhKT9hLnJlcGxhY2UoZiwiOi13ZWJraXQtIikrYS5yZXBsYWNlKGYsIjotbW96LSIpK2E6YTtjYXNlIDFlMzpzd2l0Y2godD0odT1hLnN1YnN0cmluZygxMykudHJpbSgpKS5pbmRleE9mKCItIikrMSx1LmNoYXJDb2RlQXQoMCkrdS5jaGFyQ29kZUF0KHQpKXtjYXNlIDIyNjp1PWEucmVwbGFjZShiLCJ0YiIpO2JyZWFrO2Nhc2UgMjMyOnU9YS5yZXBsYWNlKGIsInRiLXJsIik7YnJlYWs7Y2FzZSAyMjA6dT1hLnJlcGxhY2UoYiwibHIiKTticmVhaztkZWZhdWx0OnJldHVybiBhfXJldHVybiItd2Via2l0LSIrYSsiLW1zLSIrdSthO2Nhc2UgMTAxNzppZigtMT09PWEuaW5kZXhPZigic3RpY2t5Iiw5KSlicmVhaztjYXNlIDk3NTpzd2l0Y2godD0oYT1lKS5sZW5ndGgtMTAscz0odT0oMzM9PT1hLmNoYXJDb2RlQXQodCk/YS5zdWJzdHJpbmcoMCx0KTphKS5zdWJzdHJpbmcoZS5pbmRleE9mKCI6Iiw3KSsxKS50cmltKCkpLmNoYXJDb2RlQXQoMCkrKDB8dS5jaGFyQ29kZUF0KDcpKSl7Y2FzZSAyMDM6aWYoMTExPnUuY2hhckNvZGVBdCg4KSlicmVhaztjYXNlIDExNTphPWEucmVwbGFjZSh1LCItd2Via2l0LSIrdSkrIjsiK2E7YnJlYWs7Y2FzZSAyMDc6Y2FzZSAxMDI6YT1hLnJlcGxhY2UodSwiLXdlYmtpdC0iKygxMDI8cz8iaW5saW5lLSI6IiIpKyJib3giKSsiOyIrYS5yZXBsYWNlKHUsIi13ZWJraXQtIit1KSsiOyIrYS5yZXBsYWNlKHUsIi1tcy0iK3UrImJveCIpKyI7IithfXJldHVybiBhKyI7IjtjYXNlIDkzODppZig0NT09PWEuY2hhckNvZGVBdCg1KSlzd2l0Y2goYS5jaGFyQ29kZUF0KDYpKXtjYXNlIDEwNTpyZXR1cm4gdT1hLnJlcGxhY2UoIi1pdGVtcyIsIiIpLCItd2Via2l0LSIrYSsiLXdlYmtpdC1ib3gtIit1KyItbXMtZmxleC0iK3UrYTtjYXNlIDExNTpyZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy1mbGV4LWl0ZW0tIithLnJlcGxhY2UoXywiIikrYTtkZWZhdWx0OnJldHVybiItd2Via2l0LSIrYSsiLW1zLWZsZXgtbGluZS1wYWNrIithLnJlcGxhY2UoImFsaWduLWNvbnRlbnQiLCIiKS5yZXBsYWNlKF8sIiIpK2F9YnJlYWs7Y2FzZSA5NzM6Y2FzZSA5ODk6aWYoNDUhPT1hLmNoYXJDb2RlQXQoMyl8fDEyMj09PWEuY2hhckNvZGVBdCg0KSlicmVhaztjYXNlIDkzMTpjYXNlIDk1MzppZighMD09PUMudGVzdChlKSlyZXR1cm4gMTE1PT09KHU9ZS5zdWJzdHJpbmcoZS5pbmRleE9mKCI6IikrMSkpLmNoYXJDb2RlQXQoMCk/cihlLnJlcGxhY2UoInN0cmV0Y2giLCJmaWxsLWF2YWlsYWJsZSIpLHQsbixpKS5yZXBsYWNlKCI6ZmlsbC1hdmFpbGFibGUiLCI6c3RyZXRjaCIpOmEucmVwbGFjZSh1LCItd2Via2l0LSIrdSkrYS5yZXBsYWNlKHUsIi1tb3otIit1LnJlcGxhY2UoImZpbGwtIiwiIikpK2E7YnJlYWs7Y2FzZSA5NjI6aWYoYT0iLXdlYmtpdC0iK2ErKDEwMj09PWEuY2hhckNvZGVBdCg1KT8iLW1zLSIrYToiIikrYSwyMTE9PT1uK2kmJjEwNT09PWEuY2hhckNvZGVBdCgxMykmJjA8YS5pbmRleE9mKCJ0cmFuc2Zvcm0iLDEwKSlyZXR1cm4gYS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIjsiLDI3KSsxKS5yZXBsYWNlKHAsIiQxLXdlYmtpdC0kMiIpK2F9cmV0dXJuIGF9ZnVuY3Rpb24gbyhlLHQpe3ZhciBuPWUuaW5kZXhPZigxPT09dD8iOiI6InsiKSxyPWUuc3Vic3RyaW5nKDAsMyE9PXQ/bjoxMCk7cmV0dXJuIG49ZS5zdWJzdHJpbmcobisxLGUubGVuZ3RoLTEpLFIoMiE9PXQ/cjpyLnJlcGxhY2UoRSwiJDEiKSxuLHQpfWZ1bmN0aW9uIGkoZSx0KXt2YXIgbj1yKHQsdC5jaGFyQ29kZUF0KDApLHQuY2hhckNvZGVBdCgxKSx0LmNoYXJDb2RlQXQoMikpO3JldHVybiBuIT09dCsiOyI/bi5yZXBsYWNlKE8sIiBvciAoJDEpIikuc3Vic3RyaW5nKDQpOiIoIit0KyIpIn1mdW5jdGlvbiBhKGUsdCxuLHIsbyxpLGEscyxjLGwpe2Zvcih2YXIgZixkPTAscD10O2Q8STsrK2Qpc3dpdGNoKGY9UFtkXS5jYWxsKHUsZSxwLG4scixvLGksYSxzLGMsbCkpe2Nhc2Ugdm9pZCAwOmNhc2UhMTpjYXNlITA6Y2FzZSBudWxsOmJyZWFrO2RlZmF1bHQ6cD1mfWlmKHAhPT10KXJldHVybiBwfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIHZvaWQgMCE9PShlPWUucHJlZml4KSYmKFI9bnVsbCxlPyJmdW5jdGlvbiIhPT10eXBlb2YgZT9qPTE6KGo9MixSPWUpOmo9MCksc31mdW5jdGlvbiB1KGUsbil7dmFyIHM9ZTtpZigzMz5zLmNoYXJDb2RlQXQoMCkmJihzPXMudHJpbSgpKSxzPVtzXSwwPEkpe3ZhciB1PWEoLTEsbixzLHMseCxrLDAsMCwwLDApO3ZvaWQgMCE9PXUmJiJzdHJpbmciPT09dHlwZW9mIHUmJihuPXUpfXZhciBmPWZ1bmN0aW9uIGUobixzLHUsZixkKXtmb3IodmFyIHAsaCx2LGIsTyxfPTAsRT0wLEM9MCxTPTAsUD0wLFI9MCxOPXY9cD0wLEw9MCxGPTAsTT0wLEI9MCxVPXUubGVuZ3RoLHo9VS0xLFY9IiIsSD0iIixXPSIiLHE9IiI7TDxVOyl7aWYoaD11LmNoYXJDb2RlQXQoTCksTD09PXomJjAhPT1FK1MrQytfJiYoMCE9PUUmJihoPTQ3PT09RT8xMDo0NyksUz1DPV89MCxVKysseisrKSwwPT09RStTK0MrXyl7aWYoTD09PXomJigwPEYmJihWPVYucmVwbGFjZShsLCIiKSksMDxWLnRyaW0oKS5sZW5ndGgpKXtzd2l0Y2goaCl7Y2FzZSAzMjpjYXNlIDk6Y2FzZSA1OTpjYXNlIDEzOmNhc2UgMTA6YnJlYWs7ZGVmYXVsdDpWKz11LmNoYXJBdChMKX1oPTU5fXN3aXRjaChoKXtjYXNlIDEyMzpmb3IocD0oVj1WLnRyaW0oKSkuY2hhckNvZGVBdCgwKSx2PTEsQj0rK0w7TDxVOyl7c3dpdGNoKGg9dS5jaGFyQ29kZUF0KEwpKXtjYXNlIDEyMzp2Kys7YnJlYWs7Y2FzZSAxMjU6di0tO2JyZWFrO2Nhc2UgNDc6c3dpdGNoKGg9dS5jaGFyQ29kZUF0KEwrMSkpe2Nhc2UgNDI6Y2FzZSA0NzplOntmb3IoTj1MKzE7Tjx6OysrTilzd2l0Y2godS5jaGFyQ29kZUF0KE4pKXtjYXNlIDQ3OmlmKDQyPT09aCYmNDI9PT11LmNoYXJDb2RlQXQoTi0xKSYmTCsyIT09Til7TD1OKzE7YnJlYWsgZX1icmVhaztjYXNlIDEwOmlmKDQ3PT09aCl7TD1OKzE7YnJlYWsgZX19TD1OfX1icmVhaztjYXNlIDkxOmgrKztjYXNlIDQwOmgrKztjYXNlIDM0OmNhc2UgMzk6Zm9yKDtMKys8eiYmdS5jaGFyQ29kZUF0KEwpIT09aDspO31pZigwPT09dilicmVhaztMKyt9c3dpdGNoKHY9dS5zdWJzdHJpbmcoQixMKSwwPT09cCYmKHA9KFY9Vi5yZXBsYWNlKGMsIiIpLnRyaW0oKSkuY2hhckNvZGVBdCgwKSkscCl7Y2FzZSA2NDpzd2l0Y2goMDxGJiYoVj1WLnJlcGxhY2UobCwiIikpLGg9Vi5jaGFyQ29kZUF0KDEpKXtjYXNlIDEwMDpjYXNlIDEwOTpjYXNlIDExNTpjYXNlIDQ1OkY9czticmVhaztkZWZhdWx0OkY9VH1pZihCPSh2PWUocyxGLHYsaCxkKzEpKS5sZW5ndGgsMDxJJiYoTz1hKDMsdixGPXQoVCxWLE0pLHMseCxrLEIsaCxkLGYpLFY9Ri5qb2luKCIiKSx2b2lkIDAhPT1PJiYwPT09KEI9KHY9Ty50cmltKCkpLmxlbmd0aCkmJihoPTAsdj0iIikpLDA8Qilzd2l0Y2goaCl7Y2FzZSAxMTU6Vj1WLnJlcGxhY2UodyxpKTtjYXNlIDEwMDpjYXNlIDEwOTpjYXNlIDQ1OnY9VisieyIrdisifSI7YnJlYWs7Y2FzZSAxMDc6dj0oVj1WLnJlcGxhY2UoZywiJDEgJDIiKSkrInsiK3YrIn0iLHY9MT09PWp8fDI9PT1qJiZvKCJAIit2LDMpPyJALXdlYmtpdC0iK3YrIkAiK3Y6IkAiK3Y7YnJlYWs7ZGVmYXVsdDp2PVYrdiwxMTI9PT1mJiYoSCs9dix2PSIiKX1lbHNlIHY9IiI7YnJlYWs7ZGVmYXVsdDp2PWUocyx0KHMsVixNKSx2LGYsZCsxKX1XKz12LHY9TT1GPU49cD0wLFY9IiIsaD11LmNoYXJDb2RlQXQoKytMKTticmVhaztjYXNlIDEyNTpjYXNlIDU5OmlmKDE8KEI9KFY9KDA8Rj9WLnJlcGxhY2UobCwiIik6VikudHJpbSgpKS5sZW5ndGgpKXN3aXRjaCgwPT09TiYmKHA9Vi5jaGFyQ29kZUF0KDApLDQ1PT09cHx8OTY8cCYmMTIzPnApJiYoQj0oVj1WLnJlcGxhY2UoIiAiLCI6IikpLmxlbmd0aCksMDxJJiZ2b2lkIDAhPT0oTz1hKDEsVixzLG4seCxrLEgubGVuZ3RoLGYsZCxmKSkmJjA9PT0oQj0oVj1PLnRyaW0oKSkubGVuZ3RoKSYmKFY9IlwwXDAiKSxwPVYuY2hhckNvZGVBdCgwKSxoPVYuY2hhckNvZGVBdCgxKSxwKXtjYXNlIDA6YnJlYWs7Y2FzZSA2NDppZigxMDU9PT1ofHw5OT09PWgpe3ErPVYrdS5jaGFyQXQoTCk7YnJlYWt9ZGVmYXVsdDo1OCE9PVYuY2hhckNvZGVBdChCLTEpJiYoSCs9cihWLHAsaCxWLmNoYXJDb2RlQXQoMikpKX1NPUY9Tj1wPTAsVj0iIixoPXUuY2hhckNvZGVBdCgrK0wpfX1zd2l0Y2goaCl7Y2FzZSAxMzpjYXNlIDEwOjQ3PT09RT9FPTA6MD09PTErcCYmMTA3IT09ZiYmMDxWLmxlbmd0aCYmKEY9MSxWKz0iXDAiKSwwPEkqRCYmYSgwLFYscyxuLHgsayxILmxlbmd0aCxmLGQsZiksaz0xLHgrKzticmVhaztjYXNlIDU5OmNhc2UgMTI1OmlmKDA9PT1FK1MrQytfKXtrKys7YnJlYWt9ZGVmYXVsdDpzd2l0Y2goaysrLGI9dS5jaGFyQXQoTCksaCl7Y2FzZSA5OmNhc2UgMzI6aWYoMD09PVMrXytFKXN3aXRjaChQKXtjYXNlIDQ0OmNhc2UgNTg6Y2FzZSA5OmNhc2UgMzI6Yj0iIjticmVhaztkZWZhdWx0OjMyIT09aCYmKGI9IiAiKX1icmVhaztjYXNlIDA6Yj0iXFwwIjticmVhaztjYXNlIDEyOmI9IlxcZiI7YnJlYWs7Y2FzZSAxMTpiPSJcXHYiO2JyZWFrO2Nhc2UgMzg6MD09PVMrRStfJiYoRj1NPTEsYj0iXGYiK2IpO2JyZWFrO2Nhc2UgMTA4OmlmKDA9PT1TK0UrXytBJiYwPE4pc3dpdGNoKEwtTil7Y2FzZSAyOjExMj09PVAmJjU4PT09dS5jaGFyQ29kZUF0KEwtMykmJihBPVApO2Nhc2UgODoxMTE9PT1SJiYoQT1SKX1icmVhaztjYXNlIDU4OjA9PT1TK0UrXyYmKE49TCk7YnJlYWs7Y2FzZSA0NDowPT09RStDK1MrXyYmKEY9MSxiKz0iXHIiKTticmVhaztjYXNlIDM0OmNhc2UgMzk6MD09PUUmJihTPVM9PT1oPzA6MD09PVM/aDpTKTticmVhaztjYXNlIDkxOjA9PT1TK0UrQyYmXysrO2JyZWFrO2Nhc2UgOTM6MD09PVMrRStDJiZfLS07YnJlYWs7Y2FzZSA0MTowPT09UytFK18mJkMtLTticmVhaztjYXNlIDQwOmlmKDA9PT1TK0UrXyl7aWYoMD09PXApc3dpdGNoKDIqUCszKlIpe2Nhc2UgNTMzOmJyZWFrO2RlZmF1bHQ6cD0xfUMrK31icmVhaztjYXNlIDY0OjA9PT1FK0MrUytfK04rdiYmKHY9MSk7YnJlYWs7Y2FzZSA0MjpjYXNlIDQ3OmlmKCEoMDxTK18rQykpc3dpdGNoKEUpe2Nhc2UgMDpzd2l0Y2goMipoKzMqdS5jaGFyQ29kZUF0KEwrMSkpe2Nhc2UgMjM1OkU9NDc7YnJlYWs7Y2FzZSAyMjA6Qj1MLEU9NDJ9YnJlYWs7Y2FzZSA0Mjo0Nz09PWgmJjQyPT09UCYmQisyIT09TCYmKDMzPT09dS5jaGFyQ29kZUF0KEIrMikmJihIKz11LnN1YnN0cmluZyhCLEwrMSkpLGI9IiIsRT0wKX19MD09PUUmJihWKz1iKX1SPVAsUD1oLEwrK31pZigwPChCPUgubGVuZ3RoKSl7aWYoRj1zLDA8SSYmKHZvaWQgMCE9PShPPWEoMixILEYsbix4LGssQixmLGQsZikpJiYwPT09KEg9TykubGVuZ3RoKSlyZXR1cm4gcStIK1c7aWYoSD1GLmpvaW4oIiwiKSsieyIrSCsifSIsMCE9PWoqQSl7c3dpdGNoKDIhPT1qfHxvKEgsMil8fChBPTApLEEpe2Nhc2UgMTExOkg9SC5yZXBsYWNlKG0sIjotbW96LSQxIikrSDticmVhaztjYXNlIDExMjpIPUgucmVwbGFjZSh5LCI6Oi13ZWJraXQtaW5wdXQtJDEiKStILnJlcGxhY2UoeSwiOjotbW96LSQxIikrSC5yZXBsYWNlKHksIjotbXMtaW5wdXQtJDEiKStIfUE9MH19cmV0dXJuIHErSCtXfShULHMsbiwwLDApO3JldHVybiAwPEkmJih2b2lkIDAhPT0odT1hKC0yLGYscyxzLHgsayxmLmxlbmd0aCwwLDAsMCkpJiYoZj11KSksIiIsQT0wLGs9eD0xLGZ9dmFyIGM9L15cMCsvZyxsPS9bXDBcclxmXS9nLGY9LzogKi9nLGQ9L3pvb3xncmEvLHA9LyhbLDogXSkodHJhbnNmb3JtKS9nLGg9Lyxccis/L2csdj0vKFtcdFxyXG4gXSkqXGY/Ji9nLGc9L0Aoa1x3KylccyooXFMqKVxzKi8seT0vOjoocGxhY2UpL2csbT0vOihyZWFkLW9ubHkpL2csYj0vW3N2aF1cdystW3RibHJdezJ9Lyx3PS9cKFxzKiguKilccypcKS9nLE89LyhbXHNcU10qPyk7L2csXz0vLXNlbGZ8ZmxleC0vZyxFPS9bXl0qPyg6W3JwXVtlbF1hW1x3LV0rKVteXSovLEM9L3N0cmV0Y2h8OlxzKlx3K1wtKD86Y29udGV8YXZhaWwpLyxTPS8oW14tXSkoaW1hZ2Utc2V0XCgpLyxrPTEseD0xLEE9MCxqPTEsVD1bXSxQPVtdLEk9MCxSPW51bGwsRD0wO3JldHVybiB1LnVzZT1mdW5jdGlvbiBlKHQpe3N3aXRjaCh0KXtjYXNlIHZvaWQgMDpjYXNlIG51bGw6ST1QLmxlbmd0aD0wO2JyZWFrO2RlZmF1bHQ6aWYoImZ1bmN0aW9uIj09PXR5cGVvZiB0KVBbSSsrXT10O2Vsc2UgaWYoIm9iamVjdCI9PT10eXBlb2YgdClmb3IodmFyIG49MCxyPXQubGVuZ3RoO248cjsrK24pZSh0W25dKTtlbHNlIEQ9MHwhIXR9cmV0dXJuIGV9LHUuc2V0PXMsdm9pZCAwIT09ZSYmcyhlKSx1fTtmdW5jdGlvbiBpKGUpe2UmJmEuY3VycmVudC5pbnNlcnQoZSsifSIpfXZhciBhPXtjdXJyZW50Om51bGx9LHM9ZnVuY3Rpb24oZSx0LG4scixvLHMsdSxjLGwsZil7c3dpdGNoKGUpe2Nhc2UgMTpzd2l0Y2godC5jaGFyQ29kZUF0KDApKXtjYXNlIDY0OnJldHVybiBhLmN1cnJlbnQuaW5zZXJ0KHQrIjsiKSwiIjtjYXNlIDEwODppZig5OD09PXQuY2hhckNvZGVBdCgyKSlyZXR1cm4iIn1icmVhaztjYXNlIDI6aWYoMD09PWMpcmV0dXJuIHQrIi8qfCovIjticmVhaztjYXNlIDM6c3dpdGNoKGMpe2Nhc2UgMTAyOmNhc2UgMTEyOnJldHVybiBhLmN1cnJlbnQuaW5zZXJ0KG5bMF0rdCksIiI7ZGVmYXVsdDpyZXR1cm4gdCsoMD09PWY/Ii8qfCovIjoiIil9Y2FzZS0yOnQuc3BsaXQoIi8qfCovfSIpLmZvckVhY2goaSl9fTt0LmE9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciB0LG49ZS5rZXl8fCJjc3MiO3ZvaWQgMCE9PWUucHJlZml4JiYodD17cHJlZml4OmUucHJlZml4fSk7dmFyIGk9bmV3IG8odCk7dmFyIHUsYz17fTt1PWUuY29udGFpbmVyfHxkb2N1bWVudC5oZWFkO3ZhciBsLGY9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic3R5bGVbZGF0YS1lbW90aW9uLSIrbisiXSIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZiwoZnVuY3Rpb24oZSl7ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZW1vdGlvbi0iK24pLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7Y1tlXT0hMH0pKSxlLnBhcmVudE5vZGUhPT11JiZ1LmFwcGVuZENoaWxkKGUpfSkpLGkudXNlKGUuc3R5bGlzUGx1Z2lucykocyksbD1mdW5jdGlvbihlLHQsbixyKXt2YXIgbz10Lm5hbWU7YS5jdXJyZW50PW4saShlLHQuc3R5bGVzKSxyJiYoZC5pbnNlcnRlZFtvXT0hMCl9O3ZhciBkPXtrZXk6bixzaGVldDpuZXcgci5hKHtrZXk6bixjb250YWluZXI6dSxub25jZTplLm5vbmNlLHNwZWVkeTplLnNwZWVkeX0pLG5vbmNlOmUubm9uY2UsaW5zZXJ0ZWQ6YyxyZWdpc3RlcmVkOnt9LGluc2VydDpsfTtyZXR1cm4gZH19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDEzOCksbz1uKDM1KSxpPW4oMTIpKCJ0b1N0cmluZ1RhZyIpLGE9IkFyZ3VtZW50cyI9PW8oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtlLmV4cG9ydHM9cj9vOmZ1bmN0aW9uKGUpe3ZhciB0LG4scjtyZXR1cm4gdm9pZCAwPT09ZT8iVW5kZWZpbmVkIjpudWxsPT09ZT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihuPWZ1bmN0aW9uKGUsdCl7dHJ5e3JldHVybiBlW3RdfWNhdGNoKG4pe319KHQ9T2JqZWN0KGUpLGkpKT9uOmE/byh0KToiT2JqZWN0Ij09KHI9byh0KSkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmNhbGxlZT8iQXJndW1lbnRzIjpyfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDUwKSxvPW4oMjYpLGk9bigxMiksYT1uKDIwKSxzPWkoInNwZWNpZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9cihlKSxuPW8uZjthJiZ0JiYhdFtzXSYmbih0LHMse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE0KSxvPW4oNjgpLGk9bigxMikoInNwZWNpZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixhPXIoZSkuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PWF8fHZvaWQgMD09KG49cihhKVtpXSk/dDpvKG4pfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByLG8saSxhPW4oOCkscz1uKDEwKSx1PW4oMTI5KSxjPW4oMTY5KSxsPW4oOTMpLGY9bigxNzApLGQ9bigxMTYpLHA9YS5sb2NhdGlvbixoPWEuc2V0SW1tZWRpYXRlLHY9YS5jbGVhckltbWVkaWF0ZSxnPWEucHJvY2Vzcyx5PWEuTWVzc2FnZUNoYW5uZWwsbT1hLkRpc3BhdGNoLGI9MCx3PXt9LE89ZnVuY3Rpb24oZSl7aWYody5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIHQ9d1tlXTtkZWxldGUgd1tlXSx0KCl9fSxfPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe08oZSl9fSxFPWZ1bmN0aW9uKGUpe08oZS5kYXRhKX0sQz1mdW5jdGlvbihlKXthLnBvc3RNZXNzYWdlKGUrIiIscC5wcm90b2NvbCsiLy8iK3AuaG9zdCl9O2gmJnZ8fChoPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTE7YXJndW1lbnRzLmxlbmd0aD5uOyl0LnB1c2goYXJndW1lbnRzW24rK10pO3JldHVybiB3WysrYl09ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpGdW5jdGlvbihlKSkuYXBwbHkodm9pZCAwLHQpfSxyKGIpLGJ9LHY9ZnVuY3Rpb24oZSl7ZGVsZXRlIHdbZV19LGQ/cj1mdW5jdGlvbihlKXtnLm5leHRUaWNrKF8oZSkpfTptJiZtLm5vdz9yPWZ1bmN0aW9uKGUpe20ubm93KF8oZSkpfTp5JiYhZj8oaT0obz1uZXcgeSkucG9ydDIsby5wb3J0MS5vbm1lc3NhZ2U9RSxyPXUoaS5wb3N0TWVzc2FnZSxpLDEpKTphLmFkZEV2ZW50TGlzdGVuZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBwb3N0TWVzc2FnZSYmIWEuaW1wb3J0U2NyaXB0cyYmcCYmImZpbGU6IiE9PXAucHJvdG9jb2wmJiFzKEMpPyhyPUMsYS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixFLCExKSk6cj0ib25yZWFkeXN0YXRlY2hhbmdlImluIGwoInNjcmlwdCIpP2Z1bmN0aW9uKGUpe2MuYXBwZW5kQ2hpbGQobCgic2NyaXB0IikpLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2MucmVtb3ZlQ2hpbGQodGhpcyksTyhlKX19OmZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoXyhlKSwwKX0pLGUuZXhwb3J0cz17c2V0OmgsY2xlYXI6dn19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDUwKTtlLmV4cG9ydHM9cigiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNjcpO2UuZXhwb3J0cz0vKGlwaG9uZXxpcG9kfGlwYWQpLiphcHBsZXdlYmtpdC9pLnRlc3Qocil9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big2OCksbz1mdW5jdGlvbihlKXt2YXIgdCxuO3RoaXMucHJvbWlzZT1uZXcgZSgoZnVuY3Rpb24oZSxyKXtpZih2b2lkIDAhPT10fHx2b2lkIDAhPT1uKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTt0PWUsbj1yfSkpLHRoaXMucmVzb2x2ZT1yKHQpLHRoaXMucmVqZWN0PXIobil9O2UuZXhwb3J0cy5mPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgbyhlKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigyMzgpO2Z1bmN0aW9uIG8oKXt9dmFyIGk9bnVsbCxhPXt9O2Z1bmN0aW9uIHMoZSl7aWYoIm9iamVjdCIhPT10eXBlb2YgdGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm9taXNlcyBtdXN0IGJlIGNvbnN0cnVjdGVkIHZpYSBuZXciKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvbWlzZSBjb25zdHJ1Y3RvcidzIGFyZ3VtZW50IGlzIG5vdCBhIGZ1bmN0aW9uIik7dGhpcy5fVT0wLHRoaXMuX1Y9MCx0aGlzLl9XPW51bGwsdGhpcy5fWD1udWxsLGUhPT1vJiZwKGUsdGhpcyl9ZnVuY3Rpb24gdShlLHQpe2Zvcig7Mz09PWUuX1Y7KWU9ZS5fVztpZihzLl9ZJiZzLl9ZKGUpLDA9PT1lLl9WKXJldHVybiAwPT09ZS5fVT8oZS5fVT0xLHZvaWQoZS5fWD10KSk6MT09PWUuX1U/KGUuX1U9Mix2b2lkKGUuX1g9W2UuX1gsdF0pKTp2b2lkIGUuX1gucHVzaCh0KTshZnVuY3Rpb24oZSx0KXtyKChmdW5jdGlvbigpe3ZhciBuPTE9PT1lLl9WP3Qub25GdWxmaWxsZWQ6dC5vblJlamVjdGVkO2lmKG51bGwhPT1uKXt2YXIgcj1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZSh0KX1jYXRjaChuKXtyZXR1cm4gaT1uLGF9fShuLGUuX1cpO3I9PT1hP2wodC5wcm9taXNlLGkpOmModC5wcm9taXNlLHIpfWVsc2UgMT09PWUuX1Y/Yyh0LnByb21pc2UsZS5fVyk6bCh0LnByb21pc2UsZS5fVyl9KSl9KGUsdCl9ZnVuY3Rpb24gYyhlLHQpe2lmKHQ9PT1lKXJldHVybiBsKGUsbmV3IFR5cGVFcnJvcigiQSBwcm9taXNlIGNhbm5vdCBiZSByZXNvbHZlZCB3aXRoIGl0c2VsZi4iKSk7aWYodCYmKCJvYmplY3QiPT09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PT10eXBlb2YgdCkpe3ZhciBuPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gZS50aGVufWNhdGNoKHQpe3JldHVybiBpPXQsYX19KHQpO2lmKG49PT1hKXJldHVybiBsKGUsaSk7aWYobj09PWUudGhlbiYmdCBpbnN0YW5jZW9mIHMpcmV0dXJuIGUuX1Y9MyxlLl9XPXQsdm9pZCBmKGUpO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgbilyZXR1cm4gdm9pZCBwKG4uYmluZCh0KSxlKX1lLl9WPTEsZS5fVz10LGYoZSl9ZnVuY3Rpb24gbChlLHQpe2UuX1Y9MixlLl9XPXQscy5fWiYmcy5fWihlLHQpLGYoZSl9ZnVuY3Rpb24gZihlKXtpZigxPT09ZS5fVSYmKHUoZSxlLl9YKSxlLl9YPW51bGwpLDI9PT1lLl9VKXtmb3IodmFyIHQ9MDt0PGUuX1gubGVuZ3RoO3QrKyl1KGUsZS5fWFt0XSk7ZS5fWD1udWxsfX1mdW5jdGlvbiBkKGUsdCxuKXt0aGlzLm9uRnVsZmlsbGVkPSJmdW5jdGlvbiI9PT10eXBlb2YgZT9lOm51bGwsdGhpcy5vblJlamVjdGVkPSJmdW5jdGlvbiI9PT10eXBlb2YgdD90Om51bGwsdGhpcy5wcm9taXNlPW59ZnVuY3Rpb24gcChlLHQpe3ZhciBuPSExLHI9ZnVuY3Rpb24oZSx0LG4pe3RyeXtlKHQsbil9Y2F0Y2gocil7cmV0dXJuIGk9cixhfX0oZSwoZnVuY3Rpb24oZSl7bnx8KG49ITAsYyh0LGUpKX0pLChmdW5jdGlvbihlKXtufHwobj0hMCxsKHQsZSkpfSkpO258fHIhPT1hfHwobj0hMCxsKHQsaSkpfWUuZXhwb3J0cz1zLHMuX1k9bnVsbCxzLl9aPW51bGwscy5fMD1vLHMucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmNvbnN0cnVjdG9yIT09cylyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcigoZnVuY3Rpb24ocixpKXt2YXIgYT1uZXcgcyhvKTthLnRoZW4ocixpKSx1KGUsbmV3IGQodCxuLGEpKX0pKX0odGhpcyxlLHQpO3ZhciBuPW5ldyBzKG8pO3JldHVybiB1KHRoaXMsbmV3IGQoZSx0LG4pKSxufX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxpPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7ZnVuY3Rpb24gYShlKXtpZihudWxsPT09ZXx8dm9pZCAwPT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCIpO3JldHVybiBPYmplY3QoZSl9ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dHJ5e2lmKCFPYmplY3QuYXNzaWduKXJldHVybiExO3ZhciBlPW5ldyBTdHJpbmcoImFiYyIpO2lmKGVbNV09ImRlIiwiNSI9PT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKVswXSlyZXR1cm4hMTtmb3IodmFyIHQ9e30sbj0wO248MTA7bisrKXRbIl8iK1N0cmluZy5mcm9tQ2hhckNvZGUobildPW47aWYoIjAxMjM0NTY3ODkiIT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKS5qb2luKCIiKSlyZXR1cm4hMTt2YXIgcj17fTtyZXR1cm4iYWJjZGVmZ2hpamtsbW5vcHFyc3QiLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyW2VdPWV9KSksImFiY2RlZmdoaWprbG1ub3BxcnN0Ij09PU9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30scikpLmpvaW4oIiIpfWNhdGNoKG8pe3JldHVybiExfX0oKT9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHMsdT1hKGUpLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXtmb3IodmFyIGwgaW4gbj1PYmplY3QoYXJndW1lbnRzW2NdKSlvLmNhbGwobixsKSYmKHVbbF09bltsXSk7aWYocil7cz1yKG4pO2Zvcih2YXIgZj0wO2Y8cy5sZW5ndGg7ZisrKWkuY2FsbChuLHNbZl0pJiYodVtzW2ZdXT1uW3NbZl1dKX19cmV0dXJuIHV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDY4KSxpPW4oMzMpLGE9bigxMCkscz1uKDkwKSx1PVtdLGM9dS5zb3J0LGw9YSgoZnVuY3Rpb24oKXt1LnNvcnQodm9pZCAwKX0pKSxmPWEoKGZ1bmN0aW9uKCl7dS5zb3J0KG51bGwpfSkpLGQ9cygic29ydCIpO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpsfHwhZnx8IWR9LHtzb3J0OmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP2MuY2FsbChpKHRoaXMpKTpjLmNhbGwoaSh0aGlzKSxvKGUpKX19KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTUpLG89bigxNzYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGksYTtyZXR1cm4gbyYmImZ1bmN0aW9uIj09dHlwZW9mKGk9dC5jb25zdHJ1Y3RvcikmJmkhPT1uJiZyKGE9aS5wcm90b3R5cGUpJiZhIT09bi5wcm90b3R5cGUmJm8oZSxhKSxlfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTQpLG89bigyNTYpO2UuZXhwb3J0cz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgZSx0PSExLG49e307dHJ5eyhlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIikuc2V0KS5jYWxsKG4sW10pLHQ9biBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKGkpe31yZXR1cm4gZnVuY3Rpb24obixpKXtyZXR1cm4gcihuKSxvKGkpLHQ/ZS5jYWxsKG4saSk6bi5fX3Byb3RvX189aSxufX0oKTp2b2lkIDApfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNDIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihyKGUpKXRocm93IFR5cGVFcnJvcigiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zIik7cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxMikoIm1hdGNoIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PS8uLzt0cnl7Ii8uLyJbZV0odCl9Y2F0Y2gobil7dHJ5e3JldHVybiB0W3JdPSExLCIvLi8iW2VdKHQpfWNhdGNoKG8pe319cmV0dXJuITF9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTc5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09PXR5cGVvZiBlKXJldHVybiByKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/cihlLHQpOnZvaWQgMH19fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSx0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoOysrbilpZihlW25dPT09dClyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiByKGUsdCl7dmFyIHI9W10sbz1bXTtyZXR1cm4gbnVsbD09dCYmKHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gclswXT09PXQ/IltDaXJjdWxhciB+XSI6IltDaXJjdWxhciB+LiIrby5zbGljZSgwLG4ocix0KSkuam9pbigiLiIpKyJdIn0pLGZ1bmN0aW9uKGksYSl7aWYoci5sZW5ndGg+MCl7dmFyIHM9bihyLHRoaXMpO35zP3Iuc3BsaWNlKHMrMSk6ci5wdXNoKHRoaXMpLH5zP28uc3BsaWNlKHMsMS8wLGkpOm8ucHVzaChpKSx+bihyLGEpJiYoYT10LmNhbGwodGhpcyxpLGEpKX1lbHNlIHIucHVzaChhKTtyZXR1cm4gbnVsbD09ZT9hIGluc3RhbmNlb2YgRXJyb3I/ZnVuY3Rpb24oZSl7dmFyIHQ9e3N0YWNrOmUuc3RhY2ssbWVzc2FnZTplLm1lc3NhZ2UsbmFtZTplLm5hbWV9O2Zvcih2YXIgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1lW25dKTtyZXR1cm4gdH0oYSk6YTplLmNhbGwodGhpcyxpLGEpfX0oZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLG8pe3JldHVybiBKU09OLnN0cmluZ2lmeShlLHIodCxvKSxuKX0pLmdldFNlcmlhbGl6ZT1yfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDkxKS5maW5kSW5kZXgsaT1uKDExNyksYT1uKDQwKSxzPSEwLHU9YSgiZmluZEluZGV4Iik7ImZpbmRJbmRleCJpbltdJiZBcnJheSgxKS5maW5kSW5kZXgoKGZ1bmN0aW9uKCl7cz0hMX0pKSxyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6c3x8IXV9LHtmaW5kSW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIG8odGhpcyxlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxpKCJmaW5kSW5kZXgiKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDkxKS5mb3JFYWNoLG89big5MCksaT1uKDQwKSxhPW8oImZvckVhY2giKSxzPWkoImZvckVhY2giKTtlLmV4cG9ydHM9YSYmcz9bXS5mb3JFYWNoOmZ1bmN0aW9uKGUpe3JldHVybiByKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz17Q1NTUnVsZUxpc3Q6MCxDU1NTdHlsZURlY2xhcmF0aW9uOjAsQ1NTVmFsdWVMaXN0OjAsQ2xpZW50UmVjdExpc3Q6MCxET01SZWN0TGlzdDowLERPTVN0cmluZ0xpc3Q6MCxET01Ub2tlbkxpc3Q6MSxEYXRhVHJhbnNmZXJJdGVtTGlzdDowLEZpbGVMaXN0OjAsSFRNTEFsbENvbGxlY3Rpb246MCxIVE1MQ29sbGVjdGlvbjowLEhUTUxGb3JtRWxlbWVudDowLEhUTUxTZWxlY3RFbGVtZW50OjAsTWVkaWFMaXN0OjAsTWltZVR5cGVBcnJheTowLE5hbWVkTm9kZU1hcDowLE5vZGVMaXN0OjEsUGFpbnRSZXF1ZXN0TGlzdDowLFBsdWdpbjowLFBsdWdpbkFycmF5OjAsU1ZHTGVuZ3RoTGlzdDowLFNWR051bWJlckxpc3Q6MCxTVkdQYXRoU2VnTGlzdDowLFNWR1BvaW50TGlzdDowLFNWR1N0cmluZ0xpc3Q6MCxTVkdUcmFuc2Zvcm1MaXN0OjAsU291cmNlQnVmZmVyTGlzdDowLFN0eWxlU2hlZXRMaXN0OjAsVGV4dFRyYWNrQ3VlTGlzdDowLFRleHRUcmFja0xpc3Q6MCxUb3VjaExpc3Q6MH19LGZ1bmN0aW9uKGUsdCl7dmFyIG49L14oPzooPyFbXjpAXSs6W146QFwvXSpAKShodHRwfGh0dHBzfHdzfHdzcyk6XC9cLyk/KCg/OigoW146QF0qKSg/OjooW146QF0qKSk/KT9AKT8oKD86W2EtZjAtOV17MCw0fTopezIsN31bYS1mMC05XXswLDR9fFteOlwvPyNdKikoPzo6KFxkKikpPykoKChcLyg/OltePyNdKD8hW14/I1wvXSpcLltePyNcLy5dKyg/Ols/I118JCkpKSpcLz8pPyhbXj8jXC9dKikpKD86XD8oW14jXSopKT8oPzojKC4qKSk/KS8scj1bInNvdXJjZSIsInByb3RvY29sIiwiYXV0aG9yaXR5IiwidXNlckluZm8iLCJ1c2VyIiwicGFzc3dvcmQiLCJob3N0IiwicG9ydCIsInJlbGF0aXZlIiwicGF0aCIsImRpcmVjdG9yeSIsImZpbGUiLCJxdWVyeSIsImFuY2hvciJdO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1lLG89ZS5pbmRleE9mKCJbIiksaT1lLmluZGV4T2YoIl0iKTstMSE9byYmLTEhPWkmJihlPWUuc3Vic3RyaW5nKDAsbykrZS5zdWJzdHJpbmcobyxpKS5yZXBsYWNlKC86L2csIjsiKStlLnN1YnN0cmluZyhpLGUubGVuZ3RoKSk7Zm9yKHZhciBhPW4uZXhlYyhlfHwiIikscz17fSx1PTE0O3UtLTspc1tyW3VdXT1hW3VdfHwiIjtyZXR1cm4tMSE9byYmLTEhPWkmJihzLnNvdXJjZT10LHMuaG9zdD1zLmhvc3Quc3Vic3RyaW5nKDEscy5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csIjoiKSxzLmF1dGhvcml0eT1zLmF1dGhvcml0eS5yZXBsYWNlKCJbIiwiIikucmVwbGFjZSgiXSIsIiIpLnJlcGxhY2UoLzsvZywiOiIpLHMuaXB2NnVyaT0hMCksc319LGZ1bmN0aW9uKGUsdCl7dmFyIG49e30udG9TdHJpbmc7ZS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PW4uY2FsbChlKX19LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24odCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuJiZ0LkJ1ZmZlci5pc0J1ZmZlcihlKXx8ciYmKGUgaW5zdGFuY2VvZiB0LkFycmF5QnVmZmVyfHxvKGUpKX07dmFyIG49ImZ1bmN0aW9uIj09PXR5cGVvZiB0LkJ1ZmZlciYmImZ1bmN0aW9uIj09PXR5cGVvZiB0LkJ1ZmZlci5pc0J1ZmZlcixyPSJmdW5jdGlvbiI9PT10eXBlb2YgdC5BcnJheUJ1ZmZlcixvPXImJiJmdW5jdGlvbiI9PT10eXBlb2YgdC5BcnJheUJ1ZmZlci5pc1ZpZXc/dC5BcnJheUJ1ZmZlci5pc1ZpZXc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYnVmZmVyIGluc3RhbmNlb2YgdC5BcnJheUJ1ZmZlcn19KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyODYpLG89bigxOTQpLGk9big4MCksYT1uKDE0Nikscz1uKDE5NSksdT1uKDE5NiksYz1uKDEyMCkoInNvY2tldC5pby1jbGllbnQ6bWFuYWdlciIpLGw9bigxOTMpLGY9bigzMDcpLGQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBwKGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgcCkpcmV0dXJuIG5ldyBwKGUsdCk7ZSYmIm9iamVjdCI9PT10eXBlb2YgZSYmKHQ9ZSxlPXZvaWQgMCksKHQ9dHx8e30pLnBhdGg9dC5wYXRofHwiL3NvY2tldC5pbyIsdGhpcy5uc3BzPXt9LHRoaXMuc3Vicz1bXSx0aGlzLm9wdHM9dCx0aGlzLnJlY29ubmVjdGlvbighMSE9PXQucmVjb25uZWN0aW9uKSx0aGlzLnJlY29ubmVjdGlvbkF0dGVtcHRzKHQucmVjb25uZWN0aW9uQXR0ZW1wdHN8fDEvMCksdGhpcy5yZWNvbm5lY3Rpb25EZWxheSh0LnJlY29ubmVjdGlvbkRlbGF5fHwxZTMpLHRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgodC5yZWNvbm5lY3Rpb25EZWxheU1heHx8NWUzKSx0aGlzLnJhbmRvbWl6YXRpb25GYWN0b3IodC5yYW5kb21pemF0aW9uRmFjdG9yfHwuNSksdGhpcy5iYWNrb2ZmPW5ldyBmKHttaW46dGhpcy5yZWNvbm5lY3Rpb25EZWxheSgpLG1heDp0aGlzLnJlY29ubmVjdGlvbkRlbGF5TWF4KCksaml0dGVyOnRoaXMucmFuZG9taXphdGlvbkZhY3RvcigpfSksdGhpcy50aW1lb3V0KG51bGw9PXQudGltZW91dD8yZTQ6dC50aW1lb3V0KSx0aGlzLnJlYWR5U3RhdGU9ImNsb3NlZCIsdGhpcy51cmk9ZSx0aGlzLmNvbm5lY3Rpbmc9W10sdGhpcy5sYXN0UGluZz1udWxsLHRoaXMuZW5jb2Rpbmc9ITEsdGhpcy5wYWNrZXRCdWZmZXI9W107dmFyIG49dC5wYXJzZXJ8fGE7dGhpcy5lbmNvZGVyPW5ldyBuLkVuY29kZXIsdGhpcy5kZWNvZGVyPW5ldyBuLkRlY29kZXIsdGhpcy5hdXRvQ29ubmVjdD0hMSE9PXQuYXV0b0Nvbm5lY3QsdGhpcy5hdXRvQ29ubmVjdCYmdGhpcy5vcGVuKCl9ZS5leHBvcnRzPXAscC5wcm90b3R5cGUuZW1pdEFsbD1mdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0aGlzLmVtaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubnNwcylkLmNhbGwodGhpcy5uc3BzLGUpJiZ0aGlzLm5zcHNbZV0uZW1pdC5hcHBseSh0aGlzLm5zcHNbZV0sYXJndW1lbnRzKX0scC5wcm90b3R5cGUudXBkYXRlU29ja2V0SWRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMubnNwcylkLmNhbGwodGhpcy5uc3BzLGUpJiYodGhpcy5uc3BzW2VdLmlkPXRoaXMuZ2VuZXJhdGVJZChlKSl9LHAucHJvdG90eXBlLmdlbmVyYXRlSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuKCIvIj09PWU/IiI6ZSsiIyIpK3RoaXMuZW5naW5lLmlkfSxpKHAucHJvdG90eXBlKSxwLnByb3RvdHlwZS5yZWNvbm5lY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JlY29ubmVjdGlvbj0hIWUsdGhpcyk6dGhpcy5fcmVjb25uZWN0aW9ufSxwLnByb3RvdHlwZS5yZWNvbm5lY3Rpb25BdHRlbXB0cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHM9ZSx0aGlzKTp0aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0c30scC5wcm90b3R5cGUucmVjb25uZWN0aW9uRGVsYXk9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5PWUsdGhpcy5iYWNrb2ZmJiZ0aGlzLmJhY2tvZmYuc2V0TWluKGUpLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkRlbGF5fSxwLnByb3RvdHlwZS5yYW5kb21pemF0aW9uRmFjdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9yYW5kb21pemF0aW9uRmFjdG9yPWUsdGhpcy5iYWNrb2ZmJiZ0aGlzLmJhY2tvZmYuc2V0Sml0dGVyKGUpLHRoaXMpOnRoaXMuX3JhbmRvbWl6YXRpb25GYWN0b3J9LHAucHJvdG90eXBlLnJlY29ubmVjdGlvbkRlbGF5TWF4PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9yZWNvbm5lY3Rpb25EZWxheU1heD1lLHRoaXMuYmFja29mZiYmdGhpcy5iYWNrb2ZmLnNldE1heChlKSx0aGlzKTp0aGlzLl9yZWNvbm5lY3Rpb25EZWxheU1heH0scC5wcm90b3R5cGUudGltZW91dD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fdGltZW91dD1lLHRoaXMpOnRoaXMuX3RpbWVvdXR9LHAucHJvdG90eXBlLm1heWJlUmVjb25uZWN0T25PcGVuPWZ1bmN0aW9uKCl7IXRoaXMucmVjb25uZWN0aW5nJiZ0aGlzLl9yZWNvbm5lY3Rpb24mJjA9PT10aGlzLmJhY2tvZmYuYXR0ZW1wdHMmJnRoaXMucmVjb25uZWN0KCl9LHAucHJvdG90eXBlLm9wZW49cC5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbihlLHQpe2lmKGMoInJlYWR5U3RhdGUgJXMiLHRoaXMucmVhZHlTdGF0ZSksfnRoaXMucmVhZHlTdGF0ZS5pbmRleE9mKCJvcGVuIikpcmV0dXJuIHRoaXM7Yygib3BlbmluZyAlcyIsdGhpcy51cmkpLHRoaXMuZW5naW5lPXIodGhpcy51cmksdGhpcy5vcHRzKTt2YXIgbj10aGlzLmVuZ2luZSxvPXRoaXM7dGhpcy5yZWFkeVN0YXRlPSJvcGVuaW5nIix0aGlzLnNraXBSZWNvbm5lY3Q9ITE7dmFyIGk9cyhuLCJvcGVuIiwoZnVuY3Rpb24oKXtvLm9ub3BlbigpLGUmJmUoKX0pKSxhPXMobiwiZXJyb3IiLChmdW5jdGlvbih0KXtpZihjKCJjb25uZWN0X2Vycm9yIiksby5jbGVhbnVwKCksby5yZWFkeVN0YXRlPSJjbG9zZWQiLG8uZW1pdEFsbCgiY29ubmVjdF9lcnJvciIsdCksZSl7dmFyIG49bmV3IEVycm9yKCJDb25uZWN0aW9uIGVycm9yIik7bi5kYXRhPXQsZShuKX1lbHNlIG8ubWF5YmVSZWNvbm5lY3RPbk9wZW4oKX0pKTtpZighMSE9PXRoaXMuX3RpbWVvdXQpe3ZhciB1PXRoaXMuX3RpbWVvdXQ7YygiY29ubmVjdCBhdHRlbXB0IHdpbGwgdGltZW91dCBhZnRlciAlZCIsdSk7dmFyIGw9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtjKCJjb25uZWN0IGF0dGVtcHQgdGltZWQgb3V0IGFmdGVyICVkIix1KSxpLmRlc3Ryb3koKSxuLmNsb3NlKCksbi5lbWl0KCJlcnJvciIsInRpbWVvdXQiKSxvLmVtaXRBbGwoImNvbm5lY3RfdGltZW91dCIsdSl9KSx1KTt0aGlzLnN1YnMucHVzaCh7ZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dChsKX19KX1yZXR1cm4gdGhpcy5zdWJzLnB1c2goaSksdGhpcy5zdWJzLnB1c2goYSksdGhpc30scC5wcm90b3R5cGUub25vcGVuPWZ1bmN0aW9uKCl7Yygib3BlbiIpLHRoaXMuY2xlYW51cCgpLHRoaXMucmVhZHlTdGF0ZT0ib3BlbiIsdGhpcy5lbWl0KCJvcGVuIik7dmFyIGU9dGhpcy5lbmdpbmU7dGhpcy5zdWJzLnB1c2gocyhlLCJkYXRhIix1KHRoaXMsIm9uZGF0YSIpKSksdGhpcy5zdWJzLnB1c2gocyhlLCJwaW5nIix1KHRoaXMsIm9ucGluZyIpKSksdGhpcy5zdWJzLnB1c2gocyhlLCJwb25nIix1KHRoaXMsIm9ucG9uZyIpKSksdGhpcy5zdWJzLnB1c2gocyhlLCJlcnJvciIsdSh0aGlzLCJvbmVycm9yIikpKSx0aGlzLnN1YnMucHVzaChzKGUsImNsb3NlIix1KHRoaXMsIm9uY2xvc2UiKSkpLHRoaXMuc3Vicy5wdXNoKHModGhpcy5kZWNvZGVyLCJkZWNvZGVkIix1KHRoaXMsIm9uZGVjb2RlZCIpKSl9LHAucHJvdG90eXBlLm9ucGluZz1mdW5jdGlvbigpe3RoaXMubGFzdFBpbmc9bmV3IERhdGUsdGhpcy5lbWl0QWxsKCJwaW5nIil9LHAucHJvdG90eXBlLm9ucG9uZz1mdW5jdGlvbigpe3RoaXMuZW1pdEFsbCgicG9uZyIsbmV3IERhdGUtdGhpcy5sYXN0UGluZyl9LHAucHJvdG90eXBlLm9uZGF0YT1mdW5jdGlvbihlKXt0aGlzLmRlY29kZXIuYWRkKGUpfSxwLnByb3RvdHlwZS5vbmRlY29kZWQ9ZnVuY3Rpb24oZSl7dGhpcy5lbWl0KCJwYWNrZXQiLGUpfSxwLnByb3RvdHlwZS5vbmVycm9yPWZ1bmN0aW9uKGUpe2MoImVycm9yIixlKSx0aGlzLmVtaXRBbGwoImVycm9yIixlKX0scC5wcm90b3R5cGUuc29ja2V0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5uc3BzW2VdO2lmKCFuKXtuPW5ldyBvKHRoaXMsZSx0KSx0aGlzLm5zcHNbZV09bjt2YXIgcj10aGlzO24ub24oImNvbm5lY3RpbmciLGkpLG4ub24oImNvbm5lY3QiLChmdW5jdGlvbigpe24uaWQ9ci5nZW5lcmF0ZUlkKGUpfSkpLHRoaXMuYXV0b0Nvbm5lY3QmJmkoKX1mdW5jdGlvbiBpKCl7fmwoci5jb25uZWN0aW5nLG4pfHxyLmNvbm5lY3RpbmcucHVzaChuKX1yZXR1cm4gbn0scC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbihlKXt2YXIgdD1sKHRoaXMuY29ubmVjdGluZyxlKTt+dCYmdGhpcy5jb25uZWN0aW5nLnNwbGljZSh0LDEpLHRoaXMuY29ubmVjdGluZy5sZW5ndGh8fHRoaXMuY2xvc2UoKX0scC5wcm90b3R5cGUucGFja2V0PWZ1bmN0aW9uKGUpe2MoIndyaXRpbmcgcGFja2V0ICVqIixlKTt2YXIgdD10aGlzO2UucXVlcnkmJjA9PT1lLnR5cGUmJihlLm5zcCs9Ij8iK2UucXVlcnkpLHQuZW5jb2Rpbmc/dC5wYWNrZXRCdWZmZXIucHVzaChlKToodC5lbmNvZGluZz0hMCx0aGlzLmVuY29kZXIuZW5jb2RlKGUsKGZ1bmN0aW9uKG4pe2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXQuZW5naW5lLndyaXRlKG5bcl0sZS5vcHRpb25zKTt0LmVuY29kaW5nPSExLHQucHJvY2Vzc1BhY2tldFF1ZXVlKCl9KSkpfSxwLnByb3RvdHlwZS5wcm9jZXNzUGFja2V0UXVldWU9ZnVuY3Rpb24oKXtpZih0aGlzLnBhY2tldEJ1ZmZlci5sZW5ndGg+MCYmIXRoaXMuZW5jb2Rpbmcpe3ZhciBlPXRoaXMucGFja2V0QnVmZmVyLnNoaWZ0KCk7dGhpcy5wYWNrZXQoZSl9fSxwLnByb3RvdHlwZS5jbGVhbnVwPWZ1bmN0aW9uKCl7YygiY2xlYW51cCIpO2Zvcih2YXIgZT10aGlzLnN1YnMubGVuZ3RoLHQ9MDt0PGU7dCsrKXt0aGlzLnN1YnMuc2hpZnQoKS5kZXN0cm95KCl9dGhpcy5wYWNrZXRCdWZmZXI9W10sdGhpcy5lbmNvZGluZz0hMSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5kZWNvZGVyLmRlc3Ryb3koKX0scC5wcm90b3R5cGUuY2xvc2U9cC5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe2MoImRpc2Nvbm5lY3QiKSx0aGlzLnNraXBSZWNvbm5lY3Q9ITAsdGhpcy5yZWNvbm5lY3Rpbmc9ITEsIm9wZW5pbmciPT09dGhpcy5yZWFkeVN0YXRlJiZ0aGlzLmNsZWFudXAoKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLnJlYWR5U3RhdGU9ImNsb3NlZCIsdGhpcy5lbmdpbmUmJnRoaXMuZW5naW5lLmNsb3NlKCl9LHAucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7Yygib25jbG9zZSIpLHRoaXMuY2xlYW51cCgpLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMucmVhZHlTdGF0ZT0iY2xvc2VkIix0aGlzLmVtaXQoImNsb3NlIixlKSx0aGlzLl9yZWNvbm5lY3Rpb24mJiF0aGlzLnNraXBSZWNvbm5lY3QmJnRoaXMucmVjb25uZWN0KCl9LHAucHJvdG90eXBlLnJlY29ubmVjdD1mdW5jdGlvbigpe2lmKHRoaXMucmVjb25uZWN0aW5nfHx0aGlzLnNraXBSZWNvbm5lY3QpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcztpZih0aGlzLmJhY2tvZmYuYXR0ZW1wdHM+PXRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzKWMoInJlY29ubmVjdCBmYWlsZWQiKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLmVtaXRBbGwoInJlY29ubmVjdF9mYWlsZWQiKSx0aGlzLnJlY29ubmVjdGluZz0hMTtlbHNle3ZhciB0PXRoaXMuYmFja29mZi5kdXJhdGlvbigpO2MoIndpbGwgd2FpdCAlZG1zIGJlZm9yZSByZWNvbm5lY3QgYXR0ZW1wdCIsdCksdGhpcy5yZWNvbm5lY3Rpbmc9ITA7dmFyIG49c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLnNraXBSZWNvbm5lY3R8fChjKCJhdHRlbXB0aW5nIHJlY29ubmVjdCIpLGUuZW1pdEFsbCgicmVjb25uZWN0X2F0dGVtcHQiLGUuYmFja29mZi5hdHRlbXB0cyksZS5lbWl0QWxsKCJyZWNvbm5lY3RpbmciLGUuYmFja29mZi5hdHRlbXB0cyksZS5za2lwUmVjb25uZWN0fHxlLm9wZW4oKGZ1bmN0aW9uKHQpe3Q/KGMoInJlY29ubmVjdCBhdHRlbXB0IGVycm9yIiksZS5yZWNvbm5lY3Rpbmc9ITEsZS5yZWNvbm5lY3QoKSxlLmVtaXRBbGwoInJlY29ubmVjdF9lcnJvciIsdC5kYXRhKSk6KGMoInJlY29ubmVjdCBzdWNjZXNzIiksZS5vbnJlY29ubmVjdCgpKX0pKSl9KSx0KTt0aGlzLnN1YnMucHVzaCh7ZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dChuKX19KX19LHAucHJvdG90eXBlLm9ucmVjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iYWNrb2ZmLmF0dGVtcHRzO3RoaXMucmVjb25uZWN0aW5nPSExLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMudXBkYXRlU29ja2V0SWRzKCksdGhpcy5lbWl0QWxsKCJyZWNvbm5lY3QiLGUpfX0sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbihlKXt2YXIgcj1uKDE0Nyksbz1uKDI4OSksaT1uKDMwMyksYT1uKDMwNCk7dC5wb2xsaW5nPWZ1bmN0aW9uKHQpe3ZhciBuPSExLGE9ITEscz0hMSE9PXQuanNvbnA7aWYoZS5sb2NhdGlvbil7dmFyIHU9Imh0dHBzOiI9PT1sb2NhdGlvbi5wcm90b2NvbCxjPWxvY2F0aW9uLnBvcnQ7Y3x8KGM9dT80NDM6ODApLG49dC5ob3N0bmFtZSE9PWxvY2F0aW9uLmhvc3RuYW1lfHxjIT09dC5wb3J0LGE9dC5zZWN1cmUhPT11fWlmKHQueGRvbWFpbj1uLHQueHNjaGVtZT1hLCJvcGVuImluIG5ldyByKHQpJiYhdC5mb3JjZUpTT05QKXJldHVybiBuZXcgbyh0KTtpZighcyl0aHJvdyBuZXcgRXJyb3IoIkpTT05QIGRpc2FibGVkIik7cmV0dXJuIG5ldyBpKHQpfSx0LndlYnNvY2tldD1hfSkuY2FsbCh0aGlzLG4oMTMpKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTQ4KSxvPW4oMTIxKSxpPW4oODEpLGE9bigxMjIpLHM9bigxOTIpLHU9bigxMjMpKCJlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmciKTtlLmV4cG9ydHM9bDt2YXIgYz1udWxsIT1uZXcobigxNDcpKSh7eGRvbWFpbjohMX0pLnJlc3BvbnNlVHlwZTtmdW5jdGlvbiBsKGUpe3ZhciB0PWUmJmUuZm9yY2VCYXNlNjQ7YyYmIXR8fCh0aGlzLnN1cHBvcnRzQmluYXJ5PSExKSxyLmNhbGwodGhpcyxlKX1hKGwsciksbC5wcm90b3R5cGUubmFtZT0icG9sbGluZyIsbC5wcm90b3R5cGUuZG9PcGVuPWZ1bmN0aW9uKCl7dGhpcy5wb2xsKCl9LGwucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7ZnVuY3Rpb24gbigpe3UoInBhdXNlZCIpLHQucmVhZHlTdGF0ZT0icGF1c2VkIixlKCl9aWYodGhpcy5yZWFkeVN0YXRlPSJwYXVzaW5nIix0aGlzLnBvbGxpbmd8fCF0aGlzLndyaXRhYmxlKXt2YXIgcj0wO3RoaXMucG9sbGluZyYmKHUoIndlIGFyZSBjdXJyZW50bHkgcG9sbGluZyAtIHdhaXRpbmcgdG8gcGF1c2UiKSxyKyssdGhpcy5vbmNlKCJwb2xsQ29tcGxldGUiLChmdW5jdGlvbigpe3UoInByZS1wYXVzZSBwb2xsaW5nIGNvbXBsZXRlIiksLS1yfHxuKCl9KSkpLHRoaXMud3JpdGFibGV8fCh1KCJ3ZSBhcmUgY3VycmVudGx5IHdyaXRpbmcgLSB3YWl0aW5nIHRvIHBhdXNlIikscisrLHRoaXMub25jZSgiZHJhaW4iLChmdW5jdGlvbigpe3UoInByZS1wYXVzZSB3cml0aW5nIGNvbXBsZXRlIiksLS1yfHxuKCl9KSkpfWVsc2UgbigpfSxsLnByb3RvdHlwZS5wb2xsPWZ1bmN0aW9uKCl7dSgicG9sbGluZyIpLHRoaXMucG9sbGluZz0hMCx0aGlzLmRvUG9sbCgpLHRoaXMuZW1pdCgicG9sbCIpfSxsLnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt1KCJwb2xsaW5nIGdvdCBkYXRhICVzIixlKTtpLmRlY29kZVBheWxvYWQoZSx0aGlzLnNvY2tldC5iaW5hcnlUeXBlLChmdW5jdGlvbihlLG4scil7aWYoIm9wZW5pbmciPT09dC5yZWFkeVN0YXRlJiZ0Lm9uT3BlbigpLCJjbG9zZSI9PT1lLnR5cGUpcmV0dXJuIHQub25DbG9zZSgpLCExO3Qub25QYWNrZXQoZSl9KSksImNsb3NlZCIhPT10aGlzLnJlYWR5U3RhdGUmJih0aGlzLnBvbGxpbmc9ITEsdGhpcy5lbWl0KCJwb2xsQ29tcGxldGUiKSwib3BlbiI9PT10aGlzLnJlYWR5U3RhdGU/dGhpcy5wb2xsKCk6dSgnaWdub3JpbmcgcG9sbCAtIHRyYW5zcG9ydCBzdGF0ZSAiJXMiJyx0aGlzLnJlYWR5U3RhdGUpKX0sbC5wcm90b3R5cGUuZG9DbG9zZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7ZnVuY3Rpb24gdCgpe3UoIndyaXRpbmcgY2xvc2UgcGFja2V0IiksZS53cml0ZShbe3R5cGU6ImNsb3NlIn1dKX0ib3BlbiI9PT10aGlzLnJlYWR5U3RhdGU/KHUoInRyYW5zcG9ydCBvcGVuIC0gY2xvc2luZyIpLHQoKSk6KHUoInRyYW5zcG9ydCBub3Qgb3BlbiAtIGRlZmVycmluZyBjbG9zZSIpLHRoaXMub25jZSgib3BlbiIsdCkpfSxsLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMud3JpdGFibGU9ITE7dmFyIG49ZnVuY3Rpb24oKXt0LndyaXRhYmxlPSEwLHQuZW1pdCgiZHJhaW4iKX07aS5lbmNvZGVQYXlsb2FkKGUsdGhpcy5zdXBwb3J0c0JpbmFyeSwoZnVuY3Rpb24oZSl7dC5kb1dyaXRlKGUsbil9KSl9LGwucHJvdG90eXBlLnVyaT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucXVlcnl8fHt9LHQ9dGhpcy5zZWN1cmU/Imh0dHBzIjoiaHR0cCIsbj0iIjtyZXR1cm4hMSE9PXRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPXMoKSksdGhpcy5zdXBwb3J0c0JpbmFyeXx8ZS5zaWR8fChlLmI2ND0xKSxlPW8uZW5jb2RlKGUpLHRoaXMucG9ydCYmKCJodHRwcyI9PT10JiY0NDMhPT1OdW1iZXIodGhpcy5wb3J0KXx8Imh0dHAiPT09dCYmODAhPT1OdW1iZXIodGhpcy5wb3J0KSkmJihuPSI6Iit0aGlzLnBvcnQpLGUubGVuZ3RoJiYoZT0iPyIrZSksdCsiOi8vIisoLTEhPT10aGlzLmhvc3RuYW1lLmluZGV4T2YoIjoiKT8iWyIrdGhpcy5ob3N0bmFtZSsiXSI6dGhpcy5ob3N0bmFtZSkrbit0aGlzLnBhdGgrZX19LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24odCl7dmFyIHI9bigyOTUpLG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxpPSJmdW5jdGlvbiI9PT10eXBlb2YgQmxvYnx8InVuZGVmaW5lZCIhPT10eXBlb2YgQmxvYiYmIltvYmplY3QgQmxvYkNvbnN0cnVjdG9yXSI9PT1vLmNhbGwoQmxvYiksYT0iZnVuY3Rpb24iPT09dHlwZW9mIEZpbGV8fCJ1bmRlZmluZWQiIT09dHlwZW9mIEZpbGUmJiJbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl0iPT09by5jYWxsKEZpbGUpO2UuZXhwb3J0cz1mdW5jdGlvbiBlKG4pe2lmKCFufHwib2JqZWN0IiE9PXR5cGVvZiBuKXJldHVybiExO2lmKHIobikpe2Zvcih2YXIgbz0wLHM9bi5sZW5ndGg7bzxzO28rKylpZihlKG5bb10pKXJldHVybiEwO3JldHVybiExfWlmKCJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdC5pc0J1ZmZlciYmdC5pc0J1ZmZlcihuKXx8ImZ1bmN0aW9uIj09PXR5cGVvZiBBcnJheUJ1ZmZlciYmbiBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxpJiZuIGluc3RhbmNlb2YgQmxvYnx8YSYmbiBpbnN0YW5jZW9mIEZpbGUpcmV0dXJuITA7aWYobi50b0pTT04mJiJmdW5jdGlvbiI9PT10eXBlb2Ygbi50b0pTT04mJjE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiBlKG4udG9KU09OKCksITApO2Zvcih2YXIgdSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHUpJiZlKG5bdV0pKXJldHVybiEwO3JldHVybiExfX0pLmNhbGwodGhpcyxuKDI5MSkuQnVmZmVyKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixvPSIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fIi5zcGxpdCgiIiksaT17fSxhPTAscz0wO2Z1bmN0aW9uIHUoZSl7dmFyIHQ9IiI7ZG97dD1vW2UlNjRdK3QsZT1NYXRoLmZsb29yKGUvNjQpfXdoaWxlKGU+MCk7cmV0dXJuIHR9ZnVuY3Rpb24gYygpe3ZhciBlPXUoK25ldyBEYXRlKTtyZXR1cm4gZSE9PXI/KGE9MCxyPWUpOmUrIi4iK3UoYSsrKX1mb3IoO3M8NjQ7cysrKWlbb1tzXV09cztjLmVuY29kZT11LGMuZGVjb2RlPWZ1bmN0aW9uKGUpe3ZhciB0PTA7Zm9yKHM9MDtzPGUubGVuZ3RoO3MrKyl0PTY0KnQraVtlLmNoYXJBdChzKV07cmV0dXJuIHR9LGUuZXhwb3J0cz1jfSxmdW5jdGlvbihlLHQpe3ZhciBuPVtdLmluZGV4T2Y7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYobilyZXR1cm4gZS5pbmRleE9mKHQpO2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7KytyKWlmKGVbcl09PT10KXJldHVybiByO3JldHVybi0xfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTQ2KSxvPW4oODApLGk9bigzMDYpLGE9bigxOTUpLHM9bigxOTYpLHU9bigxMjApKCJzb2NrZXQuaW8tY2xpZW50OnNvY2tldCIpLGM9bigxMjEpLGw9bigxOTEpO2UuZXhwb3J0cz1wO3ZhciBmPXtjb25uZWN0OjEsY29ubmVjdF9lcnJvcjoxLGNvbm5lY3RfdGltZW91dDoxLGNvbm5lY3Rpbmc6MSxkaXNjb25uZWN0OjEsZXJyb3I6MSxyZWNvbm5lY3Q6MSxyZWNvbm5lY3RfYXR0ZW1wdDoxLHJlY29ubmVjdF9mYWlsZWQ6MSxyZWNvbm5lY3RfZXJyb3I6MSxyZWNvbm5lY3Rpbmc6MSxwaW5nOjEscG9uZzoxfSxkPW8ucHJvdG90eXBlLmVtaXQ7ZnVuY3Rpb24gcChlLHQsbil7dGhpcy5pbz1lLHRoaXMubnNwPXQsdGhpcy5qc29uPXRoaXMsdGhpcy5pZHM9MCx0aGlzLmFja3M9e30sdGhpcy5yZWNlaXZlQnVmZmVyPVtdLHRoaXMuc2VuZEJ1ZmZlcj1bXSx0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLmRpc2Nvbm5lY3RlZD0hMCx0aGlzLmZsYWdzPXt9LG4mJm4ucXVlcnkmJih0aGlzLnF1ZXJ5PW4ucXVlcnkpLHRoaXMuaW8uYXV0b0Nvbm5lY3QmJnRoaXMub3BlbigpfW8ocC5wcm90b3R5cGUpLHAucHJvdG90eXBlLnN1YkV2ZW50cz1mdW5jdGlvbigpe2lmKCF0aGlzLnN1YnMpe3ZhciBlPXRoaXMuaW87dGhpcy5zdWJzPVthKGUsIm9wZW4iLHModGhpcywib25vcGVuIikpLGEoZSwicGFja2V0IixzKHRoaXMsIm9ucGFja2V0IikpLGEoZSwiY2xvc2UiLHModGhpcywib25jbG9zZSIpKV19fSxwLnByb3RvdHlwZS5vcGVuPXAucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWR8fCh0aGlzLnN1YkV2ZW50cygpLHRoaXMuaW8ub3BlbigpLCJvcGVuIj09PXRoaXMuaW8ucmVhZHlTdGF0ZSYmdGhpcy5vbm9wZW4oKSx0aGlzLmVtaXQoImNvbm5lY3RpbmciKSksdGhpc30scC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbigpe3ZhciBlPWkoYXJndW1lbnRzKTtyZXR1cm4gZS51bnNoaWZ0KCJtZXNzYWdlIiksdGhpcy5lbWl0LmFwcGx5KHRoaXMsZSksdGhpc30scC5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihlKXtpZihmLmhhc093blByb3BlcnR5KGUpKXJldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzO3ZhciB0PWkoYXJndW1lbnRzKSxuPXt0eXBlOih2b2lkIDAhPT10aGlzLmZsYWdzLmJpbmFyeT90aGlzLmZsYWdzLmJpbmFyeTpsKHQpKT9yLkJJTkFSWV9FVkVOVDpyLkVWRU5ULGRhdGE6dCxvcHRpb25zOnt9fTtyZXR1cm4gbi5vcHRpb25zLmNvbXByZXNzPSF0aGlzLmZsYWdzfHwhMSE9PXRoaXMuZmxhZ3MuY29tcHJlc3MsImZ1bmN0aW9uIj09PXR5cGVvZiB0W3QubGVuZ3RoLTFdJiYodSgiZW1pdHRpbmcgcGFja2V0IHdpdGggYWNrIGlkICVkIix0aGlzLmlkcyksdGhpcy5hY2tzW3RoaXMuaWRzXT10LnBvcCgpLG4uaWQ9dGhpcy5pZHMrKyksdGhpcy5jb25uZWN0ZWQ/dGhpcy5wYWNrZXQobik6dGhpcy5zZW5kQnVmZmVyLnB1c2gobiksdGhpcy5mbGFncz17fSx0aGlzfSxwLnByb3RvdHlwZS5wYWNrZXQ9ZnVuY3Rpb24oZSl7ZS5uc3A9dGhpcy5uc3AsdGhpcy5pby5wYWNrZXQoZSl9LHAucHJvdG90eXBlLm9ub3Blbj1mdW5jdGlvbigpe2lmKHUoInRyYW5zcG9ydCBpcyBvcGVuIC0gY29ubmVjdGluZyIpLCIvIiE9PXRoaXMubnNwKWlmKHRoaXMucXVlcnkpe3ZhciBlPSJvYmplY3QiPT09dHlwZW9mIHRoaXMucXVlcnk/Yy5lbmNvZGUodGhpcy5xdWVyeSk6dGhpcy5xdWVyeTt1KCJzZW5kaW5nIGNvbm5lY3QgcGFja2V0IHdpdGggcXVlcnkgJXMiLGUpLHRoaXMucGFja2V0KHt0eXBlOnIuQ09OTkVDVCxxdWVyeTplfSl9ZWxzZSB0aGlzLnBhY2tldCh7dHlwZTpyLkNPTk5FQ1R9KX0scC5wcm90b3R5cGUub25jbG9zZT1mdW5jdGlvbihlKXt1KCJjbG9zZSAoJXMpIixlKSx0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLmRpc2Nvbm5lY3RlZD0hMCxkZWxldGUgdGhpcy5pZCx0aGlzLmVtaXQoImRpc2Nvbm5lY3QiLGUpfSxwLnByb3RvdHlwZS5vbnBhY2tldD1mdW5jdGlvbihlKXt2YXIgdD1lLm5zcD09PXRoaXMubnNwLG49ZS50eXBlPT09ci5FUlJPUiYmIi8iPT09ZS5uc3A7aWYodHx8bilzd2l0Y2goZS50eXBlKXtjYXNlIHIuQ09OTkVDVDp0aGlzLm9uY29ubmVjdCgpO2JyZWFrO2Nhc2Ugci5FVkVOVDpjYXNlIHIuQklOQVJZX0VWRU5UOnRoaXMub25ldmVudChlKTticmVhaztjYXNlIHIuQUNLOmNhc2Ugci5CSU5BUllfQUNLOnRoaXMub25hY2soZSk7YnJlYWs7Y2FzZSByLkRJU0NPTk5FQ1Q6dGhpcy5vbmRpc2Nvbm5lY3QoKTticmVhaztjYXNlIHIuRVJST1I6dGhpcy5lbWl0KCJlcnJvciIsZS5kYXRhKX19LHAucHJvdG90eXBlLm9uZXZlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhfHxbXTt1KCJlbWl0dGluZyBldmVudCAlaiIsdCksbnVsbCE9ZS5pZCYmKHUoImF0dGFjaGluZyBhY2sgY2FsbGJhY2sgdG8gZXZlbnQiKSx0LnB1c2godGhpcy5hY2soZS5pZCkpKSx0aGlzLmNvbm5lY3RlZD9kLmFwcGx5KHRoaXMsdCk6dGhpcy5yZWNlaXZlQnVmZmVyLnB1c2godCl9LHAucHJvdG90eXBlLmFjaz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLG49ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIW4pe249ITA7dmFyIG89aShhcmd1bWVudHMpO3UoInNlbmRpbmcgYWNrICVqIixvKSx0LnBhY2tldCh7dHlwZTpsKG8pP3IuQklOQVJZX0FDSzpyLkFDSyxpZDplLGRhdGE6b30pfX19LHAucHJvdG90eXBlLm9uYWNrPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWNrc1tlLmlkXTsiZnVuY3Rpb24iPT09dHlwZW9mIHQ/KHUoImNhbGxpbmcgYWNrICVzIHdpdGggJWoiLGUuaWQsZS5kYXRhKSx0LmFwcGx5KHRoaXMsZS5kYXRhKSxkZWxldGUgdGhpcy5hY2tzW2UuaWRdKTp1KCJiYWQgYWNrICVzIixlLmlkKX0scC5wcm90b3R5cGUub25jb25uZWN0PWZ1bmN0aW9uKCl7dGhpcy5jb25uZWN0ZWQ9ITAsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KCJjb25uZWN0IiksdGhpcy5lbWl0QnVmZmVyZWQoKX0scC5wcm90b3R5cGUuZW1pdEJ1ZmZlcmVkPWZ1bmN0aW9uKCl7dmFyIGU7Zm9yKGU9MDtlPHRoaXMucmVjZWl2ZUJ1ZmZlci5sZW5ndGg7ZSsrKWQuYXBwbHkodGhpcyx0aGlzLnJlY2VpdmVCdWZmZXJbZV0pO2Zvcih0aGlzLnJlY2VpdmVCdWZmZXI9W10sZT0wO2U8dGhpcy5zZW5kQnVmZmVyLmxlbmd0aDtlKyspdGhpcy5wYWNrZXQodGhpcy5zZW5kQnVmZmVyW2VdKTt0aGlzLnNlbmRCdWZmZXI9W119LHAucHJvdG90eXBlLm9uZGlzY29ubmVjdD1mdW5jdGlvbigpe3UoInNlcnZlciBkaXNjb25uZWN0ICglcykiLHRoaXMubnNwKSx0aGlzLmRlc3Ryb3koKSx0aGlzLm9uY2xvc2UoImlvIHNlcnZlciBkaXNjb25uZWN0Iil9LHAucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtpZih0aGlzLnN1YnMpe2Zvcih2YXIgZT0wO2U8dGhpcy5zdWJzLmxlbmd0aDtlKyspdGhpcy5zdWJzW2VdLmRlc3Ryb3koKTt0aGlzLnN1YnM9bnVsbH10aGlzLmlvLmRlc3Ryb3kodGhpcyl9LHAucHJvdG90eXBlLmNsb3NlPXAucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWQmJih1KCJwZXJmb3JtaW5nIGRpc2Nvbm5lY3QgKCVzKSIsdGhpcy5uc3ApLHRoaXMucGFja2V0KHt0eXBlOnIuRElTQ09OTkVDVH0pKSx0aGlzLmRlc3Ryb3koKSx0aGlzLmNvbm5lY3RlZCYmdGhpcy5vbmNsb3NlKCJpbyBjbGllbnQgZGlzY29ubmVjdCIpLHRoaXN9LHAucHJvdG90eXBlLmNvbXByZXNzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZsYWdzLmNvbXByZXNzPWUsdGhpc30scC5wcm90b3R5cGUuYmluYXJ5PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZsYWdzLmJpbmFyeT1lLHRoaXN9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUub24odCxuKSx7ZGVzdHJveTpmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIodCxuKX19fX0sZnVuY3Rpb24oZSx0KXt2YXIgbj1bXS5zbGljZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJih0PWVbdF0pLCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiYmluZCgpIHJlcXVpcmVzIGEgZnVuY3Rpb24iKTt2YXIgcj1uLmNhbGwoYXJndW1lbnRzLDIpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsci5jb25jYXQobi5jYWxsKGFyZ3VtZW50cykpKX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDMwOSksaT1uKDE5OSksYT1uKDE3Nikscz1uKDEzOSksdT1uKDI0KSxjPW4oMzApLGw9bigxMiksZj1uKDYzKSxkPW4oMTA0KSxwPW4oMTk4KSxoPXAuSXRlcmF0b3JQcm90b3R5cGUsdj1wLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsZz1sKCJpdGVyYXRvciIpLHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGwscCxtLGIpe28obix0LGwpO3ZhciB3LE8sXyxFPWZ1bmN0aW9uKGUpe2lmKGU9PT1wJiZBKXJldHVybiBBO2lmKCF2JiZlIGluIGspcmV0dXJuIGtbZV07c3dpdGNoKGUpe2Nhc2Uia2V5cyI6Y2FzZSJ2YWx1ZXMiOmNhc2UiZW50cmllcyI6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsZSl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzKX19LEM9dCsiIEl0ZXJhdG9yIixTPSExLGs9ZS5wcm90b3R5cGUseD1rW2ddfHxrWyJAQGl0ZXJhdG9yIl18fHAmJmtbcF0sQT0hdiYmeHx8RShwKSxqPSJBcnJheSI9PXQmJmsuZW50cmllc3x8eDtpZihqJiYodz1pKGouY2FsbChuZXcgZSkpLGghPT1PYmplY3QucHJvdG90eXBlJiZ3Lm5leHQmJihmfHxpKHcpPT09aHx8KGE/YSh3LGgpOiJmdW5jdGlvbiIhPXR5cGVvZiB3W2ddJiZ1KHcsZyx5KSkscyh3LEMsITAsITApLGYmJihkW0NdPXkpKSksInZhbHVlcyI9PXAmJngmJiJ2YWx1ZXMiIT09eC5uYW1lJiYoUz0hMCxBPWZ1bmN0aW9uKCl7cmV0dXJuIHguY2FsbCh0aGlzKX0pLGYmJiFifHxrW2ddPT09QXx8dShrLGcsQSksZFt0XT1BLHApaWYoTz17dmFsdWVzOkUoInZhbHVlcyIpLGtleXM6bT9BOkUoImtleXMiKSxlbnRyaWVzOkUoImVudHJpZXMiKX0sYilmb3IoXyBpbiBPKSh2fHxTfHwhKF8gaW4gaykpJiZjKGssXyxPW19dKTtlbHNlIHIoe3RhcmdldDp0LHByb3RvOiEwLGZvcmNlZDp2fHxTfSxPKTtyZXR1cm4gT319LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHIsbyxpLGE9bigxMCkscz1uKDE5OSksdT1uKDI0KSxjPW4oMTgpLGw9bigxMiksZj1uKDYzKSxkPWwoIml0ZXJhdG9yIikscD0hMTtbXS5rZXlzJiYoIm5leHQiaW4oaT1bXS5rZXlzKCkpPyhvPXMocyhpKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmKHI9byk6cD0hMCk7dmFyIGg9dm9pZCAwPT1yfHxhKChmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiByW2RdLmNhbGwoZSkhPT1lfSkpO2gmJihyPXt9KSxmJiYhaHx8YyhyLGQpfHx1KHIsZCwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOnIsQlVHR1lfU0FGQVJJX0lURVJBVE9SUzpwfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTgpLG89bigzMyksaT1uKDk0KSxhPW4oMzEwKSxzPWkoIklFX1BST1RPIiksdT1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1hP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZT1vKGUpLHIoZSxzKT9lW3NdOiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbnN0cnVjdG9yJiZlIGluc3RhbmNlb2YgZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLnByb3RvdHlwZTplIGluc3RhbmNlb2YgT2JqZWN0P3U6bnVsbH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxNTApLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxpPUFycmF5LmlzQXJyYXksYT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDwyNTY7Kyt0KWUucHVzaCgiJSIrKCh0PDE2PyIwIjoiIikrdC50b1N0cmluZygxNikpLnRvVXBwZXJDYXNlKCkpO3JldHVybiBlfSgpLHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49dCYmdC5wbGFpbk9iamVjdHM/T2JqZWN0LmNyZWF0ZShudWxsKTp7fSxyPTA7cjxlLmxlbmd0aDsrK3IpInVuZGVmaW5lZCIhPT10eXBlb2YgZVtyXSYmKG5bcl09ZVtyXSk7cmV0dXJuIG59O2UuZXhwb3J0cz17YXJyYXlUb09iamVjdDpzLGFzc2lnbjpmdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGVbbl09dFtuXSxlfSksZSl9LGNvbWJpbmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm5bXS5jb25jYXQoZSx0KX0sY29tcGFjdDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W3tvYmo6e286ZX0scHJvcDoibyJ9XSxuPVtdLHI9MDtyPHQubGVuZ3RoOysrcilmb3IodmFyIG89dFtyXSxhPW8ub2JqW28ucHJvcF0scz1PYmplY3Qua2V5cyhhKSx1PTA7dTxzLmxlbmd0aDsrK3Upe3ZhciBjPXNbdV0sbD1hW2NdOyJvYmplY3QiPT09dHlwZW9mIGwmJm51bGwhPT1sJiYtMT09PW4uaW5kZXhPZihsKSYmKHQucHVzaCh7b2JqOmEscHJvcDpjfSksbi5wdXNoKGwpKX1yZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKDtlLmxlbmd0aD4xOyl7dmFyIHQ9ZS5wb3AoKSxuPXQub2JqW3QucHJvcF07aWYoaShuKSl7Zm9yKHZhciByPVtdLG89MDtvPG4ubGVuZ3RoOysrbykidW5kZWZpbmVkIiE9PXR5cGVvZiBuW29dJiZyLnB1c2gobltvXSk7dC5vYmpbdC5wcm9wXT1yfX19KHQpLGV9LGRlY29kZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5yZXBsYWNlKC9cKy9nLCIgIik7aWYoImlzby04ODU5LTEiPT09bilyZXR1cm4gci5yZXBsYWNlKC8lWzAtOWEtZl17Mn0vZ2ksdW5lc2NhcGUpO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHIpfWNhdGNoKG8pe3JldHVybiByfX0sZW5jb2RlOmZ1bmN0aW9uKGUsdCxuLG8saSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiBlO3ZhciBzPWU7aWYoInN5bWJvbCI9PT10eXBlb2YgZT9zPVN5bWJvbC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKToic3RyaW5nIiE9PXR5cGVvZiBlJiYocz1TdHJpbmcoZSkpLCJpc28tODg1OS0xIj09PW4pcmV0dXJuIGVzY2FwZShzKS5yZXBsYWNlKC8ldVswLTlhLWZdezR9L2dpLChmdW5jdGlvbihlKXtyZXR1cm4iJTI2JTIzIitwYXJzZUludChlLnNsaWNlKDIpLDE2KSsiJTNCIn0pKTtmb3IodmFyIHU9IiIsYz0wO2M8cy5sZW5ndGg7KytjKXt2YXIgbD1zLmNoYXJDb2RlQXQoYyk7NDU9PT1sfHw0Nj09PWx8fDk1PT09bHx8MTI2PT09bHx8bD49NDgmJmw8PTU3fHxsPj02NSYmbDw9OTB8fGw+PTk3JiZsPD0xMjJ8fGk9PT1yLlJGQzE3MzgmJig0MD09PWx8fDQxPT09bCk/dSs9cy5jaGFyQXQoYyk6bDwxMjg/dSs9YVtsXTpsPDIwNDg/dSs9YVsxOTJ8bD4+Nl0rYVsxMjh8NjMmbF06bDw1NTI5Nnx8bD49NTczNDQ/dSs9YVsyMjR8bD4+MTJdK2FbMTI4fGw+PjYmNjNdK2FbMTI4fDYzJmxdOihjKz0xLGw9NjU1MzYrKCgxMDIzJmwpPDwxMHwxMDIzJnMuY2hhckNvZGVBdChjKSksdSs9YVsyNDB8bD4+MThdK2FbMTI4fGw+PjEyJjYzXSthWzEyOHxsPj42JjYzXSthWzEyOHw2MyZsXSl9cmV0dXJuIHV9LGlzQnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVybiEoIWV8fCJvYmplY3QiIT09dHlwZW9mIGUpJiYhIShlLmNvbnN0cnVjdG9yJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpKX0saXNSZWdFeHA6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgUmVnRXhwXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9LG1heWJlTWFwOmZ1bmN0aW9uKGUsdCl7aWYoaShlKSl7Zm9yKHZhciBuPVtdLHI9MDtyPGUubGVuZ3RoO3IrPTEpbi5wdXNoKHQoZVtyXSkpO3JldHVybiBufXJldHVybiB0KGUpfSxtZXJnZTpmdW5jdGlvbiBlKHQsbixyKXtpZighbilyZXR1cm4gdDtpZigib2JqZWN0IiE9PXR5cGVvZiBuKXtpZihpKHQpKXQucHVzaChuKTtlbHNle2lmKCF0fHwib2JqZWN0IiE9PXR5cGVvZiB0KXJldHVyblt0LG5dOyhyJiYoci5wbGFpbk9iamVjdHN8fHIuYWxsb3dQcm90b3R5cGVzKXx8IW8uY2FsbChPYmplY3QucHJvdG90eXBlLG4pKSYmKHRbbl09ITApfXJldHVybiB0fWlmKCF0fHwib2JqZWN0IiE9PXR5cGVvZiB0KXJldHVyblt0XS5jb25jYXQobik7dmFyIGE9dDtyZXR1cm4gaSh0KSYmIWkobikmJihhPXModCxyKSksaSh0KSYmaShuKT8obi5mb3JFYWNoKChmdW5jdGlvbihuLGkpe2lmKG8uY2FsbCh0LGkpKXt2YXIgYT10W2ldO2EmJiJvYmplY3QiPT09dHlwZW9mIGEmJm4mJiJvYmplY3QiPT09dHlwZW9mIG4/dFtpXT1lKGEsbixyKTp0LnB1c2gobil9ZWxzZSB0W2ldPW59KSksdCk6T2JqZWN0LmtleXMobikucmVkdWNlKChmdW5jdGlvbih0LGkpe3ZhciBhPW5baV07cmV0dXJuIG8uY2FsbCh0LGkpP3RbaV09ZSh0W2ldLGEscik6dFtpXT1hLHR9KSxhKX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSk7dmFyIHI9bigxKSxvPW5ldyBBdWRpbztmdW5jdGlvbiBpKGUpe3RyeXtvLnZvbHVtZT0wO3ZhciB0PW8ucGxheSgpOyJmaXJlZm94IiE9PWUmJihvLnBhdXNlKCksby5sb2FkJiZvLmxvYWQoKSksInVuZGVmaW5lZCIhPT10eXBlb2YgdCYmdC5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9Y2F0Y2gobil7fX1mdW5jdGlvbiBhKCl7dHJ5e28udm9sdW1lPS43O3ZhciBlPW8ucGxheSgpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGUmJmUuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpfWNhdGNoKHQpe319by5zcmM9IiIuY29uY2F0KHIuYiwiL3R1cnVydS5tcDMiKSxvLnZvbHVtZT0uN30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHh9KSk7bigzNiksbigzOSksbigzMiksbig1OSksbig4OSksbigyOSk7dmFyIHI9bigyNyksbz1uLm4ociksaT1uKDI4KSxhPW4ubihpKSxzPW4oMTA2KSx1PW4ubihzKSxjPW4oMTU2KSxsPW4ubihjKSxmPW4oMTU3KSxkPW4ubihmKSxwPW4oMTI1KSxoPW4ubihwKSx2PW4oNSksZz1uLm4odikseT1uKDQpLG09bi5uKHkpLGI9big0Myksdz1uKDcpLE89bigwKSxfPW4oMSksRT1uKDE3KSxDPW4oNDQpO2Z1bmN0aW9uIFMoZSl7dmFyIHQ9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI9aCgpKGUpO2lmKHQpe3ZhciBvPWgoKSh0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KHIsYXJndW1lbnRzLG8pfWVsc2Ugbj1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZCgpKHRoaXMsbil9fXZhciBrPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiB3aW5kb3cucGFyZW50PT09d2luZG93LnRvcH1jYXRjaChlKXtyZXR1cm4hMX19KCkseD0iI21vYmlsZS13aWRnZXQiLEE9bnVsbCxqPWZ1bmN0aW9uKGUpe2UuaW5jbHVkZXMoIiMiKSYmIWUuaW5jbHVkZXMoeCkmJihBPWUpfSxUPSExLFA9ZnVuY3Rpb24oZSl7bCgpKG4sZSk7dmFyIHQ9UyhuKTtmdW5jdGlvbiBuKCl7dmFyIGU7bygpKHRoaXMsbik7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsaT1uZXcgQXJyYXkociksYT0wO2E8cjthKyspaVthXT1hcmd1bWVudHNbYV07cmV0dXJuIGU9dC5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChpKSksZygpKHUoKShlKSwiYWRkTW9iaWxlSGFzaFRvQ3VycmVudExvY2F0aW9uIiwoZnVuY3Rpb24oKXt0cnl7aWYoIXdpbmRvdy5wYXJlbnR8fCF3aW5kb3cucGFyZW50Lmhpc3RvcnkpcmV0dXJuITE7dmFyIHQ9d2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmO3JldHVybiBqKHQpLHQuaW5jbHVkZXMoeCl8fHdpbmRvdy5wYXJlbnQuaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwibW9iaWxlLXdpZGdldCIseCksVHx8KGUud2F0Y2hVcmxDaGFuZ2UoKSxUPSEwKSwhMH1jYXRjaChuKXtyZXR1cm4hMX19KSksZygpKHUoKShlKSwid2F0Y2hVcmxDaGFuZ2UiLChmdW5jdGlvbigpe09iamVjdChfLmMpKChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dHJ5e3dpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmNsdWRlcyh4KT9lLnByb3BzLmRpc3BhdGNoKE9iamVjdChPLnhjKSghMCkpOmUucHJvcHMuZGlzcGF0Y2goT2JqZWN0KE8ueGMpKCExKSl9Y2F0Y2godCl7fX0pLDApfSkpfSkpLGV9cmV0dXJuIGEoKShuLFt7a2V5OiJjb21wb25lbnREaWRNb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFkZE1vYmlsZUhhc2hUb0N1cnJlbnRMb2NhdGlvbigpfX0se2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0cnl7dmFyIGU9d2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmO2lmKGUuaW5jbHVkZXMoeCkpe3ZhciB0PWZ1bmN0aW9uKCl7dmFyIGU9bnVsbDtyZXR1cm4gQSYmKGU9QSxBPW51bGwpLGV9KCl8fGUucmVwbGFjZSh4LCIiKTt3aW5kb3cucGFyZW50Lmhpc3RvcnkucHVzaFN0YXRlKG51bGwsIiIsdCl9fWNhdGNoKG4pe319KSwwKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19XSksbn0obS5hLkNvbXBvbmVudCk7dC5hPU9iamVjdChiLmIpKChmdW5jdGlvbihlKXtyZXR1cm57aXNNb2JpbGU6ZS5pc01vYmlsZSx2aWV3Ok9iamVjdChFLnMpKGUpLG1vYmlsZUhhc2g6ZS5tb2JpbGVIYXNofX0pKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGsmJmUuaXNNb2JpbGUmJmUudmlldyE9PXcuYS5jbG9zZWQmJmUudmlldyE9PXcuYS5mbHkmJmUubW9iaWxlSGFzaCYmT2JqZWN0KEMuZCkoUCx7ZGlzcGF0Y2g6ZS5kaXNwYXRjaH0pfSkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1uKDI0OSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXt2YXIgdCxuPWUuU3ltYm9sO3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2Ygbj9uLm9ic2VydmFibGU/dD1uLm9ic2VydmFibGU6KHQ9bigib2JzZXJ2YWJsZSIpLG4ub2JzZXJ2YWJsZT10KTp0PSJAQG9ic2VydmFibGUiLHR9bi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiByfSkpfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5fX3Byb3RvX189dH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LG89ZnVuY3Rpb24oKXt9LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZX0sYT1mdW5jdGlvbigpe3JldHVybiEwfTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG49dC5icmVhZGNydW1iRGF0YUZyb21BY3Rpb24scz12b2lkIDA9PT1uP286bix1PXQuYnJlYWRjcnVtYk1lc3NhZ2VGcm9tQWN0aW9uLGM9dm9pZCAwPT09dT9pOnUsbD10LmFjdGlvblRyYW5zZm9ybWVyLGY9dm9pZCAwPT09bD9yOmwsZD10LnN0YXRlVHJhbnNmb3JtZXIscD12b2lkIDA9PT1kP3I6ZCxoPXQuYnJlYWRjcnVtYkNhdGVnb3J5LHY9dm9pZCAwPT09aD8icmVkdXgtYWN0aW9uIjpoLGc9dC5maWx0ZXJCcmVhZGNydW1iQWN0aW9ucyx5PXZvaWQgMD09PWc/YTpnLG09dC5nZXRVc2VyQ29udGV4dCxiPXQuZ2V0VGFncztyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dm9pZCAwO3JldHVybiBlLnNldERhdGFDYWxsYmFjaygoZnVuY3Rpb24oZSxyKXt2YXIgbz10LmdldFN0YXRlKCksaT17bGFzdEFjdGlvbjpmKG4pLHN0YXRlOnAobyl9O3JldHVybiBlLmV4dHJhPU9iamVjdC5hc3NpZ24oaSxlLmV4dHJhKSxtJiYoZS51c2VyPW0obykpLGImJihlLnRhZ3M9YihvKSkscj9yKGUpOmV9KSksZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB5KHIpJiZlLmNhcHR1cmVCcmVhZGNydW1iKHtjYXRlZ29yeTp2LG1lc3NhZ2U6YyhyKSxkYXRhOnMocil9KSxuPXIsdChyKX19fX19LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigyNzUpfSxmdW5jdGlvbihlLHQsbil7dmFyIHIsbzt2b2lkIDA9PT0obz0iZnVuY3Rpb24iPT09dHlwZW9mKHI9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdChlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saT1bXSxhPSEwLHM9ITE7dHJ5e2ZvcihuPW4uY2FsbChlKTshKGE9KHI9bi5uZXh0KCkpLmRvbmUpJiYoaS5wdXNoKHIudmFsdWUpLCF0fHxpLmxlbmd0aCE9PXQpO2E9ITApO31jYXRjaChlKXtzPSEwLG89ZX1maW5hbGx5e3RyeXthfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIGl9fShlLHQpfHxvKGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiByKGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBpKGUpfShlKXx8ZnVuY3Rpb24oZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8byhlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBvKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBpKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/aShlLHQpOnZvaWQgMH19ZnVuY3Rpb24gaShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIGE9bigyNzgpLHM9bigxNTEpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtmdW5jdGlvbiBuKCl7cmV0dXJuIGd9ZnVuY3Rpb24gbyhlKXtfJiZfLmlvJiYoXy5pby5hdXRvQ29ubmVjdD0hMSksXyYmImZ1bmN0aW9uIj09dHlwZW9mIF8uY2xvc2UmJl8uY2xvc2UoKSxiLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSksYj1bXSxPYmplY3QudmFsdWVzKE8pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSksTz17fSxuKCkmJmNvbnNvbGUuZGVidWcoImNsb3NlZCEhIiksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKX1mdW5jdGlvbiBpKCl7aWYoXyYmMDxDLmxlbmd0aCl7dmFyIGU9dChDLnNoaWZ0KCksMykscj1lWzBdLG89ZVsxXSxhPWVbMl0scz1udWxsO2EmJihzPWZ1bmN0aW9uKCl7bigpJiZjb25zb2xlLmRlYnVnKCJhY2sgLSAiLmNvbmNhdChyKSksYS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX0pLGoocixvLHMsKGZ1bmN0aW9uKGUsdCxuKXtfLmVtaXQoZSx0LG4pfSkpLGkoKX19ZnVuY3Rpb24gdShlLHQsbil7dmFyIG89RShlLmdldFN0YXRlLGUuZGlzcGF0Y2gpLGk9cyhDKTtDPVtdO3ZhciBhPW4oZS5nZXRTdGF0ZSxlLmRpc3BhdGNoKTtvLmFwcGx5KHZvaWQgMCxbYS5lbWl0XS5jb25jYXQocihhLmFyZ3MpKSksQz1bXS5jb25jYXQocihDKSxyKGkpKX1mdW5jdGlvbiBjKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scj0yPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzJdOnZvaWQgMCxvPXMobik7QShvLHQsZSksQy5wdXNoKFt0LG8scl0pLGkoKX19ZnVuY3Rpb24gbChlLHQpe3ZhciBuPWUuZ2V0U3RhdGUscj1lLmRpc3BhdGNoO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCxpPUFycmF5KDE8bz9vLTE6MCksYT0xO2E8bzthKyspaVthLTFdPWFyZ3VtZW50c1thXTtyZXR1cm4gZS5jYWxsLmFwcGx5KGUsW251bGwsXyxuLHIsdF0uY29uY2F0KGkpKX19ZnVuY3Rpb24gZihlKXt2YXIgdD1fLmlvLHI9RShlLmdldFN0YXRlLGUuZGlzcGF0Y2gpO3Qub24oImNvbm5lY3RfZXJyb3IiLChmdW5jdGlvbih0KXtuKCkmJmNvbnNvbGUuZGVidWcoIm1hbmFnZXIgY29ubmVjdF9lcnJvciIsdCksImZ1bmN0aW9uIj09dHlwZW9mIHguY29ubmVjdF9lcnJvciYmeC5jb25uZWN0X2Vycm9yKGUscix0KX0pKSx0Lm9uKCJjb25uZWN0X3RpbWVvdXQiLChmdW5jdGlvbigpe24oKSYmY29uc29sZS5kZWJ1ZygibWFuYWdlciBjb25uZWN0X3RpbWVvdXQiKSwiZnVuY3Rpb24iPT10eXBlb2YgeC5jb25uZWN0X3RpbWVvdXQmJnguY29ubmVjdF90aW1lb3V0KGUscil9KSksdC5vbigicmVjb25uZWN0IiwoZnVuY3Rpb24odCl7bigpJiZjb25zb2xlLmRlYnVnKCJtYW5hZ2VyIHJlY29ubmVjdCIsdCksImZ1bmN0aW9uIj09dHlwZW9mIHgucmVjb25uZWN0JiZ4LnJlY29ubmVjdChlLHIpfSkpLHQub24oInJlY29ubmVjdF9hdHRlbXB0IiwoZnVuY3Rpb24oKXtuKCkmJmNvbnNvbGUuZGVidWcoIm1hbmFnZXIgcmVjb25uZWN0X2F0dGVtcHQiKSwiZnVuY3Rpb24iPT10eXBlb2YgeC5yZWNvbm5lY3RfYXR0ZW1wdCYmeC5yZWNvbm5lY3RfYXR0ZW1wdChlLHIpfSkpLHQub24oInJlY29ubmVjdGluZyIsKGZ1bmN0aW9uKHQpe24oKSYmY29uc29sZS5kZWJ1ZygibWFuYWdlciByZWNvbm5lY3RpbmciLHQpLCJmdW5jdGlvbiI9PXR5cGVvZiB4LnJlY29ubmVjdGluZyYmeC5yZWNvbm5lY3RpbmcoZSxyKX0pKSx0Lm9uKCJyZWNvbm5lY3RfZXJyb3IiLChmdW5jdGlvbih0KXtuKCkmJmNvbnNvbGUuZGVidWcoIm1hbmFnZXIgcmVjb25uZWN0X2Vycm9yIix0KSwiZnVuY3Rpb24iPT10eXBlb2YgeC5yZWNvbm5lY3RfZXJyb3ImJngucmVjb25uZWN0X2Vycm9yKGUscil9KSksdC5vbigicmVjb25uZWN0X2ZhaWxlZCIsKGZ1bmN0aW9uKCl7bigpJiZjb25zb2xlLmRlYnVnKCJtYW5hZ2VyIHJlY29ubmVjdF9mYWlsZWQiKSwiZnVuY3Rpb24iPT10eXBlb2YgeC5yZWNvbm5lY3RfZmFpbGVkJiZ4LnJlY29ubmVjdF9mYWlsZWQoZSxyKX0pKX1mdW5jdGlvbiBkKGUsdCl7dmFyIHI9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOmZ1bmN0aW9uKCl7fSxvPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpmdW5jdGlvbigpe30scz00PGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06e307Xz1hKHYsT2JqZWN0LmFzc2lnbih7fSx7cmVjb25uZWN0aW9uOiEwLHRyYW5zcG9ydHM6WyJ3ZWJzb2NrZXQiXX0seSxzKSksImZ1bmN0aW9uIj09dHlwZW9mIGsmJmsoZS5kaXNwYXRjaCxlKSxfLm9uKCJjb25uZWN0IiwoZnVuY3Rpb24oKXtpZihuKCkmJmNvbnNvbGUuZGVidWcoImNvbm5lY3RlZCB0byBzb2NrZXRzIiksMDxTLmxlbmd0aCYmUy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdShlLDAsdCl9KSksaSgpLCJmdW5jdGlvbiI9PXR5cGVvZiB4LmNvbm5lY3Qpe3ZhciBhPUUoZS5nZXRTdGF0ZSxlLmRpc3BhdGNoKTt4LmNvbm5lY3QoZSxhLHQscixvKX19KSksXy5vbigiZGlzY29ubmVjdCIsKGZ1bmN0aW9uKCl7bigpJiZjb25zb2xlLmRlYnVnKCJzb2NrZXRzIGRpc2Nvbm5lY3QiKSwiZnVuY3Rpb24iPT10eXBlb2YgeC5kaXNjb25uZWN0JiZ4LmRpc2Nvbm5lY3QoZSl9KSksVD1sKGUsdCksbS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1UKGUpOyJmdW5jdGlvbiI9PXR5cGVvZiB0JiZiLnB1c2godCl9KSksdy5sZW5ndGgmJncuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9VChlLmxpc3RlbmVyKTsiZnVuY3Rpb24iPT10eXBlb2YgdCYmKE9bZS5rZXldPXQpfSkpLHc9W10sZihlKX12YXIgcD0hISgxPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSkmJmFyZ3VtZW50c1sxXSxoPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSx2PWUsZz1wLHk9aCxtPVtdLGI9W10sdz1bXSxPPXt9LF89bnVsbCxFPW51bGwsQz1bXSxTPVtdLGs9ZnVuY3Rpb24oKXt9LHg9e30sQT1mdW5jdGlvbigpe30saj1mdW5jdGlvbihlLHQsbixyKXtyKGUsdCxuKX0sVD1udWxsLFA9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24obil7Zm9yKHZhciByPWUoKSxvPWFyZ3VtZW50cy5sZW5ndGgsaT1BcnJheSgxPG8/by0xOjApLGE9MTthPG87YSsrKWlbYS0xXT1hcmd1bWVudHNbYV07cmV0dXJuIG4uYXBwbHkobnVsbCxbYyhyKSxyLHRdLmNvbmNhdChpKSl9fX07dGhpcy5zZXRMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7bT1lfSx0aGlzLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYoVCl7dmFyIG49VChlKTsiZnVuY3Rpb24iPT10eXBlb2YgbiYmKE9bdF09bil9ZWxzZSB3LnB1c2goe2xpc3RlbmVyOmUsa2V5OnR9KX0sdGhpcy5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihlKXt2YXIgdD1PW2VdOyJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0KCksZGVsZXRlIE9bZV19LHRoaXMuc2V0Rmlyc3RFbWl0cz1mdW5jdGlvbihlKXtTPWV9LHRoaXMuc2V0QmVmb3JlQ29ubmVjdFN0YXJ0cz1mdW5jdGlvbihlKXtrPWV9LHRoaXMuY2xvc2VDb25uZWN0aW9uPW8sdGhpcy5zZXRNYW5hZ2VyRXZlbnRzQWN0aW9ucz1mdW5jdGlvbihlLHQpe3hbZV09dH0sdGhpcy5lbWl0UXVldWU9RSx0aGlzLnNldEVtaXRRdWV1ZUNvbnN0YW50UGFyYW1ldGVyc0Z1bmN0aW9uPWZ1bmN0aW9uKGUpe0E9ZX0sdGhpcy5zZXRTb2NrZXRFbWl0V3JhcHBlcj1mdW5jdGlvbihlKXtqPWV9LHRoaXMuY29ubmVjdGlvbk1hbmFnZXI9ZnVuY3Rpb24oKXtyZXR1cm57ZW1pdFF1ZXVlOkU9UCgpLGNsb3NlQ29ubmVjdGlvbjpvLGNvbm5lY3RUb1NvY2tldHM6ZH19fX0pP3IuY2FsbCh0LG4sdCxlKTpyKXx8KGUuZXhwb3J0cz1vKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDMxMSksbz1uKDMxMiksaT1uKDE1MCk7ZS5leHBvcnRzPXtmb3JtYXRzOmkscGFyc2U6byxzdHJpbmdpZnk6cn19LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigyNDUpKCl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3OCksbz1uKDE0KSxpPW4oMjIpLGE9bigyNTcpLHM9big3OSk7cigic2VhcmNoIiwxLChmdW5jdGlvbihlLHQsbil7cmV0dXJuW2Z1bmN0aW9uKHQpe3ZhciBuPWkodGhpcykscj12b2lkIDA9PXQ/dm9pZCAwOnRbZV07cmV0dXJuIHZvaWQgMCE9PXI/ci5jYWxsKHQsbik6bmV3IFJlZ0V4cCh0KVtlXShTdHJpbmcobikpfSxmdW5jdGlvbihlKXt2YXIgcj1uKHQsZSx0aGlzKTtpZihyLmRvbmUpcmV0dXJuIHIudmFsdWU7dmFyIGk9byhlKSx1PVN0cmluZyh0aGlzKSxjPWkubGFzdEluZGV4O2EoYywwKXx8KGkubGFzdEluZGV4PTApO3ZhciBsPXMoaSx1KTtyZXR1cm4gYShpLmxhc3RJbmRleCxjKXx8KGkubGFzdEluZGV4PWMpLG51bGw9PT1sPy0xOmwuaW5kZXh9XX0pKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIwKSxvPW4oOCksaT1uKDc3KSxhPW4oMzApLHM9bigxOCksdT1uKDM1KSxjPW4oMTc1KSxsPW4oNDkpLGY9bigxMCksZD1uKDE0MSkscD1uKDk3KS5mLGg9big0NykuZix2PW4oMjYpLmYsZz1uKDExOCkudHJpbSx5PW8uTnVtYmVyLG09eS5wcm90b3R5cGUsYj0iTnVtYmVyIj09dShkKG0pKSx3PWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGksYSxzLHUsYz1sKGUsITEpO2lmKCJzdHJpbmciPT10eXBlb2YgYyYmYy5sZW5ndGg+MilpZig0Mz09PSh0PShjPWcoYykpLmNoYXJDb2RlQXQoMCkpfHw0NT09PXQpe2lmKDg4PT09KG49Yy5jaGFyQ29kZUF0KDIpKXx8MTIwPT09bilyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT10KXtzd2l0Y2goYy5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6cj0yLG89NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpyPTgsbz01NTticmVhaztkZWZhdWx0OnJldHVybitjfWZvcihhPShpPWMuc2xpY2UoMikpLmxlbmd0aCxzPTA7czxhO3MrKylpZigodT1pLmNoYXJDb2RlQXQocykpPDQ4fHx1Pm8pcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoaSxyKX1yZXR1cm4rY307aWYoaSgiTnVtYmVyIiwheSgiIDBvMSIpfHwheSgiMGIxIil8fHkoIisweDEiKSkpe2Zvcih2YXIgTyxfPWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg8MT8wOmUsbj10aGlzO3JldHVybiBuIGluc3RhbmNlb2YgXyYmKGI/ZigoZnVuY3Rpb24oKXttLnZhbHVlT2YuY2FsbChuKX0pKToiTnVtYmVyIiE9dShuKSk/YyhuZXcgeSh3KHQpKSxuLF8pOncodCl9LEU9cj9wKHkpOiJNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElWRV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSxFUFNJTE9OLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLE1BWF9TQUZFX0lOVEVHRVIsTUlOX1NBRkVfSU5URUdFUixwYXJzZUZsb2F0LHBhcnNlSW50LGlzSW50ZWdlcixmcm9tU3RyaW5nLHJhbmdlIi5zcGxpdCgiLCIpLEM9MDtFLmxlbmd0aD5DO0MrKylzKHksTz1FW0NdKSYmIXMoXyxPKSYmdihfLE8saCh5LE8pKTtfLnByb3RvdHlwZT1tLG0uY29uc3RydWN0b3I9XyxhKG8sIk51bWJlciIsXyl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTE1KS5jaGFyQXQsbz1uKDYyKSxpPW4oMTk3KSxhPW8uc2V0LHM9by5nZXR0ZXJGb3IoIlN0cmluZyBJdGVyYXRvciIpO2koU3RyaW5nLCJTdHJpbmciLChmdW5jdGlvbihlKXthKHRoaXMse3R5cGU6IlN0cmluZyBJdGVyYXRvciIsc3RyaW5nOlN0cmluZyhlKSxpbmRleDowfSl9KSwoZnVuY3Rpb24oKXt2YXIgZSx0PXModGhpcyksbj10LnN0cmluZyxvPXQuaW5kZXg7cmV0dXJuIG8+PW4ubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KGU9cihuLG8pLHQuaW5kZXgrPWUubGVuZ3RoLHt2YWx1ZTplLGRvbmU6ITF9KX0pKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTIpLG89bigxMDQpLGk9cigiaXRlcmF0b3IiKSxhPUFycmF5LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJihvLkFycmF5PT09ZXx8YVtpXT09PWUpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTY1KSxvPW4oMTA0KSxpPW4oMTIpKCJpdGVyYXRvciIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZih2b2lkIDAhPWUpcmV0dXJuIGVbaV18fGVbIkBAaXRlcmF0b3IiXXx8b1tyKGUpXX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXR1cm47aWYodm9pZCAwIT09dClyZXR1cm4gcih0LmNhbGwoZSkpLnZhbHVlfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTIpKCJpdGVyYXRvciIpLG89ITE7dHJ5e3ZhciBpPTAsYT17bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEhaSsrfX0scmV0dXJuOmZ1bmN0aW9uKCl7bz0hMH19O2Fbcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShhLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2gocyl7fWUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCF0JiYhbylyZXR1cm4hMTt2YXIgbj0hMTt0cnl7dmFyIGk9e307aVtyXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6bj0hMH19fX0sZShpKX1jYXRjaChzKXt9cmV0dXJuIG59fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyMCksbz1uKDE0MCksaT1uKDM0KSxhPW4oMTEyKS5mLHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixzPWkodCksdT1vKHMpLGM9dS5sZW5ndGgsbD0wLGY9W107Yz5sOyluPXVbbCsrXSxyJiYhYS5jYWxsKHMsbil8fGYucHVzaChlP1tuLHNbbl1dOnNbbl0pO3JldHVybiBmfX07ZS5leHBvcnRzPXtlbnRyaWVzOnMoITApLHZhbHVlczpzKCExKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big5KSxvPW4oODcpLGk9big0MSksYT1uKDIzKSxzPW4oMzMpLHU9bigxMDApLGM9big4OCksbD1uKDY1KSxmPW4oNDApLGQ9bCgic3BsaWNlIikscD1mKCJzcGxpY2UiLHtBQ0NFU1NPUlM6ITAsMDowLDE6Mn0pLGg9TWF0aC5tYXgsdj1NYXRoLm1pbjtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IWR8fCFwfSx7c3BsaWNlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixsLGYsZCxwLGc9cyh0aGlzKSx5PWEoZy5sZW5ndGgpLG09byhlLHkpLGI9YXJndW1lbnRzLmxlbmd0aDtpZigwPT09Yj9uPXI9MDoxPT09Yj8obj0wLHI9eS1tKToobj1iLTIscj12KGgoaSh0KSwwKSx5LW0pKSx5K24tcj45MDA3MTk5MjU0NzQwOTkxKXRocm93IFR5cGVFcnJvcigiTWF4aW11bSBhbGxvd2VkIGxlbmd0aCBleGNlZWRlZCIpO2ZvcihsPXUoZyxyKSxmPTA7ZjxyO2YrKykoZD1tK2YpaW4gZyYmYyhsLGYsZ1tkXSk7aWYobC5sZW5ndGg9cixuPHIpe2ZvcihmPW07Zjx5LXI7ZisrKXA9ZituLChkPWYrcilpbiBnP2dbcF09Z1tkXTpkZWxldGUgZ1twXTtmb3IoZj15O2Y+eS1yK247Zi0tKWRlbGV0ZSBnW2YtMV19ZWxzZSBpZihuPnIpZm9yKGY9eS1yO2Y+bTtmLS0pcD1mK24tMSwoZD1mK3ItMSlpbiBnP2dbcF09Z1tkXTpkZWxldGUgZ1twXTtmb3IoZj0wO2Y8bjtmKyspZ1tmK21dPWFyZ3VtZW50c1tmKzJdO3JldHVybiBnLmxlbmd0aD15LXIrbixsfX0pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big4KSxvPW4oMTg0KSxpPW4oMTYzKSxhPW4oMjQpLHM9bigxMiksdT1zKCJpdGVyYXRvciIpLGM9cygidG9TdHJpbmdUYWciKSxsPWkudmFsdWVzO2Zvcih2YXIgZiBpbiBvKXt2YXIgZD1yW2ZdLHA9ZCYmZC5wcm90b3R5cGU7aWYocCl7aWYocFt1XSE9PWwpdHJ5e2EocCx1LGwpfWNhdGNoKHYpe3BbdV09bH1pZihwW2NdfHxhKHAsYyxmKSxvW2ZdKWZvcih2YXIgaCBpbiBpKWlmKHBbaF0hPT1pW2hdKXRyeXthKHAsaCxpW2hdKX1jYXRjaCh2KXtwW2hdPWlbaF19fX19LCwsLGZ1bmN0aW9uKGUsdCxuKXtuKDEzMCksZS5leHBvcnRzPW4oMjI1KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCk7bigyOSk7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtuKDIyNiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gbigzMTUpfSksMCl9KSwwKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCk7big4NCksbigxMDcpOyJ1bmRlZmluZWQiPT09dHlwZW9mIFByb21pc2UmJihuKDIzNykuZW5hYmxlKCksd2luZG93LlByb21pc2U9bigyMzkpKSxuKDI0MCl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMzgpLG89bigxNjUpO2UuZXhwb3J0cz1yP3t9LnRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIitvKHRoaXMpKyJdIn19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDgpO2UuZXhwb3J0cz1yLlByb21pc2V9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDMwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgbyBpbiB0KXIoZSxvLHRbb10sbik7cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgIisobj9uKyIgIjoiIikrImludm9jYXRpb24iKTtyZXR1cm4gZX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE0KSxvPW4oMjE0KSxpPW4oMjMpLGE9bigxMjkpLHM9bigyMTUpLHU9bigyMTYpLGM9ZnVuY3Rpb24oZSx0KXt0aGlzLnN0b3BwZWQ9ZSx0aGlzLnJlc3VsdD10fTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBsLGYsZCxwLGgsdixnLHk9biYmbi50aGF0LG09ISghbnx8IW4uQVNfRU5UUklFUyksYj0hKCFufHwhbi5JU19JVEVSQVRPUiksdz0hKCFufHwhbi5JTlRFUlJVUFRFRCksTz1hKHQseSwxK20rdyksXz1mdW5jdGlvbihlKXtyZXR1cm4gbCYmdShsKSxuZXcgYyghMCxlKX0sRT1mdW5jdGlvbihlKXtyZXR1cm4gbT8ocihlKSx3P08oZVswXSxlWzFdLF8pOk8oZVswXSxlWzFdKSk6dz9PKGUsXyk6TyhlKX07aWYoYilsPWU7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YoZj1zKGUpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihvKGYpKXtmb3IoZD0wLHA9aShlLmxlbmd0aCk7cD5kO2QrKylpZigoaD1FKGVbZF0pKSYmaCBpbnN0YW5jZW9mIGMpcmV0dXJuIGg7cmV0dXJuIG5ldyBjKCExKX1sPWYuY2FsbChlKX1mb3Iodj1sLm5leHQ7IShnPXYuY2FsbChsKSkuZG9uZTspe3RyeXtoPUUoZy52YWx1ZSl9Y2F0Y2goQyl7dGhyb3cgdShsKSxDfWlmKCJvYmplY3QiPT10eXBlb2YgaCYmaCYmaCBpbnN0YW5jZW9mIGMpcmV0dXJuIGh9cmV0dXJuIG5ldyBjKCExKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGksYSxzLHUsYyxsLGY9big4KSxkPW4oNDcpLmYscD1uKDE2OCkuc2V0LGg9bigxNzApLHY9bigyMzMpLGc9bigxMTYpLHk9Zi5NdXRhdGlvbk9ic2VydmVyfHxmLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsbT1mLmRvY3VtZW50LGI9Zi5wcm9jZXNzLHc9Zi5Qcm9taXNlLE89ZChmLCJxdWV1ZU1pY3JvdGFzayIpLF89TyYmTy52YWx1ZTtffHwocj1mdW5jdGlvbigpe3ZhciBlLHQ7Zm9yKGcmJihlPWIuZG9tYWluKSYmZS5leGl0KCk7bzspe3Q9by5mbixvPW8ubmV4dDt0cnl7dCgpfWNhdGNoKG4pe3Rocm93IG8/YSgpOmk9dm9pZCAwLG59fWk9dm9pZCAwLGUmJmUuZW50ZXIoKX0saHx8Z3x8dnx8IXl8fCFtP3cmJncucmVzb2x2ZT8oYz13LnJlc29sdmUodm9pZCAwKSxsPWMudGhlbixhPWZ1bmN0aW9uKCl7bC5jYWxsKGMscil9KTphPWc/ZnVuY3Rpb24oKXtiLm5leHRUaWNrKHIpfTpmdW5jdGlvbigpe3AuY2FsbChmLHIpfToocz0hMCx1PW0uY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyB5KHIpLm9ic2VydmUodSx7Y2hhcmFjdGVyRGF0YTohMH0pLGE9ZnVuY3Rpb24oKXt1LmRhdGE9cz0hc30pKSxlLmV4cG9ydHM9X3x8ZnVuY3Rpb24oZSl7dmFyIHQ9e2ZuOmUsbmV4dDp2b2lkIDB9O2kmJihpLm5leHQ9dCksb3x8KG89dCxhKCkpLGk9dH19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDY3KTtlLmV4cG9ydHM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChyKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTQpLG89bigxNSksaT1uKDE3MSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYocihlKSxvKHQpJiZ0LmNvbnN0cnVjdG9yPT09ZSlyZXR1cm4gdDt2YXIgbj1pLmYoZSk7cmV0dXJuKDAsbi5yZXNvbHZlKSh0KSxuLnByb21pc2V9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yLmNvbnNvbGU7biYmbi5lcnJvciYmKDE9PT1hcmd1bWVudHMubGVuZ3RoP24uZXJyb3IoZSk6bi5lcnJvcihlLHQpKX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm57ZXJyb3I6ITEsdmFsdWU6ZSgpfX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6ITAsdmFsdWU6dH19fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3Miksbz1bUmVmZXJlbmNlRXJyb3IsVHlwZUVycm9yLFJhbmdlRXJyb3JdLGk9ITE7ZnVuY3Rpb24gYSgpe2k9ITEsci5fWT1udWxsLHIuX1o9bnVsbH1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIHQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0fSkpfXQuZGlzYWJsZT1hLHQuZW5hYmxlPWZ1bmN0aW9uKGUpe2U9ZXx8e30saSYmYSgpO2k9ITA7dmFyIHQ9MCxuPTAsdT17fTtmdW5jdGlvbiBjKHQpeyhlLmFsbFJlamVjdGlvbnN8fHModVt0XS5lcnJvcixlLndoaXRlbGlzdHx8bykpJiYodVt0XS5kaXNwbGF5SWQ9bisrLGUub25VbmhhbmRsZWQ/KHVbdF0ubG9nZ2VkPSEwLGUub25VbmhhbmRsZWQodVt0XS5kaXNwbGF5SWQsdVt0XS5lcnJvcikpOih1W3RdLmxvZ2dlZD0hMCxmdW5jdGlvbihlLHQpe2NvbnNvbGUud2FybigiUG9zc2libGUgVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uIChpZDogIitlKyIpOiIpLCgodCYmKHQuc3RhY2t8fHQpKSsiIikuc3BsaXQoIlxuIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7Y29uc29sZS53YXJuKCIgICIrZSl9KSl9KHVbdF0uZGlzcGxheUlkLHVbdF0uZXJyb3IpKSl9ci5fWT1mdW5jdGlvbih0KXsyPT09dC5fViYmdVt0Ll8xXSYmKHVbdC5fMV0ubG9nZ2VkP2Z1bmN0aW9uKHQpe3VbdF0ubG9nZ2VkJiYoZS5vbkhhbmRsZWQ/ZS5vbkhhbmRsZWQodVt0XS5kaXNwbGF5SWQsdVt0XS5lcnJvcik6dVt0XS5vblVuaGFuZGxlZHx8KGNvbnNvbGUud2FybigiUHJvbWlzZSBSZWplY3Rpb24gSGFuZGxlZCAoaWQ6ICIrdVt0XS5kaXNwbGF5SWQrIik6IiksY29uc29sZS53YXJuKCcgIFRoaXMgbWVhbnMgeW91IGNhbiBpZ25vcmUgYW55IHByZXZpb3VzIG1lc3NhZ2VzIG9mIHRoZSBmb3JtICJQb3NzaWJsZSBVbmhhbmRsZWQgUHJvbWlzZSBSZWplY3Rpb24iIHdpdGggaWQgJyt1W3RdLmRpc3BsYXlJZCsiLiIpKSl9KHQuXzEpOmNsZWFyVGltZW91dCh1W3QuXzFdLnRpbWVvdXQpLGRlbGV0ZSB1W3QuXzFdKX0sci5fWj1mdW5jdGlvbihlLG4pezA9PT1lLl9VJiYoZS5fMT10KyssdVtlLl8xXT17ZGlzcGxheUlkOm51bGwsZXJyb3I6bix0aW1lb3V0OnNldFRpbWVvdXQoYy5iaW5kKG51bGwsZS5fMSkscyhuLG8pPzEwMDoyZTMpLGxvZ2dlZDohMX0pfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSl7by5sZW5ndGh8fChyKCksITApLG9bby5sZW5ndGhdPWV9ZS5leHBvcnRzPW47dmFyIHIsbz1bXSxpPTA7ZnVuY3Rpb24gYSgpe2Zvcig7aTxvLmxlbmd0aDspe3ZhciBlPWk7aWYoaSs9MSxvW2VdLmNhbGwoKSxpPjEwMjQpe2Zvcih2YXIgdD0wLG49by5sZW5ndGgtaTt0PG47dCsrKW9bdF09b1t0K2ldO28ubGVuZ3RoLT1pLGk9MH19by5sZW5ndGg9MCxpPTAsITF9dmFyIHM9InVuZGVmaW5lZCIhPT10eXBlb2YgdD90OnNlbGYsdT1zLk11dGF0aW9uT2JzZXJ2ZXJ8fHMuV2ViS2l0TXV0YXRpb25PYnNlcnZlcjtmdW5jdGlvbiBjKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXNldFRpbWVvdXQociwwKSxuPXNldEludGVydmFsKHIsNTApO2Z1bmN0aW9uIHIoKXtjbGVhclRpbWVvdXQodCksY2xlYXJJbnRlcnZhbChuKSxlKCl9fX1yPSJmdW5jdGlvbiI9PT10eXBlb2YgdT9mdW5jdGlvbihlKXt2YXIgdD0xLG49bmV3IHUoZSkscj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik7cmV0dXJuIG4ub2JzZXJ2ZShyLHtjaGFyYWN0ZXJEYXRhOiEwfSksZnVuY3Rpb24oKXt0PS10LHIuZGF0YT10fX0oYSk6YyhhKSxuLnJlcXVlc3RGbHVzaD1yLG4ubWFrZVJlcXVlc3RDYWxsRnJvbVRpbWVyPWN9KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTcyKTtlLmV4cG9ydHM9cjt2YXIgbz1sKCEwKSxpPWwoITEpLGE9bChudWxsKSxzPWwodm9pZCAwKSx1PWwoMCksYz1sKCIiKTtmdW5jdGlvbiBsKGUpe3ZhciB0PW5ldyByKHIuXzApO3JldHVybiB0Ll9WPTEsdC5fVz1lLHR9ci5yZXNvbHZlPWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiByKXJldHVybiBlO2lmKG51bGw9PT1lKXJldHVybiBhO2lmKHZvaWQgMD09PWUpcmV0dXJuIHM7aWYoITA9PT1lKXJldHVybiBvO2lmKCExPT09ZSlyZXR1cm4gaTtpZigwPT09ZSlyZXR1cm4gdTtpZigiIj09PWUpcmV0dXJuIGM7aWYoIm9iamVjdCI9PT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09PXR5cGVvZiBlKXRyeXt2YXIgdD1lLnRoZW47aWYoImZ1bmN0aW9uIj09PXR5cGVvZiB0KXJldHVybiBuZXcgcih0LmJpbmQoZSkpfWNhdGNoKG4pe3JldHVybiBuZXcgcigoZnVuY3Rpb24oZSx0KXt0KG4pfSkpfXJldHVybiBsKGUpfTt2YXIgZj1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIEFycmF5LmZyb20/KGY9QXJyYXkuZnJvbSxBcnJheS5mcm9tKGUpKTooZj1mdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSl9LEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX07ci5hbGw9ZnVuY3Rpb24oZSl7dmFyIHQ9ZihlKTtyZXR1cm4gbmV3IHIoKGZ1bmN0aW9uKGUsbil7aWYoMD09PXQubGVuZ3RoKXJldHVybiBlKFtdKTt2YXIgbz10Lmxlbmd0aDtmdW5jdGlvbiBpKGEscyl7aWYocyYmKCJvYmplY3QiPT09dHlwZW9mIHN8fCJmdW5jdGlvbiI9PT10eXBlb2Ygcykpe2lmKHMgaW5zdGFuY2VvZiByJiZzLnRoZW49PT1yLnByb3RvdHlwZS50aGVuKXtmb3IoOzM9PT1zLl9WOylzPXMuX1c7cmV0dXJuIDE9PT1zLl9WP2koYSxzLl9XKTooMj09PXMuX1YmJm4ocy5fVyksdm9pZCBzLnRoZW4oKGZ1bmN0aW9uKGUpe2koYSxlKX0pLG4pKX12YXIgdT1zLnRoZW47aWYoImZ1bmN0aW9uIj09PXR5cGVvZiB1KXJldHVybiB2b2lkIG5ldyByKHUuYmluZChzKSkudGhlbigoZnVuY3Rpb24oZSl7aShhLGUpfSksbil9dFthXT1zLDA9PT0tLW8mJmUodCl9Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspaShhLHRbYV0pfSkpfSxyLnJlamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHIoKGZ1bmN0aW9uKHQsbil7bihlKX0pKX0sci5yYWNlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgcigoZnVuY3Rpb24odCxuKXtmKGUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3IucmVzb2x2ZShlKS50aGVuKHQsbil9KSl9KSl9LHIucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRoZW4obnVsbCxlKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5yKHQpLG4uZCh0LCJIZWFkZXJzIiwoZnVuY3Rpb24oKXtyZXR1cm4gaH0pKSxuLmQodCwiUmVxdWVzdCIsKGZ1bmN0aW9uKCl7cmV0dXJuIE99KSksbi5kKHQsIlJlc3BvbnNlIiwoZnVuY3Rpb24oKXtyZXR1cm4gQ30pKSxuLmQodCwiRE9NRXhjZXB0aW9uIiwoZnVuY3Rpb24oKXtyZXR1cm4ga30pKSxuLmQodCwiZmV0Y2giLChmdW5jdGlvbigpe3JldHVybiB4fSkpO3ZhciByPSJ1bmRlZmluZWQiIT09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXN8fCJ1bmRlZmluZWQiIT09dHlwZW9mIHNlbGYmJnNlbGZ8fCJ1bmRlZmluZWQiIT09dHlwZW9mIHImJnIsbz0iVVJMU2VhcmNoUGFyYW1zImluIHIsaT0iU3ltYm9sImluIHImJiJpdGVyYXRvciJpbiBTeW1ib2wsYT0iRmlsZVJlYWRlciJpbiByJiYiQmxvYiJpbiByJiZmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEJsb2IsITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLHM9IkZvcm1EYXRhImluIHIsdT0iQXJyYXlCdWZmZXIiaW4gcjtpZih1KXZhciBjPVsiW29iamVjdCBJbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OEFycmF5XSIsIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIiwiW29iamVjdCBJbnQxNkFycmF5XSIsIltvYmplY3QgVWludDE2QXJyYXldIiwiW29iamVjdCBJbnQzMkFycmF5XSIsIltvYmplY3QgVWludDMyQXJyYXldIiwiW29iamVjdCBGbG9hdDMyQXJyYXldIiwiW29iamVjdCBGbG9hdDY0QXJyYXldIl0sbD1BcnJheUJ1ZmZlci5pc1ZpZXd8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZjLmluZGV4T2YoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpKT4tMX07ZnVuY3Rpb24gZihlKXtpZigic3RyaW5nIiE9PXR5cGVvZiBlJiYoZT1TdHJpbmcoZSkpLC9bXmEtejAtOVwtIyQlJicqKy5eX2B8fiFdL2kudGVzdChlKXx8IiI9PT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgY2hhcmFjdGVyIGluIGhlYWRlciBmaWVsZCBuYW1lIik7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBkKGUpe3JldHVybiJzdHJpbmciIT09dHlwZW9mIGUmJihlPVN0cmluZyhlKSksZX1mdW5jdGlvbiBwKGUpe3ZhciB0PXtuZXh0OmZ1bmN0aW9uKCl7dmFyIHQ9ZS5zaGlmdCgpO3JldHVybntkb25lOnZvaWQgMD09PXQsdmFsdWU6dH19fTtyZXR1cm4gaSYmKHRbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0fSksdH1mdW5jdGlvbiBoKGUpe3RoaXMubWFwPXt9LGUgaW5zdGFuY2VvZiBoP2UuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXt0aGlzLmFwcGVuZCh0LGUpfSksdGhpcyk6QXJyYXkuaXNBcnJheShlKT9lLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RoaXMuYXBwZW5kKGVbMF0sZVsxXSl9KSx0aGlzKTplJiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0aGlzLmFwcGVuZCh0LGVbdF0pfSksdGhpcyl9ZnVuY3Rpb24gdihlKXtpZihlLmJvZHlVc2VkKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCJBbHJlYWR5IHJlYWQiKSk7ZS5ib2R5VXNlZD0hMH1mdW5jdGlvbiBnKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxuKXtlLm9ubG9hZD1mdW5jdGlvbigpe3QoZS5yZXN1bHQpfSxlLm9uZXJyb3I9ZnVuY3Rpb24oKXtuKGUuZXJyb3IpfX0pKX1mdW5jdGlvbiB5KGUpe3ZhciB0PW5ldyBGaWxlUmVhZGVyLG49Zyh0KTtyZXR1cm4gdC5yZWFkQXNBcnJheUJ1ZmZlcihlKSxufWZ1bmN0aW9uIG0oZSl7aWYoZS5zbGljZSlyZXR1cm4gZS5zbGljZSgwKTt2YXIgdD1uZXcgVWludDhBcnJheShlLmJ5dGVMZW5ndGgpO3JldHVybiB0LnNldChuZXcgVWludDhBcnJheShlKSksdC5idWZmZXJ9ZnVuY3Rpb24gYigpe3JldHVybiB0aGlzLmJvZHlVc2VkPSExLHRoaXMuX2luaXRCb2R5PWZ1bmN0aW9uKGUpe3ZhciB0O3RoaXMuYm9keVVzZWQ9dGhpcy5ib2R5VXNlZCx0aGlzLl9ib2R5SW5pdD1lLGU/InN0cmluZyI9PT10eXBlb2YgZT90aGlzLl9ib2R5VGV4dD1lOmEmJkJsb2IucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSk/dGhpcy5fYm9keUJsb2I9ZTpzJiZGb3JtRGF0YS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKT90aGlzLl9ib2R5Rm9ybURhdGE9ZTpvJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSk/dGhpcy5fYm9keVRleHQ9ZS50b1N0cmluZygpOnUmJmEmJigodD1lKSYmRGF0YVZpZXcucHJvdG90eXBlLmlzUHJvdG90eXBlT2YodCkpPyh0aGlzLl9ib2R5QXJyYXlCdWZmZXI9bShlLmJ1ZmZlciksdGhpcy5fYm9keUluaXQ9bmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTp1JiYoQXJyYXlCdWZmZXIucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSl8fGwoZSkpP3RoaXMuX2JvZHlBcnJheUJ1ZmZlcj1tKGUpOnRoaXMuX2JvZHlUZXh0PWU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpOnRoaXMuX2JvZHlUZXh0PSIiLHRoaXMuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpfHwoInN0cmluZyI9PT10eXBlb2YgZT90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiKTp0aGlzLl9ib2R5QmxvYiYmdGhpcy5fYm9keUJsb2IudHlwZT90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOm8mJlVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKSYmdGhpcy5oZWFkZXJzLnNldCgiY29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiKSl9LGEmJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgZT12KHRoaXMpO2lmKGUpcmV0dXJuIGU7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2IiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0sdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcil7dmFyIGU9dih0aGlzKTtyZXR1cm4gZXx8KEFycmF5QnVmZmVyLmlzVmlldyh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpP1Byb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnVmZmVyLnNsaWNlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlT2Zmc2V0LHRoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlT2Zmc2V0K3RoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKSk6UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpfXJldHVybiB0aGlzLmJsb2IoKS50aGVuKHkpfSksdGhpcy50ZXh0PWZ1bmN0aW9uKCl7dmFyIGU9dih0aGlzKTtpZihlKXJldHVybiBlO2lmKHRoaXMuX2JvZHlCbG9iKXJldHVybiBmdW5jdGlvbihlKXt2YXIgdD1uZXcgRmlsZVJlYWRlcixuPWcodCk7cmV0dXJuIHQucmVhZEFzVGV4dChlKSxufSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBVaW50OEFycmF5KGUpLG49bmV3IEFycmF5KHQubGVuZ3RoKSxyPTA7cjx0Lmxlbmd0aDtyKyspbltyXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbcl0pO3JldHVybiBuLmpvaW4oIiIpfSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIHRleHQiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlUZXh0KX0scyYmKHRoaXMuZm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbihfKX0pLHRoaXMuanNvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKEpTT04ucGFyc2UpfSx0aGlzfWgucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihlLHQpe2U9ZihlKSx0PWQodCk7dmFyIG49dGhpcy5tYXBbZV07dGhpcy5tYXBbZV09bj9uKyIsICIrdDp0fSxoLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oZSl7ZGVsZXRlIHRoaXMubWFwW2YoZSldfSxoLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZihlKSx0aGlzLmhhcyhlKT90aGlzLm1hcFtlXTpudWxsfSxoLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KGYoZSkpfSxoLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0KXt0aGlzLm1hcFtmKGUpXT1kKHQpfSxoLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHRoaXMubWFwKXRoaXMubWFwLmhhc093blByb3BlcnR5KG4pJiZlLmNhbGwodCx0aGlzLm1hcFtuXSxuLHRoaXMpfSxoLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtlLnB1c2gobil9KSkscChlKX0saC5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5wdXNoKHQpfSkpLHAoZSl9LGgucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe2UucHVzaChbbix0XSl9KSkscChlKX0saSYmKGgucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09aC5wcm90b3R5cGUuZW50cmllcyk7dmFyIHc9WyJERUxFVEUiLCJHRVQiLCJIRUFEIiwiT1BUSU9OUyIsIlBPU1QiLCJQVVQiXTtmdW5jdGlvbiBPKGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgTykpdGhyb3cgbmV3IFR5cGVFcnJvcignUGxlYXNlIHVzZSB0aGUgIm5ldyIgb3BlcmF0b3IsIHRoaXMgRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uJyk7dmFyIG49KHQ9dHx8e30pLmJvZHk7aWYoZSBpbnN0YW5jZW9mIE8pe2lmKGUuYm9keVVzZWQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQWxyZWFkeSByZWFkIik7dGhpcy51cmw9ZS51cmwsdGhpcy5jcmVkZW50aWFscz1lLmNyZWRlbnRpYWxzLHQuaGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgaChlLmhlYWRlcnMpKSx0aGlzLm1ldGhvZD1lLm1ldGhvZCx0aGlzLm1vZGU9ZS5tb2RlLHRoaXMuc2lnbmFsPWUuc2lnbmFsLG58fG51bGw9PWUuX2JvZHlJbml0fHwobj1lLl9ib2R5SW5pdCxlLmJvZHlVc2VkPSEwKX1lbHNlIHRoaXMudXJsPVN0cmluZyhlKTtpZih0aGlzLmNyZWRlbnRpYWxzPXQuY3JlZGVudGlhbHN8fHRoaXMuY3JlZGVudGlhbHN8fCJzYW1lLW9yaWdpbiIsIXQuaGVhZGVycyYmdGhpcy5oZWFkZXJzfHwodGhpcy5oZWFkZXJzPW5ldyBoKHQuaGVhZGVycykpLHRoaXMubWV0aG9kPWZ1bmN0aW9uKGUpe3ZhciB0PWUudG9VcHBlckNhc2UoKTtyZXR1cm4gdy5pbmRleE9mKHQpPi0xP3Q6ZX0odC5tZXRob2R8fHRoaXMubWV0aG9kfHwiR0VUIiksdGhpcy5tb2RlPXQubW9kZXx8dGhpcy5tb2RlfHxudWxsLHRoaXMuc2lnbmFsPXQuc2lnbmFsfHx0aGlzLnNpZ25hbCx0aGlzLnJlZmVycmVyPW51bGwsKCJHRVQiPT09dGhpcy5tZXRob2R8fCJIRUFEIj09PXRoaXMubWV0aG9kKSYmbil0aHJvdyBuZXcgVHlwZUVycm9yKCJCb2R5IG5vdCBhbGxvd2VkIGZvciBHRVQgb3IgSEVBRCByZXF1ZXN0cyIpO2lmKHRoaXMuX2luaXRCb2R5KG4pLCgiR0VUIj09PXRoaXMubWV0aG9kfHwiSEVBRCI9PT10aGlzLm1ldGhvZCkmJigibm8tc3RvcmUiPT09dC5jYWNoZXx8Im5vLWNhY2hlIj09PXQuY2FjaGUpKXt2YXIgcj0vKFs/Jl0pXz1bXiZdKi87aWYoci50ZXN0KHRoaXMudXJsKSl0aGlzLnVybD10aGlzLnVybC5yZXBsYWNlKHIsIiQxXz0iKyhuZXcgRGF0ZSkuZ2V0VGltZSgpKTtlbHNle3RoaXMudXJsKz0oL1w/Ly50ZXN0KHRoaXMudXJsKT8iJiI6Ij8iKSsiXz0iKyhuZXcgRGF0ZSkuZ2V0VGltZSgpfX19ZnVuY3Rpb24gXyhlKXt2YXIgdD1uZXcgRm9ybURhdGE7cmV0dXJuIGUudHJpbSgpLnNwbGl0KCImIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZSl7dmFyIG49ZS5zcGxpdCgiPSIpLHI9bi5zaGlmdCgpLnJlcGxhY2UoL1wrL2csIiAiKSxvPW4uam9pbigiPSIpLnJlcGxhY2UoL1wrL2csIiAiKTt0LmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQociksZGVjb2RlVVJJQ29tcG9uZW50KG8pKX19KSksdH1mdW5jdGlvbiBFKGUpe3ZhciB0PW5ldyBoO3JldHVybiBlLnJlcGxhY2UoL1xyP1xuW1x0IF0rL2csIiAiKS5zcGxpdCgiXHIiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiAwPT09ZS5pbmRleE9mKCJcbiIpP2Uuc3Vic3RyKDEsZS5sZW5ndGgpOmV9KSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5zcGxpdCgiOiIpLHI9bi5zaGlmdCgpLnRyaW0oKTtpZihyKXt2YXIgbz1uLmpvaW4oIjoiKS50cmltKCk7dC5hcHBlbmQocixvKX19KSksdH1mdW5jdGlvbiBDKGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgQykpdGhyb3cgbmV3IFR5cGVFcnJvcignUGxlYXNlIHVzZSB0aGUgIm5ldyIgb3BlcmF0b3IsIHRoaXMgRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uJyk7dHx8KHQ9e30pLHRoaXMudHlwZT0iZGVmYXVsdCIsdGhpcy5zdGF0dXM9dm9pZCAwPT09dC5zdGF0dXM/MjAwOnQuc3RhdHVzLHRoaXMub2s9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwLHRoaXMuc3RhdHVzVGV4dD0ic3RhdHVzVGV4dCJpbiB0P3Quc3RhdHVzVGV4dDoiIix0aGlzLmhlYWRlcnM9bmV3IGgodC5oZWFkZXJzKSx0aGlzLnVybD10LnVybHx8IiIsdGhpcy5faW5pdEJvZHkoZSl9Ty5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE8odGhpcyx7Ym9keTp0aGlzLl9ib2R5SW5pdH0pfSxiLmNhbGwoTy5wcm90b3R5cGUpLGIuY2FsbChDLnByb3RvdHlwZSksQy5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEModGhpcy5fYm9keUluaXQse3N0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnRoaXMuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBoKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LEMuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgQyhudWxsLHtzdGF0dXM6MCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIGUudHlwZT0iZXJyb3IiLGV9O3ZhciBTPVszMDEsMzAyLDMwMywzMDcsMzA4XTtDLnJlZGlyZWN0PWZ1bmN0aW9uKGUsdCl7aWYoLTE9PT1TLmluZGV4T2YodCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgc3RhdHVzIGNvZGUiKTtyZXR1cm4gbmV3IEMobnVsbCx7c3RhdHVzOnQsaGVhZGVyczp7bG9jYXRpb246ZX19KX07dmFyIGs9ci5ET01FeGNlcHRpb247dHJ5e25ldyBrfWNhdGNoKEEpeyhrPWZ1bmN0aW9uKGUsdCl7dGhpcy5tZXNzYWdlPWUsdGhpcy5uYW1lPXQ7dmFyIG49RXJyb3IoZSk7dGhpcy5zdGFjaz1uLnN0YWNrfSkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxrLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1rfWZ1bmN0aW9uIHgoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4sbyl7dmFyIGk9bmV3IE8oZSx0KTtpZihpLnNpZ25hbCYmaS5zaWduYWwuYWJvcnRlZClyZXR1cm4gbyhuZXcgaygiQWJvcnRlZCIsIkFib3J0RXJyb3IiKSk7dmFyIHM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Z1bmN0aW9uIGMoKXtzLmFib3J0KCl9cy5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT17c3RhdHVzOnMuc3RhdHVzLHN0YXR1c1RleHQ6cy5zdGF0dXNUZXh0LGhlYWRlcnM6RShzLmdldEFsbFJlc3BvbnNlSGVhZGVycygpfHwiIil9O2UudXJsPSJyZXNwb25zZVVSTCJpbiBzP3MucmVzcG9uc2VVUkw6ZS5oZWFkZXJzLmdldCgiWC1SZXF1ZXN0LVVSTCIpO3ZhciB0PSJyZXNwb25zZSJpbiBzP3MucmVzcG9uc2U6cy5yZXNwb25zZVRleHQ7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtuKG5ldyBDKHQsZSkpfSksMCl9LHMub25lcnJvcj1mdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7byhuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSksMCl9LHMub250aW1lb3V0PWZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtvKG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9KSwwKX0scy5vbmFib3J0PWZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtvKG5ldyBrKCJBYm9ydGVkIiwiQWJvcnRFcnJvciIpKX0pLDApfSxzLm9wZW4oaS5tZXRob2QsZnVuY3Rpb24oZSl7dHJ5e3JldHVybiIiPT09ZSYmci5sb2NhdGlvbi5ocmVmP3IubG9jYXRpb24uaHJlZjplfWNhdGNoKHQpe3JldHVybiBlfX0oaS51cmwpLCEwKSwiaW5jbHVkZSI9PT1pLmNyZWRlbnRpYWxzP3Mud2l0aENyZWRlbnRpYWxzPSEwOiJvbWl0Ij09PWkuY3JlZGVudGlhbHMmJihzLndpdGhDcmVkZW50aWFscz0hMSksInJlc3BvbnNlVHlwZSJpbiBzJiYoYT9zLnJlc3BvbnNlVHlwZT0iYmxvYiI6dSYmaS5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIikmJi0xIT09aS5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIikuaW5kZXhPZigiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIikmJihzLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiKSksIXR8fCJvYmplY3QiIT09dHlwZW9mIHQuaGVhZGVyc3x8dC5oZWFkZXJzIGluc3RhbmNlb2YgaD9pLmhlYWRlcnMuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtzLnNldFJlcXVlc3RIZWFkZXIodCxlKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0LmhlYWRlcnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3Muc2V0UmVxdWVzdEhlYWRlcihlLGQodC5oZWFkZXJzW2VdKSl9KSksaS5zaWduYWwmJihpLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsYykscy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09cy5yZWFkeVN0YXRlJiZpLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsYyl9KSxzLnNlbmQoInVuZGVmaW5lZCI9PT10eXBlb2YgaS5fYm9keUluaXQ/bnVsbDppLl9ib2R5SW5pdCl9KSl9eC5wb2x5ZmlsbD0hMCxyLmZldGNofHwoci5mZXRjaD14LHIuSGVhZGVycz1oLHIuUmVxdWVzdD1PLHIuUmVzcG9uc2U9Qyl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxNzMpLG89NjAxMDMsaT02MDEwNjt0LkZyYWdtZW50PTYwMTA3LHQuU3RyaWN0TW9kZT02MDEwOCx0LlByb2ZpbGVyPTYwMTE0O3ZhciBhPTYwMTA5LHM9NjAxMTAsdT02MDExMjt0LlN1c3BlbnNlPTYwMTEzO3ZhciBjPTYwMTE1LGw9NjAxMTY7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Ipe3ZhciBmPVN5bWJvbC5mb3I7bz1mKCJyZWFjdC5lbGVtZW50IiksaT1mKCJyZWFjdC5wb3J0YWwiKSx0LkZyYWdtZW50PWYoInJlYWN0LmZyYWdtZW50IiksdC5TdHJpY3RNb2RlPWYoInJlYWN0LnN0cmljdF9tb2RlIiksdC5Qcm9maWxlcj1mKCJyZWFjdC5wcm9maWxlciIpLGE9ZigicmVhY3QucHJvdmlkZXIiKSxzPWYoInJlYWN0LmNvbnRleHQiKSx1PWYoInJlYWN0LmZvcndhcmRfcmVmIiksdC5TdXNwZW5zZT1mKCJyZWFjdC5zdXNwZW5zZSIpLGM9ZigicmVhY3QubWVtbyIpLGw9ZigicmVhY3QubGF6eSIpfXZhciBkPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gcChlKXtmb3IodmFyIHQ9Imh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PSIrZSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbbl0pO3JldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitlKyI7IHZpc2l0ICIrdCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifXZhciBoPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSx2PXt9O2Z1bmN0aW9uIGcoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9dix0aGlzLnVwZGF0ZXI9bnx8aH1mdW5jdGlvbiB5KCl7fWZ1bmN0aW9uIG0oZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9dix0aGlzLnVwZGF0ZXI9bnx8aH1nLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LGcucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT10eXBlb2YgZSYmImZ1bmN0aW9uIiE9PXR5cGVvZiBlJiZudWxsIT1lKXRocm93IEVycm9yKHAoODUpKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZSx0LCJzZXRTdGF0ZSIpfSxnLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsZSwiZm9yY2VVcGRhdGUiKX0seS5wcm90b3R5cGU9Zy5wcm90b3R5cGU7dmFyIGI9bS5wcm90b3R5cGU9bmV3IHk7Yi5jb25zdHJ1Y3Rvcj1tLHIoYixnLnByb3RvdHlwZSksYi5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgdz17Y3VycmVudDpudWxsfSxPPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXz17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O2Z1bmN0aW9uIEUoZSx0LG4pe3ZhciByLGk9e30sYT1udWxsLHM9bnVsbDtpZihudWxsIT10KWZvcihyIGluIHZvaWQgMCE9PXQucmVmJiYocz10LnJlZiksdm9pZCAwIT09dC5rZXkmJihhPSIiK3Qua2V5KSx0KU8uY2FsbCh0LHIpJiYhXy5oYXNPd25Qcm9wZXJ0eShyKSYmKGlbcl09dFtyXSk7dmFyIHU9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT11KWkuY2hpbGRyZW49bjtlbHNlIGlmKDE8dSl7Zm9yKHZhciBjPUFycmF5KHUpLGw9MDtsPHU7bCsrKWNbbF09YXJndW1lbnRzW2wrMl07aS5jaGlsZHJlbj1jfWlmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihyIGluIHU9ZS5kZWZhdWx0UHJvcHMpdm9pZCAwPT09aVtyXSYmKGlbcl09dVtyXSk7cmV0dXJueyQkdHlwZW9mOm8sdHlwZTplLGtleTphLHJlZjpzLHByb3BzOmksX293bmVyOncuY3VycmVudH19ZnVuY3Rpb24gQyhlKXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiBlJiZudWxsIT09ZSYmZS4kJHR5cGVvZj09PW99dmFyIFM9L1wvKy9nO2Z1bmN0aW9uIGsoZSx0KXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/ZnVuY3Rpb24oZSl7dmFyIHQ9eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrZS5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpfSgiIitlLmtleSk6dC50b1N0cmluZygzNil9ZnVuY3Rpb24geChlLHQsbixyLGEpe3ZhciBzPXR5cGVvZiBlOyJ1bmRlZmluZWQiIT09cyYmImJvb2xlYW4iIT09c3x8KGU9bnVsbCk7dmFyIHU9ITE7aWYobnVsbD09PWUpdT0hMDtlbHNlIHN3aXRjaChzKXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOnU9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIG86Y2FzZSBpOnU9ITB9fWlmKHUpcmV0dXJuIGE9YSh1PWUpLGU9IiI9PT1yPyIuIitrKHUsMCk6cixBcnJheS5pc0FycmF5KGEpPyhuPSIiLG51bGwhPWUmJihuPWUucmVwbGFjZShTLCIkJi8iKSsiLyIpLHgoYSx0LG4sIiIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpKTpudWxsIT1hJiYoQyhhKSYmKGE9ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6byx0eXBlOmUudHlwZSxrZXk6dCxyZWY6ZS5yZWYscHJvcHM6ZS5wcm9wcyxfb3duZXI6ZS5fb3duZXJ9fShhLG4rKCFhLmtleXx8dSYmdS5rZXk9PT1hLmtleT8iIjooIiIrYS5rZXkpLnJlcGxhY2UoUywiJCYvIikrIi8iKStlKSksdC5wdXNoKGEpKSwxO2lmKHU9MCxyPSIiPT09cj8iLiI6cisiOiIsQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIGM9MDtjPGUubGVuZ3RoO2MrKyl7dmFyIGw9citrKHM9ZVtjXSxjKTt1Kz14KHMsdCxuLGwsYSl9ZWxzZSBpZigiZnVuY3Rpb24iPT09dHlwZW9mKGw9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT1lfHwib2JqZWN0IiE9PXR5cGVvZiBlP251bGw6ImZ1bmN0aW9uIj09PXR5cGVvZihlPWQmJmVbZF18fGVbIkBAaXRlcmF0b3IiXSk/ZTpudWxsfShlKSkpZm9yKGU9bC5jYWxsKGUpLGM9MDshKHM9ZS5uZXh0KCkpLmRvbmU7KXUrPXgocz1zLnZhbHVlLHQsbixsPXIrayhzLGMrKyksYSk7ZWxzZSBpZigib2JqZWN0Ij09PXMpdGhyb3cgdD0iIitlLEVycm9yKHAoMzEsIltvYmplY3QgT2JqZWN0XSI9PT10PyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGUpLmpvaW4oIiwgIikrIn0iOnQpKTtyZXR1cm4gdX1mdW5jdGlvbiBBKGUsdCxuKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciByPVtdLG89MDtyZXR1cm4geChlLHIsIiIsIiIsKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwobixlLG8rKyl9KSkscn1mdW5jdGlvbiBqKGUpe2lmKC0xPT09ZS5fc3RhdHVzKXt2YXIgdD1lLl9yZXN1bHQ7dD10KCksZS5fc3RhdHVzPTAsZS5fcmVzdWx0PXQsdC50aGVuKChmdW5jdGlvbih0KXswPT09ZS5fc3RhdHVzJiYodD10LmRlZmF1bHQsZS5fc3RhdHVzPTEsZS5fcmVzdWx0PXQpfSksKGZ1bmN0aW9uKHQpezA9PT1lLl9zdGF0dXMmJihlLl9zdGF0dXM9MixlLl9yZXN1bHQ9dCl9KSl9aWYoMT09PWUuX3N0YXR1cylyZXR1cm4gZS5fcmVzdWx0O3Rocm93IGUuX3Jlc3VsdH12YXIgVD17Y3VycmVudDpudWxsfTtmdW5jdGlvbiBQKCl7dmFyIGU9VC5jdXJyZW50O2lmKG51bGw9PT1lKXRocm93IEVycm9yKHAoMzIxKSk7cmV0dXJuIGV9dmFyIEk9e1JlYWN0Q3VycmVudERpc3BhdGNoZXI6VCxSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzp7dHJhbnNpdGlvbjowfSxSZWFjdEN1cnJlbnRPd25lcjp3LElzU29tZVJlbmRlcmVyQWN0aW5nOntjdXJyZW50OiExfSxhc3NpZ246cn07dC5DaGlsZHJlbj17bWFwOkEsZm9yRWFjaDpmdW5jdGlvbihlLHQsbil7QShlLChmdW5jdGlvbigpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksbil9LGNvdW50OmZ1bmN0aW9uKGUpe3ZhciB0PTA7cmV0dXJuIEEoZSwoZnVuY3Rpb24oKXt0Kyt9KSksdH0sdG9BcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gQShlLChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKXx8W119LG9ubHk6ZnVuY3Rpb24oZSl7aWYoIUMoZSkpdGhyb3cgRXJyb3IocCgxNDMpKTtyZXR1cm4gZX19LHQuQ29tcG9uZW50PWcsdC5QdXJlQ29tcG9uZW50PW0sdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1JLHQuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtpZihudWxsPT09ZXx8dm9pZCAwPT09ZSl0aHJvdyBFcnJvcihwKDI2NyxlKSk7dmFyIGk9cih7fSxlLnByb3BzKSxhPWUua2V5LHM9ZS5yZWYsdT1lLl9vd25lcjtpZihudWxsIT10KXtpZih2b2lkIDAhPT10LnJlZiYmKHM9dC5yZWYsdT13LmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYoYT0iIit0LmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzKXZhciBjPWUudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGwgaW4gdClPLmNhbGwodCxsKSYmIV8uaGFzT3duUHJvcGVydHkobCkmJihpW2xdPXZvaWQgMD09PXRbbF0mJnZvaWQgMCE9PWM/Y1tsXTp0W2xdKX12YXIgbD1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWwpaS5jaGlsZHJlbj1uO2Vsc2UgaWYoMTxsKXtjPUFycmF5KGwpO2Zvcih2YXIgZj0wO2Y8bDtmKyspY1tmXT1hcmd1bWVudHNbZisyXTtpLmNoaWxkcmVuPWN9cmV0dXJueyQkdHlwZW9mOm8sdHlwZTplLnR5cGUsa2V5OmEscmVmOnMscHJvcHM6aSxfb3duZXI6dX19LHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1udWxsKSwoZT17JCR0eXBlb2Y6cyxfY2FsY3VsYXRlQ2hhbmdlZEJpdHM6dCxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6YSxfY29udGV4dDplfSxlLkNvbnN1bWVyPWV9LHQuY3JlYXRlRWxlbWVudD1FLHQuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgdD1FLmJpbmQobnVsbCxlKTtyZXR1cm4gdC50eXBlPWUsdH0sdC5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sdC5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjp1LHJlbmRlcjplfX0sdC5pc1ZhbGlkRWxlbWVudD1DLHQubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6bCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0Omp9fSx0Lm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6Yyx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LHQudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gUCgpLnVzZUNhbGxiYWNrKGUsdCl9LHQudXNlQ29udGV4dD1mdW5jdGlvbihlLHQpe3JldHVybiBQKCkudXNlQ29udGV4dChlLHQpfSx0LnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LHQudXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFAoKS51c2VFZmZlY3QoZSx0KX0sdC51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gUCgpLnVzZUltcGVyYXRpdmVIYW5kbGUoZSx0LG4pfSx0LnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBQKCkudXNlTGF5b3V0RWZmZWN0KGUsdCl9LHQudXNlTWVtbz1mdW5jdGlvbihlLHQpe3JldHVybiBQKCkudXNlTWVtbyhlLHQpfSx0LnVzZVJlZHVjZXI9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBQKCkudXNlUmVkdWNlcihlLHQsbil9LHQudXNlUmVmPWZ1bmN0aW9uKGUpe3JldHVybiBQKCkudXNlUmVmKGUpfSx0LnVzZVN0YXRlPWZ1bmN0aW9uKGUpe3JldHVybiBQKCkudXNlU3RhdGUoZSl9LHQudmVyc2lvbj0iMTcuMC4xIn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQpLG89bigxNzMpLGk9bigyNDMpO2Z1bmN0aW9uIGEoZSl7Zm9yKHZhciB0PSJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD0iK2Usbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdCs9IiZhcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW25dKTtyZXR1cm4iTWluaWZpZWQgUmVhY3QgZXJyb3IgIyIrZSsiOyB2aXNpdCAiK3QrIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuIn1pZighcil0aHJvdyBFcnJvcihhKDIyNykpO3ZhciBzPW5ldyBTZXQsdT17fTtmdW5jdGlvbiBjKGUsdCl7bChlLHQpLGwoZSsiQ2FwdHVyZSIsdCl9ZnVuY3Rpb24gbChlLHQpe2Zvcih1W2VdPXQsZT0wO2U8dC5sZW5ndGg7ZSsrKXMuYWRkKHRbZV0pfXZhciBmPSEoInVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93fHwidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnR8fCJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSxkPS9eWzpBLVpfYS16XHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMkZGXHUwMzcwLVx1MDM3RFx1MDM3Ri1cdTFGRkZcdTIwMEMtXHUyMDBEXHUyMDcwLVx1MjE4Rlx1MkMwMC1cdTJGRUZcdTMwMDEtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRkRdWzpBLVpfYS16XHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMkZGXHUwMzcwLVx1MDM3RFx1MDM3Ri1cdTFGRkZcdTIwMEMtXHUyMDBEXHUyMDcwLVx1MjE4Rlx1MkMwMC1cdTJGRUZcdTMwMDEtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRkRcLS4wLTlcdTAwQjdcdTAzMDAtXHUwMzZGXHUyMDNGLVx1MjA0MF0qJC8scD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGg9e30sdj17fTtmdW5jdGlvbiBnKGUsdCxuLHIsbyxpLGEpe3RoaXMuYWNjZXB0c0Jvb2xlYW5zPTI9PT10fHwzPT09dHx8ND09PXQsdGhpcy5hdHRyaWJ1dGVOYW1lPXIsdGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2U9byx0aGlzLm11c3RVc2VQcm9wZXJ0eT1uLHRoaXMucHJvcGVydHlOYW1lPWUsdGhpcy50eXBlPXQsdGhpcy5zYW5pdGl6ZVVSTD1pLHRoaXMucmVtb3ZlRW1wdHlTdHJpbmc9YX12YXIgeT17fTsiY2hpbGRyZW4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgZGVmYXVsdFZhbHVlIGRlZmF1bHRDaGVja2VkIGlubmVySFRNTCBzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIHN0eWxlIi5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3lbZV09bmV3IGcoZSwwLCExLGUsbnVsbCwhMSwhMSl9KSksW1siYWNjZXB0Q2hhcnNldCIsImFjY2VwdC1jaGFyc2V0Il0sWyJjbGFzc05hbWUiLCJjbGFzcyJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lWzBdO3lbdF09bmV3IGcodCwxLCExLGVbMV0sbnVsbCwhMSwhMSl9KSksWyJjb250ZW50RWRpdGFibGUiLCJkcmFnZ2FibGUiLCJzcGVsbENoZWNrIiwidmFsdWUiXS5mb3JFYWNoKChmdW5jdGlvbihlKXt5W2VdPW5ldyBnKGUsMiwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSksWyJhdXRvUmV2ZXJzZSIsImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiLCJmb2N1c2FibGUiLCJwcmVzZXJ2ZUFscGhhIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7eVtlXT1uZXcgZyhlLDIsITEsZSxudWxsLCExLCExKX0pKSwiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZSIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt5W2VdPW5ldyBnKGUsMywhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSksWyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7eVtlXT1uZXcgZyhlLDMsITAsZSxudWxsLCExLCExKX0pKSxbImNhcHR1cmUiLCJkb3dubG9hZCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3lbZV09bmV3IGcoZSw0LCExLGUsbnVsbCwhMSwhMSl9KSksWyJjb2xzIiwicm93cyIsInNpemUiLCJzcGFuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7eVtlXT1uZXcgZyhlLDYsITEsZSxudWxsLCExLCExKX0pKSxbInJvd1NwYW4iLCJzdGFydCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3lbZV09bmV3IGcoZSw1LCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pKTt2YXIgbT0vW1wtOl0oW2Etel0pL2c7ZnVuY3Rpb24gYihlKXtyZXR1cm4gZVsxXS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIHcoZSx0LG4scil7dmFyIG89eS5oYXNPd25Qcm9wZXJ0eSh0KT95W3RdOm51bGw7KG51bGwhPT1vPzA9PT1vLnR5cGU6IXImJigyPHQubGVuZ3RoJiYoIm8iPT09dFswXXx8Ik8iPT09dFswXSkmJigibiI9PT10WzFdfHwiTiI9PT10WzFdKSkpfHwoZnVuY3Rpb24oZSx0LG4scil7aWYobnVsbD09PXR8fCJ1bmRlZmluZWQiPT09dHlwZW9mIHR8fGZ1bmN0aW9uKGUsdCxuLHIpe2lmKG51bGwhPT1uJiYwPT09bi50eXBlKXJldHVybiExO3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOnJldHVybiEwO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIXImJihudWxsIT09bj8hbi5hY2NlcHRzQm9vbGVhbnM6ImRhdGEtIiE9PShlPWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpKSYmImFyaWEtIiE9PWUpO2RlZmF1bHQ6cmV0dXJuITF9fShlLHQsbixyKSlyZXR1cm4hMDtpZihyKXJldHVybiExO2lmKG51bGwhPT1uKXN3aXRjaChuLnR5cGUpe2Nhc2UgMzpyZXR1cm4hdDtjYXNlIDQ6cmV0dXJuITE9PT10O2Nhc2UgNTpyZXR1cm4gaXNOYU4odCk7Y2FzZSA2OnJldHVybiBpc05hTih0KXx8MT50fXJldHVybiExfSh0LG4sbyxyKSYmKG49bnVsbCkscnx8bnVsbD09PW8/ZnVuY3Rpb24oZSl7cmV0dXJuISFwLmNhbGwodixlKXx8IXAuY2FsbChoLGUpJiYoZC50ZXN0KGUpP3ZbZV09ITA6KGhbZV09ITAsITEpKX0odCkmJihudWxsPT09bj9lLnJlbW92ZUF0dHJpYnV0ZSh0KTplLnNldEF0dHJpYnV0ZSh0LCIiK24pKTpvLm11c3RVc2VQcm9wZXJ0eT9lW28ucHJvcGVydHlOYW1lXT1udWxsPT09bj8zIT09by50eXBlJiYiIjpuOih0PW8uYXR0cmlidXRlTmFtZSxyPW8uYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT1uP2UucmVtb3ZlQXR0cmlidXRlKHQpOihuPTM9PT0obz1vLnR5cGUpfHw0PT09byYmITA9PT1uPyIiOiIiK24scj9lLnNldEF0dHJpYnV0ZU5TKHIsdCxuKTplLnNldEF0dHJpYnV0ZSh0LG4pKSkpfSJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodCIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UobSxiKTt5W3RdPW5ldyBnKHQsMSwhMSxlLG51bGwsITEsITEpfSkpLCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6cm9sZSB4bGluazpzaG93IHhsaW5rOnRpdGxlIHhsaW5rOnR5cGUiLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKG0sYik7eVt0XT1uZXcgZyh0LDEsITEsZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsITEsITEpfSkpLFsieG1sOmJhc2UiLCJ4bWw6bGFuZyIsInhtbDpzcGFjZSJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShtLGIpO3lbdF09bmV3IGcodCwxLCExLGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsITEsITEpfSkpLFsidGFiSW5kZXgiLCJjcm9zc09yaWdpbiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3lbZV09bmV3IGcoZSwxLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pKSx5LnhsaW5rSHJlZj1uZXcgZygieGxpbmtIcmVmIiwxLCExLCJ4bGluazpocmVmIiwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsITAsITEpLFsic3JjIiwiaHJlZiIsImFjdGlvbiIsImZvcm1BY3Rpb24iXS5mb3JFYWNoKChmdW5jdGlvbihlKXt5W2VdPW5ldyBnKGUsMSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMCwhMCl9KSk7dmFyIE89ci5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxfPTYwMTAzLEU9NjAxMDYsQz02MDEwNyxTPTYwMTA4LGs9NjAxMTQseD02MDEwOSxBPTYwMTEwLGo9NjAxMTIsVD02MDExMyxQPTYwMTIwLEk9NjAxMTUsUj02MDExNixEPTYwMTIxLE49NjAxMjgsTD02MDEyOSxGPTYwMTMwLE09NjAxMzE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Ipe3ZhciBCPVN5bWJvbC5mb3I7Xz1CKCJyZWFjdC5lbGVtZW50IiksRT1CKCJyZWFjdC5wb3J0YWwiKSxDPUIoInJlYWN0LmZyYWdtZW50IiksUz1CKCJyZWFjdC5zdHJpY3RfbW9kZSIpLGs9QigicmVhY3QucHJvZmlsZXIiKSx4PUIoInJlYWN0LnByb3ZpZGVyIiksQT1CKCJyZWFjdC5jb250ZXh0Iiksaj1CKCJyZWFjdC5mb3J3YXJkX3JlZiIpLFQ9QigicmVhY3Quc3VzcGVuc2UiKSxQPUIoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSxJPUIoInJlYWN0Lm1lbW8iKSxSPUIoInJlYWN0LmxhenkiKSxEPUIoInJlYWN0LmJsb2NrIiksQigicmVhY3Quc2NvcGUiKSxOPUIoInJlYWN0Lm9wYXF1ZS5pZCIpLEw9QigicmVhY3QuZGVidWdfdHJhY2VfbW9kZSIpLEY9QigicmVhY3Qub2Zmc2NyZWVuIiksTT1CKCJyZWFjdC5sZWdhY3lfaGlkZGVuIil9dmFyIFUsej0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIFYoZSl7cmV0dXJuIG51bGw9PT1lfHwib2JqZWN0IiE9PXR5cGVvZiBlP251bGw6ImZ1bmN0aW9uIj09PXR5cGVvZihlPXomJmVbel18fGVbIkBAaXRlcmF0b3IiXSk/ZTpudWxsfWZ1bmN0aW9uIEgoZSl7aWYodm9pZCAwPT09VSl0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChuKXt2YXIgdD1uLnN0YWNrLnRyaW0oKS5tYXRjaCgvXG4oICooYXQgKT8pLyk7VT10JiZ0WzFdfHwiIn1yZXR1cm4iXG4iK1UrZX12YXIgVz0hMTtmdW5jdGlvbiBxKGUsdCl7aWYoIWV8fFcpcmV0dXJuIiI7Vz0hMDt2YXIgbj1FcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT12b2lkIDA7dHJ5e2lmKHQpaWYodD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLCJvYmplY3QiPT09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuY29uc3RydWN0KXt0cnl7UmVmbGVjdC5jb25zdHJ1Y3QodCxbXSl9Y2F0Y2godSl7dmFyIHI9dX1SZWZsZWN0LmNvbnN0cnVjdChlLFtdLHQpfWVsc2V7dHJ5e3QuY2FsbCgpfWNhdGNoKHUpe3I9dX1lLmNhbGwodC5wcm90b3R5cGUpfWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2godSl7cj11fWUoKX19Y2F0Y2godSl7aWYodSYmciYmInN0cmluZyI9PT10eXBlb2YgdS5zdGFjayl7Zm9yKHZhciBvPXUuc3RhY2suc3BsaXQoIlxuIiksaT1yLnN0YWNrLnNwbGl0KCJcbiIpLGE9by5sZW5ndGgtMSxzPWkubGVuZ3RoLTE7MTw9YSYmMDw9cyYmb1thXSE9PWlbc107KXMtLTtmb3IoOzE8PWEmJjA8PXM7YS0tLHMtLSlpZihvW2FdIT09aVtzXSl7aWYoMSE9PWF8fDEhPT1zKWRve2lmKGEtLSwwPi0tc3x8b1thXSE9PWlbc10pcmV0dXJuIlxuIitvW2FdLnJlcGxhY2UoIiBhdCBuZXcgIiwiIGF0ICIpfXdoaWxlKDE8PWEmJjA8PXMpO2JyZWFrfX19ZmluYWxseXtXPSExLEVycm9yLnByZXBhcmVTdGFja1RyYWNlPW59cmV0dXJuKGU9ZT9lLmRpc3BsYXlOYW1lfHxlLm5hbWU6IiIpP0goZSk6IiJ9ZnVuY3Rpb24gJChlKXtzd2l0Y2goZS50YWcpe2Nhc2UgNTpyZXR1cm4gSChlLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIEgoIkxhenkiKTtjYXNlIDEzOnJldHVybiBIKCJTdXNwZW5zZSIpO2Nhc2UgMTk6cmV0dXJuIEgoIlN1c3BlbnNlTGlzdCIpO2Nhc2UgMDpjYXNlIDI6Y2FzZSAxNTpyZXR1cm4gZT1xKGUudHlwZSwhMSk7Y2FzZSAxMTpyZXR1cm4gZT1xKGUudHlwZS5yZW5kZXIsITEpO2Nhc2UgMjI6cmV0dXJuIGU9cShlLnR5cGUuX3JlbmRlciwhMSk7Y2FzZSAxOnJldHVybiBlPXEoZS50eXBlLCEwKTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBZKGUpe2lmKG51bGw9PWUpcmV0dXJuIG51bGw7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBlKXJldHVybiBlLmRpc3BsYXlOYW1lfHxlLm5hbWV8fG51bGw7aWYoInN0cmluZyI9PT10eXBlb2YgZSlyZXR1cm4gZTtzd2l0Y2goZSl7Y2FzZSBDOnJldHVybiJGcmFnbWVudCI7Y2FzZSBFOnJldHVybiJQb3J0YWwiO2Nhc2UgazpyZXR1cm4iUHJvZmlsZXIiO2Nhc2UgUzpyZXR1cm4iU3RyaWN0TW9kZSI7Y2FzZSBUOnJldHVybiJTdXNwZW5zZSI7Y2FzZSBQOnJldHVybiJTdXNwZW5zZUxpc3QifWlmKCJvYmplY3QiPT09dHlwZW9mIGUpc3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgQTpyZXR1cm4oZS5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLkNvbnN1bWVyIjtjYXNlIHg6cmV0dXJuKGUuX2NvbnRleHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Qcm92aWRlciI7Y2FzZSBqOnZhciB0PWUucmVuZGVyO3JldHVybiB0PXQuZGlzcGxheU5hbWV8fHQubmFtZXx8IiIsZS5kaXNwbGF5TmFtZXx8KCIiIT09dD8iRm9yd2FyZFJlZigiK3QrIikiOiJGb3J3YXJkUmVmIik7Y2FzZSBJOnJldHVybiBZKGUudHlwZSk7Y2FzZSBEOnJldHVybiBZKGUuX3JlbmRlcik7Y2FzZSBSOnQ9ZS5fcGF5bG9hZCxlPWUuX2luaXQ7dHJ5e3JldHVybiBZKGUodCkpfWNhdGNoKG4pe319cmV0dXJuIG51bGx9ZnVuY3Rpb24gRyhlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2UiYm9vbGVhbiI6Y2FzZSJudW1iZXIiOmNhc2Uib2JqZWN0IjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIEsoZSl7dmFyIHQ9ZS50eXBlO3JldHVybihlPWUubm9kZU5hbWUpJiYiaW5wdXQiPT09ZS50b0xvd2VyQ2FzZSgpJiYoImNoZWNrYm94Ij09PXR8fCJyYWRpbyI9PT10KX1mdW5jdGlvbiBYKGUpe2UuX3ZhbHVlVHJhY2tlcnx8KGUuX3ZhbHVlVHJhY2tlcj1mdW5jdGlvbihlKXt2YXIgdD1LKGUpPyJjaGVja2VkIjoidmFsdWUiLG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSx0KSxyPSIiK2VbdF07aWYoIWUuaGFzT3duUHJvcGVydHkodCkmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG4mJiJmdW5jdGlvbiI9PT10eXBlb2Ygbi5nZXQmJiJmdW5jdGlvbiI9PT10eXBlb2Ygbi5zZXQpe3ZhciBvPW4uZ2V0LGk9bi5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oZSl7cj0iIitlLGkuY2FsbCh0aGlzLGUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6bi5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHNldFZhbHVlOmZ1bmN0aW9uKGUpe3I9IiIrZX0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7ZS5fdmFsdWVUcmFja2VyPW51bGwsZGVsZXRlIGVbdF19fX19KGUpKX1mdW5jdGlvbiBRKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PWUuX3ZhbHVlVHJhY2tlcjtpZighdClyZXR1cm4hMDt2YXIgbj10LmdldFZhbHVlKCkscj0iIjtyZXR1cm4gZSYmKHI9SyhlKT9lLmNoZWNrZWQ/InRydWUiOiJmYWxzZSI6ZS52YWx1ZSksKGU9cikhPT1uJiYodC5zZXRWYWx1ZShlKSwhMCl9ZnVuY3Rpb24gSihlKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZihlPWV8fCgidW5kZWZpbmVkIiE9PXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApKSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGUuYWN0aXZlRWxlbWVudHx8ZS5ib2R5fWNhdGNoKHQpe3JldHVybiBlLmJvZHl9fWZ1bmN0aW9uIFooZSx0KXt2YXIgbj10LmNoZWNrZWQ7cmV0dXJuIG8oe30sdCx7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9bj9uOmUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIGVlKGUsdCl7dmFyIG49bnVsbD09dC5kZWZhdWx0VmFsdWU/IiI6dC5kZWZhdWx0VmFsdWUscj1udWxsIT10LmNoZWNrZWQ/dC5jaGVja2VkOnQuZGVmYXVsdENoZWNrZWQ7bj1HKG51bGwhPXQudmFsdWU/dC52YWx1ZTpuKSxlLl93cmFwcGVyU3RhdGU9e2luaXRpYWxDaGVja2VkOnIsaW5pdGlhbFZhbHVlOm4sY29udHJvbGxlZDoiY2hlY2tib3giPT09dC50eXBlfHwicmFkaW8iPT09dC50eXBlP251bGwhPXQuY2hlY2tlZDpudWxsIT10LnZhbHVlfX1mdW5jdGlvbiB0ZShlLHQpe251bGwhPSh0PXQuY2hlY2tlZCkmJncoZSwiY2hlY2tlZCIsdCwhMSl9ZnVuY3Rpb24gbmUoZSx0KXt0ZShlLHQpO3ZhciBuPUcodC52YWx1ZSkscj10LnR5cGU7aWYobnVsbCE9bikibnVtYmVyIj09PXI/KDA9PT1uJiYiIj09PWUudmFsdWV8fGUudmFsdWUhPW4pJiYoZS52YWx1ZT0iIituKTplLnZhbHVlIT09IiIrbiYmKGUudmFsdWU9IiIrbik7ZWxzZSBpZigic3VibWl0Ij09PXJ8fCJyZXNldCI9PT1yKXJldHVybiB2b2lkIGUucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpO3QuaGFzT3duUHJvcGVydHkoInZhbHVlIik/b2UoZSx0LnR5cGUsbik6dC5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdFZhbHVlIikmJm9lKGUsdC50eXBlLEcodC5kZWZhdWx0VmFsdWUpKSxudWxsPT10LmNoZWNrZWQmJm51bGwhPXQuZGVmYXVsdENoZWNrZWQmJihlLmRlZmF1bHRDaGVja2VkPSEhdC5kZWZhdWx0Q2hlY2tlZCl9ZnVuY3Rpb24gcmUoZSx0LG4pe2lmKHQuaGFzT3duUHJvcGVydHkoInZhbHVlIil8fHQuaGFzT3duUHJvcGVydHkoImRlZmF1bHRWYWx1ZSIpKXt2YXIgcj10LnR5cGU7aWYoISgic3VibWl0IiE9PXImJiJyZXNldCIhPT1yfHx2b2lkIDAhPT10LnZhbHVlJiZudWxsIT09dC52YWx1ZSkpcmV0dXJuO3Q9IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSxufHx0PT09ZS52YWx1ZXx8KGUudmFsdWU9dCksZS5kZWZhdWx0VmFsdWU9dH0iIiE9PShuPWUubmFtZSkmJihlLm5hbWU9IiIpLGUuZGVmYXVsdENoZWNrZWQ9ISFlLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWQsIiIhPT1uJiYoZS5uYW1lPW4pfWZ1bmN0aW9uIG9lKGUsdCxuKXsibnVtYmVyIj09PXQmJkooZS5vd25lckRvY3VtZW50KT09PWV8fChudWxsPT1uP2UuZGVmYXVsdFZhbHVlPSIiK2UuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU6ZS5kZWZhdWx0VmFsdWUhPT0iIituJiYoZS5kZWZhdWx0VmFsdWU9IiIrbikpfWZ1bmN0aW9uIGllKGUsdCl7cmV0dXJuIGU9byh7Y2hpbGRyZW46dm9pZCAwfSx0KSwodD1mdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gci5DaGlsZHJlbi5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe251bGwhPWUmJih0Kz1lKX0pKSx0fSh0LmNoaWxkcmVuKSkmJihlLmNoaWxkcmVuPXQpLGV9ZnVuY3Rpb24gYWUoZSx0LG4scil7aWYoZT1lLm9wdGlvbnMsdCl7dD17fTtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyl0WyIkIituW29dXT0hMDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKW89dC5oYXNPd25Qcm9wZXJ0eSgiJCIrZVtuXS52YWx1ZSksZVtuXS5zZWxlY3RlZCE9PW8mJihlW25dLnNlbGVjdGVkPW8pLG8mJnImJihlW25dLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3Iobj0iIitHKG4pLHQ9bnVsbCxvPTA7bzxlLmxlbmd0aDtvKyspe2lmKGVbb10udmFsdWU9PT1uKXJldHVybiBlW29dLnNlbGVjdGVkPSEwLHZvaWQociYmKGVbb10uZGVmYXVsdFNlbGVjdGVkPSEwKSk7bnVsbCE9PXR8fGVbb10uZGlzYWJsZWR8fCh0PWVbb10pfW51bGwhPT10JiYodC5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIHNlKGUsdCl7aWYobnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcihhKDkxKSk7cmV0dXJuIG8oe30sdCx7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIHVlKGUsdCl7dmFyIG49dC52YWx1ZTtpZihudWxsPT1uKXtpZihuPXQuY2hpbGRyZW4sdD10LmRlZmF1bHRWYWx1ZSxudWxsIT1uKXtpZihudWxsIT10KXRocm93IEVycm9yKGEoOTIpKTtpZihBcnJheS5pc0FycmF5KG4pKXtpZighKDE+PW4ubGVuZ3RoKSl0aHJvdyBFcnJvcihhKDkzKSk7bj1uWzBdfXQ9bn1udWxsPT10JiYodD0iIiksbj10fWUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOkcobil9fWZ1bmN0aW9uIGNlKGUsdCl7dmFyIG49Ryh0LnZhbHVlKSxyPUcodC5kZWZhdWx0VmFsdWUpO251bGwhPW4mJigobj0iIituKSE9PWUudmFsdWUmJihlLnZhbHVlPW4pLG51bGw9PXQuZGVmYXVsdFZhbHVlJiZlLmRlZmF1bHRWYWx1ZSE9PW4mJihlLmRlZmF1bHRWYWx1ZT1uKSksbnVsbCE9ciYmKGUuZGVmYXVsdFZhbHVlPSIiK3IpfWZ1bmN0aW9uIGxlKGUpe3ZhciB0PWUudGV4dENvbnRlbnQ7dD09PWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJiIiIT09dCYmbnVsbCE9PXQmJihlLnZhbHVlPXQpfXZhciBmZT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsZGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjtmdW5jdGlvbiBwZShlKXtzd2l0Y2goZSl7Y2FzZSJzdmciOnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7Y2FzZSJtYXRoIjpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI7ZGVmYXVsdDpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCJ9fWZ1bmN0aW9uIGhlKGUsdCl7cmV0dXJuIG51bGw9PWV8fCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PWU/cGUodCk6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj09PWUmJiJmb3JlaWduT2JqZWN0Ij09PXQ/Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOmV9dmFyIHZlLGdlPWZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbih0LG4scixvKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbigoZnVuY3Rpb24oKXtyZXR1cm4gZSh0LG4pfSkpfTplfSgoZnVuY3Rpb24oZSx0KXtpZihlLm5hbWVzcGFjZVVSSSE9PWRlfHwiaW5uZXJIVE1MImluIGUpZS5pbm5lckhUTUw9dDtlbHNle2ZvcigodmU9dmV8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9Ijxzdmc+Iit0LnZhbHVlT2YoKS50b1N0cmluZygpKyI8L3N2Zz4iLHQ9dmUuZmlyc3RDaGlsZDtlLmZpcnN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKTtmb3IoO3QuZmlyc3RDaGlsZDspZS5hcHBlbmRDaGlsZCh0LmZpcnN0Q2hpbGQpfX0pKTtmdW5jdGlvbiB5ZShlLHQpe2lmKHQpe3ZhciBuPWUuZmlyc3RDaGlsZDtpZihuJiZuPT09ZS5sYXN0Q2hpbGQmJjM9PT1uLm5vZGVUeXBlKXJldHVybiB2b2lkKG4ubm9kZVZhbHVlPXQpfWUudGV4dENvbnRlbnQ9dH12YXIgbWU9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGJvcmRlckltYWdlT3V0c2V0OiEwLGJvcmRlckltYWdlU2xpY2U6ITAsYm9yZGVySW1hZ2VXaWR0aDohMCxib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxib3hPcmRpbmFsR3JvdXA6ITAsY29sdW1uQ291bnQ6ITAsY29sdW1uczohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3NpdGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3JkZXI6ITAsZ3JpZEFyZWE6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTcGFuOiEwLGdyaWRSb3dTdGFydDohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblNwYW46ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LGJlPVsiV2Via2l0IiwibXMiLCJNb3oiLCJPIl07ZnVuY3Rpb24gd2UoZSx0LG4pe3JldHVybiBudWxsPT10fHwiYm9vbGVhbiI9PT10eXBlb2YgdHx8IiI9PT10PyIiOm58fCJudW1iZXIiIT09dHlwZW9mIHR8fDA9PT10fHxtZS5oYXNPd25Qcm9wZXJ0eShlKSYmbWVbZV0/KCIiK3QpLnRyaW0oKTp0KyJweCJ9ZnVuY3Rpb24gT2UoZSx0KXtmb3IodmFyIG4gaW4gZT1lLnN0eWxlLHQpaWYodC5oYXNPd25Qcm9wZXJ0eShuKSl7dmFyIHI9MD09PW4uaW5kZXhPZigiLS0iKSxvPXdlKG4sdFtuXSxyKTsiZmxvYXQiPT09biYmKG49ImNzc0Zsb2F0Iikscj9lLnNldFByb3BlcnR5KG4sbyk6ZVtuXT1vfX1PYmplY3Qua2V5cyhtZSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7YmUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dD10K2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zdWJzdHJpbmcoMSksbWVbdF09bWVbZV19KSl9KSk7dmFyIF9lPW8oe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7ZnVuY3Rpb24gRWUoZSx0KXtpZih0KXtpZihfZVtlXSYmKG51bGwhPXQuY2hpbGRyZW58fG51bGwhPXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKGEoMTM3LGUpKTtpZihudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXtpZihudWxsIT10LmNoaWxkcmVuKXRocm93IEVycm9yKGEoNjApKTtpZigib2JqZWN0IiE9PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfHwhKCJfX2h0bWwiaW4gdC5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IoYSg2MSkpfWlmKG51bGwhPXQuc3R5bGUmJiJvYmplY3QiIT09dHlwZW9mIHQuc3R5bGUpdGhyb3cgRXJyb3IoYSg2MikpfX1mdW5jdGlvbiBDZShlLHQpe2lmKC0xPT09ZS5pbmRleE9mKCItIikpcmV0dXJuInN0cmluZyI9PT10eXBlb2YgdC5pcztzd2l0Y2goZSl7Y2FzZSJhbm5vdGF0aW9uLXhtbCI6Y2FzZSJjb2xvci1wcm9maWxlIjpjYXNlImZvbnQtZmFjZSI6Y2FzZSJmb250LWZhY2Utc3JjIjpjYXNlImZvbnQtZmFjZS11cmkiOmNhc2UiZm9udC1mYWNlLWZvcm1hdCI6Y2FzZSJmb250LWZhY2UtbmFtZSI6Y2FzZSJtaXNzaW5nLWdseXBoIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX1mdW5jdGlvbiBTZShlKXtyZXR1cm4oZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3cpLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoZT1lLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KSwzPT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZX12YXIga2U9bnVsbCx4ZT1udWxsLEFlPW51bGw7ZnVuY3Rpb24gamUoZSl7aWYoZT1KcihlKSl7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBrZSl0aHJvdyBFcnJvcihhKDI4MCkpO3ZhciB0PWUuc3RhdGVOb2RlO3QmJih0PWVvKHQpLGtlKGUuc3RhdGVOb2RlLGUudHlwZSx0KSl9fWZ1bmN0aW9uIFRlKGUpe3hlP0FlP0FlLnB1c2goZSk6QWU9W2VdOnhlPWV9ZnVuY3Rpb24gUGUoKXtpZih4ZSl7dmFyIGU9eGUsdD1BZTtpZihBZT14ZT1udWxsLGplKGUpLHQpZm9yKGU9MDtlPHQubGVuZ3RoO2UrKylqZSh0W2VdKX19ZnVuY3Rpb24gSWUoZSx0KXtyZXR1cm4gZSh0KX1mdW5jdGlvbiBSZShlLHQsbixyLG8pe3JldHVybiBlKHQsbixyLG8pfWZ1bmN0aW9uIERlKCl7fXZhciBOZT1JZSxMZT0hMSxGZT0hMTtmdW5jdGlvbiBNZSgpe251bGw9PT14ZSYmbnVsbD09PUFlfHwoRGUoKSxQZSgpKX1mdW5jdGlvbiBCZShlLHQpe3ZhciBuPWUuc3RhdGVOb2RlO2lmKG51bGw9PT1uKXJldHVybiBudWxsO3ZhciByPWVvKG4pO2lmKG51bGw9PT1yKXJldHVybiBudWxsO249clt0XTtlOnN3aXRjaCh0KXtjYXNlIm9uQ2xpY2siOmNhc2Uib25DbGlja0NhcHR1cmUiOmNhc2Uib25Eb3VibGVDbGljayI6Y2FzZSJvbkRvdWJsZUNsaWNrQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRG93biI6Y2FzZSJvbk1vdXNlRG93bkNhcHR1cmUiOmNhc2Uib25Nb3VzZU1vdmUiOmNhc2Uib25Nb3VzZU1vdmVDYXB0dXJlIjpjYXNlIm9uTW91c2VVcCI6Y2FzZSJvbk1vdXNlVXBDYXB0dXJlIjpjYXNlIm9uTW91c2VFbnRlciI6KHI9IXIuZGlzYWJsZWQpfHwocj0hKCJidXR0b24iPT09KGU9ZS50eXBlKXx8ImlucHV0Ij09PWV8fCJzZWxlY3QiPT09ZXx8InRleHRhcmVhIj09PWUpKSxlPSFyO2JyZWFrIGU7ZGVmYXVsdDplPSExfWlmKGUpcmV0dXJuIG51bGw7aWYobiYmImZ1bmN0aW9uIiE9PXR5cGVvZiBuKXRocm93IEVycm9yKGEoMjMxLHQsdHlwZW9mIG4pKTtyZXR1cm4gbn12YXIgVWU9ITE7aWYoZil0cnl7dmFyIHplPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh6ZSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe1VlPSEwfX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0Iix6ZSx6ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLHplLHplKX1jYXRjaChpYyl7VWU9ITF9ZnVuY3Rpb24gVmUoZSx0LG4scixvLGksYSxzLHUpe3ZhciBjPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7dC5hcHBseShuLGMpfWNhdGNoKGwpe3RoaXMub25FcnJvcihsKX19dmFyIEhlPSExLFdlPW51bGwscWU9ITEsJGU9bnVsbCxZZT17b25FcnJvcjpmdW5jdGlvbihlKXtIZT0hMCxXZT1lfX07ZnVuY3Rpb24gR2UoZSx0LG4scixvLGksYSxzLHUpe0hlPSExLFdlPW51bGwsVmUuYXBwbHkoWWUsYXJndW1lbnRzKX1mdW5jdGlvbiBLZShlKXt2YXIgdD1lLG49ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7ZT10O2RvezAhPT0oMTAyNiYodD1lKS5mbGFncykmJihuPXQucmV0dXJuKSxlPXQucmV0dXJufXdoaWxlKGUpfXJldHVybiAzPT09dC50YWc/bjpudWxsfWZ1bmN0aW9uIFhlKGUpe2lmKDEzPT09ZS50YWcpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09dCYmKG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJih0PWUubWVtb2l6ZWRTdGF0ZSkpLG51bGwhPT10KXJldHVybiB0LmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gUWUoZSl7aWYoS2UoZSkhPT1lKXRocm93IEVycm9yKGEoMTg4KSl9ZnVuY3Rpb24gSmUoZSl7aWYoIShlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO2lmKCF0KXtpZihudWxsPT09KHQ9S2UoZSkpKXRocm93IEVycm9yKGEoMTg4KSk7cmV0dXJuIHQhPT1lP251bGw6ZX1mb3IodmFyIG49ZSxyPXQ7Oyl7dmFyIG89bi5yZXR1cm47aWYobnVsbD09PW8pYnJlYWs7dmFyIGk9by5hbHRlcm5hdGU7aWYobnVsbD09PWkpe2lmKG51bGwhPT0ocj1vLnJldHVybikpe249cjtjb250aW51ZX1icmVha31pZihvLmNoaWxkPT09aS5jaGlsZCl7Zm9yKGk9by5jaGlsZDtpOyl7aWYoaT09PW4pcmV0dXJuIFFlKG8pLGU7aWYoaT09PXIpcmV0dXJuIFFlKG8pLHQ7aT1pLnNpYmxpbmd9dGhyb3cgRXJyb3IoYSgxODgpKX1pZihuLnJldHVybiE9PXIucmV0dXJuKW49byxyPWk7ZWxzZXtmb3IodmFyIHM9ITEsdT1vLmNoaWxkO3U7KXtpZih1PT09bil7cz0hMCxuPW8scj1pO2JyZWFrfWlmKHU9PT1yKXtzPSEwLHI9byxuPWk7YnJlYWt9dT11LnNpYmxpbmd9aWYoIXMpe2Zvcih1PWkuY2hpbGQ7dTspe2lmKHU9PT1uKXtzPSEwLG49aSxyPW87YnJlYWt9aWYodT09PXIpe3M9ITAscj1pLG49bzticmVha311PXUuc2libGluZ31pZighcyl0aHJvdyBFcnJvcihhKDE4OSkpfX1pZihuLmFsdGVybmF0ZSE9PXIpdGhyb3cgRXJyb3IoYSgxOTApKX1pZigzIT09bi50YWcpdGhyb3cgRXJyb3IoYSgxODgpKTtyZXR1cm4gbi5zdGF0ZU5vZGUuY3VycmVudD09PW4/ZTp0fShlKSkpcmV0dXJuIG51bGw7Zm9yKHZhciB0PWU7Oyl7aWYoNT09PXQudGFnfHw2PT09dC50YWcpcmV0dXJuIHQ7aWYodC5jaGlsZCl0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtlbHNle2lmKHQ9PT1lKWJyZWFrO2Zvcig7IXQuc2libGluZzspe2lmKCF0LnJldHVybnx8dC5yZXR1cm49PT1lKXJldHVybiBudWxsO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ319cmV0dXJuIG51bGx9ZnVuY3Rpb24gWmUoZSx0KXtmb3IodmFyIG49ZS5hbHRlcm5hdGU7bnVsbCE9PXQ7KXtpZih0PT09ZXx8dD09PW4pcmV0dXJuITA7dD10LnJldHVybn1yZXR1cm4hMX12YXIgZXQsdHQsbnQscnQsb3Q9ITEsaXQ9W10sYXQ9bnVsbCxzdD1udWxsLHV0PW51bGwsY3Q9bmV3IE1hcCxsdD1uZXcgTWFwLGZ0PVtdLGR0PSJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQgc3VibWl0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIHB0KGUsdCxuLHIsbyl7cmV0dXJue2Jsb2NrZWRPbjplLGRvbUV2ZW50TmFtZTp0LGV2ZW50U3lzdGVtRmxhZ3M6MTZ8bixuYXRpdmVFdmVudDpvLHRhcmdldENvbnRhaW5lcnM6W3JdfX1mdW5jdGlvbiBodChlLHQpe3N3aXRjaChlKXtjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmF0PW51bGw7YnJlYWs7Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2xlYXZlIjpzdD1udWxsO2JyZWFrO2Nhc2UibW91c2VvdmVyIjpjYXNlIm1vdXNlb3V0Ijp1dD1udWxsO2JyZWFrO2Nhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcm91dCI6Y3QuZGVsZXRlKHQucG9pbnRlcklkKTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6bHQuZGVsZXRlKHQucG9pbnRlcklkKX19ZnVuY3Rpb24gdnQoZSx0LG4scixvLGkpe3JldHVybiBudWxsPT09ZXx8ZS5uYXRpdmVFdmVudCE9PWk/KGU9cHQodCxuLHIsbyxpKSxudWxsIT09dCYmKG51bGwhPT0odD1Kcih0KSkmJnR0KHQpKSxlKTooZS5ldmVudFN5c3RlbUZsYWdzfD1yLHQ9ZS50YXJnZXRDb250YWluZXJzLG51bGwhPT1vJiYtMT09PXQuaW5kZXhPZihvKSYmdC5wdXNoKG8pLGUpfWZ1bmN0aW9uIGd0KGUpe3ZhciB0PVFyKGUudGFyZ2V0KTtpZihudWxsIT09dCl7dmFyIG49S2UodCk7aWYobnVsbCE9PW4paWYoMTM9PT0odD1uLnRhZykpe2lmKG51bGwhPT0odD1YZShuKSkpcmV0dXJuIGUuYmxvY2tlZE9uPXQsdm9pZCBydChlLmxhbmVQcmlvcml0eSwoZnVuY3Rpb24oKXtpLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eShlLnByaW9yaXR5LChmdW5jdGlvbigpe250KG4pfSkpfSkpfWVsc2UgaWYoMz09PXQmJm4uc3RhdGVOb2RlLmh5ZHJhdGUpcmV0dXJuIHZvaWQoZS5ibG9ja2VkT249Mz09PW4udGFnP24uc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbCl9ZS5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiB5dChlKXtpZihudWxsIT09ZS5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciB0PWUudGFyZ2V0Q29udGFpbmVyczswPHQubGVuZ3RoOyl7dmFyIG49SnQoZS5kb21FdmVudE5hbWUsZS5ldmVudFN5c3RlbUZsYWdzLHRbMF0sZS5uYXRpdmVFdmVudCk7aWYobnVsbCE9PW4pcmV0dXJuIG51bGwhPT0odD1KcihuKSkmJnR0KHQpLGUuYmxvY2tlZE9uPW4sITE7dC5zaGlmdCgpfXJldHVybiEwfWZ1bmN0aW9uIG10KGUsdCxuKXt5dChlKSYmbi5kZWxldGUodCl9ZnVuY3Rpb24gYnQoKXtmb3Iob3Q9ITE7MDxpdC5sZW5ndGg7KXt2YXIgZT1pdFswXTtpZihudWxsIT09ZS5ibG9ja2VkT24pe251bGwhPT0oZT1KcihlLmJsb2NrZWRPbikpJiZldChlKTticmVha31mb3IodmFyIHQ9ZS50YXJnZXRDb250YWluZXJzOzA8dC5sZW5ndGg7KXt2YXIgbj1KdChlLmRvbUV2ZW50TmFtZSxlLmV2ZW50U3lzdGVtRmxhZ3MsdFswXSxlLm5hdGl2ZUV2ZW50KTtpZihudWxsIT09bil7ZS5ibG9ja2VkT249bjticmVha310LnNoaWZ0KCl9bnVsbD09PWUuYmxvY2tlZE9uJiZpdC5zaGlmdCgpfW51bGwhPT1hdCYmeXQoYXQpJiYoYXQ9bnVsbCksbnVsbCE9PXN0JiZ5dChzdCkmJihzdD1udWxsKSxudWxsIT09dXQmJnl0KHV0KSYmKHV0PW51bGwpLGN0LmZvckVhY2gobXQpLGx0LmZvckVhY2gobXQpfWZ1bmN0aW9uIHd0KGUsdCl7ZS5ibG9ja2VkT249PT10JiYoZS5ibG9ja2VkT249bnVsbCxvdHx8KG90PSEwLGkudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhpLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LGJ0KSkpfWZ1bmN0aW9uIE90KGUpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIHd0KHQsZSl9aWYoMDxpdC5sZW5ndGgpe3d0KGl0WzBdLGUpO2Zvcih2YXIgbj0xO248aXQubGVuZ3RoO24rKyl7dmFyIHI9aXRbbl07ci5ibG9ja2VkT249PT1lJiYoci5ibG9ja2VkT249bnVsbCl9fWZvcihudWxsIT09YXQmJnd0KGF0LGUpLG51bGwhPT1zdCYmd3Qoc3QsZSksbnVsbCE9PXV0JiZ3dCh1dCxlKSxjdC5mb3JFYWNoKHQpLGx0LmZvckVhY2godCksbj0wO248ZnQubGVuZ3RoO24rKykocj1mdFtuXSkuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpO2Zvcig7MDxmdC5sZW5ndGgmJm51bGw9PT0obj1mdFswXSkuYmxvY2tlZE9uOylndChuKSxudWxsPT09bi5ibG9ja2VkT24mJmZ0LnNoaWZ0KCl9ZnVuY3Rpb24gX3QoZSx0KXt2YXIgbj17fTtyZXR1cm4gbltlLnRvTG93ZXJDYXNlKCldPXQudG9Mb3dlckNhc2UoKSxuWyJXZWJraXQiK2VdPSJ3ZWJraXQiK3QsblsiTW96IitlXT0ibW96Iit0LG59dmFyIEV0PXthbmltYXRpb25lbmQ6X3QoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkVuZCIpLGFuaW1hdGlvbml0ZXJhdGlvbjpfdCgiQW5pbWF0aW9uIiwiQW5pbWF0aW9uSXRlcmF0aW9uIiksYW5pbWF0aW9uc3RhcnQ6X3QoIkFuaW1hdGlvbiIsIkFuaW1hdGlvblN0YXJ0IiksdHJhbnNpdGlvbmVuZDpfdCgiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25FbmQiKX0sQ3Q9e30sU3Q9e307ZnVuY3Rpb24ga3QoZSl7aWYoQ3RbZV0pcmV0dXJuIEN0W2VdO2lmKCFFdFtlXSlyZXR1cm4gZTt2YXIgdCxuPUV0W2VdO2Zvcih0IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh0KSYmdCBpbiBTdClyZXR1cm4gQ3RbZV09blt0XTtyZXR1cm4gZX1mJiYoU3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsIkFuaW1hdGlvbkV2ZW50ImluIHdpbmRvd3x8KGRlbGV0ZSBFdC5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBFdC5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBFdC5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLCJUcmFuc2l0aW9uRXZlbnQiaW4gd2luZG93fHxkZWxldGUgRXQudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTt2YXIgeHQ9a3QoImFuaW1hdGlvbmVuZCIpLEF0PWt0KCJhbmltYXRpb25pdGVyYXRpb24iKSxqdD1rdCgiYW5pbWF0aW9uc3RhcnQiKSxUdD1rdCgidHJhbnNpdGlvbmVuZCIpLFB0PW5ldyBNYXAsSXQ9bmV3IE1hcCxSdD1bImFib3J0IiwiYWJvcnQiLHh0LCJhbmltYXRpb25FbmQiLEF0LCJhbmltYXRpb25JdGVyYXRpb24iLGp0LCJhbmltYXRpb25TdGFydCIsImNhbnBsYXkiLCJjYW5QbGF5IiwiY2FucGxheXRocm91Z2giLCJjYW5QbGF5VGhyb3VnaCIsImR1cmF0aW9uY2hhbmdlIiwiZHVyYXRpb25DaGFuZ2UiLCJlbXB0aWVkIiwiZW1wdGllZCIsImVuY3J5cHRlZCIsImVuY3J5cHRlZCIsImVuZGVkIiwiZW5kZWQiLCJlcnJvciIsImVycm9yIiwiZ290cG9pbnRlcmNhcHR1cmUiLCJnb3RQb2ludGVyQ2FwdHVyZSIsImxvYWQiLCJsb2FkIiwibG9hZGVkZGF0YSIsImxvYWRlZERhdGEiLCJsb2FkZWRtZXRhZGF0YSIsImxvYWRlZE1ldGFkYXRhIiwibG9hZHN0YXJ0IiwibG9hZFN0YXJ0IiwibG9zdHBvaW50ZXJjYXB0dXJlIiwibG9zdFBvaW50ZXJDYXB0dXJlIiwicGxheWluZyIsInBsYXlpbmciLCJwcm9ncmVzcyIsInByb2dyZXNzIiwic2Vla2luZyIsInNlZWtpbmciLCJzdGFsbGVkIiwic3RhbGxlZCIsInN1c3BlbmQiLCJzdXNwZW5kIiwidGltZXVwZGF0ZSIsInRpbWVVcGRhdGUiLFR0LCJ0cmFuc2l0aW9uRW5kIiwid2FpdGluZyIsIndhaXRpbmciXTtmdW5jdGlvbiBEdChlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bis9Mil7dmFyIHI9ZVtuXSxvPWVbbisxXTtvPSJvbiIrKG9bMF0udG9VcHBlckNhc2UoKStvLnNsaWNlKDEpKSxJdC5zZXQocix0KSxQdC5zZXQocixvKSxjKG8sW3JdKX19KDAsaS51bnN0YWJsZV9ub3cpKCk7dmFyIE50PTg7ZnVuY3Rpb24gTHQoZSl7aWYoMCE9PSgxJmUpKXJldHVybiBOdD0xNSwxO2lmKDAhPT0oMiZlKSlyZXR1cm4gTnQ9MTQsMjtpZigwIT09KDQmZSkpcmV0dXJuIE50PTEzLDQ7dmFyIHQ9MjQmZTtyZXR1cm4gMCE9PXQ/KE50PTEyLHQpOjAhPT0oMzImZSk/KE50PTExLDMyKTowIT09KHQ9MTkyJmUpPyhOdD0xMCx0KTowIT09KDI1NiZlKT8oTnQ9OSwyNTYpOjAhPT0odD0zNTg0JmUpPyhOdD04LHQpOjAhPT0oNDA5NiZlKT8oTnQ9Nyw0MDk2KTowIT09KHQ9NDE4NjExMiZlKT8oTnQ9Nix0KTowIT09KHQ9NjI5MTQ1NjAmZSk/KE50PTUsdCk6NjcxMDg4NjQmZT8oTnQ9NCw2NzEwODg2NCk6MCE9PSgxMzQyMTc3MjgmZSk/KE50PTMsMTM0MjE3NzI4KTowIT09KHQ9ODA1MzA2MzY4JmUpPyhOdD0yLHQpOjAhPT0oMTA3Mzc0MTgyNCZlKT8oTnQ9MSwxMDczNzQxODI0KTooTnQ9OCxlKX1mdW5jdGlvbiBGdChlLHQpe3ZhciBuPWUucGVuZGluZ0xhbmVzO2lmKDA9PT1uKXJldHVybiBOdD0wO3ZhciByPTAsbz0wLGk9ZS5leHBpcmVkTGFuZXMsYT1lLnN1c3BlbmRlZExhbmVzLHM9ZS5waW5nZWRMYW5lcztpZigwIT09aSlyPWksbz1OdD0xNTtlbHNlIGlmKDAhPT0oaT0xMzQyMTc3Mjcmbikpe3ZhciB1PWkmfmE7MCE9PXU/KHI9THQodSksbz1OdCk6MCE9PShzJj1pKSYmKHI9THQocyksbz1OdCl9ZWxzZSAwIT09KGk9biZ+YSk/KHI9THQoaSksbz1OdCk6MCE9PXMmJihyPUx0KHMpLG89TnQpO2lmKDA9PT1yKXJldHVybiAwO2lmKHI9biYoKDA+KHI9MzEtSHQocikpPzA6MTw8cik8PDEpLTEsMCE9PXQmJnQhPT1yJiYwPT09KHQmYSkpe2lmKEx0KHQpLG88PU50KXJldHVybiB0O050PW99aWYoMCE9PSh0PWUuZW50YW5nbGVkTGFuZXMpKWZvcihlPWUuZW50YW5nbGVtZW50cyx0Jj1yOzA8dDspbz0xPDwobj0zMS1IdCh0KSkscnw9ZVtuXSx0Jj1+bztyZXR1cm4gcn1mdW5jdGlvbiBNdChlKXtyZXR1cm4gMCE9PShlPS0xMDczNzQxODI1JmUucGVuZGluZ0xhbmVzKT9lOjEwNzM3NDE4MjQmZT8xMDczNzQxODI0OjB9ZnVuY3Rpb24gQnQoZSx0KXtzd2l0Y2goZSl7Y2FzZSAxNTpyZXR1cm4gMTtjYXNlIDE0OnJldHVybiAyO2Nhc2UgMTI6cmV0dXJuIDA9PT0oZT1VdCgyNCZ+dCkpP0J0KDEwLHQpOmU7Y2FzZSAxMDpyZXR1cm4gMD09PShlPVV0KDE5MiZ+dCkpP0J0KDgsdCk6ZTtjYXNlIDg6cmV0dXJuIDA9PT0oZT1VdCgzNTg0Jn50KSkmJigwPT09KGU9VXQoNDE4NjExMiZ+dCkpJiYoZT01MTIpKSxlO2Nhc2UgMjpyZXR1cm4gMD09PSh0PVV0KDgwNTMwNjM2OCZ+dCkpJiYodD0yNjg0MzU0NTYpLHR9dGhyb3cgRXJyb3IoYSgzNTgsZSkpfWZ1bmN0aW9uIFV0KGUpe3JldHVybiBlJi1lfWZ1bmN0aW9uIHp0KGUpe2Zvcih2YXIgdD1bXSxuPTA7MzE+bjtuKyspdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIFZ0KGUsdCxuKXtlLnBlbmRpbmdMYW5lc3w9dDt2YXIgcj10LTE7ZS5zdXNwZW5kZWRMYW5lcyY9cixlLnBpbmdlZExhbmVzJj1yLChlPWUuZXZlbnRUaW1lcylbdD0zMS1IdCh0KV09bn12YXIgSHQ9TWF0aC5jbHozMj9NYXRoLmNsejMyOmZ1bmN0aW9uKGUpe3JldHVybiAwPT09ZT8zMjozMS0oV3QoZSkvcXR8MCl8MH0sV3Q9TWF0aC5sb2cscXQ9TWF0aC5MTjI7dmFyICR0PWkudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksWXQ9aS51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHksR3Q9ITA7ZnVuY3Rpb24gS3QoZSx0LG4scil7TGV8fERlKCk7dmFyIG89UXQsaT1MZTtMZT0hMDt0cnl7UmUobyxlLHQsbixyKX1maW5hbGx5eyhMZT1pKXx8TWUoKX19ZnVuY3Rpb24gWHQoZSx0LG4scil7WXQoJHQsUXQuYmluZChudWxsLGUsdCxuLHIpKX1mdW5jdGlvbiBRdChlLHQsbixyKXt2YXIgbztpZihHdClpZigobz0wPT09KDQmdCkpJiYwPGl0Lmxlbmd0aCYmLTE8ZHQuaW5kZXhPZihlKSllPXB0KG51bGwsZSx0LG4sciksaXQucHVzaChlKTtlbHNle3ZhciBpPUp0KGUsdCxuLHIpO2lmKG51bGw9PT1pKW8mJmh0KGUscik7ZWxzZXtpZihvKXtpZigtMTxkdC5pbmRleE9mKGUpKXJldHVybiBlPXB0KGksZSx0LG4sciksdm9pZCBpdC5wdXNoKGUpO2lmKGZ1bmN0aW9uKGUsdCxuLHIsbyl7c3dpdGNoKHQpe2Nhc2UiZm9jdXNpbiI6cmV0dXJuIGF0PXZ0KGF0LGUsdCxuLHIsbyksITA7Y2FzZSJkcmFnZW50ZXIiOnJldHVybiBzdD12dChzdCxlLHQsbixyLG8pLCEwO2Nhc2UibW91c2VvdmVyIjpyZXR1cm4gdXQ9dnQodXQsZSx0LG4scixvKSwhMDtjYXNlInBvaW50ZXJvdmVyIjp2YXIgaT1vLnBvaW50ZXJJZDtyZXR1cm4gY3Quc2V0KGksdnQoY3QuZ2V0KGkpfHxudWxsLGUsdCxuLHIsbykpLCEwO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOnJldHVybiBpPW8ucG9pbnRlcklkLGx0LnNldChpLHZ0KGx0LmdldChpKXx8bnVsbCxlLHQsbixyLG8pKSwhMH1yZXR1cm4hMX0oaSxlLHQsbixyKSlyZXR1cm47aHQoZSxyKX1UcihlLHQscixudWxsLG4pfX19ZnVuY3Rpb24gSnQoZSx0LG4scil7dmFyIG89U2Uocik7aWYobnVsbCE9PShvPVFyKG8pKSl7dmFyIGk9S2Uobyk7aWYobnVsbD09PWkpbz1udWxsO2Vsc2V7dmFyIGE9aS50YWc7aWYoMTM9PT1hKXtpZihudWxsIT09KG89WGUoaSkpKXJldHVybiBvO289bnVsbH1lbHNlIGlmKDM9PT1hKXtpZihpLnN0YXRlTm9kZS5oeWRyYXRlKXJldHVybiAzPT09aS50YWc/aS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO289bnVsbH1lbHNlIGkhPT1vJiYobz1udWxsKX19cmV0dXJuIFRyKGUsdCxyLG8sbiksbnVsbH12YXIgWnQ9bnVsbCxlbj1udWxsLHRuPW51bGw7ZnVuY3Rpb24gbm4oKXtpZih0bilyZXR1cm4gdG47dmFyIGUsdCxuPWVuLHI9bi5sZW5ndGgsbz0idmFsdWUiaW4gWnQ/WnQudmFsdWU6WnQudGV4dENvbnRlbnQsaT1vLmxlbmd0aDtmb3IoZT0wO2U8ciYmbltlXT09PW9bZV07ZSsrKTt2YXIgYT1yLWU7Zm9yKHQ9MTt0PD1hJiZuW3ItdF09PT1vW2ktdF07dCsrKTtyZXR1cm4gdG49by5zbGljZShlLDE8dD8xLXQ6dm9pZCAwKX1mdW5jdGlvbiBybihlKXt2YXIgdD1lLmtleUNvZGU7cmV0dXJuImNoYXJDb2RlImluIGU/MD09PShlPWUuY2hhckNvZGUpJiYxMz09PXQmJihlPTEzKTplPXQsMTA9PT1lJiYoZT0xMyksMzI8PWV8fDEzPT09ZT9lOjB9ZnVuY3Rpb24gb24oKXtyZXR1cm4hMH1mdW5jdGlvbiBhbigpe3JldHVybiExfWZ1bmN0aW9uIHNuKGUpe2Z1bmN0aW9uIHQodCxuLHIsbyxpKXtmb3IodmFyIGEgaW4gdGhpcy5fcmVhY3ROYW1lPXQsdGhpcy5fdGFyZ2V0SW5zdD1yLHRoaXMudHlwZT1uLHRoaXMubmF0aXZlRXZlbnQ9byx0aGlzLnRhcmdldD1pLHRoaXMuY3VycmVudFRhcmdldD1udWxsLGUpZS5oYXNPd25Qcm9wZXJ0eShhKSYmKHQ9ZVthXSx0aGlzW2FdPXQ/dChvKTpvW2FdKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPW8uZGVmYXVsdFByZXZlbnRlZD9vLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1vLnJldHVyblZhbHVlKT9vbjphbix0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPWFuLHRoaXN9cmV0dXJuIG8odC5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOiJ1bmtub3duIiE9PXR5cGVvZiBlLnJldHVyblZhbHVlJiYoZS5yZXR1cm5WYWx1ZT0hMSksdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9b24pfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm5hdGl2ZUV2ZW50O2UmJihlLnN0b3BQcm9wYWdhdGlvbj9lLnN0b3BQcm9wYWdhdGlvbigpOiJ1bmtub3duIiE9PXR5cGVvZiBlLmNhbmNlbEJ1YmJsZSYmKGUuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPW9uKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50Om9ufSksdH12YXIgdW4sY24sbG4sZm49e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihlKXtyZXR1cm4gZS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sZG49c24oZm4pLHBuPW8oe30sZm4se3ZpZXc6MCxkZXRhaWw6MH0pLGhuPXNuKHBuKSx2bj1vKHt9LHBuLHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOmtuLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lLnJlbGF0ZWRUYXJnZXQ/ZS5mcm9tRWxlbWVudD09PWUuc3JjRWxlbWVudD9lLnRvRWxlbWVudDplLmZyb21FbGVtZW50OmUucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKGUpe3JldHVybiJtb3ZlbWVudFgiaW4gZT9lLm1vdmVtZW50WDooZSE9PWxuJiYobG4mJiJtb3VzZW1vdmUiPT09ZS50eXBlPyh1bj1lLnNjcmVlblgtbG4uc2NyZWVuWCxjbj1lLnNjcmVlblktbG4uc2NyZWVuWSk6Y249dW49MCxsbj1lKSx1bil9LG1vdmVtZW50WTpmdW5jdGlvbihlKXtyZXR1cm4ibW92ZW1lbnRZImluIGU/ZS5tb3ZlbWVudFk6Y259fSksZ249c24odm4pLHluPXNuKG8oe30sdm4se2RhdGFUcmFuc2ZlcjowfSkpLG1uPXNuKG8oe30scG4se3JlbGF0ZWRUYXJnZXQ6MH0pKSxibj1zbihvKHt9LGZuLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSksd249c24obyh7fSxmbix7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4iY2xpcGJvYXJkRGF0YSJpbiBlP2UuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSksT249c24obyh7fSxmbix7ZGF0YTowfSkpLF9uPXtFc2M6IkVzY2FwZSIsU3BhY2ViYXI6IiAiLExlZnQ6IkFycm93TGVmdCIsVXA6IkFycm93VXAiLFJpZ2h0OiJBcnJvd1JpZ2h0IixEb3duOiJBcnJvd0Rvd24iLERlbDoiRGVsZXRlIixXaW46Ik9TIixNZW51OiJDb250ZXh0TWVudSIsQXBwczoiQ29udGV4dE1lbnUiLFNjcm9sbDoiU2Nyb2xsTG9jayIsTW96UHJpbnRhYmxlS2V5OiJVbmlkZW50aWZpZWQifSxFbj17ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEyOiJDbGVhciIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwxOToiUGF1c2UiLDIwOiJDYXBzTG9jayIsMjc6IkVzY2FwZSIsMzI6IiAiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTQ0OiJOdW1Mb2NrIiwxNDU6IlNjcm9sbExvY2siLDIyNDoiTWV0YSJ9LENuPXtBbHQ6ImFsdEtleSIsQ29udHJvbDoiY3RybEtleSIsTWV0YToibWV0YUtleSIsU2hpZnQ6InNoaWZ0S2V5In07ZnVuY3Rpb24gU24oZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPUNuW2VdKSYmISF0W2VdfWZ1bmN0aW9uIGtuKCl7cmV0dXJuIFNufXZhciB4bj1zbihvKHt9LHBuLHtrZXk6ZnVuY3Rpb24oZSl7aWYoZS5rZXkpe3ZhciB0PV9uW2Uua2V5XXx8ZS5rZXk7aWYoIlVuaWRlbnRpZmllZCIhPT10KXJldHVybiB0fXJldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/MTM9PT0oZT1ybihlKSk/IkVudGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGUpOiJrZXlkb3duIj09PWUudHlwZXx8ImtleXVwIj09PWUudHlwZT9FbltlLmtleUNvZGVdfHwiVW5pZGVudGlmaWVkIjoiIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6a24sY2hhckNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuImtleXByZXNzIj09PWUudHlwZT9ybihlKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlkb3duIj09PWUudHlwZXx8ImtleXVwIj09PWUudHlwZT9lLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oZSl7cmV0dXJuImtleXByZXNzIj09PWUudHlwZT9ybihlKToia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9fSkpLEFuPXNuKG8oe30sdm4se3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSkpLGpuPXNuKG8oe30scG4se3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTprbn0pKSxUbj1zbihvKHt9LGZuLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSxQbj1zbihvKHt9LHZuLHtkZWx0YVg6ZnVuY3Rpb24oZSl7cmV0dXJuImRlbHRhWCJpbiBlP2UuZGVsdGFYOiJ3aGVlbERlbHRhWCJpbiBlPy1lLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihlKXtyZXR1cm4iZGVsdGFZImluIGU/ZS5kZWx0YVk6IndoZWVsRGVsdGFZImluIGU/LWUud2hlZWxEZWx0YVk6IndoZWVsRGVsdGEiaW4gZT8tZS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSkpLEluPVs5LDEzLDI3LDMyXSxSbj1mJiYiQ29tcG9zaXRpb25FdmVudCJpbiB3aW5kb3csRG49bnVsbDtmJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYoRG49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgTm49ZiYmIlRleHRFdmVudCJpbiB3aW5kb3cmJiFEbixMbj1mJiYoIVJufHxEbiYmODxEbiYmMTE+PURuKSxGbj1TdHJpbmcuZnJvbUNoYXJDb2RlKDMyKSxNbj0hMTtmdW5jdGlvbiBCbihlLHQpe3N3aXRjaChlKXtjYXNlImtleXVwIjpyZXR1cm4tMSE9PUluLmluZGV4T2YodC5rZXlDb2RlKTtjYXNlImtleWRvd24iOnJldHVybiAyMjkhPT10LmtleUNvZGU7Y2FzZSJrZXlwcmVzcyI6Y2FzZSJtb3VzZWRvd24iOmNhc2UiZm9jdXNvdXQiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIFVuKGUpe3JldHVybiJvYmplY3QiPT09dHlwZW9mKGU9ZS5kZXRhaWwpJiYiZGF0YSJpbiBlP2UuZGF0YTpudWxsfXZhciB6bj0hMTt2YXIgVm49e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIEhuKGUpe3ZhciB0PWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dD8hIVZuW2UudHlwZV06InRleHRhcmVhIj09PXR9ZnVuY3Rpb24gV24oZSx0LG4scil7VGUociksMDwodD1Jcih0LCJvbkNoYW5nZSIpKS5sZW5ndGgmJihuPW5ldyBkbigib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsbixyKSxlLnB1c2goe2V2ZW50Om4sbGlzdGVuZXJzOnR9KSl9dmFyIHFuPW51bGwsJG49bnVsbDtmdW5jdGlvbiBZbihlKXtDcihlLDApfWZ1bmN0aW9uIEduKGUpe2lmKFEoWnIoZSkpKXJldHVybiBlfWZ1bmN0aW9uIEtuKGUsdCl7aWYoImNoYW5nZSI9PT1lKXJldHVybiB0fXZhciBYbj0hMTtpZihmKXt2YXIgUW47aWYoZil7dmFyIEpuPSJvbmlucHV0ImluIGRvY3VtZW50O2lmKCFKbil7dmFyIFpuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1puLnNldEF0dHJpYnV0ZSgib25pbnB1dCIsInJldHVybjsiKSxKbj0iZnVuY3Rpb24iPT09dHlwZW9mIFpuLm9uaW5wdXR9UW49Sm59ZWxzZSBRbj0hMTtYbj1RbiYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBlcigpe3FuJiYocW4uZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLHRyKSwkbj1xbj1udWxsKX1mdW5jdGlvbiB0cihlKXtpZigidmFsdWUiPT09ZS5wcm9wZXJ0eU5hbWUmJkduKCRuKSl7dmFyIHQ9W107aWYoV24odCwkbixlLFNlKGUpKSxlPVluLExlKWUodCk7ZWxzZXtMZT0hMDt0cnl7SWUoZSx0KX1maW5hbGx5e0xlPSExLE1lKCl9fX19ZnVuY3Rpb24gbnIoZSx0LG4peyJmb2N1c2luIj09PWU/KGVyKCksJG49biwocW49dCkuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLHRyKSk6ImZvY3Vzb3V0Ij09PWUmJmVyKCl9ZnVuY3Rpb24gcnIoZSl7aWYoInNlbGVjdGlvbmNoYW5nZSI9PT1lfHwia2V5dXAiPT09ZXx8ImtleWRvd24iPT09ZSlyZXR1cm4gR24oJG4pfWZ1bmN0aW9uIG9yKGUsdCl7aWYoImNsaWNrIj09PWUpcmV0dXJuIEduKHQpfWZ1bmN0aW9uIGlyKGUsdCl7aWYoImlucHV0Ij09PWV8fCJjaGFuZ2UiPT09ZSlyZXR1cm4gR24odCl9dmFyIGFyPSJmdW5jdGlvbiI9PT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpmdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKDAhPT1lfHwxL2U9PT0xL3QpfHxlIT09ZSYmdCE9PXR9LHNyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gdXIoZSx0KXtpZihhcihlLHQpKXJldHVybiEwO2lmKCJvYmplY3QiIT09dHlwZW9mIGV8fG51bGw9PT1lfHwib2JqZWN0IiE9PXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4hMTt2YXIgbj1PYmplY3Qua2V5cyhlKSxyPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHI9MDtyPG4ubGVuZ3RoO3IrKylpZighc3IuY2FsbCh0LG5bcl0pfHwhYXIoZVtuW3JdXSx0W25bcl1dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBjcihlKXtmb3IoO2UmJmUuZmlyc3RDaGlsZDspZT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGV9ZnVuY3Rpb24gbHIoZSx0KXt2YXIgbixyPWNyKGUpO2ZvcihlPTA7cjspe2lmKDM9PT1yLm5vZGVUeXBlKXtpZihuPWUrci50ZXh0Q29udGVudC5sZW5ndGgsZTw9dCYmbj49dClyZXR1cm57bm9kZTpyLG9mZnNldDp0LWV9O2U9bn1lOntmb3IoO3I7KXtpZihyLm5leHRTaWJsaW5nKXtyPXIubmV4dFNpYmxpbmc7YnJlYWsgZX1yPXIucGFyZW50Tm9kZX1yPXZvaWQgMH1yPWNyKHIpfX1mdW5jdGlvbiBmcigpe2Zvcih2YXIgZT13aW5kb3csdD1KKCk7dCBpbnN0YW5jZW9mIGUuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIG49InN0cmluZyI9PT10eXBlb2YgdC5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2gocil7bj0hMX1pZighbilicmVhazt0PUooKGU9dC5jb250ZW50V2luZG93KS5kb2N1bWVudCl9cmV0dXJuIHR9ZnVuY3Rpb24gZHIoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYoImlucHV0Ij09PXQmJigidGV4dCI9PT1lLnR5cGV8fCJzZWFyY2giPT09ZS50eXBlfHwidGVsIj09PWUudHlwZXx8InVybCI9PT1lLnR5cGV8fCJwYXNzd29yZCI9PT1lLnR5cGUpfHwidGV4dGFyZWEiPT09dHx8InRydWUiPT09ZS5jb250ZW50RWRpdGFibGUpfXZhciBwcj1mJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLGhyPW51bGwsdnI9bnVsbCxncj1udWxsLHlyPSExO2Z1bmN0aW9uIG1yKGUsdCxuKXt2YXIgcj1uLndpbmRvdz09PW4/bi5kb2N1bWVudDo5PT09bi5ub2RlVHlwZT9uOm4ub3duZXJEb2N1bWVudDt5cnx8bnVsbD09aHJ8fGhyIT09SihyKXx8KCJzZWxlY3Rpb25TdGFydCJpbihyPWhyKSYmZHIocik/cj17c3RhcnQ6ci5zZWxlY3Rpb25TdGFydCxlbmQ6ci5zZWxlY3Rpb25FbmR9OnI9e2FuY2hvck5vZGU6KHI9KHIub3duZXJEb2N1bWVudCYmci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpyLmFuY2hvck9mZnNldCxmb2N1c05vZGU6ci5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6ci5mb2N1c09mZnNldH0sZ3ImJnVyKGdyLHIpfHwoZ3I9ciwwPChyPUlyKHZyLCJvblNlbGVjdCIpKS5sZW5ndGgmJih0PW5ldyBkbigib25TZWxlY3QiLCJzZWxlY3QiLG51bGwsdCxuKSxlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOnJ9KSx0LnRhcmdldD1ocikpKX1EdCgiY2FuY2VsIGNhbmNlbCBjbGljayBjbGljayBjbG9zZSBjbG9zZSBjb250ZXh0bWVudSBjb250ZXh0TWVudSBjb3B5IGNvcHkgY3V0IGN1dCBhdXhjbGljayBhdXhDbGljayBkYmxjbGljayBkb3VibGVDbGljayBkcmFnZW5kIGRyYWdFbmQgZHJhZ3N0YXJ0IGRyYWdTdGFydCBkcm9wIGRyb3AgZm9jdXNpbiBmb2N1cyBmb2N1c291dCBibHVyIGlucHV0IGlucHV0IGludmFsaWQgaW52YWxpZCBrZXlkb3duIGtleURvd24ga2V5cHJlc3Mga2V5UHJlc3Mga2V5dXAga2V5VXAgbW91c2Vkb3duIG1vdXNlRG93biBtb3VzZXVwIG1vdXNlVXAgcGFzdGUgcGFzdGUgcGF1c2UgcGF1c2UgcGxheSBwbGF5IHBvaW50ZXJjYW5jZWwgcG9pbnRlckNhbmNlbCBwb2ludGVyZG93biBwb2ludGVyRG93biBwb2ludGVydXAgcG9pbnRlclVwIHJhdGVjaGFuZ2UgcmF0ZUNoYW5nZSByZXNldCByZXNldCBzZWVrZWQgc2Vla2VkIHN1Ym1pdCBzdWJtaXQgdG91Y2hjYW5jZWwgdG91Y2hDYW5jZWwgdG91Y2hlbmQgdG91Y2hFbmQgdG91Y2hzdGFydCB0b3VjaFN0YXJ0IHZvbHVtZWNoYW5nZSB2b2x1bWVDaGFuZ2UiLnNwbGl0KCIgIiksMCksRHQoImRyYWcgZHJhZyBkcmFnZW50ZXIgZHJhZ0VudGVyIGRyYWdleGl0IGRyYWdFeGl0IGRyYWdsZWF2ZSBkcmFnTGVhdmUgZHJhZ292ZXIgZHJhZ092ZXIgbW91c2Vtb3ZlIG1vdXNlTW92ZSBtb3VzZW91dCBtb3VzZU91dCBtb3VzZW92ZXIgbW91c2VPdmVyIHBvaW50ZXJtb3ZlIHBvaW50ZXJNb3ZlIHBvaW50ZXJvdXQgcG9pbnRlck91dCBwb2ludGVyb3ZlciBwb2ludGVyT3ZlciBzY3JvbGwgc2Nyb2xsIHRvZ2dsZSB0b2dnbGUgdG91Y2htb3ZlIHRvdWNoTW92ZSB3aGVlbCB3aGVlbCIuc3BsaXQoIiAiKSwxKSxEdChSdCwyKTtmb3IodmFyIGJyPSJjaGFuZ2Ugc2VsZWN0aW9uY2hhbmdlIHRleHRJbnB1dCBjb21wb3NpdGlvbnN0YXJ0IGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9udXBkYXRlIi5zcGxpdCgiICIpLHdyPTA7d3I8YnIubGVuZ3RoO3dyKyspSXQuc2V0KGJyW3dyXSwwKTtsKCJvbk1vdXNlRW50ZXIiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSksbCgib25Nb3VzZUxlYXZlIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pLGwoIm9uUG9pbnRlckVudGVyIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxsKCJvblBvaW50ZXJMZWF2ZSIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSksYygib25DaGFuZ2UiLCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksYygib25TZWxlY3QiLCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLGMoIm9uQmVmb3JlSW5wdXQiLFsiY29tcG9zaXRpb25lbmQiLCJrZXlwcmVzcyIsInRleHRJbnB1dCIsInBhc3RlIl0pLGMoIm9uQ29tcG9zaXRpb25FbmQiLCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSksYygib25Db21wb3NpdGlvblN0YXJ0IiwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSksYygib25Db21wb3NpdGlvblVwZGF0ZSIsImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKTt2YXIgT3I9ImFib3J0IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2Ugc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmciLnNwbGl0KCIgIiksX3I9bmV3IFNldCgiY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgdG9nZ2xlIi5zcGxpdCgiICIpLmNvbmNhdChPcikpO2Z1bmN0aW9uIEVyKGUsdCxuKXt2YXIgcj1lLnR5cGV8fCJ1bmtub3duLWV2ZW50IjtlLmN1cnJlbnRUYXJnZXQ9bixmdW5jdGlvbihlLHQsbixyLG8saSxzLHUsYyl7aWYoR2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLEhlKXtpZighSGUpdGhyb3cgRXJyb3IoYSgxOTgpKTt2YXIgbD1XZTtIZT0hMSxXZT1udWxsLHFlfHwocWU9ITAsJGU9bCl9fShyLHQsdm9pZCAwLGUpLGUuY3VycmVudFRhcmdldD1udWxsfWZ1bmN0aW9uIENyKGUsdCl7dD0wIT09KDQmdCk7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl0sbz1yLmV2ZW50O3I9ci5saXN0ZW5lcnM7ZTp7dmFyIGk9dm9pZCAwO2lmKHQpZm9yKHZhciBhPXIubGVuZ3RoLTE7MDw9YTthLS0pe3ZhciBzPXJbYV0sdT1zLmluc3RhbmNlLGM9cy5jdXJyZW50VGFyZ2V0O2lmKHM9cy5saXN0ZW5lcix1IT09aSYmby5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7RXIobyxzLGMpLGk9dX1lbHNlIGZvcihhPTA7YTxyLmxlbmd0aDthKyspe2lmKHU9KHM9clthXSkuaW5zdGFuY2UsYz1zLmN1cnJlbnRUYXJnZXQscz1zLmxpc3RlbmVyLHUhPT1pJiZvLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtFcihvLHMsYyksaT11fX19aWYocWUpdGhyb3cgZT0kZSxxZT0hMSwkZT1udWxsLGV9ZnVuY3Rpb24gU3IoZSx0KXt2YXIgbj10byh0KSxyPWUrIl9fYnViYmxlIjtuLmhhcyhyKXx8KGpyKHQsZSwyLCExKSxuLmFkZChyKSl9dmFyIGtyPSJfcmVhY3RMaXN0ZW5pbmciK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIHhyKGUpe2Vba3JdfHwoZVtrcl09ITAscy5mb3JFYWNoKChmdW5jdGlvbih0KXtfci5oYXModCl8fEFyKHQsITEsZSxudWxsKSxBcih0LCEwLGUsbnVsbCl9KSkpfWZ1bmN0aW9uIEFyKGUsdCxuLHIpe3ZhciBvPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTowLGk9bjtpZigic2VsZWN0aW9uY2hhbmdlIj09PWUmJjkhPT1uLm5vZGVUeXBlJiYoaT1uLm93bmVyRG9jdW1lbnQpLG51bGwhPT1yJiYhdCYmX3IuaGFzKGUpKXtpZigic2Nyb2xsIiE9PWUpcmV0dXJuO298PTIsaT1yfXZhciBhPXRvKGkpLHM9ZSsiX18iKyh0PyJjYXB0dXJlIjoiYnViYmxlIik7YS5oYXMocyl8fCh0JiYob3w9NCksanIoaSxlLG8sdCksYS5hZGQocykpfWZ1bmN0aW9uIGpyKGUsdCxuLHIpe3ZhciBvPUl0LmdldCh0KTtzd2l0Y2godm9pZCAwPT09bz8yOm8pe2Nhc2UgMDpvPUt0O2JyZWFrO2Nhc2UgMTpvPVh0O2JyZWFrO2RlZmF1bHQ6bz1RdH1uPW8uYmluZChudWxsLHQsbixlKSxvPXZvaWQgMCwhVWV8fCJ0b3VjaHN0YXJ0IiE9PXQmJiJ0b3VjaG1vdmUiIT09dCYmIndoZWVsIiE9PXR8fChvPSEwKSxyP3ZvaWQgMCE9PW8/ZS5hZGRFdmVudExpc3RlbmVyKHQsbix7Y2FwdHVyZTohMCxwYXNzaXZlOm99KTplLmFkZEV2ZW50TGlzdGVuZXIodCxuLCEwKTp2b2lkIDAhPT1vP2UuYWRkRXZlbnRMaXN0ZW5lcih0LG4se3Bhc3NpdmU6b30pOmUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sITEpfWZ1bmN0aW9uIFRyKGUsdCxuLHIsbyl7dmFyIGk9cjtpZigwPT09KDEmdCkmJjA9PT0oMiZ0KSYmbnVsbCE9PXIpZTpmb3IoOzspe2lmKG51bGw9PT1yKXJldHVybjt2YXIgYT1yLnRhZztpZigzPT09YXx8ND09PWEpe3ZhciBzPXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYocz09PW98fDg9PT1zLm5vZGVUeXBlJiZzLnBhcmVudE5vZGU9PT1vKWJyZWFrO2lmKDQ9PT1hKWZvcihhPXIucmV0dXJuO251bGwhPT1hOyl7dmFyIHU9YS50YWc7aWYoKDM9PT11fHw0PT09dSkmJigodT1hLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKT09PW98fDg9PT11Lm5vZGVUeXBlJiZ1LnBhcmVudE5vZGU9PT1vKSlyZXR1cm47YT1hLnJldHVybn1mb3IoO251bGwhPT1zOyl7aWYobnVsbD09PShhPVFyKHMpKSlyZXR1cm47aWYoNT09PSh1PWEudGFnKXx8Nj09PXUpe3I9aT1hO2NvbnRpbnVlIGV9cz1zLnBhcmVudE5vZGV9fXI9ci5yZXR1cm59IWZ1bmN0aW9uKGUsdCxuKXtpZihGZSlyZXR1cm4gZSh0LG4pO0ZlPSEwO3RyeXtOZShlLHQsbil9ZmluYWxseXtGZT0hMSxNZSgpfX0oKGZ1bmN0aW9uKCl7dmFyIHI9aSxvPVNlKG4pLGE9W107ZTp7dmFyIHM9UHQuZ2V0KGUpO2lmKHZvaWQgMCE9PXMpe3ZhciB1PWRuLGM9ZTtzd2l0Y2goZSl7Y2FzZSJrZXlwcmVzcyI6aWYoMD09PXJuKG4pKWJyZWFrIGU7Y2FzZSJrZXlkb3duIjpjYXNlImtleXVwIjp1PXhuO2JyZWFrO2Nhc2UiZm9jdXNpbiI6Yz0iZm9jdXMiLHU9bW47YnJlYWs7Y2FzZSJmb2N1c291dCI6Yz0iYmx1ciIsdT1tbjticmVhaztjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjp1PW1uO2JyZWFrO2Nhc2UiY2xpY2siOmlmKDI9PT1uLmJ1dHRvbilicmVhayBlO2Nhc2UiYXV4Y2xpY2siOmNhc2UiZGJsY2xpY2siOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNlbW92ZSI6Y2FzZSJtb3VzZXVwIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJjb250ZXh0bWVudSI6dT1nbjticmVhaztjYXNlImRyYWciOmNhc2UiZHJhZ2VuZCI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjp1PXluO2JyZWFrO2Nhc2UidG91Y2hjYW5jZWwiOmNhc2UidG91Y2hlbmQiOmNhc2UidG91Y2htb3ZlIjpjYXNlInRvdWNoc3RhcnQiOnU9am47YnJlYWs7Y2FzZSB4dDpjYXNlIEF0OmNhc2UganQ6dT1ibjticmVhaztjYXNlIFR0OnU9VG47YnJlYWs7Y2FzZSJzY3JvbGwiOnU9aG47YnJlYWs7Y2FzZSJ3aGVlbCI6dT1QbjticmVhaztjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlInBhc3RlIjp1PXduO2JyZWFrO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOmNhc2UibG9zdHBvaW50ZXJjYXB0dXJlIjpjYXNlInBvaW50ZXJjYW5jZWwiOmNhc2UicG9pbnRlcmRvd24iOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVydXAiOnU9QW59dmFyIGw9MCE9PSg0JnQpLGY9IWwmJiJzY3JvbGwiPT09ZSxkPWw/bnVsbCE9PXM/cysiQ2FwdHVyZSI6bnVsbDpzO2w9W107Zm9yKHZhciBwLGg9cjtudWxsIT09aDspe3ZhciB2PShwPWgpLnN0YXRlTm9kZTtpZig1PT09cC50YWcmJm51bGwhPT12JiYocD12LG51bGwhPT1kJiYobnVsbCE9KHY9QmUoaCxkKSkmJmwucHVzaChQcihoLHYscCkpKSksZilicmVhaztoPWgucmV0dXJufTA8bC5sZW5ndGgmJihzPW5ldyB1KHMsYyxudWxsLG4sbyksYS5wdXNoKHtldmVudDpzLGxpc3RlbmVyczpsfSkpfX1pZigwPT09KDcmdCkpe2lmKHU9Im1vdXNlb3V0Ij09PWV8fCJwb2ludGVyb3V0Ij09PWUsKCEocz0ibW91c2VvdmVyIj09PWV8fCJwb2ludGVyb3ZlciI9PT1lKXx8MCE9PSgxNiZ0KXx8IShjPW4ucmVsYXRlZFRhcmdldHx8bi5mcm9tRWxlbWVudCl8fCFRcihjKSYmIWNbS3JdKSYmKHV8fHMpJiYocz1vLndpbmRvdz09PW8/bzoocz1vLm93bmVyRG9jdW1lbnQpP3MuZGVmYXVsdFZpZXd8fHMucGFyZW50V2luZG93OndpbmRvdyx1Pyh1PXIsbnVsbCE9PShjPShjPW4ucmVsYXRlZFRhcmdldHx8bi50b0VsZW1lbnQpP1FyKGMpOm51bGwpJiYoYyE9PShmPUtlKGMpKXx8NSE9PWMudGFnJiY2IT09Yy50YWcpJiYoYz1udWxsKSk6KHU9bnVsbCxjPXIpLHUhPT1jKSl7aWYobD1nbix2PSJvbk1vdXNlTGVhdmUiLGQ9Im9uTW91c2VFbnRlciIsaD0ibW91c2UiLCJwb2ludGVyb3V0IiE9PWUmJiJwb2ludGVyb3ZlciIhPT1lfHwobD1Bbix2PSJvblBvaW50ZXJMZWF2ZSIsZD0ib25Qb2ludGVyRW50ZXIiLGg9InBvaW50ZXIiKSxmPW51bGw9PXU/czpacih1KSxwPW51bGw9PWM/czpacihjKSwocz1uZXcgbCh2LGgrImxlYXZlIix1LG4sbykpLnRhcmdldD1mLHMucmVsYXRlZFRhcmdldD1wLHY9bnVsbCxRcihvKT09PXImJigobD1uZXcgbChkLGgrImVudGVyIixjLG4sbykpLnRhcmdldD1wLGwucmVsYXRlZFRhcmdldD1mLHY9bCksZj12LHUmJmMpZTp7Zm9yKGQ9YyxoPTAscD1sPXU7cDtwPVJyKHApKWgrKztmb3IocD0wLHY9ZDt2O3Y9UnIodikpcCsrO2Zvcig7MDxoLXA7KWw9UnIobCksaC0tO2Zvcig7MDxwLWg7KWQ9UnIoZCkscC0tO2Zvcig7aC0tOyl7aWYobD09PWR8fG51bGwhPT1kJiZsPT09ZC5hbHRlcm5hdGUpYnJlYWsgZTtsPVJyKGwpLGQ9UnIoZCl9bD1udWxsfWVsc2UgbD1udWxsO251bGwhPT11JiZEcihhLHMsdSxsLCExKSxudWxsIT09YyYmbnVsbCE9PWYmJkRyKGEsZixjLGwsITApfWlmKCJzZWxlY3QiPT09KHU9KHM9cj9acihyKTp3aW5kb3cpLm5vZGVOYW1lJiZzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpfHwiaW5wdXQiPT09dSYmImZpbGUiPT09cy50eXBlKXZhciBnPUtuO2Vsc2UgaWYoSG4ocykpaWYoWG4pZz1pcjtlbHNle2c9cnI7dmFyIHk9bnJ9ZWxzZSh1PXMubm9kZU5hbWUpJiYiaW5wdXQiPT09dS50b0xvd2VyQ2FzZSgpJiYoImNoZWNrYm94Ij09PXMudHlwZXx8InJhZGlvIj09PXMudHlwZSkmJihnPW9yKTtzd2l0Y2goZyYmKGc9ZyhlLHIpKT9XbihhLGcsbixvKTooeSYmeShlLHMsciksImZvY3Vzb3V0Ij09PWUmJih5PXMuX3dyYXBwZXJTdGF0ZSkmJnkuY29udHJvbGxlZCYmIm51bWJlciI9PT1zLnR5cGUmJm9lKHMsIm51bWJlciIscy52YWx1ZSkpLHk9cj9acihyKTp3aW5kb3csZSl7Y2FzZSJmb2N1c2luIjooSG4oeSl8fCJ0cnVlIj09PXkuY29udGVudEVkaXRhYmxlKSYmKGhyPXksdnI9cixncj1udWxsKTticmVhaztjYXNlImZvY3Vzb3V0Ijpncj12cj1ocj1udWxsO2JyZWFrO2Nhc2UibW91c2Vkb3duIjp5cj0hMDticmVhaztjYXNlImNvbnRleHRtZW51IjpjYXNlIm1vdXNldXAiOmNhc2UiZHJhZ2VuZCI6eXI9ITEsbXIoYSxuLG8pO2JyZWFrO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihwcilicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOm1yKGEsbixvKX12YXIgbTtpZihSbillOntzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp2YXIgYj0ib25Db21wb3NpdGlvblN0YXJ0IjticmVhayBlO2Nhc2UiY29tcG9zaXRpb25lbmQiOmI9Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Yj0ib25Db21wb3NpdGlvblVwZGF0ZSI7YnJlYWsgZX1iPXZvaWQgMH1lbHNlIHpuP0JuKGUsbikmJihiPSJvbkNvbXBvc2l0aW9uRW5kIik6ImtleWRvd24iPT09ZSYmMjI5PT09bi5rZXlDb2RlJiYoYj0ib25Db21wb3NpdGlvblN0YXJ0Iik7YiYmKExuJiYia28iIT09bi5sb2NhbGUmJih6bnx8Im9uQ29tcG9zaXRpb25TdGFydCIhPT1iPyJvbkNvbXBvc2l0aW9uRW5kIj09PWImJnpuJiYobT1ubigpKTooZW49InZhbHVlImluKFp0PW8pP1p0LnZhbHVlOlp0LnRleHRDb250ZW50LHpuPSEwKSksMDwoeT1JcihyLGIpKS5sZW5ndGgmJihiPW5ldyBPbihiLGUsbnVsbCxuLG8pLGEucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6eX0pLG0/Yi5kYXRhPW06bnVsbCE9PShtPVVuKG4pKSYmKGIuZGF0YT1tKSkpLChtPU5uP2Z1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBVbih0KTtjYXNlImtleXByZXNzIjpyZXR1cm4gMzIhPT10LndoaWNoP251bGw6KE1uPSEwLEZuKTtjYXNlInRleHRJbnB1dCI6cmV0dXJuKGU9dC5kYXRhKT09PUZuJiZNbj9udWxsOmU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KGUsbik6ZnVuY3Rpb24oZSx0KXtpZih6bilyZXR1cm4iY29tcG9zaXRpb25lbmQiPT09ZXx8IVJuJiZCbihlLHQpPyhlPW5uKCksdG49ZW49WnQ9bnVsbCx6bj0hMSxlKTpudWxsO3N3aXRjaChlKXtjYXNlInBhc3RlIjpyZXR1cm4gbnVsbDtjYXNlImtleXByZXNzIjppZighKHQuY3RybEtleXx8dC5hbHRLZXl8fHQubWV0YUtleSl8fHQuY3RybEtleSYmdC5hbHRLZXkpe2lmKHQuY2hhciYmMTx0LmNoYXIubGVuZ3RoKXJldHVybiB0LmNoYXI7aWYodC53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0LndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gTG4mJiJrbyIhPT10LmxvY2FsZT9udWxsOnQuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX0oZSxuKSkmJigwPChyPUlyKHIsIm9uQmVmb3JlSW5wdXQiKSkubGVuZ3RoJiYobz1uZXcgT24oIm9uQmVmb3JlSW5wdXQiLCJiZWZvcmVpbnB1dCIsbnVsbCxuLG8pLGEucHVzaCh7ZXZlbnQ6byxsaXN0ZW5lcnM6cn0pLG8uZGF0YT1tKSl9Q3IoYSx0KX0pKX1mdW5jdGlvbiBQcihlLHQsbil7cmV0dXJue2luc3RhbmNlOmUsbGlzdGVuZXI6dCxjdXJyZW50VGFyZ2V0Om59fWZ1bmN0aW9uIElyKGUsdCl7Zm9yKHZhciBuPXQrIkNhcHR1cmUiLHI9W107bnVsbCE9PWU7KXt2YXIgbz1lLGk9by5zdGF0ZU5vZGU7NT09PW8udGFnJiZudWxsIT09aSYmKG89aSxudWxsIT0oaT1CZShlLG4pKSYmci51bnNoaWZ0KFByKGUsaSxvKSksbnVsbCE9KGk9QmUoZSx0KSkmJnIucHVzaChQcihlLGksbykpKSxlPWUucmV0dXJufXJldHVybiByfWZ1bmN0aW9uIFJyKGUpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO2Rve2U9ZS5yZXR1cm59d2hpbGUoZSYmNSE9PWUudGFnKTtyZXR1cm4gZXx8bnVsbH1mdW5jdGlvbiBEcihlLHQsbixyLG8pe2Zvcih2YXIgaT10Ll9yZWFjdE5hbWUsYT1bXTtudWxsIT09biYmbiE9PXI7KXt2YXIgcz1uLHU9cy5hbHRlcm5hdGUsYz1zLnN0YXRlTm9kZTtpZihudWxsIT09dSYmdT09PXIpYnJlYWs7NT09PXMudGFnJiZudWxsIT09YyYmKHM9YyxvP251bGwhPSh1PUJlKG4saSkpJiZhLnVuc2hpZnQoUHIobix1LHMpKTpvfHxudWxsIT0odT1CZShuLGkpKSYmYS5wdXNoKFByKG4sdSxzKSkpLG49bi5yZXR1cm59MCE9PWEubGVuZ3RoJiZlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOmF9KX1mdW5jdGlvbiBOcigpe312YXIgTHI9bnVsbCxGcj1udWxsO2Z1bmN0aW9uIE1yKGUsdCl7c3dpdGNoKGUpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6cmV0dXJuISF0LmF1dG9Gb2N1c31yZXR1cm4hMX1mdW5jdGlvbiBCcihlLHQpe3JldHVybiJ0ZXh0YXJlYSI9PT1lfHwib3B0aW9uIj09PWV8fCJub3NjcmlwdCI9PT1lfHwic3RyaW5nIj09PXR5cGVvZiB0LmNoaWxkcmVufHwibnVtYmVyIj09PXR5cGVvZiB0LmNoaWxkcmVufHwib2JqZWN0Ij09PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09dC5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIFVyPSJmdW5jdGlvbiI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCx6cj0iZnVuY3Rpb24iPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwO2Z1bmN0aW9uIFZyKGUpezE9PT1lLm5vZGVUeXBlP2UudGV4dENvbnRlbnQ9IiI6OT09PWUubm9kZVR5cGUmJihudWxsIT0oZT1lLmJvZHkpJiYoZS50ZXh0Q29udGVudD0iIikpfWZ1bmN0aW9uIEhyKGUpe2Zvcig7bnVsbCE9ZTtlPWUubmV4dFNpYmxpbmcpe3ZhciB0PWUubm9kZVR5cGU7aWYoMT09PXR8fDM9PT10KWJyZWFrfXJldHVybiBlfWZ1bmN0aW9uIFdyKGUpe2U9ZS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciB0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYoIiQiPT09bnx8IiQhIj09PW58fCIkPyI9PT1uKXtpZigwPT09dClyZXR1cm4gZTt0LS19ZWxzZSIvJCI9PT1uJiZ0Kyt9ZT1lLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgcXI9MDt2YXIgJHI9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksWXI9Il9fcmVhY3RGaWJlciQiKyRyLEdyPSJfX3JlYWN0UHJvcHMkIiskcixLcj0iX19yZWFjdENvbnRhaW5lciQiKyRyLFhyPSJfX3JlYWN0RXZlbnRzJCIrJHI7ZnVuY3Rpb24gUXIoZSl7dmFyIHQ9ZVtZcl07aWYodClyZXR1cm4gdDtmb3IodmFyIG49ZS5wYXJlbnROb2RlO247KXtpZih0PW5bS3JdfHxuW1lyXSl7aWYobj10LmFsdGVybmF0ZSxudWxsIT09dC5jaGlsZHx8bnVsbCE9PW4mJm51bGwhPT1uLmNoaWxkKWZvcihlPVdyKGUpO251bGwhPT1lOyl7aWYobj1lW1lyXSlyZXR1cm4gbjtlPVdyKGUpfXJldHVybiB0fW49KGU9bikucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBKcihlKXtyZXR1cm4hKGU9ZVtZcl18fGVbS3JdKXx8NSE9PWUudGFnJiY2IT09ZS50YWcmJjEzIT09ZS50YWcmJjMhPT1lLnRhZz9udWxsOmV9ZnVuY3Rpb24gWnIoZSl7aWYoNT09PWUudGFnfHw2PT09ZS50YWcpcmV0dXJuIGUuc3RhdGVOb2RlO3Rocm93IEVycm9yKGEoMzMpKX1mdW5jdGlvbiBlbyhlKXtyZXR1cm4gZVtHcl18fG51bGx9ZnVuY3Rpb24gdG8oZSl7dmFyIHQ9ZVtYcl07cmV0dXJuIHZvaWQgMD09PXQmJih0PWVbWHJdPW5ldyBTZXQpLHR9dmFyIG5vPVtdLHJvPS0xO2Z1bmN0aW9uIG9vKGUpe3JldHVybntjdXJyZW50OmV9fWZ1bmN0aW9uIGlvKGUpezA+cm98fChlLmN1cnJlbnQ9bm9bcm9dLG5vW3JvXT1udWxsLHJvLS0pfWZ1bmN0aW9uIGFvKGUsdCl7cm8rKyxub1tyb109ZS5jdXJyZW50LGUuY3VycmVudD10fXZhciBzbz17fSx1bz1vbyhzbyksY289b28oITEpLGxvPXNvO2Z1bmN0aW9uIGZvKGUsdCl7dmFyIG49ZS50eXBlLmNvbnRleHRUeXBlcztpZighbilyZXR1cm4gc287dmFyIHI9ZS5zdGF0ZU5vZGU7aWYociYmci5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PT09dClyZXR1cm4gci5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dDt2YXIgbyxpPXt9O2ZvcihvIGluIG4paVtvXT10W29dO3JldHVybiByJiYoKGU9ZS5zdGF0ZU5vZGUpLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9dCxlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWkpLGl9ZnVuY3Rpb24gcG8oZSl7cmV0dXJuIG51bGwhPT0oZT1lLmNoaWxkQ29udGV4dFR5cGVzKSYmdm9pZCAwIT09ZX1mdW5jdGlvbiBobygpe2lvKGNvKSxpbyh1byl9ZnVuY3Rpb24gdm8oZSx0LG4pe2lmKHVvLmN1cnJlbnQhPT1zbyl0aHJvdyBFcnJvcihhKDE2OCkpO2FvKHVvLHQpLGFvKGNvLG4pfWZ1bmN0aW9uIGdvKGUsdCxuKXt2YXIgcj1lLnN0YXRlTm9kZTtpZihlPXQuY2hpbGRDb250ZXh0VHlwZXMsImZ1bmN0aW9uIiE9PXR5cGVvZiByLmdldENoaWxkQ29udGV4dClyZXR1cm4gbjtmb3IodmFyIGkgaW4gcj1yLmdldENoaWxkQ29udGV4dCgpKWlmKCEoaSBpbiBlKSl0aHJvdyBFcnJvcihhKDEwOCxZKHQpfHwiVW5rbm93biIsaSkpO3JldHVybiBvKHt9LG4scil9ZnVuY3Rpb24geW8oZSl7cmV0dXJuIGU9KGU9ZS5zdGF0ZU5vZGUpJiZlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxzbyxsbz11by5jdXJyZW50LGFvKHVvLGUpLGFvKGNvLGNvLmN1cnJlbnQpLCEwfWZ1bmN0aW9uIG1vKGUsdCxuKXt2YXIgcj1lLnN0YXRlTm9kZTtpZighcil0aHJvdyBFcnJvcihhKDE2OSkpO24/KGU9Z28oZSx0LGxvKSxyLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWUsaW8oY28pLGlvKHVvKSxhbyh1byxlKSk6aW8oY28pLGFvKGNvLG4pfXZhciBibz1udWxsLHdvPW51bGwsT289aS51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHksX289aS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLEVvPWkudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssQ289aS51bnN0YWJsZV9zaG91bGRZaWVsZCxTbz1pLnVuc3RhYmxlX3JlcXVlc3RQYWludCxrbz1pLnVuc3RhYmxlX25vdyx4bz1pLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLEFvPWkudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksam89aS51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxUbz1pLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LFBvPWkudW5zdGFibGVfTG93UHJpb3JpdHksSW89aS51bnN0YWJsZV9JZGxlUHJpb3JpdHksUm89e30sRG89dm9pZCAwIT09U28/U286ZnVuY3Rpb24oKXt9LE5vPW51bGwsTG89bnVsbCxGbz0hMSxNbz1rbygpLEJvPTFlND5Nbz9rbzpmdW5jdGlvbigpe3JldHVybiBrbygpLU1vfTtmdW5jdGlvbiBVbygpe3N3aXRjaCh4bygpKXtjYXNlIEFvOnJldHVybiA5OTtjYXNlIGpvOnJldHVybiA5ODtjYXNlIFRvOnJldHVybiA5NztjYXNlIFBvOnJldHVybiA5NjtjYXNlIElvOnJldHVybiA5NTtkZWZhdWx0OnRocm93IEVycm9yKGEoMzMyKSl9fWZ1bmN0aW9uIHpvKGUpe3N3aXRjaChlKXtjYXNlIDk5OnJldHVybiBBbztjYXNlIDk4OnJldHVybiBqbztjYXNlIDk3OnJldHVybiBUbztjYXNlIDk2OnJldHVybiBQbztjYXNlIDk1OnJldHVybiBJbztkZWZhdWx0OnRocm93IEVycm9yKGEoMzMyKSl9fWZ1bmN0aW9uIFZvKGUsdCl7cmV0dXJuIGU9em8oZSksT28oZSx0KX1mdW5jdGlvbiBIbyhlLHQsbil7cmV0dXJuIGU9em8oZSksX28oZSx0LG4pfWZ1bmN0aW9uIFdvKCl7aWYobnVsbCE9PUxvKXt2YXIgZT1MbztMbz1udWxsLEVvKGUpfXFvKCl9ZnVuY3Rpb24gcW8oKXtpZighRm8mJm51bGwhPT1Obyl7Rm89ITA7dmFyIGU9MDt0cnl7dmFyIHQ9Tm87Vm8oOTksKGZ1bmN0aW9uKCl7Zm9yKDtlPHQubGVuZ3RoO2UrKyl7dmFyIG49dFtlXTtkb3tuPW4oITApfXdoaWxlKG51bGwhPT1uKX19KSksTm89bnVsbH1jYXRjaChuKXt0aHJvdyBudWxsIT09Tm8mJihObz1Oby5zbGljZShlKzEpKSxfbyhBbyxXbyksbn1maW5hbGx5e0ZvPSExfX19dmFyICRvPU8uUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7ZnVuY3Rpb24gWW8oZSx0KXtpZihlJiZlLmRlZmF1bHRQcm9wcyl7Zm9yKHZhciBuIGluIHQ9byh7fSx0KSxlPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PXRbbl0mJih0W25dPWVbbl0pO3JldHVybiB0fXJldHVybiB0fXZhciBHbz1vbyhudWxsKSxLbz1udWxsLFhvPW51bGwsUW89bnVsbDtmdW5jdGlvbiBKbygpe1FvPVhvPUtvPW51bGx9ZnVuY3Rpb24gWm8oZSl7dmFyIHQ9R28uY3VycmVudDtpbyhHbyksZS50eXBlLl9jb250ZXh0Ll9jdXJyZW50VmFsdWU9dH1mdW5jdGlvbiBlaShlLHQpe2Zvcig7bnVsbCE9PWU7KXt2YXIgbj1lLmFsdGVybmF0ZTtpZigoZS5jaGlsZExhbmVzJnQpPT09dCl7aWYobnVsbD09PW58fChuLmNoaWxkTGFuZXMmdCk9PT10KWJyZWFrO24uY2hpbGRMYW5lc3w9dH1lbHNlIGUuY2hpbGRMYW5lc3w9dCxudWxsIT09biYmKG4uY2hpbGRMYW5lc3w9dCk7ZT1lLnJldHVybn19ZnVuY3Rpb24gdGkoZSx0KXtLbz1lLFFvPVhvPW51bGwsbnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmbnVsbCE9PWUuZmlyc3RDb250ZXh0JiYoMCE9PShlLmxhbmVzJnQpJiYoSWE9ITApLGUuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIG5pKGUsdCl7aWYoUW8hPT1lJiYhMSE9PXQmJjAhPT10KWlmKCJudW1iZXIiPT09dHlwZW9mIHQmJjEwNzM3NDE4MjMhPT10fHwoUW89ZSx0PTEwNzM3NDE4MjMpLHQ9e2NvbnRleHQ6ZSxvYnNlcnZlZEJpdHM6dCxuZXh0Om51bGx9LG51bGw9PT1Ybyl7aWYobnVsbD09PUtvKXRocm93IEVycm9yKGEoMzA4KSk7WG89dCxLby5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OnQscmVzcG9uZGVyczpudWxsfX1lbHNlIFhvPVhvLm5leHQ9dDtyZXR1cm4gZS5fY3VycmVudFZhbHVlfXZhciByaT0hMTtmdW5jdGlvbiBvaShlKXtlLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGx9LGVmZmVjdHM6bnVsbH19ZnVuY3Rpb24gaWkoZSx0KXtlPWUudXBkYXRlUXVldWUsdC51cGRhdGVRdWV1ZT09PWUmJih0LnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOmUubGFzdEJhc2VVcGRhdGUsc2hhcmVkOmUuc2hhcmVkLGVmZmVjdHM6ZS5lZmZlY3RzfSl9ZnVuY3Rpb24gYWkoZSx0KXtyZXR1cm57ZXZlbnRUaW1lOmUsbGFuZTp0LHRhZzowLHBheWxvYWQ6bnVsbCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH19ZnVuY3Rpb24gc2koZSx0KXtpZihudWxsIT09KGU9ZS51cGRhdGVRdWV1ZSkpe3ZhciBuPShlPWUuc2hhcmVkKS5wZW5kaW5nO251bGw9PT1uP3QubmV4dD10Oih0Lm5leHQ9bi5uZXh0LG4ubmV4dD10KSxlLnBlbmRpbmc9dH19ZnVuY3Rpb24gdWkoZSx0KXt2YXIgbj1lLnVwZGF0ZVF1ZXVlLHI9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PXImJm49PT0ocj1yLnVwZGF0ZVF1ZXVlKSl7dmFyIG89bnVsbCxpPW51bGw7aWYobnVsbCE9PShuPW4uZmlyc3RCYXNlVXBkYXRlKSl7ZG97dmFyIGE9e2V2ZW50VGltZTpuLmV2ZW50VGltZSxsYW5lOm4ubGFuZSx0YWc6bi50YWcscGF5bG9hZDpuLnBheWxvYWQsY2FsbGJhY2s6bi5jYWxsYmFjayxuZXh0Om51bGx9O251bGw9PT1pP289aT1hOmk9aS5uZXh0PWEsbj1uLm5leHR9d2hpbGUobnVsbCE9PW4pO251bGw9PT1pP289aT10Omk9aS5uZXh0PXR9ZWxzZSBvPWk9dDtyZXR1cm4gbj17YmFzZVN0YXRlOnIuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpvLGxhc3RCYXNlVXBkYXRlOmksc2hhcmVkOnIuc2hhcmVkLGVmZmVjdHM6ci5lZmZlY3RzfSx2b2lkKGUudXBkYXRlUXVldWU9bil9bnVsbD09PShlPW4ubGFzdEJhc2VVcGRhdGUpP24uZmlyc3RCYXNlVXBkYXRlPXQ6ZS5uZXh0PXQsbi5sYXN0QmFzZVVwZGF0ZT10fWZ1bmN0aW9uIGNpKGUsdCxuLHIpe3ZhciBpPWUudXBkYXRlUXVldWU7cmk9ITE7dmFyIGE9aS5maXJzdEJhc2VVcGRhdGUscz1pLmxhc3RCYXNlVXBkYXRlLHU9aS5zaGFyZWQucGVuZGluZztpZihudWxsIT09dSl7aS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBjPXUsbD1jLm5leHQ7Yy5uZXh0PW51bGwsbnVsbD09PXM/YT1sOnMubmV4dD1sLHM9Yzt2YXIgZj1lLmFsdGVybmF0ZTtpZihudWxsIT09Zil7dmFyIGQ9KGY9Zi51cGRhdGVRdWV1ZSkubGFzdEJhc2VVcGRhdGU7ZCE9PXMmJihudWxsPT09ZD9mLmZpcnN0QmFzZVVwZGF0ZT1sOmQubmV4dD1sLGYubGFzdEJhc2VVcGRhdGU9Yyl9fWlmKG51bGwhPT1hKXtmb3IoZD1pLmJhc2VTdGF0ZSxzPTAsZj1sPWM9bnVsbDs7KXt1PWEubGFuZTt2YXIgcD1hLmV2ZW50VGltZTtpZigociZ1KT09PXUpe251bGwhPT1mJiYoZj1mLm5leHQ9e2V2ZW50VGltZTpwLGxhbmU6MCx0YWc6YS50YWcscGF5bG9hZDphLnBheWxvYWQsY2FsbGJhY2s6YS5jYWxsYmFjayxuZXh0Om51bGx9KTtlOnt2YXIgaD1lLHY9YTtzd2l0Y2godT10LHA9bix2LnRhZyl7Y2FzZSAxOmlmKCJmdW5jdGlvbiI9PT10eXBlb2YoaD12LnBheWxvYWQpKXtkPWguY2FsbChwLGQsdSk7YnJlYWsgZX1kPWg7YnJlYWsgZTtjYXNlIDM6aC5mbGFncz0tNDA5NyZoLmZsYWdzfDY0O2Nhc2UgMDppZihudWxsPT09KHU9ImZ1bmN0aW9uIj09PXR5cGVvZihoPXYucGF5bG9hZCk/aC5jYWxsKHAsZCx1KTpoKXx8dm9pZCAwPT09dSlicmVhayBlO2Q9byh7fSxkLHUpO2JyZWFrIGU7Y2FzZSAyOnJpPSEwfX1udWxsIT09YS5jYWxsYmFjayYmKGUuZmxhZ3N8PTMyLG51bGw9PT0odT1pLmVmZmVjdHMpP2kuZWZmZWN0cz1bYV06dS5wdXNoKGEpKX1lbHNlIHA9e2V2ZW50VGltZTpwLGxhbmU6dSx0YWc6YS50YWcscGF5bG9hZDphLnBheWxvYWQsY2FsbGJhY2s6YS5jYWxsYmFjayxuZXh0Om51bGx9LG51bGw9PT1mPyhsPWY9cCxjPWQpOmY9Zi5uZXh0PXAsc3w9dTtpZihudWxsPT09KGE9YS5uZXh0KSl7aWYobnVsbD09PSh1PWkuc2hhcmVkLnBlbmRpbmcpKWJyZWFrO2E9dS5uZXh0LHUubmV4dD1udWxsLGkubGFzdEJhc2VVcGRhdGU9dSxpLnNoYXJlZC5wZW5kaW5nPW51bGx9fW51bGw9PT1mJiYoYz1kKSxpLmJhc2VTdGF0ZT1jLGkuZmlyc3RCYXNlVXBkYXRlPWwsaS5sYXN0QmFzZVVwZGF0ZT1mLERzfD1zLGUubGFuZXM9cyxlLm1lbW9pemVkU3RhdGU9ZH19ZnVuY3Rpb24gbGkoZSx0LG4pe2lmKGU9dC5lZmZlY3RzLHQuZWZmZWN0cz1udWxsLG51bGwhPT1lKWZvcih0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF0sbz1yLmNhbGxiYWNrO2lmKG51bGwhPT1vKXtpZihyLmNhbGxiYWNrPW51bGwscj1uLCJmdW5jdGlvbiIhPT10eXBlb2Ygbyl0aHJvdyBFcnJvcihhKDE5MSxvKSk7by5jYWxsKHIpfX19dmFyIGZpPShuZXcgci5Db21wb25lbnQpLnJlZnM7ZnVuY3Rpb24gZGkoZSx0LG4scil7bj1udWxsPT09KG49bihyLHQ9ZS5tZW1vaXplZFN0YXRlKSl8fHZvaWQgMD09PW4/dDpvKHt9LHQsbiksZS5tZW1vaXplZFN0YXRlPW4sMD09PWUubGFuZXMmJihlLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1uKX12YXIgcGk9e2lzTW91bnRlZDpmdW5jdGlvbihlKXtyZXR1cm4hIShlPWUuX3JlYWN0SW50ZXJuYWxzKSYmS2UoZSk9PT1lfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oZSx0LG4pe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIHI9aXUoKSxvPWF1KGUpLGk9YWkocixvKTtpLnBheWxvYWQ9dCx2b2lkIDAhPT1uJiZudWxsIT09biYmKGkuY2FsbGJhY2s9biksc2koZSxpKSxzdShlLG8scil9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSx0LG4pe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIHI9aXUoKSxvPWF1KGUpLGk9YWkocixvKTtpLnRhZz0xLGkucGF5bG9hZD10LHZvaWQgMCE9PW4mJm51bGwhPT1uJiYoaS5jYWxsYmFjaz1uKSxzaShlLGkpLHN1KGUsbyxyKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGUsdCl7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgbj1pdSgpLHI9YXUoZSksbz1haShuLHIpO28udGFnPTIsdm9pZCAwIT09dCYmbnVsbCE9PXQmJihvLmNhbGxiYWNrPXQpLHNpKGUsbyksc3UoZSxyLG4pfX07ZnVuY3Rpb24gaGkoZSx0LG4scixvLGksYSl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZihlPWUuc3RhdGVOb2RlKS5zaG91bGRDb21wb25lbnRVcGRhdGU/ZS5zaG91bGRDb21wb25lbnRVcGRhdGUocixpLGEpOiF0LnByb3RvdHlwZXx8IXQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50fHwoIXVyKG4scil8fCF1cihvLGkpKX1mdW5jdGlvbiB2aShlLHQsbil7dmFyIHI9ITEsbz1zbyxpPXQuY29udGV4dFR5cGU7cmV0dXJuIm9iamVjdCI9PT10eXBlb2YgaSYmbnVsbCE9PWk/aT1uaShpKToobz1wbyh0KT9sbzp1by5jdXJyZW50LGk9KHI9bnVsbCE9PShyPXQuY29udGV4dFR5cGVzKSYmdm9pZCAwIT09cik/Zm8oZSxvKTpzbyksdD1uZXcgdChuLGkpLGUubWVtb2l6ZWRTdGF0ZT1udWxsIT09dC5zdGF0ZSYmdm9pZCAwIT09dC5zdGF0ZT90LnN0YXRlOm51bGwsdC51cGRhdGVyPXBpLGUuc3RhdGVOb2RlPXQsdC5fcmVhY3RJbnRlcm5hbHM9ZSxyJiYoKGU9ZS5zdGF0ZU5vZGUpLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9byxlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWkpLHR9ZnVuY3Rpb24gZ2koZSx0LG4scil7ZT10LnN0YXRlLCJmdW5jdGlvbiI9PT10eXBlb2YgdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZ0LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobixyKSwiZnVuY3Rpb24iPT09dHlwZW9mIHQuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJnQuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobixyKSx0LnN0YXRlIT09ZSYmcGkuZW5xdWV1ZVJlcGxhY2VTdGF0ZSh0LHQuc3RhdGUsbnVsbCl9ZnVuY3Rpb24geWkoZSx0LG4scil7dmFyIG89ZS5zdGF0ZU5vZGU7by5wcm9wcz1uLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlLG8ucmVmcz1maSxvaShlKTt2YXIgaT10LmNvbnRleHRUeXBlOyJvYmplY3QiPT09dHlwZW9mIGkmJm51bGwhPT1pP28uY29udGV4dD1uaShpKTooaT1wbyh0KT9sbzp1by5jdXJyZW50LG8uY29udGV4dD1mbyhlLGkpKSxjaShlLG4sbyxyKSxvLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSwiZnVuY3Rpb24iPT09dHlwZW9mKGk9dC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMpJiYoZGkoZSx0LGksbiksby5zdGF0ZT1lLm1lbW9pemVkU3RhdGUpLCJmdW5jdGlvbiI9PT10eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fCJmdW5jdGlvbiI9PT10eXBlb2Ygby5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8ImZ1bmN0aW9uIiE9PXR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJiJmdW5jdGlvbiIhPT10eXBlb2Ygby5jb21wb25lbnRXaWxsTW91bnR8fCh0PW8uc3RhdGUsImZ1bmN0aW9uIj09PXR5cGVvZiBvLmNvbXBvbmVudFdpbGxNb3VudCYmby5jb21wb25lbnRXaWxsTW91bnQoKSwiZnVuY3Rpb24iPT09dHlwZW9mIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmby5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksdCE9PW8uc3RhdGUmJnBpLmVucXVldWVSZXBsYWNlU3RhdGUobyxvLnN0YXRlLG51bGwpLGNpKGUsbixvLHIpLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlKSwiZnVuY3Rpb24iPT09dHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQmJihlLmZsYWdzfD00KX12YXIgbWk9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBiaShlLHQsbil7aWYobnVsbCE9PShlPW4ucmVmKSYmImZ1bmN0aW9uIiE9PXR5cGVvZiBlJiYib2JqZWN0IiE9PXR5cGVvZiBlKXtpZihuLl9vd25lcil7aWYobj1uLl9vd25lcil7aWYoMSE9PW4udGFnKXRocm93IEVycm9yKGEoMzA5KSk7dmFyIHI9bi5zdGF0ZU5vZGV9aWYoIXIpdGhyb3cgRXJyb3IoYSgxNDcsZSkpO3ZhciBvPSIiK2U7cmV0dXJuIG51bGwhPT10JiZudWxsIT09dC5yZWYmJiJmdW5jdGlvbiI9PT10eXBlb2YgdC5yZWYmJnQucmVmLl9zdHJpbmdSZWY9PT1vP3QucmVmOigodD1mdW5jdGlvbihlKXt2YXIgdD1yLnJlZnM7dD09PWZpJiYodD1yLnJlZnM9e30pLG51bGw9PT1lP2RlbGV0ZSB0W29dOnRbb109ZX0pLl9zdHJpbmdSZWY9byx0KX1pZigic3RyaW5nIiE9PXR5cGVvZiBlKXRocm93IEVycm9yKGEoMjg0KSk7aWYoIW4uX293bmVyKXRocm93IEVycm9yKGEoMjkwLGUpKX1yZXR1cm4gZX1mdW5jdGlvbiB3aShlLHQpe2lmKCJ0ZXh0YXJlYSIhPT1lLnR5cGUpdGhyb3cgRXJyb3IoYSgzMSwiW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyh0KS5qb2luKCIsICIpKyJ9Ijp0KSl9ZnVuY3Rpb24gT2koZSl7ZnVuY3Rpb24gdCh0LG4pe2lmKGUpe3ZhciByPXQubGFzdEVmZmVjdDtudWxsIT09cj8oci5uZXh0RWZmZWN0PW4sdC5sYXN0RWZmZWN0PW4pOnQuZmlyc3RFZmZlY3Q9dC5sYXN0RWZmZWN0PW4sbi5uZXh0RWZmZWN0PW51bGwsbi5mbGFncz04fX1mdW5jdGlvbiBuKG4scil7aWYoIWUpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09cjspdChuLHIpLHI9ci5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIHIoZSx0KXtmb3IoZT1uZXcgTWFwO251bGwhPT10OyludWxsIT09dC5rZXk/ZS5zZXQodC5rZXksdCk6ZS5zZXQodC5pbmRleCx0KSx0PXQuc2libGluZztyZXR1cm4gZX1mdW5jdGlvbiBvKGUsdCl7cmV0dXJuKGU9QnUoZSx0KSkuaW5kZXg9MCxlLnNpYmxpbmc9bnVsbCxlfWZ1bmN0aW9uIGkodCxuLHIpe3JldHVybiB0LmluZGV4PXIsZT9udWxsIT09KHI9dC5hbHRlcm5hdGUpPyhyPXIuaW5kZXgpPG4/KHQuZmxhZ3M9MixuKTpyOih0LmZsYWdzPTIsbik6bn1mdW5jdGlvbiBzKHQpe3JldHVybiBlJiZudWxsPT09dC5hbHRlcm5hdGUmJih0LmZsYWdzPTIpLHR9ZnVuY3Rpb24gdShlLHQsbixyKXtyZXR1cm4gbnVsbD09PXR8fDYhPT10LnRhZz8oKHQ9SHUobixlLm1vZGUscikpLnJldHVybj1lLHQpOigodD1vKHQsbikpLnJldHVybj1lLHQpfWZ1bmN0aW9uIGMoZSx0LG4scil7cmV0dXJuIG51bGwhPT10JiZ0LmVsZW1lbnRUeXBlPT09bi50eXBlPygocj1vKHQsbi5wcm9wcykpLnJlZj1iaShlLHQsbiksci5yZXR1cm49ZSxyKTooKHI9VXUobi50eXBlLG4ua2V5LG4ucHJvcHMsbnVsbCxlLm1vZGUscikpLnJlZj1iaShlLHQsbiksci5yZXR1cm49ZSxyKX1mdW5jdGlvbiBsKGUsdCxuLHIpe3JldHVybiBudWxsPT09dHx8NCE9PXQudGFnfHx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09bi5jb250YWluZXJJbmZvfHx0LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PW4uaW1wbGVtZW50YXRpb24/KCh0PVd1KG4sZS5tb2RlLHIpKS5yZXR1cm49ZSx0KTooKHQ9byh0LG4uY2hpbGRyZW58fFtdKSkucmV0dXJuPWUsdCl9ZnVuY3Rpb24gZihlLHQsbixyLGkpe3JldHVybiBudWxsPT09dHx8NyE9PXQudGFnPygodD16dShuLGUubW9kZSxyLGkpKS5yZXR1cm49ZSx0KTooKHQ9byh0LG4pKS5yZXR1cm49ZSx0KX1mdW5jdGlvbiBkKGUsdCxuKXtpZigic3RyaW5nIj09PXR5cGVvZiB0fHwibnVtYmVyIj09PXR5cGVvZiB0KXJldHVybih0PUh1KCIiK3QsZS5tb2RlLG4pKS5yZXR1cm49ZSx0O2lmKCJvYmplY3QiPT09dHlwZW9mIHQmJm51bGwhPT10KXtzd2l0Y2godC4kJHR5cGVvZil7Y2FzZSBfOnJldHVybihuPVV1KHQudHlwZSx0LmtleSx0LnByb3BzLG51bGwsZS5tb2RlLG4pKS5yZWY9YmkoZSxudWxsLHQpLG4ucmV0dXJuPWUsbjtjYXNlIEU6cmV0dXJuKHQ9V3UodCxlLm1vZGUsbikpLnJldHVybj1lLHR9aWYobWkodCl8fFYodCkpcmV0dXJuKHQ9enUodCxlLm1vZGUsbixudWxsKSkucmV0dXJuPWUsdDt3aShlLHQpfXJldHVybiBudWxsfWZ1bmN0aW9uIHAoZSx0LG4scil7dmFyIG89bnVsbCE9PXQ/dC5rZXk6bnVsbDtpZigic3RyaW5nIj09PXR5cGVvZiBufHwibnVtYmVyIj09PXR5cGVvZiBuKXJldHVybiBudWxsIT09bz9udWxsOnUoZSx0LCIiK24scik7aWYoIm9iamVjdCI9PT10eXBlb2YgbiYmbnVsbCE9PW4pe3N3aXRjaChuLiQkdHlwZW9mKXtjYXNlIF86cmV0dXJuIG4ua2V5PT09bz9uLnR5cGU9PT1DP2YoZSx0LG4ucHJvcHMuY2hpbGRyZW4scixvKTpjKGUsdCxuLHIpOm51bGw7Y2FzZSBFOnJldHVybiBuLmtleT09PW8/bChlLHQsbixyKTpudWxsfWlmKG1pKG4pfHxWKG4pKXJldHVybiBudWxsIT09bz9udWxsOmYoZSx0LG4scixudWxsKTt3aShlLG4pfXJldHVybiBudWxsfWZ1bmN0aW9uIGgoZSx0LG4scixvKXtpZigic3RyaW5nIj09PXR5cGVvZiByfHwibnVtYmVyIj09PXR5cGVvZiByKXJldHVybiB1KHQsZT1lLmdldChuKXx8bnVsbCwiIityLG8pO2lmKCJvYmplY3QiPT09dHlwZW9mIHImJm51bGwhPT1yKXtzd2l0Y2goci4kJHR5cGVvZil7Y2FzZSBfOnJldHVybiBlPWUuZ2V0KG51bGw9PT1yLmtleT9uOnIua2V5KXx8bnVsbCxyLnR5cGU9PT1DP2YodCxlLHIucHJvcHMuY2hpbGRyZW4sbyxyLmtleSk6Yyh0LGUscixvKTtjYXNlIEU6cmV0dXJuIGwodCxlPWUuZ2V0KG51bGw9PT1yLmtleT9uOnIua2V5KXx8bnVsbCxyLG8pfWlmKG1pKHIpfHxWKHIpKXJldHVybiBmKHQsZT1lLmdldChuKXx8bnVsbCxyLG8sbnVsbCk7d2kodCxyKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB2KG8sYSxzLHUpe2Zvcih2YXIgYz1udWxsLGw9bnVsbCxmPWEsdj1hPTAsZz1udWxsO251bGwhPT1mJiZ2PHMubGVuZ3RoO3YrKyl7Zi5pbmRleD52PyhnPWYsZj1udWxsKTpnPWYuc2libGluZzt2YXIgeT1wKG8sZixzW3ZdLHUpO2lmKG51bGw9PT15KXtudWxsPT09ZiYmKGY9Zyk7YnJlYWt9ZSYmZiYmbnVsbD09PXkuYWx0ZXJuYXRlJiZ0KG8sZiksYT1pKHksYSx2KSxudWxsPT09bD9jPXk6bC5zaWJsaW5nPXksbD15LGY9Z31pZih2PT09cy5sZW5ndGgpcmV0dXJuIG4obyxmKSxjO2lmKG51bGw9PT1mKXtmb3IoO3Y8cy5sZW5ndGg7disrKW51bGwhPT0oZj1kKG8sc1t2XSx1KSkmJihhPWkoZixhLHYpLG51bGw9PT1sP2M9ZjpsLnNpYmxpbmc9ZixsPWYpO3JldHVybiBjfWZvcihmPXIobyxmKTt2PHMubGVuZ3RoO3YrKyludWxsIT09KGc9aChmLG8sdixzW3ZdLHUpKSYmKGUmJm51bGwhPT1nLmFsdGVybmF0ZSYmZi5kZWxldGUobnVsbD09PWcua2V5P3Y6Zy5rZXkpLGE9aShnLGEsdiksbnVsbD09PWw/Yz1nOmwuc2libGluZz1nLGw9Zyk7cmV0dXJuIGUmJmYuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQobyxlKX0pKSxjfWZ1bmN0aW9uIGcobyxzLHUsYyl7dmFyIGw9Vih1KTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGwpdGhyb3cgRXJyb3IoYSgxNTApKTtpZihudWxsPT0odT1sLmNhbGwodSkpKXRocm93IEVycm9yKGEoMTUxKSk7Zm9yKHZhciBmPWw9bnVsbCx2PXMsZz1zPTAseT1udWxsLG09dS5uZXh0KCk7bnVsbCE9PXYmJiFtLmRvbmU7ZysrLG09dS5uZXh0KCkpe3YuaW5kZXg+Zz8oeT12LHY9bnVsbCk6eT12LnNpYmxpbmc7dmFyIGI9cChvLHYsbS52YWx1ZSxjKTtpZihudWxsPT09Yil7bnVsbD09PXYmJih2PXkpO2JyZWFrfWUmJnYmJm51bGw9PT1iLmFsdGVybmF0ZSYmdChvLHYpLHM9aShiLHMsZyksbnVsbD09PWY/bD1iOmYuc2libGluZz1iLGY9Yix2PXl9aWYobS5kb25lKXJldHVybiBuKG8sdiksbDtpZihudWxsPT09dil7Zm9yKDshbS5kb25lO2crKyxtPXUubmV4dCgpKW51bGwhPT0obT1kKG8sbS52YWx1ZSxjKSkmJihzPWkobSxzLGcpLG51bGw9PT1mP2w9bTpmLnNpYmxpbmc9bSxmPW0pO3JldHVybiBsfWZvcih2PXIobyx2KTshbS5kb25lO2crKyxtPXUubmV4dCgpKW51bGwhPT0obT1oKHYsbyxnLG0udmFsdWUsYykpJiYoZSYmbnVsbCE9PW0uYWx0ZXJuYXRlJiZ2LmRlbGV0ZShudWxsPT09bS5rZXk/ZzptLmtleSkscz1pKG0scyxnKSxudWxsPT09Zj9sPW06Zi5zaWJsaW5nPW0sZj1tKTtyZXR1cm4gZSYmdi5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChvLGUpfSkpLGx9cmV0dXJuIGZ1bmN0aW9uKGUscixpLHUpe3ZhciBjPSJvYmplY3QiPT09dHlwZW9mIGkmJm51bGwhPT1pJiZpLnR5cGU9PT1DJiZudWxsPT09aS5rZXk7YyYmKGk9aS5wcm9wcy5jaGlsZHJlbik7dmFyIGw9Im9iamVjdCI9PT10eXBlb2YgaSYmbnVsbCE9PWk7aWYobClzd2l0Y2goaS4kJHR5cGVvZil7Y2FzZSBfOmU6e2ZvcihsPWkua2V5LGM9cjtudWxsIT09Yzspe2lmKGMua2V5PT09bCl7c3dpdGNoKGMudGFnKXtjYXNlIDc6aWYoaS50eXBlPT09Qyl7bihlLGMuc2libGluZyksKHI9byhjLGkucHJvcHMuY2hpbGRyZW4pKS5yZXR1cm49ZSxlPXI7YnJlYWsgZX1icmVhaztkZWZhdWx0OmlmKGMuZWxlbWVudFR5cGU9PT1pLnR5cGUpe24oZSxjLnNpYmxpbmcpLChyPW8oYyxpLnByb3BzKSkucmVmPWJpKGUsYyxpKSxyLnJldHVybj1lLGU9cjticmVhayBlfX1uKGUsYyk7YnJlYWt9dChlLGMpLGM9Yy5zaWJsaW5nfWkudHlwZT09PUM/KChyPXp1KGkucHJvcHMuY2hpbGRyZW4sZS5tb2RlLHUsaS5rZXkpKS5yZXR1cm49ZSxlPXIpOigodT1VdShpLnR5cGUsaS5rZXksaS5wcm9wcyxudWxsLGUubW9kZSx1KSkucmVmPWJpKGUscixpKSx1LnJldHVybj1lLGU9dSl9cmV0dXJuIHMoZSk7Y2FzZSBFOmU6e2ZvcihjPWkua2V5O251bGwhPT1yOyl7aWYoci5rZXk9PT1jKXtpZig0PT09ci50YWcmJnIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1pLmNvbnRhaW5lckluZm8mJnIuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09aS5pbXBsZW1lbnRhdGlvbil7bihlLHIuc2libGluZyksKHI9byhyLGkuY2hpbGRyZW58fFtdKSkucmV0dXJuPWUsZT1yO2JyZWFrIGV9bihlLHIpO2JyZWFrfXQoZSxyKSxyPXIuc2libGluZ30ocj1XdShpLGUubW9kZSx1KSkucmV0dXJuPWUsZT1yfXJldHVybiBzKGUpfWlmKCJzdHJpbmciPT09dHlwZW9mIGl8fCJudW1iZXIiPT09dHlwZW9mIGkpcmV0dXJuIGk9IiIraSxudWxsIT09ciYmNj09PXIudGFnPyhuKGUsci5zaWJsaW5nKSwocj1vKHIsaSkpLnJldHVybj1lLGU9cik6KG4oZSxyKSwocj1IdShpLGUubW9kZSx1KSkucmV0dXJuPWUsZT1yKSxzKGUpO2lmKG1pKGkpKXJldHVybiB2KGUscixpLHUpO2lmKFYoaSkpcmV0dXJuIGcoZSxyLGksdSk7aWYobCYmd2koZSxpKSwidW5kZWZpbmVkIj09PXR5cGVvZiBpJiYhYylzd2l0Y2goZS50YWcpe2Nhc2UgMTpjYXNlIDIyOmNhc2UgMDpjYXNlIDExOmNhc2UgMTU6dGhyb3cgRXJyb3IoYSgxNTIsWShlLnR5cGUpfHwiQ29tcG9uZW50IikpfXJldHVybiBuKGUscil9fXZhciBfaT1PaSghMCksRWk9T2koITEpLENpPXt9LFNpPW9vKENpKSxraT1vbyhDaSkseGk9b28oQ2kpO2Z1bmN0aW9uIEFpKGUpe2lmKGU9PT1DaSl0aHJvdyBFcnJvcihhKDE3NCkpO3JldHVybiBlfWZ1bmN0aW9uIGppKGUsdCl7c3dpdGNoKGFvKHhpLHQpLGFvKGtpLGUpLGFvKFNpLENpKSxlPXQubm9kZVR5cGUpe2Nhc2UgOTpjYXNlIDExOnQ9KHQ9dC5kb2N1bWVudEVsZW1lbnQpP3QubmFtZXNwYWNlVVJJOmhlKG51bGwsIiIpO2JyZWFrO2RlZmF1bHQ6dD1oZSh0PShlPTg9PT1lP3QucGFyZW50Tm9kZTp0KS5uYW1lc3BhY2VVUkl8fG51bGwsZT1lLnRhZ05hbWUpfWlvKFNpKSxhbyhTaSx0KX1mdW5jdGlvbiBUaSgpe2lvKFNpKSxpbyhraSksaW8oeGkpfWZ1bmN0aW9uIFBpKGUpe0FpKHhpLmN1cnJlbnQpO3ZhciB0PUFpKFNpLmN1cnJlbnQpLG49aGUodCxlLnR5cGUpO3QhPT1uJiYoYW8oa2ksZSksYW8oU2ksbikpfWZ1bmN0aW9uIElpKGUpe2tpLmN1cnJlbnQ9PT1lJiYoaW8oU2kpLGlvKGtpKSl9dmFyIFJpPW9vKDApO2Z1bmN0aW9uIERpKGUpe2Zvcih2YXIgdD1lO251bGwhPT10Oyl7aWYoMTM9PT10LnRhZyl7dmFyIG49dC5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1uJiYobnVsbD09PShuPW4uZGVoeWRyYXRlZCl8fCIkPyI9PT1uLmRhdGF8fCIkISI9PT1uLmRhdGEpKXJldHVybiB0fWVsc2UgaWYoMTk9PT10LnRhZyYmdm9pZCAwIT09dC5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyKXtpZigwIT09KDY0JnQuZmxhZ3MpKXJldHVybiB0fWVsc2UgaWYobnVsbCE9PXQuY2hpbGQpe3QuY2hpbGQucmV0dXJuPXQsdD10LmNoaWxkO2NvbnRpbnVlfWlmKHQ9PT1lKWJyZWFrO2Zvcig7bnVsbD09PXQuc2libGluZzspe2lmKG51bGw9PT10LnJldHVybnx8dC5yZXR1cm49PT1lKXJldHVybiBudWxsO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ31yZXR1cm4gbnVsbH12YXIgTmk9bnVsbCxMaT1udWxsLEZpPSExO2Z1bmN0aW9uIE1pKGUsdCl7dmFyIG49RnUoNSxudWxsLG51bGwsMCk7bi5lbGVtZW50VHlwZT0iREVMRVRFRCIsbi50eXBlPSJERUxFVEVEIixuLnN0YXRlTm9kZT10LG4ucmV0dXJuPWUsbi5mbGFncz04LG51bGwhPT1lLmxhc3RFZmZlY3Q/KGUubGFzdEVmZmVjdC5uZXh0RWZmZWN0PW4sZS5sYXN0RWZmZWN0PW4pOmUuZmlyc3RFZmZlY3Q9ZS5sYXN0RWZmZWN0PW59ZnVuY3Rpb24gQmkoZSx0KXtzd2l0Y2goZS50YWcpe2Nhc2UgNTp2YXIgbj1lLnR5cGU7cmV0dXJuIG51bGwhPT0odD0xIT09dC5ub2RlVHlwZXx8bi50b0xvd2VyQ2FzZSgpIT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP251bGw6dCkmJihlLnN0YXRlTm9kZT10LCEwKTtjYXNlIDY6cmV0dXJuIG51bGwhPT0odD0iIj09PWUucGVuZGluZ1Byb3BzfHwzIT09dC5ub2RlVHlwZT9udWxsOnQpJiYoZS5zdGF0ZU5vZGU9dCwhMCk7Y2FzZSAxMzpkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBVaShlKXtpZihGaSl7dmFyIHQ9TGk7aWYodCl7dmFyIG49dDtpZighQmkoZSx0KSl7aWYoISh0PUhyKG4ubmV4dFNpYmxpbmcpKXx8IUJpKGUsdCkpcmV0dXJuIGUuZmxhZ3M9LTEwMjUmZS5mbGFnc3wyLEZpPSExLHZvaWQoTmk9ZSk7TWkoTmksbil9Tmk9ZSxMaT1Icih0LmZpcnN0Q2hpbGQpfWVsc2UgZS5mbGFncz0tMTAyNSZlLmZsYWdzfDIsRmk9ITEsTmk9ZX19ZnVuY3Rpb24gemkoZSl7Zm9yKGU9ZS5yZXR1cm47bnVsbCE9PWUmJjUhPT1lLnRhZyYmMyE9PWUudGFnJiYxMyE9PWUudGFnOyllPWUucmV0dXJuO05pPWV9ZnVuY3Rpb24gVmkoZSl7aWYoZSE9PU5pKXJldHVybiExO2lmKCFGaSlyZXR1cm4gemkoZSksRmk9ITAsITE7dmFyIHQ9ZS50eXBlO2lmKDUhPT1lLnRhZ3x8ImhlYWQiIT09dCYmImJvZHkiIT09dCYmIUJyKHQsZS5tZW1vaXplZFByb3BzKSlmb3IodD1MaTt0OylNaShlLHQpLHQ9SHIodC5uZXh0U2libGluZyk7aWYoemkoZSksMTM9PT1lLnRhZyl7aWYoIShlPW51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpP2UuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihhKDMxNykpO2U6e2ZvcihlPWUubmV4dFNpYmxpbmcsdD0wO2U7KXtpZig4PT09ZS5ub2RlVHlwZSl7dmFyIG49ZS5kYXRhO2lmKCIvJCI9PT1uKXtpZigwPT09dCl7TGk9SHIoZS5uZXh0U2libGluZyk7YnJlYWsgZX10LS19ZWxzZSIkIiE9PW4mJiIkISIhPT1uJiYiJD8iIT09bnx8dCsrfWU9ZS5uZXh0U2libGluZ31MaT1udWxsfX1lbHNlIExpPU5pP0hyKGUuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIEhpKCl7TGk9Tmk9bnVsbCxGaT0hMX12YXIgV2k9W107ZnVuY3Rpb24gcWkoKXtmb3IodmFyIGU9MDtlPFdpLmxlbmd0aDtlKyspV2lbZV0uX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9bnVsbDtXaS5sZW5ndGg9MH12YXIgJGk9Ty5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLFlpPU8uUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsR2k9MCxLaT1udWxsLFhpPW51bGwsUWk9bnVsbCxKaT0hMSxaaT0hMTtmdW5jdGlvbiBlYSgpe3Rocm93IEVycm9yKGEoMzIxKSl9ZnVuY3Rpb24gdGEoZSx0KXtpZihudWxsPT09dClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHQubGVuZ3RoJiZuPGUubGVuZ3RoO24rKylpZighYXIoZVtuXSx0W25dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBuYShlLHQsbixyLG8saSl7aWYoR2k9aSxLaT10LHQubWVtb2l6ZWRTdGF0ZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCx0LmxhbmVzPTAsJGkuY3VycmVudD1udWxsPT09ZXx8bnVsbD09PWUubWVtb2l6ZWRTdGF0ZT9BYTpqYSxlPW4ocixvKSxaaSl7aT0wO2Rve2lmKFppPSExLCEoMjU+aSkpdGhyb3cgRXJyb3IoYSgzMDEpKTtpKz0xLFFpPVhpPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLCRpLmN1cnJlbnQ9VGEsZT1uKHIsbyl9d2hpbGUoWmkpfWlmKCRpLmN1cnJlbnQ9eGEsdD1udWxsIT09WGkmJm51bGwhPT1YaS5uZXh0LEdpPTAsUWk9WGk9S2k9bnVsbCxKaT0hMSx0KXRocm93IEVycm9yKGEoMzAwKSk7cmV0dXJuIGV9ZnVuY3Rpb24gcmEoKXt2YXIgZT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtyZXR1cm4gbnVsbD09PVFpP0tpLm1lbW9pemVkU3RhdGU9UWk9ZTpRaT1RaS5uZXh0PWUsUWl9ZnVuY3Rpb24gb2EoKXtpZihudWxsPT09WGkpe3ZhciBlPUtpLmFsdGVybmF0ZTtlPW51bGwhPT1lP2UubWVtb2l6ZWRTdGF0ZTpudWxsfWVsc2UgZT1YaS5uZXh0O3ZhciB0PW51bGw9PT1RaT9LaS5tZW1vaXplZFN0YXRlOlFpLm5leHQ7aWYobnVsbCE9PXQpUWk9dCxYaT1lO2Vsc2V7aWYobnVsbD09PWUpdGhyb3cgRXJyb3IoYSgzMTApKTtlPXttZW1vaXplZFN0YXRlOihYaT1lKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpYaS5iYXNlU3RhdGUsYmFzZVF1ZXVlOlhpLmJhc2VRdWV1ZSxxdWV1ZTpYaS5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1RaT9LaS5tZW1vaXplZFN0YXRlPVFpPWU6UWk9UWkubmV4dD1lfXJldHVybiBRaX1mdW5jdGlvbiBpYShlLHQpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgdD90KGUpOnR9ZnVuY3Rpb24gYWEoZSl7dmFyIHQ9b2EoKSxuPXQucXVldWU7aWYobnVsbD09PW4pdGhyb3cgRXJyb3IoYSgzMTEpKTtuLmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj1YaSxvPXIuYmFzZVF1ZXVlLGk9bi5wZW5kaW5nO2lmKG51bGwhPT1pKXtpZihudWxsIT09byl7dmFyIHM9by5uZXh0O28ubmV4dD1pLm5leHQsaS5uZXh0PXN9ci5iYXNlUXVldWU9bz1pLG4ucGVuZGluZz1udWxsfWlmKG51bGwhPT1vKXtvPW8ubmV4dCxyPXIuYmFzZVN0YXRlO3ZhciB1PXM9aT1udWxsLGM9bztkb3t2YXIgbD1jLmxhbmU7aWYoKEdpJmwpPT09bCludWxsIT09dSYmKHU9dS5uZXh0PXtsYW5lOjAsYWN0aW9uOmMuYWN0aW9uLGVhZ2VyUmVkdWNlcjpjLmVhZ2VyUmVkdWNlcixlYWdlclN0YXRlOmMuZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxyPWMuZWFnZXJSZWR1Y2VyPT09ZT9jLmVhZ2VyU3RhdGU6ZShyLGMuYWN0aW9uKTtlbHNle3ZhciBmPXtsYW5lOmwsYWN0aW9uOmMuYWN0aW9uLGVhZ2VyUmVkdWNlcjpjLmVhZ2VyUmVkdWNlcixlYWdlclN0YXRlOmMuZWFnZXJTdGF0ZSxuZXh0Om51bGx9O251bGw9PT11PyhzPXU9ZixpPXIpOnU9dS5uZXh0PWYsS2kubGFuZXN8PWwsRHN8PWx9Yz1jLm5leHR9d2hpbGUobnVsbCE9PWMmJmMhPT1vKTtudWxsPT09dT9pPXI6dS5uZXh0PXMsYXIocix0Lm1lbW9pemVkU3RhdGUpfHwoSWE9ITApLHQubWVtb2l6ZWRTdGF0ZT1yLHQuYmFzZVN0YXRlPWksdC5iYXNlUXVldWU9dSxuLmxhc3RSZW5kZXJlZFN0YXRlPXJ9cmV0dXJuW3QubWVtb2l6ZWRTdGF0ZSxuLmRpc3BhdGNoXX1mdW5jdGlvbiBzYShlKXt2YXIgdD1vYSgpLG49dC5xdWV1ZTtpZihudWxsPT09bil0aHJvdyBFcnJvcihhKDMxMSkpO24ubGFzdFJlbmRlcmVkUmVkdWNlcj1lO3ZhciByPW4uZGlzcGF0Y2gsbz1uLnBlbmRpbmcsaT10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW8pe24ucGVuZGluZz1udWxsO3ZhciBzPW89by5uZXh0O2Rve2k9ZShpLHMuYWN0aW9uKSxzPXMubmV4dH13aGlsZShzIT09byk7YXIoaSx0Lm1lbW9pemVkU3RhdGUpfHwoSWE9ITApLHQubWVtb2l6ZWRTdGF0ZT1pLG51bGw9PT10LmJhc2VRdWV1ZSYmKHQuYmFzZVN0YXRlPWkpLG4ubGFzdFJlbmRlcmVkU3RhdGU9aX1yZXR1cm5baSxyXX1mdW5jdGlvbiB1YShlLHQsbil7dmFyIHI9dC5fZ2V0VmVyc2lvbjtyPXIodC5fc291cmNlKTt2YXIgbz10Ll93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5O2lmKG51bGwhPT1vP2U9bz09PXI6KGU9ZS5tdXRhYmxlUmVhZExhbmVzLChlPShHaSZlKT09PWUpJiYodC5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeT1yLFdpLnB1c2godCkpKSxlKXJldHVybiBuKHQuX3NvdXJjZSk7dGhyb3cgV2kucHVzaCh0KSxFcnJvcihhKDM1MCkpfWZ1bmN0aW9uIGNhKGUsdCxuLHIpe3ZhciBvPWtzO2lmKG51bGw9PT1vKXRocm93IEVycm9yKGEoMzQ5KSk7dmFyIGk9dC5fZ2V0VmVyc2lvbixzPWkodC5fc291cmNlKSx1PSRpLmN1cnJlbnQsYz11LnVzZVN0YXRlKChmdW5jdGlvbigpe3JldHVybiB1YShvLHQsbil9KSksbD1jWzFdLGY9Y1swXTtjPVFpO3ZhciBkPWUubWVtb2l6ZWRTdGF0ZSxwPWQucmVmcyxoPXAuZ2V0U25hcHNob3Qsdj1kLnNvdXJjZTtkPWQuc3Vic2NyaWJlO3ZhciBnPUtpO3JldHVybiBlLm1lbW9pemVkU3RhdGU9e3JlZnM6cCxzb3VyY2U6dCxzdWJzY3JpYmU6cn0sdS51c2VFZmZlY3QoKGZ1bmN0aW9uKCl7cC5nZXRTbmFwc2hvdD1uLHAuc2V0U25hcHNob3Q9bDt2YXIgZT1pKHQuX3NvdXJjZSk7aWYoIWFyKHMsZSkpe2U9bih0Ll9zb3VyY2UpLGFyKGYsZSl8fChsKGUpLGU9YXUoZyksby5tdXRhYmxlUmVhZExhbmVzfD1lJm8ucGVuZGluZ0xhbmVzKSxlPW8ubXV0YWJsZVJlYWRMYW5lcyxvLmVudGFuZ2xlZExhbmVzfD1lO2Zvcih2YXIgcj1vLmVudGFuZ2xlbWVudHMsYT1lOzA8YTspe3ZhciB1PTMxLUh0KGEpLGM9MTw8dTtyW3VdfD1lLGEmPX5jfX19KSxbbix0LHJdKSx1LnVzZUVmZmVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gcih0Ll9zb3VyY2UsKGZ1bmN0aW9uKCl7dmFyIGU9cC5nZXRTbmFwc2hvdCxuPXAuc2V0U25hcHNob3Q7dHJ5e24oZSh0Ll9zb3VyY2UpKTt2YXIgcj1hdShnKTtvLm11dGFibGVSZWFkTGFuZXN8PXImby5wZW5kaW5nTGFuZXN9Y2F0Y2goaSl7bigoZnVuY3Rpb24oKXt0aHJvdyBpfSkpfX0pKX0pLFt0LHJdKSxhcihoLG4pJiZhcih2LHQpJiZhcihkLHIpfHwoKGU9e3BlbmRpbmc6bnVsbCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6aWEsbGFzdFJlbmRlcmVkU3RhdGU6Zn0pLmRpc3BhdGNoPWw9a2EuYmluZChudWxsLEtpLGUpLGMucXVldWU9ZSxjLmJhc2VRdWV1ZT1udWxsLGY9dWEobyx0LG4pLGMubWVtb2l6ZWRTdGF0ZT1jLmJhc2VTdGF0ZT1mKSxmfWZ1bmN0aW9uIGxhKGUsdCxuKXtyZXR1cm4gY2Eob2EoKSxlLHQsbil9ZnVuY3Rpb24gZmEoZSl7dmFyIHQ9cmEoKTtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGUmJihlPWUoKSksdC5tZW1vaXplZFN0YXRlPXQuYmFzZVN0YXRlPWUsZT0oZT10LnF1ZXVlPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmlhLGxhc3RSZW5kZXJlZFN0YXRlOmV9KS5kaXNwYXRjaD1rYS5iaW5kKG51bGwsS2ksZSksW3QubWVtb2l6ZWRTdGF0ZSxlXX1mdW5jdGlvbiBkYShlLHQsbixyKXtyZXR1cm4gZT17dGFnOmUsY3JlYXRlOnQsZGVzdHJveTpuLGRlcHM6cixuZXh0Om51bGx9LG51bGw9PT0odD1LaS51cGRhdGVRdWV1ZSk/KHQ9e2xhc3RFZmZlY3Q6bnVsbH0sS2kudXBkYXRlUXVldWU9dCx0Lmxhc3RFZmZlY3Q9ZS5uZXh0PWUpOm51bGw9PT0obj10Lmxhc3RFZmZlY3QpP3QubGFzdEVmZmVjdD1lLm5leHQ9ZToocj1uLm5leHQsbi5uZXh0PWUsZS5uZXh0PXIsdC5sYXN0RWZmZWN0PWUpLGV9ZnVuY3Rpb24gcGEoZSl7cmV0dXJuIGU9e2N1cnJlbnQ6ZX0scmEoKS5tZW1vaXplZFN0YXRlPWV9ZnVuY3Rpb24gaGEoKXtyZXR1cm4gb2EoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIHZhKGUsdCxuLHIpe3ZhciBvPXJhKCk7S2kuZmxhZ3N8PWUsby5tZW1vaXplZFN0YXRlPWRhKDF8dCxuLHZvaWQgMCx2b2lkIDA9PT1yP251bGw6cil9ZnVuY3Rpb24gZ2EoZSx0LG4scil7dmFyIG89b2EoKTtyPXZvaWQgMD09PXI/bnVsbDpyO3ZhciBpPXZvaWQgMDtpZihudWxsIT09WGkpe3ZhciBhPVhpLm1lbW9pemVkU3RhdGU7aWYoaT1hLmRlc3Ryb3ksbnVsbCE9PXImJnRhKHIsYS5kZXBzKSlyZXR1cm4gdm9pZCBkYSh0LG4saSxyKX1LaS5mbGFnc3w9ZSxvLm1lbW9pemVkU3RhdGU9ZGEoMXx0LG4saSxyKX1mdW5jdGlvbiB5YShlLHQpe3JldHVybiB2YSg1MTYsNCxlLHQpfWZ1bmN0aW9uIG1hKGUsdCl7cmV0dXJuIGdhKDUxNiw0LGUsdCl9ZnVuY3Rpb24gYmEoZSx0KXtyZXR1cm4gZ2EoNCwyLGUsdCl9ZnVuY3Rpb24gd2EoZSx0KXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIHQ/KGU9ZSgpLHQoZSksZnVuY3Rpb24oKXt0KG51bGwpfSk6bnVsbCE9PXQmJnZvaWQgMCE9PXQ/KGU9ZSgpLHQuY3VycmVudD1lLGZ1bmN0aW9uKCl7dC5jdXJyZW50PW51bGx9KTp2b2lkIDB9ZnVuY3Rpb24gT2EoZSx0LG4pe3JldHVybiBuPW51bGwhPT1uJiZ2b2lkIDAhPT1uP24uY29uY2F0KFtlXSk6bnVsbCxnYSg0LDIsd2EuYmluZChudWxsLHQsZSksbil9ZnVuY3Rpb24gX2EoKXt9ZnVuY3Rpb24gRWEoZSx0KXt2YXIgbj1vYSgpO3Q9dm9pZCAwPT09dD9udWxsOnQ7dmFyIHI9bi5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsIT09ciYmbnVsbCE9PXQmJnRhKHQsclsxXSk/clswXToobi5tZW1vaXplZFN0YXRlPVtlLHRdLGUpfWZ1bmN0aW9uIENhKGUsdCl7dmFyIG49b2EoKTt0PXZvaWQgMD09PXQ/bnVsbDp0O3ZhciByPW4ubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PXImJm51bGwhPT10JiZ0YSh0LHJbMV0pP3JbMF06KGU9ZSgpLG4ubWVtb2l6ZWRTdGF0ZT1bZSx0XSxlKX1mdW5jdGlvbiBTYShlLHQpe3ZhciBuPVVvKCk7Vm8oOTg+bj85ODpuLChmdW5jdGlvbigpe2UoITApfSkpLFZvKDk3PG4/OTc6biwoZnVuY3Rpb24oKXt2YXIgbj1ZaS50cmFuc2l0aW9uO1lpLnRyYW5zaXRpb249MTt0cnl7ZSghMSksdCgpfWZpbmFsbHl7WWkudHJhbnNpdGlvbj1ufX0pKX1mdW5jdGlvbiBrYShlLHQsbil7dmFyIHI9aXUoKSxvPWF1KGUpLGk9e2xhbmU6byxhY3Rpb246bixlYWdlclJlZHVjZXI6bnVsbCxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxhPXQucGVuZGluZztpZihudWxsPT09YT9pLm5leHQ9aTooaS5uZXh0PWEubmV4dCxhLm5leHQ9aSksdC5wZW5kaW5nPWksYT1lLmFsdGVybmF0ZSxlPT09S2l8fG51bGwhPT1hJiZhPT09S2kpWmk9Smk9ITA7ZWxzZXtpZigwPT09ZS5sYW5lcyYmKG51bGw9PT1hfHwwPT09YS5sYW5lcykmJm51bGwhPT0oYT10Lmxhc3RSZW5kZXJlZFJlZHVjZXIpKXRyeXt2YXIgcz10Lmxhc3RSZW5kZXJlZFN0YXRlLHU9YShzLG4pO2lmKGkuZWFnZXJSZWR1Y2VyPWEsaS5lYWdlclN0YXRlPXUsYXIodSxzKSlyZXR1cm59Y2F0Y2goYyl7fXN1KGUsbyxyKX19dmFyIHhhPXtyZWFkQ29udGV4dDpuaSx1c2VDYWxsYmFjazplYSx1c2VDb250ZXh0OmVhLHVzZUVmZmVjdDplYSx1c2VJbXBlcmF0aXZlSGFuZGxlOmVhLHVzZUxheW91dEVmZmVjdDplYSx1c2VNZW1vOmVhLHVzZVJlZHVjZXI6ZWEsdXNlUmVmOmVhLHVzZVN0YXRlOmVhLHVzZURlYnVnVmFsdWU6ZWEsdXNlRGVmZXJyZWRWYWx1ZTplYSx1c2VUcmFuc2l0aW9uOmVhLHVzZU11dGFibGVTb3VyY2U6ZWEsdXNlT3BhcXVlSWRlbnRpZmllcjplYSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LEFhPXtyZWFkQ29udGV4dDpuaSx1c2VDYWxsYmFjazpmdW5jdGlvbihlLHQpe3JldHVybiByYSgpLm1lbW9pemVkU3RhdGU9W2Usdm9pZCAwPT09dD9udWxsOnRdLGV9LHVzZUNvbnRleHQ6bmksdXNlRWZmZWN0OnlhLHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuPW51bGwhPT1uJiZ2b2lkIDAhPT1uP24uY29uY2F0KFtlXSk6bnVsbCx2YSg0LDIsd2EuYmluZChudWxsLHQsZSksbil9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihlLHQpe3JldHVybiB2YSg0LDIsZSx0KX0sdXNlTWVtbzpmdW5jdGlvbihlLHQpe3ZhciBuPXJhKCk7cmV0dXJuIHQ9dm9pZCAwPT09dD9udWxsOnQsZT1lKCksbi5tZW1vaXplZFN0YXRlPVtlLHRdLGV9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXJhKCk7cmV0dXJuIHQ9dm9pZCAwIT09bj9uKHQpOnQsci5tZW1vaXplZFN0YXRlPXIuYmFzZVN0YXRlPXQsZT0oZT1yLnF1ZXVlPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmUsbGFzdFJlbmRlcmVkU3RhdGU6dH0pLmRpc3BhdGNoPWthLmJpbmQobnVsbCxLaSxlKSxbci5tZW1vaXplZFN0YXRlLGVdfSx1c2VSZWY6cGEsdXNlU3RhdGU6ZmEsdXNlRGVidWdWYWx1ZTpfYSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWZhKGUpLG49dFswXSxyPXRbMV07cmV0dXJuIHlhKChmdW5jdGlvbigpe3ZhciB0PVlpLnRyYW5zaXRpb247WWkudHJhbnNpdGlvbj0xO3RyeXtyKGUpfWZpbmFsbHl7WWkudHJhbnNpdGlvbj10fX0pLFtlXSksbn0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBlPWZhKCExKSx0PWVbMF07cmV0dXJuIHBhKGU9U2EuYmluZChudWxsLGVbMV0pKSxbZSx0XX0sdXNlTXV0YWJsZVNvdXJjZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9cmEoKTtyZXR1cm4gci5tZW1vaXplZFN0YXRlPXtyZWZzOntnZXRTbmFwc2hvdDp0LHNldFNuYXBzaG90Om51bGx9LHNvdXJjZTplLHN1YnNjcmliZTpufSxjYShyLGUsdCxuKX0sdXNlT3BhcXVlSWRlbnRpZmllcjpmdW5jdGlvbigpe2lmKEZpKXt2YXIgZT0hMSx0PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpOLHRvU3RyaW5nOmUsdmFsdWVPZjplfX0oKGZ1bmN0aW9uKCl7dGhyb3cgZXx8KGU9ITAsbigicjoiKyhxcisrKS50b1N0cmluZygzNikpKSxFcnJvcihhKDM1NSkpfSkpLG49ZmEodClbMV07cmV0dXJuIDA9PT0oMiZLaS5tb2RlKSYmKEtpLmZsYWdzfD01MTYsZGEoNSwoZnVuY3Rpb24oKXtuKCJyOiIrKHFyKyspLnRvU3RyaW5nKDM2KSl9KSx2b2lkIDAsbnVsbCkpLHR9cmV0dXJuIGZhKHQ9InI6IisocXIrKykudG9TdHJpbmcoMzYpKSx0fSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LGphPXtyZWFkQ29udGV4dDpuaSx1c2VDYWxsYmFjazpFYSx1c2VDb250ZXh0Om5pLHVzZUVmZmVjdDptYSx1c2VJbXBlcmF0aXZlSGFuZGxlOk9hLHVzZUxheW91dEVmZmVjdDpiYSx1c2VNZW1vOkNhLHVzZVJlZHVjZXI6YWEsdXNlUmVmOmhhLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGFhKGlhKX0sdXNlRGVidWdWYWx1ZTpfYSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWFhKGlhKSxuPXRbMF0scj10WzFdO3JldHVybiBtYSgoZnVuY3Rpb24oKXt2YXIgdD1ZaS50cmFuc2l0aW9uO1lpLnRyYW5zaXRpb249MTt0cnl7cihlKX1maW5hbGx5e1lpLnRyYW5zaXRpb249dH19KSxbZV0pLG59LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1hYShpYSlbMF07cmV0dXJuW2hhKCkuY3VycmVudCxlXX0sdXNlTXV0YWJsZVNvdXJjZTpsYSx1c2VPcGFxdWVJZGVudGlmaWVyOmZ1bmN0aW9uKCl7cmV0dXJuIGFhKGlhKVswXX0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxUYT17cmVhZENvbnRleHQ6bmksdXNlQ2FsbGJhY2s6RWEsdXNlQ29udGV4dDpuaSx1c2VFZmZlY3Q6bWEsdXNlSW1wZXJhdGl2ZUhhbmRsZTpPYSx1c2VMYXlvdXRFZmZlY3Q6YmEsdXNlTWVtbzpDYSx1c2VSZWR1Y2VyOnNhLHVzZVJlZjpoYSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBzYShpYSl9LHVzZURlYnVnVmFsdWU6X2EsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1zYShpYSksbj10WzBdLHI9dFsxXTtyZXR1cm4gbWEoKGZ1bmN0aW9uKCl7dmFyIHQ9WWkudHJhbnNpdGlvbjtZaS50cmFuc2l0aW9uPTE7dHJ5e3IoZSl9ZmluYWxseXtZaS50cmFuc2l0aW9uPXR9fSksW2VdKSxufSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9c2EoaWEpWzBdO3JldHVybltoYSgpLmN1cnJlbnQsZV19LHVzZU11dGFibGVTb3VyY2U6bGEsdXNlT3BhcXVlSWRlbnRpZmllcjpmdW5jdGlvbigpe3JldHVybiBzYShpYSlbMF19LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sUGE9Ty5SZWFjdEN1cnJlbnRPd25lcixJYT0hMTtmdW5jdGlvbiBSYShlLHQsbixyKXt0LmNoaWxkPW51bGw9PT1lP0VpKHQsbnVsbCxuLHIpOl9pKHQsZS5jaGlsZCxuLHIpfWZ1bmN0aW9uIERhKGUsdCxuLHIsbyl7bj1uLnJlbmRlcjt2YXIgaT10LnJlZjtyZXR1cm4gdGkodCxvKSxyPW5hKGUsdCxuLHIsaSxvKSxudWxsPT09ZXx8SWE/KHQuZmxhZ3N8PTEsUmEoZSx0LHIsbyksdC5jaGlsZCk6KHQudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0LmZsYWdzJj0tNTE3LGUubGFuZXMmPX5vLGVzKGUsdCxvKSl9ZnVuY3Rpb24gTmEoZSx0LG4scixvLGkpe2lmKG51bGw9PT1lKXt2YXIgYT1uLnR5cGU7cmV0dXJuImZ1bmN0aW9uIiE9PXR5cGVvZiBhfHxNdShhKXx8dm9pZCAwIT09YS5kZWZhdWx0UHJvcHN8fG51bGwhPT1uLmNvbXBhcmV8fHZvaWQgMCE9PW4uZGVmYXVsdFByb3BzPygoZT1VdShuLnR5cGUsbnVsbCxyLHQsdC5tb2RlLGkpKS5yZWY9dC5yZWYsZS5yZXR1cm49dCx0LmNoaWxkPWUpOih0LnRhZz0xNSx0LnR5cGU9YSxMYShlLHQsYSxyLG8saSkpfXJldHVybiBhPWUuY2hpbGQsMD09PShvJmkpJiYobz1hLm1lbW9pemVkUHJvcHMsKG49bnVsbCE9PShuPW4uY29tcGFyZSk/bjp1cikobyxyKSYmZS5yZWY9PT10LnJlZik/ZXMoZSx0LGkpOih0LmZsYWdzfD0xLChlPUJ1KGEscikpLnJlZj10LnJlZixlLnJldHVybj10LHQuY2hpbGQ9ZSl9ZnVuY3Rpb24gTGEoZSx0LG4scixvLGkpe2lmKG51bGwhPT1lJiZ1cihlLm1lbW9pemVkUHJvcHMscikmJmUucmVmPT09dC5yZWYpe2lmKElhPSExLDA9PT0oaSZvKSlyZXR1cm4gdC5sYW5lcz1lLmxhbmVzLGVzKGUsdCxpKTswIT09KDE2Mzg0JmUuZmxhZ3MpJiYoSWE9ITApfXJldHVybiBCYShlLHQsbixyLGkpfWZ1bmN0aW9uIEZhKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcyxvPXIuY2hpbGRyZW4saT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbDtpZigiaGlkZGVuIj09PXIubW9kZXx8InVuc3RhYmxlLWRlZmVyLXdpdGhvdXQtaGlkaW5nIj09PXIubW9kZSlpZigwPT09KDQmdC5tb2RlKSl0Lm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowfSx2dSh0LG4pO2Vsc2V7aWYoMD09PSgxMDczNzQxODI0Jm4pKXJldHVybiBlPW51bGwhPT1pP2kuYmFzZUxhbmVzfG46bix0LmxhbmVzPXQuY2hpbGRMYW5lcz0xMDczNzQxODI0LHQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmV9LHZ1KHQsZSksbnVsbDt0Lm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowfSx2dSh0LG51bGwhPT1pP2kuYmFzZUxhbmVzOm4pfWVsc2UgbnVsbCE9PWk/KHI9aS5iYXNlTGFuZXN8bix0Lm1lbW9pemVkU3RhdGU9bnVsbCk6cj1uLHZ1KHQscik7cmV0dXJuIFJhKGUsdCxvLG4pLHQuY2hpbGR9ZnVuY3Rpb24gTWEoZSx0KXt2YXIgbj10LnJlZjsobnVsbD09PWUmJm51bGwhPT1ufHxudWxsIT09ZSYmZS5yZWYhPT1uKSYmKHQuZmxhZ3N8PTEyOCl9ZnVuY3Rpb24gQmEoZSx0LG4scixvKXt2YXIgaT1wbyhuKT9sbzp1by5jdXJyZW50O3JldHVybiBpPWZvKHQsaSksdGkodCxvKSxuPW5hKGUsdCxuLHIsaSxvKSxudWxsPT09ZXx8SWE/KHQuZmxhZ3N8PTEsUmEoZSx0LG4sbyksdC5jaGlsZCk6KHQudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0LmZsYWdzJj0tNTE3LGUubGFuZXMmPX5vLGVzKGUsdCxvKSl9ZnVuY3Rpb24gVWEoZSx0LG4scixvKXtpZihwbyhuKSl7dmFyIGk9ITA7eW8odCl9ZWxzZSBpPSExO2lmKHRpKHQsbyksbnVsbD09PXQuc3RhdGVOb2RlKW51bGwhPT1lJiYoZS5hbHRlcm5hdGU9bnVsbCx0LmFsdGVybmF0ZT1udWxsLHQuZmxhZ3N8PTIpLHZpKHQsbixyKSx5aSh0LG4scixvKSxyPSEwO2Vsc2UgaWYobnVsbD09PWUpe3ZhciBhPXQuc3RhdGVOb2RlLHM9dC5tZW1vaXplZFByb3BzO2EucHJvcHM9czt2YXIgdT1hLmNvbnRleHQsYz1uLmNvbnRleHRUeXBlOyJvYmplY3QiPT09dHlwZW9mIGMmJm51bGwhPT1jP2M9bmkoYyk6Yz1mbyh0LGM9cG8obik/bG86dW8uY3VycmVudCk7dmFyIGw9bi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsZj0iZnVuY3Rpb24iPT09dHlwZW9mIGx8fCJmdW5jdGlvbiI9PT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtmfHwiZnVuY3Rpb24iIT09dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJiJmdW5jdGlvbiIhPT10eXBlb2YgYS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwocyE9PXJ8fHUhPT1jKSYmZ2kodCxhLHIsYykscmk9ITE7dmFyIGQ9dC5tZW1vaXplZFN0YXRlO2Euc3RhdGU9ZCxjaSh0LHIsYSxvKSx1PXQubWVtb2l6ZWRTdGF0ZSxzIT09cnx8ZCE9PXV8fGNvLmN1cnJlbnR8fHJpPygiZnVuY3Rpb24iPT09dHlwZW9mIGwmJihkaSh0LG4sbCxyKSx1PXQubWVtb2l6ZWRTdGF0ZSksKHM9cml8fGhpKHQsbixzLHIsZCx1LGMpKT8oZnx8ImZ1bmN0aW9uIiE9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJiJmdW5jdGlvbiIhPT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnR8fCgiZnVuY3Rpb24iPT09dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50JiZhLmNvbXBvbmVudFdpbGxNb3VudCgpLCJmdW5jdGlvbiI9PT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksImZ1bmN0aW9uIj09PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYodC5mbGFnc3w9NCkpOigiZnVuY3Rpb24iPT09dHlwZW9mIGEuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00KSx0Lm1lbW9pemVkUHJvcHM9cix0Lm1lbW9pemVkU3RhdGU9dSksYS5wcm9wcz1yLGEuc3RhdGU9dSxhLmNvbnRleHQ9YyxyPXMpOigiZnVuY3Rpb24iPT09dHlwZW9mIGEuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00KSxyPSExKX1lbHNle2E9dC5zdGF0ZU5vZGUsaWkoZSx0KSxzPXQubWVtb2l6ZWRQcm9wcyxjPXQudHlwZT09PXQuZWxlbWVudFR5cGU/czpZbyh0LnR5cGUscyksYS5wcm9wcz1jLGY9dC5wZW5kaW5nUHJvcHMsZD1hLmNvbnRleHQsIm9iamVjdCI9PT10eXBlb2YodT1uLmNvbnRleHRUeXBlKSYmbnVsbCE9PXU/dT1uaSh1KTp1PWZvKHQsdT1wbyhuKT9sbzp1by5jdXJyZW50KTt2YXIgcD1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczsobD0iZnVuY3Rpb24iPT09dHlwZW9mIHB8fCJmdW5jdGlvbiI9PT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fCJmdW5jdGlvbiIhPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChzIT09Znx8ZCE9PXUpJiZnaSh0LGEscix1KSxyaT0hMSxkPXQubWVtb2l6ZWRTdGF0ZSxhLnN0YXRlPWQsY2kodCxyLGEsbyk7dmFyIGg9dC5tZW1vaXplZFN0YXRlO3MhPT1mfHxkIT09aHx8Y28uY3VycmVudHx8cmk/KCJmdW5jdGlvbiI9PT10eXBlb2YgcCYmKGRpKHQsbixwLHIpLGg9dC5tZW1vaXplZFN0YXRlKSwoYz1yaXx8aGkodCxuLGMscixkLGgsdSkpPyhsfHwiZnVuY3Rpb24iIT09dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJiJmdW5jdGlvbiIhPT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlfHwoImZ1bmN0aW9uIj09PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxVcGRhdGUmJmEuY29tcG9uZW50V2lsbFVwZGF0ZShyLGgsdSksImZ1bmN0aW9uIj09PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKHIsaCx1KSksImZ1bmN0aW9uIj09PXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZSYmKHQuZmxhZ3N8PTQpLCJmdW5jdGlvbiI9PT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKHQuZmxhZ3N8PTI1NikpOigiZnVuY3Rpb24iIT09dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxzPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9NCksImZ1bmN0aW9uIiE9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxzPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MjU2KSx0Lm1lbW9pemVkUHJvcHM9cix0Lm1lbW9pemVkU3RhdGU9aCksYS5wcm9wcz1yLGEuc3RhdGU9aCxhLmNvbnRleHQ9dSxyPWMpOigiZnVuY3Rpb24iIT09dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxzPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9NCksImZ1bmN0aW9uIiE9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxzPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MjU2KSxyPSExKX1yZXR1cm4gemEoZSx0LG4scixpLG8pfWZ1bmN0aW9uIHphKGUsdCxuLHIsbyxpKXtNYShlLHQpO3ZhciBhPTAhPT0oNjQmdC5mbGFncyk7aWYoIXImJiFhKXJldHVybiBvJiZtbyh0LG4sITEpLGVzKGUsdCxpKTtyPXQuc3RhdGVOb2RlLFBhLmN1cnJlbnQ9dDt2YXIgcz1hJiYiZnVuY3Rpb24iIT09dHlwZW9mIG4uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6ci5yZW5kZXIoKTtyZXR1cm4gdC5mbGFnc3w9MSxudWxsIT09ZSYmYT8odC5jaGlsZD1faSh0LGUuY2hpbGQsbnVsbCxpKSx0LmNoaWxkPV9pKHQsbnVsbCxzLGkpKTpSYShlLHQscyxpKSx0Lm1lbW9pemVkU3RhdGU9ci5zdGF0ZSxvJiZtbyh0LG4sITApLHQuY2hpbGR9ZnVuY3Rpb24gVmEoZSl7dmFyIHQ9ZS5zdGF0ZU5vZGU7dC5wZW5kaW5nQ29udGV4dD92bygwLHQucGVuZGluZ0NvbnRleHQsdC5wZW5kaW5nQ29udGV4dCE9PXQuY29udGV4dCk6dC5jb250ZXh0JiZ2bygwLHQuY29udGV4dCwhMSksamkoZSx0LmNvbnRhaW5lckluZm8pfXZhciBIYSxXYSxxYSwkYT17ZGVoeWRyYXRlZDpudWxsLHJldHJ5TGFuZTowfTtmdW5jdGlvbiBZYShlLHQsbil7dmFyIHIsbz10LnBlbmRpbmdQcm9wcyxpPVJpLmN1cnJlbnQsYT0hMTtyZXR1cm4ocj0wIT09KDY0JnQuZmxhZ3MpKXx8KHI9KG51bGw9PT1lfHxudWxsIT09ZS5tZW1vaXplZFN0YXRlKSYmMCE9PSgyJmkpKSxyPyhhPSEwLHQuZmxhZ3MmPS02NSk6bnVsbCE9PWUmJm51bGw9PT1lLm1lbW9pemVkU3RhdGV8fHZvaWQgMD09PW8uZmFsbGJhY2t8fCEwPT09by51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFja3x8KGl8PTEpLGFvKFJpLDEmaSksbnVsbD09PWU/KHZvaWQgMCE9PW8uZmFsbGJhY2smJlVpKHQpLGU9by5jaGlsZHJlbixpPW8uZmFsbGJhY2ssYT8oZT1HYSh0LGUsaSxuKSx0LmNoaWxkLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczpufSx0Lm1lbW9pemVkU3RhdGU9JGEsZSk6Im51bWJlciI9PT10eXBlb2Ygby51bnN0YWJsZV9leHBlY3RlZExvYWRUaW1lPyhlPUdhKHQsZSxpLG4pLHQuY2hpbGQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOm59LHQubWVtb2l6ZWRTdGF0ZT0kYSx0LmxhbmVzPTMzNTU0NDMyLGUpOigobj1WdSh7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46ZX0sdC5tb2RlLG4sbnVsbCkpLnJldHVybj10LHQuY2hpbGQ9bikpOihlLm1lbW9pemVkU3RhdGUsYT8obz1YYShlLHQsby5jaGlsZHJlbixvLmZhbGxiYWNrLG4pLGE9dC5jaGlsZCxpPWUuY2hpbGQubWVtb2l6ZWRTdGF0ZSxhLm1lbW9pemVkU3RhdGU9bnVsbD09PWk/e2Jhc2VMYW5lczpufTp7YmFzZUxhbmVzOmkuYmFzZUxhbmVzfG59LGEuY2hpbGRMYW5lcz1lLmNoaWxkTGFuZXMmfm4sdC5tZW1vaXplZFN0YXRlPSRhLG8pOihuPUthKGUsdCxvLmNoaWxkcmVuLG4pLHQubWVtb2l6ZWRTdGF0ZT1udWxsLG4pKX1mdW5jdGlvbiBHYShlLHQsbixyKXt2YXIgbz1lLm1vZGUsaT1lLmNoaWxkO3JldHVybiB0PXttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOnR9LDA9PT0oMiZvKSYmbnVsbCE9PWk/KGkuY2hpbGRMYW5lcz0wLGkucGVuZGluZ1Byb3BzPXQpOmk9VnUodCxvLDAsbnVsbCksbj16dShuLG8scixudWxsKSxpLnJldHVybj1lLG4ucmV0dXJuPWUsaS5zaWJsaW5nPW4sZS5jaGlsZD1pLG59ZnVuY3Rpb24gS2EoZSx0LG4scil7dmFyIG89ZS5jaGlsZDtyZXR1cm4gZT1vLnNpYmxpbmcsbj1CdShvLHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpufSksMD09PSgyJnQubW9kZSkmJihuLmxhbmVzPXIpLG4ucmV0dXJuPXQsbi5zaWJsaW5nPW51bGwsbnVsbCE9PWUmJihlLm5leHRFZmZlY3Q9bnVsbCxlLmZsYWdzPTgsdC5maXJzdEVmZmVjdD10Lmxhc3RFZmZlY3Q9ZSksdC5jaGlsZD1ufWZ1bmN0aW9uIFhhKGUsdCxuLHIsbyl7dmFyIGk9dC5tb2RlLGE9ZS5jaGlsZDtlPWEuc2libGluZzt2YXIgcz17bW9kZToiaGlkZGVuIixjaGlsZHJlbjpufTtyZXR1cm4gMD09PSgyJmkpJiZ0LmNoaWxkIT09YT8oKG49dC5jaGlsZCkuY2hpbGRMYW5lcz0wLG4ucGVuZGluZ1Byb3BzPXMsbnVsbCE9PShhPW4ubGFzdEVmZmVjdCk/KHQuZmlyc3RFZmZlY3Q9bi5maXJzdEVmZmVjdCx0Lmxhc3RFZmZlY3Q9YSxhLm5leHRFZmZlY3Q9bnVsbCk6dC5maXJzdEVmZmVjdD10Lmxhc3RFZmZlY3Q9bnVsbCk6bj1CdShhLHMpLG51bGwhPT1lP3I9QnUoZSxyKToocj16dShyLGksbyxudWxsKSkuZmxhZ3N8PTIsci5yZXR1cm49dCxuLnJldHVybj10LG4uc2libGluZz1yLHQuY2hpbGQ9bixyfWZ1bmN0aW9uIFFhKGUsdCl7ZS5sYW5lc3w9dDt2YXIgbj1lLmFsdGVybmF0ZTtudWxsIT09biYmKG4ubGFuZXN8PXQpLGVpKGUucmV0dXJuLHQpfWZ1bmN0aW9uIEphKGUsdCxuLHIsbyxpKXt2YXIgYT1lLm1lbW9pemVkU3RhdGU7bnVsbD09PWE/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczp0LHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6cix0YWlsOm4sdGFpbE1vZGU6byxsYXN0RWZmZWN0Oml9OihhLmlzQmFja3dhcmRzPXQsYS5yZW5kZXJpbmc9bnVsbCxhLnJlbmRlcmluZ1N0YXJ0VGltZT0wLGEubGFzdD1yLGEudGFpbD1uLGEudGFpbE1vZGU9byxhLmxhc3RFZmZlY3Q9aSl9ZnVuY3Rpb24gWmEoZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzLG89ci5yZXZlYWxPcmRlcixpPXIudGFpbDtpZihSYShlLHQsci5jaGlsZHJlbixuKSwwIT09KDImKHI9UmkuY3VycmVudCkpKXI9MSZyfDIsdC5mbGFnc3w9NjQ7ZWxzZXtpZihudWxsIT09ZSYmMCE9PSg2NCZlLmZsYWdzKSllOmZvcihlPXQuY2hpbGQ7bnVsbCE9PWU7KXtpZigxMz09PWUudGFnKW51bGwhPT1lLm1lbW9pemVkU3RhdGUmJlFhKGUsbik7ZWxzZSBpZigxOT09PWUudGFnKVFhKGUsbik7ZWxzZSBpZihudWxsIT09ZS5jaGlsZCl7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGQ7Y29udGludWV9aWYoZT09PXQpYnJlYWsgZTtmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGUucmV0dXJuPT09dClicmVhayBlO2U9ZS5yZXR1cm59ZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZ31yJj0xfWlmKGFvKFJpLHIpLDA9PT0oMiZ0Lm1vZGUpKXQubWVtb2l6ZWRTdGF0ZT1udWxsO2Vsc2Ugc3dpdGNoKG8pe2Nhc2UiZm9yd2FyZHMiOmZvcihuPXQuY2hpbGQsbz1udWxsO251bGwhPT1uOyludWxsIT09KGU9bi5hbHRlcm5hdGUpJiZudWxsPT09RGkoZSkmJihvPW4pLG49bi5zaWJsaW5nO251bGw9PT0obj1vKT8obz10LmNoaWxkLHQuY2hpbGQ9bnVsbCk6KG89bi5zaWJsaW5nLG4uc2libGluZz1udWxsKSxKYSh0LCExLG8sbixpLHQubGFzdEVmZmVjdCk7YnJlYWs7Y2FzZSJiYWNrd2FyZHMiOmZvcihuPW51bGwsbz10LmNoaWxkLHQuY2hpbGQ9bnVsbDtudWxsIT09bzspe2lmKG51bGwhPT0oZT1vLmFsdGVybmF0ZSkmJm51bGw9PT1EaShlKSl7dC5jaGlsZD1vO2JyZWFrfWU9by5zaWJsaW5nLG8uc2libGluZz1uLG49byxvPWV9SmEodCwhMCxuLG51bGwsaSx0Lmxhc3RFZmZlY3QpO2JyZWFrO2Nhc2UidG9nZXRoZXIiOkphKHQsITEsbnVsbCxudWxsLHZvaWQgMCx0Lmxhc3RFZmZlY3QpO2JyZWFrO2RlZmF1bHQ6dC5tZW1vaXplZFN0YXRlPW51bGx9cmV0dXJuIHQuY2hpbGR9ZnVuY3Rpb24gZXMoZSx0LG4pe2lmKG51bGwhPT1lJiYodC5kZXBlbmRlbmNpZXM9ZS5kZXBlbmRlbmNpZXMpLERzfD10LmxhbmVzLDAhPT0obiZ0LmNoaWxkTGFuZXMpKXtpZihudWxsIT09ZSYmdC5jaGlsZCE9PWUuY2hpbGQpdGhyb3cgRXJyb3IoYSgxNTMpKTtpZihudWxsIT09dC5jaGlsZCl7Zm9yKG49QnUoZT10LmNoaWxkLGUucGVuZGluZ1Byb3BzKSx0LmNoaWxkPW4sbi5yZXR1cm49dDtudWxsIT09ZS5zaWJsaW5nOyllPWUuc2libGluZywobj1uLnNpYmxpbmc9QnUoZSxlLnBlbmRpbmdQcm9wcykpLnJldHVybj10O24uc2libGluZz1udWxsfXJldHVybiB0LmNoaWxkfXJldHVybiBudWxsfWZ1bmN0aW9uIHRzKGUsdCl7aWYoIUZpKXN3aXRjaChlLnRhaWxNb2RlKXtjYXNlImhpZGRlbiI6dD1lLnRhaWw7Zm9yKHZhciBuPW51bGw7bnVsbCE9PXQ7KW51bGwhPT10LmFsdGVybmF0ZSYmKG49dCksdD10LnNpYmxpbmc7bnVsbD09PW4/ZS50YWlsPW51bGw6bi5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZSJjb2xsYXBzZWQiOm49ZS50YWlsO2Zvcih2YXIgcj1udWxsO251bGwhPT1uOyludWxsIT09bi5hbHRlcm5hdGUmJihyPW4pLG49bi5zaWJsaW5nO251bGw9PT1yP3R8fG51bGw9PT1lLnRhaWw/ZS50YWlsPW51bGw6ZS50YWlsLnNpYmxpbmc9bnVsbDpyLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gbnMoZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzO3N3aXRjaCh0LnRhZyl7Y2FzZSAyOmNhc2UgMTY6Y2FzZSAxNTpjYXNlIDA6Y2FzZSAxMTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTI6Y2FzZSA5OmNhc2UgMTQ6cmV0dXJuIG51bGw7Y2FzZSAxOnJldHVybiBwbyh0LnR5cGUpJiZobygpLG51bGw7Y2FzZSAzOnJldHVybiBUaSgpLGlvKGNvKSxpbyh1bykscWkoKSwocj10LnN0YXRlTm9kZSkucGVuZGluZ0NvbnRleHQmJihyLmNvbnRleHQ9ci5wZW5kaW5nQ29udGV4dCxyLnBlbmRpbmdDb250ZXh0PW51bGwpLG51bGwhPT1lJiZudWxsIT09ZS5jaGlsZHx8KFZpKHQpP3QuZmxhZ3N8PTQ6ci5oeWRyYXRlfHwodC5mbGFnc3w9MjU2KSksbnVsbDtjYXNlIDU6SWkodCk7dmFyIGk9QWkoeGkuY3VycmVudCk7aWYobj10LnR5cGUsbnVsbCE9PWUmJm51bGwhPXQuc3RhdGVOb2RlKVdhKGUsdCxuLHIpLGUucmVmIT09dC5yZWYmJih0LmZsYWdzfD0xMjgpO2Vsc2V7aWYoIXIpe2lmKG51bGw9PT10LnN0YXRlTm9kZSl0aHJvdyBFcnJvcihhKDE2NikpO3JldHVybiBudWxsfWlmKGU9QWkoU2kuY3VycmVudCksVmkodCkpe3I9dC5zdGF0ZU5vZGUsbj10LnR5cGU7dmFyIHM9dC5tZW1vaXplZFByb3BzO3N3aXRjaChyW1lyXT10LHJbR3JdPXMsbil7Y2FzZSJkaWFsb2ciOlNyKCJjYW5jZWwiLHIpLFNyKCJjbG9zZSIscik7YnJlYWs7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpTcigibG9hZCIscik7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKGU9MDtlPE9yLmxlbmd0aDtlKyspU3IoT3JbZV0scik7YnJlYWs7Y2FzZSJzb3VyY2UiOlNyKCJlcnJvciIscik7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6U3IoImVycm9yIixyKSxTcigibG9hZCIscik7YnJlYWs7Y2FzZSJkZXRhaWxzIjpTcigidG9nZ2xlIixyKTticmVhaztjYXNlImlucHV0IjplZShyLHMpLFNyKCJpbnZhbGlkIixyKTticmVhaztjYXNlInNlbGVjdCI6ci5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIXMubXVsdGlwbGV9LFNyKCJpbnZhbGlkIixyKTticmVhaztjYXNlInRleHRhcmVhIjp1ZShyLHMpLFNyKCJpbnZhbGlkIixyKX1mb3IodmFyIGMgaW4gRWUobixzKSxlPW51bGwscylzLmhhc093blByb3BlcnR5KGMpJiYoaT1zW2NdLCJjaGlsZHJlbiI9PT1jPyJzdHJpbmciPT09dHlwZW9mIGk/ci50ZXh0Q29udGVudCE9PWkmJihlPVsiY2hpbGRyZW4iLGldKToibnVtYmVyIj09PXR5cGVvZiBpJiZyLnRleHRDb250ZW50IT09IiIraSYmKGU9WyJjaGlsZHJlbiIsIiIraV0pOnUuaGFzT3duUHJvcGVydHkoYykmJm51bGwhPWkmJiJvblNjcm9sbCI9PT1jJiZTcigic2Nyb2xsIixyKSk7c3dpdGNoKG4pe2Nhc2UiaW5wdXQiOlgocikscmUocixzLCEwKTticmVhaztjYXNlInRleHRhcmVhIjpYKHIpLGxlKHIpO2JyZWFrO2Nhc2Uic2VsZWN0IjpjYXNlIm9wdGlvbiI6YnJlYWs7ZGVmYXVsdDoiZnVuY3Rpb24iPT09dHlwZW9mIHMub25DbGljayYmKHIub25jbGljaz1Ocil9cj1lLHQudXBkYXRlUXVldWU9cixudWxsIT09ciYmKHQuZmxhZ3N8PTQpfWVsc2V7c3dpdGNoKGM9OT09PWkubm9kZVR5cGU/aTppLm93bmVyRG9jdW1lbnQsZT09PWZlJiYoZT1wZShuKSksZT09PWZlPyJzY3JpcHQiPT09bj8oKGU9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPSI8c2NyaXB0PjxcL3NjcmlwdD4iLGU9ZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpKToic3RyaW5nIj09PXR5cGVvZiByLmlzP2U9Yy5jcmVhdGVFbGVtZW50KG4se2lzOnIuaXN9KTooZT1jLmNyZWF0ZUVsZW1lbnQobiksInNlbGVjdCI9PT1uJiYoYz1lLHIubXVsdGlwbGU/Yy5tdWx0aXBsZT0hMDpyLnNpemUmJihjLnNpemU9ci5zaXplKSkpOmU9Yy5jcmVhdGVFbGVtZW50TlMoZSxuKSxlW1lyXT10LGVbR3JdPXIsSGEoZSx0KSx0LnN0YXRlTm9kZT1lLGM9Q2UobixyKSxuKXtjYXNlImRpYWxvZyI6U3IoImNhbmNlbCIsZSksU3IoImNsb3NlIixlKSxpPXI7YnJlYWs7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpTcigibG9hZCIsZSksaT1yO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihpPTA7aTxPci5sZW5ndGg7aSsrKVNyKE9yW2ldLGUpO2k9cjticmVhaztjYXNlInNvdXJjZSI6U3IoImVycm9yIixlKSxpPXI7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6U3IoImVycm9yIixlKSxTcigibG9hZCIsZSksaT1yO2JyZWFrO2Nhc2UiZGV0YWlscyI6U3IoInRvZ2dsZSIsZSksaT1yO2JyZWFrO2Nhc2UiaW5wdXQiOmVlKGUsciksaT1aKGUsciksU3IoImludmFsaWQiLGUpO2JyZWFrO2Nhc2Uib3B0aW9uIjppPWllKGUscik7YnJlYWs7Y2FzZSJzZWxlY3QiOmUuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFyLm11bHRpcGxlfSxpPW8oe30scix7dmFsdWU6dm9pZCAwfSksU3IoImludmFsaWQiLGUpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOnVlKGUsciksaT1zZShlLHIpLFNyKCJpbnZhbGlkIixlKTticmVhaztkZWZhdWx0Omk9cn1FZShuLGkpO3ZhciBsPWk7Zm9yKHMgaW4gbClpZihsLmhhc093blByb3BlcnR5KHMpKXt2YXIgZj1sW3NdOyJzdHlsZSI9PT1zP09lKGUsZik6ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PXM/bnVsbCE9KGY9Zj9mLl9faHRtbDp2b2lkIDApJiZnZShlLGYpOiJjaGlsZHJlbiI9PT1zPyJzdHJpbmciPT09dHlwZW9mIGY/KCJ0ZXh0YXJlYSIhPT1ufHwiIiE9PWYpJiZ5ZShlLGYpOiJudW1iZXIiPT09dHlwZW9mIGYmJnllKGUsIiIrZik6InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1zJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PXMmJiJhdXRvRm9jdXMiIT09cyYmKHUuaGFzT3duUHJvcGVydHkocyk/bnVsbCE9ZiYmIm9uU2Nyb2xsIj09PXMmJlNyKCJzY3JvbGwiLGUpOm51bGwhPWYmJncoZSxzLGYsYykpfXN3aXRjaChuKXtjYXNlImlucHV0IjpYKGUpLHJlKGUsciwhMSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6WChlKSxsZShlKTticmVhaztjYXNlIm9wdGlvbiI6bnVsbCE9ci52YWx1ZSYmZS5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIitHKHIudmFsdWUpKTticmVhaztjYXNlInNlbGVjdCI6ZS5tdWx0aXBsZT0hIXIubXVsdGlwbGUsbnVsbCE9KHM9ci52YWx1ZSk/YWUoZSwhIXIubXVsdGlwbGUscywhMSk6bnVsbCE9ci5kZWZhdWx0VmFsdWUmJmFlKGUsISFyLm11bHRpcGxlLHIuZGVmYXVsdFZhbHVlLCEwKTticmVhaztkZWZhdWx0OiJmdW5jdGlvbiI9PT10eXBlb2YgaS5vbkNsaWNrJiYoZS5vbmNsaWNrPU5yKX1NcihuLHIpJiYodC5mbGFnc3w9NCl9bnVsbCE9PXQucmVmJiYodC5mbGFnc3w9MTI4KX1yZXR1cm4gbnVsbDtjYXNlIDY6aWYoZSYmbnVsbCE9dC5zdGF0ZU5vZGUpcWEoMCx0LGUubWVtb2l6ZWRQcm9wcyxyKTtlbHNle2lmKCJzdHJpbmciIT09dHlwZW9mIHImJm51bGw9PT10LnN0YXRlTm9kZSl0aHJvdyBFcnJvcihhKDE2NikpO249QWkoeGkuY3VycmVudCksQWkoU2kuY3VycmVudCksVmkodCk/KHI9dC5zdGF0ZU5vZGUsbj10Lm1lbW9pemVkUHJvcHMscltZcl09dCxyLm5vZGVWYWx1ZSE9PW4mJih0LmZsYWdzfD00KSk6KChyPSg5PT09bi5ub2RlVHlwZT9uOm4ub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUocikpW1lyXT10LHQuc3RhdGVOb2RlPXIpfXJldHVybiBudWxsO2Nhc2UgMTM6cmV0dXJuIGlvKFJpKSxyPXQubWVtb2l6ZWRTdGF0ZSwwIT09KDY0JnQuZmxhZ3MpPyh0LmxhbmVzPW4sdCk6KHI9bnVsbCE9PXIsbj0hMSxudWxsPT09ZT92b2lkIDAhPT10Lm1lbW9pemVkUHJvcHMuZmFsbGJhY2smJlZpKHQpOm49bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSxyJiYhbiYmMCE9PSgyJnQubW9kZSkmJihudWxsPT09ZSYmITAhPT10Lm1lbW9pemVkUHJvcHMudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fDAhPT0oMSZSaS5jdXJyZW50KT8wPT09UHMmJihQcz0zKTooMCE9PVBzJiYzIT09UHN8fChQcz00KSxudWxsPT09a3N8fDA9PT0oMTM0MjE3NzI3JkRzKSYmMD09PSgxMzQyMTc3MjcmTnMpfHxmdShrcyxBcykpKSwocnx8bikmJih0LmZsYWdzfD00KSxudWxsKTtjYXNlIDQ6cmV0dXJuIFRpKCksbnVsbD09PWUmJnhyKHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLG51bGw7Y2FzZSAxMDpyZXR1cm4gWm8odCksbnVsbDtjYXNlIDE3OnJldHVybiBwbyh0LnR5cGUpJiZobygpLG51bGw7Y2FzZSAxOTppZihpbyhSaSksbnVsbD09PShyPXQubWVtb2l6ZWRTdGF0ZSkpcmV0dXJuIG51bGw7aWYocz0wIT09KDY0JnQuZmxhZ3MpLG51bGw9PT0oYz1yLnJlbmRlcmluZykpaWYocyl0cyhyLCExKTtlbHNle2lmKDAhPT1Qc3x8bnVsbCE9PWUmJjAhPT0oNjQmZS5mbGFncykpZm9yKGU9dC5jaGlsZDtudWxsIT09ZTspe2lmKG51bGwhPT0oYz1EaShlKSkpe2Zvcih0LmZsYWdzfD02NCx0cyhyLCExKSxudWxsIT09KHM9Yy51cGRhdGVRdWV1ZSkmJih0LnVwZGF0ZVF1ZXVlPXMsdC5mbGFnc3w9NCksbnVsbD09PXIubGFzdEVmZmVjdCYmKHQuZmlyc3RFZmZlY3Q9bnVsbCksdC5sYXN0RWZmZWN0PXIubGFzdEVmZmVjdCxyPW4sbj10LmNoaWxkO251bGwhPT1uOyllPXIsKHM9bikuZmxhZ3MmPTIscy5uZXh0RWZmZWN0PW51bGwscy5maXJzdEVmZmVjdD1udWxsLHMubGFzdEVmZmVjdD1udWxsLG51bGw9PT0oYz1zLmFsdGVybmF0ZSk/KHMuY2hpbGRMYW5lcz0wLHMubGFuZXM9ZSxzLmNoaWxkPW51bGwscy5tZW1vaXplZFByb3BzPW51bGwscy5tZW1vaXplZFN0YXRlPW51bGwscy51cGRhdGVRdWV1ZT1udWxsLHMuZGVwZW5kZW5jaWVzPW51bGwscy5zdGF0ZU5vZGU9bnVsbCk6KHMuY2hpbGRMYW5lcz1jLmNoaWxkTGFuZXMscy5sYW5lcz1jLmxhbmVzLHMuY2hpbGQ9Yy5jaGlsZCxzLm1lbW9pemVkUHJvcHM9Yy5tZW1vaXplZFByb3BzLHMubWVtb2l6ZWRTdGF0ZT1jLm1lbW9pemVkU3RhdGUscy51cGRhdGVRdWV1ZT1jLnVwZGF0ZVF1ZXVlLHMudHlwZT1jLnR5cGUsZT1jLmRlcGVuZGVuY2llcyxzLmRlcGVuZGVuY2llcz1udWxsPT09ZT9udWxsOntsYW5lczplLmxhbmVzLGZpcnN0Q29udGV4dDplLmZpcnN0Q29udGV4dH0pLG49bi5zaWJsaW5nO3JldHVybiBhbyhSaSwxJlJpLmN1cnJlbnR8MiksdC5jaGlsZH1lPWUuc2libGluZ31udWxsIT09ci50YWlsJiZCbygpPkJzJiYodC5mbGFnc3w9NjQscz0hMCx0cyhyLCExKSx0LmxhbmVzPTMzNTU0NDMyKX1lbHNle2lmKCFzKWlmKG51bGwhPT0oZT1EaShjKSkpe2lmKHQuZmxhZ3N8PTY0LHM9ITAsbnVsbCE9PShuPWUudXBkYXRlUXVldWUpJiYodC51cGRhdGVRdWV1ZT1uLHQuZmxhZ3N8PTQpLHRzKHIsITApLG51bGw9PT1yLnRhaWwmJiJoaWRkZW4iPT09ci50YWlsTW9kZSYmIWMuYWx0ZXJuYXRlJiYhRmkpcmV0dXJuIG51bGwhPT0odD10Lmxhc3RFZmZlY3Q9ci5sYXN0RWZmZWN0KSYmKHQubmV4dEVmZmVjdD1udWxsKSxudWxsfWVsc2UgMipCbygpLXIucmVuZGVyaW5nU3RhcnRUaW1lPkJzJiYxMDczNzQxODI0IT09biYmKHQuZmxhZ3N8PTY0LHM9ITAsdHMociwhMSksdC5sYW5lcz0zMzU1NDQzMik7ci5pc0JhY2t3YXJkcz8oYy5zaWJsaW5nPXQuY2hpbGQsdC5jaGlsZD1jKToobnVsbCE9PShuPXIubGFzdCk/bi5zaWJsaW5nPWM6dC5jaGlsZD1jLHIubGFzdD1jKX1yZXR1cm4gbnVsbCE9PXIudGFpbD8obj1yLnRhaWwsci5yZW5kZXJpbmc9bixyLnRhaWw9bi5zaWJsaW5nLHIubGFzdEVmZmVjdD10Lmxhc3RFZmZlY3Qsci5yZW5kZXJpbmdTdGFydFRpbWU9Qm8oKSxuLnNpYmxpbmc9bnVsbCx0PVJpLmN1cnJlbnQsYW8oUmkscz8xJnR8MjoxJnQpLG4pOm51bGw7Y2FzZSAyMzpjYXNlIDI0OnJldHVybiBndSgpLG51bGwhPT1lJiZudWxsIT09ZS5tZW1vaXplZFN0YXRlIT09KG51bGwhPT10Lm1lbW9pemVkU3RhdGUpJiYidW5zdGFibGUtZGVmZXItd2l0aG91dC1oaWRpbmciIT09ci5tb2RlJiYodC5mbGFnc3w9NCksbnVsbH10aHJvdyBFcnJvcihhKDE1Nix0LnRhZykpfWZ1bmN0aW9uIHJzKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAxOnBvKGUudHlwZSkmJmhvKCk7dmFyIHQ9ZS5mbGFncztyZXR1cm4gNDA5NiZ0PyhlLmZsYWdzPS00MDk3JnR8NjQsZSk6bnVsbDtjYXNlIDM6aWYoVGkoKSxpbyhjbyksaW8odW8pLHFpKCksMCE9PSg2NCYodD1lLmZsYWdzKSkpdGhyb3cgRXJyb3IoYSgyODUpKTtyZXR1cm4gZS5mbGFncz0tNDA5NyZ0fDY0LGU7Y2FzZSA1OnJldHVybiBJaShlKSxudWxsO2Nhc2UgMTM6cmV0dXJuIGlvKFJpKSw0MDk2Jih0PWUuZmxhZ3MpPyhlLmZsYWdzPS00MDk3JnR8NjQsZSk6bnVsbDtjYXNlIDE5OnJldHVybiBpbyhSaSksbnVsbDtjYXNlIDQ6cmV0dXJuIFRpKCksbnVsbDtjYXNlIDEwOnJldHVybiBabyhlKSxudWxsO2Nhc2UgMjM6Y2FzZSAyNDpyZXR1cm4gZ3UoKSxudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIG9zKGUsdCl7dHJ5e3ZhciBuPSIiLHI9dDtkb3tuKz0kKHIpLHI9ci5yZXR1cm59d2hpbGUocik7dmFyIG89bn1jYXRjaChpKXtvPSJcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6ICIraS5tZXNzYWdlKyJcbiIraS5zdGFja31yZXR1cm57dmFsdWU6ZSxzb3VyY2U6dCxzdGFjazpvfX1mdW5jdGlvbiBpcyhlLHQpe3RyeXtjb25zb2xlLmVycm9yKHQudmFsdWUpfWNhdGNoKG4pe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgbn0pKX19SGE9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49dC5jaGlsZDtudWxsIT09bjspe2lmKDU9PT1uLnRhZ3x8Nj09PW4udGFnKWUuYXBwZW5kQ2hpbGQobi5zdGF0ZU5vZGUpO2Vsc2UgaWYoNCE9PW4udGFnJiZudWxsIT09bi5jaGlsZCl7bi5jaGlsZC5yZXR1cm49bixuPW4uY2hpbGQ7Y29udGludWV9aWYobj09PXQpYnJlYWs7Zm9yKDtudWxsPT09bi5zaWJsaW5nOyl7aWYobnVsbD09PW4ucmV0dXJufHxuLnJldHVybj09PXQpcmV0dXJuO249bi5yZXR1cm59bi5zaWJsaW5nLnJldHVybj1uLnJldHVybixuPW4uc2libGluZ319LFdhPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPWUubWVtb2l6ZWRQcm9wcztpZihpIT09cil7ZT10LnN0YXRlTm9kZSxBaShTaS5jdXJyZW50KTt2YXIgYSxzPW51bGw7c3dpdGNoKG4pe2Nhc2UiaW5wdXQiOmk9WihlLGkpLHI9WihlLHIpLHM9W107YnJlYWs7Y2FzZSJvcHRpb24iOmk9aWUoZSxpKSxyPWllKGUscikscz1bXTticmVhaztjYXNlInNlbGVjdCI6aT1vKHt9LGkse3ZhbHVlOnZvaWQgMH0pLHI9byh7fSxyLHt2YWx1ZTp2b2lkIDB9KSxzPVtdO2JyZWFrO2Nhc2UidGV4dGFyZWEiOmk9c2UoZSxpKSxyPXNlKGUscikscz1bXTticmVhaztkZWZhdWx0OiJmdW5jdGlvbiIhPT10eXBlb2YgaS5vbkNsaWNrJiYiZnVuY3Rpb24iPT09dHlwZW9mIHIub25DbGljayYmKGUub25jbGljaz1Ocil9Zm9yKGYgaW4gRWUobixyKSxuPW51bGwsaSlpZighci5oYXNPd25Qcm9wZXJ0eShmKSYmaS5oYXNPd25Qcm9wZXJ0eShmKSYmbnVsbCE9aVtmXSlpZigic3R5bGUiPT09Zil7dmFyIGM9aVtmXTtmb3IoYSBpbiBjKWMuaGFzT3duUHJvcGVydHkoYSkmJihufHwobj17fSksblthXT0iIil9ZWxzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCIhPT1mJiYiY2hpbGRyZW4iIT09ZiYmInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1mJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PWYmJiJhdXRvRm9jdXMiIT09ZiYmKHUuaGFzT3duUHJvcGVydHkoZik/c3x8KHM9W10pOihzPXN8fFtdKS5wdXNoKGYsbnVsbCkpO2ZvcihmIGluIHIpe3ZhciBsPXJbZl07aWYoYz1udWxsIT1pP2lbZl06dm9pZCAwLHIuaGFzT3duUHJvcGVydHkoZikmJmwhPT1jJiYobnVsbCE9bHx8bnVsbCE9YykpaWYoInN0eWxlIj09PWYpaWYoYyl7Zm9yKGEgaW4gYykhYy5oYXNPd25Qcm9wZXJ0eShhKXx8bCYmbC5oYXNPd25Qcm9wZXJ0eShhKXx8KG58fChuPXt9KSxuW2FdPSIiKTtmb3IoYSBpbiBsKWwuaGFzT3duUHJvcGVydHkoYSkmJmNbYV0hPT1sW2FdJiYobnx8KG49e30pLG5bYV09bFthXSl9ZWxzZSBufHwoc3x8KHM9W10pLHMucHVzaChmLG4pKSxuPWw7ZWxzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI9PT1mPyhsPWw/bC5fX2h0bWw6dm9pZCAwLGM9Yz9jLl9faHRtbDp2b2lkIDAsbnVsbCE9bCYmYyE9PWwmJihzPXN8fFtdKS5wdXNoKGYsbCkpOiJjaGlsZHJlbiI9PT1mPyJzdHJpbmciIT09dHlwZW9mIGwmJiJudW1iZXIiIT09dHlwZW9mIGx8fChzPXN8fFtdKS5wdXNoKGYsIiIrbCk6InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1mJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PWYmJih1Lmhhc093blByb3BlcnR5KGYpPyhudWxsIT1sJiYib25TY3JvbGwiPT09ZiYmU3IoInNjcm9sbCIsZSksc3x8Yz09PWx8fChzPVtdKSk6Im9iamVjdCI9PT10eXBlb2YgbCYmbnVsbCE9PWwmJmwuJCR0eXBlb2Y9PT1OP2wudG9TdHJpbmcoKToocz1zfHxbXSkucHVzaChmLGwpKX1uJiYocz1zfHxbXSkucHVzaCgic3R5bGUiLG4pO3ZhciBmPXM7KHQudXBkYXRlUXVldWU9ZikmJih0LmZsYWdzfD00KX19LHFhPWZ1bmN0aW9uKGUsdCxuLHIpe24hPT1yJiYodC5mbGFnc3w9NCl9O3ZhciBhcz0iZnVuY3Rpb24iPT09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXA7ZnVuY3Rpb24gc3MoZSx0LG4peyhuPWFpKC0xLG4pKS50YWc9MyxuLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIHI9dC52YWx1ZTtyZXR1cm4gbi5jYWxsYmFjaz1mdW5jdGlvbigpe0hzfHwoSHM9ITAsV3M9ciksaXMoMCx0KX0sbn1mdW5jdGlvbiB1cyhlLHQsbil7KG49YWkoLTEsbikpLnRhZz0zO3ZhciByPWUudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiByKXt2YXIgbz10LnZhbHVlO24ucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiBpcygwLHQpLHIobyl9fXZhciBpPWUuc3RhdGVOb2RlO3JldHVybiBudWxsIT09aSYmImZ1bmN0aW9uIj09PXR5cGVvZiBpLmNvbXBvbmVudERpZENhdGNoJiYobi5jYWxsYmFjaz1mdW5jdGlvbigpeyJmdW5jdGlvbiIhPT10eXBlb2YgciYmKG51bGw9PT1xcz9xcz1uZXcgU2V0KFt0aGlzXSk6cXMuYWRkKHRoaXMpLGlzKDAsdCkpO3ZhciBlPXQuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaCh0LnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09ZT9lOiIifSl9KSxufXZhciBjcz0iZnVuY3Rpb24iPT09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQ7ZnVuY3Rpb24gbHMoZSl7dmFyIHQ9ZS5yZWY7aWYobnVsbCE9PXQpaWYoImZ1bmN0aW9uIj09PXR5cGVvZiB0KXRyeXt0KG51bGwpfWNhdGNoKG4pe1J1KGUsbil9ZWxzZSB0LmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBmcyhlLHQpe3N3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDIyOnJldHVybjtjYXNlIDE6aWYoMjU2JnQuZmxhZ3MmJm51bGwhPT1lKXt2YXIgbj1lLm1lbW9pemVkUHJvcHMscj1lLm1lbW9pemVkU3RhdGU7dD0oZT10LnN0YXRlTm9kZSkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUodC5lbGVtZW50VHlwZT09PXQudHlwZT9uOllvKHQudHlwZSxuKSxyKSxlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlPXR9cmV0dXJuO2Nhc2UgMzpyZXR1cm4gdm9pZCgyNTYmdC5mbGFncyYmVnIodC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykpO2Nhc2UgNTpjYXNlIDY6Y2FzZSA0OmNhc2UgMTc6cmV0dXJufXRocm93IEVycm9yKGEoMTYzKSl9ZnVuY3Rpb24gZHMoZSx0LG4pe3N3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDIyOmlmKG51bGwhPT0odD1udWxsIT09KHQ9bi51cGRhdGVRdWV1ZSk/dC5sYXN0RWZmZWN0Om51bGwpKXtlPXQ9dC5uZXh0O2Rve2lmKDM9PT0oMyZlLnRhZykpe3ZhciByPWUuY3JlYXRlO2UuZGVzdHJveT1yKCl9ZT1lLm5leHR9d2hpbGUoZSE9PXQpfWlmKG51bGwhPT0odD1udWxsIT09KHQ9bi51cGRhdGVRdWV1ZSk/dC5sYXN0RWZmZWN0Om51bGwpKXtlPXQ9dC5uZXh0O2Rve3ZhciBvPWU7cj1vLm5leHQsMCE9PSg0JihvPW8udGFnKSkmJjAhPT0oMSZvKSYmKFR1KG4sZSksanUobixlKSksZT1yfXdoaWxlKGUhPT10KX1yZXR1cm47Y2FzZSAxOnJldHVybiBlPW4uc3RhdGVOb2RlLDQmbi5mbGFncyYmKG51bGw9PT10P2UuY29tcG9uZW50RGlkTW91bnQoKToocj1uLmVsZW1lbnRUeXBlPT09bi50eXBlP3QubWVtb2l6ZWRQcm9wczpZbyhuLnR5cGUsdC5tZW1vaXplZFByb3BzKSxlLmNvbXBvbmVudERpZFVwZGF0ZShyLHQubWVtb2l6ZWRTdGF0ZSxlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKSkpLHZvaWQobnVsbCE9PSh0PW4udXBkYXRlUXVldWUpJiZsaShuLHQsZSkpO2Nhc2UgMzppZihudWxsIT09KHQ9bi51cGRhdGVRdWV1ZSkpe2lmKGU9bnVsbCxudWxsIT09bi5jaGlsZClzd2l0Y2gobi5jaGlsZC50YWcpe2Nhc2UgNTplPW4uY2hpbGQuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMTplPW4uY2hpbGQuc3RhdGVOb2RlfWxpKG4sdCxlKX1yZXR1cm47Y2FzZSA1OnJldHVybiBlPW4uc3RhdGVOb2RlLHZvaWQobnVsbD09PXQmJjQmbi5mbGFncyYmTXIobi50eXBlLG4ubWVtb2l6ZWRQcm9wcykmJmUuZm9jdXMoKSk7Y2FzZSA2OmNhc2UgNDpjYXNlIDEyOnJldHVybjtjYXNlIDEzOnJldHVybiB2b2lkKG51bGw9PT1uLm1lbW9pemVkU3RhdGUmJihuPW4uYWx0ZXJuYXRlLG51bGwhPT1uJiYobj1uLm1lbW9pemVkU3RhdGUsbnVsbCE9PW4mJihuPW4uZGVoeWRyYXRlZCxudWxsIT09biYmT3QobikpKSkpO2Nhc2UgMTk6Y2FzZSAxNzpjYXNlIDIwOmNhc2UgMjE6Y2FzZSAyMzpjYXNlIDI0OnJldHVybn10aHJvdyBFcnJvcihhKDE2MykpfWZ1bmN0aW9uIHBzKGUsdCl7Zm9yKHZhciBuPWU7Oyl7aWYoNT09PW4udGFnKXt2YXIgcj1uLnN0YXRlTm9kZTtpZih0KSJmdW5jdGlvbiI9PT10eXBlb2Yocj1yLnN0eWxlKS5zZXRQcm9wZXJ0eT9yLnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpOnIuZGlzcGxheT0ibm9uZSI7ZWxzZXtyPW4uc3RhdGVOb2RlO3ZhciBvPW4ubWVtb2l6ZWRQcm9wcy5zdHlsZTtvPXZvaWQgMCE9PW8mJm51bGwhPT1vJiZvLmhhc093blByb3BlcnR5KCJkaXNwbGF5Iik/by5kaXNwbGF5Om51bGwsci5zdHlsZS5kaXNwbGF5PXdlKCJkaXNwbGF5IixvKX19ZWxzZSBpZig2PT09bi50YWcpbi5zdGF0ZU5vZGUubm9kZVZhbHVlPXQ/IiI6bi5tZW1vaXplZFByb3BzO2Vsc2UgaWYoKDIzIT09bi50YWcmJjI0IT09bi50YWd8fG51bGw9PT1uLm1lbW9pemVkU3RhdGV8fG49PT1lKSYmbnVsbCE9PW4uY2hpbGQpe24uY2hpbGQucmV0dXJuPW4sbj1uLmNoaWxkO2NvbnRpbnVlfWlmKG49PT1lKWJyZWFrO2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bi5yZXR1cm49PT1lKXJldHVybjtuPW4ucmV0dXJufW4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9fWZ1bmN0aW9uIGhzKGUsdCl7aWYod28mJiJmdW5jdGlvbiI9PT10eXBlb2Ygd28ub25Db21taXRGaWJlclVubW91bnQpdHJ5e3dvLm9uQ29tbWl0RmliZXJVbm1vdW50KGJvLHQpfWNhdGNoKGkpe31zd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDIyOmlmKG51bGwhPT0oZT10LnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShlPWUubGFzdEVmZmVjdCkpe3ZhciBuPWU9ZS5uZXh0O2Rve3ZhciByPW4sbz1yLmRlc3Ryb3k7aWYocj1yLnRhZyx2b2lkIDAhPT1vKWlmKDAhPT0oNCZyKSlUdSh0LG4pO2Vsc2V7cj10O3RyeXtvKCl9Y2F0Y2goaSl7UnUocixpKX19bj1uLm5leHR9d2hpbGUobiE9PWUpfWJyZWFrO2Nhc2UgMTppZihscyh0KSwiZnVuY3Rpb24iPT09dHlwZW9mKGU9dC5zdGF0ZU5vZGUpLmNvbXBvbmVudFdpbGxVbm1vdW50KXRyeXtlLnByb3BzPXQubWVtb2l6ZWRQcm9wcyxlLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSxlLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goaSl7UnUodCxpKX1icmVhaztjYXNlIDU6bHModCk7YnJlYWs7Y2FzZSA0Om1zKGUsdCl9fWZ1bmN0aW9uIHZzKGUpe2UuYWx0ZXJuYXRlPW51bGwsZS5jaGlsZD1udWxsLGUuZGVwZW5kZW5jaWVzPW51bGwsZS5maXJzdEVmZmVjdD1udWxsLGUubGFzdEVmZmVjdD1udWxsLGUubWVtb2l6ZWRQcm9wcz1udWxsLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGUucGVuZGluZ1Byb3BzPW51bGwsZS5yZXR1cm49bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGx9ZnVuY3Rpb24gZ3MoZSl7cmV0dXJuIDU9PT1lLnRhZ3x8Mz09PWUudGFnfHw0PT09ZS50YWd9ZnVuY3Rpb24geXMoZSl7ZTp7Zm9yKHZhciB0PWUucmV0dXJuO251bGwhPT10Oyl7aWYoZ3ModCkpYnJlYWsgZTt0PXQucmV0dXJufXRocm93IEVycm9yKGEoMTYwKSl9dmFyIG49dDtzd2l0Y2godD1uLnN0YXRlTm9kZSxuLnRhZyl7Y2FzZSA1OnZhciByPSExO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dD10LmNvbnRhaW5lckluZm8scj0hMDticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMTYxKSl9MTYmbi5mbGFncyYmKHllKHQsIiIpLG4uZmxhZ3MmPS0xNyk7ZTp0OmZvcihuPWU7Oyl7Zm9yKDtudWxsPT09bi5zaWJsaW5nOyl7aWYobnVsbD09PW4ucmV0dXJufHxncyhuLnJldHVybikpe249bnVsbDticmVhayBlfW49bi5yZXR1cm59Zm9yKG4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmc7NSE9PW4udGFnJiY2IT09bi50YWcmJjE4IT09bi50YWc7KXtpZigyJm4uZmxhZ3MpY29udGludWUgdDtpZihudWxsPT09bi5jaGlsZHx8ND09PW4udGFnKWNvbnRpbnVlIHQ7bi5jaGlsZC5yZXR1cm49bixuPW4uY2hpbGR9aWYoISgyJm4uZmxhZ3MpKXtuPW4uc3RhdGVOb2RlO2JyZWFrIGV9fXI/ZnVuY3Rpb24gZSh0LG4scil7dmFyIG89dC50YWcsaT01PT09b3x8Nj09PW87aWYoaSl0PWk/dC5zdGF0ZU5vZGU6dC5zdGF0ZU5vZGUuaW5zdGFuY2Usbj84PT09ci5ub2RlVHlwZT9yLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsbik6ci5pbnNlcnRCZWZvcmUodCxuKTooOD09PXIubm9kZVR5cGU/KG49ci5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUodCxyKToobj1yKS5hcHBlbmRDaGlsZCh0KSxudWxsIT09KHI9ci5fcmVhY3RSb290Q29udGFpbmVyKSYmdm9pZCAwIT09cnx8bnVsbCE9PW4ub25jbGlja3x8KG4ub25jbGljaz1OcikpO2Vsc2UgaWYoNCE9PW8mJm51bGwhPT0odD10LmNoaWxkKSlmb3IoZSh0LG4sciksdD10LnNpYmxpbmc7bnVsbCE9PXQ7KWUodCxuLHIpLHQ9dC5zaWJsaW5nfShlLG4sdCk6ZnVuY3Rpb24gZSh0LG4scil7dmFyIG89dC50YWcsaT01PT09b3x8Nj09PW87aWYoaSl0PWk/dC5zdGF0ZU5vZGU6dC5zdGF0ZU5vZGUuaW5zdGFuY2Usbj9yLmluc2VydEJlZm9yZSh0LG4pOnIuYXBwZW5kQ2hpbGQodCk7ZWxzZSBpZig0IT09byYmbnVsbCE9PSh0PXQuY2hpbGQpKWZvcihlKHQsbixyKSx0PXQuc2libGluZztudWxsIT09dDspZSh0LG4sciksdD10LnNpYmxpbmd9KGUsbix0KX1mdW5jdGlvbiBtcyhlLHQpe2Zvcih2YXIgbixyLG89dCxpPSExOzspe2lmKCFpKXtpPW8ucmV0dXJuO2U6Zm9yKDs7KXtpZihudWxsPT09aSl0aHJvdyBFcnJvcihhKDE2MCkpO3N3aXRjaChuPWkuc3RhdGVOb2RlLGkudGFnKXtjYXNlIDU6cj0hMTticmVhayBlO2Nhc2UgMzpjYXNlIDQ6bj1uLmNvbnRhaW5lckluZm8scj0hMDticmVhayBlfWk9aS5yZXR1cm59aT0hMH1pZig1PT09by50YWd8fDY9PT1vLnRhZyl7ZTpmb3IodmFyIHM9ZSx1PW8sYz11OzspaWYoaHMocyxjKSxudWxsIT09Yy5jaGlsZCYmNCE9PWMudGFnKWMuY2hpbGQucmV0dXJuPWMsYz1jLmNoaWxkO2Vsc2V7aWYoYz09PXUpYnJlYWsgZTtmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09dSlicmVhayBlO2M9Yy5yZXR1cm59Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybixjPWMuc2libGluZ31yPyhzPW4sdT1vLnN0YXRlTm9kZSw4PT09cy5ub2RlVHlwZT9zLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodSk6cy5yZW1vdmVDaGlsZCh1KSk6bi5yZW1vdmVDaGlsZChvLnN0YXRlTm9kZSl9ZWxzZSBpZig0PT09by50YWcpe2lmKG51bGwhPT1vLmNoaWxkKXtuPW8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8scj0hMCxvLmNoaWxkLnJldHVybj1vLG89by5jaGlsZDtjb250aW51ZX19ZWxzZSBpZihocyhlLG8pLG51bGwhPT1vLmNoaWxkKXtvLmNoaWxkLnJldHVybj1vLG89by5jaGlsZDtjb250aW51ZX1pZihvPT09dClicmVhaztmb3IoO251bGw9PT1vLnNpYmxpbmc7KXtpZihudWxsPT09by5yZXR1cm58fG8ucmV0dXJuPT09dClyZXR1cm47ND09PShvPW8ucmV0dXJuKS50YWcmJihpPSExKX1vLnNpYmxpbmcucmV0dXJuPW8ucmV0dXJuLG89by5zaWJsaW5nfX1mdW5jdGlvbiBicyhlLHQpe3N3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMjI6dmFyIG49dC51cGRhdGVRdWV1ZTtpZihudWxsIT09KG49bnVsbCE9PW4/bi5sYXN0RWZmZWN0Om51bGwpKXt2YXIgcj1uPW4ubmV4dDtkb3szPT09KDMmci50YWcpJiYoZT1yLmRlc3Ryb3ksci5kZXN0cm95PXZvaWQgMCx2b2lkIDAhPT1lJiZlKCkpLHI9ci5uZXh0fXdoaWxlKHIhPT1uKX1yZXR1cm47Y2FzZSAxOnJldHVybjtjYXNlIDU6aWYobnVsbCE9KG49dC5zdGF0ZU5vZGUpKXtyPXQubWVtb2l6ZWRQcm9wczt2YXIgbz1udWxsIT09ZT9lLm1lbW9pemVkUHJvcHM6cjtlPXQudHlwZTt2YXIgaT10LnVwZGF0ZVF1ZXVlO2lmKHQudXBkYXRlUXVldWU9bnVsbCxudWxsIT09aSl7Zm9yKG5bR3JdPXIsImlucHV0Ij09PWUmJiJyYWRpbyI9PT1yLnR5cGUmJm51bGwhPXIubmFtZSYmdGUobixyKSxDZShlLG8pLHQ9Q2UoZSxyKSxvPTA7bzxpLmxlbmd0aDtvKz0yKXt2YXIgcz1pW29dLHU9aVtvKzFdOyJzdHlsZSI9PT1zP09lKG4sdSk6ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PXM/Z2Uobix1KToiY2hpbGRyZW4iPT09cz95ZShuLHUpOncobixzLHUsdCl9c3dpdGNoKGUpe2Nhc2UiaW5wdXQiOm5lKG4scik7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6Y2UobixyKTticmVhaztjYXNlInNlbGVjdCI6ZT1uLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGUsbi5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlPSEhci5tdWx0aXBsZSxudWxsIT0oaT1yLnZhbHVlKT9hZShuLCEhci5tdWx0aXBsZSxpLCExKTplIT09ISFyLm11bHRpcGxlJiYobnVsbCE9ci5kZWZhdWx0VmFsdWU/YWUobiwhIXIubXVsdGlwbGUsci5kZWZhdWx0VmFsdWUsITApOmFlKG4sISFyLm11bHRpcGxlLHIubXVsdGlwbGU/W106IiIsITEpKX19fXJldHVybjtjYXNlIDY6aWYobnVsbD09PXQuc3RhdGVOb2RlKXRocm93IEVycm9yKGEoMTYyKSk7cmV0dXJuIHZvaWQodC5zdGF0ZU5vZGUubm9kZVZhbHVlPXQubWVtb2l6ZWRQcm9wcyk7Y2FzZSAzOnJldHVybiB2b2lkKChuPXQuc3RhdGVOb2RlKS5oeWRyYXRlJiYobi5oeWRyYXRlPSExLE90KG4uY29udGFpbmVySW5mbykpKTtjYXNlIDEyOnJldHVybjtjYXNlIDEzOnJldHVybiBudWxsIT09dC5tZW1vaXplZFN0YXRlJiYoTXM9Qm8oKSxwcyh0LmNoaWxkLCEwKSksdm9pZCB3cyh0KTtjYXNlIDE5OnJldHVybiB2b2lkIHdzKHQpO2Nhc2UgMTc6cmV0dXJuO2Nhc2UgMjM6Y2FzZSAyNDpyZXR1cm4gdm9pZCBwcyh0LG51bGwhPT10Lm1lbW9pemVkU3RhdGUpfXRocm93IEVycm9yKGEoMTYzKSl9ZnVuY3Rpb24gd3MoZSl7dmFyIHQ9ZS51cGRhdGVRdWV1ZTtpZihudWxsIT09dCl7ZS51cGRhdGVRdWV1ZT1udWxsO3ZhciBuPWUuc3RhdGVOb2RlO251bGw9PT1uJiYobj1lLnN0YXRlTm9kZT1uZXcgY3MpLHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9TnUuYmluZChudWxsLGUsdCk7bi5oYXModCl8fChuLmFkZCh0KSx0LnRoZW4ocixyKSl9KSl9fWZ1bmN0aW9uIE9zKGUsdCl7cmV0dXJuIG51bGwhPT1lJiYobnVsbD09PShlPWUubWVtb2l6ZWRTdGF0ZSl8fG51bGwhPT1lLmRlaHlkcmF0ZWQpJiYobnVsbCE9PSh0PXQubWVtb2l6ZWRTdGF0ZSkmJm51bGw9PT10LmRlaHlkcmF0ZWQpfXZhciBfcz1NYXRoLmNlaWwsRXM9Ty5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLENzPU8uUmVhY3RDdXJyZW50T3duZXIsU3M9MCxrcz1udWxsLHhzPW51bGwsQXM9MCxqcz0wLFRzPW9vKDApLFBzPTAsSXM9bnVsbCxScz0wLERzPTAsTnM9MCxMcz0wLEZzPW51bGwsTXM9MCxCcz0xLzA7ZnVuY3Rpb24gVXMoKXtCcz1CbygpKzUwMH12YXIgenMsVnM9bnVsbCxIcz0hMSxXcz1udWxsLHFzPW51bGwsJHM9ITEsWXM9bnVsbCxHcz05MCxLcz1bXSxYcz1bXSxRcz1udWxsLEpzPTAsWnM9bnVsbCxldT0tMSx0dT0wLG51PTAscnU9bnVsbCxvdT0hMTtmdW5jdGlvbiBpdSgpe3JldHVybiAwIT09KDQ4JlNzKT9CbygpOi0xIT09ZXU/ZXU6ZXU9Qm8oKX1mdW5jdGlvbiBhdShlKXtpZigwPT09KDImKGU9ZS5tb2RlKSkpcmV0dXJuIDE7aWYoMD09PSg0JmUpKXJldHVybiA5OT09PVVvKCk/MToyO2lmKDA9PT10dSYmKHR1PVJzKSwwIT09JG8udHJhbnNpdGlvbil7MCE9PW51JiYobnU9bnVsbCE9PUZzP0ZzLnBlbmRpbmdMYW5lczowKSxlPXR1O3ZhciB0PTQxODYxMTImfm51O3JldHVybiAwPT09KHQmPS10KSYmKDA9PT0odD0oZT00MTg2MTEyJn5lKSYtZSkmJih0PTgxOTIpKSx0fXJldHVybiBlPVVvKCksMCE9PSg0JlNzKSYmOTg9PT1lP2U9QnQoMTIsdHUpOmU9QnQoZT1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSA5OTpyZXR1cm4gMTU7Y2FzZSA5ODpyZXR1cm4gMTA7Y2FzZSA5NzpjYXNlIDk2OnJldHVybiA4O2Nhc2UgOTU6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19KGUpLHR1KSxlfWZ1bmN0aW9uIHN1KGUsdCxuKXtpZig1MDxKcyl0aHJvdyBKcz0wLFpzPW51bGwsRXJyb3IoYSgxODUpKTtpZihudWxsPT09KGU9dXUoZSx0KSkpcmV0dXJuIG51bGw7VnQoZSx0LG4pLGU9PT1rcyYmKE5zfD10LDQ9PT1QcyYmZnUoZSxBcykpO3ZhciByPVVvKCk7MT09PXQ/MCE9PSg4JlNzKSYmMD09PSg0OCZTcyk/ZHUoZSk6KGN1KGUsbiksMD09PVNzJiYoVXMoKSxXbygpKSk6KDA9PT0oNCZTcyl8fDk4IT09ciYmOTkhPT1yfHwobnVsbD09PVFzP1FzPW5ldyBTZXQoW2VdKTpRcy5hZGQoZSkpLGN1KGUsbikpLEZzPWV9ZnVuY3Rpb24gdXUoZSx0KXtlLmxhbmVzfD10O3ZhciBuPWUuYWx0ZXJuYXRlO2ZvcihudWxsIT09biYmKG4ubGFuZXN8PXQpLG49ZSxlPWUucmV0dXJuO251bGwhPT1lOyllLmNoaWxkTGFuZXN8PXQsbnVsbCE9PShuPWUuYWx0ZXJuYXRlKSYmKG4uY2hpbGRMYW5lc3w9dCksbj1lLGU9ZS5yZXR1cm47cmV0dXJuIDM9PT1uLnRhZz9uLnN0YXRlTm9kZTpudWxsfWZ1bmN0aW9uIGN1KGUsdCl7Zm9yKHZhciBuPWUuY2FsbGJhY2tOb2RlLHI9ZS5zdXNwZW5kZWRMYW5lcyxvPWUucGluZ2VkTGFuZXMsaT1lLmV4cGlyYXRpb25UaW1lcyxzPWUucGVuZGluZ0xhbmVzOzA8czspe3ZhciB1PTMxLUh0KHMpLGM9MTw8dSxsPWlbdV07aWYoLTE9PT1sKXtpZigwPT09KGMmcil8fDAhPT0oYyZvKSl7bD10LEx0KGMpO3ZhciBmPU50O2lbdV09MTA8PWY/bCsyNTA6Njw9Zj9sKzVlMzotMX19ZWxzZSBsPD10JiYoZS5leHBpcmVkTGFuZXN8PWMpO3MmPX5jfWlmKHI9RnQoZSxlPT09a3M/QXM6MCksdD1OdCwwPT09ciludWxsIT09biYmKG4hPT1SbyYmRW8obiksZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCk7ZWxzZXtpZihudWxsIT09bil7aWYoZS5jYWxsYmFja1ByaW9yaXR5PT09dClyZXR1cm47biE9PVJvJiZFbyhuKX0xNT09PXQ/KG49ZHUuYmluZChudWxsLGUpLG51bGw9PT1Obz8oTm89W25dLExvPV9vKEFvLHFvKSk6Tm8ucHVzaChuKSxuPVJvKToxND09PXQ/bj1Ibyg5OSxkdS5iaW5kKG51bGwsZSkpOm49SG8obj1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSAxNTpjYXNlIDE0OnJldHVybiA5OTtjYXNlIDEzOmNhc2UgMTI6Y2FzZSAxMTpjYXNlIDEwOnJldHVybiA5ODtjYXNlIDk6Y2FzZSA4OmNhc2UgNzpjYXNlIDY6Y2FzZSA0OmNhc2UgNTpyZXR1cm4gOTc7Y2FzZSAzOmNhc2UgMjpjYXNlIDE6cmV0dXJuIDk1O2Nhc2UgMDpyZXR1cm4gOTA7ZGVmYXVsdDp0aHJvdyBFcnJvcihhKDM1OCxlKSl9fSh0KSxsdS5iaW5kKG51bGwsZSkpLGUuY2FsbGJhY2tQcmlvcml0eT10LGUuY2FsbGJhY2tOb2RlPW59fWZ1bmN0aW9uIGx1KGUpe2lmKGV1PS0xLG51PXR1PTAsMCE9PSg0OCZTcykpdGhyb3cgRXJyb3IoYSgzMjcpKTt2YXIgdD1lLmNhbGxiYWNrTm9kZTtpZihBdSgpJiZlLmNhbGxiYWNrTm9kZSE9PXQpcmV0dXJuIG51bGw7dmFyIG49RnQoZSxlPT09a3M/QXM6MCk7aWYoMD09PW4pcmV0dXJuIG51bGw7dmFyIHI9bixvPVNzO1NzfD0xNjt2YXIgaT1idSgpO2Zvcihrcz09PWUmJkFzPT09cnx8KFVzKCkseXUoZSxyKSk7Oyl0cnl7X3UoKTticmVha31jYXRjaCh1KXttdShlLHUpfWlmKEpvKCksRXMuY3VycmVudD1pLFNzPW8sbnVsbCE9PXhzP3I9MDooa3M9bnVsbCxBcz0wLHI9UHMpLDAhPT0oUnMmTnMpKXl1KGUsMCk7ZWxzZSBpZigwIT09cil7aWYoMj09PXImJihTc3w9NjQsZS5oeWRyYXRlJiYoZS5oeWRyYXRlPSExLFZyKGUuY29udGFpbmVySW5mbykpLDAhPT0obj1NdChlKSkmJihyPXd1KGUsbikpKSwxPT09cil0aHJvdyB0PUlzLHl1KGUsMCksZnUoZSxuKSxjdShlLEJvKCkpLHQ7c3dpdGNoKGUuZmluaXNoZWRXb3JrPWUuY3VycmVudC5hbHRlcm5hdGUsZS5maW5pc2hlZExhbmVzPW4scil7Y2FzZSAwOmNhc2UgMTp0aHJvdyBFcnJvcihhKDM0NSkpO2Nhc2UgMjpTdShlKTticmVhaztjYXNlIDM6aWYoZnUoZSxuKSwoNjI5MTQ1NjAmbik9PT1uJiYxMDwocj1Ncys1MDAtQm8oKSkpe2lmKDAhPT1GdChlLDApKWJyZWFrO2lmKCgobz1lLnN1c3BlbmRlZExhbmVzKSZuKSE9PW4pe2l1KCksZS5waW5nZWRMYW5lc3w9ZS5zdXNwZW5kZWRMYW5lcyZvO2JyZWFrfWUudGltZW91dEhhbmRsZT1VcihTdS5iaW5kKG51bGwsZSkscik7YnJlYWt9U3UoZSk7YnJlYWs7Y2FzZSA0OmlmKGZ1KGUsbiksKDQxODYxMTImbik9PT1uKWJyZWFrO2ZvcihyPWUuZXZlbnRUaW1lcyxvPS0xOzA8bjspe3ZhciBzPTMxLUh0KG4pO2k9MTw8cywocz1yW3NdKT5vJiYobz1zKSxuJj1+aX1pZihuPW8sMTA8KG49KDEyMD4obj1CbygpLW4pPzEyMDo0ODA+bj80ODA6MTA4MD5uPzEwODA6MTkyMD5uPzE5MjA6M2UzPm4/M2UzOjQzMjA+bj80MzIwOjE5NjAqX3Mobi8xOTYwKSktbikpe2UudGltZW91dEhhbmRsZT1VcihTdS5iaW5kKG51bGwsZSksbik7YnJlYWt9U3UoZSk7YnJlYWs7Y2FzZSA1OlN1KGUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgzMjkpKX19cmV0dXJuIGN1KGUsQm8oKSksZS5jYWxsYmFja05vZGU9PT10P2x1LmJpbmQobnVsbCxlKTpudWxsfWZ1bmN0aW9uIGZ1KGUsdCl7Zm9yKHQmPX5Mcyx0Jj1+TnMsZS5zdXNwZW5kZWRMYW5lc3w9dCxlLnBpbmdlZExhbmVzJj1+dCxlPWUuZXhwaXJhdGlvblRpbWVzOzA8dDspe3ZhciBuPTMxLUh0KHQpLHI9MTw8bjtlW25dPS0xLHQmPX5yfX1mdW5jdGlvbiBkdShlKXtpZigwIT09KDQ4JlNzKSl0aHJvdyBFcnJvcihhKDMyNykpO2lmKEF1KCksZT09PWtzJiYwIT09KGUuZXhwaXJlZExhbmVzJkFzKSl7dmFyIHQ9QXMsbj13dShlLHQpOzAhPT0oUnMmTnMpJiYobj13dShlLHQ9RnQoZSx0KSkpfWVsc2Ugbj13dShlLHQ9RnQoZSwwKSk7aWYoMCE9PWUudGFnJiYyPT09biYmKFNzfD02NCxlLmh5ZHJhdGUmJihlLmh5ZHJhdGU9ITEsVnIoZS5jb250YWluZXJJbmZvKSksMCE9PSh0PU10KGUpKSYmKG49d3UoZSx0KSkpLDE9PT1uKXRocm93IG49SXMseXUoZSwwKSxmdShlLHQpLGN1KGUsQm8oKSksbjtyZXR1cm4gZS5maW5pc2hlZFdvcms9ZS5jdXJyZW50LmFsdGVybmF0ZSxlLmZpbmlzaGVkTGFuZXM9dCxTdShlKSxjdShlLEJvKCkpLG51bGx9ZnVuY3Rpb24gcHUoZSx0KXt2YXIgbj1TcztTc3w9MTt0cnl7cmV0dXJuIGUodCl9ZmluYWxseXswPT09KFNzPW4pJiYoVXMoKSxXbygpKX19ZnVuY3Rpb24gaHUoZSx0KXt2YXIgbj1TcztTcyY9LTIsU3N8PTg7dHJ5e3JldHVybiBlKHQpfWZpbmFsbHl7MD09PShTcz1uKSYmKFVzKCksV28oKSl9fWZ1bmN0aW9uIHZ1KGUsdCl7YW8oVHMsanMpLGpzfD10LFJzfD10fWZ1bmN0aW9uIGd1KCl7anM9VHMuY3VycmVudCxpbyhUcyl9ZnVuY3Rpb24geXUoZSx0KXtlLmZpbmlzaGVkV29yaz1udWxsLGUuZmluaXNoZWRMYW5lcz0wO3ZhciBuPWUudGltZW91dEhhbmRsZTtpZigtMSE9PW4mJihlLnRpbWVvdXRIYW5kbGU9LTEsenIobikpLG51bGwhPT14cylmb3Iobj14cy5yZXR1cm47bnVsbCE9PW47KXt2YXIgcj1uO3N3aXRjaChyLnRhZyl7Y2FzZSAxOm51bGwhPT0ocj1yLnR5cGUuY2hpbGRDb250ZXh0VHlwZXMpJiZ2b2lkIDAhPT1yJiZobygpO2JyZWFrO2Nhc2UgMzpUaSgpLGlvKGNvKSxpbyh1bykscWkoKTticmVhaztjYXNlIDU6SWkocik7YnJlYWs7Y2FzZSA0OlRpKCk7YnJlYWs7Y2FzZSAxMzpjYXNlIDE5OmlvKFJpKTticmVhaztjYXNlIDEwOlpvKHIpO2JyZWFrO2Nhc2UgMjM6Y2FzZSAyNDpndSgpfW49bi5yZXR1cm59a3M9ZSx4cz1CdShlLmN1cnJlbnQsbnVsbCksQXM9anM9UnM9dCxQcz0wLElzPW51bGwsTHM9TnM9RHM9MH1mdW5jdGlvbiBtdShlLHQpe2Zvcig7Oyl7dmFyIG49eHM7dHJ5e2lmKEpvKCksJGkuY3VycmVudD14YSxKaSl7Zm9yKHZhciByPUtpLm1lbW9pemVkU3RhdGU7bnVsbCE9PXI7KXt2YXIgbz1yLnF1ZXVlO251bGwhPT1vJiYoby5wZW5kaW5nPW51bGwpLHI9ci5uZXh0fUppPSExfWlmKEdpPTAsUWk9WGk9S2k9bnVsbCxaaT0hMSxDcy5jdXJyZW50PW51bGwsbnVsbD09PW58fG51bGw9PT1uLnJldHVybil7UHM9MSxJcz10LHhzPW51bGw7YnJlYWt9ZTp7dmFyIGk9ZSxhPW4ucmV0dXJuLHM9bix1PXQ7aWYodD1BcyxzLmZsYWdzfD0yMDQ4LHMuZmlyc3RFZmZlY3Q9cy5sYXN0RWZmZWN0PW51bGwsbnVsbCE9PXUmJiJvYmplY3QiPT09dHlwZW9mIHUmJiJmdW5jdGlvbiI9PT10eXBlb2YgdS50aGVuKXt2YXIgYz11O2lmKDA9PT0oMiZzLm1vZGUpKXt2YXIgbD1zLmFsdGVybmF0ZTtsPyhzLnVwZGF0ZVF1ZXVlPWwudXBkYXRlUXVldWUscy5tZW1vaXplZFN0YXRlPWwubWVtb2l6ZWRTdGF0ZSxzLmxhbmVzPWwubGFuZXMpOihzLnVwZGF0ZVF1ZXVlPW51bGwscy5tZW1vaXplZFN0YXRlPW51bGwpfXZhciBmPTAhPT0oMSZSaS5jdXJyZW50KSxkPWE7ZG97dmFyIHA7aWYocD0xMz09PWQudGFnKXt2YXIgaD1kLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWgpcD1udWxsIT09aC5kZWh5ZHJhdGVkO2Vsc2V7dmFyIHY9ZC5tZW1vaXplZFByb3BzO3A9dm9pZCAwIT09di5mYWxsYmFjayYmKCEwIT09di51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFja3x8IWYpfX1pZihwKXt2YXIgZz1kLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1nKXt2YXIgeT1uZXcgU2V0O3kuYWRkKGMpLGQudXBkYXRlUXVldWU9eX1lbHNlIGcuYWRkKGMpO2lmKDA9PT0oMiZkLm1vZGUpKXtpZihkLmZsYWdzfD02NCxzLmZsYWdzfD0xNjM4NCxzLmZsYWdzJj0tMjk4MSwxPT09cy50YWcpaWYobnVsbD09PXMuYWx0ZXJuYXRlKXMudGFnPTE3O2Vsc2V7dmFyIG09YWkoLTEsMSk7bS50YWc9MixzaShzLG0pfXMubGFuZXN8PTE7YnJlYWsgZX11PXZvaWQgMCxzPXQ7dmFyIGI9aS5waW5nQ2FjaGU7aWYobnVsbD09PWI/KGI9aS5waW5nQ2FjaGU9bmV3IGFzLHU9bmV3IFNldCxiLnNldChjLHUpKTp2b2lkIDA9PT0odT1iLmdldChjKSkmJih1PW5ldyBTZXQsYi5zZXQoYyx1KSksIXUuaGFzKHMpKXt1LmFkZChzKTt2YXIgdz1EdS5iaW5kKG51bGwsaSxjLHMpO2MudGhlbih3LHcpfWQuZmxhZ3N8PTQwOTYsZC5sYW5lcz10O2JyZWFrIGV9ZD1kLnJldHVybn13aGlsZShudWxsIT09ZCk7dT1FcnJvcigoWShzLnR5cGUpfHwiQSBSZWFjdCBjb21wb25lbnQiKSsiIHN1c3BlbmRlZCB3aGlsZSByZW5kZXJpbmcsIGJ1dCBubyBmYWxsYmFjayBVSSB3YXMgc3BlY2lmaWVkLlxuXG5BZGQgYSA8U3VzcGVuc2UgZmFsbGJhY2s9Li4uPiBjb21wb25lbnQgaGlnaGVyIGluIHRoZSB0cmVlIHRvIHByb3ZpZGUgYSBsb2FkaW5nIGluZGljYXRvciBvciBwbGFjZWhvbGRlciB0byBkaXNwbGF5LiIpfTUhPT1QcyYmKFBzPTIpLHU9b3ModSxzKSxkPWE7ZG97c3dpdGNoKGQudGFnKXtjYXNlIDM6aT11LGQuZmxhZ3N8PTQwOTYsdCY9LXQsZC5sYW5lc3w9dCx1aShkLHNzKDAsaSx0KSk7YnJlYWsgZTtjYXNlIDE6aT11O3ZhciBPPWQudHlwZSxfPWQuc3RhdGVOb2RlO2lmKDA9PT0oNjQmZC5mbGFncykmJigiZnVuY3Rpb24iPT09dHlwZW9mIE8uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxudWxsIT09XyYmImZ1bmN0aW9uIj09PXR5cGVvZiBfLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PXFzfHwhcXMuaGFzKF8pKSkpe2QuZmxhZ3N8PTQwOTYsdCY9LXQsZC5sYW5lc3w9dCx1aShkLHVzKGQsaSx0KSk7YnJlYWsgZX19ZD1kLnJldHVybn13aGlsZShudWxsIT09ZCl9Q3Uobil9Y2F0Y2goRSl7dD1FLHhzPT09biYmbnVsbCE9PW4mJih4cz1uPW4ucmV0dXJuKTtjb250aW51ZX1icmVha319ZnVuY3Rpb24gYnUoKXt2YXIgZT1Fcy5jdXJyZW50O3JldHVybiBFcy5jdXJyZW50PXhhLG51bGw9PT1lP3hhOmV9ZnVuY3Rpb24gd3UoZSx0KXt2YXIgbj1TcztTc3w9MTY7dmFyIHI9YnUoKTtmb3Ioa3M9PT1lJiZBcz09PXR8fHl1KGUsdCk7Oyl0cnl7T3UoKTticmVha31jYXRjaChvKXttdShlLG8pfWlmKEpvKCksU3M9bixFcy5jdXJyZW50PXIsbnVsbCE9PXhzKXRocm93IEVycm9yKGEoMjYxKSk7cmV0dXJuIGtzPW51bGwsQXM9MCxQc31mdW5jdGlvbiBPdSgpe2Zvcig7bnVsbCE9PXhzOylFdSh4cyl9ZnVuY3Rpb24gX3UoKXtmb3IoO251bGwhPT14cyYmIUNvKCk7KUV1KHhzKX1mdW5jdGlvbiBFdShlKXt2YXIgdD16cyhlLmFsdGVybmF0ZSxlLGpzKTtlLm1lbW9pemVkUHJvcHM9ZS5wZW5kaW5nUHJvcHMsbnVsbD09PXQ/Q3UoZSk6eHM9dCxDcy5jdXJyZW50PW51bGx9ZnVuY3Rpb24gQ3UoZSl7dmFyIHQ9ZTtkb3t2YXIgbj10LmFsdGVybmF0ZTtpZihlPXQucmV0dXJuLDA9PT0oMjA0OCZ0LmZsYWdzKSl7aWYobnVsbCE9PShuPW5zKG4sdCxqcykpKXJldHVybiB2b2lkKHhzPW4pO2lmKDI0IT09KG49dCkudGFnJiYyMyE9PW4udGFnfHxudWxsPT09bi5tZW1vaXplZFN0YXRlfHwwIT09KDEwNzM3NDE4MjQmanMpfHwwPT09KDQmbi5tb2RlKSl7Zm9yKHZhciByPTAsbz1uLmNoaWxkO251bGwhPT1vOylyfD1vLmxhbmVzfG8uY2hpbGRMYW5lcyxvPW8uc2libGluZztuLmNoaWxkTGFuZXM9cn1udWxsIT09ZSYmMD09PSgyMDQ4JmUuZmxhZ3MpJiYobnVsbD09PWUuZmlyc3RFZmZlY3QmJihlLmZpcnN0RWZmZWN0PXQuZmlyc3RFZmZlY3QpLG51bGwhPT10Lmxhc3RFZmZlY3QmJihudWxsIT09ZS5sYXN0RWZmZWN0JiYoZS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9dC5maXJzdEVmZmVjdCksZS5sYXN0RWZmZWN0PXQubGFzdEVmZmVjdCksMTx0LmZsYWdzJiYobnVsbCE9PWUubGFzdEVmZmVjdD9lLmxhc3RFZmZlY3QubmV4dEVmZmVjdD10OmUuZmlyc3RFZmZlY3Q9dCxlLmxhc3RFZmZlY3Q9dCkpfWVsc2V7aWYobnVsbCE9PShuPXJzKHQpKSlyZXR1cm4gbi5mbGFncyY9MjA0Nyx2b2lkKHhzPW4pO251bGwhPT1lJiYoZS5maXJzdEVmZmVjdD1lLmxhc3RFZmZlY3Q9bnVsbCxlLmZsYWdzfD0yMDQ4KX1pZihudWxsIT09KHQ9dC5zaWJsaW5nKSlyZXR1cm4gdm9pZCh4cz10KTt4cz10PWV9d2hpbGUobnVsbCE9PXQpOzA9PT1QcyYmKFBzPTUpfWZ1bmN0aW9uIFN1KGUpe3ZhciB0PVVvKCk7cmV0dXJuIFZvKDk5LGt1LmJpbmQobnVsbCxlLHQpKSxudWxsfWZ1bmN0aW9uIGt1KGUsdCl7ZG97QXUoKX13aGlsZShudWxsIT09WXMpO2lmKDAhPT0oNDgmU3MpKXRocm93IEVycm9yKGEoMzI3KSk7dmFyIG49ZS5maW5pc2hlZFdvcms7aWYobnVsbD09PW4pcmV0dXJuIG51bGw7aWYoZS5maW5pc2hlZFdvcms9bnVsbCxlLmZpbmlzaGVkTGFuZXM9MCxuPT09ZS5jdXJyZW50KXRocm93IEVycm9yKGEoMTc3KSk7ZS5jYWxsYmFja05vZGU9bnVsbDt2YXIgcj1uLmxhbmVzfG4uY2hpbGRMYW5lcyxvPXIsaT1lLnBlbmRpbmdMYW5lcyZ+bztlLnBlbmRpbmdMYW5lcz1vLGUuc3VzcGVuZGVkTGFuZXM9MCxlLnBpbmdlZExhbmVzPTAsZS5leHBpcmVkTGFuZXMmPW8sZS5tdXRhYmxlUmVhZExhbmVzJj1vLGUuZW50YW5nbGVkTGFuZXMmPW8sbz1lLmVudGFuZ2xlbWVudHM7Zm9yKHZhciBzPWUuZXZlbnRUaW1lcyx1PWUuZXhwaXJhdGlvblRpbWVzOzA8aTspe3ZhciBjPTMxLUh0KGkpLGw9MTw8YztvW2NdPTAsc1tjXT0tMSx1W2NdPS0xLGkmPX5sfWlmKG51bGwhPT1RcyYmMD09PSgyNCZyKSYmUXMuaGFzKGUpJiZRcy5kZWxldGUoZSksZT09PWtzJiYoeHM9a3M9bnVsbCxBcz0wKSwxPG4uZmxhZ3M/bnVsbCE9PW4ubGFzdEVmZmVjdD8obi5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9bixyPW4uZmlyc3RFZmZlY3QpOnI9bjpyPW4uZmlyc3RFZmZlY3QsbnVsbCE9PXIpe2lmKG89U3MsU3N8PTMyLENzLmN1cnJlbnQ9bnVsbCxMcj1HdCxkcihzPWZyKCkpKXtpZigic2VsZWN0aW9uU3RhcnQiaW4gcyl1PXtzdGFydDpzLnNlbGVjdGlvblN0YXJ0LGVuZDpzLnNlbGVjdGlvbkVuZH07ZWxzZSBlOmlmKHU9KHU9cy5vd25lckRvY3VtZW50KSYmdS5kZWZhdWx0Vmlld3x8d2luZG93LChsPXUuZ2V0U2VsZWN0aW9uJiZ1LmdldFNlbGVjdGlvbigpKSYmMCE9PWwucmFuZ2VDb3VudCl7dT1sLmFuY2hvck5vZGUsaT1sLmFuY2hvck9mZnNldCxjPWwuZm9jdXNOb2RlLGw9bC5mb2N1c09mZnNldDt0cnl7dS5ub2RlVHlwZSxjLm5vZGVUeXBlfWNhdGNoKGspe3U9bnVsbDticmVhayBlfXZhciBmPTAsZD0tMSxwPS0xLGg9MCx2PTAsZz1zLHk9bnVsbDt0OmZvcig7Oyl7Zm9yKHZhciBtO2chPT11fHwwIT09aSYmMyE9PWcubm9kZVR5cGV8fChkPWYraSksZyE9PWN8fDAhPT1sJiYzIT09Zy5ub2RlVHlwZXx8KHA9ZitsKSwzPT09Zy5ub2RlVHlwZSYmKGYrPWcubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PShtPWcuZmlyc3RDaGlsZCk7KXk9ZyxnPW07Zm9yKDs7KXtpZihnPT09cylicmVhayB0O2lmKHk9PT11JiYrK2g9PT1pJiYoZD1mKSx5PT09YyYmKyt2PT09bCYmKHA9ZiksbnVsbCE9PShtPWcubmV4dFNpYmxpbmcpKWJyZWFrO3k9KGc9eSkucGFyZW50Tm9kZX1nPW19dT0tMT09PWR8fC0xPT09cD9udWxsOntzdGFydDpkLGVuZDpwfX1lbHNlIHU9bnVsbDt1PXV8fHtzdGFydDowLGVuZDowfX1lbHNlIHU9bnVsbDtGcj17Zm9jdXNlZEVsZW06cyxzZWxlY3Rpb25SYW5nZTp1fSxHdD0hMSxydT1udWxsLG91PSExLFZzPXI7ZG97dHJ5e3h1KCl9Y2F0Y2goayl7aWYobnVsbD09PVZzKXRocm93IEVycm9yKGEoMzMwKSk7UnUoVnMsayksVnM9VnMubmV4dEVmZmVjdH19d2hpbGUobnVsbCE9PVZzKTtydT1udWxsLFZzPXI7ZG97dHJ5e2ZvcihzPWU7bnVsbCE9PVZzOyl7dmFyIGI9VnMuZmxhZ3M7aWYoMTYmYiYmeWUoVnMuc3RhdGVOb2RlLCIiKSwxMjgmYil7dmFyIHc9VnMuYWx0ZXJuYXRlO2lmKG51bGwhPT13KXt2YXIgTz13LnJlZjtudWxsIT09TyYmKCJmdW5jdGlvbiI9PT10eXBlb2YgTz9PKG51bGwpOk8uY3VycmVudD1udWxsKX19c3dpdGNoKDEwMzgmYil7Y2FzZSAyOnlzKFZzKSxWcy5mbGFncyY9LTM7YnJlYWs7Y2FzZSA2OnlzKFZzKSxWcy5mbGFncyY9LTMsYnMoVnMuYWx0ZXJuYXRlLFZzKTticmVhaztjYXNlIDEwMjQ6VnMuZmxhZ3MmPS0xMDI1O2JyZWFrO2Nhc2UgMTAyODpWcy5mbGFncyY9LTEwMjUsYnMoVnMuYWx0ZXJuYXRlLFZzKTticmVhaztjYXNlIDQ6YnMoVnMuYWx0ZXJuYXRlLFZzKTticmVhaztjYXNlIDg6bXMocyx1PVZzKTt2YXIgXz11LmFsdGVybmF0ZTt2cyh1KSxudWxsIT09XyYmdnMoXyl9VnM9VnMubmV4dEVmZmVjdH19Y2F0Y2goayl7aWYobnVsbD09PVZzKXRocm93IEVycm9yKGEoMzMwKSk7UnUoVnMsayksVnM9VnMubmV4dEVmZmVjdH19d2hpbGUobnVsbCE9PVZzKTtpZihPPUZyLHc9ZnIoKSxiPU8uZm9jdXNlZEVsZW0scz1PLnNlbGVjdGlvblJhbmdlLHchPT1iJiZiJiZiLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxuKXtyZXR1cm4hKCF0fHwhbikmJih0PT09bnx8KCF0fHwzIT09dC5ub2RlVHlwZSkmJihuJiYzPT09bi5ub2RlVHlwZT9lKHQsbi5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gdD90LmNvbnRhaW5zKG4pOiEhdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmISEoMTYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuKSkpKX0oYi5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxiKSl7bnVsbCE9PXMmJmRyKGIpJiYodz1zLnN0YXJ0LHZvaWQgMD09PShPPXMuZW5kKSYmKE89dyksInNlbGVjdGlvblN0YXJ0ImluIGI/KGIuc2VsZWN0aW9uU3RhcnQ9dyxiLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihPLGIudmFsdWUubGVuZ3RoKSk6KE89KHc9Yi5vd25lckRvY3VtZW50fHxkb2N1bWVudCkmJncuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uJiYoTz1PLmdldFNlbGVjdGlvbigpLHU9Yi50ZXh0Q29udGVudC5sZW5ndGgsXz1NYXRoLm1pbihzLnN0YXJ0LHUpLHM9dm9pZCAwPT09cy5lbmQ/XzpNYXRoLm1pbihzLmVuZCx1KSwhTy5leHRlbmQmJl8+cyYmKHU9cyxzPV8sXz11KSx1PWxyKGIsXyksaT1scihiLHMpLHUmJmkmJigxIT09Ty5yYW5nZUNvdW50fHxPLmFuY2hvck5vZGUhPT11Lm5vZGV8fE8uYW5jaG9yT2Zmc2V0IT09dS5vZmZzZXR8fE8uZm9jdXNOb2RlIT09aS5ub2RlfHxPLmZvY3VzT2Zmc2V0IT09aS5vZmZzZXQpJiYoKHc9dy5jcmVhdGVSYW5nZSgpKS5zZXRTdGFydCh1Lm5vZGUsdS5vZmZzZXQpLE8ucmVtb3ZlQWxsUmFuZ2VzKCksXz5zPyhPLmFkZFJhbmdlKHcpLE8uZXh0ZW5kKGkubm9kZSxpLm9mZnNldCkpOih3LnNldEVuZChpLm5vZGUsaS5vZmZzZXQpLE8uYWRkUmFuZ2UodykpKSkpLHc9W107Zm9yKE89YjtPPU8ucGFyZW50Tm9kZTspMT09PU8ubm9kZVR5cGUmJncucHVzaCh7ZWxlbWVudDpPLGxlZnQ6Ty5zY3JvbGxMZWZ0LHRvcDpPLnNjcm9sbFRvcH0pO2ZvcigiZnVuY3Rpb24iPT09dHlwZW9mIGIuZm9jdXMmJmIuZm9jdXMoKSxiPTA7Yjx3Lmxlbmd0aDtiKyspKE89d1tiXSkuZWxlbWVudC5zY3JvbGxMZWZ0PU8ubGVmdCxPLmVsZW1lbnQuc2Nyb2xsVG9wPU8udG9wfUd0PSEhTHIsRnI9THI9bnVsbCxlLmN1cnJlbnQ9bixWcz1yO2Rve3RyeXtmb3IoYj1lO251bGwhPT1Wczspe3ZhciBFPVZzLmZsYWdzO2lmKDM2JkUmJmRzKGIsVnMuYWx0ZXJuYXRlLFZzKSwxMjgmRSl7dz12b2lkIDA7dmFyIEM9VnMucmVmO2lmKG51bGwhPT1DKXt2YXIgUz1Wcy5zdGF0ZU5vZGU7c3dpdGNoKFZzLnRhZyl7Y2FzZSA1Onc9UzticmVhaztkZWZhdWx0Onc9U30iZnVuY3Rpb24iPT09dHlwZW9mIEM/Qyh3KTpDLmN1cnJlbnQ9d319VnM9VnMubmV4dEVmZmVjdH19Y2F0Y2goayl7aWYobnVsbD09PVZzKXRocm93IEVycm9yKGEoMzMwKSk7UnUoVnMsayksVnM9VnMubmV4dEVmZmVjdH19d2hpbGUobnVsbCE9PVZzKTtWcz1udWxsLERvKCksU3M9b31lbHNlIGUuY3VycmVudD1uO2lmKCRzKSRzPSExLFlzPWUsR3M9dDtlbHNlIGZvcihWcz1yO251bGwhPT1WczspdD1Wcy5uZXh0RWZmZWN0LFZzLm5leHRFZmZlY3Q9bnVsbCw4JlZzLmZsYWdzJiYoKEU9VnMpLnNpYmxpbmc9bnVsbCxFLnN0YXRlTm9kZT1udWxsKSxWcz10O2lmKDA9PT0ocj1lLnBlbmRpbmdMYW5lcykmJihxcz1udWxsKSwxPT09cj9lPT09WnM/SnMrKzooSnM9MCxacz1lKTpKcz0wLG49bi5zdGF0ZU5vZGUsd28mJiJmdW5jdGlvbiI9PT10eXBlb2Ygd28ub25Db21taXRGaWJlclJvb3QpdHJ5e3dvLm9uQ29tbWl0RmliZXJSb290KGJvLG4sdm9pZCAwLDY0PT09KDY0Jm4uY3VycmVudC5mbGFncykpfWNhdGNoKGspe31pZihjdShlLEJvKCkpLEhzKXRocm93IEhzPSExLGU9V3MsV3M9bnVsbCxlO3JldHVybiAwIT09KDgmU3MpfHxXbygpLG51bGx9ZnVuY3Rpb24geHUoKXtmb3IoO251bGwhPT1Wczspe3ZhciBlPVZzLmFsdGVybmF0ZTtvdXx8bnVsbD09PXJ1fHwoMCE9PSg4JlZzLmZsYWdzKT9aZShWcyxydSkmJihvdT0hMCk6MTM9PT1Wcy50YWcmJk9zKGUsVnMpJiZaZShWcyxydSkmJihvdT0hMCkpO3ZhciB0PVZzLmZsYWdzOzAhPT0oMjU2JnQpJiZmcyhlLFZzKSwwPT09KDUxMiZ0KXx8JHN8fCgkcz0hMCxIbyg5NywoZnVuY3Rpb24oKXtyZXR1cm4gQXUoKSxudWxsfSkpKSxWcz1Wcy5uZXh0RWZmZWN0fX1mdW5jdGlvbiBBdSgpe2lmKDkwIT09R3Mpe3ZhciBlPTk3PEdzPzk3OkdzO3JldHVybiBHcz05MCxWbyhlLFB1KX1yZXR1cm4hMX1mdW5jdGlvbiBqdShlLHQpe0tzLnB1c2godCxlKSwkc3x8KCRzPSEwLEhvKDk3LChmdW5jdGlvbigpe3JldHVybiBBdSgpLG51bGx9KSkpfWZ1bmN0aW9uIFR1KGUsdCl7WHMucHVzaCh0LGUpLCRzfHwoJHM9ITAsSG8oOTcsKGZ1bmN0aW9uKCl7cmV0dXJuIEF1KCksbnVsbH0pKSl9ZnVuY3Rpb24gUHUoKXtpZihudWxsPT09WXMpcmV0dXJuITE7dmFyIGU9WXM7aWYoWXM9bnVsbCwwIT09KDQ4JlNzKSl0aHJvdyBFcnJvcihhKDMzMSkpO3ZhciB0PVNzO1NzfD0zMjt2YXIgbj1YcztYcz1bXTtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrPTIpe3ZhciBvPW5bcl0saT1uW3IrMV0scz1vLmRlc3Ryb3k7aWYoby5kZXN0cm95PXZvaWQgMCwiZnVuY3Rpb24iPT09dHlwZW9mIHMpdHJ5e3MoKX1jYXRjaChjKXtpZihudWxsPT09aSl0aHJvdyBFcnJvcihhKDMzMCkpO1J1KGksYyl9fWZvcihuPUtzLEtzPVtdLHI9MDtyPG4ubGVuZ3RoO3IrPTIpe289bltyXSxpPW5bcisxXTt0cnl7dmFyIHU9by5jcmVhdGU7by5kZXN0cm95PXUoKX1jYXRjaChjKXtpZihudWxsPT09aSl0aHJvdyBFcnJvcihhKDMzMCkpO1J1KGksYyl9fWZvcih1PWUuY3VycmVudC5maXJzdEVmZmVjdDtudWxsIT09dTspZT11Lm5leHRFZmZlY3QsdS5uZXh0RWZmZWN0PW51bGwsOCZ1LmZsYWdzJiYodS5zaWJsaW5nPW51bGwsdS5zdGF0ZU5vZGU9bnVsbCksdT1lO3JldHVybiBTcz10LFdvKCksITB9ZnVuY3Rpb24gSXUoZSx0LG4pe3NpKGUsdD1zcygwLHQ9b3Mobix0KSwxKSksdD1pdSgpLG51bGwhPT0oZT11dShlLDEpKSYmKFZ0KGUsMSx0KSxjdShlLHQpKX1mdW5jdGlvbiBSdShlLHQpe2lmKDM9PT1lLnRhZylJdShlLGUsdCk7ZWxzZSBmb3IodmFyIG49ZS5yZXR1cm47bnVsbCE9PW47KXtpZigzPT09bi50YWcpe0l1KG4sZSx0KTticmVha31pZigxPT09bi50YWcpe3ZhciByPW4uc3RhdGVOb2RlO2lmKCJmdW5jdGlvbiI9PT10eXBlb2Ygbi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8ImZ1bmN0aW9uIj09PXR5cGVvZiByLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PXFzfHwhcXMuaGFzKHIpKSl7dmFyIG89dXMobixlPW9zKHQsZSksMSk7aWYoc2kobixvKSxvPWl1KCksbnVsbCE9PShuPXV1KG4sMSkpKVZ0KG4sMSxvKSxjdShuLG8pO2Vsc2UgaWYoImZ1bmN0aW9uIj09PXR5cGVvZiByLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PXFzfHwhcXMuaGFzKHIpKSl0cnl7ci5jb21wb25lbnREaWRDYXRjaCh0LGUpfWNhdGNoKGkpe31icmVha319bj1uLnJldHVybn19ZnVuY3Rpb24gRHUoZSx0LG4pe3ZhciByPWUucGluZ0NhY2hlO251bGwhPT1yJiZyLmRlbGV0ZSh0KSx0PWl1KCksZS5waW5nZWRMYW5lc3w9ZS5zdXNwZW5kZWRMYW5lcyZuLGtzPT09ZSYmKEFzJm4pPT09biYmKDQ9PT1Qc3x8Mz09PVBzJiYoNjI5MTQ1NjAmQXMpPT09QXMmJjUwMD5CbygpLU1zP3l1KGUsMCk6THN8PW4pLGN1KGUsdCl9ZnVuY3Rpb24gTnUoZSx0KXt2YXIgbj1lLnN0YXRlTm9kZTtudWxsIT09biYmbi5kZWxldGUodCksMD09PSh0PTApJiYoMD09PSgyJih0PWUubW9kZSkpP3Q9MTowPT09KDQmdCk/dD05OT09PVVvKCk/MToyOigwPT09dHUmJih0dT1ScyksMD09PSh0PVV0KDYyOTE0NTYwJn50dSkpJiYodD00MTk0MzA0KSkpLG49aXUoKSxudWxsIT09KGU9dXUoZSx0KSkmJihWdChlLHQsbiksY3UoZSxuKSl9ZnVuY3Rpb24gTHUoZSx0LG4scil7dGhpcy50YWc9ZSx0aGlzLmtleT1uLHRoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGwsdGhpcy5pbmRleD0wLHRoaXMucmVmPW51bGwsdGhpcy5wZW5kaW5nUHJvcHM9dCx0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbCx0aGlzLm1vZGU9cix0aGlzLmZsYWdzPTAsdGhpcy5sYXN0RWZmZWN0PXRoaXMuZmlyc3RFZmZlY3Q9dGhpcy5uZXh0RWZmZWN0PW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIEZ1KGUsdCxuLHIpe3JldHVybiBuZXcgTHUoZSx0LG4scil9ZnVuY3Rpb24gTXUoZSl7cmV0dXJuISghKGU9ZS5wcm90b3R5cGUpfHwhZS5pc1JlYWN0Q29tcG9uZW50KX1mdW5jdGlvbiBCdShlLHQpe3ZhciBuPWUuYWx0ZXJuYXRlO3JldHVybiBudWxsPT09bj8oKG49RnUoZS50YWcsdCxlLmtleSxlLm1vZGUpKS5lbGVtZW50VHlwZT1lLmVsZW1lbnRUeXBlLG4udHlwZT1lLnR5cGUsbi5zdGF0ZU5vZGU9ZS5zdGF0ZU5vZGUsbi5hbHRlcm5hdGU9ZSxlLmFsdGVybmF0ZT1uKToobi5wZW5kaW5nUHJvcHM9dCxuLnR5cGU9ZS50eXBlLG4uZmxhZ3M9MCxuLm5leHRFZmZlY3Q9bnVsbCxuLmZpcnN0RWZmZWN0PW51bGwsbi5sYXN0RWZmZWN0PW51bGwpLG4uY2hpbGRMYW5lcz1lLmNoaWxkTGFuZXMsbi5sYW5lcz1lLmxhbmVzLG4uY2hpbGQ9ZS5jaGlsZCxuLm1lbW9pemVkUHJvcHM9ZS5tZW1vaXplZFByb3BzLG4ubWVtb2l6ZWRTdGF0ZT1lLm1lbW9pemVkU3RhdGUsbi51cGRhdGVRdWV1ZT1lLnVwZGF0ZVF1ZXVlLHQ9ZS5kZXBlbmRlbmNpZXMsbi5kZXBlbmRlbmNpZXM9bnVsbD09PXQ/bnVsbDp7bGFuZXM6dC5sYW5lcyxmaXJzdENvbnRleHQ6dC5maXJzdENvbnRleHR9LG4uc2libGluZz1lLnNpYmxpbmcsbi5pbmRleD1lLmluZGV4LG4ucmVmPWUucmVmLG59ZnVuY3Rpb24gVXUoZSx0LG4scixvLGkpe3ZhciBzPTI7aWYocj1lLCJmdW5jdGlvbiI9PT10eXBlb2YgZSlNdShlKSYmKHM9MSk7ZWxzZSBpZigic3RyaW5nIj09PXR5cGVvZiBlKXM9NTtlbHNlIGU6c3dpdGNoKGUpe2Nhc2UgQzpyZXR1cm4genUobi5jaGlsZHJlbixvLGksdCk7Y2FzZSBMOnM9OCxvfD0xNjticmVhaztjYXNlIFM6cz04LG98PTE7YnJlYWs7Y2FzZSBrOnJldHVybihlPUZ1KDEyLG4sdCw4fG8pKS5lbGVtZW50VHlwZT1rLGUudHlwZT1rLGUubGFuZXM9aSxlO2Nhc2UgVDpyZXR1cm4oZT1GdSgxMyxuLHQsbykpLnR5cGU9VCxlLmVsZW1lbnRUeXBlPVQsZS5sYW5lcz1pLGU7Y2FzZSBQOnJldHVybihlPUZ1KDE5LG4sdCxvKSkuZWxlbWVudFR5cGU9UCxlLmxhbmVzPWksZTtjYXNlIEY6cmV0dXJuIFZ1KG4sbyxpLHQpO2Nhc2UgTTpyZXR1cm4oZT1GdSgyNCxuLHQsbykpLmVsZW1lbnRUeXBlPU0sZS5sYW5lcz1pLGU7ZGVmYXVsdDppZigib2JqZWN0Ij09PXR5cGVvZiBlJiZudWxsIT09ZSlzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSB4OnM9MTA7YnJlYWsgZTtjYXNlIEE6cz05O2JyZWFrIGU7Y2FzZSBqOnM9MTE7YnJlYWsgZTtjYXNlIEk6cz0xNDticmVhayBlO2Nhc2UgUjpzPTE2LHI9bnVsbDticmVhayBlO2Nhc2UgRDpzPTIyO2JyZWFrIGV9dGhyb3cgRXJyb3IoYSgxMzAsbnVsbD09ZT9lOnR5cGVvZiBlLCIiKSl9cmV0dXJuKHQ9RnUocyxuLHQsbykpLmVsZW1lbnRUeXBlPWUsdC50eXBlPXIsdC5sYW5lcz1pLHR9ZnVuY3Rpb24genUoZSx0LG4scil7cmV0dXJuKGU9RnUoNyxlLHIsdCkpLmxhbmVzPW4sZX1mdW5jdGlvbiBWdShlLHQsbixyKXtyZXR1cm4oZT1GdSgyMyxlLHIsdCkpLmVsZW1lbnRUeXBlPUYsZS5sYW5lcz1uLGV9ZnVuY3Rpb24gSHUoZSx0LG4pe3JldHVybihlPUZ1KDYsZSxudWxsLHQpKS5sYW5lcz1uLGV9ZnVuY3Rpb24gV3UoZSx0LG4pe3JldHVybih0PUZ1KDQsbnVsbCE9PWUuY2hpbGRyZW4/ZS5jaGlsZHJlbjpbXSxlLmtleSx0KSkubGFuZXM9bix0LnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzplLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246ZS5pbXBsZW1lbnRhdGlvbn0sdH1mdW5jdGlvbiBxdShlLHQsbil7dGhpcy50YWc9dCx0aGlzLmNvbnRhaW5lckluZm89ZSx0aGlzLmZpbmlzaGVkV29yaz10aGlzLnBpbmdDYWNoZT10aGlzLmN1cnJlbnQ9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbCx0aGlzLnRpbWVvdXRIYW5kbGU9LTEsdGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9bnVsbCx0aGlzLmh5ZHJhdGU9bix0aGlzLmNhbGxiYWNrTm9kZT1udWxsLHRoaXMuY2FsbGJhY2tQcmlvcml0eT0wLHRoaXMuZXZlbnRUaW1lcz16dCgwKSx0aGlzLmV4cGlyYXRpb25UaW1lcz16dCgtMSksdGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLmZpbmlzaGVkTGFuZXM9dGhpcy5tdXRhYmxlUmVhZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wLHRoaXMuZW50YW5nbGVtZW50cz16dCgwKSx0aGlzLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9bnVsbH1mdW5jdGlvbiAkdShlLHQsbil7dmFyIHI9Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOm51bGw7cmV0dXJueyQkdHlwZW9mOkUsa2V5Om51bGw9PXI/bnVsbDoiIityLGNoaWxkcmVuOmUsY29udGFpbmVySW5mbzp0LGltcGxlbWVudGF0aW9uOm59fWZ1bmN0aW9uIFl1KGUsdCxuLHIpe3ZhciBvPXQuY3VycmVudCxpPWl1KCkscz1hdShvKTtlOmlmKG4pe3Q6e2lmKEtlKG49bi5fcmVhY3RJbnRlcm5hbHMpIT09bnx8MSE9PW4udGFnKXRocm93IEVycm9yKGEoMTcwKSk7dmFyIHU9bjtkb3tzd2l0Y2godS50YWcpe2Nhc2UgMzp1PXUuc3RhdGVOb2RlLmNvbnRleHQ7YnJlYWsgdDtjYXNlIDE6aWYocG8odS50eXBlKSl7dT11LnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDticmVhayB0fX11PXUucmV0dXJufXdoaWxlKG51bGwhPT11KTt0aHJvdyBFcnJvcihhKDE3MSkpfWlmKDE9PT1uLnRhZyl7dmFyIGM9bi50eXBlO2lmKHBvKGMpKXtuPWdvKG4sYyx1KTticmVhayBlfX1uPXV9ZWxzZSBuPXNvO3JldHVybiBudWxsPT09dC5jb250ZXh0P3QuY29udGV4dD1uOnQucGVuZGluZ0NvbnRleHQ9biwodD1haShpLHMpKS5wYXlsb2FkPXtlbGVtZW50OmV9LG51bGwhPT0ocj12b2lkIDA9PT1yP251bGw6cikmJih0LmNhbGxiYWNrPXIpLHNpKG8sdCksc3UobyxzLGkpLHN9ZnVuY3Rpb24gR3UoZSl7aWYoIShlPWUuY3VycmVudCkuY2hpbGQpcmV0dXJuIG51bGw7c3dpdGNoKGUuY2hpbGQudGFnKXtjYXNlIDU6ZGVmYXVsdDpyZXR1cm4gZS5jaGlsZC5zdGF0ZU5vZGV9fWZ1bmN0aW9uIEt1KGUsdCl7aWYobnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1lLmRlaHlkcmF0ZWQpe3ZhciBuPWUucmV0cnlMYW5lO2UucmV0cnlMYW5lPTAhPT1uJiZuPHQ/bjp0fX1mdW5jdGlvbiBYdShlLHQpe0t1KGUsdCksKGU9ZS5hbHRlcm5hdGUpJiZLdShlLHQpfWZ1bmN0aW9uIFF1KGUsdCxuKXt2YXIgcj1udWxsIT1uJiZudWxsIT1uLmh5ZHJhdGlvbk9wdGlvbnMmJm4uaHlkcmF0aW9uT3B0aW9ucy5tdXRhYmxlU291cmNlc3x8bnVsbDtpZihuPW5ldyBxdShlLHQsbnVsbCE9biYmITA9PT1uLmh5ZHJhdGUpLHQ9RnUoMyxudWxsLG51bGwsMj09PXQ/NzoxPT09dD8zOjApLG4uY3VycmVudD10LHQuc3RhdGVOb2RlPW4sb2kodCksZVtLcl09bi5jdXJyZW50LHhyKDg9PT1lLm5vZGVUeXBlP2UucGFyZW50Tm9kZTplKSxyKWZvcihlPTA7ZTxyLmxlbmd0aDtlKyspe3ZhciBvPSh0PXJbZV0pLl9nZXRWZXJzaW9uO289byh0Ll9zb3VyY2UpLG51bGw9PW4ubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT9uLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9W3Qsb106bi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLnB1c2godCxvKX10aGlzLl9pbnRlcm5hbFJvb3Q9bn1mdW5jdGlvbiBKdShlKXtyZXR1cm4hKCFlfHwxIT09ZS5ub2RlVHlwZSYmOSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZSYmKDghPT1lLm5vZGVUeXBlfHwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlICIhPT1lLm5vZGVWYWx1ZSkpfWZ1bmN0aW9uIFp1KGUsdCxuLHIsbyl7dmFyIGk9bi5fcmVhY3RSb290Q29udGFpbmVyO2lmKGkpe3ZhciBhPWkuX2ludGVybmFsUm9vdDtpZigiZnVuY3Rpb24iPT09dHlwZW9mIG8pe3ZhciBzPW87bz1mdW5jdGlvbigpe3ZhciBlPUd1KGEpO3MuY2FsbChlKX19WXUodCxhLGUsbyl9ZWxzZXtpZihpPW4uX3JlYWN0Um9vdENvbnRhaW5lcj1mdW5jdGlvbihlLHQpe2lmKHR8fCh0PSEoISh0PWU/OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZS5maXJzdENoaWxkOm51bGwpfHwxIT09dC5ub2RlVHlwZXx8IXQuaGFzQXR0cmlidXRlKCJkYXRhLXJlYWN0cm9vdCIpKSksIXQpZm9yKHZhciBuO249ZS5sYXN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQobik7cmV0dXJuIG5ldyBRdShlLDAsdD97aHlkcmF0ZTohMH06dm9pZCAwKX0obixyKSxhPWkuX2ludGVybmFsUm9vdCwiZnVuY3Rpb24iPT09dHlwZW9mIG8pe3ZhciB1PW87bz1mdW5jdGlvbigpe3ZhciBlPUd1KGEpO3UuY2FsbChlKX19aHUoKGZ1bmN0aW9uKCl7WXUodCxhLGUsbyl9KSl9cmV0dXJuIEd1KGEpfWZ1bmN0aW9uIGVjKGUsdCl7dmFyIG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIUp1KHQpKXRocm93IEVycm9yKGEoMjAwKSk7cmV0dXJuICR1KGUsdCxudWxsLG4pfXpzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LmxhbmVzO2lmKG51bGwhPT1lKWlmKGUubWVtb2l6ZWRQcm9wcyE9PXQucGVuZGluZ1Byb3BzfHxjby5jdXJyZW50KUlhPSEwO2Vsc2V7aWYoMD09PShuJnIpKXtzd2l0Y2goSWE9ITEsdC50YWcpe2Nhc2UgMzpWYSh0KSxIaSgpO2JyZWFrO2Nhc2UgNTpQaSh0KTticmVhaztjYXNlIDE6cG8odC50eXBlKSYmeW8odCk7YnJlYWs7Y2FzZSA0OmppKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpyPXQubWVtb2l6ZWRQcm9wcy52YWx1ZTt2YXIgbz10LnR5cGUuX2NvbnRleHQ7YW8oR28sby5fY3VycmVudFZhbHVlKSxvLl9jdXJyZW50VmFsdWU9cjticmVhaztjYXNlIDEzOmlmKG51bGwhPT10Lm1lbW9pemVkU3RhdGUpcmV0dXJuIDAhPT0obiZ0LmNoaWxkLmNoaWxkTGFuZXMpP1lhKGUsdCxuKTooYW8oUmksMSZSaS5jdXJyZW50KSxudWxsIT09KHQ9ZXMoZSx0LG4pKT90LnNpYmxpbmc6bnVsbCk7YW8oUmksMSZSaS5jdXJyZW50KTticmVhaztjYXNlIDE5OmlmKHI9MCE9PShuJnQuY2hpbGRMYW5lcyksMCE9PSg2NCZlLmZsYWdzKSl7aWYocilyZXR1cm4gWmEoZSx0LG4pO3QuZmxhZ3N8PTY0fWlmKG51bGwhPT0obz10Lm1lbW9pemVkU3RhdGUpJiYoby5yZW5kZXJpbmc9bnVsbCxvLnRhaWw9bnVsbCxvLmxhc3RFZmZlY3Q9bnVsbCksYW8oUmksUmkuY3VycmVudCkscilicmVhaztyZXR1cm4gbnVsbDtjYXNlIDIzOmNhc2UgMjQ6cmV0dXJuIHQubGFuZXM9MCxGYShlLHQsbil9cmV0dXJuIGVzKGUsdCxuKX1JYT0wIT09KDE2Mzg0JmUuZmxhZ3MpfWVsc2UgSWE9ITE7c3dpdGNoKHQubGFuZXM9MCx0LnRhZyl7Y2FzZSAyOmlmKHI9dC50eXBlLG51bGwhPT1lJiYoZS5hbHRlcm5hdGU9bnVsbCx0LmFsdGVybmF0ZT1udWxsLHQuZmxhZ3N8PTIpLGU9dC5wZW5kaW5nUHJvcHMsbz1mbyh0LHVvLmN1cnJlbnQpLHRpKHQsbiksbz1uYShudWxsLHQscixlLG8sbiksdC5mbGFnc3w9MSwib2JqZWN0Ij09PXR5cGVvZiBvJiZudWxsIT09byYmImZ1bmN0aW9uIj09PXR5cGVvZiBvLnJlbmRlciYmdm9pZCAwPT09by4kJHR5cGVvZil7aWYodC50YWc9MSx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnVwZGF0ZVF1ZXVlPW51bGwscG8ocikpe3ZhciBpPSEwO3lvKHQpfWVsc2UgaT0hMTt0Lm1lbW9pemVkU3RhdGU9bnVsbCE9PW8uc3RhdGUmJnZvaWQgMCE9PW8uc3RhdGU/by5zdGF0ZTpudWxsLG9pKHQpO3ZhciBzPXIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOyJmdW5jdGlvbiI9PT10eXBlb2YgcyYmZGkodCxyLHMsZSksby51cGRhdGVyPXBpLHQuc3RhdGVOb2RlPW8sby5fcmVhY3RJbnRlcm5hbHM9dCx5aSh0LHIsZSxuKSx0PXphKG51bGwsdCxyLCEwLGksbil9ZWxzZSB0LnRhZz0wLFJhKG51bGwsdCxvLG4pLHQ9dC5jaGlsZDtyZXR1cm4gdDtjYXNlIDE2Om89dC5lbGVtZW50VHlwZTtlOntzd2l0Y2gobnVsbCE9PWUmJihlLmFsdGVybmF0ZT1udWxsLHQuYWx0ZXJuYXRlPW51bGwsdC5mbGFnc3w9MiksZT10LnBlbmRpbmdQcm9wcyxvPShpPW8uX2luaXQpKG8uX3BheWxvYWQpLHQudHlwZT1vLGk9dC50YWc9ZnVuY3Rpb24oZSl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBlKXJldHVybiBNdShlKT8xOjA7aWYodm9pZCAwIT09ZSYmbnVsbCE9PWUpe2lmKChlPWUuJCR0eXBlb2YpPT09ailyZXR1cm4gMTE7aWYoZT09PUkpcmV0dXJuIDE0fXJldHVybiAyfShvKSxlPVlvKG8sZSksaSl7Y2FzZSAwOnQ9QmEobnVsbCx0LG8sZSxuKTticmVhayBlO2Nhc2UgMTp0PVVhKG51bGwsdCxvLGUsbik7YnJlYWsgZTtjYXNlIDExOnQ9RGEobnVsbCx0LG8sZSxuKTticmVhayBlO2Nhc2UgMTQ6dD1OYShudWxsLHQsbyxZbyhvLnR5cGUsZSkscixuKTticmVhayBlfXRocm93IEVycm9yKGEoMzA2LG8sIiIpKX1yZXR1cm4gdDtjYXNlIDA6cmV0dXJuIHI9dC50eXBlLG89dC5wZW5kaW5nUHJvcHMsQmEoZSx0LHIsbz10LmVsZW1lbnRUeXBlPT09cj9vOllvKHIsbyksbik7Y2FzZSAxOnJldHVybiByPXQudHlwZSxvPXQucGVuZGluZ1Byb3BzLFVhKGUsdCxyLG89dC5lbGVtZW50VHlwZT09PXI/bzpZbyhyLG8pLG4pO2Nhc2UgMzppZihWYSh0KSxyPXQudXBkYXRlUXVldWUsbnVsbD09PWV8fG51bGw9PT1yKXRocm93IEVycm9yKGEoMjgyKSk7aWYocj10LnBlbmRpbmdQcm9wcyxvPW51bGwhPT0obz10Lm1lbW9pemVkU3RhdGUpP28uZWxlbWVudDpudWxsLGlpKGUsdCksY2kodCxyLG51bGwsbiksKHI9dC5tZW1vaXplZFN0YXRlLmVsZW1lbnQpPT09bylIaSgpLHQ9ZXMoZSx0LG4pO2Vsc2V7aWYoKGk9KG89dC5zdGF0ZU5vZGUpLmh5ZHJhdGUpJiYoTGk9SHIodC5zdGF0ZU5vZGUuY29udGFpbmVySW5mby5maXJzdENoaWxkKSxOaT10LGk9Rmk9ITApLGkpe2lmKG51bGwhPShlPW8ubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YSkpZm9yKG89MDtvPGUubGVuZ3RoO28rPTIpKGk9ZVtvXSkuX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9ZVtvKzFdLFdpLnB1c2goaSk7Zm9yKG49RWkodCxudWxsLHIsbiksdC5jaGlsZD1uO247KW4uZmxhZ3M9LTMmbi5mbGFnc3wxMDI0LG49bi5zaWJsaW5nfWVsc2UgUmEoZSx0LHIsbiksSGkoKTt0PXQuY2hpbGR9cmV0dXJuIHQ7Y2FzZSA1OnJldHVybiBQaSh0KSxudWxsPT09ZSYmVWkodCkscj10LnR5cGUsbz10LnBlbmRpbmdQcm9wcyxpPW51bGwhPT1lP2UubWVtb2l6ZWRQcm9wczpudWxsLHM9by5jaGlsZHJlbixCcihyLG8pP3M9bnVsbDpudWxsIT09aSYmQnIocixpKSYmKHQuZmxhZ3N8PTE2KSxNYShlLHQpLFJhKGUsdCxzLG4pLHQuY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09ZSYmVWkodCksbnVsbDtjYXNlIDEzOnJldHVybiBZYShlLHQsbik7Y2FzZSA0OnJldHVybiBqaSh0LHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHI9dC5wZW5kaW5nUHJvcHMsbnVsbD09PWU/dC5jaGlsZD1faSh0LG51bGwscixuKTpSYShlLHQscixuKSx0LmNoaWxkO2Nhc2UgMTE6cmV0dXJuIHI9dC50eXBlLG89dC5wZW5kaW5nUHJvcHMsRGEoZSx0LHIsbz10LmVsZW1lbnRUeXBlPT09cj9vOllvKHIsbyksbik7Y2FzZSA3OnJldHVybiBSYShlLHQsdC5wZW5kaW5nUHJvcHMsbiksdC5jaGlsZDtjYXNlIDg6Y2FzZSAxMjpyZXR1cm4gUmEoZSx0LHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLG4pLHQuY2hpbGQ7Y2FzZSAxMDplOntyPXQudHlwZS5fY29udGV4dCxvPXQucGVuZGluZ1Byb3BzLHM9dC5tZW1vaXplZFByb3BzLGk9by52YWx1ZTt2YXIgdT10LnR5cGUuX2NvbnRleHQ7aWYoYW8oR28sdS5fY3VycmVudFZhbHVlKSx1Ll9jdXJyZW50VmFsdWU9aSxudWxsIT09cylpZih1PXMudmFsdWUsMD09PShpPWFyKHUsaSk/MDowfCgiZnVuY3Rpb24iPT09dHlwZW9mIHIuX2NhbGN1bGF0ZUNoYW5nZWRCaXRzP3IuX2NhbGN1bGF0ZUNoYW5nZWRCaXRzKHUsaSk6MTA3Mzc0MTgyMykpKXtpZihzLmNoaWxkcmVuPT09by5jaGlsZHJlbiYmIWNvLmN1cnJlbnQpe3Q9ZXMoZSx0LG4pO2JyZWFrIGV9fWVsc2UgZm9yKG51bGwhPT0odT10LmNoaWxkKSYmKHUucmV0dXJuPXQpO251bGwhPT11Oyl7dmFyIGM9dS5kZXBlbmRlbmNpZXM7aWYobnVsbCE9PWMpe3M9dS5jaGlsZDtmb3IodmFyIGw9Yy5maXJzdENvbnRleHQ7bnVsbCE9PWw7KXtpZihsLmNvbnRleHQ9PT1yJiYwIT09KGwub2JzZXJ2ZWRCaXRzJmkpKXsxPT09dS50YWcmJigobD1haSgtMSxuJi1uKSkudGFnPTIsc2kodSxsKSksdS5sYW5lc3w9bixudWxsIT09KGw9dS5hbHRlcm5hdGUpJiYobC5sYW5lc3w9biksZWkodS5yZXR1cm4sbiksYy5sYW5lc3w9bjticmVha31sPWwubmV4dH19ZWxzZSBzPTEwPT09dS50YWcmJnUudHlwZT09PXQudHlwZT9udWxsOnUuY2hpbGQ7aWYobnVsbCE9PXMpcy5yZXR1cm49dTtlbHNlIGZvcihzPXU7bnVsbCE9PXM7KXtpZihzPT09dCl7cz1udWxsO2JyZWFrfWlmKG51bGwhPT0odT1zLnNpYmxpbmcpKXt1LnJldHVybj1zLnJldHVybixzPXU7YnJlYWt9cz1zLnJldHVybn11PXN9UmEoZSx0LG8uY2hpbGRyZW4sbiksdD10LmNoaWxkfXJldHVybiB0O2Nhc2UgOTpyZXR1cm4gbz10LnR5cGUscj0oaT10LnBlbmRpbmdQcm9wcykuY2hpbGRyZW4sdGkodCxuKSxyPXIobz1uaShvLGkudW5zdGFibGVfb2JzZXJ2ZWRCaXRzKSksdC5mbGFnc3w9MSxSYShlLHQscixuKSx0LmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGk9WW8obz10LnR5cGUsdC5wZW5kaW5nUHJvcHMpLE5hKGUsdCxvLGk9WW8oby50eXBlLGkpLHIsbik7Y2FzZSAxNTpyZXR1cm4gTGEoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxyLG4pO2Nhc2UgMTc6cmV0dXJuIHI9dC50eXBlLG89dC5wZW5kaW5nUHJvcHMsbz10LmVsZW1lbnRUeXBlPT09cj9vOllvKHIsbyksbnVsbCE9PWUmJihlLmFsdGVybmF0ZT1udWxsLHQuYWx0ZXJuYXRlPW51bGwsdC5mbGFnc3w9MiksdC50YWc9MSxwbyhyKT8oZT0hMCx5byh0KSk6ZT0hMSx0aSh0LG4pLHZpKHQscixvKSx5aSh0LHIsbyxuKSx6YShudWxsLHQsciwhMCxlLG4pO2Nhc2UgMTk6cmV0dXJuIFphKGUsdCxuKTtjYXNlIDIzOmNhc2UgMjQ6cmV0dXJuIEZhKGUsdCxuKX10aHJvdyBFcnJvcihhKDE1Nix0LnRhZykpfSxRdS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe1l1KGUsdGhpcy5faW50ZXJuYWxSb290LG51bGwsbnVsbCl9LFF1LnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5faW50ZXJuYWxSb290LHQ9ZS5jb250YWluZXJJbmZvO1l1KG51bGwsZSxudWxsLChmdW5jdGlvbigpe3RbS3JdPW51bGx9KSl9LGV0PWZ1bmN0aW9uKGUpezEzPT09ZS50YWcmJihzdShlLDQsaXUoKSksWHUoZSw0KSl9LHR0PWZ1bmN0aW9uKGUpezEzPT09ZS50YWcmJihzdShlLDY3MTA4ODY0LGl1KCkpLFh1KGUsNjcxMDg4NjQpKX0sbnQ9ZnVuY3Rpb24oZSl7aWYoMTM9PT1lLnRhZyl7dmFyIHQ9aXUoKSxuPWF1KGUpO3N1KGUsbix0KSxYdShlLG4pfX0scnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCgpfSxrZT1mdW5jdGlvbihlLHQsbil7c3dpdGNoKHQpe2Nhc2UiaW5wdXQiOmlmKG5lKGUsbiksdD1uLm5hbWUsInJhZGlvIj09PW4udHlwZSYmbnVsbCE9dCl7Zm9yKG49ZTtuLnBhcmVudE5vZGU7KW49bi5wYXJlbnROb2RlO2ZvcihuPW4ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbbmFtZT0iK0pTT04uc3RyaW5naWZ5KCIiK3QpKyddW3R5cGU9InJhZGlvIl0nKSx0PTA7dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF07aWYociE9PWUmJnIuZm9ybT09PWUuZm9ybSl7dmFyIG89ZW8ocik7aWYoIW8pdGhyb3cgRXJyb3IoYSg5MCkpO1EociksbmUocixvKX19fWJyZWFrO2Nhc2UidGV4dGFyZWEiOmNlKGUsbik7YnJlYWs7Y2FzZSJzZWxlY3QiOm51bGwhPSh0PW4udmFsdWUpJiZhZShlLCEhbi5tdWx0aXBsZSx0LCExKX19LEllPXB1LFJlPWZ1bmN0aW9uKGUsdCxuLHIsbyl7dmFyIGk9U3M7U3N8PTQ7dHJ5e3JldHVybiBWbyg5OCxlLmJpbmQobnVsbCx0LG4scixvKSl9ZmluYWxseXswPT09KFNzPWkpJiYoVXMoKSxXbygpKX19LERlPWZ1bmN0aW9uKCl7MD09PSg0OSZTcykmJihmdW5jdGlvbigpe2lmKG51bGwhPT1Rcyl7dmFyIGU9UXM7UXM9bnVsbCxlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuZXhwaXJlZExhbmVzfD0yNCZlLnBlbmRpbmdMYW5lcyxjdShlLEJvKCkpfSkpfVdvKCl9KCksQXUoKSl9LE5lPWZ1bmN0aW9uKGUsdCl7dmFyIG49U3M7U3N8PTI7dHJ5e3JldHVybiBlKHQpfWZpbmFsbHl7MD09PShTcz1uKSYmKFVzKCksV28oKSl9fTt2YXIgdGM9e0V2ZW50czpbSnIsWnIsZW8sVGUsUGUsQXUse2N1cnJlbnQ6ITF9XX0sbmM9e2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOlFyLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOiIxNy4wLjEiLHJlbmRlcmVyUGFja2FnZU5hbWU6InJlYWN0LWRvbSJ9LHJjPXtidW5kbGVUeXBlOm5jLmJ1bmRsZVR5cGUsdmVyc2lvbjpuYy52ZXJzaW9uLHJlbmRlcmVyUGFja2FnZU5hbWU6bmMucmVuZGVyZXJQYWNrYWdlTmFtZSxyZW5kZXJlckNvbmZpZzpuYy5yZW5kZXJlckNvbmZpZyxvdmVycmlkZUhvb2tTdGF0ZTpudWxsLG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDpudWxsLG92ZXJyaWRlUHJvcHM6bnVsbCxvdmVycmlkZVByb3BzRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjpPLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsZmluZEhvc3RJbnN0YW5jZUJ5RmliZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT0oZT1KZShlKSk/bnVsbDplLnN0YXRlTm9kZX0sZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6bmMuZmluZEZpYmVyQnlIb3N0SW5zdGFuY2V8fGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDpudWxsLHNjaGVkdWxlUmVmcmVzaDpudWxsLHNjaGVkdWxlUm9vdDpudWxsLHNldFJlZnJlc2hIYW5kbGVyOm51bGwsZ2V0Q3VycmVudEZpYmVyOm51bGx9O2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIG9jPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighb2MuaXNEaXNhYmxlZCYmb2Muc3VwcG9ydHNGaWJlcil0cnl7Ym89b2MuaW5qZWN0KHJjKSx3bz1vY31jYXRjaChpYyl7fX10Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPXRjLHQuY3JlYXRlUG9ydGFsPWVjLHQuZmluZERPTU5vZGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gbnVsbDtpZigxPT09ZS5ub2RlVHlwZSlyZXR1cm4gZTt2YXIgdD1lLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT10KXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGUucmVuZGVyKXRocm93IEVycm9yKGEoMTg4KSk7dGhyb3cgRXJyb3IoYSgyNjgsT2JqZWN0LmtleXMoZSkpKX1yZXR1cm4gZT1udWxsPT09KGU9SmUodCkpP251bGw6ZS5zdGF0ZU5vZGV9LHQuZmx1c2hTeW5jPWZ1bmN0aW9uKGUsdCl7dmFyIG49U3M7aWYoMCE9PSg0OCZuKSlyZXR1cm4gZSh0KTtTc3w9MTt0cnl7aWYoZSlyZXR1cm4gVm8oOTksZS5iaW5kKG51bGwsdCkpfWZpbmFsbHl7U3M9bixXbygpfX0sdC5oeWRyYXRlPWZ1bmN0aW9uKGUsdCxuKXtpZighSnUodCkpdGhyb3cgRXJyb3IoYSgyMDApKTtyZXR1cm4gWnUobnVsbCxlLHQsITAsbil9LHQucmVuZGVyPWZ1bmN0aW9uKGUsdCxuKXtpZighSnUodCkpdGhyb3cgRXJyb3IoYSgyMDApKTtyZXR1cm4gWnUobnVsbCxlLHQsITEsbil9LHQudW5tb3VudENvbXBvbmVudEF0Tm9kZT1mdW5jdGlvbihlKXtpZighSnUoZSkpdGhyb3cgRXJyb3IoYSg0MCkpO3JldHVybiEhZS5fcmVhY3RSb290Q29udGFpbmVyJiYoaHUoKGZ1bmN0aW9uKCl7WnUobnVsbCxudWxsLGUsITEsKGZ1bmN0aW9uKCl7ZS5fcmVhY3RSb290Q29udGFpbmVyPW51bGwsZVtLcl09bnVsbH0pKX0pKSwhMCl9LHQudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9cHUsdC51bnN0YWJsZV9jcmVhdGVQb3J0YWw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZWMoZSx0LDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsKX0sdC51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcj1mdW5jdGlvbihlLHQsbixyKXtpZighSnUobikpdGhyb3cgRXJyb3IoYSgyMDApKTtpZihudWxsPT1lfHx2b2lkIDA9PT1lLl9yZWFjdEludGVybmFscyl0aHJvdyBFcnJvcihhKDM4KSk7cmV0dXJuIFp1KGUsdCxuLCExLHIpfSx0LnZlcnNpb249IjE3LjAuMSJ9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oMjQ0KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixvLGksYTtpZigib2JqZWN0Ij09PXR5cGVvZiBwZXJmb3JtYW5jZSYmImZ1bmN0aW9uIj09PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpe3ZhciBzPXBlcmZvcm1hbmNlO3QudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHMubm93KCl9fWVsc2V7dmFyIHU9RGF0ZSxjPXUubm93KCk7dC51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gdS5ub3coKS1jfX1pZigidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3d8fCJmdW5jdGlvbiIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciBsPW51bGwsZj1udWxsLGQ9ZnVuY3Rpb24gZSgpe2lmKG51bGwhPT1sKXRyeXt2YXIgbj10LnVuc3RhYmxlX25vdygpO2woITAsbiksbD1udWxsfWNhdGNoKHIpe3Rocm93IHNldFRpbWVvdXQoZSwwKSxyfX07cj1mdW5jdGlvbihlKXtudWxsIT09bD9zZXRUaW1lb3V0KHIsMCxlKToobD1lLHNldFRpbWVvdXQoZCwwKSl9LG89ZnVuY3Rpb24oZSx0KXtmPXNldFRpbWVvdXQoZSx0KX0saT1mdW5jdGlvbigpe2NsZWFyVGltZW91dChmKX0sdC51bnN0YWJsZV9zaG91bGRZaWVsZD1mdW5jdGlvbigpe3JldHVybiExfSxhPXQudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oKXt9fWVsc2V7dmFyIHA9d2luZG93LnNldFRpbWVvdXQsaD13aW5kb3cuY2xlYXJUaW1lb3V0O2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGNvbnNvbGUpe3ZhciB2PXdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZTsiZnVuY3Rpb24iIT09dHlwZW9mIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJmNvbnNvbGUuZXJyb3IoIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzIiksImZ1bmN0aW9uIiE9PXR5cGVvZiB2JiZjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGNhbmNlbEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzIil9dmFyIGc9ITEseT1udWxsLG09LTEsYj01LHc9MDt0LnVuc3RhYmxlX3Nob3VsZFlpZWxkPWZ1bmN0aW9uKCl7cmV0dXJuIHQudW5zdGFibGVfbm93KCk+PXd9LGE9ZnVuY3Rpb24oKXt9LHQudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oZSl7MD5lfHwxMjU8ZT9jb25zb2xlLmVycm9yKCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWQiKTpiPTA8ZT9NYXRoLmZsb29yKDFlMy9lKTo1fTt2YXIgTz1uZXcgTWVzc2FnZUNoYW5uZWwsXz1PLnBvcnQyO08ucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7aWYobnVsbCE9PXkpe3ZhciBlPXQudW5zdGFibGVfbm93KCk7dz1lK2I7dHJ5e3koITAsZSk/Xy5wb3N0TWVzc2FnZShudWxsKTooZz0hMSx5PW51bGwpfWNhdGNoKG4pe3Rocm93IF8ucG9zdE1lc3NhZ2UobnVsbCksbn19ZWxzZSBnPSExfSxyPWZ1bmN0aW9uKGUpe3k9ZSxnfHwoZz0hMCxfLnBvc3RNZXNzYWdlKG51bGwpKX0sbz1mdW5jdGlvbihlLG4pe209cCgoZnVuY3Rpb24oKXtlKHQudW5zdGFibGVfbm93KCkpfSksbil9LGk9ZnVuY3Rpb24oKXtoKG0pLG09LTF9fWZ1bmN0aW9uIEUoZSx0KXt2YXIgbj1lLmxlbmd0aDtlLnB1c2godCk7ZTpmb3IoOzspe3ZhciByPW4tMT4+PjEsbz1lW3JdO2lmKCEodm9pZCAwIT09byYmMDxrKG8sdCkpKWJyZWFrIGU7ZVtyXT10LGVbbl09byxuPXJ9fWZ1bmN0aW9uIEMoZSl7cmV0dXJuIHZvaWQgMD09PShlPWVbMF0pP251bGw6ZX1mdW5jdGlvbiBTKGUpe3ZhciB0PWVbMF07aWYodm9pZCAwIT09dCl7dmFyIG49ZS5wb3AoKTtpZihuIT09dCl7ZVswXT1uO2U6Zm9yKHZhciByPTAsbz1lLmxlbmd0aDtyPG87KXt2YXIgaT0yKihyKzEpLTEsYT1lW2ldLHM9aSsxLHU9ZVtzXTtpZih2b2lkIDAhPT1hJiYwPmsoYSxuKSl2b2lkIDAhPT11JiYwPmsodSxhKT8oZVtyXT11LGVbc109bixyPXMpOihlW3JdPWEsZVtpXT1uLHI9aSk7ZWxzZXtpZighKHZvaWQgMCE9PXUmJjA+ayh1LG4pKSlicmVhayBlO2Vbcl09dSxlW3NdPW4scj1zfX19cmV0dXJuIHR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gayhlLHQpe3ZhciBuPWUuc29ydEluZGV4LXQuc29ydEluZGV4O3JldHVybiAwIT09bj9uOmUuaWQtdC5pZH12YXIgeD1bXSxBPVtdLGo9MSxUPW51bGwsUD0zLEk9ITEsUj0hMSxEPSExO2Z1bmN0aW9uIE4oZSl7Zm9yKHZhciB0PUMoQSk7bnVsbCE9PXQ7KXtpZihudWxsPT09dC5jYWxsYmFjaylTKEEpO2Vsc2V7aWYoISh0LnN0YXJ0VGltZTw9ZSkpYnJlYWs7UyhBKSx0LnNvcnRJbmRleD10LmV4cGlyYXRpb25UaW1lLEUoeCx0KX10PUMoQSl9fWZ1bmN0aW9uIEwoZSl7aWYoRD0hMSxOKGUpLCFSKWlmKG51bGwhPT1DKHgpKVI9ITAscihGKTtlbHNle3ZhciB0PUMoQSk7bnVsbCE9PXQmJm8oTCx0LnN0YXJ0VGltZS1lKX19ZnVuY3Rpb24gRihlLG4pe1I9ITEsRCYmKEQ9ITEsaSgpKSxJPSEwO3ZhciByPVA7dHJ5e2ZvcihOKG4pLFQ9Qyh4KTtudWxsIT09VCYmKCEoVC5leHBpcmF0aW9uVGltZT5uKXx8ZSYmIXQudW5zdGFibGVfc2hvdWxkWWllbGQoKSk7KXt2YXIgYT1ULmNhbGxiYWNrO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSl7VC5jYWxsYmFjaz1udWxsLFA9VC5wcmlvcml0eUxldmVsO3ZhciBzPWEoVC5leHBpcmF0aW9uVGltZTw9bik7bj10LnVuc3RhYmxlX25vdygpLCJmdW5jdGlvbiI9PT10eXBlb2Ygcz9ULmNhbGxiYWNrPXM6VD09PUMoeCkmJlMoeCksTihuKX1lbHNlIFMoeCk7VD1DKHgpfWlmKG51bGwhPT1UKXZhciB1PSEwO2Vsc2V7dmFyIGM9QyhBKTtudWxsIT09YyYmbyhMLGMuc3RhcnRUaW1lLW4pLHU9ITF9cmV0dXJuIHV9ZmluYWxseXtUPW51bGwsUD1yLEk9ITF9fXZhciBNPWE7dC51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NSx0LnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTEsdC51bnN0YWJsZV9Mb3dQcmlvcml0eT00LHQudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9Myx0LnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsLHQudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9Mix0LnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGUpe2UuY2FsbGJhY2s9bnVsbH0sdC51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe1J8fEl8fChSPSEwLHIoRikpfSx0LnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIFB9LHQudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gQyh4KX0sdC51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGUpe3N3aXRjaChQKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgdD0zO2JyZWFrO2RlZmF1bHQ6dD1QfXZhciBuPVA7UD10O3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7UD1ufX0sdC51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe30sdC51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9TSx0LnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6ZT0zfXZhciBuPVA7UD1lO3RyeXtyZXR1cm4gdCgpfWZpbmFsbHl7UD1ufX0sdC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbixhKXt2YXIgcz10LnVuc3RhYmxlX25vdygpO3N3aXRjaCgib2JqZWN0Ij09PXR5cGVvZiBhJiZudWxsIT09YT9hPSJudW1iZXIiPT09dHlwZW9mKGE9YS5kZWxheSkmJjA8YT9zK2E6czphPXMsZSl7Y2FzZSAxOnZhciB1PS0xO2JyZWFrO2Nhc2UgMjp1PTI1MDticmVhaztjYXNlIDU6dT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDp1PTFlNDticmVhaztkZWZhdWx0OnU9NWUzfXJldHVybiBlPXtpZDpqKyssY2FsbGJhY2s6bixwcmlvcml0eUxldmVsOmUsc3RhcnRUaW1lOmEsZXhwaXJhdGlvblRpbWU6dT1hK3Usc29ydEluZGV4Oi0xfSxhPnM/KGUuc29ydEluZGV4PWEsRShBLGUpLG51bGw9PT1DKHgpJiZlPT09QyhBKSYmKEQ/aSgpOkQ9ITAsbyhMLGEtcykpKTooZS5zb3J0SW5kZXg9dSxFKHgsZSksUnx8SXx8KFI9ITAscihGKSkpLGV9LHQudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKGUpe3ZhciB0PVA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49UDtQPXQ7dHJ5e3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e1A9bn19fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDI0Nik7ZnVuY3Rpb24gbygpe31mdW5jdGlvbiBpKCl7fWkucmVzZXRXYXJuaW5nQ2FjaGU9byxlLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxuLG8saSxhKXtpZihhIT09cil7dmFyIHM9bmV3IEVycm9yKCJDYWxsaW5nIFByb3BUeXBlcyB2YWxpZGF0b3JzIGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLiBVc2UgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKCkgdG8gY2FsbCB0aGVtLiBSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzIik7dGhyb3cgcy5uYW1lPSJJbnZhcmlhbnQgVmlvbGF0aW9uIixzfX1mdW5jdGlvbiB0KCl7cmV0dXJuIGV9ZS5pc1JlcXVpcmVkPWU7dmFyIG49e2FycmF5OmUsYm9vbDplLGZ1bmM6ZSxudW1iZXI6ZSxvYmplY3Q6ZSxzdHJpbmc6ZSxzeW1ib2w6ZSxhbnk6ZSxhcnJheU9mOnQsZWxlbWVudDplLGVsZW1lbnRUeXBlOmUsaW5zdGFuY2VPZjp0LG5vZGU6ZSxvYmplY3RPZjp0LG9uZU9mOnQsb25lT2ZUeXBlOnQsc2hhcGU6dCxleGFjdDp0LGNoZWNrUHJvcFR5cGVzOmkscmVzZXRXYXJuaW5nQ2FjaGU6b307cmV0dXJuIG4uUHJvcFR5cGVzPW4sbn19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPSJTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCJ9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oMjQ4KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Isbz1yP1N5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKTo2MDEwMyxpPXI/U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIik6NjAxMDYsYT1yP1N5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iik6NjAxMDcscz1yP1N5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIik6NjAxMDgsdT1yP1N5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIik6NjAxMTQsYz1yP1N5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIik6NjAxMDksbD1yP1N5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKTo2MDExMCxmPXI/U3ltYm9sLmZvcigicmVhY3QuYXN5bmNfbW9kZSIpOjYwMTExLGQ9cj9TeW1ib2wuZm9yKCJyZWFjdC5jb25jdXJyZW50X21vZGUiKTo2MDExMSxwPXI/U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKTo2MDExMixoPXI/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKTo2MDExMyx2PXI/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpOjYwMTIwLGc9cj9TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIik6NjAxMTUseT1yP1N5bWJvbC5mb3IoInJlYWN0LmxhenkiKTo2MDExNixtPXI/U3ltYm9sLmZvcigicmVhY3QuZnVuZGFtZW50YWwiKTo2MDExNyxiPXI/U3ltYm9sLmZvcigicmVhY3QucmVzcG9uZGVyIik6NjAxMTgsdz1yP1N5bWJvbC5mb3IoInJlYWN0LnNjb3BlIik6NjAxMTk7ZnVuY3Rpb24gTyhlKXtpZigib2JqZWN0Ij09PXR5cGVvZiBlJiZudWxsIT09ZSl7dmFyIHQ9ZS4kJHR5cGVvZjtzd2l0Y2godCl7Y2FzZSBvOnN3aXRjaChlPWUudHlwZSl7Y2FzZSBmOmNhc2UgZDpjYXNlIGE6Y2FzZSB1OmNhc2UgczpjYXNlIGg6cmV0dXJuIGU7ZGVmYXVsdDpzd2l0Y2goZT1lJiZlLiQkdHlwZW9mKXtjYXNlIGw6Y2FzZSBwOmNhc2UgYzpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiB0fX1jYXNlIHk6Y2FzZSBnOmNhc2UgaTpyZXR1cm4gdH19fWZ1bmN0aW9uIF8oZSl7cmV0dXJuIE8oZSk9PT1kfXQudHlwZU9mPU8sdC5Bc3luY01vZGU9Zix0LkNvbmN1cnJlbnRNb2RlPWQsdC5Db250ZXh0Q29uc3VtZXI9bCx0LkNvbnRleHRQcm92aWRlcj1jLHQuRWxlbWVudD1vLHQuRm9yd2FyZFJlZj1wLHQuRnJhZ21lbnQ9YSx0Lkxhenk9eSx0Lk1lbW89Zyx0LlBvcnRhbD1pLHQuUHJvZmlsZXI9dSx0LlN0cmljdE1vZGU9cyx0LlN1c3BlbnNlPWgsdC5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09PXR5cGVvZiBlfHxlPT09YXx8ZT09PWR8fGU9PT11fHxlPT09c3x8ZT09PWh8fGU9PT12fHwib2JqZWN0Ij09PXR5cGVvZiBlJiZudWxsIT09ZSYmKGUuJCR0eXBlb2Y9PT15fHxlLiQkdHlwZW9mPT09Z3x8ZS4kJHR5cGVvZj09PWN8fGUuJCR0eXBlb2Y9PT1sfHxlLiQkdHlwZW9mPT09cHx8ZS4kJHR5cGVvZj09PW18fGUuJCR0eXBlb2Y9PT1ifHxlLiQkdHlwZW9mPT09dyl9LHQuaXNBc3luY01vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIF8oZSl8fE8oZSk9PT1mfSx0LmlzQ29uY3VycmVudE1vZGU9Xyx0LmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGUpe3JldHVybiBPKGUpPT09bH0sdC5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihlKXtyZXR1cm4gTyhlKT09PWN9LHQuaXNFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT09dHlwZW9mIGUmJm51bGwhPT1lJiZlLiQkdHlwZW9mPT09b30sdC5pc0ZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSk9PT1wfSx0LmlzRnJhZ21lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSk9PT1hfSx0LmlzTGF6eT1mdW5jdGlvbihlKXtyZXR1cm4gTyhlKT09PXl9LHQuaXNNZW1vPWZ1bmN0aW9uKGUpe3JldHVybiBPKGUpPT09Z30sdC5pc1BvcnRhbD1mdW5jdGlvbihlKXtyZXR1cm4gTyhlKT09PWl9LHQuaXNQcm9maWxlcj1mdW5jdGlvbihlKXtyZXR1cm4gTyhlKT09PXV9LHQuaXNTdHJpY3RNb2RlPWZ1bmN0aW9uKGUpe3JldHVybiBPKGUpPT09c30sdC5pc1N1c3BlbnNlPWZ1bmN0aW9uKGUpe3JldHVybiBPKGUpPT09aH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Isbz1yP1N5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKTo2MDEwMyxpPXI/U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIik6NjAxMDYsYT1yP1N5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iik6NjAxMDcscz1yP1N5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIik6NjAxMDgsdT1yP1N5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIik6NjAxMTQsYz1yP1N5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIik6NjAxMDksbD1yP1N5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKTo2MDExMCxmPXI/U3ltYm9sLmZvcigicmVhY3QuYXN5bmNfbW9kZSIpOjYwMTExLGQ9cj9TeW1ib2wuZm9yKCJyZWFjdC5jb25jdXJyZW50X21vZGUiKTo2MDExMSxwPXI/U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKTo2MDExMixoPXI/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKTo2MDExMyx2PXI/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpOjYwMTIwLGc9cj9TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIik6NjAxMTUseT1yP1N5bWJvbC5mb3IoInJlYWN0LmxhenkiKTo2MDExNixtPXI/U3ltYm9sLmZvcigicmVhY3QuYmxvY2siKTo2MDEyMSxiPXI/U3ltYm9sLmZvcigicmVhY3QuZnVuZGFtZW50YWwiKTo2MDExNyx3PXI/U3ltYm9sLmZvcigicmVhY3QucmVzcG9uZGVyIik6NjAxMTgsTz1yP1N5bWJvbC5mb3IoInJlYWN0LnNjb3BlIik6NjAxMTk7ZnVuY3Rpb24gXyhlKXtpZigib2JqZWN0Ij09PXR5cGVvZiBlJiZudWxsIT09ZSl7dmFyIHQ9ZS4kJHR5cGVvZjtzd2l0Y2godCl7Y2FzZSBvOnN3aXRjaChlPWUudHlwZSl7Y2FzZSBmOmNhc2UgZDpjYXNlIGE6Y2FzZSB1OmNhc2UgczpjYXNlIGg6cmV0dXJuIGU7ZGVmYXVsdDpzd2l0Y2goZT1lJiZlLiQkdHlwZW9mKXtjYXNlIGw6Y2FzZSBwOmNhc2UgeTpjYXNlIGc6Y2FzZSBjOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuIHR9fWNhc2UgaTpyZXR1cm4gdH19fWZ1bmN0aW9uIEUoZSl7cmV0dXJuIF8oZSk9PT1kfXQuQXN5bmNNb2RlPWYsdC5Db25jdXJyZW50TW9kZT1kLHQuQ29udGV4dENvbnN1bWVyPWwsdC5Db250ZXh0UHJvdmlkZXI9Yyx0LkVsZW1lbnQ9byx0LkZvcndhcmRSZWY9cCx0LkZyYWdtZW50PWEsdC5MYXp5PXksdC5NZW1vPWcsdC5Qb3J0YWw9aSx0LlByb2ZpbGVyPXUsdC5TdHJpY3RNb2RlPXMsdC5TdXNwZW5zZT1oLHQuaXNBc3luY01vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIEUoZSl8fF8oZSk9PT1mfSx0LmlzQ29uY3VycmVudE1vZGU9RSx0LmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGUpe3JldHVybiBfKGUpPT09bH0sdC5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihlKXtyZXR1cm4gXyhlKT09PWN9LHQuaXNFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT09dHlwZW9mIGUmJm51bGwhPT1lJiZlLiQkdHlwZW9mPT09b30sdC5pc0ZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIF8oZSk9PT1wfSx0LmlzRnJhZ21lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIF8oZSk9PT1hfSx0LmlzTGF6eT1mdW5jdGlvbihlKXtyZXR1cm4gXyhlKT09PXl9LHQuaXNNZW1vPWZ1bmN0aW9uKGUpe3JldHVybiBfKGUpPT09Z30sdC5pc1BvcnRhbD1mdW5jdGlvbihlKXtyZXR1cm4gXyhlKT09PWl9LHQuaXNQcm9maWxlcj1mdW5jdGlvbihlKXtyZXR1cm4gXyhlKT09PXV9LHQuaXNTdHJpY3RNb2RlPWZ1bmN0aW9uKGUpe3JldHVybiBfKGUpPT09c30sdC5pc1N1c3BlbnNlPWZ1bmN0aW9uKGUpe3JldHVybiBfKGUpPT09aH0sdC5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09PXR5cGVvZiBlfHxlPT09YXx8ZT09PWR8fGU9PT11fHxlPT09c3x8ZT09PWh8fGU9PT12fHwib2JqZWN0Ij09PXR5cGVvZiBlJiZudWxsIT09ZSYmKGUuJCR0eXBlb2Y9PT15fHxlLiQkdHlwZW9mPT09Z3x8ZS4kJHR5cGVvZj09PWN8fGUuJCR0eXBlb2Y9PT1sfHxlLiQkdHlwZW9mPT09cHx8ZS4kJHR5cGVvZj09PWJ8fGUuJCR0eXBlb2Y9PT13fHxlLiQkdHlwZW9mPT09T3x8ZS4kJHR5cGVvZj09PW0pfSx0LnR5cGVPZj1ffSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZighZS53ZWJwYWNrUG9seWZpbGwpe3ZhciB0PU9iamVjdC5jcmVhdGUoZSk7dC5jaGlsZHJlbnx8KHQuY2hpbGRyZW49W10pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJsb2FkZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0Lmx9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImlkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5pfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJleHBvcnRzIix7ZW51bWVyYWJsZTohMH0pLHQud2VicGFja1BvbHlmaWxsPTF9cmV0dXJuIHR9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyMCksbz1uKDI2KSxpPW4oMTQpLGE9bigxNDApO2UuZXhwb3J0cz1yP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKGUsdCl7aShlKTtmb3IodmFyIG4scj1hKHQpLHM9ci5sZW5ndGgsdT0wO3M+dTspby5mKGUsbj1yW3UrK10sdFtuXSk7cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big2OCksbz1uKDMzKSxpPW4oNzQpLGE9bigyMykscz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHMsdSl7cihuKTt2YXIgYz1vKHQpLGw9aShjKSxmPWEoYy5sZW5ndGgpLGQ9ZT9mLTE6MCxwPWU/LTE6MTtpZihzPDIpZm9yKDs7KXtpZihkIGluIGwpe3U9bFtkXSxkKz1wO2JyZWFrfWlmKGQrPXAsZT9kPDA6Zjw9ZCl0aHJvdyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1mb3IoO2U/ZD49MDpmPmQ7ZCs9cClkIGluIGwmJih1PW4odSxsW2RdLGQsYykpO3JldHVybiB1fX07ZS5leHBvcnRzPXtsZWZ0OnMoITEpLHJpZ2h0OnMoITApfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oOSksbz1uKDI1NCk7cih7Z2xvYmFsOiEwLGZvcmNlZDpwYXJzZUZsb2F0IT1vfSx7cGFyc2VGbG9hdDpvfSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDgpLG89bigxMTgpLnRyaW0saT1uKDExOSksYT1yLnBhcnNlRmxvYXQscz0xL2EoaSsiLTAiKSE9PS0xLzA7ZS5leHBvcnRzPXM/ZnVuY3Rpb24oZSl7dmFyIHQ9byhTdHJpbmcoZSkpLG49YSh0KTtyZXR1cm4gMD09PW4mJiItIj09dC5jaGFyQXQoMCk/LTA6bn06YX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oOCksbz1uKDExOCkudHJpbSxpPW4oMTE5KSxhPXIucGFyc2VJbnQscz0vXlsrLV0/MFtYeF0vLHU9OCE9PWEoaSsiMDgiKXx8MjIhPT1hKGkrIjB4MTYiKTtlLmV4cG9ydHM9dT9mdW5jdGlvbihlLHQpe3ZhciBuPW8oU3RyaW5nKGUpKTtyZXR1cm4gYShuLHQ+Pj4wfHwocy50ZXN0KG4pPzE2OjEwKSl9OmF9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIXIoZSkmJm51bGwhPT1lKXRocm93IFR5cGVFcnJvcigiQ2FuJ3Qgc2V0ICIrU3RyaW5nKGUpKyIgYXMgYSBwcm90b3R5cGUiKTtyZXR1cm4gZX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPU9iamVjdC5pc3x8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXQ/MCE9PWV8fDEvZT09PTEvdDplIT1lJiZ0IT10fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDkpLG89big0NykuZixpPW4oMjMpLGE9bigxNzcpLHM9bigyMiksdT1uKDE3OCksYz1uKDYzKSxsPSIiLnN0YXJ0c1dpdGgsZj1NYXRoLm1pbixkPXUoInN0YXJ0c1dpdGgiKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiEoIWMmJiFkJiYhIWZ1bmN0aW9uKCl7dmFyIGU9byhTdHJpbmcucHJvdG90eXBlLCJzdGFydHNXaXRoIik7cmV0dXJuIGUmJiFlLndyaXRhYmxlfSgpKSYmIWR9LHtzdGFydHNXaXRoOmZ1bmN0aW9uKGUpe3ZhciB0PVN0cmluZyhzKHRoaXMpKTthKGUpO3ZhciBuPWkoZihhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCx0Lmxlbmd0aCkpLHI9U3RyaW5nKGUpO3JldHVybiBsP2wuY2FsbCh0LHIsbik6dC5zbGljZShuLG4rci5sZW5ndGgpPT09cn19KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTApLG89bigxMTkpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcigoZnVuY3Rpb24oKXtyZXR1cm4hIW9bZV0oKXx8Ilx1MjAwYlx4ODVcdTE4MGUiIT0iXHUyMDBiXHg4NVx1MTgwZSJbZV0oKXx8b1tlXS5uYW1lIT09ZX0pKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE3OSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHIoZSl9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIEFycmF5LmZyb20oZSl9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUud2VicGFja1BvbHlmaWxsfHwoZS5kZXByZWNhdGU9ZnVuY3Rpb24oKXt9LGUucGF0aHM9W10sZS5jaGlsZHJlbnx8KGUuY2hpbGRyZW49W10pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJsb2FkZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLmx9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImlkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5pfX0pLGUud2VicGFja1BvbHlmaWxsPTEpLGV9fSxmdW5jdGlvbihlLHQpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgY3J5cHRvJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQoY3J5cHRvKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBtc0NyeXB0byYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXMmJm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcy5iaW5kKG1zQ3J5cHRvKTtpZihuKXt2YXIgcj1uZXcgVWludDhBcnJheSgxNik7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIG4ocikscn19ZWxzZXt2YXIgbz1uZXcgQXJyYXkoMTYpO2UuZXhwb3J0cz1mdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7dDwxNjt0KyspMD09PSgzJnQpJiYoZT00Mjk0OTY3Mjk2Kk1hdGgucmFuZG9tKCkpLG9bdF09ZT4+PigoMyZ0KTw8MykmMjU1O3JldHVybiBvfX19LGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdLHI9MDtyPDI1NjsrK3IpbltyXT0ocisyNTYpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dHx8MCxvPW47cmV0dXJuW29bZVtyKytdXSxvW2VbcisrXV0sb1tlW3IrK11dLG9bZVtyKytdXSwiLSIsb1tlW3IrK11dLG9bZVtyKytdXSwiLSIsb1tlW3IrK11dLG9bZVtyKytdXSwiLSIsb1tlW3IrK11dLG9bZVtyKytdXSwiLSIsb1tlW3IrK11dLG9bZVtyKytdXSxvW2VbcisrXV0sb1tlW3IrK11dLG9bZVtyKytdXSxvW2VbcisrXV1dLmpvaW4oIiIpfX0sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbih0KXt2YXIgcj1uKDI2Nyksbz1uKDE4MSksaT1uKDI2OCksYT1uKDI2OSkscz1uKDE0NCksdT1zLmlzRXJyb3JFdmVudCxjPXMuaXNET01FcnJvcixsPXMuaXNET01FeGNlcHRpb24sZj1zLmlzRXJyb3IsZD1zLmlzT2JqZWN0LHA9cy5pc1BsYWluT2JqZWN0LGg9cy5pc1VuZGVmaW5lZCx2PXMuaXNGdW5jdGlvbixnPXMuaXNTdHJpbmcseT1zLmlzQXJyYXksbT1zLmlzRW1wdHlPYmplY3QsYj1zLmVhY2gsdz1zLm9iamVjdE1lcmdlLE89cy50cnVuY2F0ZSxfPXMub2JqZWN0RnJvemVuLEU9cy5oYXNLZXksQz1zLmpvaW5SZWdFeHAsUz1zLnVybGVuY29kZSxrPXMudXVpZDQseD1zLmh0bWxUcmVlQXNTdHJpbmcsQT1zLmlzU2FtZUV4Y2VwdGlvbixqPXMuaXNTYW1lU3RhY2t0cmFjZSxUPXMucGFyc2VVcmwsUD1zLmZpbGwsST1zLnN1cHBvcnRzRmV0Y2gsUj1zLnN1cHBvcnRzUmVmZXJyZXJQb2xpY3ksRD1zLnNlcmlhbGl6ZUtleXNGb3JNZXNzYWdlLE49cy5zZXJpYWxpemVFeGNlcHRpb24sTD1zLnNhbml0aXplLEY9bigyNzApLndyYXBNZXRob2QsTT0ic291cmNlIHByb3RvY29sIHVzZXIgcGFzcyBob3N0IHBvcnQgcGF0aCIuc3BsaXQoIiAiKSxCPS9eKD86KFx3Kyk6KT9cL1wvKD86KFx3KykoOlx3Kyk/QCk/KFtcd1wuLV0rKSg/OjooXGQrKSk/KFwvLiopLztmdW5jdGlvbiBVKCl7cmV0dXJuK25ldyBEYXRlfXZhciB6PSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPT10eXBlb2YgdD90OiJ1bmRlZmluZWQiIT09dHlwZW9mIHNlbGY/c2VsZjp7fSxWPXouZG9jdW1lbnQsSD16Lm5hdmlnYXRvcjtmdW5jdGlvbiBXKGUsdCl7cmV0dXJuIHYodCk/ZnVuY3Rpb24obil7cmV0dXJuIHQobixlKX06dH1mdW5jdGlvbiBxKCl7Zm9yKHZhciBlIGluIHRoaXMuX2hhc0pTT049ISgib2JqZWN0IiE9PXR5cGVvZiBKU09OfHwhSlNPTi5zdHJpbmdpZnkpLHRoaXMuX2hhc0RvY3VtZW50PSFoKFYpLHRoaXMuX2hhc05hdmlnYXRvcj0haChIKSx0aGlzLl9sYXN0Q2FwdHVyZWRFeGNlcHRpb249bnVsbCx0aGlzLl9sYXN0RGF0YT1udWxsLHRoaXMuX2xhc3RFdmVudElkPW51bGwsdGhpcy5fZ2xvYmFsU2VydmVyPW51bGwsdGhpcy5fZ2xvYmFsS2V5PW51bGwsdGhpcy5fZ2xvYmFsUHJvamVjdD1udWxsLHRoaXMuX2dsb2JhbENvbnRleHQ9e30sdGhpcy5fZ2xvYmFsT3B0aW9ucz17cmVsZWFzZTp6LlNFTlRSWV9SRUxFQVNFJiZ6LlNFTlRSWV9SRUxFQVNFLmlkLGxvZ2dlcjoiamF2YXNjcmlwdCIsaWdub3JlRXJyb3JzOltdLGlnbm9yZVVybHM6W10sd2hpdGVsaXN0VXJsczpbXSxpbmNsdWRlUGF0aHM6W10saGVhZGVyczpudWxsLGNvbGxlY3RXaW5kb3dFcnJvcnM6ITAsY2FwdHVyZVVuaGFuZGxlZFJlamVjdGlvbnM6ITAsbWF4TWVzc2FnZUxlbmd0aDowLG1heFVybExlbmd0aDoyNTAsc3RhY2tUcmFjZUxpbWl0OjUwLGF1dG9CcmVhZGNydW1iczohMCxpbnN0cnVtZW50OiEwLHNhbXBsZVJhdGU6MSxzYW5pdGl6ZUtleXM6W119LHRoaXMuX2ZldGNoRGVmYXVsdHM9e21ldGhvZDoiUE9TVCIscmVmZXJyZXJQb2xpY3k6UigpPyJvcmlnaW4iOiIifSx0aGlzLl9pZ25vcmVPbkVycm9yPTAsdGhpcy5faXNSYXZlbkluc3RhbGxlZD0hMSx0aGlzLl9vcmlnaW5hbEVycm9yU3RhY2tUcmFjZUxpbWl0PUVycm9yLnN0YWNrVHJhY2VMaW1pdCx0aGlzLl9vcmlnaW5hbENvbnNvbGU9ei5jb25zb2xlfHx7fSx0aGlzLl9vcmlnaW5hbENvbnNvbGVNZXRob2RzPXt9LHRoaXMuX3BsdWdpbnM9W10sdGhpcy5fc3RhcnRUaW1lPVUoKSx0aGlzLl93cmFwcGVkQnVpbHRJbnM9W10sdGhpcy5fYnJlYWRjcnVtYnM9W10sdGhpcy5fbGFzdENhcHR1cmVkRXZlbnQ9bnVsbCx0aGlzLl9rZXlwcmVzc1RpbWVvdXQsdGhpcy5fbG9jYXRpb249ei5sb2NhdGlvbix0aGlzLl9sYXN0SHJlZj10aGlzLl9sb2NhdGlvbiYmdGhpcy5fbG9jYXRpb24uaHJlZix0aGlzLl9yZXNldEJhY2tvZmYoKSx0aGlzLl9vcmlnaW5hbENvbnNvbGUpdGhpcy5fb3JpZ2luYWxDb25zb2xlTWV0aG9kc1tlXT10aGlzLl9vcmlnaW5hbENvbnNvbGVbZV19cS5wcm90b3R5cGU9e1ZFUlNJT046IjMuMjcuMiIsZGVidWc6ITEsVHJhY2VLaXQ6cixjb25maWc6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKG4uX2dsb2JhbFNlcnZlcilyZXR1cm4gdGhpcy5fbG9nRGVidWcoImVycm9yIiwiRXJyb3I6IFJhdmVuIGhhcyBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCIpLG47aWYoIWUpcmV0dXJuIG47dmFyIG89bi5fZ2xvYmFsT3B0aW9uczt0JiZiKHQsKGZ1bmN0aW9uKGUsdCl7InRhZ3MiPT09ZXx8ImV4dHJhIj09PWV8fCJ1c2VyIj09PWU/bi5fZ2xvYmFsQ29udGV4dFtlXT10Om9bZV09dH0pKSxuLnNldERTTihlKSxvLmlnbm9yZUVycm9ycy5wdXNoKC9eU2NyaXB0IGVycm9yXC4/JC8pLG8uaWdub3JlRXJyb3JzLnB1c2goL15KYXZhc2NyaXB0IGVycm9yOiBTY3JpcHQgZXJyb3JcLj8gb24gbGluZSAwJC8pLG8uaWdub3JlRXJyb3JzPUMoby5pZ25vcmVFcnJvcnMpLG8uaWdub3JlVXJscz0hIW8uaWdub3JlVXJscy5sZW5ndGgmJkMoby5pZ25vcmVVcmxzKSxvLndoaXRlbGlzdFVybHM9ISFvLndoaXRlbGlzdFVybHMubGVuZ3RoJiZDKG8ud2hpdGVsaXN0VXJscyksby5pbmNsdWRlUGF0aHM9QyhvLmluY2x1ZGVQYXRocyksby5tYXhCcmVhZGNydW1icz1NYXRoLm1heCgwLE1hdGgubWluKG8ubWF4QnJlYWRjcnVtYnN8fDEwMCwxMDApKTt2YXIgaT17eGhyOiEwLGNvbnNvbGU6ITAsZG9tOiEwLGxvY2F0aW9uOiEwLHNlbnRyeTohMH0sYT1vLmF1dG9CcmVhZGNydW1iczsiW29iamVjdCBPYmplY3RdIj09PXt9LnRvU3RyaW5nLmNhbGwoYSk/YT13KGksYSk6ITEhPT1hJiYoYT1pKSxvLmF1dG9CcmVhZGNydW1icz1hO3ZhciBzPXt0cnlDYXRjaDohMH0sdT1vLmluc3RydW1lbnQ7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT17fS50b1N0cmluZy5jYWxsKHUpP3U9dyhzLHUpOiExIT09dSYmKHU9cyksby5pbnN0cnVtZW50PXUsci5jb2xsZWN0V2luZG93RXJyb3JzPSEhby5jb2xsZWN0V2luZG93RXJyb3JzLG59LGluc3RhbGw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBlLmlzU2V0dXAoKSYmIWUuX2lzUmF2ZW5JbnN0YWxsZWQmJihyLnJlcG9ydC5zdWJzY3JpYmUoKGZ1bmN0aW9uKCl7ZS5faGFuZGxlT25FcnJvclN0YWNrSW5mby5hcHBseShlLGFyZ3VtZW50cyl9KSksZS5fZ2xvYmFsT3B0aW9ucy5jYXB0dXJlVW5oYW5kbGVkUmVqZWN0aW9ucyYmZS5fYXR0YWNoUHJvbWlzZVJlamVjdGlvbkhhbmRsZXIoKSxlLl9wYXRjaEZ1bmN0aW9uVG9TdHJpbmcoKSxlLl9nbG9iYWxPcHRpb25zLmluc3RydW1lbnQmJmUuX2dsb2JhbE9wdGlvbnMuaW5zdHJ1bWVudC50cnlDYXRjaCYmZS5faW5zdHJ1bWVudFRyeUNhdGNoKCksZS5fZ2xvYmFsT3B0aW9ucy5hdXRvQnJlYWRjcnVtYnMmJmUuX2luc3RydW1lbnRCcmVhZGNydW1icygpLGUuX2RyYWluUGx1Z2lucygpLGUuX2lzUmF2ZW5JbnN0YWxsZWQ9ITApLEVycm9yLnN0YWNrVHJhY2VMaW1pdD1lLl9nbG9iYWxPcHRpb25zLnN0YWNrVHJhY2VMaW1pdCx0aGlzfSxzZXREU046ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fcGFyc2VEU04oZSksbj10LnBhdGgubGFzdEluZGV4T2YoIi8iKSxyPXQucGF0aC5zdWJzdHIoMSxuKTt0aGlzLl9kc249ZSx0aGlzLl9nbG9iYWxLZXk9dC51c2VyLHRoaXMuX2dsb2JhbFNlY3JldD10LnBhc3MmJnQucGFzcy5zdWJzdHIoMSksdGhpcy5fZ2xvYmFsUHJvamVjdD10LnBhdGguc3Vic3RyKG4rMSksdGhpcy5fZ2xvYmFsU2VydmVyPXRoaXMuX2dldEdsb2JhbFNlcnZlcih0KSx0aGlzLl9nbG9iYWxFbmRwb2ludD10aGlzLl9nbG9iYWxTZXJ2ZXIrIi8iK3IrImFwaS8iK3RoaXMuX2dsb2JhbFByb2plY3QrIi9zdG9yZS8iLHRoaXMuX3Jlc2V0QmFja29mZigpfSxjb250ZXh0OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdihlKSYmKG49dHx8W10sdD1lLGU9e30pLHRoaXMud3JhcChlLHQpLmFwcGx5KHRoaXMsbil9LHdyYXA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXM7aWYoaCh0KSYmIXYoZSkpcmV0dXJuIGU7aWYodihlKSYmKHQ9ZSxlPXZvaWQgMCksIXYodCkpcmV0dXJuIHQ7dHJ5e2lmKHQuX19yYXZlbl9fKXJldHVybiB0O2lmKHQuX19yYXZlbl93cmFwcGVyX18pcmV0dXJuIHQuX19yYXZlbl93cmFwcGVyX199Y2F0Y2goYSl7cmV0dXJuIHR9ZnVuY3Rpb24gbygpe3ZhciBvPVtdLGk9YXJndW1lbnRzLmxlbmd0aCxzPSFlfHxlJiYhMSE9PWUuZGVlcDtmb3IobiYmdihuKSYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aS0tOylvW2ldPXM/ci53cmFwKGUsYXJndW1lbnRzW2ldKTphcmd1bWVudHNbaV07dHJ5e3JldHVybiB0LmFwcGx5KHRoaXMsbyl9Y2F0Y2goYSl7dGhyb3cgci5faWdub3JlTmV4dE9uRXJyb3IoKSxyLmNhcHR1cmVFeGNlcHRpb24oYSxlKSxhfX1mb3IodmFyIGkgaW4gdClFKHQsaSkmJihvW2ldPXRbaV0pO3JldHVybiBvLnByb3RvdHlwZT10LnByb3RvdHlwZSx0Ll9fcmF2ZW5fd3JhcHBlcl9fPW8sby5fX3JhdmVuX189ITAsby5fX29yaWdfXz10LG99LHVuaW5zdGFsbDpmdW5jdGlvbigpe3JldHVybiByLnJlcG9ydC51bmluc3RhbGwoKSx0aGlzLl9kZXRhY2hQcm9taXNlUmVqZWN0aW9uSGFuZGxlcigpLHRoaXMuX3VucGF0Y2hGdW5jdGlvblRvU3RyaW5nKCksdGhpcy5fcmVzdG9yZUJ1aWx0SW5zKCksdGhpcy5fcmVzdG9yZUNvbnNvbGUoKSxFcnJvci5zdGFja1RyYWNlTGltaXQ9dGhpcy5fb3JpZ2luYWxFcnJvclN0YWNrVHJhY2VMaW1pdCx0aGlzLl9pc1JhdmVuSW5zdGFsbGVkPSExLHRoaXN9LF9wcm9taXNlUmVqZWN0aW9uSGFuZGxlcjpmdW5jdGlvbihlKXt0aGlzLl9sb2dEZWJ1ZygiZGVidWciLCJSYXZlbiBjYXVnaHQgdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uOiIsZSksdGhpcy5jYXB0dXJlRXhjZXB0aW9uKGUucmVhc29uLHttZWNoYW5pc206e3R5cGU6Im9udW5oYW5kbGVkcmVqZWN0aW9uIixoYW5kbGVkOiExfX0pfSxfYXR0YWNoUHJvbWlzZVJlamVjdGlvbkhhbmRsZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvbWlzZVJlamVjdGlvbkhhbmRsZXI9dGhpcy5fcHJvbWlzZVJlamVjdGlvbkhhbmRsZXIuYmluZCh0aGlzKSx6LmFkZEV2ZW50TGlzdGVuZXImJnouYWRkRXZlbnRMaXN0ZW5lcigidW5oYW5kbGVkcmVqZWN0aW9uIix0aGlzLl9wcm9taXNlUmVqZWN0aW9uSGFuZGxlciksdGhpc30sX2RldGFjaFByb21pc2VSZWplY3Rpb25IYW5kbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHoucmVtb3ZlRXZlbnRMaXN0ZW5lciYmei5yZW1vdmVFdmVudExpc3RlbmVyKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHRoaXMuX3Byb21pc2VSZWplY3Rpb25IYW5kbGVyKSx0aGlzfSxjYXB0dXJlRXhjZXB0aW9uOmZ1bmN0aW9uKGUsdCl7aWYodD13KHt0cmltSGVhZEZyYW1lczowfSx0fHx7fSksdShlKSYmZS5lcnJvcillPWUuZXJyb3I7ZWxzZXtpZihjKGUpfHxsKGUpKXt2YXIgbj1lLm5hbWV8fChjKGUpPyJET01FcnJvciI6IkRPTUV4Y2VwdGlvbiIpLG89ZS5tZXNzYWdlP24rIjogIitlLm1lc3NhZ2U6bjtyZXR1cm4gdGhpcy5jYXB0dXJlTWVzc2FnZShvLHcodCx7c3RhY2t0cmFjZTohMCx0cmltSGVhZEZyYW1lczp0LnRyaW1IZWFkRnJhbWVzKzF9KSl9aWYoZihlKSllPWU7ZWxzZXtpZighcChlKSlyZXR1cm4gdGhpcy5jYXB0dXJlTWVzc2FnZShlLHcodCx7c3RhY2t0cmFjZTohMCx0cmltSGVhZEZyYW1lczp0LnRyaW1IZWFkRnJhbWVzKzF9KSk7dD10aGlzLl9nZXRDYXB0dXJlRXhjZXB0aW9uT3B0aW9uc0Zyb21QbGFpbk9iamVjdCh0LGUpLGU9bmV3IEVycm9yKHQubWVzc2FnZSl9fXRoaXMuX2xhc3RDYXB0dXJlZEV4Y2VwdGlvbj1lO3RyeXt2YXIgaT1yLmNvbXB1dGVTdGFja1RyYWNlKGUpO3RoaXMuX2hhbmRsZVN0YWNrSW5mbyhpLHQpfWNhdGNoKGEpe2lmKGUhPT1hKXRocm93IGF9cmV0dXJuIHRoaXN9LF9nZXRDYXB0dXJlRXhjZXB0aW9uT3B0aW9uc0Zyb21QbGFpbk9iamVjdDpmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKHQpLnNvcnQoKSxyPXcoZSx7bWVzc2FnZToiTm9uLUVycm9yIGV4Y2VwdGlvbiBjYXB0dXJlZCB3aXRoIGtleXM6ICIrRChuKSxmaW5nZXJwcmludDpbaShuKV0sZXh0cmE6ZS5leHRyYXx8e319KTtyZXR1cm4gci5leHRyYS5fX3NlcmlhbGl6ZWRfXz1OKHQpLHJ9LGNhcHR1cmVNZXNzYWdlOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuX2dsb2JhbE9wdGlvbnMuaWdub3JlRXJyb3JzLnRlc3R8fCF0aGlzLl9nbG9iYWxPcHRpb25zLmlnbm9yZUVycm9ycy50ZXN0KGUpKXt2YXIgbixvPXcoe21lc3NhZ2U6ZSs9IiJ9LHQ9dHx8e30pO3RyeXt0aHJvdyBuZXcgRXJyb3IoZSl9Y2F0Y2goYyl7bj1jfW4ubmFtZT1udWxsO3ZhciBpPXIuY29tcHV0ZVN0YWNrVHJhY2UobiksYT15KGkuc3RhY2spJiZpLnN0YWNrWzFdO2EmJiJSYXZlbi5jYXB0dXJlRXhjZXB0aW9uIj09PWEuZnVuYyYmKGE9aS5zdGFja1syXSk7dmFyIHM9YSYmYS51cmx8fCIiO2lmKCghdGhpcy5fZ2xvYmFsT3B0aW9ucy5pZ25vcmVVcmxzLnRlc3R8fCF0aGlzLl9nbG9iYWxPcHRpb25zLmlnbm9yZVVybHMudGVzdChzKSkmJighdGhpcy5fZ2xvYmFsT3B0aW9ucy53aGl0ZWxpc3RVcmxzLnRlc3R8fHRoaXMuX2dsb2JhbE9wdGlvbnMud2hpdGVsaXN0VXJscy50ZXN0KHMpKSl7aWYodGhpcy5fZ2xvYmFsT3B0aW9ucy5zdGFja3RyYWNlfHx0LnN0YWNrdHJhY2V8fCIiPT09by5tZXNzYWdlKXtvLmZpbmdlcnByaW50PW51bGw9PW8uZmluZ2VycHJpbnQ/ZTpvLmZpbmdlcnByaW50LCh0PXcoe3RyaW1IZWFkRnJhbWVzOjB9LHQpKS50cmltSGVhZEZyYW1lcys9MTt2YXIgdT10aGlzLl9wcmVwYXJlRnJhbWVzKGksdCk7by5zdGFja3RyYWNlPXtmcmFtZXM6dS5yZXZlcnNlKCl9fXJldHVybiBvLmZpbmdlcnByaW50JiYoby5maW5nZXJwcmludD15KG8uZmluZ2VycHJpbnQpP28uZmluZ2VycHJpbnQ6W28uZmluZ2VycHJpbnRdKSx0aGlzLl9zZW5kKG8pLHRoaXN9fX0sY2FwdHVyZUJyZWFkY3J1bWI6ZnVuY3Rpb24oZSl7dmFyIHQ9dyh7dGltZXN0YW1wOlUoKS8xZTN9LGUpO2lmKHYodGhpcy5fZ2xvYmFsT3B0aW9ucy5icmVhZGNydW1iQ2FsbGJhY2spKXt2YXIgbj10aGlzLl9nbG9iYWxPcHRpb25zLmJyZWFkY3J1bWJDYWxsYmFjayh0KTtpZihkKG4pJiYhbShuKSl0PW47ZWxzZSBpZighMT09PW4pcmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzLnB1c2godCksdGhpcy5fYnJlYWRjcnVtYnMubGVuZ3RoPnRoaXMuX2dsb2JhbE9wdGlvbnMubWF4QnJlYWRjcnVtYnMmJnRoaXMuX2JyZWFkY3J1bWJzLnNoaWZ0KCksdGhpc30sYWRkUGx1Z2luOmZ1bmN0aW9uKGUpe3ZhciB0PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiB0aGlzLl9wbHVnaW5zLnB1c2goW2UsdF0pLHRoaXMuX2lzUmF2ZW5JbnN0YWxsZWQmJnRoaXMuX2RyYWluUGx1Z2lucygpLHRoaXN9LHNldFVzZXJDb250ZXh0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9nbG9iYWxDb250ZXh0LnVzZXI9ZSx0aGlzfSxzZXRFeHRyYUNvbnRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX21lcmdlQ29udGV4dCgiZXh0cmEiLGUpLHRoaXN9LHNldFRhZ3NDb250ZXh0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9tZXJnZUNvbnRleHQoInRhZ3MiLGUpLHRoaXN9LGNsZWFyQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9nbG9iYWxDb250ZXh0PXt9LHRoaXN9LGdldENvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZShvKHRoaXMuX2dsb2JhbENvbnRleHQpKX0sc2V0RW52aXJvbm1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2dsb2JhbE9wdGlvbnMuZW52aXJvbm1lbnQ9ZSx0aGlzfSxzZXRSZWxlYXNlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9nbG9iYWxPcHRpb25zLnJlbGVhc2U9ZSx0aGlzfSxzZXREYXRhQ2FsbGJhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZ2xvYmFsT3B0aW9ucy5kYXRhQ2FsbGJhY2s7cmV0dXJuIHRoaXMuX2dsb2JhbE9wdGlvbnMuZGF0YUNhbGxiYWNrPVcodCxlKSx0aGlzfSxzZXRCcmVhZGNydW1iQ2FsbGJhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZ2xvYmFsT3B0aW9ucy5icmVhZGNydW1iQ2FsbGJhY2s7cmV0dXJuIHRoaXMuX2dsb2JhbE9wdGlvbnMuYnJlYWRjcnVtYkNhbGxiYWNrPVcodCxlKSx0aGlzfSxzZXRTaG91bGRTZW5kQ2FsbGJhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZ2xvYmFsT3B0aW9ucy5zaG91bGRTZW5kQ2FsbGJhY2s7cmV0dXJuIHRoaXMuX2dsb2JhbE9wdGlvbnMuc2hvdWxkU2VuZENhbGxiYWNrPVcodCxlKSx0aGlzfSxzZXRUcmFuc3BvcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2dsb2JhbE9wdGlvbnMudHJhbnNwb3J0PWUsdGhpc30sbGFzdEV4Y2VwdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXN0Q2FwdHVyZWRFeGNlcHRpb259LGxhc3RFdmVudElkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xhc3RFdmVudElkfSxpc1NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9oYXNKU09OJiYoISF0aGlzLl9nbG9iYWxTZXJ2ZXJ8fCh0aGlzLnJhdmVuTm90Q29uZmlndXJlZEVycm9yfHwodGhpcy5yYXZlbk5vdENvbmZpZ3VyZWRFcnJvcj0hMCx0aGlzLl9sb2dEZWJ1ZygiZXJyb3IiLCJFcnJvcjogUmF2ZW4gaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQuIikpLCExKSl9LGFmdGVyTG9hZDpmdW5jdGlvbigpe3ZhciBlPXouUmF2ZW5Db25maWc7ZSYmdGhpcy5jb25maWcoZS5kc24sZS5jb25maWcpLmluc3RhbGwoKX0sc2hvd1JlcG9ydERpYWxvZzpmdW5jdGlvbihlKXtpZihWKXtpZighKGU9dyh7ZXZlbnRJZDp0aGlzLmxhc3RFdmVudElkKCksZHNuOnRoaXMuX2Rzbix1c2VyOnRoaXMuX2dsb2JhbENvbnRleHQudXNlcnx8e319LGUpKS5ldmVudElkKXRocm93IG5ldyBhKCJNaXNzaW5nIGV2ZW50SWQiKTtpZighZS5kc24pdGhyb3cgbmV3IGEoIk1pc3NpbmcgRFNOIik7dmFyIHQ9ZW5jb2RlVVJJQ29tcG9uZW50LG49W107Zm9yKHZhciByIGluIGUpaWYoInVzZXIiPT09cil7dmFyIG89ZS51c2VyO28ubmFtZSYmbi5wdXNoKCJuYW1lPSIrdChvLm5hbWUpKSxvLmVtYWlsJiZuLnB1c2goImVtYWlsPSIrdChvLmVtYWlsKSl9ZWxzZSBuLnB1c2godChyKSsiPSIrdChlW3JdKSk7dmFyIGk9dGhpcy5fZ2V0R2xvYmFsU2VydmVyKHRoaXMuX3BhcnNlRFNOKGUuZHNuKSkscz1WLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3MuYXN5bmM9ITAscy5zcmM9aSsiL2FwaS9lbWJlZC9lcnJvci1wYWdlLz8iK24uam9pbigiJiIpLChWLmhlYWR8fFYuYm9keSkuYXBwZW5kQ2hpbGQocyl9fSxfaWdub3JlTmV4dE9uRXJyb3I6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2lnbm9yZU9uRXJyb3IrPTEsc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLl9pZ25vcmVPbkVycm9yLT0xfSkpfSxfdHJpZ2dlckV2ZW50OmZ1bmN0aW9uKGUsdCl7dmFyIG4scjtpZih0aGlzLl9oYXNEb2N1bWVudCl7Zm9yKHIgaW4gdD10fHx7fSxlPSJyYXZlbiIrZS5zdWJzdHIoMCwxKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyKDEpLFYuY3JlYXRlRXZlbnQ/KG49Vi5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpKS5pbml0RXZlbnQoZSwhMCwhMCk6KG49Vi5jcmVhdGVFdmVudE9iamVjdCgpKS5ldmVudFR5cGU9ZSx0KUUodCxyKSYmKG5bcl09dFtyXSk7aWYoVi5jcmVhdGVFdmVudClWLmRpc3BhdGNoRXZlbnQobik7ZWxzZSB0cnl7Vi5maXJlRXZlbnQoIm9uIituLmV2ZW50VHlwZS50b0xvd2VyQ2FzZSgpLG4pfWNhdGNoKG8pe319fSxfYnJlYWRjcnVtYkV2ZW50SGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiBmdW5jdGlvbihuKXtpZih0Ll9rZXlwcmVzc1RpbWVvdXQ9bnVsbCx0Ll9sYXN0Q2FwdHVyZWRFdmVudCE9PW4pe3ZhciByO3QuX2xhc3RDYXB0dXJlZEV2ZW50PW47dHJ5e3I9eChuLnRhcmdldCl9Y2F0Y2gobyl7cj0iPHVua25vd24+In10LmNhcHR1cmVCcmVhZGNydW1iKHtjYXRlZ29yeToidWkuIitlLG1lc3NhZ2U6cn0pfX19LF9rZXlwcmVzc0V2ZW50SGFuZGxlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuO3RyeXtuPXQudGFyZ2V0fWNhdGNoKGkpe3JldHVybn12YXIgcj1uJiZuLnRhZ05hbWU7aWYociYmKCJJTlBVVCI9PT1yfHwiVEVYVEFSRUEiPT09cnx8bi5pc0NvbnRlbnRFZGl0YWJsZSkpe3ZhciBvPWUuX2tleXByZXNzVGltZW91dDtvfHxlLl9icmVhZGNydW1iRXZlbnRIYW5kbGVyKCJpbnB1dCIpKHQpLGNsZWFyVGltZW91dChvKSxlLl9rZXlwcmVzc1RpbWVvdXQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLl9rZXlwcmVzc1RpbWVvdXQ9bnVsbH0pLDFlMyl9fX0sX2NhcHR1cmVVcmxDaGFuZ2U6ZnVuY3Rpb24oZSx0KXt2YXIgbj1UKHRoaXMuX2xvY2F0aW9uLmhyZWYpLHI9VCh0KSxvPVQoZSk7dGhpcy5fbGFzdEhyZWY9dCxuLnByb3RvY29sPT09ci5wcm90b2NvbCYmbi5ob3N0PT09ci5ob3N0JiYodD1yLnJlbGF0aXZlKSxuLnByb3RvY29sPT09by5wcm90b2NvbCYmbi5ob3N0PT09by5ob3N0JiYoZT1vLnJlbGF0aXZlKSx0aGlzLmNhcHR1cmVCcmVhZGNydW1iKHtjYXRlZ29yeToibmF2aWdhdGlvbiIsZGF0YTp7dG86dCxmcm9tOmV9fSl9LF9wYXRjaEZ1bmN0aW9uVG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuX29yaWdpbmFsRnVuY3Rpb25Ub1N0cmluZz1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiB0aGlzJiZ0aGlzLl9fcmF2ZW5fXz9lLl9vcmlnaW5hbEZ1bmN0aW9uVG9TdHJpbmcuYXBwbHkodGhpcy5fX29yaWdfXyxhcmd1bWVudHMpOmUuX29yaWdpbmFsRnVuY3Rpb25Ub1N0cmluZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxfdW5wYXRjaEZ1bmN0aW9uVG9TdHJpbmc6ZnVuY3Rpb24oKXt0aGlzLl9vcmlnaW5hbEZ1bmN0aW9uVG9TdHJpbmcmJihGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9dGhpcy5fb3JpZ2luYWxGdW5jdGlvblRvU3RyaW5nKX0sX2luc3RydW1lbnRUcnlDYXRjaDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl93cmFwcGVkQnVpbHRJbnM7ZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24obixyKXtmb3IodmFyIG89bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGk9MDtpPG8ubGVuZ3RoOysraSlvW2ldPWFyZ3VtZW50c1tpXTt2YXIgYT1vWzBdO3JldHVybiB2KGEpJiYob1swXT1lLndyYXAoe21lY2hhbmlzbTp7dHlwZToiaW5zdHJ1bWVudCIsZGF0YTp7ZnVuY3Rpb246dC5uYW1lfHwiPGFub255bW91cz4ifX19LGEpKSx0LmFwcGx5P3QuYXBwbHkodGhpcyxvKTp0KG9bMF0sb1sxXSl9fXZhciByPXRoaXMuX2dsb2JhbE9wdGlvbnMuYXV0b0JyZWFkY3J1bWJzO2Z1bmN0aW9uIG8obil7dmFyIG89eltuXSYmeltuXS5wcm90b3R5cGU7byYmby5oYXNPd25Qcm9wZXJ0eSYmby5oYXNPd25Qcm9wZXJ0eSgiYWRkRXZlbnRMaXN0ZW5lciIpJiYoUChvLCJhZGRFdmVudExpc3RlbmVyIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG8saSxhLHMpe3RyeXtpJiZpLmhhbmRsZUV2ZW50JiYoaS5oYW5kbGVFdmVudD1lLndyYXAoe21lY2hhbmlzbTp7dHlwZToiaW5zdHJ1bWVudCIsZGF0YTp7dGFyZ2V0Om4sZnVuY3Rpb246ImhhbmRsZUV2ZW50IixoYW5kbGVyOmkmJmkubmFtZXx8Ijxhbm9ueW1vdXM+In19fSxpLmhhbmRsZUV2ZW50KSl9Y2F0Y2goZil7fXZhciB1LGMsbDtyZXR1cm4gciYmci5kb20mJigiRXZlbnRUYXJnZXQiPT09bnx8Ik5vZGUiPT09bikmJihjPWUuX2JyZWFkY3J1bWJFdmVudEhhbmRsZXIoImNsaWNrIiksbD1lLl9rZXlwcmVzc0V2ZW50SGFuZGxlcigpLHU9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ7dHJ5e3Q9ZS50eXBlfWNhdGNoKG4pe3JldHVybn1yZXR1cm4iY2xpY2siPT09dD9jKGUpOiJrZXlwcmVzcyI9PT10P2woZSk6dm9pZCAwfX0pLHQuY2FsbCh0aGlzLG8sZS53cmFwKHttZWNoYW5pc206e3R5cGU6Imluc3RydW1lbnQiLGRhdGE6e3RhcmdldDpuLGZ1bmN0aW9uOiJhZGRFdmVudExpc3RlbmVyIixoYW5kbGVyOmkmJmkubmFtZXx8Ijxhbm9ueW1vdXM+In19fSxpLHUpLGEscyl9fSksdCksUChvLCJyZW1vdmVFdmVudExpc3RlbmVyIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbixyLG8pe3RyeXtuPW4mJihuLl9fcmF2ZW5fd3JhcHBlcl9fP24uX19yYXZlbl93cmFwcGVyX186bil9Y2F0Y2goaSl7fXJldHVybiBlLmNhbGwodGhpcyx0LG4scixvKX19KSx0KSl9UCh6LCJzZXRUaW1lb3V0IixuLHQpLFAoeiwic2V0SW50ZXJ2YWwiLG4sdCksei5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJlAoeiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KGUud3JhcCh7bWVjaGFuaXNtOnt0eXBlOiJpbnN0cnVtZW50IixkYXRhOntmdW5jdGlvbjoicmVxdWVzdEFuaW1hdGlvbkZyYW1lIixoYW5kbGVyOnQmJnQubmFtZXx8Ijxhbm9ueW1vdXM+In19fSxuKSl9fSksdCk7Zm9yKHZhciBpPVsiRXZlbnRUYXJnZXQiLCJXaW5kb3ciLCJOb2RlIiwiQXBwbGljYXRpb25DYWNoZSIsIkF1ZGlvVHJhY2tMaXN0IiwiQ2hhbm5lbE1lcmdlck5vZGUiLCJDcnlwdG9PcGVyYXRpb24iLCJFdmVudFNvdXJjZSIsIkZpbGVSZWFkZXIiLCJIVE1MVW5rbm93bkVsZW1lbnQiLCJJREJEYXRhYmFzZSIsIklEQlJlcXVlc3QiLCJJREJUcmFuc2FjdGlvbiIsIktleU9wZXJhdGlvbiIsIk1lZGlhQ29udHJvbGxlciIsIk1lc3NhZ2VQb3J0IiwiTW9kYWxXaW5kb3ciLCJOb3RpZmljYXRpb24iLCJTVkdFbGVtZW50SW5zdGFuY2UiLCJTY3JlZW4iLCJUZXh0VHJhY2siLCJUZXh0VHJhY2tDdWUiLCJUZXh0VHJhY2tMaXN0IiwiV2ViU29ja2V0IiwiV2ViU29ja2V0V29ya2VyIiwiV29ya2VyIiwiWE1MSHR0cFJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0IiwiWE1MSHR0cFJlcXVlc3RVcGxvYWQiXSxhPTA7YTxpLmxlbmd0aDthKyspbyhpW2FdKX0sX2luc3RydW1lbnRCcmVhZGNydW1iczpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl9nbG9iYWxPcHRpb25zLmF1dG9CcmVhZGNydW1icyxuPWUuX3dyYXBwZWRCdWlsdElucztmdW5jdGlvbiByKHQsbil7dCBpbiBuJiZ2KG5bdF0pJiZQKG4sdCwoZnVuY3Rpb24obil7cmV0dXJuIGUud3JhcCh7bWVjaGFuaXNtOnt0eXBlOiJpbnN0cnVtZW50IixkYXRhOntmdW5jdGlvbjp0LGhhbmRsZXI6biYmbi5uYW1lfHwiPGFub255bW91cz4ifX19LG4pfSkpfWlmKHQueGhyJiYiWE1MSHR0cFJlcXVlc3QiaW4geil7dmFyIG89ei5YTUxIdHRwUmVxdWVzdCYmei5YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU7UChvLCJvcGVuIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4scil7cmV0dXJuIGcocikmJi0xPT09ci5pbmRleE9mKGUuX2dsb2JhbEtleSkmJih0aGlzLl9fcmF2ZW5feGhyPXttZXRob2Q6bix1cmw6cixzdGF0dXNfY29kZTpudWxsfSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSksbiksUChvLCJzZW5kIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcztmdW5jdGlvbiBvKCl7aWYobi5fX3JhdmVuX3hociYmND09PW4ucmVhZHlTdGF0ZSl7dHJ5e24uX19yYXZlbl94aHIuc3RhdHVzX2NvZGU9bi5zdGF0dXN9Y2F0Y2godCl7fWUuY2FwdHVyZUJyZWFkY3J1bWIoe3R5cGU6Imh0dHAiLGNhdGVnb3J5OiJ4aHIiLGRhdGE6bi5fX3JhdmVuX3hocn0pfX1mb3IodmFyIGk9WyJvbmxvYWQiLCJvbmVycm9yIiwib25wcm9ncmVzcyJdLGE9MDthPGkubGVuZ3RoO2ErKylyKGlbYV0sbik7cmV0dXJuIm9ucmVhZHlzdGF0ZWNoYW5nZSJpbiBuJiZ2KG4ub25yZWFkeXN0YXRlY2hhbmdlKT9QKG4sIm9ucmVhZHlzdGF0ZWNoYW5nZSIsKGZ1bmN0aW9uKHQpe3JldHVybiBlLndyYXAoe21lY2hhbmlzbTp7dHlwZToiaW5zdHJ1bWVudCIsZGF0YTp7ZnVuY3Rpb246Im9ucmVhZHlzdGF0ZWNoYW5nZSIsaGFuZGxlcjp0JiZ0Lm5hbWV8fCI8YW5vbnltb3VzPiJ9fX0sdCxvKX0pKTpuLm9ucmVhZHlzdGF0ZWNoYW5nZT1vLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pLG4pfXQueGhyJiZJKCkmJlAoeiwiZmV0Y2giLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHI9MDtyPG4ubGVuZ3RoOysrciluW3JdPWFyZ3VtZW50c1tyXTt2YXIgbyxpPW5bMF0sYT0iR0VUIjtpZigic3RyaW5nIj09PXR5cGVvZiBpP289aToiUmVxdWVzdCJpbiB6JiZpIGluc3RhbmNlb2Ygei5SZXF1ZXN0PyhvPWkudXJsLGkubWV0aG9kJiYoYT1pLm1ldGhvZCkpOm89IiIraSwtMSE9PW8uaW5kZXhPZihlLl9nbG9iYWxLZXkpKXJldHVybiB0LmFwcGx5KHRoaXMsbik7blsxXSYmblsxXS5tZXRob2QmJihhPW5bMV0ubWV0aG9kKTt2YXIgcz17bWV0aG9kOmEsdXJsOm8sc3RhdHVzX2NvZGU6bnVsbH07cmV0dXJuIHQuYXBwbHkodGhpcyxuKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gcy5zdGF0dXNfY29kZT10LnN0YXR1cyxlLmNhcHR1cmVCcmVhZGNydW1iKHt0eXBlOiJodHRwIixjYXRlZ29yeToiZmV0Y2giLGRhdGE6c30pLHR9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3Rocm93IGUuY2FwdHVyZUJyZWFkY3J1bWIoe3R5cGU6Imh0dHAiLGNhdGVnb3J5OiJmZXRjaCIsZGF0YTpzLGxldmVsOiJlcnJvciJ9KSx0fSkpfX0pLG4pLHQuZG9tJiZ0aGlzLl9oYXNEb2N1bWVudCYmKFYuYWRkRXZlbnRMaXN0ZW5lcj8oVi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZS5fYnJlYWRjcnVtYkV2ZW50SGFuZGxlcigiY2xpY2siKSwhMSksVi5hZGRFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsZS5fa2V5cHJlc3NFdmVudEhhbmRsZXIoKSwhMSkpOlYuYXR0YWNoRXZlbnQmJihWLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixlLl9icmVhZGNydW1iRXZlbnRIYW5kbGVyKCJjbGljayIpKSxWLmF0dGFjaEV2ZW50KCJvbmtleXByZXNzIixlLl9rZXlwcmVzc0V2ZW50SGFuZGxlcigpKSkpO3ZhciBpPXouY2hyb21lLGE9IShpJiZpLmFwcCYmaS5hcHAucnVudGltZSkmJnouaGlzdG9yeSYmei5oaXN0b3J5LnB1c2hTdGF0ZSYmei5oaXN0b3J5LnJlcGxhY2VTdGF0ZTtpZih0LmxvY2F0aW9uJiZhKXt2YXIgcz16Lm9ucG9wc3RhdGU7ei5vbnBvcHN0YXRlPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5fbG9jYXRpb24uaHJlZjtpZihlLl9jYXB0dXJlVXJsQ2hhbmdlKGUuX2xhc3RIcmVmLHQpLHMpcmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgdT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtyZXR1cm4gbiYmZS5fY2FwdHVyZVVybENoYW5nZShlLl9sYXN0SHJlZixuKyIiKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19O1Aoei5oaXN0b3J5LCJwdXNoU3RhdGUiLHUsbiksUCh6Lmhpc3RvcnksInJlcGxhY2VTdGF0ZSIsdSxuKX1pZih0LmNvbnNvbGUmJiJjb25zb2xlImluIHomJmNvbnNvbGUubG9nKXt2YXIgYz1mdW5jdGlvbih0LG4pe2UuY2FwdHVyZUJyZWFkY3J1bWIoe21lc3NhZ2U6dCxsZXZlbDpuLmxldmVsLGNhdGVnb3J5OiJjb25zb2xlIn0pfTtiKFsiZGVidWciLCJpbmZvIiwid2FybiIsImVycm9yIiwibG9nIl0sKGZ1bmN0aW9uKGUsdCl7Rihjb25zb2xlLHQsYyl9KSl9fSxfcmVzdG9yZUJ1aWx0SW5zOmZ1bmN0aW9uKCl7Zm9yKHZhciBlO3RoaXMuX3dyYXBwZWRCdWlsdElucy5sZW5ndGg7KXt2YXIgdD0oZT10aGlzLl93cmFwcGVkQnVpbHRJbnMuc2hpZnQoKSlbMF0sbj1lWzFdLHI9ZVsyXTt0W25dPXJ9fSxfcmVzdG9yZUNvbnNvbGU6ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5fb3JpZ2luYWxDb25zb2xlTWV0aG9kcyl0aGlzLl9vcmlnaW5hbENvbnNvbGVbZV09dGhpcy5fb3JpZ2luYWxDb25zb2xlTWV0aG9kc1tlXX0sX2RyYWluUGx1Z2luczpmdW5jdGlvbigpe3ZhciBlPXRoaXM7Yih0aGlzLl9wbHVnaW5zLChmdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sbz1uWzFdO3IuYXBwbHkoZSxbZV0uY29uY2F0KG8pKX0pKX0sX3BhcnNlRFNOOmZ1bmN0aW9uKGUpe3ZhciB0PUIuZXhlYyhlKSxuPXt9LHI9Nzt0cnl7Zm9yKDtyLS07KW5bTVtyXV09dFtyXXx8IiJ9Y2F0Y2gobyl7dGhyb3cgbmV3IGEoIkludmFsaWQgRFNOOiAiK2UpfWlmKG4ucGFzcyYmIXRoaXMuX2dsb2JhbE9wdGlvbnMuYWxsb3dTZWNyZXRLZXkpdGhyb3cgbmV3IGEoIkRvIG5vdCBzcGVjaWZ5IHlvdXIgc2VjcmV0IGtleSBpbiB0aGUgRFNOLiBTZWU6IGh0dHA6Ly9iaXQubHkvcmF2ZW4tc2VjcmV0LWtleSIpO3JldHVybiBufSxfZ2V0R2xvYmFsU2VydmVyOmZ1bmN0aW9uKGUpe3ZhciB0PSIvLyIrZS5ob3N0KyhlLnBvcnQ/IjoiK2UucG9ydDoiIik7cmV0dXJuIGUucHJvdG9jb2wmJih0PWUucHJvdG9jb2wrIjoiK3QpLHR9LF9oYW5kbGVPbkVycm9yU3RhY2tJbmZvOmZ1bmN0aW9uKGUsdCl7KHQ9dHx8e30pLm1lY2hhbmlzbT10Lm1lY2hhbmlzbXx8e3R5cGU6Im9uZXJyb3IiLGhhbmRsZWQ6ITF9LHRoaXMuX2lnbm9yZU9uRXJyb3J8fHRoaXMuX2hhbmRsZVN0YWNrSW5mbyhlLHQpfSxfaGFuZGxlU3RhY2tJbmZvOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fcHJlcGFyZUZyYW1lcyhlLHQpO3RoaXMuX3RyaWdnZXJFdmVudCgiaGFuZGxlIix7c3RhY2tJbmZvOmUsb3B0aW9uczp0fSksdGhpcy5fcHJvY2Vzc0V4Y2VwdGlvbihlLm5hbWUsZS5tZXNzYWdlLGUudXJsLGUubGluZW5vLG4sdCl9LF9wcmVwYXJlRnJhbWVzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPVtdO2lmKGUuc3RhY2smJmUuc3RhY2subGVuZ3RoJiYoYihlLnN0YWNrLChmdW5jdGlvbih0LG8pe3ZhciBpPW4uX25vcm1hbGl6ZUZyYW1lKG8sZS51cmwpO2kmJnIucHVzaChpKX0pKSx0JiZ0LnRyaW1IZWFkRnJhbWVzKSlmb3IodmFyIG89MDtvPHQudHJpbUhlYWRGcmFtZXMmJm88ci5sZW5ndGg7bysrKXJbb10uaW5fYXBwPSExO3JldHVybiByPXIuc2xpY2UoMCx0aGlzLl9nbG9iYWxPcHRpb25zLnN0YWNrVHJhY2VMaW1pdCl9LF9ub3JtYWxpemVGcmFtZTpmdW5jdGlvbihlLHQpe3ZhciBuPXtmaWxlbmFtZTplLnVybCxsaW5lbm86ZS5saW5lLGNvbG5vOmUuY29sdW1uLGZ1bmN0aW9uOmUuZnVuY3x8Ij8ifTtyZXR1cm4gZS51cmx8fChuLmZpbGVuYW1lPXQpLG4uaW5fYXBwPSEodGhpcy5fZ2xvYmFsT3B0aW9ucy5pbmNsdWRlUGF0aHMudGVzdCYmIXRoaXMuX2dsb2JhbE9wdGlvbnMuaW5jbHVkZVBhdGhzLnRlc3Qobi5maWxlbmFtZSl8fC8oUmF2ZW58VHJhY2VLaXQpXC4vLnRlc3Qobi5mdW5jdGlvbil8fC9yYXZlblwuKG1pblwuKT9qcyQvLnRlc3Qobi5maWxlbmFtZSkpLG59LF9wcm9jZXNzRXhjZXB0aW9uOmZ1bmN0aW9uKGUsdCxuLHIsbyxpKXt2YXIgYSxzPShlP2UrIjogIjoiIikrKHR8fCIiKTtpZigoIXRoaXMuX2dsb2JhbE9wdGlvbnMuaWdub3JlRXJyb3JzLnRlc3R8fCF0aGlzLl9nbG9iYWxPcHRpb25zLmlnbm9yZUVycm9ycy50ZXN0KHQpJiYhdGhpcy5fZ2xvYmFsT3B0aW9ucy5pZ25vcmVFcnJvcnMudGVzdChzKSkmJihvJiZvLmxlbmd0aD8obj1vWzBdLmZpbGVuYW1lfHxuLG8ucmV2ZXJzZSgpLGE9e2ZyYW1lczpvfSk6biYmKGE9e2ZyYW1lczpbe2ZpbGVuYW1lOm4sbGluZW5vOnIsaW5fYXBwOiEwfV19KSwoIXRoaXMuX2dsb2JhbE9wdGlvbnMuaWdub3JlVXJscy50ZXN0fHwhdGhpcy5fZ2xvYmFsT3B0aW9ucy5pZ25vcmVVcmxzLnRlc3QobikpJiYoIXRoaXMuX2dsb2JhbE9wdGlvbnMud2hpdGVsaXN0VXJscy50ZXN0fHx0aGlzLl9nbG9iYWxPcHRpb25zLndoaXRlbGlzdFVybHMudGVzdChuKSkpKXt2YXIgdT13KHtleGNlcHRpb246e3ZhbHVlczpbe3R5cGU6ZSx2YWx1ZTp0LHN0YWNrdHJhY2U6YX1dfSx0cmFuc2FjdGlvbjpufSxpKSxjPXUuZXhjZXB0aW9uLnZhbHVlc1swXTtudWxsPT1jLnR5cGUmJiIiPT09Yy52YWx1ZSYmKGMudmFsdWU9IlVucmVjb3ZlcmFibGUgZXJyb3IgY2F1Z2h0IiksIXUuZXhjZXB0aW9uLm1lY2hhbmlzbSYmdS5tZWNoYW5pc20mJih1LmV4Y2VwdGlvbi5tZWNoYW5pc209dS5tZWNoYW5pc20sZGVsZXRlIHUubWVjaGFuaXNtKSx1LmV4Y2VwdGlvbi5tZWNoYW5pc209dyh7dHlwZToiZ2VuZXJpYyIsaGFuZGxlZDohMH0sdS5leGNlcHRpb24ubWVjaGFuaXNtfHx7fSksdGhpcy5fc2VuZCh1KX19LF90cmltUGFja2V0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2dsb2JhbE9wdGlvbnMubWF4TWVzc2FnZUxlbmd0aDtpZihlLm1lc3NhZ2UmJihlLm1lc3NhZ2U9TyhlLm1lc3NhZ2UsdCkpLGUuZXhjZXB0aW9uKXt2YXIgbj1lLmV4Y2VwdGlvbi52YWx1ZXNbMF07bi52YWx1ZT1PKG4udmFsdWUsdCl9dmFyIHI9ZS5yZXF1ZXN0O3JldHVybiByJiYoci51cmwmJihyLnVybD1PKHIudXJsLHRoaXMuX2dsb2JhbE9wdGlvbnMubWF4VXJsTGVuZ3RoKSksci5SZWZlcmVyJiYoci5SZWZlcmVyPU8oci5SZWZlcmVyLHRoaXMuX2dsb2JhbE9wdGlvbnMubWF4VXJsTGVuZ3RoKSkpLGUuYnJlYWRjcnVtYnMmJmUuYnJlYWRjcnVtYnMudmFsdWVzJiZ0aGlzLl90cmltQnJlYWRjcnVtYnMoZS5icmVhZGNydW1icyksZX0sX3RyaW1CcmVhZGNydW1iczpmdW5jdGlvbihlKXtmb3IodmFyIHQsbixyLG89WyJ0byIsImZyb20iLCJ1cmwiXSxpPTA7aTxlLnZhbHVlcy5sZW5ndGg7KytpKWlmKChuPWUudmFsdWVzW2ldKS5oYXNPd25Qcm9wZXJ0eSgiZGF0YSIpJiZkKG4uZGF0YSkmJiFfKG4uZGF0YSkpe3I9dyh7fSxuLmRhdGEpO2Zvcih2YXIgYT0wO2E8by5sZW5ndGg7KythKXQ9b1thXSxyLmhhc093blByb3BlcnR5KHQpJiZyW3RdJiYoclt0XT1PKHJbdF0sdGhpcy5fZ2xvYmFsT3B0aW9ucy5tYXhVcmxMZW5ndGgpKTtlLnZhbHVlc1tpXS5kYXRhPXJ9fSxfZ2V0SHR0cERhdGE6ZnVuY3Rpb24oKXtpZih0aGlzLl9oYXNOYXZpZ2F0b3J8fHRoaXMuX2hhc0RvY3VtZW50KXt2YXIgZT17fTtyZXR1cm4gdGhpcy5faGFzTmF2aWdhdG9yJiZILnVzZXJBZ2VudCYmKGUuaGVhZGVycz17IlVzZXItQWdlbnQiOkgudXNlckFnZW50fSksei5sb2NhdGlvbiYmei5sb2NhdGlvbi5ocmVmJiYoZS51cmw9ei5sb2NhdGlvbi5ocmVmKSx0aGlzLl9oYXNEb2N1bWVudCYmVi5yZWZlcnJlciYmKGUuaGVhZGVyc3x8KGUuaGVhZGVycz17fSksZS5oZWFkZXJzLlJlZmVyZXI9Vi5yZWZlcnJlciksZX19LF9yZXNldEJhY2tvZmY6ZnVuY3Rpb24oKXt0aGlzLl9iYWNrb2ZmRHVyYXRpb249MCx0aGlzLl9iYWNrb2ZmU3RhcnQ9bnVsbH0sX3Nob3VsZEJhY2tvZmY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja29mZkR1cmF0aW9uJiZVKCktdGhpcy5fYmFja29mZlN0YXJ0PHRoaXMuX2JhY2tvZmZEdXJhdGlvbn0sX2lzUmVwZWF0RGF0YTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9sYXN0RGF0YTtyZXR1cm4hKCF0fHxlLm1lc3NhZ2UhPT10Lm1lc3NhZ2V8fGUudHJhbnNhY3Rpb24hPT10LnRyYW5zYWN0aW9uKSYmKGUuc3RhY2t0cmFjZXx8dC5zdGFja3RyYWNlP2ooZS5zdGFja3RyYWNlLHQuc3RhY2t0cmFjZSk6ZS5leGNlcHRpb258fHQuZXhjZXB0aW9uP0EoZS5leGNlcHRpb24sdC5leGNlcHRpb24pOiFlLmZpbmdlcnByaW50JiYhdC5maW5nZXJwcmludHx8Qm9vbGVhbihlLmZpbmdlcnByaW50JiZ0LmZpbmdlcnByaW50KSYmSlNPTi5zdHJpbmdpZnkoZS5maW5nZXJwcmludCk9PT1KU09OLnN0cmluZ2lmeSh0LmZpbmdlcnByaW50KSl9LF9zZXRCYWNrb2ZmU3RhdGU6ZnVuY3Rpb24oZSl7aWYoIXRoaXMuX3Nob3VsZEJhY2tvZmYoKSl7dmFyIHQ9ZS5zdGF0dXM7aWYoNDAwPT09dHx8NDAxPT09dHx8NDI5PT09dCl7dmFyIG47dHJ5e249SSgpP2UuaGVhZGVycy5nZXQoIlJldHJ5LUFmdGVyIik6ZS5nZXRSZXNwb25zZUhlYWRlcigiUmV0cnktQWZ0ZXIiKSxuPTFlMypwYXJzZUludChuLDEwKX1jYXRjaChyKXt9dGhpcy5fYmFja29mZkR1cmF0aW9uPW58fCgyKnRoaXMuX2JhY2tvZmZEdXJhdGlvbnx8MWUzKSx0aGlzLl9iYWNrb2ZmU3RhcnQ9VSgpfX19LF9zZW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2dsb2JhbE9wdGlvbnMsbj17cHJvamVjdDp0aGlzLl9nbG9iYWxQcm9qZWN0LGxvZ2dlcjp0LmxvZ2dlcixwbGF0Zm9ybToiamF2YXNjcmlwdCJ9LHI9dGhpcy5fZ2V0SHR0cERhdGEoKTtyJiYobi5yZXF1ZXN0PXIpLGUudHJpbUhlYWRGcmFtZXMmJmRlbGV0ZSBlLnRyaW1IZWFkRnJhbWVzLChlPXcobixlKSkudGFncz13KHcoe30sdGhpcy5fZ2xvYmFsQ29udGV4dC50YWdzKSxlLnRhZ3MpLGUuZXh0cmE9dyh3KHt9LHRoaXMuX2dsb2JhbENvbnRleHQuZXh0cmEpLGUuZXh0cmEpLGUuZXh0cmFbInNlc3Npb246ZHVyYXRpb24iXT1VKCktdGhpcy5fc3RhcnRUaW1lLHRoaXMuX2JyZWFkY3J1bWJzJiZ0aGlzLl9icmVhZGNydW1icy5sZW5ndGg+MCYmKGUuYnJlYWRjcnVtYnM9e3ZhbHVlczpbXS5zbGljZS5jYWxsKHRoaXMuX2JyZWFkY3J1bWJzLDApfSksdGhpcy5fZ2xvYmFsQ29udGV4dC51c2VyJiYoZS51c2VyPXRoaXMuX2dsb2JhbENvbnRleHQudXNlciksdC5lbnZpcm9ubWVudCYmKGUuZW52aXJvbm1lbnQ9dC5lbnZpcm9ubWVudCksdC5yZWxlYXNlJiYoZS5yZWxlYXNlPXQucmVsZWFzZSksdC5zZXJ2ZXJOYW1lJiYoZS5zZXJ2ZXJfbmFtZT10LnNlcnZlck5hbWUpLGU9dGhpcy5fc2FuaXRpemVEYXRhKGUpLE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpeyhudWxsPT1lW3RdfHwiIj09PWVbdF18fG0oZVt0XSkpJiZkZWxldGUgZVt0XX0pKSx2KHQuZGF0YUNhbGxiYWNrKSYmKGU9dC5kYXRhQ2FsbGJhY2soZSl8fGUpLGUmJiFtKGUpJiYodih0LnNob3VsZFNlbmRDYWxsYmFjaykmJiF0LnNob3VsZFNlbmRDYWxsYmFjayhlKXx8KHRoaXMuX3Nob3VsZEJhY2tvZmYoKT90aGlzLl9sb2dEZWJ1Zygid2FybiIsIlJhdmVuIGRyb3BwZWQgZXJyb3IgZHVlIHRvIGJhY2tvZmY6ICIsZSk6Im51bWJlciI9PT10eXBlb2YgdC5zYW1wbGVSYXRlP01hdGgucmFuZG9tKCk8dC5zYW1wbGVSYXRlJiZ0aGlzLl9zZW5kUHJvY2Vzc2VkUGF5bG9hZChlKTp0aGlzLl9zZW5kUHJvY2Vzc2VkUGF5bG9hZChlKSkpfSxfc2FuaXRpemVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBMKGUsdGhpcy5fZ2xvYmFsT3B0aW9ucy5zYW5pdGl6ZUtleXMpfSxfZ2V0VXVpZDpmdW5jdGlvbigpe3JldHVybiBrKCl9LF9zZW5kUHJvY2Vzc2VkUGF5bG9hZDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj10aGlzLl9nbG9iYWxPcHRpb25zO2lmKHRoaXMuaXNTZXR1cCgpKWlmKGU9dGhpcy5fdHJpbVBhY2tldChlKSx0aGlzLl9nbG9iYWxPcHRpb25zLmFsbG93RHVwbGljYXRlc3x8IXRoaXMuX2lzUmVwZWF0RGF0YShlKSl7dGhpcy5fbGFzdEV2ZW50SWQ9ZS5ldmVudF9pZHx8KGUuZXZlbnRfaWQ9dGhpcy5fZ2V0VXVpZCgpKSx0aGlzLl9sYXN0RGF0YT1lLHRoaXMuX2xvZ0RlYnVnKCJkZWJ1ZyIsIlJhdmVuIGFib3V0IHRvIHNlbmQ6IixlKTt2YXIgbz17c2VudHJ5X3ZlcnNpb246IjciLHNlbnRyeV9jbGllbnQ6InJhdmVuLWpzLyIrdGhpcy5WRVJTSU9OLHNlbnRyeV9rZXk6dGhpcy5fZ2xvYmFsS2V5fTt0aGlzLl9nbG9iYWxTZWNyZXQmJihvLnNlbnRyeV9zZWNyZXQ9dGhpcy5fZ2xvYmFsU2VjcmV0KTt2YXIgaT1lLmV4Y2VwdGlvbiYmZS5leGNlcHRpb24udmFsdWVzWzBdO3RoaXMuX2dsb2JhbE9wdGlvbnMuYXV0b0JyZWFkY3J1bWJzJiZ0aGlzLl9nbG9iYWxPcHRpb25zLmF1dG9CcmVhZGNydW1icy5zZW50cnkmJnRoaXMuY2FwdHVyZUJyZWFkY3J1bWIoe2NhdGVnb3J5OiJzZW50cnkiLG1lc3NhZ2U6aT8oaS50eXBlP2kudHlwZSsiOiAiOiIiKStpLnZhbHVlOmUubWVzc2FnZSxldmVudF9pZDplLmV2ZW50X2lkLGxldmVsOmUubGV2ZWx8fCJlcnJvciJ9KTt2YXIgYT10aGlzLl9nbG9iYWxFbmRwb2ludDsoci50cmFuc3BvcnR8fHRoaXMuX21ha2VSZXF1ZXN0KS5jYWxsKHRoaXMse3VybDphLGF1dGg6byxkYXRhOmUsb3B0aW9uczpyLG9uU3VjY2VzczpmdW5jdGlvbigpe24uX3Jlc2V0QmFja29mZigpLG4uX3RyaWdnZXJFdmVudCgic3VjY2VzcyIse2RhdGE6ZSxzcmM6YX0pLHQmJnQoKX0sb25FcnJvcjpmdW5jdGlvbihyKXtuLl9sb2dEZWJ1ZygiZXJyb3IiLCJSYXZlbiB0cmFuc3BvcnQgZmFpbGVkIHRvIHNlbmQ6ICIsciksci5yZXF1ZXN0JiZuLl9zZXRCYWNrb2ZmU3RhdGUoci5yZXF1ZXN0KSxuLl90cmlnZ2VyRXZlbnQoImZhaWx1cmUiLHtkYXRhOmUsc3JjOmF9KSxyPXJ8fG5ldyBFcnJvcigiUmF2ZW4gc2VuZCBmYWlsZWQgKG5vIGFkZGl0aW9uYWwgZGV0YWlscyBwcm92aWRlZCkiKSx0JiZ0KHIpfX0pfWVsc2UgdGhpcy5fbG9nRGVidWcoIndhcm4iLCJSYXZlbiBkcm9wcGVkIHJlcGVhdCBldmVudDogIixlKX0sX21ha2VSZXF1ZXN0OmZ1bmN0aW9uKGUpe3ZhciB0PWUudXJsKyI/IitTKGUuYXV0aCksbj1udWxsLHI9e307aWYoZS5vcHRpb25zLmhlYWRlcnMmJihuPXRoaXMuX2V2YWx1YXRlSGFzaChlLm9wdGlvbnMuaGVhZGVycykpLGUub3B0aW9ucy5mZXRjaFBhcmFtZXRlcnMmJihyPXRoaXMuX2V2YWx1YXRlSGFzaChlLm9wdGlvbnMuZmV0Y2hQYXJhbWV0ZXJzKSksSSgpKXtyLmJvZHk9byhlLmRhdGEpO3ZhciBpPXcoe30sdGhpcy5fZmV0Y2hEZWZhdWx0cyksYT13KGkscik7cmV0dXJuIG4mJihhLmhlYWRlcnM9biksei5mZXRjaCh0LGEpLnRoZW4oKGZ1bmN0aW9uKHQpe2lmKHQub2spZS5vblN1Y2Nlc3MmJmUub25TdWNjZXNzKCk7ZWxzZXt2YXIgbj1uZXcgRXJyb3IoIlNlbnRyeSBlcnJvciBjb2RlOiAiK3Quc3RhdHVzKTtuLnJlcXVlc3Q9dCxlLm9uRXJyb3ImJmUub25FcnJvcihuKX19KSkuY2F0Y2goKGZ1bmN0aW9uKCl7ZS5vbkVycm9yJiZlLm9uRXJyb3IobmV3IEVycm9yKCJTZW50cnkgZXJyb3IgY29kZTogbmV0d29yayB1bmF2YWlsYWJsZSIpKX0pKX12YXIgcz16LlhNTEh0dHBSZXF1ZXN0JiZuZXcgei5YTUxIdHRwUmVxdWVzdDtzJiYoKCJ3aXRoQ3JlZGVudGlhbHMiaW4gc3x8InVuZGVmaW5lZCIhPT10eXBlb2YgWERvbWFpblJlcXVlc3QpJiYoIndpdGhDcmVkZW50aWFscyJpbiBzP3Mub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoND09PXMucmVhZHlTdGF0ZSlpZigyMDA9PT1zLnN0YXR1cyllLm9uU3VjY2VzcyYmZS5vblN1Y2Nlc3MoKTtlbHNlIGlmKGUub25FcnJvcil7dmFyIHQ9bmV3IEVycm9yKCJTZW50cnkgZXJyb3IgY29kZTogIitzLnN0YXR1cyk7dC5yZXF1ZXN0PXMsZS5vbkVycm9yKHQpfX06KHM9bmV3IFhEb21haW5SZXF1ZXN0LHQ9dC5yZXBsYWNlKC9eaHR0cHM/Oi8sIiIpLGUub25TdWNjZXNzJiYocy5vbmxvYWQ9ZS5vblN1Y2Nlc3MpLGUub25FcnJvciYmKHMub25lcnJvcj1mdW5jdGlvbigpe3ZhciB0PW5ldyBFcnJvcigiU2VudHJ5IGVycm9yIGNvZGU6IFhEb21haW5SZXF1ZXN0Iik7dC5yZXF1ZXN0PXMsZS5vbkVycm9yKHQpfSkpLHMub3BlbigiUE9TVCIsdCksbiYmYihuLChmdW5jdGlvbihlLHQpe3Muc2V0UmVxdWVzdEhlYWRlcihlLHQpfSkpLHMuc2VuZChvKGUuZGF0YSkpKSl9LF9ldmFsdWF0ZUhhc2g6ZnVuY3Rpb24oZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShuKSl7dmFyIHI9ZVtuXTt0W25dPSJmdW5jdGlvbiI9PT10eXBlb2Ygcj9yKCk6cn1yZXR1cm4gdH0sX2xvZ0RlYnVnOmZ1bmN0aW9uKGUpe3RoaXMuX29yaWdpbmFsQ29uc29sZU1ldGhvZHNbZV0mJih0aGlzLmRlYnVnfHx0aGlzLl9nbG9iYWxPcHRpb25zLmRlYnVnKSYmRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGhpcy5fb3JpZ2luYWxDb25zb2xlTWV0aG9kc1tlXSx0aGlzLl9vcmlnaW5hbENvbnNvbGUsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpfSxfbWVyZ2VDb250ZXh0OmZ1bmN0aW9uKGUsdCl7aCh0KT9kZWxldGUgdGhpcy5fZ2xvYmFsQ29udGV4dFtlXTp0aGlzLl9nbG9iYWxDb250ZXh0W2VdPXcodGhpcy5fZ2xvYmFsQ29udGV4dFtlXXx8e30sdCl9fSxxLnByb3RvdHlwZS5zZXRVc2VyPXEucHJvdG90eXBlLnNldFVzZXJDb250ZXh0LHEucHJvdG90eXBlLnNldFJlbGVhc2VDb250ZXh0PXEucHJvdG90eXBlLnNldFJlbGVhc2UsZS5leHBvcnRzPXF9KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKHQpe3ZhciByPW4oMTQ0KSxvPXtjb2xsZWN0V2luZG93RXJyb3JzOiEwLGRlYnVnOiExfSxpPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPT10eXBlb2YgdD90OiJ1bmRlZmluZWQiIT09dHlwZW9mIHNlbGY/c2VsZjp7fSxhPVtdLnNsaWNlLHM9L14oPzpbVXVdbmNhdWdodCAoPzpleGNlcHRpb246ICk/KT8oPzooKD86RXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJfClFcnJvcik6ICk/KC4qKSQvO2Z1bmN0aW9uIHUoKXtyZXR1cm4idW5kZWZpbmVkIj09PXR5cGVvZiBkb2N1bWVudHx8bnVsbD09ZG9jdW1lbnQubG9jYXRpb24/IiI6ZG9jdW1lbnQubG9jYXRpb24uaHJlZn1vLnJlcG9ydD1mdW5jdGlvbigpe3ZhciBlLHQsbj1bXSxjPW51bGwsbD1udWxsLGY9bnVsbDtmdW5jdGlvbiBkKGUsdCl7dmFyIHI9bnVsbDtpZighdHx8by5jb2xsZWN0V2luZG93RXJyb3JzKXtmb3IodmFyIGkgaW4gbilpZihuLmhhc093blByb3BlcnR5KGkpKXRyeXtuW2ldLmFwcGx5KG51bGwsW2VdLmNvbmNhdChhLmNhbGwoYXJndW1lbnRzLDIpKSl9Y2F0Y2gocyl7cj1zfWlmKHIpdGhyb3cgcn19ZnVuY3Rpb24gcCh0LG4saSxhLGMpe3ZhciBsPXIuaXNFcnJvckV2ZW50KGMpP2MuZXJyb3I6YyxwPXIuaXNFcnJvckV2ZW50KHQpP3QubWVzc2FnZTp0O2lmKGYpby5jb21wdXRlU3RhY2tUcmFjZS5hdWdtZW50U3RhY2tUcmFjZVdpdGhJbml0aWFsRWxlbWVudChmLG4saSxwKSxoKCk7ZWxzZSBpZihsJiZyLmlzRXJyb3IobCkpZChvLmNvbXB1dGVTdGFja1RyYWNlKGwpLCEwKTtlbHNle3ZhciB2LGc9e3VybDpuLGxpbmU6aSxjb2x1bW46YX0seT12b2lkIDA7aWYoIltvYmplY3QgU3RyaW5nXSI9PT17fS50b1N0cmluZy5jYWxsKHApKSh2PXAubWF0Y2gocykpJiYoeT12WzFdLHA9dlsyXSk7Zy5mdW5jPSI/IixkKHtuYW1lOnksbWVzc2FnZTpwLHVybDp1KCksc3RhY2s6W2ddfSwhMCl9cmV0dXJuISFlJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7dmFyIGU9Zix0PWM7Yz1udWxsLGY9bnVsbCxsPW51bGwsZC5hcHBseShudWxsLFtlLCExXS5jb25jYXQodCkpfWZ1bmN0aW9uIHYoZSx0KXt2YXIgbj1hLmNhbGwoYXJndW1lbnRzLDEpO2lmKGYpe2lmKGw9PT1lKXJldHVybjtoKCl9dmFyIHI9by5jb21wdXRlU3RhY2tUcmFjZShlKTtpZihmPXIsbD1lLGM9bixzZXRUaW1lb3V0KChmdW5jdGlvbigpe2w9PT1lJiZoKCl9KSxyLmluY29tcGxldGU/MmUzOjApLCExIT09dCl0aHJvdyBlfXJldHVybiB2LnN1YnNjcmliZT1mdW5jdGlvbihyKXshZnVuY3Rpb24oKXtpZih0KXJldHVybjtlPWkub25lcnJvcixpLm9uZXJyb3I9cCx0PSEwfSgpLG4ucHVzaChyKX0sdi51bnN1YnNjcmliZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bi5sZW5ndGgtMTt0Pj0wOy0tdCluW3RdPT09ZSYmbi5zcGxpY2UodCwxKX0sdi51bmluc3RhbGw9ZnVuY3Rpb24oKXshZnVuY3Rpb24oKXtpZighdClyZXR1cm47aS5vbmVycm9yPWUsdD0hMSxlPXZvaWQgMH0oKSxuPVtdfSx2fSgpLG8uY29tcHV0ZVN0YWNrVHJhY2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGUuc3RhY2smJmUuc3RhY2spe2Zvcih2YXIgdCxuLHIsbz0vXlxzKmF0ICg/OiguKj8pID9cKCk/KCg/OmZpbGV8aHR0cHM/fGJsb2J8Y2hyb21lLWV4dGVuc2lvbnxuYXRpdmV8ZXZhbHx3ZWJwYWNrfDxhbm9ueW1vdXM+fFthLXpdOnxcLykuKj8pKD86OihcZCspKT8oPzo6KFxkKykpP1wpP1xzKiQvaSxpPS9eXHMqYXQgKD86KCg/Olxbb2JqZWN0IG9iamVjdFxdKT8uKykgKT9cKD8oKD86ZmlsZXxtcy1hcHB4KD86LXdlYil8aHR0cHM/fHdlYnBhY2t8YmxvYik6Lio/KTooXGQrKSg/OjooXGQrKSk/XCk/XHMqJC9pLGE9L15ccyooLio/KSg/OlwoKC4qPylcKSk/KD86XnxAKSgoPzpmaWxlfGh0dHBzP3xibG9ifGNocm9tZXx3ZWJwYWNrfHJlc291cmNlfG1vei1leHRlbnNpb24pLio/OlwvLio/fFxbbmF0aXZlIGNvZGVcXXxbXkBdKig/OmJ1bmRsZXxcZCtcLmpzKSkoPzo6KFxkKykpPyg/OjooXGQrKSk/XHMqJC9pLHM9LyhcUyspIGxpbmUgKFxkKykoPzogPiBldmFsIGxpbmUgXGQrKSogPiBldmFsL2ksYz0vXCgoXFMqKSg/OjooXGQrKSkoPzo6KFxkKykpXCkvLGw9ZS5zdGFjay5zcGxpdCgiXG4iKSxmPVtdLGQ9KC9eKC4qKSBpcyB1bmRlZmluZWQkLy5leGVjKGUubWVzc2FnZSksMCkscD1sLmxlbmd0aDtkPHA7KytkKXtpZihuPW8uZXhlYyhsW2RdKSl7dmFyIGg9blsyXSYmMD09PW5bMl0uaW5kZXhPZigibmF0aXZlIik7blsyXSYmMD09PW5bMl0uaW5kZXhPZigiZXZhbCIpJiYodD1jLmV4ZWMoblsyXSkpJiYoblsyXT10WzFdLG5bM109dFsyXSxuWzRdPXRbM10pLHI9e3VybDpoP251bGw6blsyXSxmdW5jOm5bMV18fCI/IixhcmdzOmg/W25bMl1dOltdLGxpbmU6blszXT8rblszXTpudWxsLGNvbHVtbjpuWzRdPytuWzRdOm51bGx9fWVsc2UgaWYobj1pLmV4ZWMobFtkXSkpcj17dXJsOm5bMl0sZnVuYzpuWzFdfHwiPyIsYXJnczpbXSxsaW5lOituWzNdLGNvbHVtbjpuWzRdPytuWzRdOm51bGx9O2Vsc2V7aWYoIShuPWEuZXhlYyhsW2RdKSkpY29udGludWU7blszXSYmblszXS5pbmRleE9mKCIgPiBldmFsIik+LTEmJih0PXMuZXhlYyhuWzNdKSk/KG5bM109dFsxXSxuWzRdPXRbMl0sbls1XT1udWxsKTowIT09ZHx8bls1XXx8InVuZGVmaW5lZCI9PT10eXBlb2YgZS5jb2x1bW5OdW1iZXJ8fChmWzBdLmNvbHVtbj1lLmNvbHVtbk51bWJlcisxKSxyPXt1cmw6blszXSxmdW5jOm5bMV18fCI/IixhcmdzOm5bMl0/blsyXS5zcGxpdCgiLCIpOltdLGxpbmU6bls0XT8rbls0XTpudWxsLGNvbHVtbjpuWzVdPytuWzVdOm51bGx9fWlmKCFyLmZ1bmMmJnIubGluZSYmKHIuZnVuYz0iPyIpLHIudXJsJiYiYmxvYjoiPT09ci51cmwuc3Vic3RyKDAsNSkpe3ZhciB2PW5ldyBYTUxIdHRwUmVxdWVzdDtpZih2Lm9wZW4oIkdFVCIsci51cmwsITEpLHYuc2VuZChudWxsKSwyMDA9PT12LnN0YXR1cyl7dmFyIGc9di5yZXNwb25zZVRleHR8fCIiLHk9KGc9Zy5zbGljZSgtMzAwKSkubWF0Y2goL1wvXC8jIHNvdXJjZU1hcHBpbmdVUkw9KC4qKSQvKTtpZih5KXt2YXIgbT15WzFdOyJ+Ij09PW0uY2hhckF0KDApJiYobT0oInVuZGVmaW5lZCI9PT10eXBlb2YgZG9jdW1lbnR8fG51bGw9PWRvY3VtZW50LmxvY2F0aW9uPyIiOmRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbj9kb2N1bWVudC5sb2NhdGlvbi5vcmlnaW46ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wrIi8vIitkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSsoZG9jdW1lbnQubG9jYXRpb24ucG9ydD8iOiIrZG9jdW1lbnQubG9jYXRpb24ucG9ydDoiIikpK20uc2xpY2UoMSkpLHIudXJsPW0uc2xpY2UoMCwtNCl9fX1mLnB1c2gocil9cmV0dXJuIGYubGVuZ3RoP3tuYW1lOmUubmFtZSxtZXNzYWdlOmUubWVzc2FnZSx1cmw6dSgpLHN0YWNrOmZ9Om51bGx9fWZ1bmN0aW9uIHQoZSx0LG4scil7dmFyIG89e3VybDp0LGxpbmU6bn07aWYoby51cmwmJm8ubGluZSl7aWYoZS5pbmNvbXBsZXRlPSExLG8uZnVuY3x8KG8uZnVuYz0iPyIpLGUuc3RhY2subGVuZ3RoPjAmJmUuc3RhY2tbMF0udXJsPT09by51cmwpe2lmKGUuc3RhY2tbMF0ubGluZT09PW8ubGluZSlyZXR1cm4hMTtpZighZS5zdGFja1swXS5saW5lJiZlLnN0YWNrWzBdLmZ1bmM9PT1vLmZ1bmMpcmV0dXJuIGUuc3RhY2tbMF0ubGluZT1vLmxpbmUsITF9cmV0dXJuIGUuc3RhY2sudW5zaGlmdChvKSxlLnBhcnRpYWw9ITAsITB9cmV0dXJuIGUuaW5jb21wbGV0ZT0hMCwhMX1mdW5jdGlvbiBuKGUsaSl7Zm9yKHZhciBhLHMsYz0vZnVuY3Rpb25ccysoW18kYS16QS1aXHhBMC1cdUZGRkZdW18kYS16QS1aMC05XHhBMC1cdUZGRkZdKik/XHMqXCgvaSxsPVtdLGY9e30sZD0hMSxwPW4uY2FsbGVyO3AmJiFkO3A9cC5jYWxsZXIpaWYocCE9PXImJnAhPT1vLnJlcG9ydCl7aWYocz17dXJsOm51bGwsZnVuYzoiPyIsbGluZTpudWxsLGNvbHVtbjpudWxsfSxwLm5hbWU/cy5mdW5jPXAubmFtZTooYT1jLmV4ZWMocC50b1N0cmluZygpKSkmJihzLmZ1bmM9YVsxXSksInVuZGVmaW5lZCI9PT10eXBlb2Ygcy5mdW5jKXRyeXtzLmZ1bmM9YS5pbnB1dC5zdWJzdHJpbmcoMCxhLmlucHV0LmluZGV4T2YoInsiKSl9Y2F0Y2godil7fWZbIiIrcF0/ZD0hMDpmWyIiK3BdPSEwLGwucHVzaChzKX1pJiZsLnNwbGljZSgwLGkpO3ZhciBoPXtuYW1lOmUubmFtZSxtZXNzYWdlOmUubWVzc2FnZSx1cmw6dSgpLHN0YWNrOmx9O3JldHVybiB0KGgsZS5zb3VyY2VVUkx8fGUuZmlsZU5hbWUsZS5saW5lfHxlLmxpbmVOdW1iZXIsZS5tZXNzYWdlfHxlLmRlc2NyaXB0aW9uKSxofWZ1bmN0aW9uIHIodCxyKXt2YXIgaT1udWxsO3I9bnVsbD09cj8wOityO3RyeXtpZihpPWUodCkpcmV0dXJuIGl9Y2F0Y2goYSl7aWYoby5kZWJ1Zyl0aHJvdyBhfXRyeXtpZihpPW4odCxyKzEpKXJldHVybiBpfWNhdGNoKGEpe2lmKG8uZGVidWcpdGhyb3cgYX1yZXR1cm57bmFtZTp0Lm5hbWUsbWVzc2FnZTp0Lm1lc3NhZ2UsdXJsOnUoKX19cmV0dXJuIHIuYXVnbWVudFN0YWNrVHJhY2VXaXRoSW5pdGlhbEVsZW1lbnQ9dCxyLmNvbXB1dGVTdGFja1RyYWNlRnJvbVN0YWNrUHJvcD1lLHJ9KCksZS5leHBvcnRzPW99KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSx0KXt2YXIgbj0oNjU1MzUmZSkrKDY1NTM1JnQpO3JldHVybihlPj4xNikrKHQ+PjE2KSsobj4+MTYpPDwxNnw2NTUzNSZufWZ1bmN0aW9uIHIoZSx0LHIsbyxpLGEpe3JldHVybiBuKChzPW4obih0LGUpLG4obyxhKSkpPDwodT1pKXxzPj4+MzItdSxyKTt2YXIgcyx1fWZ1bmN0aW9uIG8oZSx0LG4sbyxpLGEscyl7cmV0dXJuIHIodCZufH50Jm8sZSx0LGksYSxzKX1mdW5jdGlvbiBpKGUsdCxuLG8saSxhLHMpe3JldHVybiByKHQmb3xuJn5vLGUsdCxpLGEscyl9ZnVuY3Rpb24gYShlLHQsbixvLGksYSxzKXtyZXR1cm4gcih0Xm5ebyxlLHQsaSxhLHMpfWZ1bmN0aW9uIHMoZSx0LG4sbyxpLGEscyl7cmV0dXJuIHIobl4odHx+byksZSx0LGksYSxzKX1mdW5jdGlvbiB1KGUsdCl7dmFyIHIsdSxjLGwsZjtlW3Q+PjVdfD0xMjg8PHQlMzIsZVsxNCsodCs2ND4+Pjk8PDQpXT10O3ZhciBkPTE3MzI1ODQxOTMscD0tMjcxNzMzODc5LGg9LTE3MzI1ODQxOTQsdj0yNzE3MzM4Nzg7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrPTE2KXU9ZCxjPXAsbD1oLGY9dixkPW8oZCxwLGgsdixlW3JdLDcsLTY4MDg3NjkzNiksdj1vKHYsZCxwLGgsZVtyKzFdLDEyLC0zODk1NjQ1ODYpLGg9byhoLHYsZCxwLGVbcisyXSwxNyw2MDYxMDU4MTkpLHA9byhwLGgsdixkLGVbciszXSwyMiwtMTA0NDUyNTMzMCksZD1vKGQscCxoLHYsZVtyKzRdLDcsLTE3NjQxODg5Nyksdj1vKHYsZCxwLGgsZVtyKzVdLDEyLDEyMDAwODA0MjYpLGg9byhoLHYsZCxwLGVbcis2XSwxNywtMTQ3MzIzMTM0MSkscD1vKHAsaCx2LGQsZVtyKzddLDIyLC00NTcwNTk4MyksZD1vKGQscCxoLHYsZVtyKzhdLDcsMTc3MDAzNTQxNiksdj1vKHYsZCxwLGgsZVtyKzldLDEyLC0xOTU4NDE0NDE3KSxoPW8oaCx2LGQscCxlW3IrMTBdLDE3LC00MjA2MykscD1vKHAsaCx2LGQsZVtyKzExXSwyMiwtMTk5MDQwNDE2MiksZD1vKGQscCxoLHYsZVtyKzEyXSw3LDE4MDQ2MDM2ODIpLHY9byh2LGQscCxoLGVbcisxM10sMTIsLTQwMzQxMTAxKSxoPW8oaCx2LGQscCxlW3IrMTRdLDE3LC0xNTAyMDAyMjkwKSxkPWkoZCxwPW8ocCxoLHYsZCxlW3IrMTVdLDIyLDEyMzY1MzUzMjkpLGgsdixlW3IrMV0sNSwtMTY1Nzk2NTEwKSx2PWkodixkLHAsaCxlW3IrNl0sOSwtMTA2OTUwMTYzMiksaD1pKGgsdixkLHAsZVtyKzExXSwxNCw2NDM3MTc3MTMpLHA9aShwLGgsdixkLGVbcl0sMjAsLTM3Mzg5NzMwMiksZD1pKGQscCxoLHYsZVtyKzVdLDUsLTcwMTU1ODY5MSksdj1pKHYsZCxwLGgsZVtyKzEwXSw5LDM4MDE2MDgzKSxoPWkoaCx2LGQscCxlW3IrMTVdLDE0LC02NjA0NzgzMzUpLHA9aShwLGgsdixkLGVbcis0XSwyMCwtNDA1NTM3ODQ4KSxkPWkoZCxwLGgsdixlW3IrOV0sNSw1Njg0NDY0MzgpLHY9aSh2LGQscCxoLGVbcisxNF0sOSwtMTAxOTgwMzY5MCksaD1pKGgsdixkLHAsZVtyKzNdLDE0LC0xODczNjM5NjEpLHA9aShwLGgsdixkLGVbcis4XSwyMCwxMTYzNTMxNTAxKSxkPWkoZCxwLGgsdixlW3IrMTNdLDUsLTE0NDQ2ODE0NjcpLHY9aSh2LGQscCxoLGVbcisyXSw5LC01MTQwMzc4NCksaD1pKGgsdixkLHAsZVtyKzddLDE0LDE3MzUzMjg0NzMpLGQ9YShkLHA9aShwLGgsdixkLGVbcisxMl0sMjAsLTE5MjY2MDc3MzQpLGgsdixlW3IrNV0sNCwtMzc4NTU4KSx2PWEodixkLHAsaCxlW3IrOF0sMTEsLTIwMjI1NzQ0NjMpLGg9YShoLHYsZCxwLGVbcisxMV0sMTYsMTgzOTAzMDU2MikscD1hKHAsaCx2LGQsZVtyKzE0XSwyMywtMzUzMDk1NTYpLGQ9YShkLHAsaCx2LGVbcisxXSw0LC0xNTMwOTkyMDYwKSx2PWEodixkLHAsaCxlW3IrNF0sMTEsMTI3Mjg5MzM1MyksaD1hKGgsdixkLHAsZVtyKzddLDE2LC0xNTU0OTc2MzIpLHA9YShwLGgsdixkLGVbcisxMF0sMjMsLTEwOTQ3MzA2NDApLGQ9YShkLHAsaCx2LGVbcisxM10sNCw2ODEyNzkxNzQpLHY9YSh2LGQscCxoLGVbcl0sMTEsLTM1ODUzNzIyMiksaD1hKGgsdixkLHAsZVtyKzNdLDE2LC03MjI1MjE5NzkpLHA9YShwLGgsdixkLGVbcis2XSwyMyw3NjAyOTE4OSksZD1hKGQscCxoLHYsZVtyKzldLDQsLTY0MDM2NDQ4Nyksdj1hKHYsZCxwLGgsZVtyKzEyXSwxMSwtNDIxODE1ODM1KSxoPWEoaCx2LGQscCxlW3IrMTVdLDE2LDUzMDc0MjUyMCksZD1zKGQscD1hKHAsaCx2LGQsZVtyKzJdLDIzLC05OTUzMzg2NTEpLGgsdixlW3JdLDYsLTE5ODYzMDg0NCksdj1zKHYsZCxwLGgsZVtyKzddLDEwLDExMjY4OTE0MTUpLGg9cyhoLHYsZCxwLGVbcisxNF0sMTUsLTE0MTYzNTQ5MDUpLHA9cyhwLGgsdixkLGVbcis1XSwyMSwtNTc0MzQwNTUpLGQ9cyhkLHAsaCx2LGVbcisxMl0sNiwxNzAwNDg1NTcxKSx2PXModixkLHAsaCxlW3IrM10sMTAsLTE4OTQ5ODY2MDYpLGg9cyhoLHYsZCxwLGVbcisxMF0sMTUsLTEwNTE1MjMpLHA9cyhwLGgsdixkLGVbcisxXSwyMSwtMjA1NDkyMjc5OSksZD1zKGQscCxoLHYsZVtyKzhdLDYsMTg3MzMxMzM1OSksdj1zKHYsZCxwLGgsZVtyKzE1XSwxMCwtMzA2MTE3NDQpLGg9cyhoLHYsZCxwLGVbcis2XSwxNSwtMTU2MDE5ODM4MCkscD1zKHAsaCx2LGQsZVtyKzEzXSwyMSwxMzA5MTUxNjQ5KSxkPXMoZCxwLGgsdixlW3IrNF0sNiwtMTQ1NTIzMDcwKSx2PXModixkLHAsaCxlW3IrMTFdLDEwLC0xMTIwMjEwMzc5KSxoPXMoaCx2LGQscCxlW3IrMl0sMTUsNzE4Nzg3MjU5KSxwPXMocCxoLHYsZCxlW3IrOV0sMjEsLTM0MzQ4NTU1MSksZD1uKGQsdSkscD1uKHAsYyksaD1uKGgsbCksdj1uKHYsZik7cmV0dXJuW2QscCxoLHZdfWZ1bmN0aW9uIGMoZSl7dmFyIHQsbj0iIixyPTMyKmUubGVuZ3RoO2Zvcih0PTA7dDxyO3QrPTgpbis9U3RyaW5nLmZyb21DaGFyQ29kZShlW3Q+PjVdPj4+dCUzMiYyNTUpO3JldHVybiBufWZ1bmN0aW9uIGwoZSl7dmFyIHQsbj1bXTtmb3IoblsoZS5sZW5ndGg+PjIpLTFdPXZvaWQgMCx0PTA7dDxuLmxlbmd0aDt0Kz0xKW5bdF09MDt2YXIgcj04KmUubGVuZ3RoO2Zvcih0PTA7dDxyO3QrPTgpblt0Pj41XXw9KDI1NSZlLmNoYXJDb2RlQXQodC84KSk8PHQlMzI7cmV0dXJuIG59ZnVuY3Rpb24gZihlKXt2YXIgdCxuLHI9IiI7Zm9yKG49MDtuPGUubGVuZ3RoO24rPTEpdD1lLmNoYXJDb2RlQXQobikscis9IjAxMjM0NTY3ODlhYmNkZWYiLmNoYXJBdCh0Pj4+NCYxNSkrIjAxMjM0NTY3ODlhYmNkZWYiLmNoYXJBdCgxNSZ0KTtyZXR1cm4gcn1mdW5jdGlvbiBkKGUpe3JldHVybiB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZSkpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBjKHUobChlKSw4KmUubGVuZ3RoKSl9KGQoZSkpfWZ1bmN0aW9uIGgoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bChlKSxpPVtdLGE9W107Zm9yKGlbMTVdPWFbMTVdPXZvaWQgMCxvLmxlbmd0aD4xNiYmKG89dShvLDgqZS5sZW5ndGgpKSxuPTA7bjwxNjtuKz0xKWlbbl09OTA5NTIyNDg2Xm9bbl0sYVtuXT0xNTQ5NTU2ODI4Xm9bbl07cmV0dXJuIHI9dShpLmNvbmNhdChsKHQpKSw1MTIrOCp0Lmxlbmd0aCksYyh1KGEuY29uY2F0KHIpLDY0MCkpfShkKGUpLGQodCkpfWUuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHQ/bj9oKHQsZSk6ZihoKHQsZSkpOm4/cChlKTpmKHAoZSkpfX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKGUpe3RoaXMubmFtZT0iUmF2ZW5Db25maWdFcnJvciIsdGhpcy5tZXNzYWdlPWV9bi5wcm90b3R5cGU9bmV3IEVycm9yLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW4sZS5leHBvcnRzPW59LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE0NCk7ZS5leHBvcnRzPXt3cmFwTWV0aG9kOmZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1lW3RdLGk9ZTtpZih0IGluIGUpe3ZhciBhPSJ3YXJuIj09PXQ/Indhcm5pbmciOnQ7ZVt0XT1mdW5jdGlvbigpe3ZhciBlPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxzPXIuc2FmZUpvaW4oZSwiICIpLHU9e2xldmVsOmEsbG9nZ2VyOiJjb25zb2xlIixleHRyYTp7YXJndW1lbnRzOmV9fTsiYXNzZXJ0Ij09PXQ/ITE9PT1lWzBdJiYocz0iQXNzZXJ0aW9uIGZhaWxlZDogIisoci5zYWZlSm9pbihlLnNsaWNlKDEpLCIgIil8fCJjb25zb2xlLmFzc2VydCIpLHUuZXh0cmEuYXJndW1lbnRzPWUuc2xpY2UoMSksbiYmbihzLHUpKTpuJiZuKHMsdSksbyYmRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwobyxpLGUpfX19fX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxpPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpe3ZhciBuPVtdLHI9ITAsbz0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciBhLHM9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShyPShhPXMubmV4dCgpKS5kb25lKSYmKG4ucHVzaChhLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtyPSEwKTt9Y2F0Y2godSl7bz0hMCxpPXV9ZmluYWxseXt0cnl7cnx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGl9fXJldHVybiBufX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjshZnVuY3Rpb24obyl7dmFyIGk9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9e0RBWTo4NjRlNSxIT1VSOjM2ZTUsTUlOVVRFOjZlNCxTRUNPTkQ6MWUzLEJBU0VMSU5FX1lFQVI6MjAxNCxNQVhfU0NPUkU6ODY0ZTYsQU1CSUdVSVRJRVM6eyJBbWVyaWNhL0RlbnZlciI6WyJBbWVyaWNhL01hemF0bGFuIl0sIkV1cm9wZS9Mb25kb24iOlsiQWZyaWNhL0Nhc2FibGFuY2EiXSwiQW1lcmljYS9DaGljYWdvIjpbIkFtZXJpY2EvTWV4aWNvX0NpdHkiXSwiQW1lcmljYS9Bc3VuY2lvbiI6WyJBbWVyaWNhL0NhbXBvX0dyYW5kZSIsIkFtZXJpY2EvU2FudGlhZ28iXSwiQW1lcmljYS9Nb250ZXZpZGVvIjpbIkFtZXJpY2EvU2FvX1BhdWxvIiwiQW1lcmljYS9TYW50aWFnbyJdLCJBc2lhL0JlaXJ1dCI6WyJBc2lhL0FtbWFuIiwiQXNpYS9KZXJ1c2FsZW0iLCJFdXJvcGUvSGVsc2lua2kiLCJBc2lhL0RhbWFzY3VzIiwiQWZyaWNhL0NhaXJvIiwiQXNpYS9HYXphIiwiRXVyb3BlL01pbnNrIl0sIlBhY2lmaWMvQXVja2xhbmQiOlsiUGFjaWZpYy9GaWppIl0sIkFtZXJpY2EvTG9zX0FuZ2VsZXMiOlsiQW1lcmljYS9TYW50YV9Jc2FiZWwiXSwiQW1lcmljYS9OZXdfWW9yayI6WyJBbWVyaWNhL0hhdmFuYSJdLCJBbWVyaWNhL0hhbGlmYXgiOlsiQW1lcmljYS9Hb29zZV9CYXkiXSwiQW1lcmljYS9Hb2R0aGFiIjpbIkFtZXJpY2EvTWlxdWVsb24iXSwiQXNpYS9EdWJhaSI6WyJBc2lhL1llcmV2YW4iXSwiQXNpYS9KYWthcnRhIjpbIkFzaWEvS3Jhc25veWFyc2siXSwiQXNpYS9TaGFuZ2hhaSI6WyJBc2lhL0lya3V0c2siLCJBdXN0cmFsaWEvUGVydGgiXSwiQXVzdHJhbGlhL1N5ZG5leSI6WyJBdXN0cmFsaWEvTG9yZF9Ib3dlIl0sIkFzaWEvVG9reW8iOlsiQXNpYS9ZYWt1dHNrIl0sIkFzaWEvRGhha2EiOlsiQXNpYS9PbXNrIl0sIkFzaWEvQmFrdSI6WyJBc2lhL1llcmV2YW4iXSwiQXVzdHJhbGlhL0JyaXNiYW5lIjpbIkFzaWEvVmxhZGl2b3N0b2siXSwiUGFjaWZpYy9Ob3VtZWEiOlsiQXNpYS9WbGFkaXZvc3RvayJdLCJQYWNpZmljL01hanVybyI6WyJBc2lhL0thbWNoYXRrYSIsIlBhY2lmaWMvRmlqaSJdLCJQYWNpZmljL1RvbmdhdGFwdSI6WyJQYWNpZmljL0FwaWEiXSwiQXNpYS9CYWdoZGFkIjpbIkV1cm9wZS9NaW5zayIsIkV1cm9wZS9Nb3Njb3ciXSwiQXNpYS9LYXJhY2hpIjpbIkFzaWEvWWVrYXRlcmluYnVyZyJdLCJBZnJpY2EvSm9oYW5uZXNidXJnIjpbIkFzaWEvR2F6YSIsIkFmcmljYS9DYWlybyJdfX0sdD1mdW5jdGlvbihlKXt2YXIgdD0tZS5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybiBudWxsIT09dD90OjB9LG49ZnVuY3Rpb24oKXt2YXIgbj10KG5ldyBEYXRlKGUuQkFTRUxJTkVfWUVBUiwwLDIpKSxyPXQobmV3IERhdGUoZS5CQVNFTElORV9ZRUFSLDUsMikpLG89bi1yO3JldHVybiBvPDA/bisiLDEiOm8+MD9yKyIsMSxzIjpuKyIsMCJ9LHI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBEYXRlKGUsMCwxLDAsMCwxLDApLmdldFRpbWUoKSxuPW5ldyBEYXRlKGUsMTIsMzEsMjMsNTksNTkpLmdldFRpbWUoKSxyPXQsaT1uZXcgRGF0ZShyKS5nZXRUaW1lem9uZU9mZnNldCgpLGE9bnVsbCxzPW51bGw7cjxuLTg2NGU1Oyl7dmFyIHU9bmV3IERhdGUociksYz11LmdldFRpbWV6b25lT2Zmc2V0KCk7YyE9PWkmJihjPGkmJihhPXUpLGM+aSYmKHM9dSksaT1jKSxyKz04NjRlNX1yZXR1cm4hKCFhfHwhcykmJntzOm8oYSkuZ2V0VGltZSgpLGU6byhzKS5nZXRUaW1lKCl9fSxvPWZ1bmN0aW9uIHQobixyLG8peyJ1bmRlZmluZWQiPT09dHlwZW9mIHImJihyPWUuREFZLG89ZS5IT1VSKTtmb3IodmFyIGk9bmV3IERhdGUobi5nZXRUaW1lKCktcikuZ2V0VGltZSgpLGE9bi5nZXRUaW1lKCkrcixzPW5ldyBEYXRlKGkpLmdldFRpbWV6b25lT2Zmc2V0KCksdT1pLGM9bnVsbDt1PGEtbzspe3ZhciBsPW5ldyBEYXRlKHUpO2lmKGwuZ2V0VGltZXpvbmVPZmZzZXQoKSE9PXMpe2M9bDticmVha311Kz1vfXJldHVybiByPT09ZS5EQVk/dChjLGUuSE9VUixlLk1JTlVURSk6cj09PWUuSE9VUj90KGMsZS5NSU5VVEUsZS5TRUNPTkQpOmN9LGE9ZnVuY3Rpb24odCl7dmFyIG49ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8aS5vbHNvbi5kc3RfcnVsZXMueWVhcnMubGVuZ3RoO3QrKyl7dmFyIG49cihpLm9sc29uLmRzdF9ydWxlcy55ZWFyc1t0XSk7ZS5wdXNoKG4pfXJldHVybiBlfSgpO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylpZighMSE9PWVbdF0pcmV0dXJuITA7cmV0dXJuITF9KG4pP2Z1bmN0aW9uKHQsbil7Zm9yKHZhciByPWZ1bmN0aW9uKHIpe2Zvcih2YXIgbz0wLGk9MDtpPHQubGVuZ3RoO2krKylpZihyLnJ1bGVzW2ldJiZ0W2ldKXtpZighKHRbaV0ucz49ci5ydWxlc1tpXS5zJiZ0W2ldLmU8PXIucnVsZXNbaV0uZSkpe289Ik4vQSI7YnJlYWt9aWYobz0wLG8rPU1hdGguYWJzKHRbaV0ucy1yLnJ1bGVzW2ldLnMpLChvKz1NYXRoLmFicyhyLnJ1bGVzW2ldLmUtdFtpXS5lKSk+ZS5NQVhfU0NPUkUpe289Ik4vQSI7YnJlYWt9fXJldHVybiBvPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKCJOL0EiIT09bilyZXR1cm4gbjtpZigiQXNpYS9CZWlydXQiPT09dCl7aWYoIkFmcmljYS9DYWlybyI9PT1yLm5hbWUmJjEzOTgzNzY4ZTU9PT1lWzZdLnMmJjE0MTE2Nzg4ZTU9PT1lWzZdLmUpcmV0dXJuIDA7aWYoIkFzaWEvSmVydXNhbGVtIj09PXIubmFtZSYmMTM5NTk2NDhlNT09PWVbNl0ucyYmMTQxMTg1ODhlNT09PWVbNl0uZSlyZXR1cm4gMH1lbHNlIGlmKCJBbWVyaWNhL1NhbnRpYWdvIj09PXQpe2lmKCJBbWVyaWNhL0FzdW5jaW9uIj09PXIubmFtZSYmMTQxMjQ4MTZlNT09PWVbNl0ucyYmMTM5NzM1OGU2PT09ZVs2XS5lKXJldHVybiAwO2lmKCJBbWVyaWNhL0NhbXBvX0dyYW5kZSI9PT1yLm5hbWUmJjE0MTM2OTEyZTU9PT1lWzZdLnMmJjEzOTI1MTk2ZTU9PT1lWzZdLmUpcmV0dXJuIDB9ZWxzZSBpZigiQW1lcmljYS9Nb250ZXZpZGVvIj09PXQpe2lmKCJBbWVyaWNhL1Nhb19QYXVsbyI9PT1yLm5hbWUmJjE0MTM2ODc2ZTU9PT1lWzZdLnMmJjEzOTI1MTZlNj09PWVbNl0uZSlyZXR1cm4gMH1lbHNlIGlmKCJQYWNpZmljL0F1Y2tsYW5kIj09PXQmJiJQYWNpZmljL0ZpamkiPT09ci5uYW1lJiYxNDE0MjQ1NmU1PT09ZVs2XS5zJiYxMzk2MTAxNmU1PT09ZVs2XS5lKXJldHVybiAwO3JldHVybiBufSh0LG4sbyxyKX0sbz17fSxhPWkub2xzb24uZHN0X3J1bGVzLnpvbmVzLHM9YS5sZW5ndGgsdT1lLkFNQklHVUlUSUVTW25dLGM9MDtjPHM7YysrKXt2YXIgbD1hW2NdLGY9cihhW2NdKTsiTi9BIiE9PWYmJihvW2wubmFtZV09Zil9Zm9yKHZhciBkIGluIG8paWYoby5oYXNPd25Qcm9wZXJ0eShkKSlmb3IodmFyIHA9MDtwPHUubGVuZ3RoO3ArKylpZih1W3BdPT09ZClyZXR1cm4gZDtyZXR1cm4gbn0obix0KTp0fTtyZXR1cm57ZGV0ZXJtaW5lOmZ1bmN0aW9uKCl7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgZSx0O2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIEludGwmJiJ1bmRlZmluZWQiIT09dHlwZW9mIEludGwuRGF0ZVRpbWVGb3JtYXQmJiJ1bmRlZmluZWQiIT09dHlwZW9mKGU9SW50bC5EYXRlVGltZUZvcm1hdCgpKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgZS5yZXNvbHZlZE9wdGlvbnMpcmV0dXJuKHQ9ZS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkmJih0LmluZGV4T2YoIi8iKT4tMXx8IlVUQyI9PT10KSYmMCE9dC5pbmRleE9mKCJFdGMiKT90OnZvaWQgMH0oKTtyZXR1cm4gcnx8KHI9aS5vbHNvbi50aW1lem9uZXNbbigpXSwidW5kZWZpbmVkIiE9PXR5cGVvZiBlLkFNQklHVUlUSUVTW3JdJiYocj1hKHIpKSkse25hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sc3RkVGltZXpvbmVPZmZzZXQ6ZnVuY3Rpb24oKXtyZXR1cm4tbigpLnNwbGl0KCIsIilbMF19LHRpbWV6b25lT2Zmc2V0OmZ1bmN0aW9uKCl7cmV0dXJuLXQobmV3IERhdGUpfX19fX0oKTtpLm9sc29uPWkub2xzb258fHt9LGkub2xzb24udGltZXpvbmVzPXsiLTcyMCwwIjoiRXRjL0dNVCsxMiIsIi02NjAsMCI6IlBhY2lmaWMvUGFnb19QYWdvIiwiLTY2MCwxLHMiOiJQYWNpZmljL0FwaWEiLCItNjAwLDEiOiJBbWVyaWNhL0FkYWsiLCItNjAwLDAiOiJQYWNpZmljL0hvbm9sdWx1IiwiLTU3MCwwIjoiUGFjaWZpYy9NYXJxdWVzYXMiLCItNTQwLDAiOiJQYWNpZmljL0dhbWJpZXIiLCItNTQwLDEiOiJBbWVyaWNhL0FuY2hvcmFnZSIsIi00ODAsMSI6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCItNDgwLDAiOiJQYWNpZmljL1BpdGNhaXJuIiwiLTQyMCwwIjoiQW1lcmljYS9QaG9lbml4IiwiLTQyMCwxIjoiQW1lcmljYS9EZW52ZXIiLCItMzYwLDAiOiJBbWVyaWNhL0d1YXRlbWFsYSIsIi0zNjAsMSI6IkFtZXJpY2EvQ2hpY2FnbyIsIi0zNjAsMSxzIjoiUGFjaWZpYy9FYXN0ZXIiLCItMzAwLDAiOiJBbWVyaWNhL0JvZ290YSIsIi0zMDAsMSI6IkFtZXJpY2EvTmV3X1lvcmsiLCItMjcwLDAiOiJBbWVyaWNhL0NhcmFjYXMiLCItMjQwLDEiOiJBbWVyaWNhL0hhbGlmYXgiLCItMjQwLDAiOiJBbWVyaWNhL1NhbnRvX0RvbWluZ28iLCItMjQwLDEscyI6IkFtZXJpY2EvQXN1bmNpb24iLCItMjEwLDEiOiJBbWVyaWNhL1N0X0pvaG5zIiwiLTE4MCwxIjoiQW1lcmljYS9Hb2R0aGFiIiwiLTE4MCwwIjoiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwiLTE4MCwxLHMiOiJBbWVyaWNhL01vbnRldmlkZW8iLCItMTIwLDAiOiJBbWVyaWNhL05vcm9uaGEiLCItMTIwLDEiOiJBbWVyaWNhL05vcm9uaGEiLCItNjAsMSI6IkF0bGFudGljL0F6b3JlcyIsIi02MCwwIjoiQXRsYW50aWMvQ2FwZV9WZXJkZSIsIjAsMCI6IlVUQyIsIjAsMSI6IkV1cm9wZS9Mb25kb24iLCI2MCwxIjoiRXVyb3BlL0JlcmxpbiIsIjYwLDAiOiJBZnJpY2EvTGFnb3MiLCI2MCwxLHMiOiJBZnJpY2EvV2luZGhvZWsiLCIxMjAsMSI6IkFzaWEvQmVpcnV0IiwiMTIwLDAiOiJBZnJpY2EvSm9oYW5uZXNidXJnIiwiMTgwLDAiOiJBc2lhL0JhZ2hkYWQiLCIxODAsMSI6IkV1cm9wZS9Nb3Njb3ciLCIyMTAsMSI6IkFzaWEvVGVocmFuIiwiMjQwLDAiOiJBc2lhL0R1YmFpIiwiMjQwLDEiOiJBc2lhL0Jha3UiLCIyNzAsMCI6IkFzaWEvS2FidWwiLCIzMDAsMSI6IkFzaWEvWWVrYXRlcmluYnVyZyIsIjMwMCwwIjoiQXNpYS9LYXJhY2hpIiwiMzMwLDAiOiJBc2lhL0tvbGthdGEiLCIzNDUsMCI6IkFzaWEvS2F0aG1hbmR1IiwiMzYwLDAiOiJBc2lhL0RoYWthIiwiMzYwLDEiOiJBc2lhL09tc2siLCIzOTAsMCI6IkFzaWEvUmFuZ29vbiIsIjQyMCwxIjoiQXNpYS9LcmFzbm95YXJzayIsIjQyMCwwIjoiQXNpYS9KYWthcnRhIiwiNDgwLDAiOiJBc2lhL1NoYW5naGFpIiwiNDgwLDEiOiJBc2lhL0lya3V0c2siLCI1MjUsMCI6IkF1c3RyYWxpYS9FdWNsYSIsIjUyNSwxLHMiOiJBdXN0cmFsaWEvRXVjbGEiLCI1NDAsMSI6IkFzaWEvWWFrdXRzayIsIjU0MCwwIjoiQXNpYS9Ub2t5byIsIjU3MCwwIjoiQXVzdHJhbGlhL0RhcndpbiIsIjU3MCwxLHMiOiJBdXN0cmFsaWEvQWRlbGFpZGUiLCI2MDAsMCI6IkF1c3RyYWxpYS9CcmlzYmFuZSIsIjYwMCwxIjoiQXNpYS9WbGFkaXZvc3RvayIsIjYwMCwxLHMiOiJBdXN0cmFsaWEvU3lkbmV5IiwiNjMwLDEscyI6IkF1c3RyYWxpYS9Mb3JkX0hvd2UiLCI2NjAsMSI6IkFzaWEvS2FtY2hhdGthIiwiNjYwLDAiOiJQYWNpZmljL05vdW1lYSIsIjY5MCwwIjoiUGFjaWZpYy9Ob3Jmb2xrIiwiNzIwLDEscyI6IlBhY2lmaWMvQXVja2xhbmQiLCI3MjAsMCI6IlBhY2lmaWMvTWFqdXJvIiwiNzY1LDEscyI6IlBhY2lmaWMvQ2hhdGhhbSIsIjc4MCwwIjoiUGFjaWZpYy9Ub25nYXRhcHUiLCI3ODAsMSxzIjoiUGFjaWZpYy9BcGlhIiwiODQwLDAiOiJQYWNpZmljL0tpcml0aW1hdGkifSxpLm9sc29uLmRzdF9ydWxlcz17eWVhcnM6WzIwMDgsMjAwOSwyMDEwLDIwMTEsMjAxMiwyMDEzLDIwMTRdLHpvbmVzOlt7bmFtZToiQWZyaWNhL0NhaXJvIixydWxlczpbe2U6MTIxOTk1NzJlNSxzOjEyMDkwNzQ0ZTV9LHtlOjEyNTA4MDJlNixzOjEyNDA1MjRlNn0se2U6MTI4NTg4MDRlNSxzOjEyODQwNjk2ZTV9LCExLCExLCExLHtlOjE0MTE2Nzg4ZTUsczoxNDA2ODQ0ZTZ9XX0se25hbWU6IkFmcmljYS9DYXNhYmxhbmNhIixydWxlczpbe2U6MTIyMDIyMzZlNSxzOjEyMTIyNzg0ZTV9LHtlOjEyNTA4MDkyZTUsczoxMjQzODE0NGU1fSx7ZToxMjgxMjIyZTYsczoxMjcyNzU4NGU1fSx7ZToxMzEyMDY2OGU1LHM6MTMwMTc4ODhlNX0se2U6MTM0ODk3MDRlNSxzOjEzNDU0MjhlNn0se2U6MTM4MjgzOTJlNSxzOjEzNzYxZTh9LHtlOjE0MTQyODg4ZTUsczoxNDA2OTQ0OGU1fV19LHtuYW1lOiJBbWVyaWNhL0FzdW5jaW9uIixydWxlczpbe2U6MTIwNTAzMTZlNSxzOjEyMjQzODg4ZTV9LHtlOjEyMzY0ODEyZTUsczoxMjU1ODM4NGU1fSx7ZToxMjcwOTU0OGU1LHM6MTI4NjA3ODRlNX0se2U6MTMwMjQwNDRlNSxzOjEzMTc1MjhlNn0se2U6MTMzMzg1NGU2LHM6MTM0OTU4MjRlNX0se2U6MTM2NDA5NGU2LHM6MTM4MTAzMmU2fSx7ZToxMzk1NTQzNmU1LHM6MTQxMjQ4MTZlNX1dfSx7bmFtZToiQW1lcmljYS9DYW1wb19HcmFuZGUiLHJ1bGVzOlt7ZToxMjAzMjE3MmU1LHM6MTIyNDM4ODhlNX0se2U6MTIzNDY2NjhlNSxzOjEyNTU4Mzg0ZTV9LHtlOjEyNjY3MjEyZTUsczoxMjg3Mjg4ZTZ9LHtlOjEyOTgxNzA4ZTUsczoxMzE4NzM3NmU1fSx7ZToxMzMwMjI1MmU1LHM6MTM1MDc5MmU2fSx7ZToxMzYxMDdlNyxzOjEzODIyNDE2ZTV9LHtlOjEzOTI1MTk2ZTUsczoxNDEzNjkxMmU1fV19LHtuYW1lOiJBbWVyaWNhL0dvb3NlX0JheSIscnVsZXM6W3tlOjEyMjU1OTQ4NmU0LHM6MTIwNTAzNTI2ZTR9LHtlOjEyNTcwNDQ0NmU0LHM6MTIzNjQ4NDg2ZTR9LHtlOjEyODkwOTg4NmU0LHM6MTI2ODUzOTI2ZTR9LHtlOjEzMjA1NTU2ZTUsczoxMjk5OTg4ODZlNH0se2U6MTM1MjAwNTJlNSxzOjEzMzE0NDU2ZTV9LHtlOjEzODM0NTQ4ZTUsczoxMzYyODk1MmU1fSx7ZToxNDE0OTA0NGU1LHM6MTM5NDM0NDhlNX1dfSx7bmFtZToiQW1lcmljYS9IYXZhbmEiLHJ1bGVzOlt7ZToxMjI0OTk3MmU1LHM6MTIwNTY0MzZlNX0se2U6MTI1NjQ0NjhlNSxzOjEyMzY0ODg0ZTV9LHtlOjEyODg1MDEyZTUsczoxMjY4NTQyOGU1fSx7ZToxMzIxMTYwNGU1LHM6MTMwMDU5NzJlNX0se2U6MTM1MjAwNTJlNSxzOjEzMzMyNTY0ZTV9LHtlOjEzODM0NTQ4ZTUsczoxMzYyODkxNmU1fSx7ZToxNDE0OTA0NGU1LHM6MTM5NDM0MTJlNX1dfSx7bmFtZToiQW1lcmljYS9NYXphdGxhbiIscnVsZXM6W3tlOjEyMjUwMDhlNixzOjEyMDc0NzI0ZTV9LHtlOjEyNTY0NTc2ZTUsczoxMjM4OTIyZTZ9LHtlOjEyODg1MTJlNixzOjEyNzAzNzE2ZTV9LHtlOjEzMTk5NjE2ZTUsczoxMzAxODIxMmU1fSx7ZToxMzUxNDExMmU1LHM6MTMzMzI3MDhlNX0se2U6MTM4Mjg2MDhlNSxzOjEzNjUzMjUyZTV9LHtlOjE0MTQzMTA0ZTUsczoxMzk2Nzc0OGU1fV19LHtuYW1lOiJBbWVyaWNhL01leGljb19DaXR5IixydWxlczpbe2U6MTIyNTAwNDRlNSxzOjEyMDc0Njg4ZTV9LHtlOjEyNTY0NTRlNixzOjEyMzg5MTg0ZTV9LHtlOjEyODg1MDg0ZTUsczoxMjcwMzY4ZTZ9LHtlOjEzMTk5NThlNixzOjEzMDE4MTc2ZTV9LHtlOjEzNTE0MDc2ZTUsczoxMzMzMjY3MmU1fSx7ZToxMzgyODU3MmU1LHM6MTM2NTMyMTZlNX0se2U6MTQxNDMwNjhlNSxzOjEzOTY3NzEyZTV9XX0se25hbWU6IkFtZXJpY2EvTWlxdWVsb24iLHJ1bGVzOlt7ZToxMjI1NTk4NGU1LHM6MTIwNTAzODhlNX0se2U6MTI1NzA0OGU2LHM6MTIzNjQ4ODRlNX0se2U6MTI4OTEwMjRlNSxzOjEyNjg1NDI4ZTV9LHtlOjEzMjA1NTJlNixzOjEyOTk5OTI0ZTV9LHtlOjEzNTIwMDE2ZTUsczoxMzMxNDQyZTZ9LHtlOjEzODM0NTEyZTUsczoxMzYyODkxNmU1fSx7ZToxNDE0OTAwOGU1LHM6MTM5NDM0MTJlNX1dfSx7bmFtZToiQW1lcmljYS9TYW50YV9Jc2FiZWwiLHJ1bGVzOlt7ZToxMjI1MDExNmU1LHM6MTIwNzQ3NmU2fSx7ZToxMjU2NDYxMmU1LHM6MTIzODkyNTZlNX0se2U6MTI4ODUxNTZlNSxzOjEyNzAzNzUyZTV9LHtlOjEzMTk5NjUyZTUsczoxMzAxODI0OGU1fSx7ZToxMzUxNDE0OGU1LHM6MTMzMzI3NDRlNX0se2U6MTM4Mjg2NDRlNSxzOjEzNjUzMjg4ZTV9LHtlOjE0MTQzMTRlNixzOjEzOTY3Nzg0ZTV9XX0se25hbWU6IkFtZXJpY2EvU2FudGlhZ28iLHJ1bGVzOlt7ZToxMjA2ODQ2ZTYsczoxMjIzNzg0ZTZ9LHtlOjEyMzcwODZlNixzOjEyNTUyMzM2ZTV9LHtlOjEyNzAzNWU3LHM6MTI4NjY4MzJlNX0se2U6MTMwNDgyMzZlNSxzOjEzMTM4OTkyZTV9LHtlOjEzMzU2Njg0ZTUsczoxMzQ2NTU4NGU1fSx7ZToxMzY3MTE4ZTYsczoxMzc4NjEyOGU1fSx7ZToxMzk4NTY3NmU1LHM6MTQxMDA2MjRlNX1dfSx7bmFtZToiQW1lcmljYS9TYW9fUGF1bG8iLHJ1bGVzOlt7ZToxMjAzMjEzNmU1LHM6MTIyNDM4NTJlNX0se2U6MTIzNDY2MzJlNSxzOjEyNTU4MzQ4ZTV9LHtlOjEyNjY3MTc2ZTUsczoxMjg3Mjg0NGU1fSx7ZToxMjk4MTY3MmU1LHM6MTMxODczNGU2fSx7ZToxMzMwMjIxNmU1LHM6MTM1MDc4ODRlNX0se2U6MTM2MTA2NjRlNSxzOjEzODIyMzhlNn0se2U6MTM5MjUxNmU2LHM6MTQxMzY4NzZlNX1dfSx7bmFtZToiQXNpYS9BbW1hbiIscnVsZXM6W3tlOjEyMjU0MDRlNixzOjEyMDY2NTUyZTV9LHtlOjEyNTY4NTM2ZTUsczoxMjM4MTA0OGU1fSx7ZToxMjg4MzAzMmU1LHM6MTI2OTU1NDRlNX0se2U6MTMxOTc1MjhlNSxzOjEzMDE2MDg4ZTV9LCExLCExLHtlOjE0MTQ3MDY0ZTUsczoxMzk1OTU3NmU1fV19LHtuYW1lOiJBc2lhL0RhbWFzY3VzIixydWxlczpbe2U6MTIyNTQ4NjhlNSxzOjEyMDcyNmU3fSx7ZToxMjU2ODVlNyxzOjEyMzgxMDQ4ZTV9LHtlOjEyODgyOTk2ZTUsczoxMjcwMTU5MmU1fSx7ZToxMzE5NzQ5MmU1LHM6MTMwMTYwODhlNX0se2U6MTM1MTE5ODhlNSxzOjEzMzMwNTg0ZTV9LHtlOjEzODI2NDg0ZTUsczoxMzY0NTA4ZTZ9LHtlOjE0MTQ3MDI4ZTUsczoxMzk1OTU3NmU1fV19LHtuYW1lOiJBc2lhL0R1YmFpIixydWxlczpbITEsITEsITEsITEsITEsITEsITFdfSx7bmFtZToiQXNpYS9HYXphIixydWxlczpbe2U6MTIxOTk1NzJlNSxzOjEyMDY2NTUyZTV9LHtlOjEyNTIwMTUyZTUsczoxMjM4MTA0OGU1fSx7ZToxMjgxNDc0ZTYsczoxMjY5NjQwODZlNH0se2U6MTMxMjE0NmU2LHM6MTMwMTYwODg2ZTR9LHtlOjEzNDgxNzg0ZTUsczoxMzMzMDU4NGU1fSx7ZToxMzgwMjI5MmU1LHM6MTM2NDUwOGU2fSx7ZToxNDE0MDk4ZTYsczoxMzk1OTU3NmU1fV19LHtuYW1lOiJBc2lhL0lya3V0c2siLHJ1bGVzOlt7ZToxMjI0OTU3NmU1LHM6MTIwNjgxMzZlNX0se2U6MTI1NjQwNzJlNSxzOjEyMzgyNjMyZTV9LHtlOjEyODg0NjE2ZTUsczoxMjY5NzEyOGU1fSwhMSwhMSwhMSwhMV19LHtuYW1lOiJBc2lhL0plcnVzYWxlbSIscnVsZXM6W3tlOjEyMjMxNjEyZTUsczoxMjA2NjYyNGU1fSx7ZToxMjU0MDA2ZTYsczoxMjM4MTEyZTZ9LHtlOjEyODQyNDZlNixzOjEyNjk1NjE2ZTV9LHtlOjEzMTc1MWU3LHM6MTMwMTYxNmU2fSx7ZToxMzQ4MzU0OGU1LHM6MTMzMzA2NTZlNX0se2U6MTM4MjgyODRlNSxzOjEzNjQ1MTUyZTV9LHtlOjE0MTQyNzhlNixzOjEzOTU5NjQ4ZTV9XX0se25hbWU6IkFzaWEvS2FtY2hhdGthIixydWxlczpbe2U6MTIyNDk0MzJlNSxzOjEyMDY3OTkyZTV9LHtlOjEyNTYzOTI4ZTUsczoxMjM4MjQ4OGU1fSx7ZToxMjg4NDUwOGU1LHM6MTI2OTY5ODRlNX0sITEsITEsITEsITFdfSx7bmFtZToiQXNpYS9LcmFzbm95YXJzayIscnVsZXM6W3tlOjEyMjQ5NjEyZTUsczoxMjA2ODE3MmU1fSx7ZToxMjU2NDEwOGU1LHM6MTIzODI2NjhlNX0se2U6MTI4ODQ2NTJlNSxzOjEyNjk3MTY0ZTV9LCExLCExLCExLCExXX0se25hbWU6IkFzaWEvT21zayIscnVsZXM6W3tlOjEyMjQ5NjQ4ZTUsczoxMjA2ODIwOGU1fSx7ZToxMjU2NDE0NGU1LHM6MTIzODI3MDRlNX0se2U6MTI4ODQ2ODhlNSxzOjEyNjk3MmU3fSwhMSwhMSwhMSwhMV19LHtuYW1lOiJBc2lhL1ZsYWRpdm9zdG9rIixydWxlczpbe2U6MTIyNDk1MDRlNSxzOjEyMDY4MDY0ZTV9LHtlOjEyNTY0ZTgsczoxMjM4MjU2ZTZ9LHtlOjEyODg0NTQ0ZTUsczoxMjY5NzA1NmU1fSwhMSwhMSwhMSwhMV19LHtuYW1lOiJBc2lhL1lha3V0c2siLHJ1bGVzOlt7ZToxMjI0OTU0ZTYsczoxMjA2ODFlN30se2U6MTI1NjQwMzZlNSxzOjEyMzgyNTk2ZTV9LHtlOjEyODg0NThlNixzOjEyNjk3MDkyZTV9LCExLCExLCExLCExXX0se25hbWU6IkFzaWEvWWVrYXRlcmluYnVyZyIscnVsZXM6W3tlOjEyMjQ5Njg0ZTUsczoxMjA2ODI0NGU1fSx7ZToxMjU2NDE4ZTYsczoxMjM4Mjc0ZTZ9LHtlOjEyODg0NzI0ZTUsczoxMjY5NzIzNmU1fSwhMSwhMSwhMSwhMV19LHtuYW1lOiJBc2lhL1llcmV2YW4iLHJ1bGVzOlt7ZToxMjI0OTcyZTYsczoxMjA2ODI4ZTZ9LHtlOjEyNTY0MjE2ZTUsczoxMjM4Mjc3NmU1fSx7ZToxMjg4NDc2ZTYsczoxMjY5NzI3MmU1fSx7ZToxMzE5OTI1NmU1LHM6MTMwMTE3NjhlNX0sITEsITEsITFdfSx7bmFtZToiQXVzdHJhbGlhL0xvcmRfSG93ZSIscnVsZXM6W3tlOjEyMDc0MDc2ZTUsczoxMjIzMTM0MmU1fSx7ZToxMjM4ODU3MmU1LHM6MTI1NDU4MzhlNX0se2U6MTI3MDMwNjhlNSxzOjEyODYwMzM0ZTV9LHtlOjEzMDE3NTY0ZTUsczoxMzE3NDgzZTZ9LHtlOjEzMzMyMDZlNixzOjEzNDk1Mzc0ZTV9LHtlOjEzNjUyNjA0ZTUsczoxMzgwOTg3ZTZ9LHtlOjEzOTY3MWU3LHM6MTQxMjQzNjZlNX1dfSx7bmFtZToiQXVzdHJhbGlhL1BlcnRoIixydWxlczpbe2U6MTIwNjgxMzZlNSxzOjEyMjQ5NTc2ZTV9LCExLCExLCExLCExLCExLCExXX0se25hbWU6IkV1cm9wZS9IZWxzaW5raSIscnVsZXM6W3tlOjEyMjQ5ODI4ZTUsczoxMjA2ODM4OGU1fSx7ZToxMjU2NDMyNGU1LHM6MTIzODI4ODRlNX0se2U6MTI4ODQ4NjhlNSxzOjEyNjk3MzhlNn0se2U6MTMxOTkzNjRlNSxzOjEzMDExODc2ZTV9LHtlOjEzNTEzODZlNixzOjEzMzI2MzcyZTV9LHtlOjEzODI4MzU2ZTUsczoxMzY0NjkxNmU1fSx7ZToxNDE0Mjg1MmU1LHM6MTM5NjE0MTJlNX1dfSx7bmFtZToiRXVyb3BlL01pbnNrIixydWxlczpbe2U6MTIyNDk3OTJlNSxzOjEyMDY4MzUyZTV9LHtlOjEyNTY0Mjg4ZTUsczoxMjM4Mjg0OGU1fSx7ZToxMjg4NDgzMmU1LHM6MTI2OTczNDRlNX0sITEsITEsITEsITFdfSx7bmFtZToiRXVyb3BlL01vc2NvdyIscnVsZXM6W3tlOjEyMjQ5NzU2ZTUsczoxMjA2ODMxNmU1fSx7ZToxMjU2NDI1MmU1LHM6MTIzODI4MTJlNX0se2U6MTI4ODQ3OTZlNSxzOjEyNjk3MzA4ZTV9LCExLCExLCExLCExXX0se25hbWU6IlBhY2lmaWMvQXBpYSIscnVsZXM6WyExLCExLCExLHtlOjEzMDE3NTI4ZTUsczoxMzE2ODcyOGU1fSx7ZToxMzMzMjAyNGU1LHM6MTM0ODkyNzJlNX0se2U6MTM2NTI1NjhlNSxzOjEzODAzNzY4ZTV9LHtlOjEzOTY3MDY0ZTUsczoxNDExODI2NGU1fV19LHtuYW1lOiJQYWNpZmljL0ZpamkiLHJ1bGVzOlshMSwhMSx7ZToxMjY5Njk4NGU1LHM6MTI4Nzg0MjRlNX0se2U6MTMyNzE1NDRlNSxzOjEzMTkyOTJlNn0se2U6MTM1ODYwNGU2LHM6MTM1MDc0MTZlNX0se2U6MTM5MDA1ZTcsczoxMzgyNzk2ZTZ9LHtlOjE0MjE1MDMyZTUsczoxNDE0ODUwNGU1fV19LHtuYW1lOiJFdXJvcGUvTG9uZG9uIixydWxlczpbe2U6MTIyNDk4MjhlNSxzOjEyMDY4Mzg4ZTV9LHtlOjEyNTY0MzI0ZTUsczoxMjM4Mjg4NGU1fSx7ZToxMjg4NDg2OGU1LHM6MTI2OTczOGU2fSx7ZToxMzE5OTM2NGU1LHM6MTMwMTE4NzZlNX0se2U6MTM1MTM4NmU2LHM6MTMzMjYzNzJlNX0se2U6MTM4MjgzNTZlNSxzOjEzNjQ2OTE2ZTV9LHtlOjE0MTQyODUyZTUsczoxMzk2MTQxMmU1fV19XX0sInVuZGVmaW5lZCIhPT10eXBlb2YgZS5leHBvcnRzP2UuZXhwb3J0cz1pOm51bGwhPT1uKDI3NikmJm51bGwhPW4oMjc3KT92b2lkIDA9PT0ocj1mdW5jdGlvbigpe3JldHVybiBpfS5hcHBseSh0LFtdKSl8fChlLmV4cG9ydHM9cik6d2luZG93LmpzdHo9aX0oKX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoImRlZmluZSBjYW5ub3QgYmUgdXNlZCBpbmRpcmVjdCIpfX0sZnVuY3Rpb24oZSx0KXsoZnVuY3Rpb24odCl7ZS5leHBvcnRzPXR9KS5jYWxsKHRoaXMse30pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyNzkpLG89bigxNDYpLGk9bigxODgpLGE9bigxMjApKCJzb2NrZXQuaW8tY2xpZW50Iik7ZS5leHBvcnRzPXQ9dTt2YXIgcz10Lm1hbmFnZXJzPXt9O2Z1bmN0aW9uIHUoZSx0KXsib2JqZWN0Ij09PXR5cGVvZiBlJiYodD1lLGU9dm9pZCAwKSx0PXR8fHt9O3ZhciBuLG89cihlKSx1PW8uc291cmNlLGM9by5pZCxsPW8ucGF0aCxmPXNbY10mJmwgaW4gc1tjXS5uc3BzO3JldHVybiB0LmZvcmNlTmV3fHx0WyJmb3JjZSBuZXcgY29ubmVjdGlvbiJdfHwhMT09PXQubXVsdGlwbGV4fHxmPyhhKCJpZ25vcmluZyBzb2NrZXQgY2FjaGUgZm9yICVzIix1KSxuPWkodSx0KSk6KHNbY118fChhKCJuZXcgaW8gaW5zdGFuY2UgZm9yICVzIix1KSxzW2NdPWkodSx0KSksbj1zW2NdKSxvLnF1ZXJ5JiYhdC5xdWVyeSYmKHQucXVlcnk9by5xdWVyeSksbi5zb2NrZXQoby5wYXRoLHQpfXQucHJvdG9jb2w9by5wcm90b2NvbCx0LmNvbm5lY3Q9dSx0Lk1hbmFnZXI9bigxODgpLHQuU29ja2V0PW4oMTk0KX0sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbih0KXt2YXIgcj1uKDE4NSksbz1uKDEyMCkoInNvY2tldC5pby1jbGllbnQ6dXJsIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsbil7dmFyIGk9ZTtuPW58fHQubG9jYXRpb24sbnVsbD09ZSYmKGU9bi5wcm90b2NvbCsiLy8iK24uaG9zdCk7InN0cmluZyI9PT10eXBlb2YgZSYmKCIvIj09PWUuY2hhckF0KDApJiYoZT0iLyI9PT1lLmNoYXJBdCgxKT9uLnByb3RvY29sK2U6bi5ob3N0K2UpLC9eKGh0dHBzP3x3c3M/KTpcL1wvLy50ZXN0KGUpfHwobygicHJvdG9jb2wtbGVzcyB1cmwgJXMiLGUpLGU9InVuZGVmaW5lZCIhPT10eXBlb2Ygbj9uLnByb3RvY29sKyIvLyIrZToiaHR0cHM6Ly8iK2UpLG8oInBhcnNlICVzIixlKSxpPXIoZSkpO2kucG9ydHx8KC9eKGh0dHB8d3MpJC8udGVzdChpLnByb3RvY29sKT9pLnBvcnQ9IjgwIjovXihodHRwfHdzKXMkLy50ZXN0KGkucHJvdG9jb2wpJiYoaS5wb3J0PSI0NDMiKSk7aS5wYXRoPWkucGF0aHx8Ii8iO3ZhciBhPS0xIT09aS5ob3N0LmluZGV4T2YoIjoiKT8iWyIraS5ob3N0KyJdIjppLmhvc3Q7cmV0dXJuIGkuaWQ9aS5wcm90b2NvbCsiOi8vIithKyI6IitpLnBvcnQsaS5ocmVmPWkucHJvdG9jb2wrIjovLyIrYSsobiYmbi5wb3J0PT09aS5wb3J0PyIiOiI6IitpLnBvcnQpLGl9fSkuY2FsbCh0aGlzLG4oMTMpKX0sZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIHIoZSl7dmFyIG47ZnVuY3Rpb24gcigpe2lmKHIuZW5hYmxlZCl7dmFyIGU9cixvPStuZXcgRGF0ZSxpPW8tKG58fG8pO2UuZGlmZj1pLGUucHJldj1uLGUuY3Vycj1vLG49bztmb3IodmFyIGE9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHM9MDtzPGEubGVuZ3RoO3MrKylhW3NdPWFyZ3VtZW50c1tzXTthWzBdPXQuY29lcmNlKGFbMF0pLCJzdHJpbmciIT09dHlwZW9mIGFbMF0mJmEudW5zaGlmdCgiJU8iKTt2YXIgdT0wO2FbMF09YVswXS5yZXBsYWNlKC8lKFthLXpBLVolXSkvZywoZnVuY3Rpb24obixyKXtpZigiJSUiPT09bilyZXR1cm4gbjt1Kys7dmFyIG89dC5mb3JtYXR0ZXJzW3JdO2lmKCJmdW5jdGlvbiI9PT10eXBlb2Ygbyl7dmFyIGk9YVt1XTtuPW8uY2FsbChlLGkpLGEuc3BsaWNlKHUsMSksdS0tfXJldHVybiBufSkpLHQuZm9ybWF0QXJncy5jYWxsKGUsYSk7dmFyIGM9ci5sb2d8fHQubG9nfHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO2MuYXBwbHkoZSxhKX19cmV0dXJuIHIubmFtZXNwYWNlPWUsci5lbmFibGVkPXQuZW5hYmxlZChlKSxyLnVzZUNvbG9ycz10LnVzZUNvbG9ycygpLHIuY29sb3I9ZnVuY3Rpb24oZSl7dmFyIG4scj0wO2ZvcihuIGluIGUpcj0ocjw8NSktcitlLmNoYXJDb2RlQXQobikscnw9MDtyZXR1cm4gdC5jb2xvcnNbTWF0aC5hYnMocikldC5jb2xvcnMubGVuZ3RoXX0oZSksci5kZXN0cm95PW8sImZ1bmN0aW9uIj09PXR5cGVvZiB0LmluaXQmJnQuaW5pdChyKSx0Lmluc3RhbmNlcy5wdXNoKHIpLHJ9ZnVuY3Rpb24gbygpe3ZhciBlPXQuaW5zdGFuY2VzLmluZGV4T2YodGhpcyk7cmV0dXJuLTEhPT1lJiYodC5pbnN0YW5jZXMuc3BsaWNlKGUsMSksITApfSh0PWUuZXhwb3J0cz1yLmRlYnVnPXIuZGVmYXVsdD1yKS5jb2VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX0sdC5kaXNhYmxlPWZ1bmN0aW9uKCl7dC5lbmFibGUoIiIpfSx0LmVuYWJsZT1mdW5jdGlvbihlKXt2YXIgbjt0LnNhdmUoZSksdC5uYW1lcz1bXSx0LnNraXBzPVtdO3ZhciByPSgic3RyaW5nIj09PXR5cGVvZiBlP2U6IiIpLnNwbGl0KC9bXHMsXSsvKSxvPXIubGVuZ3RoO2ZvcihuPTA7bjxvO24rKylyW25dJiYoIi0iPT09KGU9cltuXS5yZXBsYWNlKC9cKi9nLCIuKj8iKSlbMF0/dC5za2lwcy5wdXNoKG5ldyBSZWdFeHAoIl4iK2Uuc3Vic3RyKDEpKyIkIikpOnQubmFtZXMucHVzaChuZXcgUmVnRXhwKCJeIitlKyIkIikpKTtmb3Iobj0wO248dC5pbnN0YW5jZXMubGVuZ3RoO24rKyl7dmFyIGk9dC5pbnN0YW5jZXNbbl07aS5lbmFibGVkPXQuZW5hYmxlZChpLm5hbWVzcGFjZSl9fSx0LmVuYWJsZWQ9ZnVuY3Rpb24oZSl7aWYoIioiPT09ZVtlLmxlbmd0aC0xXSlyZXR1cm4hMDt2YXIgbixyO2ZvcihuPTAscj10LnNraXBzLmxlbmd0aDtuPHI7bisrKWlmKHQuc2tpcHNbbl0udGVzdChlKSlyZXR1cm4hMTtmb3Iobj0wLHI9dC5uYW1lcy5sZW5ndGg7bjxyO24rKylpZih0Lm5hbWVzW25dLnRlc3QoZSkpcmV0dXJuITA7cmV0dXJuITF9LHQuaHVtYW5pemU9bigyODEpLHQuaW5zdGFuY2VzPVtdLHQubmFtZXM9W10sdC5za2lwcz1bXSx0LmZvcm1hdHRlcnM9e319LGZ1bmN0aW9uKGUsdCl7dmFyIG49MWUzLHI9NmU0LG89NjAqcixpPTI0Km87ZnVuY3Rpb24gYShlLHQsbil7aWYoIShlPHQpKXJldHVybiBlPDEuNSp0P01hdGguZmxvb3IoZS90KSsiICIrbjpNYXRoLmNlaWwoZS90KSsiICIrbisicyJ9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgcyx1PXR5cGVvZiBlO2lmKCJzdHJpbmciPT09dSYmZS5sZW5ndGg+MClyZXR1cm4gZnVuY3Rpb24oZSl7aWYoKGU9U3RyaW5nKGUpKS5sZW5ndGg+MTAwKXJldHVybjt2YXIgdD0vXigoPzpcZCspP1wuP1xkKykgKihtaWxsaXNlY29uZHM/fG1zZWNzP3xtc3xzZWNvbmRzP3xzZWNzP3xzfG1pbnV0ZXM/fG1pbnM/fG18aG91cnM/fGhycz98aHxkYXlzP3xkfHllYXJzP3x5cnM/fHkpPyQvaS5leGVjKGUpO2lmKCF0KXJldHVybjt2YXIgYT1wYXJzZUZsb2F0KHRbMV0pO3N3aXRjaCgodFsyXXx8Im1zIikudG9Mb3dlckNhc2UoKSl7Y2FzZSJ5ZWFycyI6Y2FzZSJ5ZWFyIjpjYXNlInlycyI6Y2FzZSJ5ciI6Y2FzZSJ5IjpyZXR1cm4gMzE1NTc2ZTUqYTtjYXNlImRheXMiOmNhc2UiZGF5IjpjYXNlImQiOnJldHVybiBhKmk7Y2FzZSJob3VycyI6Y2FzZSJob3VyIjpjYXNlImhycyI6Y2FzZSJociI6Y2FzZSJoIjpyZXR1cm4gYSpvO2Nhc2UibWludXRlcyI6Y2FzZSJtaW51dGUiOmNhc2UibWlucyI6Y2FzZSJtaW4iOmNhc2UibSI6cmV0dXJuIGEqcjtjYXNlInNlY29uZHMiOmNhc2Uic2Vjb25kIjpjYXNlInNlY3MiOmNhc2Uic2VjIjpjYXNlInMiOnJldHVybiBhKm47Y2FzZSJtaWxsaXNlY29uZHMiOmNhc2UibWlsbGlzZWNvbmQiOmNhc2UibXNlY3MiOmNhc2UibXNlYyI6Y2FzZSJtcyI6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm59fShlKTtpZigibnVtYmVyIj09PXUmJiExPT09aXNOYU4oZSkpcmV0dXJuIHQubG9uZz9hKHM9ZSxpLCJkYXkiKXx8YShzLG8sImhvdXIiKXx8YShzLHIsIm1pbnV0ZSIpfHxhKHMsbiwic2Vjb25kIil8fHMrIiBtcyI6ZnVuY3Rpb24oZSl7aWYoZT49aSlyZXR1cm4gTWF0aC5yb3VuZChlL2kpKyJkIjtpZihlPj1vKXJldHVybiBNYXRoLnJvdW5kKGUvbykrImgiO2lmKGU+PXIpcmV0dXJuIE1hdGgucm91bmQoZS9yKSsibSI7aWYoZT49bilyZXR1cm4gTWF0aC5yb3VuZChlL24pKyJzIjtyZXR1cm4gZSsibXMifShlKTt0aHJvdyBuZXcgRXJyb3IoInZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9IitKU09OLnN0cmluZ2lmeShlKSl9fSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKHIpe2Z1bmN0aW9uIG8oKXt2YXIgZTt0cnl7ZT10LnN0b3JhZ2UuZGVidWd9Y2F0Y2gobil7fXJldHVybiFlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiByJiYiZW52ImluIHImJihlPU9iamVjdCh7Tk9ERV9FTlY6InByb2R1Y3Rpb24iLFBVQkxJQ19VUkw6IiIsTkVXX1dJREdFVF9SRUxFQVNFX0RBVEU6IjIwMTgtMDctMDkgMTI6MjU6MDAiLE5FV19XSURHRVRfVVJJOiJodHRwczovL3dpZGdldC12NC50aWRpb2NoYXQuY29tLyIsTkVXX1dJREdFVF9SQVZFTl9XSURHRVRfRFNOX1BVQkxJQzoiaHR0cHM6Ly82MTFmNWI3ZDYyYTA0OWI2OGVkNzIyMjEzZTBhZmJlM0BzZW50cnkudGlkaW8uY28vMTUiLE5FV19XSURHRVRfVVJMX1NPQ0tFVDoiaHR0cHM6Ly9zb2NrZXQudGlkaW8uY286NDQzIixORVdfV0lER0VUX1VSTF9BUEk6Imh0dHBzOi8vYXBpLXYyLnRpZGlvLmNvLyIsTkVXX1dJREdFVF9VUkxfV0lER0VUOiJodHRwczovL3dpZGdldC12NC50aWRpb2NoYXQuY29tLyIsTkVXX1dJREdFVF9VUkxfQ0hBVF9QQUdFOiJodHRwczovL2NoYXR0aW5nLnBhZ2UvIixORVdfV0lER0VUX1NFTkRfU09VUkNFTUFQU19UT19TRU5UUlk6InRydWUiLE5FV19XSURHRVRfU1VQUE9SVF9QVUJMSUNfS0VZOiJ3MGk0YjdmZGVlcmZxcW40dzhsd2I3YWhqYXNqbnJtZCJ9KS5ERUJVRyksZX0odD1lLmV4cG9ydHM9bigyODMpKS5sb2c9ZnVuY3Rpb24oKXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLmxvZyYmRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZS5sb2csY29uc29sZSxhcmd1bWVudHMpfSx0LmZvcm1hdEFyZ3M9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcy51c2VDb2xvcnM7aWYoZVswXT0obj8iJWMiOiIiKSt0aGlzLm5hbWVzcGFjZSsobj8iICVjIjoiICIpK2VbMF0rKG4/IiVjICI6IiAiKSsiKyIrdC5odW1hbml6ZSh0aGlzLmRpZmYpLCFuKXJldHVybjt2YXIgcj0iY29sb3I6ICIrdGhpcy5jb2xvcjtlLnNwbGljZSgxLDAsciwiY29sb3I6IGluaGVyaXQiKTt2YXIgbz0wLGk9MDtlWzBdLnJlcGxhY2UoLyVbYS16QS1aJV0vZywoZnVuY3Rpb24oZSl7IiUlIiE9PWUmJihvKyssIiVjIj09PWUmJihpPW8pKX0pKSxlLnNwbGljZShpLDAscil9LHQuc2F2ZT1mdW5jdGlvbihlKXt0cnl7bnVsbD09ZT90LnN0b3JhZ2UucmVtb3ZlSXRlbSgiZGVidWciKTp0LnN0b3JhZ2UuZGVidWc9ZX1jYXRjaChuKXt9fSx0LmxvYWQ9byx0LnVzZUNvbG9ycz1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmd2luZG93LnByb2Nlc3MmJiJyZW5kZXJlciI9PT13aW5kb3cucHJvY2Vzcy50eXBlKXJldHVybiEwO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oZWRnZXx0cmlkZW50KVwvKFxkKykvKSlyZXR1cm4hMTtyZXR1cm4idW5kZWZpbmVkIiE9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlfHwidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUuZmlyZWJ1Z3x8d2luZG93LmNvbnNvbGUuZXhjZXB0aW9uJiZ3aW5kb3cuY29uc29sZS50YWJsZSl8fCJ1bmRlZmluZWQiIT09dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pJiZwYXJzZUludChSZWdFeHAuJDEsMTApPj0zMXx8InVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XC8oXGQrKS8pfSx0LnN0b3JhZ2U9InVuZGVmaW5lZCIhPXR5cGVvZiBjaHJvbWUmJiJ1bmRlZmluZWQiIT10eXBlb2YgY2hyb21lLnN0b3JhZ2U/Y2hyb21lLnN0b3JhZ2UubG9jYWw6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2goZSl7fX0oKSx0LmNvbG9ycz1bIiMwMDAwQ0MiLCIjMDAwMEZGIiwiIzAwMzNDQyIsIiMwMDMzRkYiLCIjMDA2NkNDIiwiIzAwNjZGRiIsIiMwMDk5Q0MiLCIjMDA5OUZGIiwiIzAwQ0MwMCIsIiMwMENDMzMiLCIjMDBDQzY2IiwiIzAwQ0M5OSIsIiMwMENDQ0MiLCIjMDBDQ0ZGIiwiIzMzMDBDQyIsIiMzMzAwRkYiLCIjMzMzM0NDIiwiIzMzMzNGRiIsIiMzMzY2Q0MiLCIjMzM2NkZGIiwiIzMzOTlDQyIsIiMzMzk5RkYiLCIjMzNDQzAwIiwiIzMzQ0MzMyIsIiMzM0NDNjYiLCIjMzNDQzk5IiwiIzMzQ0NDQyIsIiMzM0NDRkYiLCIjNjYwMENDIiwiIzY2MDBGRiIsIiM2NjMzQ0MiLCIjNjYzM0ZGIiwiIzY2Q0MwMCIsIiM2NkNDMzMiLCIjOTkwMENDIiwiIzk5MDBGRiIsIiM5OTMzQ0MiLCIjOTkzM0ZGIiwiIzk5Q0MwMCIsIiM5OUNDMzMiLCIjQ0MwMDAwIiwiI0NDMDAzMyIsIiNDQzAwNjYiLCIjQ0MwMDk5IiwiI0NDMDBDQyIsIiNDQzAwRkYiLCIjQ0MzMzAwIiwiI0NDMzMzMyIsIiNDQzMzNjYiLCIjQ0MzMzk5IiwiI0NDMzNDQyIsIiNDQzMzRkYiLCIjQ0M2NjAwIiwiI0NDNjYzMyIsIiNDQzk5MDAiLCIjQ0M5OTMzIiwiI0NDQ0MwMCIsIiNDQ0NDMzMiLCIjRkYwMDAwIiwiI0ZGMDAzMyIsIiNGRjAwNjYiLCIjRkYwMDk5IiwiI0ZGMDBDQyIsIiNGRjAwRkYiLCIjRkYzMzAwIiwiI0ZGMzMzMyIsIiNGRjMzNjYiLCIjRkYzMzk5IiwiI0ZGMzNDQyIsIiNGRjMzRkYiLCIjRkY2NjAwIiwiI0ZGNjYzMyIsIiNGRjk5MDAiLCIjRkY5OTMzIiwiI0ZGQ0MwMCIsIiNGRkNDMzMiXSx0LmZvcm1hdHRlcnMuaj1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKHQpe3JldHVybiJbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogIit0Lm1lc3NhZ2V9fSx0LmVuYWJsZShvKCkpfSkuY2FsbCh0aGlzLG4oMTQ1KSl9LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKGUpe3ZhciBuO2Z1bmN0aW9uIHIoKXtpZihyLmVuYWJsZWQpe3ZhciBlPXIsbz0rbmV3IERhdGUsaT1vLShufHxvKTtlLmRpZmY9aSxlLnByZXY9bixlLmN1cnI9byxuPW87Zm9yKHZhciBhPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxzPTA7czxhLmxlbmd0aDtzKyspYVtzXT1hcmd1bWVudHNbc107YVswXT10LmNvZXJjZShhWzBdKSwic3RyaW5nIiE9PXR5cGVvZiBhWzBdJiZhLnVuc2hpZnQoIiVPIik7dmFyIHU9MDthWzBdPWFbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csKGZ1bmN0aW9uKG4scil7aWYoIiUlIj09PW4pcmV0dXJuIG47dSsrO3ZhciBvPXQuZm9ybWF0dGVyc1tyXTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIG8pe3ZhciBpPWFbdV07bj1vLmNhbGwoZSxpKSxhLnNwbGljZSh1LDEpLHUtLX1yZXR1cm4gbn0pKSx0LmZvcm1hdEFyZ3MuY2FsbChlLGEpO3ZhciBjPXIubG9nfHx0LmxvZ3x8Y29uc29sZS5sb2cuYmluZChjb25zb2xlKTtjLmFwcGx5KGUsYSl9fXJldHVybiByLm5hbWVzcGFjZT1lLHIuZW5hYmxlZD10LmVuYWJsZWQoZSksci51c2VDb2xvcnM9dC51c2VDb2xvcnMoKSxyLmNvbG9yPWZ1bmN0aW9uKGUpe3ZhciBuLHI9MDtmb3IobiBpbiBlKXI9KHI8PDUpLXIrZS5jaGFyQ29kZUF0KG4pLHJ8PTA7cmV0dXJuIHQuY29sb3JzW01hdGguYWJzKHIpJXQuY29sb3JzLmxlbmd0aF19KGUpLHIuZGVzdHJveT1vLCJmdW5jdGlvbiI9PT10eXBlb2YgdC5pbml0JiZ0LmluaXQociksdC5pbnN0YW5jZXMucHVzaChyKSxyfWZ1bmN0aW9uIG8oKXt2YXIgZT10Lmluc3RhbmNlcy5pbmRleE9mKHRoaXMpO3JldHVybi0xIT09ZSYmKHQuaW5zdGFuY2VzLnNwbGljZShlLDEpLCEwKX0odD1lLmV4cG9ydHM9ci5kZWJ1Zz1yLmRlZmF1bHQ9cikuY29lcmNlPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3I/ZS5zdGFja3x8ZS5tZXNzYWdlOmV9LHQuZGlzYWJsZT1mdW5jdGlvbigpe3QuZW5hYmxlKCIiKX0sdC5lbmFibGU9ZnVuY3Rpb24oZSl7dmFyIG47dC5zYXZlKGUpLHQubmFtZXM9W10sdC5za2lwcz1bXTt2YXIgcj0oInN0cmluZyI9PT10eXBlb2YgZT9lOiIiKS5zcGxpdCgvW1xzLF0rLyksbz1yLmxlbmd0aDtmb3Iobj0wO248bztuKyspcltuXSYmKCItIj09PShlPXJbbl0ucmVwbGFjZSgvXCovZywiLio/IikpWzBdP3Quc2tpcHMucHVzaChuZXcgUmVnRXhwKCJeIitlLnN1YnN0cigxKSsiJCIpKTp0Lm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgiXiIrZSsiJCIpKSk7Zm9yKG49MDtuPHQuaW5zdGFuY2VzLmxlbmd0aDtuKyspe3ZhciBpPXQuaW5zdGFuY2VzW25dO2kuZW5hYmxlZD10LmVuYWJsZWQoaS5uYW1lc3BhY2UpfX0sdC5lbmFibGVkPWZ1bmN0aW9uKGUpe2lmKCIqIj09PWVbZS5sZW5ndGgtMV0pcmV0dXJuITA7dmFyIG4scjtmb3Iobj0wLHI9dC5za2lwcy5sZW5ndGg7bjxyO24rKylpZih0LnNraXBzW25dLnRlc3QoZSkpcmV0dXJuITE7Zm9yKG49MCxyPXQubmFtZXMubGVuZ3RoO248cjtuKyspaWYodC5uYW1lc1tuXS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfSx0Lmh1bWFuaXplPW4oMjg0KSx0Lmluc3RhbmNlcz1bXSx0Lm5hbWVzPVtdLHQuc2tpcHM9W10sdC5mb3JtYXR0ZXJzPXt9fSxmdW5jdGlvbihlLHQpe3ZhciBuPTFlMyxyPTZlNCxvPTYwKnIsaT0yNCpvO2Z1bmN0aW9uIGEoZSx0LG4pe2lmKCEoZTx0KSlyZXR1cm4gZTwxLjUqdD9NYXRoLmZsb29yKGUvdCkrIiAiK246TWF0aC5jZWlsKGUvdCkrIiAiK24rInMifWUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIHMsdT10eXBlb2YgZTtpZigic3RyaW5nIj09PXUmJmUubGVuZ3RoPjApcmV0dXJuIGZ1bmN0aW9uKGUpe2lmKChlPVN0cmluZyhlKSkubGVuZ3RoPjEwMClyZXR1cm47dmFyIHQ9L14oKD86XGQrKT9cLj9cZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhlKTtpZighdClyZXR1cm47dmFyIGE9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fCJtcyIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UieWVhcnMiOmNhc2UieWVhciI6Y2FzZSJ5cnMiOmNhc2UieXIiOmNhc2UieSI6cmV0dXJuIDMxNTU3NmU1KmE7Y2FzZSJkYXlzIjpjYXNlImRheSI6Y2FzZSJkIjpyZXR1cm4gYSppO2Nhc2UiaG91cnMiOmNhc2UiaG91ciI6Y2FzZSJocnMiOmNhc2UiaHIiOmNhc2UiaCI6cmV0dXJuIGEqbztjYXNlIm1pbnV0ZXMiOmNhc2UibWludXRlIjpjYXNlIm1pbnMiOmNhc2UibWluIjpjYXNlIm0iOnJldHVybiBhKnI7Y2FzZSJzZWNvbmRzIjpjYXNlInNlY29uZCI6Y2FzZSJzZWNzIjpjYXNlInNlYyI6Y2FzZSJzIjpyZXR1cm4gYSpuO2Nhc2UibWlsbGlzZWNvbmRzIjpjYXNlIm1pbGxpc2Vjb25kIjpjYXNlIm1zZWNzIjpjYXNlIm1zZWMiOmNhc2UibXMiOnJldHVybiBhO2RlZmF1bHQ6cmV0dXJufX0oZSk7aWYoIm51bWJlciI9PT11JiYhMT09PWlzTmFOKGUpKXJldHVybiB0Lmxvbmc/YShzPWUsaSwiZGF5Iil8fGEocyxvLCJob3VyIil8fGEocyxyLCJtaW51dGUiKXx8YShzLG4sInNlY29uZCIpfHxzKyIgbXMiOmZ1bmN0aW9uKGUpe2lmKGU+PWkpcmV0dXJuIE1hdGgucm91bmQoZS9pKSsiZCI7aWYoZT49bylyZXR1cm4gTWF0aC5yb3VuZChlL28pKyJoIjtpZihlPj1yKXJldHVybiBNYXRoLnJvdW5kKGUvcikrIm0iO2lmKGU+PW4pcmV0dXJuIE1hdGgucm91bmQoZS9uKSsicyI7cmV0dXJuIGUrIm1zIn0oZSk7dGhyb3cgbmV3IEVycm9yKCJ2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIHZhbGlkIG51bWJlci4gdmFsPSIrSlNPTi5zdHJpbmdpZnkoZSkpfX0sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbihlKXt2YXIgcj1uKDE4Niksbz1uKDE4NyksaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGE9ImZ1bmN0aW9uIj09PXR5cGVvZiBlLkJsb2J8fCJbb2JqZWN0IEJsb2JDb25zdHJ1Y3Rvcl0iPT09aS5jYWxsKGUuQmxvYikscz0iZnVuY3Rpb24iPT09dHlwZW9mIGUuRmlsZXx8IltvYmplY3QgRmlsZUNvbnN0cnVjdG9yXSI9PT1pLmNhbGwoZS5GaWxlKTt0LmRlY29uc3RydWN0UGFja2V0PWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49ZS5kYXRhLGk9ZTtyZXR1cm4gaS5kYXRhPWZ1bmN0aW9uIGUodCxuKXtpZighdClyZXR1cm4gdDtpZihvKHQpKXt2YXIgaT17X3BsYWNlaG9sZGVyOiEwLG51bTpuLmxlbmd0aH07cmV0dXJuIG4ucHVzaCh0KSxpfWlmKHIodCkpe2Zvcih2YXIgYT1uZXcgQXJyYXkodC5sZW5ndGgpLHM9MDtzPHQubGVuZ3RoO3MrKylhW3NdPWUodFtzXSxuKTtyZXR1cm4gYX1pZigib2JqZWN0Ij09PXR5cGVvZiB0JiYhKHQgaW5zdGFuY2VvZiBEYXRlKSl7YT17fTtmb3IodmFyIHUgaW4gdClhW3VdPWUodFt1XSxuKTtyZXR1cm4gYX1yZXR1cm4gdH0obix0KSxpLmF0dGFjaG1lbnRzPXQubGVuZ3RoLHtwYWNrZXQ6aSxidWZmZXJzOnR9fSx0LnJlY29uc3RydWN0UGFja2V0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZGF0YT1mdW5jdGlvbiBlKHQsbil7aWYoIXQpcmV0dXJuIHQ7aWYodCYmdC5fcGxhY2Vob2xkZXIpcmV0dXJuIG5bdC5udW1dO2lmKHIodCkpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdFtvXT1lKHRbb10sbik7ZWxzZSBpZigib2JqZWN0Ij09PXR5cGVvZiB0KWZvcih2YXIgaSBpbiB0KXRbaV09ZSh0W2ldLG4pO3JldHVybiB0fShlLmRhdGEsdCksZS5hdHRhY2htZW50cz12b2lkIDAsZX0sdC5yZW1vdmVCbG9icz1mdW5jdGlvbihlLHQpe3ZhciBuPTAsaT1lOyFmdW5jdGlvbiBlKHUsYyxsKXtpZighdSlyZXR1cm4gdTtpZihhJiZ1IGluc3RhbmNlb2YgQmxvYnx8cyYmdSBpbnN0YW5jZW9mIEZpbGUpe24rKzt2YXIgZj1uZXcgRmlsZVJlYWRlcjtmLm9ubG9hZD1mdW5jdGlvbigpe2w/bFtjXT10aGlzLnJlc3VsdDppPXRoaXMucmVzdWx0LC0tbnx8dChpKX0sZi5yZWFkQXNBcnJheUJ1ZmZlcih1KX1lbHNlIGlmKHIodSkpZm9yKHZhciBkPTA7ZDx1Lmxlbmd0aDtkKyspZSh1W2RdLGQsdSk7ZWxzZSBpZigib2JqZWN0Ij09PXR5cGVvZiB1JiYhbyh1KSlmb3IodmFyIHAgaW4gdSllKHVbcF0scCx1KX0oaSksbnx8dChpKX19KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPW4oMjg3KSxlLmV4cG9ydHMucGFyc2VyPW4oODEpfSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKHQpe3ZhciByPW4oMTg5KSxvPW4oODApLGk9bigxMjMpKCJlbmdpbmUuaW8tY2xpZW50OnNvY2tldCIpLGE9bigxOTMpLHM9big4MSksdT1uKDE4NSksYz1uKDEyMSk7ZnVuY3Rpb24gbChlLG4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXJldHVybiBuZXcgbChlLG4pO249bnx8e30sZSYmIm9iamVjdCI9PT10eXBlb2YgZSYmKG49ZSxlPW51bGwpLGU/KGU9dShlKSxuLmhvc3RuYW1lPWUuaG9zdCxuLnNlY3VyZT0iaHR0cHMiPT09ZS5wcm90b2NvbHx8IndzcyI9PT1lLnByb3RvY29sLG4ucG9ydD1lLnBvcnQsZS5xdWVyeSYmKG4ucXVlcnk9ZS5xdWVyeSkpOm4uaG9zdCYmKG4uaG9zdG5hbWU9dShuLmhvc3QpLmhvc3QpLHRoaXMuc2VjdXJlPW51bGwhPW4uc2VjdXJlP24uc2VjdXJlOnQubG9jYXRpb24mJiJodHRwczoiPT09bG9jYXRpb24ucHJvdG9jb2wsbi5ob3N0bmFtZSYmIW4ucG9ydCYmKG4ucG9ydD10aGlzLnNlY3VyZT8iNDQzIjoiODAiKSx0aGlzLmFnZW50PW4uYWdlbnR8fCExLHRoaXMuaG9zdG5hbWU9bi5ob3N0bmFtZXx8KHQubG9jYXRpb24/bG9jYXRpb24uaG9zdG5hbWU6ImxvY2FsaG9zdCIpLHRoaXMucG9ydD1uLnBvcnR8fCh0LmxvY2F0aW9uJiZsb2NhdGlvbi5wb3J0P2xvY2F0aW9uLnBvcnQ6dGhpcy5zZWN1cmU/NDQzOjgwKSx0aGlzLnF1ZXJ5PW4ucXVlcnl8fHt9LCJzdHJpbmciPT09dHlwZW9mIHRoaXMucXVlcnkmJih0aGlzLnF1ZXJ5PWMuZGVjb2RlKHRoaXMucXVlcnkpKSx0aGlzLnVwZ3JhZGU9ITEhPT1uLnVwZ3JhZGUsdGhpcy5wYXRoPShuLnBhdGh8fCIvZW5naW5lLmlvIikucmVwbGFjZSgvXC8kLywiIikrIi8iLHRoaXMuZm9yY2VKU09OUD0hIW4uZm9yY2VKU09OUCx0aGlzLmpzb25wPSExIT09bi5qc29ucCx0aGlzLmZvcmNlQmFzZTY0PSEhbi5mb3JjZUJhc2U2NCx0aGlzLmVuYWJsZXNYRFI9ISFuLmVuYWJsZXNYRFIsdGhpcy50aW1lc3RhbXBQYXJhbT1uLnRpbWVzdGFtcFBhcmFtfHwidCIsdGhpcy50aW1lc3RhbXBSZXF1ZXN0cz1uLnRpbWVzdGFtcFJlcXVlc3RzLHRoaXMudHJhbnNwb3J0cz1uLnRyYW5zcG9ydHN8fFsicG9sbGluZyIsIndlYnNvY2tldCJdLHRoaXMudHJhbnNwb3J0T3B0aW9ucz1uLnRyYW5zcG9ydE9wdGlvbnN8fHt9LHRoaXMucmVhZHlTdGF0ZT0iIix0aGlzLndyaXRlQnVmZmVyPVtdLHRoaXMucHJldkJ1ZmZlckxlbj0wLHRoaXMucG9saWN5UG9ydD1uLnBvbGljeVBvcnR8fDg0Myx0aGlzLnJlbWVtYmVyVXBncmFkZT1uLnJlbWVtYmVyVXBncmFkZXx8ITEsdGhpcy5iaW5hcnlUeXBlPW51bGwsdGhpcy5vbmx5QmluYXJ5VXBncmFkZXM9bi5vbmx5QmluYXJ5VXBncmFkZXMsdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZT0hMSE9PW4ucGVyTWVzc2FnZURlZmxhdGUmJihuLnBlck1lc3NhZ2VEZWZsYXRlfHx7fSksITA9PT10aGlzLnBlck1lc3NhZ2VEZWZsYXRlJiYodGhpcy5wZXJNZXNzYWdlRGVmbGF0ZT17fSksdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZSYmbnVsbD09dGhpcy5wZXJNZXNzYWdlRGVmbGF0ZS50aHJlc2hvbGQmJih0aGlzLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZD0xMDI0KSx0aGlzLnBmeD1uLnBmeHx8bnVsbCx0aGlzLmtleT1uLmtleXx8bnVsbCx0aGlzLnBhc3NwaHJhc2U9bi5wYXNzcGhyYXNlfHxudWxsLHRoaXMuY2VydD1uLmNlcnR8fG51bGwsdGhpcy5jYT1uLmNhfHxudWxsLHRoaXMuY2lwaGVycz1uLmNpcGhlcnN8fG51bGwsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9dm9pZCAwPT09bi5yZWplY3RVbmF1dGhvcml6ZWR8fG4ucmVqZWN0VW5hdXRob3JpemVkLHRoaXMuZm9yY2VOb2RlPSEhbi5mb3JjZU5vZGU7dmFyIHI9Im9iamVjdCI9PT10eXBlb2YgdCYmdDtyLmdsb2JhbD09PXImJihuLmV4dHJhSGVhZGVycyYmT2JqZWN0LmtleXMobi5leHRyYUhlYWRlcnMpLmxlbmd0aD4wJiYodGhpcy5leHRyYUhlYWRlcnM9bi5leHRyYUhlYWRlcnMpLG4ubG9jYWxBZGRyZXNzJiYodGhpcy5sb2NhbEFkZHJlc3M9bi5sb2NhbEFkZHJlc3MpKSx0aGlzLmlkPW51bGwsdGhpcy51cGdyYWRlcz1udWxsLHRoaXMucGluZ0ludGVydmFsPW51bGwsdGhpcy5waW5nVGltZW91dD1udWxsLHRoaXMucGluZ0ludGVydmFsVGltZXI9bnVsbCx0aGlzLnBpbmdUaW1lb3V0VGltZXI9bnVsbCx0aGlzLm9wZW4oKX1lLmV4cG9ydHM9bCxsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz0hMSxvKGwucHJvdG90eXBlKSxsLnByb3RvY29sPXMucHJvdG9jb2wsbC5Tb2NrZXQ9bCxsLlRyYW5zcG9ydD1uKDE0OCksbC50cmFuc3BvcnRzPW4oMTg5KSxsLnBhcnNlcj1uKDgxKSxsLnByb3RvdHlwZS5jcmVhdGVUcmFuc3BvcnQ9ZnVuY3Rpb24oZSl7aSgnY3JlYXRpbmcgdHJhbnNwb3J0ICIlcyInLGUpO3ZhciB0PWZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pO3JldHVybiB0fSh0aGlzLnF1ZXJ5KTt0LkVJTz1zLnByb3RvY29sLHQudHJhbnNwb3J0PWU7dmFyIG49dGhpcy50cmFuc3BvcnRPcHRpb25zW2VdfHx7fTtyZXR1cm4gdGhpcy5pZCYmKHQuc2lkPXRoaXMuaWQpLG5ldyByW2VdKHtxdWVyeTp0LHNvY2tldDp0aGlzLGFnZW50Om4uYWdlbnR8fHRoaXMuYWdlbnQsaG9zdG5hbWU6bi5ob3N0bmFtZXx8dGhpcy5ob3N0bmFtZSxwb3J0Om4ucG9ydHx8dGhpcy5wb3J0LHNlY3VyZTpuLnNlY3VyZXx8dGhpcy5zZWN1cmUscGF0aDpuLnBhdGh8fHRoaXMucGF0aCxmb3JjZUpTT05QOm4uZm9yY2VKU09OUHx8dGhpcy5mb3JjZUpTT05QLGpzb25wOm4uanNvbnB8fHRoaXMuanNvbnAsZm9yY2VCYXNlNjQ6bi5mb3JjZUJhc2U2NHx8dGhpcy5mb3JjZUJhc2U2NCxlbmFibGVzWERSOm4uZW5hYmxlc1hEUnx8dGhpcy5lbmFibGVzWERSLHRpbWVzdGFtcFJlcXVlc3RzOm4udGltZXN0YW1wUmVxdWVzdHN8fHRoaXMudGltZXN0YW1wUmVxdWVzdHMsdGltZXN0YW1wUGFyYW06bi50aW1lc3RhbXBQYXJhbXx8dGhpcy50aW1lc3RhbXBQYXJhbSxwb2xpY3lQb3J0Om4ucG9saWN5UG9ydHx8dGhpcy5wb2xpY3lQb3J0LHBmeDpuLnBmeHx8dGhpcy5wZngsa2V5Om4ua2V5fHx0aGlzLmtleSxwYXNzcGhyYXNlOm4ucGFzc3BocmFzZXx8dGhpcy5wYXNzcGhyYXNlLGNlcnQ6bi5jZXJ0fHx0aGlzLmNlcnQsY2E6bi5jYXx8dGhpcy5jYSxjaXBoZXJzOm4uY2lwaGVyc3x8dGhpcy5jaXBoZXJzLHJlamVjdFVuYXV0aG9yaXplZDpuLnJlamVjdFVuYXV0aG9yaXplZHx8dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQscGVyTWVzc2FnZURlZmxhdGU6bi5wZXJNZXNzYWdlRGVmbGF0ZXx8dGhpcy5wZXJNZXNzYWdlRGVmbGF0ZSxleHRyYUhlYWRlcnM6bi5leHRyYUhlYWRlcnN8fHRoaXMuZXh0cmFIZWFkZXJzLGZvcmNlTm9kZTpuLmZvcmNlTm9kZXx8dGhpcy5mb3JjZU5vZGUsbG9jYWxBZGRyZXNzOm4ubG9jYWxBZGRyZXNzfHx0aGlzLmxvY2FsQWRkcmVzcyxyZXF1ZXN0VGltZW91dDpuLnJlcXVlc3RUaW1lb3V0fHx0aGlzLnJlcXVlc3RUaW1lb3V0LHByb3RvY29sczpuLnByb3RvY29sc3x8dm9pZCAwfSl9LGwucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oKXt2YXIgZTtpZih0aGlzLnJlbWVtYmVyVXBncmFkZSYmbC5wcmlvcldlYnNvY2tldFN1Y2Nlc3MmJi0xIT09dGhpcy50cmFuc3BvcnRzLmluZGV4T2YoIndlYnNvY2tldCIpKWU9IndlYnNvY2tldCI7ZWxzZXtpZigwPT09dGhpcy50cmFuc3BvcnRzLmxlbmd0aCl7dmFyIHQ9dGhpcztyZXR1cm4gdm9pZCBzZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuZW1pdCgiZXJyb3IiLCJObyB0cmFuc3BvcnRzIGF2YWlsYWJsZSIpfSksMCl9ZT10aGlzLnRyYW5zcG9ydHNbMF19dGhpcy5yZWFkeVN0YXRlPSJvcGVuaW5nIjt0cnl7ZT10aGlzLmNyZWF0ZVRyYW5zcG9ydChlKX1jYXRjaChuKXtyZXR1cm4gdGhpcy50cmFuc3BvcnRzLnNoaWZ0KCksdm9pZCB0aGlzLm9wZW4oKX1lLm9wZW4oKSx0aGlzLnNldFRyYW5zcG9ydChlKX0sbC5wcm90b3R5cGUuc2V0VHJhbnNwb3J0PWZ1bmN0aW9uKGUpe2koInNldHRpbmcgdHJhbnNwb3J0ICVzIixlLm5hbWUpO3ZhciB0PXRoaXM7dGhpcy50cmFuc3BvcnQmJihpKCJjbGVhcmluZyBleGlzdGluZyB0cmFuc3BvcnQgJXMiLHRoaXMudHJhbnNwb3J0Lm5hbWUpLHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycygpKSx0aGlzLnRyYW5zcG9ydD1lLGUub24oImRyYWluIiwoZnVuY3Rpb24oKXt0Lm9uRHJhaW4oKX0pKS5vbigicGFja2V0IiwoZnVuY3Rpb24oZSl7dC5vblBhY2tldChlKX0pKS5vbigiZXJyb3IiLChmdW5jdGlvbihlKXt0Lm9uRXJyb3IoZSl9KSkub24oImNsb3NlIiwoZnVuY3Rpb24oKXt0Lm9uQ2xvc2UoInRyYW5zcG9ydCBjbG9zZSIpfSkpfSxsLnByb3RvdHlwZS5wcm9iZT1mdW5jdGlvbihlKXtpKCdwcm9iaW5nIHRyYW5zcG9ydCAiJXMiJyxlKTt2YXIgdD10aGlzLmNyZWF0ZVRyYW5zcG9ydChlLHtwcm9iZToxfSksbj0hMSxyPXRoaXM7ZnVuY3Rpb24gbygpe2lmKHIub25seUJpbmFyeVVwZ3JhZGVzKXt2YXIgbz0hdGhpcy5zdXBwb3J0c0JpbmFyeSYmci50cmFuc3BvcnQuc3VwcG9ydHNCaW5hcnk7bj1ufHxvfW58fChpKCdwcm9iZSB0cmFuc3BvcnQgIiVzIiBvcGVuZWQnLGUpLHQuc2VuZChbe3R5cGU6InBpbmciLGRhdGE6InByb2JlIn1dKSx0Lm9uY2UoInBhY2tldCIsKGZ1bmN0aW9uKG8pe2lmKCFuKWlmKCJwb25nIj09PW8udHlwZSYmInByb2JlIj09PW8uZGF0YSl7aWYoaSgncHJvYmUgdHJhbnNwb3J0ICIlcyIgcG9uZycsZSksci51cGdyYWRpbmc9ITAsci5lbWl0KCJ1cGdyYWRpbmciLHQpLCF0KXJldHVybjtsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz0id2Vic29ja2V0Ij09PXQubmFtZSxpKCdwYXVzaW5nIGN1cnJlbnQgdHJhbnNwb3J0ICIlcyInLHIudHJhbnNwb3J0Lm5hbWUpLHIudHJhbnNwb3J0LnBhdXNlKChmdW5jdGlvbigpe258fCJjbG9zZWQiIT09ci5yZWFkeVN0YXRlJiYoaSgiY2hhbmdpbmcgdHJhbnNwb3J0IGFuZCBzZW5kaW5nIHVwZ3JhZGUgcGFja2V0IiksZCgpLHIuc2V0VHJhbnNwb3J0KHQpLHQuc2VuZChbe3R5cGU6InVwZ3JhZGUifV0pLHIuZW1pdCgidXBncmFkZSIsdCksdD1udWxsLHIudXBncmFkaW5nPSExLHIuZmx1c2goKSl9KSl9ZWxzZXtpKCdwcm9iZSB0cmFuc3BvcnQgIiVzIiBmYWlsZWQnLGUpO3ZhciBhPW5ldyBFcnJvcigicHJvYmUgZXJyb3IiKTthLnRyYW5zcG9ydD10Lm5hbWUsci5lbWl0KCJ1cGdyYWRlRXJyb3IiLGEpfX0pKSl9ZnVuY3Rpb24gYSgpe258fChuPSEwLGQoKSx0LmNsb3NlKCksdD1udWxsKX1mdW5jdGlvbiBzKG4pe3ZhciBvPW5ldyBFcnJvcigicHJvYmUgZXJyb3I6ICIrbik7by50cmFuc3BvcnQ9dC5uYW1lLGEoKSxpKCdwcm9iZSB0cmFuc3BvcnQgIiVzIiBmYWlsZWQgYmVjYXVzZSBvZiBlcnJvcjogJXMnLGUsbiksci5lbWl0KCJ1cGdyYWRlRXJyb3IiLG8pfWZ1bmN0aW9uIHUoKXtzKCJ0cmFuc3BvcnQgY2xvc2VkIil9ZnVuY3Rpb24gYygpe3MoInNvY2tldCBjbG9zZWQiKX1mdW5jdGlvbiBmKGUpe3QmJmUubmFtZSE9PXQubmFtZSYmKGkoJyIlcyIgd29ya3MgLSBhYm9ydGluZyAiJXMiJyxlLm5hbWUsdC5uYW1lKSxhKCkpfWZ1bmN0aW9uIGQoKXt0LnJlbW92ZUxpc3RlbmVyKCJvcGVuIixvKSx0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIscyksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHUpLHIucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixjKSxyLnJlbW92ZUxpc3RlbmVyKCJ1cGdyYWRpbmciLGYpfWwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPSExLHQub25jZSgib3BlbiIsbyksdC5vbmNlKCJlcnJvciIscyksdC5vbmNlKCJjbG9zZSIsdSksdGhpcy5vbmNlKCJjbG9zZSIsYyksdGhpcy5vbmNlKCJ1cGdyYWRpbmciLGYpLHQub3BlbigpfSxsLnByb3RvdHlwZS5vbk9wZW49ZnVuY3Rpb24oKXtpZihpKCJzb2NrZXQgb3BlbiIpLHRoaXMucmVhZHlTdGF0ZT0ib3BlbiIsbC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9IndlYnNvY2tldCI9PT10aGlzLnRyYW5zcG9ydC5uYW1lLHRoaXMuZW1pdCgib3BlbiIpLHRoaXMuZmx1c2goKSwib3BlbiI9PT10aGlzLnJlYWR5U3RhdGUmJnRoaXMudXBncmFkZSYmdGhpcy50cmFuc3BvcnQucGF1c2Upe2koInN0YXJ0aW5nIHVwZ3JhZGUgcHJvYmVzIik7Zm9yKHZhciBlPTAsdD10aGlzLnVwZ3JhZGVzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMucHJvYmUodGhpcy51cGdyYWRlc1tlXSl9fSxsLnByb3RvdHlwZS5vblBhY2tldD1mdW5jdGlvbihlKXtpZigib3BlbmluZyI9PT10aGlzLnJlYWR5U3RhdGV8fCJvcGVuIj09PXRoaXMucmVhZHlTdGF0ZXx8ImNsb3NpbmciPT09dGhpcy5yZWFkeVN0YXRlKXN3aXRjaChpKCdzb2NrZXQgcmVjZWl2ZTogdHlwZSAiJXMiLCBkYXRhICIlcyInLGUudHlwZSxlLmRhdGEpLHRoaXMuZW1pdCgicGFja2V0IixlKSx0aGlzLmVtaXQoImhlYXJ0YmVhdCIpLGUudHlwZSl7Y2FzZSJvcGVuIjp0aGlzLm9uSGFuZHNoYWtlKEpTT04ucGFyc2UoZS5kYXRhKSk7YnJlYWs7Y2FzZSJwb25nIjp0aGlzLnNldFBpbmcoKSx0aGlzLmVtaXQoInBvbmciKTticmVhaztjYXNlImVycm9yIjp2YXIgdD1uZXcgRXJyb3IoInNlcnZlciBlcnJvciIpO3QuY29kZT1lLmRhdGEsdGhpcy5vbkVycm9yKHQpO2JyZWFrO2Nhc2UibWVzc2FnZSI6dGhpcy5lbWl0KCJkYXRhIixlLmRhdGEpLHRoaXMuZW1pdCgibWVzc2FnZSIsZS5kYXRhKX1lbHNlIGkoJ3BhY2tldCByZWNlaXZlZCB3aXRoIHNvY2tldCByZWFkeVN0YXRlICIlcyInLHRoaXMucmVhZHlTdGF0ZSl9LGwucHJvdG90eXBlLm9uSGFuZHNoYWtlPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdCgiaGFuZHNoYWtlIixlKSx0aGlzLmlkPWUuc2lkLHRoaXMudHJhbnNwb3J0LnF1ZXJ5LnNpZD1lLnNpZCx0aGlzLnVwZ3JhZGVzPXRoaXMuZmlsdGVyVXBncmFkZXMoZS51cGdyYWRlcyksdGhpcy5waW5nSW50ZXJ2YWw9ZS5waW5nSW50ZXJ2YWwsdGhpcy5waW5nVGltZW91dD1lLnBpbmdUaW1lb3V0LHRoaXMub25PcGVuKCksImNsb3NlZCIhPT10aGlzLnJlYWR5U3RhdGUmJih0aGlzLnNldFBpbmcoKSx0aGlzLnJlbW92ZUxpc3RlbmVyKCJoZWFydGJlYXQiLHRoaXMub25IZWFydGJlYXQpLHRoaXMub24oImhlYXJ0YmVhdCIsdGhpcy5vbkhlYXJ0YmVhdCkpfSxsLnByb3RvdHlwZS5vbkhlYXJ0YmVhdD1mdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKTt2YXIgdD10aGlzO3QucGluZ1RpbWVvdXRUaW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbigpeyJjbG9zZWQiIT09dC5yZWFkeVN0YXRlJiZ0Lm9uQ2xvc2UoInBpbmcgdGltZW91dCIpfSksZXx8dC5waW5nSW50ZXJ2YWwrdC5waW5nVGltZW91dCl9LGwucHJvdG90eXBlLnNldFBpbmc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2NsZWFyVGltZW91dChlLnBpbmdJbnRlcnZhbFRpbWVyKSxlLnBpbmdJbnRlcnZhbFRpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aSgid3JpdGluZyBwaW5nIHBhY2tldCAtIGV4cGVjdGluZyBwb25nIHdpdGhpbiAlc21zIixlLnBpbmdUaW1lb3V0KSxlLnBpbmcoKSxlLm9uSGVhcnRiZWF0KGUucGluZ1RpbWVvdXQpfSksZS5waW5nSW50ZXJ2YWwpfSxsLnByb3RvdHlwZS5waW5nPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNlbmRQYWNrZXQoInBpbmciLChmdW5jdGlvbigpe2UuZW1pdCgicGluZyIpfSkpfSxsLnByb3RvdHlwZS5vbkRyYWluPWZ1bmN0aW9uKCl7dGhpcy53cml0ZUJ1ZmZlci5zcGxpY2UoMCx0aGlzLnByZXZCdWZmZXJMZW4pLHRoaXMucHJldkJ1ZmZlckxlbj0wLDA9PT10aGlzLndyaXRlQnVmZmVyLmxlbmd0aD90aGlzLmVtaXQoImRyYWluIik6dGhpcy5mbHVzaCgpfSxsLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpeyJjbG9zZWQiIT09dGhpcy5yZWFkeVN0YXRlJiZ0aGlzLnRyYW5zcG9ydC53cml0YWJsZSYmIXRoaXMudXBncmFkaW5nJiZ0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCYmKGkoImZsdXNoaW5nICVkIHBhY2tldHMgaW4gc29ja2V0Iix0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCksdGhpcy50cmFuc3BvcnQuc2VuZCh0aGlzLndyaXRlQnVmZmVyKSx0aGlzLnByZXZCdWZmZXJMZW49dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgsdGhpcy5lbWl0KCJmbHVzaCIpKX0sbC5wcm90b3R5cGUud3JpdGU9bC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuc2VuZFBhY2tldCgibWVzc2FnZSIsZSx0LG4pLHRoaXN9LGwucHJvdG90eXBlLnNlbmRQYWNrZXQ9ZnVuY3Rpb24oZSx0LG4scil7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiB0JiYocj10LHQ9dm9pZCAwKSwiZnVuY3Rpb24iPT09dHlwZW9mIG4mJihyPW4sbj1udWxsKSwiY2xvc2luZyIhPT10aGlzLnJlYWR5U3RhdGUmJiJjbG9zZWQiIT09dGhpcy5yZWFkeVN0YXRlKXsobj1ufHx7fSkuY29tcHJlc3M9ITEhPT1uLmNvbXByZXNzO3ZhciBvPXt0eXBlOmUsZGF0YTp0LG9wdGlvbnM6bn07dGhpcy5lbWl0KCJwYWNrZXRDcmVhdGUiLG8pLHRoaXMud3JpdGVCdWZmZXIucHVzaChvKSxyJiZ0aGlzLm9uY2UoImZsdXNoIixyKSx0aGlzLmZsdXNoKCl9fSxsLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe2lmKCJvcGVuaW5nIj09PXRoaXMucmVhZHlTdGF0ZXx8Im9wZW4iPT09dGhpcy5yZWFkeVN0YXRlKXt0aGlzLnJlYWR5U3RhdGU9ImNsb3NpbmciO3ZhciBlPXRoaXM7dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg/dGhpcy5vbmNlKCJkcmFpbiIsKGZ1bmN0aW9uKCl7dGhpcy51cGdyYWRpbmc/cigpOnQoKX0pKTp0aGlzLnVwZ3JhZGluZz9yKCk6dCgpfWZ1bmN0aW9uIHQoKXtlLm9uQ2xvc2UoImZvcmNlZCBjbG9zZSIpLGkoInNvY2tldCBjbG9zaW5nIC0gdGVsbGluZyB0cmFuc3BvcnQgdG8gY2xvc2UiKSxlLnRyYW5zcG9ydC5jbG9zZSgpfWZ1bmN0aW9uIG4oKXtlLnJlbW92ZUxpc3RlbmVyKCJ1cGdyYWRlIixuKSxlLnJlbW92ZUxpc3RlbmVyKCJ1cGdyYWRlRXJyb3IiLG4pLHQoKX1mdW5jdGlvbiByKCl7ZS5vbmNlKCJ1cGdyYWRlIixuKSxlLm9uY2UoInVwZ3JhZGVFcnJvciIsbil9cmV0dXJuIHRoaXN9LGwucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oZSl7aSgic29ja2V0IGVycm9yICVqIixlKSxsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz0hMSx0aGlzLmVtaXQoImVycm9yIixlKSx0aGlzLm9uQ2xvc2UoInRyYW5zcG9ydCBlcnJvciIsZSl9LGwucHJvdG90eXBlLm9uQ2xvc2U9ZnVuY3Rpb24oZSx0KXtpZigib3BlbmluZyI9PT10aGlzLnJlYWR5U3RhdGV8fCJvcGVuIj09PXRoaXMucmVhZHlTdGF0ZXx8ImNsb3NpbmciPT09dGhpcy5yZWFkeVN0YXRlKXtpKCdzb2NrZXQgY2xvc2Ugd2l0aCByZWFzb246ICIlcyInLGUpO2NsZWFyVGltZW91dCh0aGlzLnBpbmdJbnRlcnZhbFRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoImNsb3NlIiksdGhpcy50cmFuc3BvcnQuY2xvc2UoKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSx0aGlzLnJlYWR5U3RhdGU9ImNsb3NlZCIsdGhpcy5pZD1udWxsLHRoaXMuZW1pdCgiY2xvc2UiLGUsdCksdGhpcy53cml0ZUJ1ZmZlcj1bXSx0aGlzLnByZXZCdWZmZXJMZW49MH19LGwucHJvdG90eXBlLmZpbHRlclVwZ3JhZGVzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTAscj1lLmxlbmd0aDtuPHI7bisrKX5hKHRoaXMudHJhbnNwb3J0cyxlW25dKSYmdC5wdXNoKGVbbl0pO3JldHVybiB0fX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKGUsdCl7dHJ5e2UuZXhwb3J0cz0idW5kZWZpbmVkIiE9PXR5cGVvZiBYTUxIdHRwUmVxdWVzdCYmIndpdGhDcmVkZW50aWFscyJpbiBuZXcgWE1MSHR0cFJlcXVlc3R9Y2F0Y2gobil7ZS5leHBvcnRzPSExfX0sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbih0KXt2YXIgcj1uKDE0Nyksbz1uKDE5MCksaT1uKDgwKSxhPW4oMTIyKSxzPW4oMTIzKSgiZW5naW5lLmlvLWNsaWVudDpwb2xsaW5nLXhociIpO2Z1bmN0aW9uIHUoKXt9ZnVuY3Rpb24gYyhlKXtpZihvLmNhbGwodGhpcyxlKSx0aGlzLnJlcXVlc3RUaW1lb3V0PWUucmVxdWVzdFRpbWVvdXQsdGhpcy5leHRyYUhlYWRlcnM9ZS5leHRyYUhlYWRlcnMsdC5sb2NhdGlvbil7dmFyIG49Imh0dHBzOiI9PT1sb2NhdGlvbi5wcm90b2NvbCxyPWxvY2F0aW9uLnBvcnQ7cnx8KHI9bj80NDM6ODApLHRoaXMueGQ9ZS5ob3N0bmFtZSE9PXQubG9jYXRpb24uaG9zdG5hbWV8fHIhPT1lLnBvcnQsdGhpcy54cz1lLnNlY3VyZSE9PW59fWZ1bmN0aW9uIGwoZSl7dGhpcy5tZXRob2Q9ZS5tZXRob2R8fCJHRVQiLHRoaXMudXJpPWUudXJpLHRoaXMueGQ9ISFlLnhkLHRoaXMueHM9ISFlLnhzLHRoaXMuYXN5bmM9ITEhPT1lLmFzeW5jLHRoaXMuZGF0YT12b2lkIDAhPT1lLmRhdGE/ZS5kYXRhOm51bGwsdGhpcy5hZ2VudD1lLmFnZW50LHRoaXMuaXNCaW5hcnk9ZS5pc0JpbmFyeSx0aGlzLnN1cHBvcnRzQmluYXJ5PWUuc3VwcG9ydHNCaW5hcnksdGhpcy5lbmFibGVzWERSPWUuZW5hYmxlc1hEUix0aGlzLnJlcXVlc3RUaW1lb3V0PWUucmVxdWVzdFRpbWVvdXQsdGhpcy5wZng9ZS5wZngsdGhpcy5rZXk9ZS5rZXksdGhpcy5wYXNzcGhyYXNlPWUucGFzc3BocmFzZSx0aGlzLmNlcnQ9ZS5jZXJ0LHRoaXMuY2E9ZS5jYSx0aGlzLmNpcGhlcnM9ZS5jaXBoZXJzLHRoaXMucmVqZWN0VW5hdXRob3JpemVkPWUucmVqZWN0VW5hdXRob3JpemVkLHRoaXMuZXh0cmFIZWFkZXJzPWUuZXh0cmFIZWFkZXJzLHRoaXMuY3JlYXRlKCl9ZnVuY3Rpb24gZigpe2Zvcih2YXIgZSBpbiBsLnJlcXVlc3RzKWwucmVxdWVzdHMuaGFzT3duUHJvcGVydHkoZSkmJmwucmVxdWVzdHNbZV0uYWJvcnQoKX1lLmV4cG9ydHM9YyxlLmV4cG9ydHMuUmVxdWVzdD1sLGEoYyxvKSxjLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeT0hMCxjLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKGUpe3JldHVybihlPWV8fHt9KS51cmk9dGhpcy51cmkoKSxlLnhkPXRoaXMueGQsZS54cz10aGlzLnhzLGUuYWdlbnQ9dGhpcy5hZ2VudHx8ITEsZS5zdXBwb3J0c0JpbmFyeT10aGlzLnN1cHBvcnRzQmluYXJ5LGUuZW5hYmxlc1hEUj10aGlzLmVuYWJsZXNYRFIsZS5wZng9dGhpcy5wZngsZS5rZXk9dGhpcy5rZXksZS5wYXNzcGhyYXNlPXRoaXMucGFzc3BocmFzZSxlLmNlcnQ9dGhpcy5jZXJ0LGUuY2E9dGhpcy5jYSxlLmNpcGhlcnM9dGhpcy5jaXBoZXJzLGUucmVqZWN0VW5hdXRob3JpemVkPXRoaXMucmVqZWN0VW5hdXRob3JpemVkLGUucmVxdWVzdFRpbWVvdXQ9dGhpcy5yZXF1ZXN0VGltZW91dCxlLmV4dHJhSGVhZGVycz10aGlzLmV4dHJhSGVhZGVycyxuZXcgbChlKX0sYy5wcm90b3R5cGUuZG9Xcml0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPSJzdHJpbmciIT09dHlwZW9mIGUmJnZvaWQgMCE9PWUscj10aGlzLnJlcXVlc3Qoe21ldGhvZDoiUE9TVCIsZGF0YTplLGlzQmluYXJ5Om59KSxvPXRoaXM7ci5vbigic3VjY2VzcyIsdCksci5vbigiZXJyb3IiLChmdW5jdGlvbihlKXtvLm9uRXJyb3IoInhociBwb3N0IGVycm9yIixlKX0pKSx0aGlzLnNlbmRYaHI9cn0sYy5wcm90b3R5cGUuZG9Qb2xsPWZ1bmN0aW9uKCl7cygieGhyIHBvbGwiKTt2YXIgZT10aGlzLnJlcXVlc3QoKSx0PXRoaXM7ZS5vbigiZGF0YSIsKGZ1bmN0aW9uKGUpe3Qub25EYXRhKGUpfSkpLGUub24oImVycm9yIiwoZnVuY3Rpb24oZSl7dC5vbkVycm9yKCJ4aHIgcG9sbCBlcnJvciIsZSl9KSksdGhpcy5wb2xsWGhyPWV9LGkobC5wcm90b3R5cGUpLGwucHJvdG90eXBlLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBlPXthZ2VudDp0aGlzLmFnZW50LHhkb21haW46dGhpcy54ZCx4c2NoZW1lOnRoaXMueHMsZW5hYmxlc1hEUjp0aGlzLmVuYWJsZXNYRFJ9O2UucGZ4PXRoaXMucGZ4LGUua2V5PXRoaXMua2V5LGUucGFzc3BocmFzZT10aGlzLnBhc3NwaHJhc2UsZS5jZXJ0PXRoaXMuY2VydCxlLmNhPXRoaXMuY2EsZS5jaXBoZXJzPXRoaXMuY2lwaGVycyxlLnJlamVjdFVuYXV0aG9yaXplZD10aGlzLnJlamVjdFVuYXV0aG9yaXplZDt2YXIgbj10aGlzLnhocj1uZXcgcihlKSxvPXRoaXM7dHJ5e3MoInhociBvcGVuICVzOiAlcyIsdGhpcy5tZXRob2QsdGhpcy51cmkpLG4ub3Blbih0aGlzLm1ldGhvZCx0aGlzLnVyaSx0aGlzLmFzeW5jKTt0cnl7aWYodGhpcy5leHRyYUhlYWRlcnMpZm9yKHZhciBpIGluIG4uc2V0RGlzYWJsZUhlYWRlckNoZWNrJiZuLnNldERpc2FibGVIZWFkZXJDaGVjayghMCksdGhpcy5leHRyYUhlYWRlcnMpdGhpcy5leHRyYUhlYWRlcnMuaGFzT3duUHJvcGVydHkoaSkmJm4uc2V0UmVxdWVzdEhlYWRlcihpLHRoaXMuZXh0cmFIZWFkZXJzW2ldKX1jYXRjaChhKXt9aWYoIlBPU1QiPT09dGhpcy5tZXRob2QpdHJ5e3RoaXMuaXNCaW5hcnk/bi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTpuLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpfWNhdGNoKGEpe310cnl7bi5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLCIqLyoiKX1jYXRjaChhKXt9IndpdGhDcmVkZW50aWFscyJpbiBuJiYobi53aXRoQ3JlZGVudGlhbHM9ITApLHRoaXMucmVxdWVzdFRpbWVvdXQmJihuLnRpbWVvdXQ9dGhpcy5yZXF1ZXN0VGltZW91dCksdGhpcy5oYXNYRFIoKT8obi5vbmxvYWQ9ZnVuY3Rpb24oKXtvLm9uTG9hZCgpfSxuLm9uZXJyb3I9ZnVuY3Rpb24oKXtvLm9uRXJyb3Iobi5yZXNwb25zZVRleHQpfSk6bi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZigyPT09bi5yZWFkeVN0YXRlKXRyeXt2YXIgZT1uLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKTtvLnN1cHBvcnRzQmluYXJ5JiYiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIj09PWUmJihuLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiKX1jYXRjaChhKXt9ND09PW4ucmVhZHlTdGF0ZSYmKDIwMD09PW4uc3RhdHVzfHwxMjIzPT09bi5zdGF0dXM/by5vbkxvYWQoKTpzZXRUaW1lb3V0KChmdW5jdGlvbigpe28ub25FcnJvcihuLnN0YXR1cyl9KSwwKSl9LHMoInhociBkYXRhICVzIix0aGlzLmRhdGEpLG4uc2VuZCh0aGlzLmRhdGEpfWNhdGNoKGEpe3JldHVybiB2b2lkIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7by5vbkVycm9yKGEpfSksMCl9dC5kb2N1bWVudCYmKHRoaXMuaW5kZXg9bC5yZXF1ZXN0c0NvdW50KyssbC5yZXF1ZXN0c1t0aGlzLmluZGV4XT10aGlzKX0sbC5wcm90b3R5cGUub25TdWNjZXNzPWZ1bmN0aW9uKCl7dGhpcy5lbWl0KCJzdWNjZXNzIiksdGhpcy5jbGVhbnVwKCl9LGwucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt0aGlzLmVtaXQoImRhdGEiLGUpLHRoaXMub25TdWNjZXNzKCl9LGwucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5lbWl0KCJlcnJvciIsZSksdGhpcy5jbGVhbnVwKCEwKX0sbC5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbihlKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB0aGlzLnhociYmbnVsbCE9PXRoaXMueGhyKXtpZih0aGlzLmhhc1hEUigpP3RoaXMueGhyLm9ubG9hZD10aGlzLnhoci5vbmVycm9yPXU6dGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlPXUsZSl0cnl7dGhpcy54aHIuYWJvcnQoKX1jYXRjaChuKXt9dC5kb2N1bWVudCYmZGVsZXRlIGwucmVxdWVzdHNbdGhpcy5pbmRleF0sdGhpcy54aHI9bnVsbH19LGwucHJvdG90eXBlLm9uTG9hZD1mdW5jdGlvbigpe3ZhciBlO3RyeXt2YXIgdDt0cnl7dD10aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIil9Y2F0Y2gobil7fWU9ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI9PT10JiZ0aGlzLnhoci5yZXNwb25zZXx8dGhpcy54aHIucmVzcG9uc2VUZXh0fWNhdGNoKG4pe3RoaXMub25FcnJvcihuKX1udWxsIT1lJiZ0aGlzLm9uRGF0YShlKX0sbC5wcm90b3R5cGUuaGFzWERSPWZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgdC5YRG9tYWluUmVxdWVzdCYmIXRoaXMueHMmJnRoaXMuZW5hYmxlc1hEUn0sbC5wcm90b3R5cGUuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLmNsZWFudXAoKX0sbC5yZXF1ZXN0c0NvdW50PTAsbC5yZXF1ZXN0cz17fSx0LmRvY3VtZW50JiYodC5hdHRhY2hFdmVudD90LmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZik6dC5hZGRFdmVudExpc3RlbmVyJiZ0LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsZiwhMSkpfSkuY2FsbCh0aGlzLG4oMTMpKX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmb3IodmFyIHIgaW4gZSluLmNhbGwoZSxyKSYmdC5wdXNoKHIpO3JldHVybiB0fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSl7dmFyIHI9bigyOTIpLG89bigyOTMpLGk9bigyOTQpO2Z1bmN0aW9uIGEoKXtyZXR1cm4gdS5UWVBFRF9BUlJBWV9TVVBQT1JUPzIxNDc0ODM2NDc6MTA3Mzc0MTgyM31mdW5jdGlvbiBzKGUsdCl7aWYoYSgpPHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdHlwZWQgYXJyYXkgbGVuZ3RoIik7cmV0dXJuIHUuVFlQRURfQVJSQVlfU1VQUE9SVD8oZT1uZXcgVWludDhBcnJheSh0KSkuX19wcm90b19fPXUucHJvdG90eXBlOihudWxsPT09ZSYmKGU9bmV3IHUodCkpLGUubGVuZ3RoPXQpLGV9ZnVuY3Rpb24gdShlLHQsbil7aWYoIXUuVFlQRURfQVJSQVlfU1VQUE9SVCYmISh0aGlzIGluc3RhbmNlb2YgdSkpcmV0dXJuIG5ldyB1KGUsdCxuKTtpZigibnVtYmVyIj09PXR5cGVvZiBlKXtpZigic3RyaW5nIj09PXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmciKTtyZXR1cm4gZih0aGlzLGUpfXJldHVybiBjKHRoaXMsZSx0LG4pfWZ1bmN0aW9uIGMoZSx0LG4scil7aWYoIm51bWJlciI9PT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCcidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJyk7cmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgQXJyYXlCdWZmZXImJnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9mdW5jdGlvbihlLHQsbixyKXtpZih0LmJ5dGVMZW5ndGgsbjwwfHx0LmJ5dGVMZW5ndGg8bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiJ29mZnNldCcgaXMgb3V0IG9mIGJvdW5kcyIpO2lmKHQuYnl0ZUxlbmd0aDxuKyhyfHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiJ2xlbmd0aCcgaXMgb3V0IG9mIGJvdW5kcyIpO3Q9dm9pZCAwPT09biYmdm9pZCAwPT09cj9uZXcgVWludDhBcnJheSh0KTp2b2lkIDA9PT1yP25ldyBVaW50OEFycmF5KHQsbik6bmV3IFVpbnQ4QXJyYXkodCxuLHIpO3UuVFlQRURfQVJSQVlfU1VQUE9SVD8oZT10KS5fX3Byb3RvX189dS5wcm90b3R5cGU6ZT1kKGUsdCk7cmV0dXJuIGV9KGUsdCxuLHIpOiJzdHJpbmciPT09dHlwZW9mIHQ/ZnVuY3Rpb24oZSx0LG4peyJzdHJpbmciPT09dHlwZW9mIG4mJiIiIT09bnx8KG49InV0ZjgiKTtpZighdS5pc0VuY29kaW5nKG4pKXRocm93IG5ldyBUeXBlRXJyb3IoJyJlbmNvZGluZyIgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBlbmNvZGluZycpO3ZhciByPTB8aCh0LG4pLG89KGU9cyhlLHIpKS53cml0ZSh0LG4pO28hPT1yJiYoZT1lLnNsaWNlKDAsbykpO3JldHVybiBlfShlLHQsbik6ZnVuY3Rpb24oZSx0KXtpZih1LmlzQnVmZmVyKHQpKXt2YXIgbj0wfHAodC5sZW5ndGgpO3JldHVybiAwPT09KGU9cyhlLG4pKS5sZW5ndGh8fHQuY29weShlLDAsMCxuKSxlfWlmKHQpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIEFycmF5QnVmZmVyJiZ0LmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHwibGVuZ3RoImluIHQpcmV0dXJuIm51bWJlciIhPT10eXBlb2YgdC5sZW5ndGh8fChyPXQubGVuZ3RoKSE9PXI/cyhlLDApOmQoZSx0KTtpZigiQnVmZmVyIj09PXQudHlwZSYmaSh0LmRhdGEpKXJldHVybiBkKGUsdC5kYXRhKX12YXIgcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgYXJyYXktbGlrZSBvYmplY3QuIil9KGUsdCl9ZnVuY3Rpb24gbChlKXtpZigibnVtYmVyIiE9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJyk7aWYoZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgbmVnYXRpdmUnKX1mdW5jdGlvbiBmKGUsdCl7aWYobCh0KSxlPXMoZSx0PDA/MDowfHAodCkpLCF1LlRZUEVEX0FSUkFZX1NVUFBPUlQpZm9yKHZhciBuPTA7bjx0OysrbillW25dPTA7cmV0dXJuIGV9ZnVuY3Rpb24gZChlLHQpe3ZhciBuPXQubGVuZ3RoPDA/MDowfHAodC5sZW5ndGgpO2U9cyhlLG4pO2Zvcih2YXIgcj0wO3I8bjtyKz0xKWVbcl09MjU1JnRbcl07cmV0dXJuIGV9ZnVuY3Rpb24gcChlKXtpZihlPj1hKCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHgiK2EoKS50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfGV9ZnVuY3Rpb24gaChlLHQpe2lmKHUuaXNCdWZmZXIoZSkpcmV0dXJuIGUubGVuZ3RoO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIEFycmF5QnVmZmVyJiYiZnVuY3Rpb24iPT09dHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyYmKEFycmF5QnVmZmVyLmlzVmlldyhlKXx8ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSlyZXR1cm4gZS5ieXRlTGVuZ3RoOyJzdHJpbmciIT09dHlwZW9mIGUmJihlPSIiK2UpO3ZhciBuPWUubGVuZ3RoO2lmKDA9PT1uKXJldHVybiAwO2Zvcih2YXIgcj0hMTs7KXN3aXRjaCh0KXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBuO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSB2b2lkIDA6cmV0dXJuIFUoZSkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gMipuO2Nhc2UiaGV4IjpyZXR1cm4gbj4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiB6KGUpLmxlbmd0aDtkZWZhdWx0OmlmKHIpcmV0dXJuIFUoZSkubGVuZ3RoO3Q9KCIiK3QpLnRvTG93ZXJDYXNlKCkscj0hMH19ZnVuY3Rpb24gdihlLHQsbil7dmFyIHI9ITE7aWYoKHZvaWQgMD09PXR8fHQ8MCkmJih0PTApLHQ+dGhpcy5sZW5ndGgpcmV0dXJuIiI7aWYoKHZvaWQgMD09PW58fG4+dGhpcy5sZW5ndGgpJiYobj10aGlzLmxlbmd0aCksbjw9MClyZXR1cm4iIjtpZigobj4+Pj0wKTw9KHQ+Pj49MCkpcmV0dXJuIiI7Zm9yKGV8fChlPSJ1dGY4Iik7Oylzd2l0Y2goZSl7Y2FzZSJoZXgiOnJldHVybiBqKHRoaXMsdCxuKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBrKHRoaXMsdCxuKTtjYXNlImFzY2lpIjpyZXR1cm4geCh0aGlzLHQsbik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gQSh0aGlzLHQsbik7Y2FzZSJiYXNlNjQiOnJldHVybiBTKHRoaXMsdCxuKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIFQodGhpcyx0LG4pO2RlZmF1bHQ6aWYocil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2UpO2U9KGUrIiIpLnRvTG93ZXJDYXNlKCkscj0hMH19ZnVuY3Rpb24gZyhlLHQsbil7dmFyIHI9ZVt0XTtlW3RdPWVbbl0sZVtuXT1yfWZ1bmN0aW9uIHkoZSx0LG4scixvKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9PT10eXBlb2Ygbj8ocj1uLG49MCk6bj4yMTQ3NDgzNjQ3P249MjE0NzQ4MzY0NzpuPC0yMTQ3NDgzNjQ4JiYobj0tMjE0NzQ4MzY0OCksbj0rbixpc05hTihuKSYmKG49bz8wOmUubGVuZ3RoLTEpLG48MCYmKG49ZS5sZW5ndGgrbiksbj49ZS5sZW5ndGgpe2lmKG8pcmV0dXJuLTE7bj1lLmxlbmd0aC0xfWVsc2UgaWYobjwwKXtpZighbylyZXR1cm4tMTtuPTB9aWYoInN0cmluZyI9PT10eXBlb2YgdCYmKHQ9dS5mcm9tKHQscikpLHUuaXNCdWZmZXIodCkpcmV0dXJuIDA9PT10Lmxlbmd0aD8tMTptKGUsdCxuLHIsbyk7aWYoIm51bWJlciI9PT10eXBlb2YgdClyZXR1cm4gdCY9MjU1LHUuVFlQRURfQVJSQVlfU1VQUE9SVCYmImZ1bmN0aW9uIj09PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP28/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUsdCxuKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGUsdCxuKTptKGUsW3RdLG4scixvKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBtKGUsdCxuLHIsbyl7dmFyIGksYT0xLHM9ZS5sZW5ndGgsdT10Lmxlbmd0aDtpZih2b2lkIDAhPT1yJiYoInVjczIiPT09KHI9U3RyaW5nKHIpLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09cnx8InV0ZjE2bGUiPT09cnx8InV0Zi0xNmxlIj09PXIpKXtpZihlLmxlbmd0aDwyfHx0Lmxlbmd0aDwyKXJldHVybi0xO2E9MixzLz0yLHUvPTIsbi89Mn1mdW5jdGlvbiBjKGUsdCl7cmV0dXJuIDE9PT1hP2VbdF06ZS5yZWFkVUludDE2QkUodCphKX1pZihvKXt2YXIgbD0tMTtmb3IoaT1uO2k8cztpKyspaWYoYyhlLGkpPT09Yyh0LC0xPT09bD8wOmktbCkpe2lmKC0xPT09bCYmKGw9aSksaS1sKzE9PT11KXJldHVybiBsKmF9ZWxzZS0xIT09bCYmKGktPWktbCksbD0tMX1lbHNlIGZvcihuK3U+cyYmKG49cy11KSxpPW47aT49MDtpLS0pe2Zvcih2YXIgZj0hMCxkPTA7ZDx1O2QrKylpZihjKGUsaStkKSE9PWModCxkKSl7Zj0hMTticmVha31pZihmKXJldHVybiBpfXJldHVybi0xfWZ1bmN0aW9uIGIoZSx0LG4scil7bj1OdW1iZXIobil8fDA7dmFyIG89ZS5sZW5ndGgtbjtyPyhyPU51bWJlcihyKSk+byYmKHI9byk6cj1vO3ZhciBpPXQubGVuZ3RoO2lmKGklMiE9PTApdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBoZXggc3RyaW5nIik7cj5pLzImJihyPWkvMik7Zm9yKHZhciBhPTA7YTxyOysrYSl7dmFyIHM9cGFyc2VJbnQodC5zdWJzdHIoMiphLDIpLDE2KTtpZihpc05hTihzKSlyZXR1cm4gYTtlW24rYV09c31yZXR1cm4gYX1mdW5jdGlvbiB3KGUsdCxuLHIpe3JldHVybiBWKFUodCxlLmxlbmd0aC1uKSxlLG4scil9ZnVuY3Rpb24gTyhlLHQsbixyKXtyZXR1cm4gVihmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7KytuKXQucHVzaCgyNTUmZS5jaGFyQ29kZUF0KG4pKTtyZXR1cm4gdH0odCksZSxuLHIpfWZ1bmN0aW9uIF8oZSx0LG4scil7cmV0dXJuIE8oZSx0LG4scil9ZnVuY3Rpb24gRShlLHQsbixyKXtyZXR1cm4gVih6KHQpLGUsbixyKX1mdW5jdGlvbiBDKGUsdCxuLHIpe3JldHVybiBWKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHIsbyxpPVtdLGE9MDthPGUubGVuZ3RoJiYhKCh0LT0yKTwwKTsrK2Epbj1lLmNoYXJDb2RlQXQoYSkscj1uPj44LG89biUyNTYsaS5wdXNoKG8pLGkucHVzaChyKTtyZXR1cm4gaX0odCxlLmxlbmd0aC1uKSxlLG4scil9ZnVuY3Rpb24gUyhlLHQsbil7cmV0dXJuIDA9PT10JiZuPT09ZS5sZW5ndGg/ci5mcm9tQnl0ZUFycmF5KGUpOnIuZnJvbUJ5dGVBcnJheShlLnNsaWNlKHQsbikpfWZ1bmN0aW9uIGsoZSx0LG4pe249TWF0aC5taW4oZS5sZW5ndGgsbik7Zm9yKHZhciByPVtdLG89dDtvPG47KXt2YXIgaSxhLHMsdSxjPWVbb10sbD1udWxsLGY9Yz4yMzk/NDpjPjIyMz8zOmM+MTkxPzI6MTtpZihvK2Y8PW4pc3dpdGNoKGYpe2Nhc2UgMTpjPDEyOCYmKGw9Yyk7YnJlYWs7Y2FzZSAyOjEyOD09PSgxOTImKGk9ZVtvKzFdKSkmJih1PSgzMSZjKTw8Nnw2MyZpKT4xMjcmJihsPXUpO2JyZWFrO2Nhc2UgMzppPWVbbysxXSxhPWVbbysyXSwxMjg9PT0oMTkyJmkpJiYxMjg9PT0oMTkyJmEpJiYodT0oMTUmYyk8PDEyfCg2MyZpKTw8Nnw2MyZhKT4yMDQ3JiYodTw1NTI5Nnx8dT41NzM0MykmJihsPXUpO2JyZWFrO2Nhc2UgNDppPWVbbysxXSxhPWVbbysyXSxzPWVbbyszXSwxMjg9PT0oMTkyJmkpJiYxMjg9PT0oMTkyJmEpJiYxMjg9PT0oMTkyJnMpJiYodT0oMTUmYyk8PDE4fCg2MyZpKTw8MTJ8KDYzJmEpPDw2fDYzJnMpPjY1NTM1JiZ1PDExMTQxMTImJihsPXUpfW51bGw9PT1sPyhsPTY1NTMzLGY9MSk6bD42NTUzNSYmKGwtPTY1NTM2LHIucHVzaChsPj4+MTAmMTAyM3w1NTI5NiksbD01NjMyMHwxMDIzJmwpLHIucHVzaChsKSxvKz1mfXJldHVybiBmdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aDtpZih0PD00MDk2KXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxlKTt2YXIgbj0iIixyPTA7Zm9yKDtyPHQ7KW4rPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGUuc2xpY2UocixyKz00MDk2KSk7cmV0dXJuIG59KHIpfXQuQnVmZmVyPXUsdC5TbG93QnVmZmVyPWZ1bmN0aW9uKGUpeytlIT1lJiYoZT0wKTtyZXR1cm4gdS5hbGxvYygrZSl9LHQuSU5TUEVDVF9NQVhfQllURVM9NTAsdS5UWVBFRF9BUlJBWV9TVVBQT1JUPXZvaWQgMCE9PWUuVFlQRURfQVJSQVlfU1VQUE9SVD9lLlRZUEVEX0FSUkFZX1NVUFBPUlQ6ZnVuY3Rpb24oKXt0cnl7dmFyIGU9bmV3IFVpbnQ4QXJyYXkoMSk7cmV0dXJuIGUuX19wcm90b19fPXtfX3Byb3RvX186VWludDhBcnJheS5wcm90b3R5cGUsZm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX0sNDI9PT1lLmZvbygpJiYiZnVuY3Rpb24iPT09dHlwZW9mIGUuc3ViYXJyYXkmJjA9PT1lLnN1YmFycmF5KDEsMSkuYnl0ZUxlbmd0aH1jYXRjaCh0KXtyZXR1cm4hMX19KCksdC5rTWF4TGVuZ3RoPWEoKSx1LnBvb2xTaXplPTgxOTIsdS5fYXVnbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX189dS5wcm90b3R5cGUsZX0sdS5mcm9tPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gYyhudWxsLGUsdCxuKX0sdS5UWVBFRF9BUlJBWV9TVVBQT1JUJiYodS5wcm90b3R5cGUuX19wcm90b19fPVVpbnQ4QXJyYXkucHJvdG90eXBlLHUuX19wcm90b19fPVVpbnQ4QXJyYXksInVuZGVmaW5lZCIhPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuc3BlY2llcyYmdVtTeW1ib2wuc3BlY2llc109PT11JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodSxTeW1ib2wuc3BlY2llcyx7dmFsdWU6bnVsbCxjb25maWd1cmFibGU6ITB9KSksdS5hbGxvYz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBsKHQpLHQ8PTA/cyhlLHQpOnZvaWQgMCE9PW4/InN0cmluZyI9PT10eXBlb2Ygcj9zKGUsdCkuZmlsbChuLHIpOnMoZSx0KS5maWxsKG4pOnMoZSx0KX0obnVsbCxlLHQsbil9LHUuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGYobnVsbCxlKX0sdS5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oZSl7cmV0dXJuIGYobnVsbCxlKX0sdS5pc0J1ZmZlcj1mdW5jdGlvbihlKXtyZXR1cm4hKG51bGw9PWV8fCFlLl9pc0J1ZmZlcil9LHUuY29tcGFyZT1mdW5jdGlvbihlLHQpe2lmKCF1LmlzQnVmZmVyKGUpfHwhdS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgbXVzdCBiZSBCdWZmZXJzIik7aWYoZT09PXQpcmV0dXJuIDA7Zm9yKHZhciBuPWUubGVuZ3RoLHI9dC5sZW5ndGgsbz0wLGk9TWF0aC5taW4obixyKTtvPGk7KytvKWlmKGVbb10hPT10W29dKXtuPWVbb10scj10W29dO2JyZWFrfXJldHVybiBuPHI/LTE6cjxuPzE6MH0sdS5pc0VuY29kaW5nPWZ1bmN0aW9uKGUpe3N3aXRjaChTdHJpbmcoZSkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSx1LmNvbmNhdD1mdW5jdGlvbihlLHQpe2lmKCFpKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIHUuYWxsb2MoMCk7dmFyIG47aWYodm9pZCAwPT09dClmb3IodD0wLG49MDtuPGUubGVuZ3RoOysrbil0Kz1lW25dLmxlbmd0aDt2YXIgcj11LmFsbG9jVW5zYWZlKHQpLG89MDtmb3Iobj0wO248ZS5sZW5ndGg7KytuKXt2YXIgYT1lW25dO2lmKCF1LmlzQnVmZmVyKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTthLmNvcHkocixvKSxvKz1hLmxlbmd0aH1yZXR1cm4gcn0sdS5ieXRlTGVuZ3RoPWgsdS5wcm90b3R5cGUuX2lzQnVmZmVyPSEwLHUucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubGVuZ3RoO2lmKGUlMiE9PTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzIik7Zm9yKHZhciB0PTA7dDxlO3QrPTIpZyh0aGlzLHQsdCsxKTtyZXR1cm4gdGhpc30sdS5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSU0IT09MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIHQ9MDt0PGU7dCs9NClnKHRoaXMsdCx0KzMpLGcodGhpcyx0KzEsdCsyKTtyZXR1cm4gdGhpc30sdS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSU4IT09MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IodmFyIHQ9MDt0PGU7dCs9OClnKHRoaXMsdCx0KzcpLGcodGhpcyx0KzEsdCs2KSxnKHRoaXMsdCsyLHQrNSksZyh0aGlzLHQrMyx0KzQpO3JldHVybiB0aGlzfSx1LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBlPTB8dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT1lPyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP2sodGhpcywwLGUpOnYuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx1LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oZSl7aWYoIXUuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09ZXx8MD09PXUuY29tcGFyZSh0aGlzLGUpfSx1LnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7dmFyIGU9IiIsbj10LklOU1BFQ1RfTUFYX0JZVEVTO3JldHVybiB0aGlzLmxlbmd0aD4wJiYoZT10aGlzLnRvU3RyaW5nKCJoZXgiLDAsbikubWF0Y2goLy57Mn0vZykuam9pbigiICIpLHRoaXMubGVuZ3RoPm4mJihlKz0iIC4uLiAiKSksIjxCdWZmZXIgIitlKyI+In0sdS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbihlLHQsbixyLG8pe2lmKCF1LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtpZih2b2lkIDA9PT10JiYodD0wKSx2b2lkIDA9PT1uJiYobj1lP2UubGVuZ3RoOjApLHZvaWQgMD09PXImJihyPTApLHZvaWQgMD09PW8mJihvPXRoaXMubGVuZ3RoKSx0PDB8fG4+ZS5sZW5ndGh8fHI8MHx8bz50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYocj49byYmdD49bilyZXR1cm4gMDtpZihyPj1vKXJldHVybi0xO2lmKHQ+PW4pcmV0dXJuIDE7aWYodGhpcz09PWUpcmV0dXJuIDA7Zm9yKHZhciBpPShvPj4+PTApLShyPj4+PTApLGE9KG4+Pj49MCktKHQ+Pj49MCkscz1NYXRoLm1pbihpLGEpLGM9dGhpcy5zbGljZShyLG8pLGw9ZS5zbGljZSh0LG4pLGY9MDtmPHM7KytmKWlmKGNbZl0hPT1sW2ZdKXtpPWNbZl0sYT1sW2ZdO2JyZWFrfXJldHVybiBpPGE/LTE6YTxpPzE6MH0sdS5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybi0xIT09dGhpcy5pbmRleE9mKGUsdCxuKX0sdS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHkodGhpcyxlLHQsbiwhMCl9LHUucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4geSh0aGlzLGUsdCxuLCExKX0sdS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSx0LG4scil7aWYodm9pZCAwPT09dClyPSJ1dGY4IixuPXRoaXMubGVuZ3RoLHQ9MDtlbHNlIGlmKHZvaWQgMD09PW4mJiJzdHJpbmciPT09dHlwZW9mIHQpcj10LG49dGhpcy5sZW5ndGgsdD0wO2Vsc2V7aWYoIWlzRmluaXRlKHQpKXRocm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTt0fD0wLGlzRmluaXRlKG4pPyhufD0wLHZvaWQgMD09PXImJihyPSJ1dGY4IikpOihyPW4sbj12b2lkIDApfXZhciBvPXRoaXMubGVuZ3RoLXQ7aWYoKHZvaWQgMD09PW58fG4+bykmJihuPW8pLGUubGVuZ3RoPjAmJihuPDB8fHQ8MCl8fHQ+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7cnx8KHI9InV0ZjgiKTtmb3IodmFyIGk9ITE7Oylzd2l0Y2gocil7Y2FzZSJoZXgiOnJldHVybiBiKHRoaXMsZSx0LG4pO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHcodGhpcyxlLHQsbik7Y2FzZSJhc2NpaSI6cmV0dXJuIE8odGhpcyxlLHQsbik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gXyh0aGlzLGUsdCxuKTtjYXNlImJhc2U2NCI6cmV0dXJuIEUodGhpcyxlLHQsbik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBDKHRoaXMsZSx0LG4pO2RlZmF1bHQ6aWYoaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3IpO3I9KCIiK3IpLnRvTG93ZXJDYXNlKCksaT0hMH19LHUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07ZnVuY3Rpb24geChlLHQsbil7dmFyIHI9IiI7bj1NYXRoLm1pbihlLmxlbmd0aCxuKTtmb3IodmFyIG89dDtvPG47KytvKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JmVbb10pO3JldHVybiByfWZ1bmN0aW9uIEEoZSx0LG4pe3ZhciByPSIiO249TWF0aC5taW4oZS5sZW5ndGgsbik7Zm9yKHZhciBvPXQ7bzxuOysrbylyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGVbb10pO3JldHVybiByfWZ1bmN0aW9uIGooZSx0LG4pe3ZhciByPWUubGVuZ3RoOyghdHx8dDwwKSYmKHQ9MCksKCFufHxuPDB8fG4+cikmJihuPXIpO2Zvcih2YXIgbz0iIixpPXQ7aTxuOysraSlvKz1CKGVbaV0pO3JldHVybiBvfWZ1bmN0aW9uIFQoZSx0LG4pe2Zvcih2YXIgcj1lLnNsaWNlKHQsbiksbz0iIixpPTA7aTxyLmxlbmd0aDtpKz0yKW8rPVN0cmluZy5mcm9tQ2hhckNvZGUocltpXSsyNTYqcltpKzFdKTtyZXR1cm4gb31mdW5jdGlvbiBQKGUsdCxuKXtpZihlJTEhPT0wfHxlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKGUrdD5uKXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gSShlLHQsbixyLG8saSl7aWYoIXUuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZmZlciIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpO2lmKHQ+b3x8dDxpKXRocm93IG5ldyBSYW5nZUVycm9yKCcidmFsdWUiIGFyZ3VtZW50IGlzIG91dCBvZiBib3VuZHMnKTtpZihuK3I+ZS5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIFIoZSx0LG4scil7dDwwJiYodD02NTUzNSt0KzEpO2Zvcih2YXIgbz0wLGk9TWF0aC5taW4oZS5sZW5ndGgtbiwyKTtvPGk7KytvKWVbbitvXT0odCYyNTU8PDgqKHI/bzoxLW8pKT4+PjgqKHI/bzoxLW8pfWZ1bmN0aW9uIEQoZSx0LG4scil7dDwwJiYodD00Mjk0OTY3Mjk1K3QrMSk7Zm9yKHZhciBvPTAsaT1NYXRoLm1pbihlLmxlbmd0aC1uLDQpO288aTsrK28pZVtuK29dPXQ+Pj44KihyP286My1vKSYyNTV9ZnVuY3Rpb24gTihlLHQsbixyLG8saSl7aWYobityPmUubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihuPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIEwoZSx0LG4scixpKXtyZXR1cm4gaXx8TihlLDAsbiw0KSxvLndyaXRlKGUsdCxuLHIsMjMsNCksbis0fWZ1bmN0aW9uIEYoZSx0LG4scixpKXtyZXR1cm4gaXx8TihlLDAsbiw4KSxvLndyaXRlKGUsdCxuLHIsNTIsOCksbis4fXUucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj10aGlzLmxlbmd0aDtpZigoZT1+fmUpPDA/KGUrPXIpPDAmJihlPTApOmU+ciYmKGU9ciksKHQ9dm9pZCAwPT09dD9yOn5+dCk8MD8odCs9cik8MCYmKHQ9MCk6dD5yJiYodD1yKSx0PGUmJih0PWUpLHUuVFlQRURfQVJSQVlfU1VQUE9SVCkobj10aGlzLnN1YmFycmF5KGUsdCkpLl9fcHJvdG9fXz11LnByb3RvdHlwZTtlbHNle3ZhciBvPXQtZTtuPW5ldyB1KG8sdm9pZCAwKTtmb3IodmFyIGk9MDtpPG87KytpKW5baV09dGhpc1tpK2VdfXJldHVybiBufSx1LnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uKGUsdCxuKXtlfD0wLHR8PTAsbnx8UChlLHQsdGhpcy5sZW5ndGgpO2Zvcih2YXIgcj10aGlzW2VdLG89MSxpPTA7KytpPHQmJihvKj0yNTYpOylyKz10aGlzW2UraV0qbztyZXR1cm4gcn0sdS5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbihlLHQsbil7ZXw9MCx0fD0wLG58fFAoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9dGhpc1tlKy0tdF0sbz0xO3Q+MCYmKG8qPTI1Nik7KXIrPXRoaXNbZSstLXRdKm87cmV0dXJuIHJ9LHUucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxQKGUsMSx0aGlzLmxlbmd0aCksdGhpc1tlXX0sdS5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fFAoZSwyLHRoaXMubGVuZ3RoKSx0aGlzW2VdfHRoaXNbZSsxXTw8OH0sdS5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fFAoZSwyLHRoaXMubGVuZ3RoKSx0aGlzW2VdPDw4fHRoaXNbZSsxXX0sdS5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fFAoZSw0LHRoaXMubGVuZ3RoKSwodGhpc1tlXXx0aGlzW2UrMV08PDh8dGhpc1tlKzJdPDwxNikrMTY3NzcyMTYqdGhpc1tlKzNdfSx1LnByb3RvdHlwZS5yZWFkVUludDMyQkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8UChlLDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbZV0rKHRoaXNbZSsxXTw8MTZ8dGhpc1tlKzJdPDw4fHRoaXNbZSszXSl9LHUucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbihlLHQsbil7ZXw9MCx0fD0wLG58fFAoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9dGhpc1tlXSxvPTEsaT0wOysraTx0JiYobyo9MjU2KTspcis9dGhpc1tlK2ldKm87cmV0dXJuIHI+PShvKj0xMjgpJiYoci09TWF0aC5wb3coMiw4KnQpKSxyfSx1LnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24oZSx0LG4pe2V8PTAsdHw9MCxufHxQKGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciByPXQsbz0xLGk9dGhpc1tlKy0tcl07cj4wJiYobyo9MjU2KTspaSs9dGhpc1tlKy0tcl0qbztyZXR1cm4gaT49KG8qPTEyOCkmJihpLT1NYXRoLnBvdygyLDgqdCkpLGl9LHUucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fFAoZSwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1tlXT8tMSooMjU1LXRoaXNbZV0rMSk6dGhpc1tlXX0sdS5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24oZSx0KXt0fHxQKGUsMix0aGlzLmxlbmd0aCk7dmFyIG49dGhpc1tlXXx0aGlzW2UrMV08PDg7cmV0dXJuIDMyNzY4Jm4/NDI5NDkwMTc2MHxuOm59LHUucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uKGUsdCl7dHx8UChlLDIsdGhpcy5sZW5ndGgpO3ZhciBuPXRoaXNbZSsxXXx0aGlzW2VdPDw4O3JldHVybiAzMjc2OCZuPzQyOTQ5MDE3NjB8bjpufSx1LnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxQKGUsNCx0aGlzLmxlbmd0aCksdGhpc1tlXXx0aGlzW2UrMV08PDh8dGhpc1tlKzJdPDwxNnx0aGlzW2UrM108PDI0fSx1LnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxQKGUsNCx0aGlzLmxlbmd0aCksdGhpc1tlXTw8MjR8dGhpc1tlKzFdPDwxNnx0aGlzW2UrMl08PDh8dGhpc1tlKzNdfSx1LnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxQKGUsNCx0aGlzLmxlbmd0aCksby5yZWFkKHRoaXMsZSwhMCwyMyw0KX0sdS5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8UChlLDQsdGhpcy5sZW5ndGgpLG8ucmVhZCh0aGlzLGUsITEsMjMsNCl9LHUucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxQKGUsOCx0aGlzLmxlbmd0aCksby5yZWFkKHRoaXMsZSwhMCw1Miw4KX0sdS5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fFAoZSw4LHRoaXMubGVuZ3RoKSxvLnJlYWQodGhpcyxlLCExLDUyLDgpfSx1LnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbihlLHQsbixyKXsoZT0rZSx0fD0wLG58PTAscil8fEkodGhpcyxlLHQsbixNYXRoLnBvdygyLDgqbiktMSwwKTt2YXIgbz0xLGk9MDtmb3IodGhpc1t0XT0yNTUmZTsrK2k8biYmKG8qPTI1Nik7KXRoaXNbdCtpXT1lL28mMjU1O3JldHVybiB0K259LHUucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKGUsdCxuLHIpeyhlPStlLHR8PTAsbnw9MCxyKXx8SSh0aGlzLGUsdCxuLE1hdGgucG93KDIsOCpuKS0xLDApO3ZhciBvPW4tMSxpPTE7Zm9yKHRoaXNbdCtvXT0yNTUmZTstLW8+PTAmJihpKj0yNTYpOyl0aGlzW3Qrb109ZS9pJjI1NTtyZXR1cm4gdCtufSx1LnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fEkodGhpcyxlLHQsMSwyNTUsMCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUfHwoZT1NYXRoLmZsb29yKGUpKSx0aGlzW3RdPTI1NSZlLHQrMX0sdS5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxJKHRoaXMsZSx0LDIsNjU1MzUsMCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3RdPTI1NSZlLHRoaXNbdCsxXT1lPj4+OCk6Uih0aGlzLGUsdCwhMCksdCsyfSx1LnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fEkodGhpcyxlLHQsMiw2NTUzNSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09ZT4+PjgsdGhpc1t0KzFdPTI1NSZlKTpSKHRoaXMsZSx0LCExKSx0KzJ9LHUucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8SSh0aGlzLGUsdCw0LDQyOTQ5NjcyOTUsMCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3QrM109ZT4+PjI0LHRoaXNbdCsyXT1lPj4+MTYsdGhpc1t0KzFdPWU+Pj44LHRoaXNbdF09MjU1JmUpOkQodGhpcyxlLHQsITApLHQrNH0sdS5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxJKHRoaXMsZSx0LDQsNDI5NDk2NzI5NSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09ZT4+PjI0LHRoaXNbdCsxXT1lPj4+MTYsdGhpc1t0KzJdPWU+Pj44LHRoaXNbdCszXT0yNTUmZSk6RCh0aGlzLGUsdCwhMSksdCs0fSx1LnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGU9K2UsdHw9MCwhcil7dmFyIG89TWF0aC5wb3coMiw4Km4tMSk7SSh0aGlzLGUsdCxuLG8tMSwtbyl9dmFyIGk9MCxhPTEscz0wO2Zvcih0aGlzW3RdPTI1NSZlOysraTxuJiYoYSo9MjU2KTspZTwwJiYwPT09cyYmMCE9PXRoaXNbdCtpLTFdJiYocz0xKSx0aGlzW3QraV09KGUvYT4+MCktcyYyNTU7cmV0dXJuIHQrbn0sdS5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihlLHQsbixyKXtpZihlPStlLHR8PTAsIXIpe3ZhciBvPU1hdGgucG93KDIsOCpuLTEpO0kodGhpcyxlLHQsbixvLTEsLW8pfXZhciBpPW4tMSxhPTEscz0wO2Zvcih0aGlzW3QraV09MjU1JmU7LS1pPj0wJiYoYSo9MjU2KTspZTwwJiYwPT09cyYmMCE9PXRoaXNbdCtpKzFdJiYocz0xKSx0aGlzW3QraV09KGUvYT4+MCktcyYyNTU7cmV0dXJuIHQrbn0sdS5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fEkodGhpcyxlLHQsMSwxMjcsLTEyOCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUfHwoZT1NYXRoLmZsb29yKGUpKSxlPDAmJihlPTI1NStlKzEpLHRoaXNbdF09MjU1JmUsdCsxfSx1LnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8SSh0aGlzLGUsdCwyLDMyNzY3LC0zMjc2OCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3RdPTI1NSZlLHRoaXNbdCsxXT1lPj4+OCk6Uih0aGlzLGUsdCwhMCksdCsyfSx1LnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8SSh0aGlzLGUsdCwyLDMyNzY3LC0zMjc2OCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3RdPWU+Pj44LHRoaXNbdCsxXT0yNTUmZSk6Uih0aGlzLGUsdCwhMSksdCsyfSx1LnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8SSh0aGlzLGUsdCw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1t0XT0yNTUmZSx0aGlzW3QrMV09ZT4+PjgsdGhpc1t0KzJdPWU+Pj4xNix0aGlzW3QrM109ZT4+PjI0KTpEKHRoaXMsZSx0LCEwKSx0KzR9LHUucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxJKHRoaXMsZSx0LDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksZTwwJiYoZT00Mjk0OTY3Mjk1K2UrMSksdS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3RdPWU+Pj4yNCx0aGlzW3QrMV09ZT4+PjE2LHRoaXNbdCsyXT1lPj4+OCx0aGlzW3QrM109MjU1JmUpOkQodGhpcyxlLHQsITEpLHQrNH0sdS5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gTCh0aGlzLGUsdCwhMCxuKX0sdS5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gTCh0aGlzLGUsdCwhMSxuKX0sdS5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIEYodGhpcyxlLHQsITAsbil9LHUucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBGKHRoaXMsZSx0LCExLG4pfSx1LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGUsdCxuLHIpe2lmKG58fChuPTApLHJ8fDA9PT1yfHwocj10aGlzLmxlbmd0aCksdD49ZS5sZW5ndGgmJih0PWUubGVuZ3RoKSx0fHwodD0wKSxyPjAmJnI8biYmKHI9bikscj09PW4pcmV0dXJuIDA7aWYoMD09PWUubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYodDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYobjwwfHxuPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtyPnRoaXMubGVuZ3RoJiYocj10aGlzLmxlbmd0aCksZS5sZW5ndGgtdDxyLW4mJihyPWUubGVuZ3RoLXQrbik7dmFyIG8saT1yLW47aWYodGhpcz09PWUmJm48dCYmdDxyKWZvcihvPWktMTtvPj0wOy0tbyllW28rdF09dGhpc1tvK25dO2Vsc2UgaWYoaTwxZTN8fCF1LlRZUEVEX0FSUkFZX1NVUFBPUlQpZm9yKG89MDtvPGk7KytvKWVbbyt0XT10aGlzW28rbl07ZWxzZSBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChlLHRoaXMuc3ViYXJyYXkobixuK2kpLHQpO3JldHVybiBpfSx1LnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIHQ/KHI9dCx0PTAsbj10aGlzLmxlbmd0aCk6InN0cmluZyI9PT10eXBlb2YgbiYmKHI9bixuPXRoaXMubGVuZ3RoKSwxPT09ZS5sZW5ndGgpe3ZhciBvPWUuY2hhckNvZGVBdCgwKTtvPDI1NiYmKGU9byl9aWYodm9pZCAwIT09ciYmInN0cmluZyIhPT10eXBlb2Ygcil0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PT10eXBlb2YgciYmIXUuaXNFbmNvZGluZyhyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3IpfWVsc2UibnVtYmVyIj09PXR5cGVvZiBlJiYoZSY9MjU1KTtpZih0PDB8fHRoaXMubGVuZ3RoPHR8fHRoaXMubGVuZ3RoPG4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKG48PXQpcmV0dXJuIHRoaXM7dmFyIGk7aWYodD4+Pj0wLG49dm9pZCAwPT09bj90aGlzLmxlbmd0aDpuPj4+MCxlfHwoZT0wKSwibnVtYmVyIj09PXR5cGVvZiBlKWZvcihpPXQ7aTxuOysraSl0aGlzW2ldPWU7ZWxzZXt2YXIgYT11LmlzQnVmZmVyKGUpP2U6VShuZXcgdShlLHIpLnRvU3RyaW5nKCkpLHM9YS5sZW5ndGg7Zm9yKGk9MDtpPG4tdDsrK2kpdGhpc1tpK3RdPWFbaSVzXX1yZXR1cm4gdGhpc307dmFyIE09L1teK1wvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gQihlKXtyZXR1cm4gZTwxNj8iMCIrZS50b1N0cmluZygxNik6ZS50b1N0cmluZygxNil9ZnVuY3Rpb24gVShlLHQpe3ZhciBuO3Q9dHx8MS8wO2Zvcih2YXIgcj1lLmxlbmd0aCxvPW51bGwsaT1bXSxhPTA7YTxyOysrYSl7aWYoKG49ZS5jaGFyQ29kZUF0KGEpKT41NTI5NSYmbjw1NzM0NCl7aWYoIW8pe2lmKG4+NTYzMTkpeyh0LT0zKT4tMSYmaS5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZihhKzE9PT1yKXsodC09Myk+LTEmJmkucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9bz1uO2NvbnRpbnVlfWlmKG48NTYzMjApeyh0LT0zKT4tMSYmaS5wdXNoKDIzOSwxOTEsMTg5KSxvPW47Y29udGludWV9bj02NTUzNisoby01NTI5Njw8MTB8bi01NjMyMCl9ZWxzZSBvJiYodC09Myk+LTEmJmkucHVzaCgyMzksMTkxLDE4OSk7aWYobz1udWxsLG48MTI4KXtpZigodC09MSk8MClicmVhaztpLnB1c2gobil9ZWxzZSBpZihuPDIwNDgpe2lmKCh0LT0yKTwwKWJyZWFrO2kucHVzaChuPj42fDE5Miw2MyZufDEyOCl9ZWxzZSBpZihuPDY1NTM2KXtpZigodC09Myk8MClicmVhaztpLnB1c2gobj4+MTJ8MjI0LG4+PjYmNjN8MTI4LDYzJm58MTI4KX1lbHNle2lmKCEobjwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKCh0LT00KTwwKWJyZWFrO2kucHVzaChuPj4xOHwyNDAsbj4+MTImNjN8MTI4LG4+PjYmNjN8MTI4LDYzJm58MTI4KX19cmV0dXJuIGl9ZnVuY3Rpb24geihlKXtyZXR1cm4gci50b0J5dGVBcnJheShmdW5jdGlvbihlKXtpZigoZT1mdW5jdGlvbihlKXtyZXR1cm4gZS50cmltP2UudHJpbSgpOmUucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfShlKS5yZXBsYWNlKE0sIiIpKS5sZW5ndGg8MilyZXR1cm4iIjtmb3IoO2UubGVuZ3RoJTQhPT0wOyllKz0iPSI7cmV0dXJuIGV9KGUpKX1mdW5jdGlvbiBWKGUsdCxuLHIpe2Zvcih2YXIgbz0wO288ciYmIShvK24+PXQubGVuZ3RofHxvPj1lLmxlbmd0aCk7KytvKXRbbytuXT1lW29dO3JldHVybiBvfX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dC5ieXRlTGVuZ3RoPWZ1bmN0aW9uKGUpe3ZhciB0PWMoZSksbj10WzBdLHI9dFsxXTtyZXR1cm4gMyoobityKS80LXJ9LHQudG9CeXRlQXJyYXk9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWMoZSksYT1yWzBdLHM9clsxXSx1PW5ldyBpKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMyoodCtuKS80LW59KDAsYSxzKSksbD0wLGY9cz4wP2EtNDphO2ZvcihuPTA7bjxmO24rPTQpdD1vW2UuY2hhckNvZGVBdChuKV08PDE4fG9bZS5jaGFyQ29kZUF0KG4rMSldPDwxMnxvW2UuY2hhckNvZGVBdChuKzIpXTw8NnxvW2UuY2hhckNvZGVBdChuKzMpXSx1W2wrK109dD4+MTYmMjU1LHVbbCsrXT10Pj44JjI1NSx1W2wrK109MjU1JnQ7Mj09PXMmJih0PW9bZS5jaGFyQ29kZUF0KG4pXTw8MnxvW2UuY2hhckNvZGVBdChuKzEpXT4+NCx1W2wrK109MjU1JnQpOzE9PT1zJiYodD1vW2UuY2hhckNvZGVBdChuKV08PDEwfG9bZS5jaGFyQ29kZUF0KG4rMSldPDw0fG9bZS5jaGFyQ29kZUF0KG4rMildPj4yLHVbbCsrXT10Pj44JjI1NSx1W2wrK109MjU1JnQpO3JldHVybiB1fSx0LmZyb21CeXRlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49ZS5sZW5ndGgsbz1uJTMsaT1bXSxhPTAscz1uLW87YTxzO2ErPTE2MzgzKWkucHVzaChsKGUsYSxhKzE2MzgzPnM/czphKzE2MzgzKSk7MT09PW8/KHQ9ZVtuLTFdLGkucHVzaChyW3Q+PjJdK3JbdDw8NCY2M10rIj09IikpOjI9PT1vJiYodD0oZVtuLTJdPDw4KStlW24tMV0saS5wdXNoKHJbdD4+MTBdK3JbdD4+NCY2M10rclt0PDwyJjYzXSsiPSIpKTtyZXR1cm4gaS5qb2luKCIiKX07Zm9yKHZhciByPVtdLG89W10saT0idW5kZWZpbmVkIiE9PXR5cGVvZiBVaW50OEFycmF5P1VpbnQ4QXJyYXk6QXJyYXksYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIscz0wLHU9YS5sZW5ndGg7czx1OysrcylyW3NdPWFbc10sb1thLmNoYXJDb2RlQXQocyldPXM7ZnVuY3Rpb24gYyhlKXt2YXIgdD1lLmxlbmd0aDtpZih0JTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgbj1lLmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PW4mJihuPXQpLFtuLG49PT10PzA6NC1uJTRdfWZ1bmN0aW9uIGwoZSx0LG4pe2Zvcih2YXIgbyxpLGE9W10scz10O3M8bjtzKz0zKW89KGVbc108PDE2JjE2NzExNjgwKSsoZVtzKzFdPDw4JjY1MjgwKSsoMjU1JmVbcysyXSksYS5wdXNoKHJbKGk9byk+PjE4JjYzXStyW2k+PjEyJjYzXStyW2k+PjYmNjNdK3JbNjMmaV0pO3JldHVybiBhLmpvaW4oIiIpfW9bIi0iLmNoYXJDb2RlQXQoMCldPTYyLG9bIl8iLmNoYXJDb2RlQXQoMCldPTYzfSxmdW5jdGlvbihlLHQpe3QucmVhZD1mdW5jdGlvbihlLHQsbixyLG8pe3ZhciBpLGEscz04Km8tci0xLHU9KDE8PHMpLTEsYz11Pj4xLGw9LTcsZj1uP28tMTowLGQ9bj8tMToxLHA9ZVt0K2ZdO2ZvcihmKz1kLGk9cCYoMTw8LWwpLTEscD4+PS1sLGwrPXM7bD4wO2k9MjU2KmkrZVt0K2ZdLGYrPWQsbC09OCk7Zm9yKGE9aSYoMTw8LWwpLTEsaT4+PS1sLGwrPXI7bD4wO2E9MjU2KmErZVt0K2ZdLGYrPWQsbC09OCk7aWYoMD09PWkpaT0xLWM7ZWxzZXtpZihpPT09dSlyZXR1cm4gYT9OYU46MS8wKihwPy0xOjEpO2ErPU1hdGgucG93KDIsciksaS09Y31yZXR1cm4ocD8tMToxKSphKk1hdGgucG93KDIsaS1yKX0sdC53cml0ZT1mdW5jdGlvbihlLHQsbixyLG8saSl7dmFyIGEscyx1LGM9OCppLW8tMSxsPSgxPDxjKS0xLGY9bD4+MSxkPTIzPT09bz9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAscD1yPzA6aS0xLGg9cj8xOi0xLHY9dDwwfHwwPT09dCYmMS90PDA/MTowO2Zvcih0PU1hdGguYWJzKHQpLGlzTmFOKHQpfHx0PT09MS8wPyhzPWlzTmFOKHQpPzE6MCxhPWwpOihhPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjIpLHQqKHU9TWF0aC5wb3coMiwtYSkpPDEmJihhLS0sdSo9MiksKHQrPWErZj49MT9kL3U6ZCpNYXRoLnBvdygyLDEtZikpKnU+PTImJihhKyssdS89MiksYStmPj1sPyhzPTAsYT1sKTphK2Y+PTE/KHM9KHQqdS0xKSpNYXRoLnBvdygyLG8pLGErPWYpOihzPXQqTWF0aC5wb3coMixmLTEpKk1hdGgucG93KDIsbyksYT0wKSk7bz49ODtlW24rcF09MjU1JnMscCs9aCxzLz0yNTYsby09OCk7Zm9yKGE9YTw8b3xzLGMrPW87Yz4wO2VbbitwXT0yNTUmYSxwKz1oLGEvPTI1NixjLT04KTtlW24rcC1oXXw9MTI4KnZ9fSxmdW5jdGlvbihlLHQpe3ZhciBuPXt9LnRvU3RyaW5nO2UuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT1uLmNhbGwoZSl9fSxmdW5jdGlvbihlLHQpe3ZhciBuPXt9LnRvU3RyaW5nO2UuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT1uLmNhbGwoZSl9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5ieXRlTGVuZ3RoO2lmKHQ9dHx8MCxuPW58fHIsZS5zbGljZSlyZXR1cm4gZS5zbGljZSh0LG4pO2lmKHQ8MCYmKHQrPXIpLG48MCYmKG4rPXIpLG4+ciYmKG49ciksdD49cnx8dD49bnx8MD09PXIpcmV0dXJuIG5ldyBBcnJheUJ1ZmZlcigwKTtmb3IodmFyIG89bmV3IFVpbnQ4QXJyYXkoZSksaT1uZXcgVWludDhBcnJheShuLXQpLGE9dCxzPTA7YTxuO2ErKyxzKyspaVtzXT1vW2FdO3JldHVybiBpLmJ1ZmZlcn19LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe31lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe3ZhciBvPSExO3JldHVybiByPXJ8fG4saS5jb3VudD1lLDA9PT1lP3QoKTppO2Z1bmN0aW9uIGkoZSxuKXtpZihpLmNvdW50PD0wKXRocm93IG5ldyBFcnJvcigiYWZ0ZXIgY2FsbGVkIHRvbyBtYW55IHRpbWVzIik7LS1pLmNvdW50LGU/KG89ITAsdChlKSx0PXIpOjAhPT1pLmNvdW50fHxvfHx0KG51bGwsbil9fX0sZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8saT1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIGEoZSl7Zm9yKHZhciB0LG4scj1bXSxvPTAsaT1lLmxlbmd0aDtvPGk7KSh0PWUuY2hhckNvZGVBdChvKyspKT49NTUyOTYmJnQ8PTU2MzE5JiZvPGk/NTYzMjA9PSg2NDUxMiYobj1lLmNoYXJDb2RlQXQobysrKSkpP3IucHVzaCgoKDEwMjMmdCk8PDEwKSsoMTAyMyZuKSs2NTUzNik6KHIucHVzaCh0KSxvLS0pOnIucHVzaCh0KTtyZXR1cm4gcn1mdW5jdGlvbiBzKGUsdCl7aWYoZT49NTUyOTYmJmU8PTU3MzQzKXtpZih0KXRocm93IEVycm9yKCJMb25lIHN1cnJvZ2F0ZSBVKyIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiIGlzIG5vdCBhIHNjYWxhciB2YWx1ZSIpO3JldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gaShlPj50JjYzfDEyOCl9ZnVuY3Rpb24gYyhlLHQpe2lmKDA9PSg0Mjk0OTY3MTY4JmUpKXJldHVybiBpKGUpO3ZhciBuPSIiO3JldHVybiAwPT0oNDI5NDk2NTI0OCZlKT9uPWkoZT4+NiYzMXwxOTIpOjA9PSg0Mjk0OTAxNzYwJmUpPyhzKGUsdCl8fChlPTY1NTMzKSxuPWkoZT4+MTImMTV8MjI0KSxuKz11KGUsNikpOjA9PSg0MjkyODcwMTQ0JmUpJiYobj1pKGU+PjE4Jjd8MjQwKSxuKz11KGUsMTIpLG4rPXUoZSw2KSksbis9aSg2MyZlfDEyOCl9ZnVuY3Rpb24gbCgpe2lmKG8+PXIpdGhyb3cgRXJyb3IoIkludmFsaWQgYnl0ZSBpbmRleCIpO3ZhciBlPTI1NSZuW29dO2lmKG8rKywxMjg9PSgxOTImZSkpcmV0dXJuIDYzJmU7dGhyb3cgRXJyb3IoIkludmFsaWQgY29udGludWF0aW9uIGJ5dGUiKX1mdW5jdGlvbiBmKGUpe3ZhciB0LGk7aWYobz5yKXRocm93IEVycm9yKCJJbnZhbGlkIGJ5dGUgaW5kZXgiKTtpZihvPT1yKXJldHVybiExO2lmKHQ9MjU1Jm5bb10sbysrLDA9PSgxMjgmdCkpcmV0dXJuIHQ7aWYoMTkyPT0oMjI0JnQpKXtpZigoaT0oMzEmdCk8PDZ8bCgpKT49MTI4KXJldHVybiBpO3Rocm93IEVycm9yKCJJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlIil9aWYoMjI0PT0oMjQwJnQpKXtpZigoaT0oMTUmdCk8PDEyfGwoKTw8NnxsKCkpPj0yMDQ4KXJldHVybiBzKGksZSk/aTo2NTUzMzt0aHJvdyBFcnJvcigiSW52YWxpZCBjb250aW51YXRpb24gYnl0ZSIpfWlmKDI0MD09KDI0OCZ0KSYmKGk9KDcmdCk8PDE4fGwoKTw8MTJ8bCgpPDw2fGwoKSk+PTY1NTM2JiZpPD0xMTE0MTExKXJldHVybiBpO3Rocm93IEVycm9yKCJJbnZhbGlkIFVURi04IGRldGVjdGVkIil9ZS5leHBvcnRzPXt2ZXJzaW9uOiIyLjEuMiIsZW5jb2RlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPSExIT09KHQ9dHx8e30pLnN0cmljdCxyPWEoZSksbz1yLmxlbmd0aCxpPS0xLHM9IiI7KytpPG87KXMrPWMocltpXSxuKTtyZXR1cm4gc30sZGVjb2RlOmZ1bmN0aW9uKGUsdCl7dmFyIHM9ITEhPT0odD10fHx7fSkuc3RyaWN0O249YShlKSxyPW4ubGVuZ3RoLG89MDtmb3IodmFyIHUsYz1bXTshMSE9PSh1PWYocykpOyljLnB1c2godSk7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPWUubGVuZ3RoLHI9LTEsbz0iIjsrK3I8bjspKHQ9ZVtyXSk+NjU1MzUmJihvKz1pKCh0LT02NTUzNik+Pj4xMCYxMDIzfDU1Mjk2KSx0PTU2MzIwfDEwMjMmdCksbys9aSh0KTtyZXR1cm4gb30oYyl9fX0sZnVuY3Rpb24oZSx0KXshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Zm9yKHZhciBlPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixuPW5ldyBVaW50OEFycmF5KDI1Nikscj0wO3I8ZS5sZW5ndGg7cisrKW5bZS5jaGFyQ29kZUF0KHIpXT1yO3QuZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBuLHI9bmV3IFVpbnQ4QXJyYXkodCksbz1yLmxlbmd0aCxpPSIiO2ZvcihuPTA7bjxvO24rPTMpaSs9ZVtyW25dPj4yXSxpKz1lWygzJnJbbl0pPDw0fHJbbisxXT4+NF0saSs9ZVsoMTUmcltuKzFdKTw8MnxyW24rMl0+PjZdLGkrPWVbNjMmcltuKzJdXTtyZXR1cm4gbyUzPT09Mj9pPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtMSkrIj0iOm8lMz09PTEmJihpPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtMikrIj09IiksaX0sdC5kZWNvZGU9ZnVuY3Rpb24oZSl7dmFyIHQscixvLGksYSxzPS43NSplLmxlbmd0aCx1PWUubGVuZ3RoLGM9MDsiPSI9PT1lW2UubGVuZ3RoLTFdJiYocy0tLCI9Ij09PWVbZS5sZW5ndGgtMl0mJnMtLSk7dmFyIGw9bmV3IEFycmF5QnVmZmVyKHMpLGY9bmV3IFVpbnQ4QXJyYXkobCk7Zm9yKHQ9MDt0PHU7dCs9NClyPW5bZS5jaGFyQ29kZUF0KHQpXSxvPW5bZS5jaGFyQ29kZUF0KHQrMSldLGk9bltlLmNoYXJDb2RlQXQodCsyKV0sYT1uW2UuY2hhckNvZGVBdCh0KzMpXSxmW2MrK109cjw8MnxvPj40LGZbYysrXT0oMTUmbyk8PDR8aT4+MixmW2MrK109KDMmaSk8PDZ8NjMmYTtyZXR1cm4gbH19KCl9LGZ1bmN0aW9uKGUsdCl7dmFyIG49InVuZGVmaW5lZCIhPT10eXBlb2Ygbj9uOiJ1bmRlZmluZWQiIT09dHlwZW9mIFdlYktpdEJsb2JCdWlsZGVyP1dlYktpdEJsb2JCdWlsZGVyOiJ1bmRlZmluZWQiIT09dHlwZW9mIE1TQmxvYkJ1aWxkZXI/TVNCbG9iQnVpbGRlcjoidW5kZWZpbmVkIiE9PXR5cGVvZiBNb3pCbG9iQnVpbGRlciYmTW96QmxvYkJ1aWxkZXIscj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gMj09PW5ldyBCbG9iKFsiaGkiXSkuc2l6ZX1jYXRjaChlKXtyZXR1cm4hMX19KCksbz1yJiZmdW5jdGlvbigpe3RyeXtyZXR1cm4gMj09PW5ldyBCbG9iKFtuZXcgVWludDhBcnJheShbMSwyXSldKS5zaXplfWNhdGNoKGUpe3JldHVybiExfX0oKSxpPW4mJm4ucHJvdG90eXBlLmFwcGVuZCYmbi5wcm90b3R5cGUuZ2V0QmxvYjtmdW5jdGlvbiBhKGUpe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7aWYoZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcil7dmFyIHQ9ZS5idWZmZXI7aWYoZS5ieXRlTGVuZ3RoIT09dC5ieXRlTGVuZ3RoKXt2YXIgbj1uZXcgVWludDhBcnJheShlLmJ5dGVMZW5ndGgpO24uc2V0KG5ldyBVaW50OEFycmF5KHQsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCkpLHQ9bi5idWZmZXJ9cmV0dXJuIHR9cmV0dXJuIGV9KSl9ZnVuY3Rpb24gcyhlLHQpe3Q9dHx8e307dmFyIHI9bmV3IG47cmV0dXJuIGEoZSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ci5hcHBlbmQoZSl9KSksdC50eXBlP3IuZ2V0QmxvYih0LnR5cGUpOnIuZ2V0QmxvYigpfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gbmV3IEJsb2IoYShlKSx0fHx7fSl9InVuZGVmaW5lZCIhPT10eXBlb2YgQmxvYiYmKHMucHJvdG90eXBlPUJsb2IucHJvdG90eXBlLHUucHJvdG90eXBlPUJsb2IucHJvdG90eXBlKSxlLmV4cG9ydHM9cj9vP0Jsb2I6dTppP3M6dm9pZCAwfSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcihlKXt2YXIgbjtmdW5jdGlvbiByKCl7aWYoci5lbmFibGVkKXt2YXIgZT1yLG89K25ldyBEYXRlLGk9by0obnx8byk7ZS5kaWZmPWksZS5wcmV2PW4sZS5jdXJyPW8sbj1vO2Zvcih2YXIgYT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCkscz0wO3M8YS5sZW5ndGg7cysrKWFbc109YXJndW1lbnRzW3NdO2FbMF09dC5jb2VyY2UoYVswXSksInN0cmluZyIhPT10eXBlb2YgYVswXSYmYS51bnNoaWZ0KCIlTyIpO3ZhciB1PTA7YVswXT1hWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLChmdW5jdGlvbihuLHIpe2lmKCIlJSI9PT1uKXJldHVybiBuO3UrKzt2YXIgbz10LmZvcm1hdHRlcnNbcl07aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBvKXt2YXIgaT1hW3VdO249by5jYWxsKGUsaSksYS5zcGxpY2UodSwxKSx1LS19cmV0dXJuIG59KSksdC5mb3JtYXRBcmdzLmNhbGwoZSxhKTt2YXIgYz1yLmxvZ3x8dC5sb2d8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7Yy5hcHBseShlLGEpfX1yZXR1cm4gci5uYW1lc3BhY2U9ZSxyLmVuYWJsZWQ9dC5lbmFibGVkKGUpLHIudXNlQ29sb3JzPXQudXNlQ29sb3JzKCksci5jb2xvcj1mdW5jdGlvbihlKXt2YXIgbixyPTA7Zm9yKG4gaW4gZSlyPShyPDw1KS1yK2UuY2hhckNvZGVBdChuKSxyfD0wO3JldHVybiB0LmNvbG9yc1tNYXRoLmFicyhyKSV0LmNvbG9ycy5sZW5ndGhdfShlKSxyLmRlc3Ryb3k9bywiZnVuY3Rpb24iPT09dHlwZW9mIHQuaW5pdCYmdC5pbml0KHIpLHQuaW5zdGFuY2VzLnB1c2gocikscn1mdW5jdGlvbiBvKCl7dmFyIGU9dC5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKTtyZXR1cm4tMSE9PWUmJih0Lmluc3RhbmNlcy5zcGxpY2UoZSwxKSwhMCl9KHQ9ZS5leHBvcnRzPXIuZGVidWc9ci5kZWZhdWx0PXIpLmNvZXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2t8fGUubWVzc2FnZTplfSx0LmRpc2FibGU9ZnVuY3Rpb24oKXt0LmVuYWJsZSgiIil9LHQuZW5hYmxlPWZ1bmN0aW9uKGUpe3ZhciBuO3Quc2F2ZShlKSx0Lm5hbWVzPVtdLHQuc2tpcHM9W107dmFyIHI9KCJzdHJpbmciPT09dHlwZW9mIGU/ZToiIikuc3BsaXQoL1tccyxdKy8pLG89ci5sZW5ndGg7Zm9yKG49MDtuPG87bisrKXJbbl0mJigiLSI9PT0oZT1yW25dLnJlcGxhY2UoL1wqL2csIi4qPyIpKVswXT90LnNraXBzLnB1c2gobmV3IFJlZ0V4cCgiXiIrZS5zdWJzdHIoMSkrIiQiKSk6dC5uYW1lcy5wdXNoKG5ldyBSZWdFeHAoIl4iK2UrIiQiKSkpO2ZvcihuPTA7bjx0Lmluc3RhbmNlcy5sZW5ndGg7bisrKXt2YXIgaT10Lmluc3RhbmNlc1tuXTtpLmVuYWJsZWQ9dC5lbmFibGVkKGkubmFtZXNwYWNlKX19LHQuZW5hYmxlZD1mdW5jdGlvbihlKXtpZigiKiI9PT1lW2UubGVuZ3RoLTFdKXJldHVybiEwO3ZhciBuLHI7Zm9yKG49MCxyPXQuc2tpcHMubGVuZ3RoO248cjtuKyspaWYodC5za2lwc1tuXS50ZXN0KGUpKXJldHVybiExO2ZvcihuPTAscj10Lm5hbWVzLmxlbmd0aDtuPHI7bisrKWlmKHQubmFtZXNbbl0udGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX0sdC5odW1hbml6ZT1uKDMwMiksdC5pbnN0YW5jZXM9W10sdC5uYW1lcz1bXSx0LnNraXBzPVtdLHQuZm9ybWF0dGVycz17fX0sZnVuY3Rpb24oZSx0KXt2YXIgbj0xZTMscj02ZTQsbz02MCpyLGk9MjQqbztmdW5jdGlvbiBhKGUsdCxuKXtpZighKGU8dCkpcmV0dXJuIGU8MS41KnQ/TWF0aC5mbG9vcihlL3QpKyIgIituOk1hdGguY2VpbChlL3QpKyIgIituKyJzIn1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBzLHU9dHlwZW9mIGU7aWYoInN0cmluZyI9PT11JiZlLmxlbmd0aD4wKXJldHVybiBmdW5jdGlvbihlKXtpZigoZT1TdHJpbmcoZSkpLmxlbmd0aD4xMDApcmV0dXJuO3ZhciB0PS9eKCg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYoIXQpcmV0dXJuO3ZhciBhPXBhcnNlRmxvYXQodFsxXSk7c3dpdGNoKCh0WzJdfHwibXMiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInllYXJzIjpjYXNlInllYXIiOmNhc2UieXJzIjpjYXNlInlyIjpjYXNlInkiOnJldHVybiAzMTU1NzZlNSphO2Nhc2UiZGF5cyI6Y2FzZSJkYXkiOmNhc2UiZCI6cmV0dXJuIGEqaTtjYXNlImhvdXJzIjpjYXNlImhvdXIiOmNhc2UiaHJzIjpjYXNlImhyIjpjYXNlImgiOnJldHVybiBhKm87Y2FzZSJtaW51dGVzIjpjYXNlIm1pbnV0ZSI6Y2FzZSJtaW5zIjpjYXNlIm1pbiI6Y2FzZSJtIjpyZXR1cm4gYSpyO2Nhc2Uic2Vjb25kcyI6Y2FzZSJzZWNvbmQiOmNhc2Uic2VjcyI6Y2FzZSJzZWMiOmNhc2UicyI6cmV0dXJuIGEqbjtjYXNlIm1pbGxpc2Vjb25kcyI6Y2FzZSJtaWxsaXNlY29uZCI6Y2FzZSJtc2VjcyI6Y2FzZSJtc2VjIjpjYXNlIm1zIjpyZXR1cm4gYTtkZWZhdWx0OnJldHVybn19KGUpO2lmKCJudW1iZXIiPT09dSYmITE9PT1pc05hTihlKSlyZXR1cm4gdC5sb25nP2Eocz1lLGksImRheSIpfHxhKHMsbywiaG91ciIpfHxhKHMsciwibWludXRlIil8fGEocyxuLCJzZWNvbmQiKXx8cysiIG1zIjpmdW5jdGlvbihlKXtpZihlPj1pKXJldHVybiBNYXRoLnJvdW5kKGUvaSkrImQiO2lmKGU+PW8pcmV0dXJuIE1hdGgucm91bmQoZS9vKSsiaCI7aWYoZT49cilyZXR1cm4gTWF0aC5yb3VuZChlL3IpKyJtIjtpZihlPj1uKXJldHVybiBNYXRoLnJvdW5kKGUvbikrInMiO3JldHVybiBlKyJtcyJ9KGUpO3Rocm93IG5ldyBFcnJvcigidmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD0iK0pTT04uc3RyaW5naWZ5KGUpKX19LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24odCl7dmFyIHI9bigxOTApLG89bigxMjIpO2UuZXhwb3J0cz1jO3ZhciBpLGE9L1xuL2cscz0vXFxuL2c7ZnVuY3Rpb24gdSgpe31mdW5jdGlvbiBjKGUpe3IuY2FsbCh0aGlzLGUpLHRoaXMucXVlcnk9dGhpcy5xdWVyeXx8e30saXx8KHQuX19fZWlvfHwodC5fX19laW89W10pLGk9dC5fX19laW8pLHRoaXMuaW5kZXg9aS5sZW5ndGg7dmFyIG49dGhpcztpLnB1c2goKGZ1bmN0aW9uKGUpe24ub25EYXRhKGUpfSkpLHRoaXMucXVlcnkuaj10aGlzLmluZGV4LHQuZG9jdW1lbnQmJnQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLChmdW5jdGlvbigpe24uc2NyaXB0JiYobi5zY3JpcHQub25lcnJvcj11KX0pLCExKX1vKGMsciksYy5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITEsYy5wcm90b3R5cGUuZG9DbG9zZT1mdW5jdGlvbigpe3RoaXMuc2NyaXB0JiYodGhpcy5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnNjcmlwdCksdGhpcy5zY3JpcHQ9bnVsbCksdGhpcy5mb3JtJiYodGhpcy5mb3JtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5mb3JtKSx0aGlzLmZvcm09bnVsbCx0aGlzLmlmcmFtZT1udWxsKSxyLnByb3RvdHlwZS5kb0Nsb3NlLmNhbGwodGhpcyl9LGMucHJvdG90eXBlLmRvUG9sbD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt0aGlzLnNjcmlwdCYmKHRoaXMuc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zY3JpcHQpLHRoaXMuc2NyaXB0PW51bGwpLHQuYXN5bmM9ITAsdC5zcmM9dGhpcy51cmkoKSx0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7ZS5vbkVycm9yKCJqc29ucCBwb2xsIGVycm9yIix0KX07dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO24/bi5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LG4pOihkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZCh0KSx0aGlzLnNjcmlwdD10LCJ1bmRlZmluZWQiIT09dHlwZW9mIG5hdmlnYXRvciYmL2dlY2tvL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSl9KSwxMDApfSxjLnByb3RvdHlwZS5kb1dyaXRlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztpZighdGhpcy5mb3JtKXt2YXIgcixvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIiksdT10aGlzLmlmcmFtZUlkPSJlaW9faWZyYW1lXyIrdGhpcy5pbmRleDtvLmNsYXNzTmFtZT0ic29ja2V0aW8iLG8uc3R5bGUucG9zaXRpb249ImFic29sdXRlIixvLnN0eWxlLnRvcD0iLTEwMDBweCIsby5zdHlsZS5sZWZ0PSItMTAwMHB4IixvLnRhcmdldD11LG8ubWV0aG9kPSJQT1NUIixvLnNldEF0dHJpYnV0ZSgiYWNjZXB0LWNoYXJzZXQiLCJ1dGYtOCIpLGkubmFtZT0iZCIsby5hcHBlbmRDaGlsZChpKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG8pLHRoaXMuZm9ybT1vLHRoaXMuYXJlYT1pfWZ1bmN0aW9uIGMoKXtsKCksdCgpfWZ1bmN0aW9uIGwoKXtpZihuLmlmcmFtZSl0cnl7bi5mb3JtLnJlbW92ZUNoaWxkKG4uaWZyYW1lKX1jYXRjaCh0KXtuLm9uRXJyb3IoImpzb25wIHBvbGxpbmcgaWZyYW1lIHJlbW92YWwgZXJyb3IiLHQpfXRyeXt2YXIgZT0nPGlmcmFtZSBzcmM9ImphdmFzY3JpcHQ6MCIgbmFtZT0iJytuLmlmcmFtZUlkKyciPic7cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpfWNhdGNoKHQpeyhyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpKS5uYW1lPW4uaWZyYW1lSWQsci5zcmM9ImphdmFzY3JpcHQ6MCJ9ci5pZD1uLmlmcmFtZUlkLG4uZm9ybS5hcHBlbmRDaGlsZChyKSxuLmlmcmFtZT1yfXRoaXMuZm9ybS5hY3Rpb249dGhpcy51cmkoKSxsKCksZT1lLnJlcGxhY2UocywiXFxcbiIpLHRoaXMuYXJlYS52YWx1ZT1lLnJlcGxhY2UoYSwiXFxuIik7dHJ5e3RoaXMuZm9ybS5zdWJtaXQoKX1jYXRjaChmKXt9dGhpcy5pZnJhbWUuYXR0YWNoRXZlbnQ/dGhpcy5pZnJhbWUub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ImNvbXBsZXRlIj09PW4uaWZyYW1lLnJlYWR5U3RhdGUmJmMoKX06dGhpcy5pZnJhbWUub25sb2FkPWN9fSkuY2FsbCh0aGlzLG4oMTMpKX0sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbih0KXt2YXIgcixvPW4oMTQ4KSxpPW4oODEpLGE9bigxMjEpLHM9bigxMjIpLHU9bigxOTIpLGM9bigxMjMpKCJlbmdpbmUuaW8tY2xpZW50OndlYnNvY2tldCIpLGw9dC5XZWJTb2NrZXR8fHQuTW96V2ViU29ja2V0O2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdyl0cnl7cj1uKDMwNSl9Y2F0Y2gocCl7fXZhciBmPWw7ZnVuY3Rpb24gZChlKXtlJiZlLmZvcmNlQmFzZTY0JiYodGhpcy5zdXBwb3J0c0JpbmFyeT0hMSksdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZT1lLnBlck1lc3NhZ2VEZWZsYXRlLHRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0PWwmJiFlLmZvcmNlTm9kZSx0aGlzLnByb3RvY29scz1lLnByb3RvY29scyx0aGlzLnVzaW5nQnJvd3NlcldlYlNvY2tldHx8KGY9ciksby5jYWxsKHRoaXMsZSl9Znx8InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93fHwoZj1yKSxlLmV4cG9ydHM9ZCxzKGQsbyksZC5wcm90b3R5cGUubmFtZT0id2Vic29ja2V0IixkLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeT0hMCxkLnByb3RvdHlwZS5kb09wZW49ZnVuY3Rpb24oKXtpZih0aGlzLmNoZWNrKCkpe3ZhciBlPXRoaXMudXJpKCksdD10aGlzLnByb3RvY29scyxuPXthZ2VudDp0aGlzLmFnZW50LHBlck1lc3NhZ2VEZWZsYXRlOnRoaXMucGVyTWVzc2FnZURlZmxhdGV9O24ucGZ4PXRoaXMucGZ4LG4ua2V5PXRoaXMua2V5LG4ucGFzc3BocmFzZT10aGlzLnBhc3NwaHJhc2Usbi5jZXJ0PXRoaXMuY2VydCxuLmNhPXRoaXMuY2Esbi5jaXBoZXJzPXRoaXMuY2lwaGVycyxuLnJlamVjdFVuYXV0aG9yaXplZD10aGlzLnJlamVjdFVuYXV0aG9yaXplZCx0aGlzLmV4dHJhSGVhZGVycyYmKG4uaGVhZGVycz10aGlzLmV4dHJhSGVhZGVycyksdGhpcy5sb2NhbEFkZHJlc3MmJihuLmxvY2FsQWRkcmVzcz10aGlzLmxvY2FsQWRkcmVzcyk7dHJ5e3RoaXMud3M9dGhpcy51c2luZ0Jyb3dzZXJXZWJTb2NrZXQ/dD9uZXcgZihlLHQpOm5ldyBmKGUpOm5ldyBmKGUsdCxuKX1jYXRjaChyKXtyZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIscil9dm9pZCAwPT09dGhpcy53cy5iaW5hcnlUeXBlJiYodGhpcy5zdXBwb3J0c0JpbmFyeT0hMSksdGhpcy53cy5zdXBwb3J0cyYmdGhpcy53cy5zdXBwb3J0cy5iaW5hcnk/KHRoaXMuc3VwcG9ydHNCaW5hcnk9ITAsdGhpcy53cy5iaW5hcnlUeXBlPSJub2RlYnVmZmVyIik6dGhpcy53cy5iaW5hcnlUeXBlPSJhcnJheWJ1ZmZlciIsdGhpcy5hZGRFdmVudExpc3RlbmVycygpfX0sZC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMud3Mub25vcGVuPWZ1bmN0aW9uKCl7ZS5vbk9wZW4oKX0sdGhpcy53cy5vbmNsb3NlPWZ1bmN0aW9uKCl7ZS5vbkNsb3NlKCl9LHRoaXMud3Mub25tZXNzYWdlPWZ1bmN0aW9uKHQpe2Uub25EYXRhKHQuZGF0YSl9LHRoaXMud3Mub25lcnJvcj1mdW5jdGlvbih0KXtlLm9uRXJyb3IoIndlYnNvY2tldCBlcnJvciIsdCl9fSxkLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3RoaXMud3JpdGFibGU9ITE7Zm9yKHZhciByPWUubGVuZ3RoLG89MCxhPXI7bzxhO28rKykhZnVuY3Rpb24oZSl7aS5lbmNvZGVQYWNrZXQoZSxuLnN1cHBvcnRzQmluYXJ5LChmdW5jdGlvbihvKXtpZighbi51c2luZ0Jyb3dzZXJXZWJTb2NrZXQpe3ZhciBpPXt9O2lmKGUub3B0aW9ucyYmKGkuY29tcHJlc3M9ZS5vcHRpb25zLmNvbXByZXNzKSxuLnBlck1lc3NhZ2VEZWZsYXRlKSgic3RyaW5nIj09PXR5cGVvZiBvP3QuQnVmZmVyLmJ5dGVMZW5ndGgobyk6by5sZW5ndGgpPG4ucGVyTWVzc2FnZURlZmxhdGUudGhyZXNob2xkJiYoaS5jb21wcmVzcz0hMSl9dHJ5e24udXNpbmdCcm93c2VyV2ViU29ja2V0P24ud3Muc2VuZChvKTpuLndzLnNlbmQobyxpKX1jYXRjaChwKXtjKCJ3ZWJzb2NrZXQgY2xvc2VkIGJlZm9yZSBvbmNsb3NlIGV2ZW50Iil9LS1yfHxzKCl9KSl9KGVbb10pO2Z1bmN0aW9uIHMoKXtuLmVtaXQoImZsdXNoIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtuLndyaXRhYmxlPSEwLG4uZW1pdCgiZHJhaW4iKX0pLDApfX0sZC5wcm90b3R5cGUub25DbG9zZT1mdW5jdGlvbigpe28ucHJvdG90eXBlLm9uQ2xvc2UuY2FsbCh0aGlzKX0sZC5wcm90b3R5cGUuZG9DbG9zZT1mdW5jdGlvbigpeyJ1bmRlZmluZWQiIT09dHlwZW9mIHRoaXMud3MmJnRoaXMud3MuY2xvc2UoKX0sZC5wcm90b3R5cGUudXJpPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5xdWVyeXx8e30sdD10aGlzLnNlY3VyZT8id3NzIjoid3MiLG49IiI7cmV0dXJuIHRoaXMucG9ydCYmKCJ3c3MiPT09dCYmNDQzIT09TnVtYmVyKHRoaXMucG9ydCl8fCJ3cyI9PT10JiY4MCE9PU51bWJlcih0aGlzLnBvcnQpKSYmKG49IjoiK3RoaXMucG9ydCksdGhpcy50aW1lc3RhbXBSZXF1ZXN0cyYmKGVbdGhpcy50aW1lc3RhbXBQYXJhbV09dSgpKSx0aGlzLnN1cHBvcnRzQmluYXJ5fHwoZS5iNjQ9MSksKGU9YS5lbmNvZGUoZSkpLmxlbmd0aCYmKGU9Ij8iK2UpLHQrIjovLyIrKC0xIT09dGhpcy5ob3N0bmFtZS5pbmRleE9mKCI6Iik/IlsiK3RoaXMuaG9zdG5hbWUrIl0iOnRoaXMuaG9zdG5hbWUpK24rdGhpcy5wYXRoK2V9LGQucHJvdG90eXBlLmNoZWNrPWZ1bmN0aW9uKCl7cmV0dXJuISFmJiYhKCJfX2luaXRpYWxpemUiaW4gZiYmdGhpcy5uYW1lPT09ZC5wcm90b3R5cGUubmFtZSl9fSkuY2FsbCh0aGlzLG4oMTMpKX0sZnVuY3Rpb24oZSx0KXt9LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdLHI9KHQ9dHx8MCl8fDA7cjxlLmxlbmd0aDtyKyspbltyLXRdPWVbcl07cmV0dXJuIG59fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSl7ZT1lfHx7fSx0aGlzLm1zPWUubWlufHwxMDAsdGhpcy5tYXg9ZS5tYXh8fDFlNCx0aGlzLmZhY3Rvcj1lLmZhY3Rvcnx8Mix0aGlzLmppdHRlcj1lLmppdHRlcj4wJiZlLmppdHRlcjw9MT9lLmppdHRlcjowLHRoaXMuYXR0ZW1wdHM9MH1lLmV4cG9ydHM9bixuLnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubXMqTWF0aC5wb3codGhpcy5mYWN0b3IsdGhpcy5hdHRlbXB0cysrKTtpZih0aGlzLmppdHRlcil7dmFyIHQ9TWF0aC5yYW5kb20oKSxuPU1hdGguZmxvb3IodCp0aGlzLmppdHRlciplKTtlPTA9PSgxJk1hdGguZmxvb3IoMTAqdCkpP2UtbjplK259cmV0dXJuIDB8TWF0aC5taW4oZSx0aGlzLm1heCl9LG4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5hdHRlbXB0cz0wfSxuLnByb3RvdHlwZS5zZXRNaW49ZnVuY3Rpb24oZSl7dGhpcy5tcz1lfSxuLnByb3RvdHlwZS5zZXRNYXg9ZnVuY3Rpb24oZSl7dGhpcy5tYXg9ZX0sbi5wcm90b3R5cGUuc2V0Sml0dGVyPWZ1bmN0aW9uKGUpe3RoaXMuaml0dGVyPWV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNjgpLG89bigxNSksaT1bXS5zbGljZSxhPXt9LHM9ZnVuY3Rpb24oZSx0LG4pe2lmKCEodCBpbiBhKSl7Zm9yKHZhciByPVtdLG89MDtvPHQ7bysrKXJbb109ImFbIitvKyJdIjthW3RdPUZ1bmN0aW9uKCJDLGEiLCJyZXR1cm4gbmV3IEMoIityLmpvaW4oIiwiKSsiKSIpfXJldHVybiBhW3RdKGUsbil9O2UuZXhwb3J0cz1GdW5jdGlvbi5iaW5kfHxmdW5jdGlvbihlKXt2YXIgdD1yKHRoaXMpLG49aS5jYWxsKGFyZ3VtZW50cywxKSxhPWZ1bmN0aW9uKCl7dmFyIHI9bi5jb25jYXQoaS5jYWxsKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgYT9zKHQsci5sZW5ndGgscik6dC5hcHBseShlLHIpfTtyZXR1cm4gbyh0LnByb3RvdHlwZSkmJihhLnByb3RvdHlwZT10LnByb3RvdHlwZSksYX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxOTgpLkl0ZXJhdG9yUHJvdG90eXBlLG89bigxNDEpLGk9big0OCksYT1uKDEzOSkscz1uKDEwNCksdT1mdW5jdGlvbigpe3JldHVybiB0aGlzfTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBjPXQrIiBJdGVyYXRvciI7cmV0dXJuIGUucHJvdG90eXBlPW8ocix7bmV4dDppKDEsbil9KSxhKGUsYywhMSwhMCksc1tjXT11LGV9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxMCk7ZS5leHBvcnRzPSFyKChmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBlKSE9PWUucHJvdG90eXBlfSkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMjAwKSxvPW4oMTUwKSxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYT17YnJhY2tldHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIltdIn0sY29tbWE6ImNvbW1hIixpbmRpY2VzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUrIlsiK3QrIl0ifSxyZXBlYXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fSxzPUFycmF5LmlzQXJyYXksdT1BcnJheS5wcm90b3R5cGUucHVzaCxjPWZ1bmN0aW9uKGUsdCl7dS5hcHBseShlLHModCk/dDpbdF0pfSxsPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLGY9by5kZWZhdWx0LGQ9e2FkZFF1ZXJ5UHJlZml4OiExLGFsbG93RG90czohMSxjaGFyc2V0OiJ1dGYtOCIsY2hhcnNldFNlbnRpbmVsOiExLGRlbGltaXRlcjoiJiIsZW5jb2RlOiEwLGVuY29kZXI6ci5lbmNvZGUsZW5jb2RlVmFsdWVzT25seTohMSxmb3JtYXQ6Zixmb3JtYXR0ZXI6by5mb3JtYXR0ZXJzW2ZdLGluZGljZXM6ITEsc2VyaWFsaXplRGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gbC5jYWxsKGUpfSxza2lwTnVsbHM6ITEsc3RyaWN0TnVsbEhhbmRsaW5nOiExfSxwPWZ1bmN0aW9uIGUodCxuLG8saSxhLHUsbCxmLHAsaCx2LGcseSxtKXt2YXIgYix3PXQ7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBsP3c9bChuLHcpOncgaW5zdGFuY2VvZiBEYXRlP3c9aCh3KToiY29tbWEiPT09byYmcyh3KSYmKHc9ci5tYXliZU1hcCh3LChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGU/aChlKTplfSkpKSxudWxsPT09dyl7aWYoaSlyZXR1cm4gdSYmIXk/dShuLGQuZW5jb2RlcixtLCJrZXkiLHYpOm47dz0iIn1pZigic3RyaW5nIj09PXR5cGVvZihiPXcpfHwibnVtYmVyIj09PXR5cGVvZiBifHwiYm9vbGVhbiI9PT10eXBlb2YgYnx8InN5bWJvbCI9PT10eXBlb2YgYnx8ImJpZ2ludCI9PT10eXBlb2YgYnx8ci5pc0J1ZmZlcih3KSlyZXR1cm4gdT9bZyh5P246dShuLGQuZW5jb2RlcixtLCJrZXkiLHYpKSsiPSIrZyh1KHcsZC5lbmNvZGVyLG0sInZhbHVlIix2KSldOltnKG4pKyI9IitnKFN0cmluZyh3KSldO3ZhciBPLF89W107aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgdylyZXR1cm4gXztpZigiY29tbWEiPT09byYmcyh3KSlPPVt7dmFsdWU6dy5sZW5ndGg+MD93LmpvaW4oIiwiKXx8bnVsbDp2b2lkIDB9XTtlbHNlIGlmKHMobCkpTz1sO2Vsc2V7dmFyIEU9T2JqZWN0LmtleXModyk7Tz1mP0Uuc29ydChmKTpFfWZvcih2YXIgQz0wO0M8Ty5sZW5ndGg7KytDKXt2YXIgUz1PW0NdLGs9Im9iamVjdCI9PT10eXBlb2YgUyYmdm9pZCAwIT09Uy52YWx1ZT9TLnZhbHVlOndbU107aWYoIWF8fG51bGwhPT1rKXt2YXIgeD1zKHcpPyJmdW5jdGlvbiI9PT10eXBlb2Ygbz9vKG4sUyk6bjpuKyhwPyIuIitTOiJbIitTKyJdIik7YyhfLGUoayx4LG8saSxhLHUsbCxmLHAsaCx2LGcseSxtKSl9fXJldHVybiBffTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWUsdT1mdW5jdGlvbihlKXtpZighZSlyZXR1cm4gZDtpZihudWxsIT09ZS5lbmNvZGVyJiZ2b2lkIDAhPT1lLmVuY29kZXImJiJmdW5jdGlvbiIhPT10eXBlb2YgZS5lbmNvZGVyKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuY29kZXIgaGFzIHRvIGJlIGEgZnVuY3Rpb24uIik7dmFyIHQ9ZS5jaGFyc2V0fHxkLmNoYXJzZXQ7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgZS5jaGFyc2V0JiYidXRmLTgiIT09ZS5jaGFyc2V0JiYiaXNvLTg4NTktMSIhPT1lLmNoYXJzZXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGNoYXJzZXQgb3B0aW9uIG11c3QgYmUgZWl0aGVyIHV0Zi04LCBpc28tODg1OS0xLCBvciB1bmRlZmluZWQiKTt2YXIgbj1vLmRlZmF1bHQ7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgZS5mb3JtYXQpe2lmKCFpLmNhbGwoby5mb3JtYXR0ZXJzLGUuZm9ybWF0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGZvcm1hdCBvcHRpb24gcHJvdmlkZWQuIik7bj1lLmZvcm1hdH12YXIgcj1vLmZvcm1hdHRlcnNbbl0sYT1kLmZpbHRlcjtyZXR1cm4oImZ1bmN0aW9uIj09PXR5cGVvZiBlLmZpbHRlcnx8cyhlLmZpbHRlcikpJiYoYT1lLmZpbHRlcikse2FkZFF1ZXJ5UHJlZml4OiJib29sZWFuIj09PXR5cGVvZiBlLmFkZFF1ZXJ5UHJlZml4P2UuYWRkUXVlcnlQcmVmaXg6ZC5hZGRRdWVyeVByZWZpeCxhbGxvd0RvdHM6InVuZGVmaW5lZCI9PT10eXBlb2YgZS5hbGxvd0RvdHM/ZC5hbGxvd0RvdHM6ISFlLmFsbG93RG90cyxjaGFyc2V0OnQsY2hhcnNldFNlbnRpbmVsOiJib29sZWFuIj09PXR5cGVvZiBlLmNoYXJzZXRTZW50aW5lbD9lLmNoYXJzZXRTZW50aW5lbDpkLmNoYXJzZXRTZW50aW5lbCxkZWxpbWl0ZXI6InVuZGVmaW5lZCI9PT10eXBlb2YgZS5kZWxpbWl0ZXI/ZC5kZWxpbWl0ZXI6ZS5kZWxpbWl0ZXIsZW5jb2RlOiJib29sZWFuIj09PXR5cGVvZiBlLmVuY29kZT9lLmVuY29kZTpkLmVuY29kZSxlbmNvZGVyOiJmdW5jdGlvbiI9PT10eXBlb2YgZS5lbmNvZGVyP2UuZW5jb2RlcjpkLmVuY29kZXIsZW5jb2RlVmFsdWVzT25seToiYm9vbGVhbiI9PT10eXBlb2YgZS5lbmNvZGVWYWx1ZXNPbmx5P2UuZW5jb2RlVmFsdWVzT25seTpkLmVuY29kZVZhbHVlc09ubHksZmlsdGVyOmEsZm9ybWF0Om4sZm9ybWF0dGVyOnIsc2VyaWFsaXplRGF0ZToiZnVuY3Rpb24iPT09dHlwZW9mIGUuc2VyaWFsaXplRGF0ZT9lLnNlcmlhbGl6ZURhdGU6ZC5zZXJpYWxpemVEYXRlLHNraXBOdWxsczoiYm9vbGVhbiI9PT10eXBlb2YgZS5za2lwTnVsbHM/ZS5za2lwTnVsbHM6ZC5za2lwTnVsbHMsc29ydDoiZnVuY3Rpb24iPT09dHlwZW9mIGUuc29ydD9lLnNvcnQ6bnVsbCxzdHJpY3ROdWxsSGFuZGxpbmc6ImJvb2xlYW4iPT09dHlwZW9mIGUuc3RyaWN0TnVsbEhhbmRsaW5nP2Uuc3RyaWN0TnVsbEhhbmRsaW5nOmQuc3RyaWN0TnVsbEhhbmRsaW5nfX0odCk7ImZ1bmN0aW9uIj09PXR5cGVvZiB1LmZpbHRlcj9yPSgwLHUuZmlsdGVyKSgiIixyKTpzKHUuZmlsdGVyKSYmKG49dS5maWx0ZXIpO3ZhciBsLGY9W107aWYoIm9iamVjdCIhPT10eXBlb2Ygcnx8bnVsbD09PXIpcmV0dXJuIiI7bD10JiZ0LmFycmF5Rm9ybWF0IGluIGE/dC5hcnJheUZvcm1hdDp0JiYiaW5kaWNlcyJpbiB0P3QuaW5kaWNlcz8iaW5kaWNlcyI6InJlcGVhdCI6ImluZGljZXMiO3ZhciBoPWFbbF07bnx8KG49T2JqZWN0LmtleXMocikpLHUuc29ydCYmbi5zb3J0KHUuc29ydCk7Zm9yKHZhciB2PTA7djxuLmxlbmd0aDsrK3Ype3ZhciBnPW5bdl07dS5za2lwTnVsbHMmJm51bGw9PT1yW2ddfHxjKGYscChyW2ddLGcsaCx1LnN0cmljdE51bGxIYW5kbGluZyx1LnNraXBOdWxscyx1LmVuY29kZT91LmVuY29kZXI6bnVsbCx1LmZpbHRlcix1LnNvcnQsdS5hbGxvd0RvdHMsdS5zZXJpYWxpemVEYXRlLHUuZm9ybWF0LHUuZm9ybWF0dGVyLHUuZW5jb2RlVmFsdWVzT25seSx1LmNoYXJzZXQpKX12YXIgeT1mLmpvaW4odS5kZWxpbWl0ZXIpLG09ITA9PT11LmFkZFF1ZXJ5UHJlZml4PyI/IjoiIjtyZXR1cm4gdS5jaGFyc2V0U2VudGluZWwmJigiaXNvLTg4NTktMSI9PT11LmNoYXJzZXQ/bSs9InV0Zjg9JTI2JTIzMTAwMDMlM0ImIjptKz0idXRmOD0lRTIlOUMlOTMmIikseS5sZW5ndGg+MD9tK3k6IiJ9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMjAwKSxvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksaT1BcnJheS5pc0FycmF5LGE9e2FsbG93RG90czohMSxhbGxvd1Byb3RvdHlwZXM6ITEsYXJyYXlMaW1pdDoyMCxjaGFyc2V0OiJ1dGYtOCIsY2hhcnNldFNlbnRpbmVsOiExLGNvbW1hOiExLGRlY29kZXI6ci5kZWNvZGUsZGVsaW1pdGVyOiImIixkZXB0aDo1LGlnbm9yZVF1ZXJ5UHJlZml4OiExLGludGVycHJldE51bWVyaWNFbnRpdGllczohMSxwYXJhbWV0ZXJMaW1pdDoxZTMscGFyc2VBcnJheXM6ITAscGxhaW5PYmplY3RzOiExLHN0cmljdE51bGxIYW5kbGluZzohMX0scz1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC8mIyhcZCspOy9nLChmdW5jdGlvbihlLHQpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KHQsMTApKX0pKX0sdT1mdW5jdGlvbihlLHQpe3JldHVybiBlJiYic3RyaW5nIj09PXR5cGVvZiBlJiZ0LmNvbW1hJiZlLmluZGV4T2YoIiwiKT4tMT9lLnNwbGl0KCIsIik6ZX0sYz1mdW5jdGlvbihlLHQsbixyKXtpZihlKXt2YXIgaT1uLmFsbG93RG90cz9lLnJlcGxhY2UoL1wuKFteLltdKykvZywiWyQxXSIpOmUsYT0vKFxbW15bXF1dKl0pL2cscz1uLmRlcHRoPjAmJi8oXFtbXltcXV0qXSkvLmV4ZWMoaSksYz1zP2kuc2xpY2UoMCxzLmluZGV4KTppLGw9W107aWYoYyl7aWYoIW4ucGxhaW5PYmplY3RzJiZvLmNhbGwoT2JqZWN0LnByb3RvdHlwZSxjKSYmIW4uYWxsb3dQcm90b3R5cGVzKXJldHVybjtsLnB1c2goYyl9Zm9yKHZhciBmPTA7bi5kZXB0aD4wJiZudWxsIT09KHM9YS5leGVjKGkpKSYmZjxuLmRlcHRoOyl7aWYoZis9MSwhbi5wbGFpbk9iamVjdHMmJm8uY2FsbChPYmplY3QucHJvdG90eXBlLHNbMV0uc2xpY2UoMSwtMSkpJiYhbi5hbGxvd1Byb3RvdHlwZXMpcmV0dXJuO2wucHVzaChzWzFdKX1yZXR1cm4gcyYmbC5wdXNoKCJbIitpLnNsaWNlKHMuaW5kZXgpKyJdIiksZnVuY3Rpb24oZSx0LG4scil7Zm9yKHZhciBvPXI/dDp1KHQsbiksaT1lLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYSxzPWVbaV07aWYoIltdIj09PXMmJm4ucGFyc2VBcnJheXMpYT1bXS5jb25jYXQobyk7ZWxzZXthPW4ucGxhaW5PYmplY3RzP09iamVjdC5jcmVhdGUobnVsbCk6e307dmFyIGM9IlsiPT09cy5jaGFyQXQoMCkmJiJdIj09PXMuY2hhckF0KHMubGVuZ3RoLTEpP3Muc2xpY2UoMSwtMSk6cyxsPXBhcnNlSW50KGMsMTApO24ucGFyc2VBcnJheXN8fCIiIT09Yz8haXNOYU4obCkmJnMhPT1jJiZTdHJpbmcobCk9PT1jJiZsPj0wJiZuLnBhcnNlQXJyYXlzJiZsPD1uLmFycmF5TGltaXQ/KGE9W10pW2xdPW86YVtjXT1vOmE9ezA6b319bz1hfXJldHVybiBvfShsLHQsbixyKX19O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBhO2lmKG51bGwhPT1lLmRlY29kZXImJnZvaWQgMCE9PWUuZGVjb2RlciYmImZ1bmN0aW9uIiE9PXR5cGVvZiBlLmRlY29kZXIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVjb2RlciBoYXMgdG8gYmUgYSBmdW5jdGlvbi4iKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBlLmNoYXJzZXQmJiJ1dGYtOCIhPT1lLmNoYXJzZXQmJiJpc28tODg1OS0xIiE9PWUuY2hhcnNldCl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgY2hhcnNldCBvcHRpb24gbXVzdCBiZSBlaXRoZXIgdXRmLTgsIGlzby04ODU5LTEsIG9yIHVuZGVmaW5lZCIpO3ZhciB0PSJ1bmRlZmluZWQiPT09dHlwZW9mIGUuY2hhcnNldD9hLmNoYXJzZXQ6ZS5jaGFyc2V0O3JldHVybnthbGxvd0RvdHM6InVuZGVmaW5lZCI9PT10eXBlb2YgZS5hbGxvd0RvdHM/YS5hbGxvd0RvdHM6ISFlLmFsbG93RG90cyxhbGxvd1Byb3RvdHlwZXM6ImJvb2xlYW4iPT09dHlwZW9mIGUuYWxsb3dQcm90b3R5cGVzP2UuYWxsb3dQcm90b3R5cGVzOmEuYWxsb3dQcm90b3R5cGVzLGFycmF5TGltaXQ6Im51bWJlciI9PT10eXBlb2YgZS5hcnJheUxpbWl0P2UuYXJyYXlMaW1pdDphLmFycmF5TGltaXQsY2hhcnNldDp0LGNoYXJzZXRTZW50aW5lbDoiYm9vbGVhbiI9PT10eXBlb2YgZS5jaGFyc2V0U2VudGluZWw/ZS5jaGFyc2V0U2VudGluZWw6YS5jaGFyc2V0U2VudGluZWwsY29tbWE6ImJvb2xlYW4iPT09dHlwZW9mIGUuY29tbWE/ZS5jb21tYTphLmNvbW1hLGRlY29kZXI6ImZ1bmN0aW9uIj09PXR5cGVvZiBlLmRlY29kZXI/ZS5kZWNvZGVyOmEuZGVjb2RlcixkZWxpbWl0ZXI6InN0cmluZyI9PT10eXBlb2YgZS5kZWxpbWl0ZXJ8fHIuaXNSZWdFeHAoZS5kZWxpbWl0ZXIpP2UuZGVsaW1pdGVyOmEuZGVsaW1pdGVyLGRlcHRoOiJudW1iZXIiPT09dHlwZW9mIGUuZGVwdGh8fCExPT09ZS5kZXB0aD8rZS5kZXB0aDphLmRlcHRoLGlnbm9yZVF1ZXJ5UHJlZml4OiEwPT09ZS5pZ25vcmVRdWVyeVByZWZpeCxpbnRlcnByZXROdW1lcmljRW50aXRpZXM6ImJvb2xlYW4iPT09dHlwZW9mIGUuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzP2UuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzOmEuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzLHBhcmFtZXRlckxpbWl0OiJudW1iZXIiPT09dHlwZW9mIGUucGFyYW1ldGVyTGltaXQ/ZS5wYXJhbWV0ZXJMaW1pdDphLnBhcmFtZXRlckxpbWl0LHBhcnNlQXJyYXlzOiExIT09ZS5wYXJzZUFycmF5cyxwbGFpbk9iamVjdHM6ImJvb2xlYW4iPT09dHlwZW9mIGUucGxhaW5PYmplY3RzP2UucGxhaW5PYmplY3RzOmEucGxhaW5PYmplY3RzLHN0cmljdE51bGxIYW5kbGluZzoiYm9vbGVhbiI9PT10eXBlb2YgZS5zdHJpY3ROdWxsSGFuZGxpbmc/ZS5zdHJpY3ROdWxsSGFuZGxpbmc6YS5zdHJpY3ROdWxsSGFuZGxpbmd9fSh0KTtpZigiIj09PWV8fG51bGw9PT1lfHwidW5kZWZpbmVkIj09PXR5cGVvZiBlKXJldHVybiBuLnBsYWluT2JqZWN0cz9PYmplY3QuY3JlYXRlKG51bGwpOnt9O2Zvcih2YXIgbD0ic3RyaW5nIj09PXR5cGVvZiBlP2Z1bmN0aW9uKGUsdCl7dmFyIG4sYz17fSxsPXQuaWdub3JlUXVlcnlQcmVmaXg/ZS5yZXBsYWNlKC9eXD8vLCIiKTplLGY9dC5wYXJhbWV0ZXJMaW1pdD09PTEvMD92b2lkIDA6dC5wYXJhbWV0ZXJMaW1pdCxkPWwuc3BsaXQodC5kZWxpbWl0ZXIsZikscD0tMSxoPXQuY2hhcnNldDtpZih0LmNoYXJzZXRTZW50aW5lbClmb3Iobj0wO248ZC5sZW5ndGg7KytuKTA9PT1kW25dLmluZGV4T2YoInV0Zjg9IikmJigidXRmOD0lRTIlOUMlOTMiPT09ZFtuXT9oPSJ1dGYtOCI6InV0Zjg9JTI2JTIzMTAwMDMlM0IiPT09ZFtuXSYmKGg9Imlzby04ODU5LTEiKSxwPW4sbj1kLmxlbmd0aCk7Zm9yKG49MDtuPGQubGVuZ3RoOysrbilpZihuIT09cCl7dmFyIHYsZyx5PWRbbl0sbT15LmluZGV4T2YoIl09IiksYj0tMT09PW0/eS5pbmRleE9mKCI9Iik6bSsxOy0xPT09Yj8odj10LmRlY29kZXIoeSxhLmRlY29kZXIsaCwia2V5IiksZz10LnN0cmljdE51bGxIYW5kbGluZz9udWxsOiIiKToodj10LmRlY29kZXIoeS5zbGljZSgwLGIpLGEuZGVjb2RlcixoLCJrZXkiKSxnPXIubWF5YmVNYXAodSh5LnNsaWNlKGIrMSksdCksKGZ1bmN0aW9uKGUpe3JldHVybiB0LmRlY29kZXIoZSxhLmRlY29kZXIsaCwidmFsdWUiKX0pKSksZyYmdC5pbnRlcnByZXROdW1lcmljRW50aXRpZXMmJiJpc28tODg1OS0xIj09PWgmJihnPXMoZykpLHkuaW5kZXhPZigiW109Iik+LTEmJihnPWkoZyk/W2ddOmcpLG8uY2FsbChjLHYpP2Nbdl09ci5jb21iaW5lKGNbdl0sZyk6Y1t2XT1nfXJldHVybiBjfShlLG4pOmUsZj1uLnBsYWluT2JqZWN0cz9PYmplY3QuY3JlYXRlKG51bGwpOnt9LGQ9T2JqZWN0LmtleXMobCkscD0wO3A8ZC5sZW5ndGg7KytwKXt2YXIgaD1kW3BdLHY9YyhoLGxbaF0sbiwic3RyaW5nIj09PXR5cGVvZiBlKTtmPXIubWVyZ2UoZix2LG4pfXJldHVybiByLmNvbXBhY3QoZil9fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4odCxyKXtyZXR1cm4gZS5leHBvcnRzPW49T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LG4odCxyKX1lLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCk7bigzOSksbig4Myksbig4NCksbigxMDcpLG4oNTkpLG4oMjkpO3ZhciByPW4oNSksbz1uLm4ociksaT1uKDcwKSxhPW4oNTQpLHM9bi5uKGEpLHU9bigyMDYpLGM9bi5uKHUpLGw9KG4oMzYpLG4oMzcpLG4oNTYpLG4oMTgyKSxuKDcyKSxuKDU4KSxuKDY5KSxuKDU1KSxuKDE2MSksbigxNTgpLG4oMjE5KSxuKDg1KSxuKDU3KSxuKDEwOSksbigzMiksbigxMjgpLG4oNzMpLG4oMTkpKSxmPW4ubihsKSxkPW4oNTIpLHA9bi5uKGQpLGg9bigwKSx2PW4oMSksZz1uKDUzKSx5PW4oMzgpLG09bigxNyksYj1uKDExKSx3PW4oMTYpO2Z1bmN0aW9uIE8oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIF8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/TyhPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe28oKShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6TyhPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBFKCl7cmV0dXJuW3tpZDoiYTc5Mzk4OWUtZGM2OS00OGMzLWJmM2ItMTZlNzEyNDJjYzcwIix0eXBlOiJ0ZXh0IixzZW5kZXI6InZpc2l0b3IiLGlzRGVsaXZlcmVkOiEwLGlkRnJvbVNlcnZlcjoyODc3NjcxMSxjb250ZW50Ok9iamVjdCh3LmMpKCJIaSBhZ2FpbiIpLHRpbWVfc2VudDpEYXRlLm5vdygpLzFlMy0zNjB9LHtpZDoiNjM0Zjc5YmEtMTc5NC00MTg0LWI1ZTYtMzAzZDkzNGNiYTUwIix0eXBlOiJ0ZXh0IixzZW5kZXI6InZpc2l0b3IiLGlzRGVsaXZlcmVkOiEwLGlkRnJvbVNlcnZlcjoyODc3NjcxMixjb250ZW50Ok9iamVjdCh3LmMpKCJEbyB5b3UgaGF2ZSB0aG9zZSIpLHRpbWVfc2VudDpEYXRlLm5vdygpLzFlMy0zMDB9LHtpZDoiZjcyYjE1ZDEtNGNjZi00ODkxLTlmMTEtZWE4MmI1MmIyZDAyIixpZEZyb21TZXJ2ZXI6Mjg3NzY3MTQsdHlwZToidGV4dCIsY29udGVudDpPYmplY3Qody5jKSgiSGVsbG8iKSxzZW5kZXI6Im9wZXJhdG9yIixvcGVyYXRvcl9pZDpudWxsLHRpbWVfc2VudDpEYXRlLm5vdygpLzFlMy0yNDB9LHtpZDoiODUxOWNiNjEtODNlZS00MmZkLWJkYzMtMWJhZWExMzE2MGI2Iix0eXBlOiJ0ZXh0IixzZW5kZXI6InZpc2l0b3IiLGlzRGVsaXZlcmVkOiEwLGlkRnJvbVNlcnZlcjoyODc3NjcxNSxjb250ZW50Ok9iamVjdCh3LmMpKCJJJ3ZlIGJlZW4gbG9va2luZyBmb3IiKSx0aW1lX3NlbnQ6RGF0ZS5ub3coKS8xZTMtMTgwfSx7aWQ6IjVkNDgyODUwLWU0ODAtNGE0OS05YWU2LTlmYjIwODlmNzE0OSIsaWRGcm9tU2VydmVyOjI4Nzc2NzE2LHR5cGU6InRleHQiLGNvbnRlbnQ6T2JqZWN0KHcuYykoIkxldCBtZSBjaGVjayB0aGF0Iiksc2VuZGVyOiJvcGVyYXRvciIsb3BlcmF0b3JfaWQ6bnVsbCx0aW1lX3NlbnQ6RGF0ZS5ub3coKS8xZTMtMTIwfSx7aWQ6ImQ4NGNmNjE1LTAxNWMtNDczMi1iMjhlLWYyNzQ0Nzk5N2JhZiIsdHlwZToidGV4dCIsc2VuZGVyOiJ2aXNpdG9yIixpc0RlbGl2ZXJlZDohMCxpZEZyb21TZXJ2ZXI6Mjg3NzY3MTcsY29udGVudDpPYmplY3Qody5jKSgiVGhhdCdzIGdyZWF0ISIpLHRpbWVfc2VudDpEYXRlLm5vdygpLzFlMy02MH0se2lkOiIyMjU5N2M4MS1hMzJiLTRmMDktOWE4Ni0xMGFmZDgyODY1YzkiLHR5cGU6InRleHQiLHNlbmRlcjoidmlzaXRvciIsaXNEZWxpdmVyZWQ6ITAsaWRGcm9tU2VydmVyOjI4Nzc2NzE4LGNvbnRlbnQ6T2JqZWN0KHcuYykoIlRoYW5rIHlvdSB2ZXJ5IG11Y2ghIiksdGltZV9zZW50OkRhdGUubm93KCkvMWUzfV19dmFyIEM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiJvcGVyYXRvciI9PT1lLnNlbmRlcj9fKF8oe30sZSkse30se29wZXJhdG9yX2lkOnR9KTplfSkpfSxTPShuKDE3NCksZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4ib25Db252ZXJzYXRpb25TdGFydCI9PT1lLnR5cGUmJmUucGF5bG9hZCYmKCExPT09ZS5wYXlsb2FkLmRpc2FibGVkfHwidW5kZWZpbmVkIj09PXR5cGVvZiBlLnBheWxvYWQuZGlzYWJsZWQpfSkpLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucGF5bG9hZCYmInVuZGVmaW5lZCIhPT10eXBlb2YgZS5wYXlsb2FkLnBvc2l0aW9uJiZ0LnBheWxvYWQmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHQucGF5bG9hZC5wb3NpdGlvbj9lLnBheWxvYWQucG9zaXRpb24tdC5wYXlsb2FkLnBvc2l0aW9uOjB9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm57dHJpZ2dlcklkOmUudHJpZ2dlcl9pZCxkaXNwbGF5TmFtZTplLnBheWxvYWQuZGlzcGxheV9uYW1lLG9mZmxpbmVEaXNhYmxlZDplLnBheWxvYWQub2ZmbGluZV9kaXNhYmxlZCxib3RBcHBJZHM6ZS5wYXlsb2FkLmJvdF9hcHBfaWRzfHxbXX19KSl9KSxrPW4oNykseD1uKDMpO2Z1bmN0aW9uIEEoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGooZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/QShPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe28oKShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6QShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX12YXIgVD17YXJlRW5hYmxlZDohMSxvcHRpb25zOltdfSxQPXtyZWNvbm5lY3RBdHRlbXB0Q291bnQ6MCxwcmV2aWV3TW9kZTohMSxpc01vdW50ZWQ6ITEsaXNNb2JpbGU6ITEsaXNQcm9qZWN0T25saW5lOiExLHZpZXc6eC5oLkNMT1NFRCxzaG93T3B0aW9uc0Ryb3Bkb3duOiExLG5vdGlmaWNhdGlvblNub296ZWQ6ITEsbWVzc2FnZXM6W10sYmxvY2tlZE1lc3NhZ2U6bnVsbCx1bnJlYWRNZXNzYWdlczowLHByZUNoYXQ6e2lzRmlsbGVkOiExLGRhdGE6bnVsbH0scm91dGluZ1J1bGVzOlQsc2VsZWN0ZWREZXBhcnRtZW50Om51bGwsb3BlcmF0b3JzOltdLGJvdHM6W10sZ2V0U3RhcnRlZEFjdGl2ZTohMSxpc0JvdEFjdGl2ZTohMSxhc3NpZ25lZE9wZXJhdG9yczpbXSxvcGVyYXRvcklzVHlwaW5nOiExLGNoYXRJZnJhbWVTdHlsZXM6e3dpZGdldFBvc2l0aW9uOiJyaWdodCIsaWZyYW1lVmlldzp4LmEuT05MWV9CVUJCTEUsZGltZW5zaW9uczpudWxsfSxzaWRlYmFySWZyYW1lU3R5bGVzOiExLGhpZGVXaGVuT2ZmbGluZTohMSxwdWJsaWNLZXk6T2JqZWN0KHYuaCkoKSx0aWRpb0lkZW50aWZ5RGF0YTohMSx0aWRpb0lkZW50aWZ5Q2hhbmdlZDohMSx2aXNpdG9yOnt9LHdpZGdldENvbG9yOlsiIzJhMjdkYSIsIiMwMGNjZmYiLCIjZmZmIiwiIzAwNGRmZiJdLGJhbm5lckltYWdlOiIiLG5ld01lc3NhZ2VFbW9qaTpudWxsLGlzRW1vamlQYW5lbFZpc2libGU6ITEsc2VuZFZpc2l0b3JNZXNzYWdlRmxhZzohMSxhbGVydDp7Y29udGVudDoiIixpc1Zpc2libGU6ITF9LHNob3dCcmFuZGluZzohMCxoaWRlSGVhZGVyOiExLG1vYmlsZUJ1dHRvblNpemU6eC5lLkxBUkdFLGRpc2FibGVCb3RzQnV0dG9uQW5pbWF0aW9uOiExLHdpZGdldExhYmVsU3RhdHVzOiExLG1vYmlsZUhhc2g6ITAsYWxsb3dBdHRhY2htZW50czohMCxzaG93T2xkTWVzc2FnZXM6ITEsc2hvd01lc3NhZ2VzQnV0dG9uQ2xpY2tlZFRpbWVzdGFtcDpudWxsLGlzRHJhZ0FuZERyb3BBY3RpdmU6ITEsc2hvd1VzZXJEYXRhTW9kYWw6ITEscGxhdGZvcm06eC5nLk9USEVSUyxpc1NvdW5kRW5hYmxlZDohMCxpc1BhZ2VWaXNpYmxlOiEwLGlzQXdlc29tZUlmcmFtZTohMSxwb3B1cEltYWdlU3JjOiIiLG1lc3NhZ2VGb3JGbHk6bnVsbCxpbXBvcnRlZE9sZFdpZGdldERhdGE6ITEsZGlzYWJsZVRleHRJbnB1dDohMSxzYXRpc2ZhY3Rpb25TdXJ2ZXk6e30sY3VzdG9tQnJhbmRpbmc6IiIscHJlY2hhdFN1YnNjcmlwdGlvbkNoZWNrYm94RGVmYXVsdFZhbHVlOiExLHZlcnNpb246NTh9O2Z1bmN0aW9uIEkoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06UCx0PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwO3N3aXRjaCh0LnR5cGUpe2Nhc2UgaC5xOnJldHVybiBqKGooe30sZSkse30se3Zpc2l0b3I6aih7fSx0LnZpc2l0b3JEYXRhKX0pO2Nhc2UgaC5EOnJldHVybiBqKGooe30sZSkse30se3Zpc2l0b3I6aihqKHt9LGUudmlzaXRvciksT2JqZWN0KGcuYSkoKSl9KTtjYXNlIGguSDpyZXR1cm4gaihqKHt9LHQuc3RhdGUpLHt9LHtpc1BhZ2VWaXNpYmxlOmUuaXNQYWdlVmlzaWJsZSx2aXNpdG9yOmooaih7fSx0LnN0YXRlLnZpc2l0b3IpLHt9LHtpc19jaGF0X29uX3NpdGU6ZS52aXNpdG9yLmlzX2NoYXRfb25fc2l0ZX0pfSk7Y2FzZSBoLnU6cmV0dXJuIGooaih7fSxlKSx7fSx7dmlzaXRvcjpqKGooe30sZS52aXNpdG9yKSx7fSx7aWQ6dC52aXNpdG9ySWR9KX0pO2Nhc2UgaC5JOnZhciBuPXQuaWRlbnRpZnlEYXRhLHI9T2JqZWN0KHYuaikobik7cmV0dXJuIHI/aihqKHt9LGUpLHt9LHt0aWRpb0lkZW50aWZ5RGF0YTpqKGooe30sZS50aWRpb0lkZW50aWZ5RGF0YSksciksdGlkaW9JZGVudGlmeUNoYW5nZWQ6ITB9KTplO2Nhc2UgaC52OnZhciBpPXQuZGF0YVRvTWVyZ2UsYT1pLmlkZW50aWZ5RGF0YSxzPU9iamVjdCh2LmopKGEpLHU9T2JqZWN0KHYuZSkodi5nKTtkZWxldGUgdS50YWdzO3ZhciBjPWooaih7fSx1KSxzKTtyZXR1cm4gaihqKHt9LGUpLHt9LHt2aXNpdG9yOmooaih7fSxlLnZpc2l0b3IpLHt9LHtpZDppLmlkfSxjKX0pO2Nhc2UgaC5DYjp2YXIgbD10LmRhdGEud2lkZ2V0X2RhdGEsZD1sLnBvcHVwLE89KGQ9dm9pZCAwPT09ZD97cG9zaXRpb246InJpZ2h0Iixjb2xvcl9iZzpbIiMyMWRiZGIiXX06ZCkucG9zaXRpb24sXz1kLmNvbG9yX2JnLEE9bC5wcmVmb3JtLEk9dm9pZCAwIT09QSYmQSxSPWwucm91dGluZ19ydWxlcyxEPXZvaWQgMD09PVI/VDpSLE49bC5jdXJyZW50X2RlcGFydG1lbnRfaWQsTD1sLmludGVncmF0aW9ucyxGPXZvaWQgMD09PUw/W106TCxNPWwudHJhbnNsYXRpb25zLEI9bC5oaWRlX3doZW5fb2ZmbGluZSxVPXZvaWQgMCE9PUImJkIsej1sLnNpZGViYXIsVj12b2lkIDAhPT16JiZ6LEg9bC5iYW5uZXJfaW1hZ2UsVz12b2lkIDA9PT1IPyIiOkgscT1sLnNob3dCcmFuZGluZywkPXZvaWQgMD09PXF8fHEsWT1sLmJvdHMsRz12b2lkIDA9PT1ZP1tdOlksSz1sLmdldF9zdGFydGVkX2FjdGl2ZSxYPWwud2lkZ2V0X2xhYmVsX3N0YXR1cyxRPWwucGxhdGZvcm0sSj12b2lkIDA9PT1RPyIiOlEsWj1sLndpZGdldF9zb3VuZF9lbmFibGVkLGVlPWwuaXNfYXdlc29tZV9pZnJhbWUsdGU9dm9pZCAwIT09ZWUmJmVlLG5lPWwuYnJhbmRpbmdfbG9nb191cmwscmU9dm9pZCAwPT09bmU/IiI6bmUsb2U9bC5pc190ZXh0X2lucHV0X2Rpc2FibGVkLGllPXQuZGF0YS53aWRnZXRfZGF0YS5tb2JpbGU/dC5kYXRhLndpZGdldF9kYXRhLm1vYmlsZTp7cG9zaXRpb246InJpZ2h0IixzaXplOjEyNX0sYWU9aWUucG9zaXRpb24sc2U9aWUuc2l6ZSx1ZT10LmRhdGEsY2U9dWUudW5yZWFkX21lc3NhZ2VzLGxlPXVlLmFzc2lnbmVkX29wZXJhdG9ycyxmZT12b2lkIDA9PT1sZT9bXTpsZSxkZT11ZS5pc19ib3RfYWN0aXZlO09iamVjdCh3LmIpKE0sZS52aXNpdG9yLmxhbmd8fCIiKTt2YXIgcGU9T2JqZWN0KHYuRCkoKSxoZT0icmlnaHQiO2lmKHBlKWhlPWFlO2Vsc2V7dmFyIHZlPU8uaW5kZXhPZigiLSIpPi0xP08uc3BsaXQoIi0iKVsxXTpPOyJsZWZ0IiE9PXZlJiYicmlnaHQiIT09dmV8fChoZT12ZSl9dmFyIGdlPSExOyFwZSYmViYmVi52aXNpYmxlJiYoZ2U9e3Bvc2l0aW9uOlYucG9zaXRpb24sY29sb3I6Vi5jb2xvcixmb250Q29sb3I6Vi5mb250Q29sb3J8fCIjZmZmIn0pO3ZhciB5ZSxtZSxiZT1PYmplY3Qodi53KShfKSx3ZT0ib25saW5lIj09PXQuZGF0YS5wcm9qZWN0X3N0YXR1cyxPZT10LmRhdGEub3BlcmF0b3JzLF9lPXZvaWQgMD09PU9lP1tdOk9lLEVlPV9lLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJue2lkOmUuaWQsaXNPbmxpbmU6ZS5pc19vbmxpbmUsbmFtZTplLm5hbWUsYXZhdGFyU3JjOmUuaW1hZ2V9fSkpLENlPWUubWVzc2FnZXMsU2U9bnVsbCxrZT1lLnByZUNoYXQuaXNGaWxsZWQ7aWYoSSl7aWYoIUkuZGlzcGxheXx8SS5maWVsZHMmJjA9PT1JLmZpZWxkcy5sZW5ndGgpe1NlPW51bGw7dHJ5e3ZhciB4ZT1PYmplY3QoeS5lKShlLCJwcmVDaGF0IiksQWU9IWUucHJlQ2hhdC5pc0ZpbGxlZCYmeGU+LTE7QWUmJihDZT1PYmplY3Qodi5lKShlLm1lc3NhZ2VzKSkuc3BsaWNlKHhlLDEpfWNhdGNoKEd0KXt9fWVsc2V7U2U9e2ZpZWxkczpJLmZpZWxkc307dmFyIGplPU9iamVjdChtLmYpKCksVGU9Ri5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBqZS5pbmNsdWRlcyhlLnBsYXRmb3JtKX0pKTtUZS5sZW5ndGg+MCYmU2UuZmllbGRzLnB1c2goe3R5cGU6InNpZ25VcE5ld3NsZXR0ZXIiLHZhbHVlOlRlLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm5bXS5jb25jYXQocCgpKGUpLFt0LnBsYXRmb3JtXSl9KSxbXSl9KX1lLnJvdXRpbmdSdWxlcy5hcmVFbmFibGVkJiYhTiYmKGtlPSExKX1zd2l0Y2goc2Upe2Nhc2UgMTAwOnllPXguZS5NRURJVU07YnJlYWs7Y2FzZSA3NTp5ZT14LmUuU01BTEw7YnJlYWs7ZGVmYXVsdDp5ZT14LmUuTEFSR0V9c3dpdGNoKEope2Nhc2Ugdi5MLnNob3BpZnk6bWU9eC5nLlNIT1BJRlk7YnJlYWs7Y2FzZSB2Lkwud29yZHByZXNzOm1lPXguZy5XT1JEUFJFU1M7YnJlYWs7Y2FzZSB2Lkwud2l4Om1lPXguZy5XSVg7YnJlYWs7ZGVmYXVsdDptZT14LmcuT1RIRVJTfXZhciBQZT1PYmplY3Qodi56KSgpP1tdOlMoRyk7cmV0dXJuIGooaih7fSxlKSx7fSx7Y2hhdElmcmFtZVN0eWxlczpqKGooe30sZS5jaGF0SWZyYW1lU3R5bGVzKSx7fSx7d2lkZ2V0UG9zaXRpb246aGV9KSxzaWRlYmFySWZyYW1lU3R5bGVzOmdlLGhpZGVXaGVuT2ZmbGluZTpVLHVucmVhZE1lc3NhZ2VzOmNlLG9wZXJhdG9yczpFZSxib3RzOlBlLGdldFN0YXJ0ZWRBY3RpdmU6Syxpc0JvdEFjdGl2ZTpkZSxhc3NpZ25lZE9wZXJhdG9yczpmZSx3aWRnZXRDb2xvcjpiZSxiYW5uZXJJbWFnZTpXLGlzUHJvamVjdE9ubGluZTp3ZSxtZXNzYWdlczpDZSxwcmVDaGF0Omooaih7fSxlLnByZUNoYXQpLHt9LHtpc0ZpbGxlZDprZSxkYXRhOlNlfSksc2VsZWN0ZWREZXBhcnRtZW50Ok4scm91dGluZ1J1bGVzOkQsc2hvd0JyYW5kaW5nOiQsbW9iaWxlQnV0dG9uU2l6ZTp5ZSx3aWRnZXRMYWJlbFN0YXR1czpYLHBsYXRmb3JtOm1lLGlzU291bmRFbmFibGVkOlosaXNBd2Vzb21lSWZyYW1lOnRlLGlzTW9iaWxlOnBlLGN1c3RvbUJyYW5kaW5nOnJlLGRpc2FibGVUZXh0SW5wdXQ6b2V9KTtjYXNlIGgudDp2YXIgSWU9dC5sYXN0TWVzc2FnZUlkLFJlPXQubWVzc2FnZXNUb01lcmdlLERlPU9iamVjdCh2LmUpKGUubWVzc2FnZXMpO2lmKEllKXt2YXIgTmU9RGUuZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZEZyb21TZXJ2ZXI9PT1JZX0pKTtpZigtMT09PU5lKXt2YXIgTGU9T2JqZWN0KHYuZSkoUmUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChiLmYpKHtkYXRhOmV9KX0pKS5maWx0ZXIodi5PKTtEZT1EZS5jb25jYXQoTGUpfWVsc2V7dmFyIEZlPU9iamVjdCh2LmUpKFJlKS5zbGljZSgxKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoYi5mKSh7ZGF0YTplfSl9KSkuZmlsdGVyKHYuTyk7RGU9W10uY29uY2F0KHAoKShEZS5zbGljZSgwLE5lKzEpKSxwKCkoRmUpKX19ZWxzZSBEZT1PYmplY3Qodi5lKShSZSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KGIuZikoe2RhdGE6ZX0pfSkpLmZpbHRlcih2Lk8pO3JldHVybiBqKGooe30sZSkse30se3VucmVhZE1lc3NhZ2VzOmUudmlldyE9PWsuYS5jbG9zZWQmJmUudmlldyE9PWsuYS5mbHk/MDplLnVucmVhZE1lc3NhZ2VzLG1lc3NhZ2VzOkRlfSk7Y2FzZSBoLmRiOnZhciBNZT0ib25saW5lIj09PXQuc3RhdHVzO3JldHVybiBqKGooe30sZSkse30se2lzUHJvamVjdE9ubGluZTpNZX0pO2Nhc2UgaC5qYjp2YXIgQmUsVWU9dC5zdGF0dXMsemU9T2JqZWN0KHYuRCkoKSxWZT1PYmplY3QobS5nKShlKSxIZT1lLm1lc3NhZ2VzLmxlbmd0aD4wLFdlPU9iamVjdCh5LmspKGUpLHFlPU9iamVjdChtLmspKGUpLCRlPWUudmlldztyZXR1cm4hVmV8fCRlIT09ay5hLmNsb3NlZCYmJGUhPT1rLmEuZmx5fHwoJGU9eC5oLldFTENPTUUpLCRlPT09ay5hLndlbGNvbWUmJihIZSYmIVdlfHx6ZXx8cWUpJiYoJGU9eC5oLkNIQVQpLCRlIT09ay5hLmNoYXR8fEhlJiYhV2V8fHFlfHx6ZXx8KCRlPXguaC5XRUxDT01FKSx6ZSYmJGU9PT1rLmEuY2hhdCYmKCRlPXguaC5DTE9TRUQpLEJlPSRlIT09ay5hLmNsb3NlZHx8VmU/eC5hLkNIQVRfU0laRV8xOmUuc2lkZWJhcklmcmFtZVN0eWxlcz94LmEuT05MWV9TSURFQkFSOnguYS5PTkxZX0JVQkJMRSx6ZSYmKCRlPT09ay5hLndlbGNvbWV8fCRlPT09ay5hLmNoYXQ/KEJlPXguYS5NT0JJTEUsJGU9eC5oLkNIQVQpOiRlPT09ay5hLmZseT9CZT14LmEuRFlOQU1JQzplLnNpZGViYXJJZnJhbWVTdHlsZXM/QmU9eC5hLk9OTFlfU0lERUJBUjooQmU9eC5hLk9OTFlfQlVCQkxFLCJzbWFsbCI9PT1lLm1vYmlsZUJ1dHRvblNpemU/QmU9eC5hLk9OTFlfQlVCQkxFX1NNQUxMOiJtZWRpdW0iPT09ZS5tb2JpbGVCdXR0b25TaXplJiYoQmU9eC5hLk9OTFlfQlVCQkxFX01FRElVTSkpKSxqKGooe30sZSkse30se2lzTW91bnRlZDpVZSxpc01vYmlsZTp6ZSxjaGF0SWZyYW1lU3R5bGVzOmooaih7fSxlLmNoYXRJZnJhbWVTdHlsZXMpLHt9LHtpZnJhbWVWaWV3OkJlfSksdmlldzokZX0pO2Nhc2UgaC5XOnJldHVybiBqKGooe30sZSkse30se2NoYXRJZnJhbWVTdHlsZXM6aihqKHt9LGUuY2hhdElmcmFtZVN0eWxlcykse30se2lmcmFtZVZpZXc6dC5pZnJhbWVWaWV3LGRpbWVuc2lvbnM6dC5kaW1lbnNpb25zfSl9KTtjYXNlIGguaWI6cmV0dXJuIGooaih7fSxlKSx7fSx7d2lkZ2V0Q29sb3I6dC5jb2xvcn0pO2Nhc2UgaC5ROnZhciBZZT10Lm9wZW4sR2U9T2JqZWN0KHkuaykoZSksS2U9T2JqZWN0KG0uaykoZSk7aWYoIVllKXJldHVybiBqKGooe30sZSkse30se3ZpZXc6eC5oLkNMT1NFRH0pO3ZhciBYZT14LmguQ0hBVDtyZXR1cm4gZS5pc01vYmlsZXx8S2V8fCEoMD09PWUubWVzc2FnZXMubGVuZ3RofHxHZSYmMD09PWUudW5yZWFkTWVzc2FnZXMpfHwoWGU9eC5oLldFTENPTUUpLGooaih7fSxlKSx7fSx7dmlldzpYZSx1bnJlYWRNZXNzYWdlczowfSk7Y2FzZSBoLmFiOnJldHVybiBqKGooe30sZSkse30se3Nob3dPcHRpb25zRHJvcGRvd246dC52aXNpYmxlfSk7Y2FzZSBoLlY6cmV0dXJuIGooaih7fSxlKSx7fSx7c2VuZFZpc2l0b3JNZXNzYWdlRmxhZzp0LnNob3VsZFNlbmR9KTtjYXNlIGguWjpyZXR1cm4gaihqKHt9LGUpLHt9LHtub3RpZmljYXRpb25Tbm9vemVkOnQuc3RhdHVzfSk7Y2FzZSBoLno6dmFyIFFlPXQub3BlcmF0b3JJZE9yU3RhdHVzO3JldHVybiBqKGooe30sZSkse30se29wZXJhdG9ySXNUeXBpbmc6UWV9KTtjYXNlIGguYjp2YXIgSmU9ZS52aWV3LFplPWUuaXNQYWdlVmlzaWJsZTtyZXR1cm4gaihqKHt9LGUpLHt9LHttZXNzYWdlczplLm1lc3NhZ2VzLmNvbmNhdCh0Lm1lc3NhZ2UpLHVucmVhZE1lc3NhZ2VzOiFaZXx8SmUhPT1rLmEud2VsY29tZSYmSmUhPT1rLmEuY2hhdD9lLnVucmVhZE1lc3NhZ2VzKzE6MCxvcGVyYXRvcklzVHlwaW5nOiExfSk7Y2FzZSBoLng6dmFyIGV0PXQuZGVwYXJ0bWVudElkLHR0PWUucHJlQ2hhdC5pc0ZpbGxlZCxudD1PYmplY3QoYi5kKShlLnByZUNoYXQuZGF0YSxlLnZpc2l0b3IpO3JldHVybiAwIT09bnQubGVuZ3RofHx0dD9qKGooe30sZSkse30se3NlbGVjdGVkRGVwYXJ0bWVudDpldH0pOmooaih7fSxlKSx7fSx7c2VsZWN0ZWREZXBhcnRtZW50OmV0LHByZUNoYXQ6aihqKHt9LGUucHJlQ2hhdCkse30se2lzRmlsbGVkOiEwfSksc2hvd1VzZXJEYXRhTW9kYWw6ITF9KTtjYXNlIGguQjp2YXIgcnQ9dC5vcGVyYXRvcklkO3JldHVybiBqKGooe30sZSkse30se2Fzc2lnbmVkT3BlcmF0b3JzOmUuYXNzaWduZWRPcGVyYXRvcnMuY29uY2F0KHJ0KX0pO2Nhc2UgaC5BOnZhciBvdD10Lm9wZXJhdG9ySWQsaXQ9ZS5hc3NpZ25lZE9wZXJhdG9ycy5pbmRleE9mKG90KSxhdD1PYmplY3Qodi5lKShlLmFzc2lnbmVkT3BlcmF0b3JzKTtyZXR1cm4gYXQuc3BsaWNlKGl0LDEpLGooaih7fSxlKSx7fSx7YXNzaWduZWRPcGVyYXRvcnM6YXR9KTtjYXNlIGguQzp2YXIgc3Q9dC5zb3VyY2VPcGVyYXRvcklkLHV0PXQudGFyZ2V0T3BlcmF0b3JJZCxjdD1lLmFzc2lnbmVkT3BlcmF0b3JzLmluZGV4T2Yoc3QpLGx0PU9iamVjdCh2LmUpKGUuYXNzaWduZWRPcGVyYXRvcnMpO2x0LnNwbGljZShjdCwxKTt2YXIgZnQ9ZS5hc3NpZ25lZE9wZXJhdG9ycy5pbmRleE9mKHV0KTtyZXR1cm4gZnQ8MCYmKGx0PWx0LmNvbmNhdCh1dCkpLGooaih7fSxlKSx7fSx7YXNzaWduZWRPcGVyYXRvcnM6bHR9KTtjYXNlIGgueTp2YXIgZHQ9dC5vcGVyYXRvcklkLHB0PXQuaXNPbmxpbmUsaHQ9T2JqZWN0KHYuZSkoZS5vcGVyYXRvcnMpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT1kdD9qKGooe30sZSkse30se2lzT25saW5lOnB0fSk6ZX0pKTtyZXR1cm4gaihqKHt9LGUpLHt9LHtvcGVyYXRvcnM6aHR9KTtjYXNlIGgucGI6dmFyIHZ0PXQubW9kYWw7cmV0dXJuIGooaih7fSxlKSx7fSx7c2hvd1VzZXJEYXRhTW9kYWw6dnR9KTtjYXNlIGguSzp2YXIgZ3Q9e307cmV0dXJuIGIuYi5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj10LnVwZGF0ZURhdGFbZV07InVuZGVmaW5lZCIhPT10eXBlb2YgbiYmKGd0PWoobygpKHt9LGUsbiksZ3QpKX0pKSxqKGooe30sZSkse30se3ByZUNoYXQ6aihqKHt9LGUucHJlQ2hhdCkse30se2lzRmlsbGVkOiEwfSksdmlzaXRvcjpqKGooe30sZS52aXNpdG9yKSxndCksc2hvd1VzZXJEYXRhTW9kYWw6ITF9KTtjYXNlIGguSjp2YXIgeXQ9dC5lbWFpbDtyZXR1cm4gaihqKHt9LGUpLHt9LHt2aXNpdG9yOmooaih7fSxlLnZpc2l0b3IpLHt9LHtlbWFpbDp5dH0pLHNob3dVc2VyRGF0YU1vZGFsOiExfSk7Y2FzZSBoLmE6cmV0dXJuIGooaih7fSxlKSx7fSx7bmV3TWVzc2FnZUVtb2ppOnQuZW1vamksaXNFbW9qaVBhbmVsVmlzaWJsZTohMX0pO2Nhc2UgaC5yYjpyZXR1cm4gaihqKHt9LGUpLHt9LHtpc0Vtb2ppUGFuZWxWaXNpYmxlOnQuc3RhdHVzfSk7Y2FzZSBoLkw6dmFyIG10PXQucGF5bG9hZDtyZXR1cm4gbXQuaXNEZWxpdmVyZWQ9ITAsaihqKHt9LGUpLHt9LHttZXNzYWdlczplLm1lc3NhZ2VzLmNvbmNhdChtdCksYmxvY2tlZE1lc3NhZ2U6bnVsbH0pO2Nhc2UgaC53Yjp2YXIgYnQ9dC5wYXlsb2FkO3JldHVybiBidC5maWxlPyhidC5pc0RlbGl2ZXJlZD0hMCxqKGooe30sZSkse30se21lc3NhZ2VzOmUubWVzc2FnZXMuY29uY2F0KGJ0KX0pKTpqKHt9LGUpO2Nhc2UgaC5POnJldHVybiBqKGooe30sZSkse30se2Jsb2NrZWRNZXNzYWdlOnQubWVzc2FnZX0pO2Nhc2UgaC5CYjp2YXIgd3Q9T2JqZWN0KHYuZSkoZS5tZXNzYWdlcyksT3Q9d3QuZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXQubWVzc2FnZUlkfSkpO3JldHVybi0xPT09T3Q/ZTood3RbT3RdLmlzRGVsaXZlcmVkPXQuc3RhdHVzLHd0W090XS5pZEZyb21TZXJ2ZXI9dC5pZEZyb21TZXJ2ZXIsaihqKHt9LGUpLHt9LHttZXNzYWdlczp3dH0pKTtjYXNlIGgudGI6dmFyIF90PU9iamVjdCh2LmUpKGUubWVzc2FnZXMpLEV0PV90LmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC5tZXNzYWdlSWR9KSk7cmV0dXJuIEV0PyhFdC50eXBlPXguZC5VUExPQURFRF9GSUxFLEV0LmF0dGFjaG1lbnRUeXBlPXQuYXR0YWNobWVudFR5cGUsRXQubmFtZT10Lm5hbWUsRXQuZXh0ZW5zaW9uPXQuZXh0ZW5zaW9uLEV0LmNvbnRlbnQ9dC51cmwsRXQudGh1bWI9dC50aHVtYixFdC5maWxlPSIiLEV0LmltYWdlTG9hZGVkPXQuaW1hZ2VMb2FkZWQsaihqKHt9LGUpLHt9LHttZXNzYWdlczpfdH0pKTplO2Nhc2UgaC51Yjp2YXIgQ3Q9T2JqZWN0KHYuZSkoZS5tZXNzYWdlcyksU3Q9Q3QuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT10Lm1lc3NhZ2VJZH0pKTtyZXR1cm4gU3Q/KFN0LmltYWdlTG9hZGVkPSEwLGooaih7fSxlKSx7fSx7bWVzc2FnZXM6Q3R9KSk6ZTtjYXNlIGguWDp2YXIga3Q9T2JqZWN0KHYuZSkoZS5tZXNzYWdlcykseHQ9dC5tZXNzYWdlSWRPckFycmF5T2ZJZHM7QXJyYXkuaXNBcnJheSh4dCl8fCh4dD1beHRdKTt2YXIgQXQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZnVuY3Rpb24obil7aWYoLTE9PT1lLmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT10W25dfSkpKXJldHVybnt2OiExfX0scj0wO3I8dC5sZW5ndGg7cis9MSl7dmFyIG89bihyKTtpZigib2JqZWN0Ij09PWYoKShvKSlyZXR1cm4gby52fXJldHVybiEwfTtyZXR1cm4gQXQoa3QseHQpPyh4dC5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1rdC5maW5kSW5kZXgoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ZX0pKTtrdFt0XS5kaXNhYmxlZD0hMH0pKSxqKGooe30sZSkse30se21lc3NhZ2VzOmt0fSkpOmU7Y2FzZSBoLlA6dmFyIGp0PXQuaXNBY3RpdmU7cmV0dXJuIGooaih7fSxlKSx7fSx7aXNCb3RBY3RpdmU6anR9KTtjYXNlIGguTTp2YXIgVHQ9T2JqZWN0KHYuZSkoZS5tZXNzYWdlcyksUHQ9VHQuZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXQubWVzc2FnZUlkfSkpO3JldHVybi0xPT09UHQ/ZTooVHRbUHRdLmRpc2FibGVkPSEwLFR0W1B0XS5jb250ZW50PXQuY29tbWVudCxqKGooe30sZSkse30se21lc3NhZ2VzOlR0fSkpO2Nhc2UgaC5nYjp2YXIgSXQ9dC52aWV3O3JldHVybiBPYmplY3QudmFsdWVzKGsuYSkuaW5jbHVkZXMoSXQpP2ooaih7fSxlKSx7fSx7dmlldzpJdCx1bnJlYWRNZXNzYWdlczp0LnZpZXc9PT1rLmEuY2hhdD8wOmUudW5yZWFkTWVzc2FnZXN9KTplO2Nhc2UgaC5FYjpyZXR1cm4gaihqKHt9LGUpLHt9LHt2aXNpdG9yOmooaih7fSxlLnZpc2l0b3IpLHQudXBkYXRlRGF0YSl9KTtjYXNlIGgubmI6cmV0dXJuIGooaih7fSxlKSx7fSx7YWxlcnQ6e2lzVmlzaWJsZTohMCxjb250ZW50OnQubWVzc2FnZX19KTtjYXNlIGgubzpyZXR1cm4gaihqKHt9LGUpLHt9LHthbGVydDpqKGooe30sZS5hbGVydCkse30se2lzVmlzaWJsZTohMX0pfSk7Y2FzZSBoLkc6dmFyIFJ0PU9iamVjdCh2LmUpKGUubWVzc2FnZXMpLER0PVJ0LmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT10Lm1lc3NhZ2VJZH0pKTtyZXR1cm4tMT09PUR0P2U6KFJ0LnNwbGljZShEdCwxKSxqKGooe30sZSkse30se21lc3NhZ2VzOlJ0fSkpO2Nhc2UgaC5sOnJldHVybiBqKGooe30sZSkse30se2ltcG9ydGVkT2xkV2lkZ2V0RGF0YTohMH0pO2Nhc2UgaC5jYjppZighT2JqZWN0KHYueSkoKSlyZXR1cm4gZTt2YXIgTnQ9dC5wcm9wLEx0PXQucGF5bG9hZDtpZigicHJldmlld01vZGVFbmFibGVkIj09PU50KXJldHVybiBqKGooe30sZSkse30se3ByZXZpZXdNb2RlOkx0fSk7aWYoImNvbG9yIj09PU50KXJldHVybiBqKGooe30sZSkse30se3dpZGdldENvbG9yOk9iamVjdCh2LncpKEx0KX0pO2lmKCJwb3NpdGlvbiI9PT1OdClyZXR1cm4gaihqKHt9LGUpLHt9LHtjaGF0SWZyYW1lU3R5bGVzOmooaih7fSxlLmNoYXRJZnJhbWVTdHlsZXMpLHt9LHt3aWRnZXRQb3NpdGlvbjpMdC5pbmRleE9mKCItIik+LTE/THQuc3BsaXQoIi0iKVsxXTpMdH0pfSk7aWYoIm9wZXJhdG9ycyI9PT1OdClyZXR1cm4gaihqKHt9LGUpLHt9LHtvcGVyYXRvcnM6THR9KTtpZigidHJhbnNsYXRpb25zIj09PU50KXJldHVybiBPYmplY3Qody5iKShMdCwiZW4iKSxlO2lmKCJiYW5uZXJJbWFnZSI9PT1OdClyZXR1cm4gaihqKHt9LGUpLHt9LHtiYW5uZXJJbWFnZTpMdH0pO2lmKCJoaWRlV2hlbk9mZmxpbmUiPT09TnQpcmV0dXJuIGooaih7fSxlKSx7fSx7aGlkZVdoZW5PZmZsaW5lOkx0fSk7aWYoIndpZGdldExhYmVsU3RhdHVzIj09PU50KXJldHVybiBqKGooe30sZSkse30se3dpZGdldExhYmVsU3RhdHVzOkx0fSk7aWYoIndpZGdldFNvdW5kU3RhdHVzIj09PU50KXJldHVybiBqKGooe30sZSkse30se2lzU291bmRFbmFibGVkOkx0fSk7aWYoImNoYXRPblNpdGUiPT09TnQpcmV0dXJuIGooaih7fSxlKSx7fSx7dmlzaXRvcjpqKGooe30sZS52aXNpdG9yKSx7fSx7aXNfY2hhdF9vbl9zaXRlOkx0fSl9KTtpZigic2lkZWJhciI9PT1OdCl7dmFyIEZ0PSEwLE10PSExLEJ0PXQucGF5bG9hZDtyZXR1cm4gbnVsbCE9PUJ0JiZ2b2lkIDAhPT1CdCYmQnQudmlzaWJsZT9NdD17cG9zaXRpb246QnQucG9zaXRpb24sY29sb3I6QnQuY29sb3IsZm9udENvbG9yOkJ0LmZvbnRDb2xvcn06RnQ9ITEsaihqKHt9LGUpLHt9LHtzaWRlYmFySWZyYW1lU3R5bGVzOk10LGlzTW91bnRlZDpGdH0pfWlmKCJtZXNzYWdlcyI9PT1OdClyZXR1cm4gaihqKHt9LGUpLHt9LHttZXNzYWdlczoiY2xlYXIiPT09THQ/W106THR9KTtpZigicHJlQ2hhdERhdGEiPT09TnQpcmV0dXJuIEx0LnN0YXR1cz9qKGooe30sZSkse30se3Zpc2l0b3I6aihqKHt9LGUudmlzaXRvcikse30se25hbWU6IiIsZW1haWw6IiIscGhvbmU6IiJ9KSxwcmVDaGF0Omooaih7fSxlLnByZUNoYXQpLHt9LHtpc0ZpbGxlZDohMSxkYXRhOntmaWVsZHM6THQuZmllbGRzfX0pfSk6aihqKHt9LGUpLHt9LHtwcmVDaGF0Omooaih7fSxlLnByZUNoYXQpLHt9LHtpc0ZpbGxlZDohMSxkYXRhOm51bGx9KSxzaG93VXNlckRhdGFNb2RhbDohMX0pO2lmKCJyb3V0aW5nUnVsZXMiPT09TnQpcmV0dXJuIGooaih7fSxlKSx7fSx7cm91dGluZ1J1bGVzOkx0fSk7aWYoInByZXZpZXdWaWV3Ij09PU50KXt2YXIgVXQ9THQsenQ9ITAsVnQ9ZS5tZXNzYWdlcyxIdD1rLmEuY2hhdCxXdD1lLnZpc2l0b3I7ImdldHRpbmdTdGFydGVkIj09PVV0PyhWdD1bXSxIdD1rLmEud2VsY29tZSk6InByZWZvcm0iPT09VXQ/V3Q9aihqKHt9LGUudmlzaXRvcikse30se25hbWU6IiIsZW1haWw6IiIscGhvbmU6IiJ9KToiY2xvc2VkIj09PVV0P0h0PWsuYS5jbG9zZWQ6ImZseSI9PT1VdD9IdD1rLmEuZmx5OlZ0PUMoRSgpLGUub3BlcmF0b3JzWzBdLmlkKTt2YXIgcXQ9W2Uub3BlcmF0b3JzWzBdLmlkXTtyZXR1cm4ib3BlcmF0b3JzT2ZmbGluZSI9PT1VdCYmKHp0PSExLHF0PVtdKSxqKGooe30sZSkse30se2lzUHJvamVjdE9ubGluZTp6dCxtZXNzYWdlczpWdCxibG9ja2VkTWVzc2FnZTpudWxsLG5ld01lc3NhZ2VEaXNhYmxlZDohMSxhc3NpZ25lZE9wZXJhdG9yczpxdCx2aXNpdG9yOld0LHZpZXc6SHQsc2hvd1VzZXJEYXRhTW9kYWw6ITF9KX1yZXR1cm4ibWVzc2FnZUZvckZseSI9PT1OdD9qKGooe30sZSkse30se21lc3NhZ2VGb3JGbHk6THR9KToic2hvd0JyYW5kaW5nIj09PU50P2ooaih7fSxlKSx7fSx7c2hvd0JyYW5kaW5nOkx0fSk6ImN1c3RvbUJyYW5kaW5nIj09PU50P2ooaih7fSxlKSx7fSx7Y3VzdG9tQnJhbmRpbmc6THR9KTplO2Nhc2UgaC5wOnJldHVybiBqKGooe30sZSkse30se2hpZGVIZWFkZXI6dC5zdGF0dXN9KTtjYXNlIGgubTpyZXR1cm4gaihqKHt9LGUpLHt9LHtkaXNhYmxlQm90c0J1dHRvbkFuaW1hdGlvbjp0LnN0YXR1c30pO2Nhc2UgaC5VOnJldHVybiBqKGooe30sZSksdC5mZWF0dXJlcyk7Y2FzZSBoLm9iOnJldHVybiBqKGooe30sZSkse30se3Nob3dPbGRNZXNzYWdlczp0LnN0YXR1cyxzaG93TWVzc2FnZXNCdXR0b25DbGlja2VkVGltZXN0YW1wOk1hdGguZmxvb3IoRGF0ZS5ub3coKS8xZTMpfSk7Y2FzZSBoLlQ6cmV0dXJuIGooaih7fSxlKSx7fSx7aXNEcmFnQW5kRHJvcEFjdGl2ZTp0LnN0YXR1c30pO2Nhc2UgaC5iYjpyZXR1cm4gaihqKHt9LGUpLHt9LHtpc1BhZ2VWaXNpYmxlOnQuc3RhdHVzfSk7Y2FzZSBoLkFiOnJldHVybiBqKGooe30sZSkse30se3VucmVhZE1lc3NhZ2VzOjB9KTtjYXNlIGguTjpyZXR1cm4gaihqKHt9LGUpLHt9LHtpc0F3ZXNvbWVJZnJhbWU6dC5zdGF0dXN9KTtjYXNlIGgudzpyZXR1cm4gaihqKHt9LGUpLHt9LHtwb3B1cEltYWdlU3JjOnQuaW1hZ2V9KTtjYXNlIGguaDpyZXR1cm4gaihqKHt9LGUpLHt9LHtwb3B1cEltYWdlU3JjOiIifSk7Y2FzZSBoLlk6cmV0dXJuIGooaih7fSxlKSx7fSx7bWVzc2FnZUZvckZseTp0Lm1lc3NhZ2V9KTtjYXNlIGguRTp2YXIgJHQ9T2JqZWN0KHYuZSkoZS5tZXNzYWdlcyksWXQ9JHQuZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXQubWVzc2FnZUlkfSkpO3JldHVybi0xPT09WXQ/ZTooJHRbWXRdLnJhdGluZz10LnJhdGluZyxqKGooe30sZSkse30se21lc3NhZ2VzOiR0fSkpO2Nhc2UgaC5lYjpyZXR1cm4gaihqKHt9LGUpLHt9LHtyZWNvbm5lY3RBdHRlbXB0Q291bnQ6dC5jb3VudH0pO2Nhc2UgaC5TOnJldHVybiBqKGooe30sZSkse30se2Rpc2FibGVUZXh0SW5wdXQ6dC5zdGF0dXN9KTtjYXNlIGguZmI6cmV0dXJuIGooaih7fSxlKSx7fSx7c2F0aXNmYWN0aW9uU3VydmV5Omooaih7fSxlLnNhdGlzZmFjdGlvblN1cnZleSkse30sbygpKHt9LHQudGhyZWFkSWQsaihqKHt9LHQuY29uZmlnKSx7fSx7bWVzc2FnZUlkOnQubWVzc2FnZUlkfSkpKX0pO2Nhc2UgaC5GOnJldHVybiBqKGooe30sZSkse30se3NhdGlzZmFjdGlvblN1cnZleTpqKGooe30sZS5zYXRpc2ZhY3Rpb25TdXJ2ZXkpLHt9LG8oKSh7fSx0LnRocmVhZElkLGooaih7fSxlLnNhdGlzZmFjdGlvblN1cnZleVt0LnRocmVhZElkXSkse30se3Jlc3BvbnNlOmooaih7fSxlLnNhdGlzZmFjdGlvblN1cnZleVt0LnRocmVhZElkXS5yZXNwb25zZSkse30se3JhdGluZzp0LnJhdGluZ30pfSkpKX0pO2Nhc2UgaC5qOnJldHVybiBqKGooe30sZSkse30se3NhdGlzZmFjdGlvblN1cnZleTpqKGooe30sZS5zYXRpc2ZhY3Rpb25TdXJ2ZXkpLHt9LG8oKSh7fSx0LnRocmVhZElkLGooaih7fSxlLnNhdGlzZmFjdGlvblN1cnZleVt0LnRocmVhZElkXSkse30se3Jlc3BvbnNlOmooaih7fSxlLnNhdGlzZmFjdGlvblN1cnZleVt0LnRocmVhZElkXS5yZXNwb25zZSkse30se2NvbW1lbnQ6dC5jb21tZW50fSl9KSkpfSk7ZGVmYXVsdDpyZXR1cm4gZX19dmFyIFI9big0NSksRD1uLm4oUiksTj1uKDIwOCksTD1uLm4oTiksRj0obigxNDkpLG4oODYpLG4oMTQzKSxuKDI3KSksTT1uLm4oRiksQj1uKDI4KSxVPW4ubihCKSx6PW4oMik7ZnVuY3Rpb24gVihlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0W3R5cGU9J3RleHQnXSwgaW5wdXRbdHlwZT0nZW1haWwnXSIpLG49ZS5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dFt0eXBlPSdwYXNzd29yZCddIik7cmV0dXJuIDE9PT1lLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0W3R5cGU9J2hpZGRlbiddW25hbWU9J2Zvcm1fdHlwZSddW3ZhbHVlPSdjdXN0b21lcl9sb2dpbiddIikubGVuZ3RofHwoImN1c3RvbWVyX2xvZ2luIj09PWUuaWR8fCJsb2dpbiI9PT1lLmlkfHwhKCF0fHwxIT09dC5sZW5ndGh8fCFufHwxIT09bi5sZW5ndGgpKX1mdW5jdGlvbiBIKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbdHlwZT0ndGV4dCddLCBpbnB1dFt0eXBlPSdlbWFpbCddIiksbj1lLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0W3R5cGU9J3Bhc3N3b3JkJ10iKTtyZXR1cm4gMT09PWUucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbdHlwZT0naGlkZGVuJ11bbmFtZT0nZm9ybV90eXBlJ11bdmFsdWU9J2NyZWF0ZV9jdXN0b21lciddIikubGVuZ3RofHwoImNyZWF0ZV9jdXN0b21lciI9PT1lLmlkfHwicmVnaXN0ZXIiPT09ZS5pZHx8KCEhKHQmJnQubGVuZ3RoPj0xJiZuJiYyPT09bi5sZW5ndGgpfHwhIShlLmFjdGlvbiYmInN0cmluZyI9PT10eXBlb2YgZS5hY3Rpb24mJmUuYWN0aW9uLmluZGV4T2YoInJlZ2lzdGVyIik+LTEpKSl9ZnVuY3Rpb24gVyhlKXtyZXR1cm4gMT09PWUucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbdHlwZT0naGlkZGVuJ11bbmFtZT0nZm9ybV90eXBlJ11bdmFsdWU9J3JlY292ZXJfY3VzdG9tZXJfcGFzc3dvcmQnXSIpLmxlbmd0aHx8KCJmb3Jnb3RfcGFzc3dvcmQiPT09ZS5pZHx8ISghZS5hY3Rpb258fCJzdHJpbmciIT09dHlwZW9mIGUuYWN0aW9ufHwhKGUuYWN0aW9uLmluZGV4T2YoImZvcmdvdF9wYXNzd29yZCIpPi0xfHxlLmFjdGlvbi5pbmRleE9mKCJmb3Jnb3QtcGFzc3dvcmQiKT4tMSkpKX12YXIgcT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7TSgpKHRoaXMsZSk7dmFyIG49e2NvbnRhY3RfdmlzaXRlZDp7ZXZlbnROYW1lOiJnZW5lcmljLmNvbnRhY3RfdmlzaXRlZCIsZnVuYzp0aGlzLmNvbnRhY3RWaXNpdGVkfSxsaWtlZF9vbl9mYWNlYm9vazp7ZXZlbnROYW1lOiJnZW5lcmljLmxpa2VkX29uX2ZhY2Vib29rIixmdW5jOnRoaXMubGlrZWRPbkZhY2Vib29rfSx1bmxpa2VkX29uX2ZhY2Vib29rOntldmVudE5hbWU6ImdlbmVyaWMudW5saWtlZF9vbl9mYWNlYm9vayIsZnVuYzp0aGlzLnVuTGlrZWRPbkZhY2Vib29rfSxsb2dnZWRfaW46e2V2ZW50TmFtZToiZ2VuZXJpYy5sb2dnZWRfaW4iLGZ1bmM6dGhpcy5sb2dnZWRJbn0scmVnaXN0ZXJlZDp7ZXZlbnROYW1lOiJnZW5lcmljLnJlZ2lzdGVyZWQiLGZ1bmM6dGhpcy5yZWdpc3RlcmVkfSxmb3Jnb3RfcGFzc3dvcmQ6e2V2ZW50TmFtZToiZ2VuZXJpYy5mb3Jnb3RfcGFzc3dvcmQiLGZ1bmM6dGhpcy5mb3Jnb3RQYXNzd29yZH0sZW1haWxfZmlsbGVkOntldmVudE5hbWU6ImdlbmVyaWMuZW1haWxfZmlsbGVkIixmdW5jOnRoaXMuZW1haWxGaWxsZWR9fTt0aGlzLmluaXRHZW5lcmljRXZlbnRzKHQsbil9cmV0dXJuIFUoKShlLFt7a2V5OiJpbml0R2VuZXJpY0V2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKHIpe2VbdFtyXS5ldmVudE5hbWVdJiYodFtyXS5mdW5jPXRbcl0uZnVuYy5iaW5kKG4pLHRbcl0uZnVuYyh0W3JdLmV2ZW50TmFtZSkpfSkpfX0se2tleToiY29udGFjdFZpc2l0ZWQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PSExLG49T2JqZWN0KHYucCkoKTshdCYmbi5tYXRjaCgvW15hLXpBLVowLTldKGNvbnRhY3R8Y29udGFjdG98Y29udGF0b3xjb250YXR0b3xrb250YWt0KShbXmEtekEtWjAtOV18JCkvKSYmKHQ9ITApLHQmJndpbmRvdy50aWRpb0NoYXRBcGkudHJhY2soZSl9fSx7a2V5OiJsaWtlZE9uRmFjZWJvb2siLHZhbHVlOmZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5wYXJlbnQuRkImJndpbmRvdy5wYXJlbnQuRkIuRXZlbnQmJndpbmRvdy5wYXJlbnQuRkIuRXZlbnQuc3Vic2NyaWJlJiZ3aW5kb3cucGFyZW50LkZCLkV2ZW50LnN1YnNjcmliZSgiZWRnZS5jcmVhdGUiLChmdW5jdGlvbigpe3dpbmRvdy50aWRpb0NoYXRBcGkudHJhY2soZSl9KSl9fSx7a2V5OiJ1bkxpa2VkT25GYWNlYm9vayIsdmFsdWU6ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LnBhcmVudC5GQiYmd2luZG93LnBhcmVudC5GQi5FdmVudCYmd2luZG93LnBhcmVudC5GQi5FdmVudC5zdWJzY3JpYmUmJndpbmRvdy5wYXJlbnQuRkIuRXZlbnQuc3Vic2NyaWJlKCJlZGdlLnJlbW92ZSIsKGZ1bmN0aW9uKCl7d2luZG93LnRpZGlvQ2hhdEFwaS50cmFjayhlKX0pKX19LHtrZXk6ImxvZ2dlZEluIix2YWx1ZTpmdW5jdGlvbihlKXsxPT09T2JqZWN0KHouYSkoImF1dG9tYXRpb25fbG9nZ2VkSW5FeGVjdXRlIikmJih3aW5kb3cudGlkaW9DaGF0QXBpLnRyYWNrKGUpLE9iamVjdCh6LmUpKCJhdXRvbWF0aW9uX2xvZ2dlZEluRXhlY3V0ZSIpKTt2YXIgdD0hMSxuPU9iamVjdCh2LnApKCk7IXQmJm4ubWF0Y2goL1teYS16QS1aMC05XShsb2dpbnxsb2dvd2FuaWV8emFsb2d1anxzaWduaW4pKFteYS16QS1aMC05XXwkKS8pJiYodD0hMCk7dmFyIHI9W10sbz13aW5kb3cucGFyZW50LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKTtpZihvKWZvcih2YXIgaT0wO2k8by5sZW5ndGg7aSs9MSl7dmFyIGE9b1tpXTshVihhKXx8SChhKXx8VyhhKXx8ci5wdXNoKGEpfXQmJnIubGVuZ3RoLHIubGVuZ3RoPjAmJnIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLChmdW5jdGlvbigpezEhPT1PYmplY3Qoei5hKSgiYXV0b21hdGlvbl9sb2dnZWRJbkV4ZWN1dGUiKSYmKE9iamVjdCh6LmcpKCJhdXRvbWF0aW9uX2xvZ2dlZEluRXhlY3V0ZSIsMSksd2luZG93LnRpZGlvQ2hhdEFwaS50cmFjayhlLHt9LChmdW5jdGlvbigpe09iamVjdCh6LmUpKCJhdXRvbWF0aW9uX2xvZ2dlZEluRXhlY3V0ZSIpfSkpKX0pKX0pKX19LHtrZXk6InJlZ2lzdGVyZWQiLHZhbHVlOmZ1bmN0aW9uKGUpezE9PT1PYmplY3Qoei5hKSgiYXV0b21hdGlvbl9yZWdpc3RlcmVkRXhlY3V0ZSIpJiYod2luZG93LnRpZGlvQ2hhdEFwaS50cmFjayhlKSxPYmplY3Qoei5lKSgiYXV0b21hdGlvbl9yZWdpc3RlcmVkRXhlY3V0ZSIpKTt2YXIgdD0hMSxuPU9iamVjdCh2LnApKCk7IXQmJm4ubWF0Y2goL1teYS16QS1aMC05XShyZWdpc3RlcnxyZWplc3RyYWNqYXx6YXJlamVzdHJ1anxzaWdudXApKFteYS16QS1aMC05XXwkKS8pJiYodD0hMCk7dmFyIHI9W10sbz13aW5kb3cucGFyZW50LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKTtpZihvKWZvcih2YXIgaT0wO2k8by5sZW5ndGg7aSs9MSl7dmFyIGE9b1tpXTtWKGEpfHwhSChhKXx8VyhhKXx8ci5wdXNoKGEpfXQmJnIubGVuZ3RoLHIubGVuZ3RoPjAmJnIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLChmdW5jdGlvbigpezEhPT1PYmplY3Qoei5hKSgiYXV0b21hdGlvbl9yZWdpc3RlcmVkRXhlY3V0ZSIpJiYoT2JqZWN0KHouZykoImF1dG9tYXRpb25fcmVnaXN0ZXJlZEV4ZWN1dGUiLDEpLHdpbmRvdy50aWRpb0NoYXRBcGkudHJhY2soZSx7fSwoZnVuY3Rpb24oKXtPYmplY3Qoei5lKSgiYXV0b21hdGlvbl9yZWdpc3RlcmVkRXhlY3V0ZSIpfSkpKX0pKX0pKX19LHtrZXk6ImZvcmdvdFBhc3N3b3JkIix2YWx1ZTpmdW5jdGlvbihlKXsxPT09T2JqZWN0KHouYSkoImF1dG9tYXRpb25fZm9yZ290UGFzc3dvcmRFeGVjdXRlIikmJih3aW5kb3cudGlkaW9DaGF0QXBpLnRyYWNrKGUpLE9iamVjdCh6LmUpKCJhdXRvbWF0aW9uX2ZvcmdvdFBhc3N3b3JkRXhlY3V0ZSIpKTt2YXIgdD0hMSxuPU9iamVjdCh2LnApKCk7IXQmJm4ubWF0Y2goL1teYS16QS1aMC05XShmb3Jnb3QtcGFzc3dvcmR8Zm9yZ290dGVuKShbXmEtekEtWjAtOV18JCkvKSYmKHQ9ITApO3ZhciByPVtdLG89d2luZG93LnBhcmVudC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJmb3JtIik7aWYobylmb3IodmFyIGk9MDtpPG8ubGVuZ3RoO2krPTEpe3ZhciBhPW9baV07VihhKXx8SChhKXx8IVcoYSl8fHIucHVzaChhKX10JiZyLmxlbmd0aCxyLmxlbmd0aD4wJiZyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IiwoZnVuY3Rpb24oKXsxIT09T2JqZWN0KHouYSkoImF1dG9tYXRpb25fZm9yZ290UGFzc3dvcmRFeGVjdXRlIikmJihPYmplY3Qoei5nKSgiYXV0b21hdGlvbl9mb3Jnb3RQYXNzd29yZEV4ZWN1dGUiLDEpLHdpbmRvdy50aWRpb0NoYXRBcGkudHJhY2soZSx7fSwoZnVuY3Rpb24oKXtPYmplY3Qoei5lKSgiYXV0b21hdGlvbl9mb3Jnb3RQYXNzd29yZEV4ZWN1dGUiKX0pKSl9KSl9KSl9fSx7a2V5OiJlbWFpbEZpbGxlZCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj13aW5kb3cucGFyZW50LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0W3R5cGU9J3RleHQnXSwgaW5wdXRbdHlwZT0nZW1haWwnXSIpO2lmKG4pZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKz0xKXt2YXIgbz1uW3JdOygiZW1haWwiPT09by50eXBlfHxvLm5hbWUubWF0Y2goL2VtYWlsfG1haWx8ZS1tYWlsLykpJiZ0LnB1c2gobyl9dC5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGZ1bmN0aW9uKHQpe3ZhciBuO251bGwhPT10JiZ2b2lkIDAhPT10JiZudWxsIT09KG49dC50YXJnZXQpJiZ2b2lkIDAhPT1uJiZuLnZhbHVlJiYvXigoW148PigpXFtcXVwuLDs6XHNAXCJdKyhcLltePD4oKVxbXF1cLiw7OlxzQFwiXSspKil8KFwiLitcIikpQCgoW148PigpW1xdXC4sOzpcc0BcIl0rXC4pK1tePD4oKVtcXVwuLDs6XHNAXCJdezIsfSkkL2kudGVzdCh0LnRhcmdldC52YWx1ZSkmJndpbmRvdy50aWRpb0NoYXRBcGkudHJhY2soZSl9KSl9KSl9fV0pLGV9KCksJD0obigyMTIpLG4oMTI3KSxuKDEyNiksbigxMDUpKSxZPW4ubigkKSxHPShuKDE2MiksbigxNTMpKSxLPW4ubihHKSxYPShuKDE2MyksbigyMTMpLG4oMjIwKSxuKDIwOSkpLFE9bi5uKFgpLEo9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnBhcmVudC5mZXRjaCgiL2NhcnQuanMiLHttZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoiaW5jbHVkZSJ9KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoW2UuanNvbigpLGVdKX0pKS50aGVuKChmdW5jdGlvbihlKXt2YXIgdD1EKCkoZSwyKSxuPXRbMF0scj10WzFdO2lmKDQwMT09PXIuc3RhdHVzKXRocm93IG5ldyBFcnJvcihyLnN0YXR1cyk7aWYoIXIub2t8fCFuKXRocm93IG5ldyBFcnJvcigiRXJyb3IgY29kZSAtICIuY29uY2F0KHIuc3RhdHVzKSk7cmV0dXJuIG59KSl9LFo9big2KTtmdW5jdGlvbiBlZShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gdGUoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/ZWUoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtvKCkoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmVlKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfXZhciBuZSxyZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dmFyIG49dC5kaXNwYXRjaCxyPXQubW9kZTtNKCkodGhpcyxlKSx0aGlzLmRpc3BhdGNoPW4sdGhpcy5tb2RlPXIsdGhpcy5hZGRUb0NhcnQ9dGhpcy5hZGRUb0NhcnQuYmluZCh0aGlzKSx0aGlzLmFkZFRvQ2FydEFqYXg9dGhpcy5hZGRUb0NhcnRBamF4LmJpbmQodGhpcyksdGhpcy5jYXJ0VXBkYXRlZD10aGlzLmNhcnRVcGRhdGVkLmJpbmQodGhpcyksdGhpcy5hYmFuZG9uZWRDYXJ0PXRoaXMuYWJhbmRvbmVkQ2FydC5iaW5kKHRoaXMpLHRoaXMuZ29Ub0NhcnQ9dGhpcy5nb1RvQ2FydC5iaW5kKHRoaXMpLHRoaXMubG9naW49dGhpcy5sb2dpbi5iaW5kKHRoaXMpLHRoaXMucmVtb3ZlRnJvbUNhcnQ9dGhpcy5yZW1vdmVGcm9tQ2FydC5iaW5kKHRoaXMpLHRoaXMucmVtb3ZlRnJvbUNhcnRDbGljaz10aGlzLnJlbW92ZUZyb21DYXJ0Q2xpY2suYmluZCh0aGlzKSx0aGlzLmNyZWF0ZUFjY291bnQ9dGhpcy5jcmVhdGVBY2NvdW50LmJpbmQodGhpcyksdGhpcy5pbml0VHJhY2tpbmc9dGhpcy5pbml0VHJhY2tpbmcuYmluZCh0aGlzKSx0aGlzLnRyYWNrUGF5bWVudENoYXJnZWQ9dGhpcy50cmFja1BheW1lbnRDaGFyZ2VkLmJpbmQodGhpcyksdGhpcy5vdmVycmlkZUZldGNoPXRoaXMub3ZlcnJpZGVGZXRjaC5iaW5kKHRoaXMpLHRoaXMudHJhY2tDYXJ0VG9rZW49dGhpcy50cmFja0NhcnRUb2tlbi5iaW5kKHRoaXMpLHRoaXMuc2F2ZUNhcnRUb2tlbj10aGlzLnNhdmVDYXJ0VG9rZW4uYmluZCh0aGlzKSx0aGlzLmdldENhcnRUb2tlbj10aGlzLmdldENhcnRUb2tlbi5iaW5kKHRoaXMpLHRoaXMudHJhY2tDaGVja291dD10aGlzLnRyYWNrQ2hlY2tvdXQuYmluZCh0aGlzKSx0aGlzLmdvVG9QYXltZW50PXRoaXMuZ29Ub1BheW1lbnQuYmluZCh0aGlzKSx0aGlzLmdvVG9DaGVja291dD10aGlzLmdvVG9DaGVja291dC5iaW5kKHRoaXMpLHRoaXMucmViaW5kRXZlbnRzPXRoaXMucmViaW5kRXZlbnRzLmJpbmQodGhpcyksdGhpcy5pbml0V2l0aG91dGpRdWVyeT10aGlzLmluaXRXaXRob3V0alF1ZXJ5LmJpbmQodGhpcyksdGhpcy5zYXZlQ2FydFZhbHVlPXRoaXMuc2F2ZUNhcnRWYWx1ZS5iaW5kKHRoaXMpLHRoaXMuZ2V0Q2FydFZhbHVlPXRoaXMuZ2V0Q2FydFZhbHVlLmJpbmQodGhpcyksdGhpcy5hZGRUb0NhcmRGaW5pc2hlZD0hMSx0aGlzLnJlYmluZFNob3BpZnlFdmVudHM9MCx0aGlzLnNlbGVjdG9ycz1be3NlbGVjdG9yOiJmb3JtW2FjdGlvbj0nL2NhcnQvYWRkJ10iLGZ1bmM6dGhpcy5hZGRUb0NhcnQsZXZlbnQ6InN1Ym1pdCJ9LHtzZWxlY3RvcjoiZm9ybVthY3Rpb24qPSdhY2NvdW50L2xvZ2luJ10iLGZ1bmM6dGhpcy5sb2dpbixldmVudDoic3VibWl0In0se3NlbGVjdG9yOiJhW2hyZWYqPScvY2FydC9jaGFuZ2UnXSwgdGQgYVtvbmNsaWNrXj0ncmVtb3ZlX2l0ZW0nXSIsZnVuYzp0aGlzLnJlbW92ZUZyb21DYXJ0Q2xpY2ssZXZlbnQ6ImNsaWNrIn0se3NlbGVjdG9yOiJpbnB1dFtuYW1lPWNoZWNrb3V0XSwgYnV0dG9uW25hbWU9Y2hlY2tvdXRdLCBhLmNoZWNrb3V0LWJ1dHRvbiIsZnVuYzp0aGlzLmdvVG9DaGVja291dCxldmVudDoiY2xpY2sifSx7c2VsZWN0b3I6ImZvcm1bYWN0aW9uPScvY2hlY2tvdXQnXSIsZnVuYzp0aGlzLmdvVG9DaGVja291dCxldmVudDoic3VibWl0In0se3NlbGVjdG9yOiIjY29tbWl0LWJ1dHRvbiIsZnVuYzp0aGlzLmdvVG9QYXltZW50LGV2ZW50OiJjbGljayJ9XSx0aGlzLnJvdXRlcz17Y2FydDp3aW5kb3cucGFyZW50LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoIi9jYXJ0Iik+LTEsdGhhbmtZb3U6d2luZG93LnBhcmVudC5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCIvdGhhbmtfeW91Iik+LTEmJjU9PT13aW5kb3cucGFyZW50LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCIvIikubGVuZ3RofSx0aGlzLmVuZHBvaW50cz17Y2FydENoYW5nZToiL2NhcnQvY2hhbmdlIixhZGRUb0NhcnQ6Ii9jYXJ0L2FkZCIsY2xlYXI6Ii9jYXJ0L2NsZWFyIix1cGRhdGU6Ii9jYXJ0L3VwZGF0ZSIsY2hlY2tvdXQ6Ii93YWxsZXRzL2NoZWNrb3V0cyJ9LCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5wYXJlbnQuU2hvcGlmeSYmdGhpcy5pbml0VHJhY2tpbmcoKX1yZXR1cm4gVSgpKGUsW3trZXk6ImluaXRUcmFja2luZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO09iamVjdCh6LmEpKCJhZGRUb0NhcnQiKSYmKE9iamVjdCh6LmUpKCJhZGRUb0NhcnQiKSx0aGlzLnRyYWNrRXZlbnQoImFkZF90b19jYXJ0IikpLHRoaXMucm91dGVzLmNhcnQmJiFPYmplY3Qoei5hKSgicmVtb3ZlRnJvbUNhcnQiKSYmdGhpcy5nb1RvQ2FydCgpLE9iamVjdCh6LmEpKCJyZW1vdmVGcm9tQ2FydCIpJiZ0aGlzLnJlbW92ZUZyb21DYXJ0KCksdGhpcy5jYXJ0QWpheEluaXQoKSx0aGlzLnJlYmluZEV2ZW50cygpLHRoaXMudHJhY2tQYXltZW50Q2hhcmdlZCgpLHdpbmRvdy5wYXJlbnQualF1ZXJ5JiYiZnVuY3Rpb24iPT09dHlwZW9mIHdpbmRvdy5wYXJlbnQualF1ZXJ5KHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQpLmFqYXhTZW5kJiYod2luZG93LnBhcmVudC5qUXVlcnkod2luZG93LnBhcmVudC5kb2N1bWVudCkuYWpheFNlbmQoKGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4hKG51bGw9PT1yfHx2b2lkIDA9PT1yfHwhci5kYXRhKSYmKG51bGwhPT1yJiZ2b2lkIDAhPT1yJiZyLnVybCYmci51cmwuaW5kZXhPZigiL2NhcnQvYWRkLmpzIik+LTEmJmUuYWRkVG9DYXJ0QWpheCgpLCEwKX0pKSx3aW5kb3cucGFyZW50LmpRdWVyeSh3aW5kb3cucGFyZW50LmRvY3VtZW50KS5hamF4Q29tcGxldGUoKGZ1bmN0aW9uKHQsbixyKXtpZihudWxsIT09ciYmdm9pZCAwIT09ciYmci51cmwpe3ZhciBvPXIudXJsO2lmKG8uaW5jbHVkZXMoZS5lbmRwb2ludHMuYWRkVG9DYXJ0KSl7dmFyIGk9bi5nZXRSZXNwb25zZUhlYWRlcigieC1zaG9waWZ5LWdlbmVyYXRlZC1jYXJ0LXRva2VuIik7aSYmZS5zYXZlQ2FydFRva2VuKGkpLGUudHJhY2tDYXJ0VG9rZW4oKSxlLmFkZFRvQ2FydEFqYXgoKSxlLmFkZFRvQ2FyZEZpbmlzaGVkPSEwfShvLmluY2x1ZGVzKGUuZW5kcG9pbnRzLmNhcnRDaGFuZ2UpfHxvLmluY2x1ZGVzKGUuZW5kcG9pbnRzLnVwZGF0ZSl8fG8uaW5jbHVkZXMoZS5lbmRwb2ludHMuY2xlYXIpKSYmZS5nZXRDYXJ0VmFsdWUoKS50aGVuKGUuc2F2ZUNhcnRWYWx1ZSksby5pbmNsdWRlcyhlLmVuZHBvaW50cy5jaGVja291dCkmJm51bGwhPT1uJiZ2b2lkIDAhPT1uJiZuLnJlc3BvbnNlSlNPTiYmZS50cmFja0NoZWNrb3V0KG4ucmVzcG9uc2VKU09OLmNoZWNrb3V0LnRva2VuKSxlLmFkZFRvQ2FyZEZpbmlzaGVkJiZvLmluZGV4T2YoIi9jYXJ0Iik+LTEmJihlLmFkZFRvQ2FyZEZpbmlzaGVkPSExLHNldFRpbWVvdXQoZS5yZWJpbmRFdmVudHMsNzc3KSksby5pbmRleE9mKCIvY2FydC5qcyIpPi0xJiZudWxsIT09biYmdm9pZCAwIT09biYmbi5yZXNwb25zZUpTT04mJk9iamVjdCh6LmcpKCJjYXJ0SXRlbUNvdW50IixuLnJlc3BvbnNlSlNPTi5pdGVtX2NvdW50KX1yZXR1cm4hMH0pKSksdGhpcy5vdmVycmlkZUZldGNoKCl9fSx7a2V5OiJyZWJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMucmViaW5kU2hvcGlmeUV2ZW50cyksdGhpcy5pbml0V2l0aG91dGpRdWVyeSgpfX0se2tleToiaW5pdFdpdGhvdXRqUXVlcnkiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx0aGlzLnNlbGVjdG9ycy5sZW5ndGg7ZSs9MSl7dmFyIHQ9d2luZG93LnBhcmVudC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuc2VsZWN0b3JzW2VdLnNlbGVjdG9yKTtpZih0JiZ0Lmxlbmd0aD4wKWZvcih2YXIgbj0wO248dC5sZW5ndGg7bis9MSl0W25dLnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5zZWxlY3RvcnNbZV0uZXZlbnQsdGhpcy5zZWxlY3RvcnNbZV0uZnVuYywhMCksdFtuXS5hZGRFdmVudExpc3RlbmVyKHRoaXMuc2VsZWN0b3JzW2VdLmV2ZW50LHRoaXMuc2VsZWN0b3JzW2VdLmZ1bmMsITApfWZvcih2YXIgcj13aW5kb3cucGFyZW50LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKSxvPTA7bzxyLmxlbmd0aDtvKz0xKXt2YXIgaT1yW29dLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0W25hbWU9Zm9ybV90eXBlXVt2YWx1ZT1jcmVhdGVfY3VzdG9tZXJdIik7aSYmaS5sZW5ndGg+MCYmKHJbb10ucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3VibWl0Iix0aGlzLmNyZWF0ZUFjY291bnQsITApLHJbb10uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0Iix0aGlzLmNyZWF0ZUFjY291bnQsITApKX19fSx7a2V5OiJ0cmFja0V2ZW50Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ZnVuY3Rpb24oKXt9O2lmKCJhZHZhbmNlZCI9PT10aGlzLm1vZGUpe3ZhciByPU9iamVjdCh6LmEpKCJjYXJ0RGF0YSIpO3QuY2FydEN1cnJlbmN5JiZ0LmNhcnRWYWx1ZSYmT2JqZWN0KHouZykoImNhcnREYXRhIix0KSx3aW5kb3cudGlkaW9DaGF0QXBpLnRyYWNrKCJzaG9waWZ5LiIuY29uY2F0KGUpLHRlKHRlKHt9LHIpLHQpLG4pfX19LHtrZXk6ImNhcnRBamF4SW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9T2JqZWN0KHouYSkoImNhcnRJdGVtQ291bnQiKXx8MDt0fHxPYmplY3Qoei5nKSgiY2FydEl0ZW1Db3VudCIsMCksSigpLnRoZW4oKGZ1bmN0aW9uKG4pe3ZhciByLG89MD09PVtuZXcgUmVnRXhwKC9cL2FjY291bnRcL2xvZ2luKC4qPykvLCJpIiksbmV3IFJlZ0V4cCgvXC9hY2NvdW50XC9yZWdpc3RlciguKj8pLywiaSIpLG5ldyBSZWdFeHAoL1wvY2hhbGxlbmdlKC4qPykvLCJpIiksbmV3IFJlZ0V4cCgvXC9jaGVja291dHMoLio/KS8sImkiKV0ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXN0KHdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZil9KSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKS5sZW5ndGgsaT1udWxsPT09bnx8dm9pZCAwPT09bj92b2lkIDA6bi50b2tlbixhPWkmJihudWxsPT09bnx8dm9pZCAwPT09bj92b2lkIDA6bi5pdGVtX2NvdW50KT4wO3JldHVybiBPYmplY3Qoei5hKSgiZ29Ub0NoZWNrb3V0IikmJm8mJihPYmplY3Qoei5lKSgiZ29Ub0NoZWNrb3V0Iiksbi5pdGVtX2NvdW50JiZlLmFiYW5kb25lZENhcnQoKSxPYmplY3Qoei5nKSgiY2FydEl0ZW1Db3VudCIsMCkpLGkmJmUuc2F2ZUNhcnRUb2tlbihpKSxhJiZlLnRyYWNrQ2FydFRva2VuKCksK3QhPT0rbi5pdGVtX2NvdW50JiZPYmplY3Qoei5nKSgiY2FydEl0ZW1Db3VudCIsbi5pdGVtX2NvdW50KSxudWxsIT09biYmdm9pZCAwIT09biYmbnVsbCE9PShyPW4uYXR0cmlidXRlcykmJnZvaWQgMCE9PXImJnJbIlRpZGlvIFZpc2l0b3IgSWQiXSYmZS5kaXNwYXRjaChPYmplY3QoaC5PYikoKSksdm9pZCAwIT09KG51bGw9PT1ufHx2b2lkIDA9PT1uP3ZvaWQgMDpuLm9yaWdpbmFsX3RvdGFsX3ByaWNlKSYmbnVsbCE9PW4mJnZvaWQgMCE9PW4mJm4uY3VycmVuY3kmJmUuc2F2ZUNhcnRWYWx1ZSh7Y2FydEN1cnJlbmN5Om4uY3VycmVuY3ksY2FydFZhbHVlOm4ub3JpZ2luYWxfdG90YWxfcHJpY2V9KSwhMH0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7fSkpfX0se2tleToiYWRkVG9DYXJ0QWpheCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO09iamVjdCh6LmUpKCJhZGRUb0NhcnQiKSx0aGlzLmdldENhcnRWYWx1ZSgpLnRoZW4oKGZ1bmN0aW9uKHQpe2UudHJhY2tFdmVudCgiYWRkX3RvX2NhcnQiLHQpfSkpfX0se2tleToiYWRkVG9DYXJ0Iix2YWx1ZTpmdW5jdGlvbigpe09iamVjdCh6LmcpKCJhZGRUb0NhcnQiLCEwKSxjbGVhclRpbWVvdXQodGhpcy5yZWJpbmRTaG9waWZ5RXZlbnRzKSx0aGlzLnJlYmluZFNob3BpZnlFdmVudHM9c2V0VGltZW91dCh0aGlzLnJlYmluZEV2ZW50cywxNTAwKX19LHtrZXk6ImNhcnRVcGRhdGVkIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudHJhY2tFdmVudCgiY2FydF91cGRhdGVkIil9fSx7a2V5OiJhYmFuZG9uZWRDYXJ0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudHJhY2tFdmVudCgiYWJhbmRvbmVkX2NhcnQiKX19LHtrZXk6ImdvVG9DYXJ0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudHJhY2tFdmVudCgiZ29fdG9fY2FydCIpfX0se2tleToibG9naW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50cmFja0V2ZW50KCJsb2dpbiIpfX0se2tleToicmVtb3ZlRnJvbUNhcnRDbGljayIsdmFsdWU6ZnVuY3Rpb24oKXtPYmplY3Qoei5nKSgicmVtb3ZlRnJvbUNhcnQiLCEwKX19LHtrZXk6InJlbW92ZUZyb21DYXJ0Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO09iamVjdCh6LmUpKCJyZW1vdmVGcm9tQ2FydCIpLGU/dGhpcy50cmFja0V2ZW50KCJyZW1vdmVfZnJvbV9jYXJ0IixlKTp0aGlzLmdldENhcnRWYWx1ZSgpLnRoZW4oKGZ1bmN0aW9uKGUpe3QudHJhY2tFdmVudCgicmVtb3ZlX2Zyb21fY2FydCIsZSl9KSl9fSx7a2V5OiJjcmVhdGVBY2NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudHJhY2tFdmVudCgiY3JlYXRlX2FjY291bnQiKX19LHtrZXk6InRyYWNrUGF5bWVudENoYXJnZWQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMucm91dGVzLnRoYW5rWW91KXJldHVybiExO3RoaXMudHJhY2tFdmVudCgicGF5bWVudF9jaGFyZ2VkIik7dHJ5e3ZhciBlPXdpbmRvdy5wYXJlbnQuU2hvcGlmeS5jaGVja291dCx0PWUuY3VzdG9tZXJfaWQsbj1lLm9yZGVyX2lkO3QmJm4mJnRoaXMuZGlzcGF0Y2goT2JqZWN0KGguWWMpKHtjdXN0b21lcklkOnQsb3JkZXJJZDpufSkpfWNhdGNoKHIpe09iamVjdChaLmEpKCJQYXltZW50IHRyYWNraW5nIGVycm9yIix7bWVzc2FnZTpudWxsPT09cnx8dm9pZCAwPT09cj92b2lkIDA6ci5tZXNzYWdlfSl9cmV0dXJuITB9fSx7a2V5OiJ0cmFja0NoZWNrb3V0Iix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLmRpc3BhdGNoKE9iamVjdChoLlhjKSh7Y2hlY2tvdXRUb2tlbjplfSkpfX0se2tleToiZ2V0Q2FydFRva2VuIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qoei5hKSgiY2FydFRva2VuIil9fSx7a2V5OiJzYXZlQ2FydFRva2VuIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1PYmplY3Qoei5hKSgiY2FydFRva2VuIik7ZSYmZSE9PXQmJk9iamVjdCh6LmcpKCJjYXJ0VG9rZW4iLGUpfX0se2tleToidHJhY2tDYXJ0VG9rZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXRDYXJ0VG9rZW4oKSx0PU9iamVjdCh6LmEpKCJzZW50Q2FydFRva2VuIik7ZSYmZSE9PXQmJih0aGlzLmRpc3BhdGNoKE9iamVjdChoLldjKSh7Y2FydFRva2VuOmV9KSksT2JqZWN0KHouZykoInNlbnRDYXJ0VG9rZW4iLGUpKX19LHtrZXk6Im92ZXJyaWRlRmV0Y2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0cnl7dmFyIHQ9d2luZG93LnBhcmVudC5mZXRjaDt3aW5kb3cucGFyZW50LmZldGNoPUsoKShZLmEubWFyaygoZnVuY3Rpb24gbigpe3ZhciByLG8saSxhLHMsdSxjLGwsZixkLHAsaCx2LGcseSxtLGIsdyxPLF8sRSxDLFMsayx4LEE9YXJndW1lbnRzO3JldHVybiBZLmEud3JhcCgoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6Zm9yKHI9QS5sZW5ndGgsbz1uZXcgQXJyYXkociksaT0wO2k8cjtpKyspb1tpXT1BW2ldO2lmKGE9b1swXSxzPW9bMV0sInN0cmluZyI9PT10eXBlb2YgYSl7bi5uZXh0PTQ7YnJlYWt9cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLHQuYXBwbHkodm9pZCAwLG8pKTtjYXNlIDQ6aWYoIWEuaW5jbHVkZXMoZS5lbmRwb2ludHMuYWRkVG9DYXJ0KSl7bi5uZXh0PTEzO2JyZWFrfXJldHVybiBuLm5leHQ9Nyx0KGEscyk7Y2FzZSA3OnJldHVybiBjPW4uc2VudCwobD1udWxsPT09Y3x8dm9pZCAwPT09Y3x8bnVsbD09PSh1PWMuaGVhZGVycyl8fHZvaWQgMD09PXU/dm9pZCAwOnUuZ2V0KCJ4LXNob3BpZnktZ2VuZXJhdGVkLWNhcnQtdG9rZW4iKSkmJmUuc2F2ZUNhcnRUb2tlbihsKSxlLnRyYWNrQ2FydFRva2VuKCksZS5hZGRUb0NhcnRBamF4KCksbi5hYnJ1cHQoInJldHVybiIsYyk7Y2FzZSAxMzppZighYS5pbmNsdWRlcyhlLmVuZHBvaW50cy5jaGVja291dCkpe24ubmV4dD0zMTticmVha31yZXR1cm4gbi5uZXh0PTE2LHQoYSxzKTtjYXNlIDE2OmlmKGQ9bi5zZW50LHA9bnVsbD09PWR8fHZvaWQgMD09PWR8fG51bGw9PT0oZj1kLmhlYWRlcnMpfHx2b2lkIDA9PT1mP3ZvaWQgMDpmLmdldCgiY29udGVudC10eXBlIiksbnVsbD09PWR8fHZvaWQgMD09PWR8fCFkLm9rfHxudWxsPT09cHx8dm9pZCAwPT09cHx8IXAuaW5jbHVkZXMoImFwcGxpY2F0aW9uL2pzb24iKSl7bi5uZXh0PTMwO2JyZWFrfXJldHVybiBuLnByZXY9MTksbi5uZXh0PTIyLGQuY2xvbmUoKS5qc29uKCk7Y2FzZSAyMjp2PW4uc2VudCwoZz1udWxsPT09dnx8dm9pZCAwPT09dnx8bnVsbD09PShoPXYuY2hlY2tvdXQpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLnRva2VuKSYmZS50cmFja0NoZWNrb3V0KGcpLG4ubmV4dD0zMDticmVhaztjYXNlIDI3Om4ucHJldj0yNyxuLnQwPW4uY2F0Y2goMTkpLE9iamVjdChaLmEpKCJDaGVja291dCB0cmFja2luZyBlcnJvciIse21lc3NhZ2U6bnVsbD09PW4udDB8fHZvaWQgMD09PW4udDA/dm9pZCAwOm4udDAubWVzc2FnZX0pO2Nhc2UgMzA6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLGQpO2Nhc2UgMzE6aWYoIWEuaW5jbHVkZXMoZS5lbmRwb2ludHMuY2FydENoYW5nZSkpe24ubmV4dD01MDticmVha31yZXR1cm4gbi5uZXh0PTM0LHQoYSxzKTtjYXNlIDM0OmlmKG09bi5zZW50LGI9SlNPTi5wYXJzZShzLmJvZHkpLHc9bnVsbD09PW18fHZvaWQgMD09PW18fG51bGw9PT0oeT1tLmhlYWRlcnMpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmdldCgiY29udGVudC10eXBlIiksbnVsbD09PW18fHZvaWQgMD09PW18fCFtLm9rfHxudWxsPT09d3x8dm9pZCAwPT09d3x8IXcuaW5jbHVkZXMoImFwcGxpY2F0aW9uL2pzb24iKSl7bi5uZXh0PTQ5O2JyZWFrfXJldHVybiBuLnByZXY9Mzgsbi5uZXh0PTQxLG0uY2xvbmUoKS5qc29uKCk7Y2FzZSA0MTpPPW4uc2VudCxfPXtjYXJ0VmFsdWU6Ty5vcmlnaW5hbF90b3RhbF9wcmljZSxjYXJ0Q3VycmVuY3k6Ty5jdXJyZW5jeX0sMD09PU51bWJlcihiLnF1YW50aXR5KT9lLnJlbW92ZUZyb21DYXJ0KF8pOmUuc2F2ZUNhcnRWYWx1ZShfKSxuLm5leHQ9NDk7YnJlYWs7Y2FzZSA0NjpuLnByZXY9NDYsbi50MT1uLmNhdGNoKDM4KSxPYmplY3QoWi5hKSgiQ2FydCBjaGFuZ2UgdHJhY2tpbmcgZXJyb3IiLHttZXNzYWdlOm51bGw9PT1uLnQxfHx2b2lkIDA9PT1uLnQxP3ZvaWQgMDpuLnQxLm1lc3NhZ2V9KTtjYXNlIDQ5OnJldHVybiBuLmFicnVwdCgicmV0dXJuIixtKTtjYXNlIDUwOmlmKCFhLmluY2x1ZGVzKGUuZW5kcG9pbnRzLmNsZWFyKSYmIWEuaW5jbHVkZXMoZS5lbmRwb2ludHMudXBkYXRlKSl7bi5uZXh0PTY4O2JyZWFrfXJldHVybiBuLm5leHQ9NTMsdChhLHMpO2Nhc2UgNTM6aWYoQz1uLnNlbnQsUz1udWxsPT09Q3x8dm9pZCAwPT09Q3x8bnVsbD09PShFPUMuaGVhZGVycyl8fHZvaWQgMD09PUU/dm9pZCAwOkUuZ2V0KCJjb250ZW50LXR5cGUiKSxudWxsPT09Q3x8dm9pZCAwPT09Q3x8IUMub2t8fCEobnVsbCE9PVMmJnZvaWQgMCE9PVMmJlMuaW5jbHVkZXMoImFwcGxpY2F0aW9uL2pzb24iKXx8bnVsbCE9PVMmJnZvaWQgMCE9PVMmJlMuaW5jbHVkZXMoInRleHQvamF2YXNjcmlwdCIpKSl7bi5uZXh0PTY3O2JyZWFrfXJldHVybiBuLnByZXY9NTYsbi5uZXh0PTU5LEMuY2xvbmUoKS5qc29uKCk7Y2FzZSA1OTprPW4uc2VudCx4PXtjYXJ0VmFsdWU6ay5vcmlnaW5hbF90b3RhbF9wcmljZSxjYXJ0Q3VycmVuY3k6ay5jdXJyZW5jeX0sZS5zYXZlQ2FydFZhbHVlKHgpLG4ubmV4dD02NzticmVhaztjYXNlIDY0Om4ucHJldj02NCxuLnQyPW4uY2F0Y2goNTYpLE9iamVjdChaLmEpKCJDYXJ0IHVwZGF0ZS9jbGVhciBlcnJvciIse21lc3NhZ2U6bnVsbD09PW4udDJ8fHZvaWQgMD09PW4udDI/dm9pZCAwOm4udDIubWVzc2FnZX0pO2Nhc2UgNjc6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLEMpO2Nhc2UgNjg6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLHQuYXBwbHkodm9pZCAwLG8pKTtjYXNlIDY5OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSksbixudWxsLFtbMTksMjddLFszOCw0Nl0sWzU2LDY0XV0pfSkpKX1jYXRjaChuKXtPYmplY3QoWi5hKSgiT3ZlcnJpZGUgZmV0Y2ggZXJyb3IiLHttZXNzYWdlOm51bGw9PT1ufHx2b2lkIDA9PT1uP3ZvaWQgMDpuLm1lc3NhZ2V9KX19fSx7a2V5OiJnb1RvUGF5bWVudCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnRyYWNrRXZlbnQoImdvX3RvX3BheW1lbnQiKX19LHtrZXk6ImdvVG9DaGVja291dCIsdmFsdWU6ZnVuY3Rpb24oKXtPYmplY3Qoei5nKSgiZ29Ub0NoZWNrb3V0IiwhMCksdGhpcy50cmFja0V2ZW50KCJnb190b19jaGVja291dCIpfX0se2tleToic2F2ZUNhcnRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jYXJ0VmFsdWUsbj1lLmNhcnRDdXJyZW5jeSxyPU9iamVjdCh6LmEpKCJjYXJ0RGF0YSIpO3ImJnIuY2FydFZhbHVlPT09dHx8KE9iamVjdCh6LmcpKCJjYXJ0RGF0YSIse2NhcnRWYWx1ZTp0LGNhcnRDdXJyZW5jeTpufSksdGhpcy5kaXNwYXRjaChPYmplY3QoaC5OYikoe2NhcnRWYWx1ZTp0LGNhcnRDdXJyZW5jeTpufSkpKX19LHtrZXk6ImdldENhcnRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1LKCkoWS5hLm1hcmsoKGZ1bmN0aW9uIGUoKXt2YXIgdDtyZXR1cm4gWS5hLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLm5leHQ9MixKKCk7Y2FzZSAyOnJldHVybiB0PWUuc2VudCxlLmFicnVwdCgicmV0dXJuIix7Y2FydEN1cnJlbmN5OnQuY3VycmVuY3ksY2FydFZhbHVlOnQub3JpZ2luYWxfdG90YWxfcHJpY2V9KTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKX1dKSxlfSgpLG9lPShuKDExMSksbig4MikpLGllPW4ubihvZSk7dmFyIGFlPWZ1bmN0aW9uKGUpe3RyeXtuZSYmd2luZG93LnBhcmVudC5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsbmUpO3ZhciB0PWllKCkoKGZ1bmN0aW9uKHQpe2UoT2JqZWN0KGguWmIpKHQpKX0pLDJlMyk7bmU9ZnVuY3Rpb24oZSl7dmFyIG49ZS50YXJnZXQ7aWYobiBpbnN0YW5jZW9mIHdpbmRvdy5wYXJlbnQuSFRNTEVsZW1lbnQmJm4uY2xhc3NMaXN0LmNvbnRhaW5zKCJqZGdtLXN0YXIiKSl7dmFyIHI9bi5kYXRhc2V0LmFsdCYmcGFyc2VJbnQobi5kYXRhc2V0LmFsdCwxMCk7Im51bWJlciI9PT10eXBlb2YgciYmWzEsMiwzLDQsNV0uaW5jbHVkZXMocikmJnQocil9fSx3aW5kb3cucGFyZW50LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuZSl9Y2F0Y2gobyl7dmFyIG49KHI9byxCb29sZWFuKHImJiJvYmplY3QiPT09ZigpKHIpJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwociwibWVzc2FnZSIpJiYic3RyaW5nIj09PXR5cGVvZiByLm1lc3NhZ2UpP28ubWVzc2FnZTp2b2lkIDApO09iamVjdChaLmEpKCJydW5Pbkp1ZGdlTWVSYXRpbmdDbGljayBlcnJvciIse21lc3NhZ2U6bn0pfXZhciByfTt2YXIgc2U9ZnVuY3Rpb24oZSl7dHJ5e3ZhciB0PXdpbmRvdy5wYXJlbnQsbj10LmpkZ20scj10LmpkZ21TZXR0aW5ncztpZihyKXt2YXIgbz1yLmNiUmV2U3VibWl0U3VjY2VzcztyLmNiUmV2U3VibWl0U3VjY2Vzcz1mdW5jdGlvbih0KXt2YXIgcj1udWxsPT09bnx8dm9pZCAwPT09bj92b2lkIDA6bi5nZXRGb3JtRGF0YSh0KS5yYXRpbmc7aWYocil7dmFyIGk9cGFyc2VJbnQociwxMCk7WzEsMiwzLDQsNV0uaW5jbHVkZXMoaSkmJmUoT2JqZWN0KGguYWMpKGkpKX1udWxsPT09b3x8dm9pZCAwPT09b3x8byh0KX19fWNhdGNoKGkpe09iamVjdChaLmEpKCJydW5Pbkp1ZGdlTWVSZXZpZXdTZW50IGVycm9yIix7bWVzc2FnZTppIGluc3RhbmNlb2YgRXJyb3I/aS5tZXNzYWdlOnZvaWQgMH0pfX0sdWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxyPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsYT1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCxzPWFyZ3VtZW50cy5sZW5ndGg+ND9hcmd1bWVudHNbNF06dm9pZCAwLHU9YXJndW1lbnRzLmxlbmd0aD41P2FyZ3VtZW50c1s1XTp2b2lkIDA7TSgpKHRoaXMsZSksbygpKHRoaXMsImdldEF1dG9tYXRpb25EYXRhIiwoZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXV0b21hdGlvbnMuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpZ2dlcl9pZD09PWV9KSl9KSksbygpKHRoaXMsImZpbHRlck9mZmxpbmVBdXRvbWF0aW9ucyIsKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIG49dC5nZXRBdXRvbWF0aW9uRGF0YShlKTtyZXR1cm4hIW4mJiFuLnBheWxvYWQub2ZmbGluZV9kaXNhYmxlZH0pKX0pKSx0aGlzLmF1dG9tYXRpb25zPW4sdGhpcy52aXNpdG9ySWQ9cix0aGlzLnByb2plY3RPbmxpbmU9YSx0aGlzLmhpZGVXaGVuT2ZmbGluZT1zLHRoaXMuaXNDaGF0T25TaXRlPXUsdGhpcy5pbnB1dENoYW5nZWQ9dGhpcy5pbnB1dENoYW5nZWQuYmluZCh0aGlzKSx0aGlzLmRpc3BhdGNoPWksdGhpcy5pbml0QXV0b21hdGlvbnModGhpcy5hdXRvbWF0aW9ucyl9cmV0dXJuIFUoKShlLFt7a2V5OiJzZXRWaXNpdG9ySWQiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMudmlzaXRvcklkIT09ZSYmKHRoaXMudmlzaXRvcklkPWUpfX0se2tleToiaW5pdEF1dG9tYXRpb25zIix2YWx1ZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj1bXSxyPSExLG89ITEsaT0wO2k8ZS5sZW5ndGg7aSs9MSlzd2l0Y2goZVtpXS50eXBlKXtjYXNlIm9uQWJhbmRvbmVkRm9ybSI6bi5wdXNoKGVbaV0udHJpZ2dlcl9pZCk7YnJlYWs7Y2FzZSJvblBvaW50ZXJMZWZ0V2luZG93Ijp0LnB1c2goZVtpXS50cmlnZ2VyX2lkKTticmVhaztjYXNlIm9uSnVkZ2VNZVJhdGluZ0NsaWNrIjpyPSEwO2JyZWFrO2Nhc2Uib25KdWRnZU1lUmV2aWV3U2VudCI6bz0hMH10aGlzLnJ1bkxlYXZlV2luZG93KHQpLHRoaXMucnVuTGVhdmVGb3JtKG4pLHImJmFlKHRoaXMuZGlzcGF0Y2gpLG8mJnNlKHRoaXMuZGlzcGF0Y2gpfX0se2tleToiaW5wdXRDaGFuZ2VkIix2YWx1ZTpmdW5jdGlvbigpe09iamVjdCh6LmcpKCJhdXRvbWF0aW9uX2Zvcm1MZWZ0IiwxKX19LHtrZXk6InJ1bkxlYXZlRm9ybSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPWU7aWYodGhpcy5wcm9qZWN0T25saW5lfHwobj10aGlzLmZpbHRlck9mZmxpbmVBdXRvbWF0aW9ucyhlKSksMT09PU9iamVjdCh6LmEpKCJhdXRvbWF0aW9uX2Zvcm1MZWZ0IikmJm4ubGVuZ3RoPjApT2JqZWN0KHouZykoImF1dG9tYXRpb25fZm9ybUxlZnQiLDApLHRoaXMuZXhlY3V0ZShuKTtlbHNlIGZvcih2YXIgcj13aW5kb3cucGFyZW50LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKSxvPTA7bzxyLmxlbmd0aDtvKz0xKXtyW29dLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdCh6LmcpKCJhdXRvbWF0aW9uX2Zvcm1MZWZ0IiwwKX0pKTtmb3IodmFyIGk9cltvXS5xdWVyeVNlbGVjdG9yQWxsKCJ0ZXh0YXJlYSwgc2VsZWN0IiksYT0wO2E8aS5sZW5ndGg7YSs9MSlpW2FdLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHQuaW5wdXRDaGFuZ2VkKCl9KSk7Zm9yKHZhciBzPXJbb10ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQiKSx1PTA7dTxzLmxlbmd0aDt1Kz0xKXN3aXRjaChzW3VdLnR5cGUpe2Nhc2UicGFzc3dvcmQiOmNhc2UiZmlsZSI6c1t1XS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChmdW5jdGlvbigpe3JldHVybiB0LmlucHV0Q2hhbmdlZCgpfSkpO2JyZWFrO2Nhc2UiaGlkZGVuIjpicmVhaztkZWZhdWx0OnNbdV0uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoZnVuY3Rpb24oKXtyZXR1cm4gdC5pbnB1dENoYW5nZWQoKX0pKX19cmV0dXJuITB9fSx7a2V5OiJydW5MZWF2ZVdpbmRvdyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG89dGhpcyxpPWU7dGhpcy5wcm9qZWN0T25saW5lfHwoaT10aGlzLmZpbHRlck9mZmxpbmVBdXRvbWF0aW9ucyhlKSk7dmFyIGE9bnVsbDtyZXR1cm4gbnVsbCE9PSh0PWRvY3VtZW50KSYmdm9pZCAwIT09dCYmdC5ib2R5JiYoYT1kb2N1bWVudC5ib2R5KSxudWxsIT09KG49d2luZG93LnBhcmVudCkmJnZvaWQgMCE9PW4mJm51bGwhPT0ocj1uLmRvY3VtZW50KSYmdm9pZCAwIT09ciYmci5ib2R5JiYoYT13aW5kb3cucGFyZW50LmRvY3VtZW50LmJvZHkpLGEmJihhLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLChmdW5jdGlvbigpe2NsZWFyVGltZW91dChvLndpbmRvd0xlZnQpfSkpLGEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLChmdW5jdGlvbihlKXt2YXIgdD1lLnJlbGF0ZWRUYXJnZXR8fGUudG9FbGVtZW50O3QmJiJIVE1MIiE9PXQubm9kZU5hbWV8fGkubGVuZ3RoPjAmJihjbGVhclRpbWVvdXQoby53aW5kb3dMZWZ0KSxvLndpbmRvd0xlZnQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtvLmV4ZWN1dGUoaSl9KSw1ZTMpKX0pKSksITB9fSx7a2V5OiJleGVjdXRlIix2YWx1ZTpmdW5jdGlvbihlKXsoISh0aGlzLmhpZGVXaGVuT2ZmbGluZSYmIXRoaXMucHJvamVjdE9ubGluZSl8fHRoaXMuaXNDaGF0T25TaXRlKSYmdGhpcy5kaXNwYXRjaChPYmplY3QoaC5LYikoZSkpfX1dKSxlfSgpLGNlPXtwb3BVcE9wZW46Im9wZW4iLHBvcFVwSGlkZToiY2xvc2UiLGNoYXREaXNwbGF5OiJkaXNwbGF5IixzZXRDb2xvclBhbGxldGU6InNldENvbG9yUGFsZXR0ZSJ9LGxlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheShyKSxpPTA7aTxyO2krKylvW2ldPWFyZ3VtZW50c1tpXTtuKE9iamVjdChoLmNkKShlLG8pKSx0LmNhbGwuYXBwbHkodCxbbnVsbF0uY29uY2F0KG8pKX19O3ZhciBmZSxkZSxwZSxoZT1mdW5jdGlvbihlKXt2YXIgdD1lLmRpc3BhdGNoLG49ZnVuY3Rpb24oZSl7cmV0dXJue29wZW46ZnVuY3Rpb24oKXtyZXR1cm4gZShPYmplY3QoaC54YykoITApKX0sY2xvc2U6ZnVuY3Rpb24oKXtyZXR1cm4gZShPYmplY3QoaC54YykoITEpKX0sZGlzcGxheTpmdW5jdGlvbigpe3ZhciB0PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07cmV0dXJuIGUoT2JqZWN0KGguVmMpKHQpKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBlKE9iamVjdChoLlZjKSghMCkpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIGUoT2JqZWN0KGguVmMpKCExKSl9LHNldENvbG9yUGFsZXR0ZTpmdW5jdGlvbih0KXtyZXR1cm4gZShPYmplY3QoaC5VYykoT2JqZWN0KHYudykoW3RdKSkpfSx0cmFjazpmdW5jdGlvbih0LG4scil7aWYodCYmInN0cmluZyI9PT10eXBlb2YgdClyZXR1cm4gZShPYmplY3QoaC5kZCkodCxuLHIpKX0sbWVzc2FnZUZyb21WaXNpdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBlKE9iamVjdChoLnNjKSh0KSl9LG1lc3NhZ2VGcm9tT3BlcmF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIGUoT2JqZWN0KGguSWIpKE9iamVjdChiLm0pKHQpKSl9LHNldFZpc2l0b3JEYXRhOmZ1bmN0aW9uKHQpe3JldHVybiBlKE9iamVjdChoLmlkKSh0KSl9LGFkZFZpc2l0b3JUYWdzOmZ1bmN0aW9uKHQpe3JldHVybiBlKE9iamVjdChoLkpiKSh0KSl9LHNldENvbnRhY3RQcm9wZXJ0aWVzOmZ1bmN0aW9uKHQpe3JldHVybiBlKE9iamVjdChoLnljKSh0KSl9LHNldEZlYXR1cmVzOmZ1bmN0aW9uKHQpe3JldHVybiBlKE9iamVjdChoLkJjKSh0KSl9fX0odCk7T2JqZWN0LmtleXMobikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bltlXTt3aW5kb3cudGlkaW9DaGF0QXBpfHwod2luZG93LnRpZGlvQ2hhdEFwaT17fSksd2luZG93LnRpZGlvQ2hhdEFwaVtlXT1sZShlLHIsdCl9KSksT2JqZWN0LmtleXMoY2UpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW5bY2VbZV1dO3dpbmRvdy50aWRpb0NoYXRBcGl8fCh3aW5kb3cudGlkaW9DaGF0QXBpPXt9KSx3aW5kb3cudGlkaW9DaGF0QXBpW2VdPWxlKGUscix0KX0pKX0sdmU9bigyNSk7ZnVuY3Rpb24gZ2UoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIHllKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP2dlKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bygpKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpnZShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX12YXIgbWU9T2JqZWN0KHYucCkoKTtmdW5jdGlvbiBiZShlLHQsbixyKXt2YXIgbz10LnRpZGlvSWRlbnRpZnlEYXRhLGk9dC5wdWJsaWNLZXksYT10LnZpc2l0b3Iub3JpZ2luYWxWaXNpdG9ySWQ7ZSgidmlzaXRvcklkZW50aWZ5Iix7aWRlbnRpZnlEYXRhOm8scHJvamVjdFB1YmxpY0tleTppfSwoZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7dmFyIGU9e307aWYoInN0cmluZyI9PT10eXBlb2YgYSYmMzI9PT1hLmxlbmd0aCllLmlkPWE7ZWxzZXt2YXIgdD1PYmplY3Qodi5sKSgpO2UuaWQ9dCxlLm9yaWdpbmFsVmlzaXRvcklkPXR9cmV0dXJuIGV9aWYobnVsbCE9PXQmJnZvaWQgMCE9PXQmJnQubWVzc2FnZSl7dmFyIHM9aSgpO3JldHVybiBuKE9iamVjdChoLmRjKShzKSkscigpLCEwfXZhciB1PXtpZGVudGlmeURhdGE6b307aWYoInN0cmluZyI9PT10eXBlb2YgZSYmMzI9PT1lLmxlbmd0aCl1LmlkPWU7ZWxzZSBpZihvLmRpc3RpbmN0X2lkfHxvLmVtYWlsKXUuaWQ9T2JqZWN0KHYubCkoKTtlbHNle3ZhciBjPWkoKTt1PXllKHllKHt9LHUpLGMpfXJldHVybiBuKE9iamVjdChoLmRjKSh1KSkscigpLCEwfSkpfXZhciB3ZT0hMDtmdW5jdGlvbiBPZShlLHQsbixyLG8saSl7dmFyIGE9dC52aXNpdG9yLHM9dC5pc1Byb2plY3RPbmxpbmUsdT10LmhpZGVXaGVuT2ZmbGluZSxjPXQudmlzaXRvci5pc19jaGF0X29uX3NpdGUsbD1PYmplY3Qodi56KSgpO2UoInZpc2l0b3JSZWdpc3RlciIseWUoeWUoe30sYSkse30se3NhbmRib3g6bCxpc1Byb2plY3RPbmxpbmU6cyxjYWNoZV9oYXNoOihudWxsPT09cnx8dm9pZCAwPT09cj92b2lkIDA6ci5jYWNoZV9oYXNoKXx8bnVsbCxhZnRlcl9yZWNvbm5lY3Q6IW99KSwoZnVuY3Rpb24oZSx0KXt2YXIgbztyZXR1cm4gbz1yP3llKHllKHt9LHIpLG51bGw9PT1lfHx2b2lkIDA9PT1lP3ZvaWQgMDplLndpZGdldF9kYXRhKTpudWxsPT09ZXx8dm9pZCAwPT09ZT92b2lkIDA6ZS53aWRnZXRfZGF0YSxlJiYiSU5WQUxJRF9QUk9KRUNUX1BVQkxJQ19LRVkiIT09dD8obihPYmplY3QoaC5tZCkoZSwoZnVuY3Rpb24oZSl7aWYobCl7dmFyIHQ9T2JqZWN0KHYucykoKSxyPXQuYXV0b21hdGlvbklkLGk9dC50aW1lb3V0O3ImJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bihPYmplY3QoaC5LYikoWytyXSkpfSksdm9pZCAwPT09aT8xMDA6aSl9ZWxzZXt2YXIgZixkLHA7aWYobnVsbCE9PShmPW8pJiZ2b2lkIDAhPT1mJiZmLnRyYWNraW5nKXtpZihvLnRyYWNraW5nLmdlbmVyaWMmJiEoZmUgaW5zdGFuY2VvZiBxKSl7dmFyIGc9by50cmFja2luZy5nZW5lcmljO2ZlPW5ldyBxKGcpfSJzaG9waWZ5IiE9PW8udHJhY2tpbmcucGxhdGZvcm1fdHJhY2tlZHx8ZGUgaW5zdGFuY2VvZiByZXx8KGRlPW5ldyByZSh7ZGlzcGF0Y2g6bixtb2RlOiJhZHZhbmNlZCJ9KSl9aWYobnVsbCE9PShkPW8pJiZ2b2lkIDAhPT1kJiZkLmlzX3RleHRfaW5wdXRfZGlzYWJsZWQmJm4oT2JqZWN0KGguemMpKCEwKSksIW98fCJzaG9waWZ5IiE9PW8ucGxhdGZvcm18fGRlIGluc3RhbmNlb2YgcmV8fChkZT1uZXcgcmUoe2Rpc3BhdGNoOm4sbW9kZToic2ltcGxlIn0pKSxudWxsIT09KHA9bykmJnZvaWQgMCE9PXAmJnAuYm90cyYmQXJyYXkuaXNBcnJheShvLmJvdHMpJiZvLmJvdHMubGVuZ3RoPjApaWYocGUgaW5zdGFuY2VvZiB1ZSlwZS5zZXRWaXNpdG9ySWQoYS5pZCk7ZWxzZXt2YXIgeT1zO3BlPW5ldyB1ZShvLmJvdHMsYS5pZCxuLHksdSxjKX19ZXx8aGUoe2Rpc3BhdGNoOmZ1bmN0aW9uKCl7fX0pLHdlJiYobihPYmplY3QoaC5WYykoZSkpLHdlPSExKX0pKSksITApOihPYmplY3QoWi5iKSgidmlzaXRvcklkIGNvbGxpc2lvbiIse3Zpc2l0b3JJZDphLmlkfSksaSgpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7T2JqZWN0KHouZikoKSx3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KSwxZTQpLCExKX0pKX1mdW5jdGlvbiBfZShlLHQsbixyKXt2YXIgbz1yLmlkLGk9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtuKE9iamVjdChoLlJjKShvLG51bGwsITEpKX0pLDZlMyk7ZSgidmlzaXRvck5ld01lc3NhZ2UiLHttZXNzYWdlOnIuY29udGVudCxtZXNzYWdlSWQ6byxwYXlsb2FkOnIucGF5bG9hZCx1cmw6ci51cmx9LChmdW5jdGlvbihlLHQpe3ZhciByPXQuaWQ7cmV0dXJuISFlJiYoY2xlYXJUaW1lb3V0KGkpLG4oT2JqZWN0KGguUmMpKG8sciwhMCkpLCEwKX0pKX1mdW5jdGlvbiBFZShlLHQsbil7dmFyIHI9dC5tZXNzYWdlcyxvPW51bGw7aWYoci5sZW5ndGg+MCl7dmFyIGk9ci5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkRnJvbVNlcnZlcn0pKTtpLmxlbmd0aD4wJiYobz1pW2kubGVuZ3RoLTFdLmlkRnJvbVNlcnZlcil9ZSgidmlzaXRvckdldENvbnZlcnNhdGlvbkhpc3RvcnkiLHtsYXN0TWVzc2FnZUlkOm99LChmdW5jdGlvbihlKXtyZXR1cm4hIWUmJihuKE9iamVjdChoLmJjKShlLm1lc3NhZ2VzLG8pKSwhMCl9KSksb3x8bihPYmplY3QoaC5vZCkodmUuYS5mdWxsQ29udmVyc2F0aW9uSGlzdG9yeVJlcXVlc3RlZCkpfWZ1bmN0aW9uIENlKGUpe2UoInZpc2l0b3JSZWFkTWVzc2FnZXMiKX1mdW5jdGlvbiBTZShlLHQsbixyKXtlKCJ2aXNpdG9ySXNUeXBpbmciLHttZXNzYWdlOnIsdGltZTpPYmplY3Qodi5vKSgpfSl9ZnVuY3Rpb24ga2UoZSx0LG4scil7ZSgidmlzaXRvclVwZGF0ZURhdGEiLHt1cGRhdGVEYXRhOnJ9KX1mdW5jdGlvbiB4ZShlLHQsbixyKXtlKCJ2aXNpdG9yQWRkVGFncyIse3RhZ3M6cn0pfWZ1bmN0aW9uIEFlKGUsdCl7ZSgidmlzaXRvckxhc3RTZWVuVXBkYXRlIix7aWQ6dC52aXNpdG9yLmlkfSl9ZnVuY3Rpb24gamUoZSx0LG4scil7ZSgidmlzaXRvclNldFJhdGluZyIse3ZhbHVlOnI/IjEiOiIwIn0pfWZ1bmN0aW9uIFRlKGUsdCxuLHIpe2UoInZpc2l0b3JQcmVGb3JtIix7dXBkYXRlRGF0YTp5ZSh7fSxyKX0sKGZ1bmN0aW9uKCl7fSkpfWZ1bmN0aW9uIFBlKGUsdCxuLHIpe2UoInZpc2l0b3JTZXRDb21tZW50Iix7Y29tbWVudDpyfSl9ZnVuY3Rpb24gSWUoZSx0LG4scixvLGkpe2UoInZpc2l0b3JUcmFja2luZyIseWUoeWUoe30sbykse30se2V2ZW50OnJ9KSxpKX1mdW5jdGlvbiBSZShlLHQsbixyKXtlKCJib3RUcmlnZ2VyIix7Ym90czpyfSl9ZnVuY3Rpb24gRGUoZSl7ZSgiYm90Q2FuY2VsQm90QXBwcyIpfWZ1bmN0aW9uIE5lKGUpe2UoImJvdEdldFN0YXJ0ZWQiKX1mdW5jdGlvbiBMZShlLHQsbixyKXtyIT09bWUmJihtZT1yLGUoInZpc2l0b3JFbnRlclBhZ2UiLHt1cmw6cn0pKX1mdW5jdGlvbiBGZShlKXtlKCJ2aXNpdG9yQ2xpY2tzT25DaGF0SWNvbiIpfWZ1bmN0aW9uIE1lKGUsdCxuLHIpe2UoInZpc2l0b3JXaWRnZXRQb3NpdGlvbiIscil9ZnVuY3Rpb24gQmUoZSx0LG4scil7ZSgic2hvcGlmeU9yZGVyQ3JlYXRlZCIscil9ZnVuY3Rpb24gVWUoZSx0LG4scil7ZSgic2hvcGlmeUNoZWNrb3V0Q3JlYXRlZCIscil9ZnVuY3Rpb24gemUoZSx0LG4scil7ZSgic2hvcGlmeUNhcnRUb2tlblVwZGF0ZWQiLHIpfWZ1bmN0aW9uIFZlKGUsdCxuLHIsbyl7ZSgid2lkZ2V0QW5hbHl0aWNzIix5ZSh7ZXZlbnROYW1lOnJ9LG8pKX1mdW5jdGlvbiBIZShlLHQsbixyKXtlKCJzZW5kQ2FydERhdGEiLHIpfWZ1bmN0aW9uIFdlKGUsdCxuLHIsbyl7ZSgiY2hhdEJvdFJhdGVkIix7cmF0aW5nSWQ6cixyYXRpbmc6b30pfWZ1bmN0aW9uIHFlKGUsdCxuLHIsbyxpKXtlKCJzYXRpc2ZhY3Rpb25SYXRpbmdTZXQiLHtyYXRpbmc6cix0aHJlYWRJZDpvLG1lc3NhZ2VJZDppfSl9ZnVuY3Rpb24gJGUoZSx0LG4scixvLGkpe2UoInNhdGlzZmFjdGlvblJhdGluZ0NvbW1lbnRTZXQiLHtjb21tZW50OnIsdGhyZWFkSWQ6byxtZXNzYWdlSWQ6aX0pfWZ1bmN0aW9uIFllKGUsdCxuLHIpe2UoImp1ZGdlTWVSYXRpbmdDbGljayIse3JhdGluZzpyfSl9ZnVuY3Rpb24gR2UoZSx0LG4scil7ZSgianVkZ2VNZVJldmlld1NlbnQiLHtyYXRpbmc6cn0pfWZ1bmN0aW9uIEtlKGUsdCxuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106e307ZSgiY2FydFZhbHVlQ2hhbmdlZCIscil9ZnVuY3Rpb24gWGUoZSx0LG4pe2Uub24oInByb2plY3REYXRhVXBkYXRlIiwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS50eXBlOyJvbmxpbmUiIT09dCYmIm9mZmxpbmUiIT09dHx8bihPYmplY3QoaC5MYykodCkpfSkpfWZ1bmN0aW9uIFFlKGUsdCxuKXtlLm9uKCJuZXdNZXNzYWdlIiwoZnVuY3Rpb24oZSl7dmFyIHQ9T2JqZWN0KGIuZikoZSk7dCYmbihPYmplY3QoaC5JYikodCkpfSkpfWZ1bmN0aW9uIEplKGUsdCxuKXtlLm9uKCJvcGVyYXRvcklzVHlwaW5nIiwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcGVyYXRvcl9pZDtuKE9iamVjdChoLkhjKSh0KSl9KSl9ZnVuY3Rpb24gWmUoZSx0LG4pe2Uub24oImJvdElzVHlwaW5nIiwoZnVuY3Rpb24oKXtuKE9iamVjdChoLkhjKSghMCkpfSkpfWZ1bmN0aW9uIGV0KGUsdCxuKXtlLm9uKCJ2aXNpdG9ySXNCYW5uZWQiLChmdW5jdGlvbigpe24oT2JqZWN0KGguUWIpKCkpLG4oT2JqZWN0KGguVmMpKCExKSl9KSl9dmFyIHR0PVsidmlzaXRvckFza0ZvclJhdGluZyIsInZpc2l0b3JTaG93Q3VzdG9tZXJTdXJ2ZXkiXTtmdW5jdGlvbiBudChlLHQsbil7ZS5vbigidmlzaXRvckluc2lkZUFjdGlvbiIsKGZ1bmN0aW9uKGUpe3ZhciB0LHI9ZS5hY3Rpb24sbz1lLnZhbHVlO2lmKCF0dC5pbmNsdWRlcyhyKSlyZXR1cm4hMTtpZigidmlzaXRvclNob3dDdXN0b21lclN1cnZleSI9PT1yKXt2YXIgaT1vLnNhdGlzZmFjdGlvblN1cnZleSxhPW8udGhyZWFkSWQscz1vLm1lc3NhZ2VJZDtuKE9iamVjdChoLk5jKShpLGEscykpLHQ9T2JqZWN0KGIuaSkoYSxzLHguZC5BVVRPTUFUSUNfU1VSVkVZKX1lbHNlIHQ9T2JqZWN0KGIubCkoKTtyZXR1cm4gbihPYmplY3QoaC5JYikodCkpLCEwfSkpfWZ1bmN0aW9uIHJ0KGUsdCxuKXtlLm9uKCJ2aXNpdG9yTWVyZ2VkIiwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS52aXNpdG9yX3RhcmdldF9pZDt0JiYobihPYmplY3QoaC5jYykodCkpLG4oT2JqZWN0KGguUWMpKE9lKSkpfSkpfWZ1bmN0aW9uIG90KGUsdCxuKXtlLm9uKCJvcGVyYXRvck9wZW5Db252ZXJzYXRpb24iLChmdW5jdGlvbihlKXt2YXIgcj1lLm9wZXJhdG9yX2lkLG89dCgpLmFzc2lnbmVkT3BlcmF0b3JzLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09cn0pKTtyZXR1cm4hKCFyfHxvKSYmKG4oT2JqZWN0KGguaWMpKHIpKSwhMCl9KSl9ZnVuY3Rpb24gaXQoZSx0LG4pe2Uub24oIm9wZXJhdG9yQXNzaWduRGVwYXJ0bWVudCIsKGZ1bmN0aW9uKGUpe3ZhciB0PWUuZGVwYXJ0bWVudF9pZDtyZXR1cm4hIXQmJihuKE9iamVjdChoLmZjKSh0KSksITApfSkpfWZ1bmN0aW9uIGF0KGUsdCxuKXtlLm9uKCJvcGVyYXRvckxlYXZlQ29udmVyc2F0aW9uIiwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcGVyYXRvcl9pZDt0JiZuKE9iamVjdChoLmhjKSh0KSl9KSl9ZnVuY3Rpb24gc3QoZSx0LG4pe2Uub24oIm9wZXJhdG9yVHJhbnNmZXJDb252ZXJzYXRpb24iLChmdW5jdGlvbihlKXt2YXIgcj1lLm9wZXJhdG9yX2N1cnJlbnRfaWQsbz1lLm9wZXJhdG9yX3RhcmdldF9pZDtyZXR1cm4hdCgpLmFzc2lnbmVkT3BlcmF0b3JzLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09b30pKSYmKG4oT2JqZWN0KGguamMpKHIsbykpLCEwKX0pKX1mdW5jdGlvbiB1dChlLHQsbil7ZS5vbigiYm90QXBwU3RhcnRlZCIsKGZ1bmN0aW9uKCl7bihPYmplY3QoaC53YykoITApKX0pKX1mdW5jdGlvbiBjdChlLHQsbil7ZS5vbigiYm90QXBwU3RvcHBlZCIsKGZ1bmN0aW9uKCl7bihPYmplY3QoaC53YykoITEpKX0pKX1mdW5jdGlvbiBsdChlLHQsbil7ZS5vbigiYm90QXBwVHJhbnNmZXJyZWQiLChmdW5jdGlvbigpe24oT2JqZWN0KGgud2MpKCExKSl9KSl9ZnVuY3Rpb24gZnQoZSx0LG4pe2Uub24oImJvdEFwcFN1Y2Nlc3MiLChmdW5jdGlvbigpe24oT2JqZWN0KGgud2MpKCExKSl9KSl9ZnVuY3Rpb24gZHQoZSx0LG4pe2Uub24oImJvdEFwcEZhaWxlZCIsKGZ1bmN0aW9uKCl7bihPYmplY3QoaC53YykoITEpKX0pKX1mdW5jdGlvbiBwdChlLHQsbil7ZS5vbigidmlzaXRvclVwZGF0ZURhdGEiLChmdW5jdGlvbihlKXtuKE9iamVjdChoLmlkKShlLCExKSl9KSl9ZnVuY3Rpb24gaHQoZSx0LG4pe2Uub24oIm9wZXJhdG9yU3RhdHVzSGFzQmVlbkNoYW5nZWQiLChmdW5jdGlvbihlKXt2YXIgdD1lLm9wZXJhdG9yX2lkLHI9ZS5zdGF0dXMsbz1lLmRuZF9mb3JjZWRfc3RhdHVzLGk9ZS5kbmRfaXNfaW5faW50ZXJ2YWwsYT0hKEJvb2xlYW4obyl8fEJvb2xlYW4oaSl8fCJvZmZsaW5lIj09PXIpO24oT2JqZWN0KGguZ2MpKHQsYSkpfSkpfWZ1bmN0aW9uIHZ0KGUsdCxuKXtlLm9uKCJ2aXNpdG9yRGVsZXRlZCIsKGZ1bmN0aW9uKCl7bihPYmplY3QoaC5RYikoKSksbihPYmplY3QoaC5WYykoITEpKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe09iamVjdCh6LmYpKCl9KSwxZTMpfSkpfWZ1bmN0aW9uIGd0KGUsdCxuKXtlLm9uKCJtYXJrTWVzc2FnZXNBc1JlYWQiLChmdW5jdGlvbigpe24oT2JqZWN0KGguU2MpKCkpfSkpfWZ1bmN0aW9uIHl0KGUsdCxuKXtlLm9uKCJ1cGRhdGVDYXJ0IiwoZnVuY3Rpb24oKXsic2hvcGlmeSI9PT10KCkucGxhdGZvcm0mJm4oT2JqZWN0KGguVmIpKCkpfSkpfWZ1bmN0aW9uIG10KGUsdCxuKXtlLm9uKCJkaXNhYmxlVGV4dElucHV0IiwoZnVuY3Rpb24oKXtuKE9iamVjdChoLnpjKSghMCkpfSkpfWZ1bmN0aW9uIGJ0KGUsdCxuKXtlLm9uKCJlbmFibGVUZXh0SW5wdXQiLChmdW5jdGlvbigpe24oT2JqZWN0KGguemMpKCExKSl9KSl9ZnVuY3Rpb24gd3QoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIE90KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP3d0KE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bygpKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp3dChPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX12YXIgX3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7TSgpKHRoaXMsZSl9cmV0dXJuIFUoKShlLFt7a2V5OiJ0cmFja0V2ZW50T25jZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9InRyYWNrRXZlbnRfIi5jb25jYXQoZSk7cmV0dXJuIU9iamVjdCh6LmEpKHQpJiYoT2JqZWN0KHouZykodCwxKSx0aGlzLnRyYWNrRXZlbnQoZSksITApfX0se2tleToidHJhY2tFdmVudE9uY2VJbkludGVydmFsIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODY0MDAsbj1NYXRoLnJvdW5kKERhdGUubm93KCkvMWUzKSxyPSJ0cmFja0V2ZW50XyIuY29uY2F0KGUpO3RyeXt2YXIgbz1wYXJzZUludChPYmplY3Qoei5hKShyKSwxMCk7aWYobz4xJiZuPG8pcmV0dXJuITE7T2JqZWN0KHouZykocixuK3QpfWNhdGNoKGkpe3JldHVybiExfXJldHVybiB0aGlzLnRyYWNrRXZlbnQoZSl9fSx7a2V5OiJ0cmFja0V2ZW50Iix2YWx1ZTpmdW5jdGlvbihlKXt0cnl7InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LnBhcmVudC5ndGFnJiZ3aW5kb3cucGFyZW50Lmd0YWcoImV2ZW50IixlLHtldmVudF9jYXRlZ29yeToiVGlkaW8gQ2hhdCIsbm9uX2ludGVyYWN0aW9uOiEwfSksInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LnBhcmVudC5nYT93aW5kb3cucGFyZW50LmdhKCJzZW5kIiwiZXZlbnQiLCJUaWRpbyBDaGF0IixlLHtub25JbnRlcmFjdGlvbjohMH0pOiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5wYXJlbnQuX2dhcT93aW5kb3cucGFyZW50Ll9nYXEucHVzaChbIl90cmFja0V2ZW50IiwiVGlkaW8gQ2hhdCIsZV0pOiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5wYXJlbnQuX19nYVRyYWNrZXI/d2luZG93LnBhcmVudC5fX2dhVHJhY2tlcigic2VuZCIsImV2ZW50IiwiVGlkaW8gQ2hhdCIsZSk6InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LnBhcmVudC5kYXRhTGF5ZXImJiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5wYXJlbnQuZGF0YUxheWVyLnB1c2gmJndpbmRvdy5wYXJlbnQuZGF0YUxheWVyLnB1c2goe2V2ZW50OiJUaWRpbyBDaGF0OiAiLmNvbmNhdChlKX0pfWNhdGNoKHQpe09iamVjdChaLmIpKHQpfXJldHVybiEwfX1dKSxlfSgpLEV0PW4oNDIpLEN0PXt0cmFja0V2ZW50T25jZTpmdW5jdGlvbigpe30sdHJhY2tFdmVudDpmdW5jdGlvbigpe30sdHJhY2tFdmVudE9uY2VJbkludGVydmFsOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gU3QoZSl7dmFyIHQ9ZS5lbWl0UXVldWUsbj1lLmNsb3NlQ29ubmVjdGlvbjtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9ZS5nZXRTdGF0ZSxvPWUuZGlzcGF0Y2gsaT10KHIsbyksYT1pZSgpKGksNTAwLHttYXhXYWl0OjUwMH0pO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSBoLkNiOnZhciBvO2lmKCJiYW5uZWQiPT09dC5kYXRhLnZpc2l0b3Jfc3RhdHVzfHwiYmxhY2tsaXN0ZWQiPT09dC5kYXRhLnZpc2l0b3Jfc3RhdHVzKXJldHVybiBuKCksdC5jYWxsYmFjayghMSksITE7aWYobnVsbCE9PShvPXQuZGF0YS53aWRnZXRfZGF0YSkmJnZvaWQgMCE9PW8mJm8uaW50ZWdyYXRpb25zJiZBcnJheS5pc0FycmF5KHQuZGF0YS53aWRnZXRfZGF0YS5pbnRlZ3JhdGlvbnMpJiYhKEN0IGluc3RhbmNlb2YgX3QpKXQuZGF0YS53aWRnZXRfZGF0YS5pbnRlZ3JhdGlvbnMuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuImdhIj09PWUucGxhdGZvcm19KSkmJihDdD1uZXcgX3QpO3ZhciBzPXIoKSx1PXQuZGF0YS51bnJlYWRfbWVzc2FnZXM7KHZvaWQgMD09PXU/MDp1KT4wJiYoaShFZSkscy52aWV3PT09ay5hLmNoYXQmJnMuaXNQYWdlVmlzaWJsZSYmaShDZSkpLHMuaW1wb3J0ZWRPbGRXaWRnZXREYXRhJiZpKEVlKTt2YXIgYz1lKHQpO3JldHVybiB0LmNhbGxiYWNrKCEwKSxjO2Nhc2UgaC5MOmlmKHQuZW1pdCl7YS5jYW5jZWwoKSxpKF9lLHQucGF5bG9hZCksQ3QudHJhY2tFdmVudE9uY2UoIkNoYXQgc3RhcnRlZCIpO3ZhciBsPXIoKSxkPWwubWVzc2FnZXMscD1sLmFzc2lnbmVkT3BlcmF0b3JzLHY9ZC5sZW5ndGgsZz1wLmxlbmd0aD4wO3RyeXt2YXIgeT12PjAmJnQucGF5bG9hZC50aW1lX3NlbnQtZFt2LTFdLnRpbWVfc2VudD44NjQwMDsoMD09PXZ8fCFnJiZ5KSYmQ3QudHJhY2tFdmVudCgiVmlzaXRvciBzdGFydGVkIHRoZSBjb252ZXJzYXRpb24iKX1jYXRjaChXKXt9fXJldHVybiBlKHQpO2Nhc2UgaC5LOnZhciB3PXQudXBkYXRlRGF0YTtpZih3JiYoaShUZSx3KSxDdC50cmFja0V2ZW50KCJQcmUtQ2hhdCBTdXJ2ZXkgZmluaXNoZWQiKSwody5zaWduVXBOZXdzbGV0dGVyfHx3W0V0LmJdKSYmdy5lbWFpbCkpe3ZhciBPPXIoKSxfPU8ucHVibGljS2V5LEU9dy5lbWFpbDt0cnl7dmFyIEM9Ty5wcmVDaGF0LmRhdGEuZmllbGRzLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiJzaWduVXBOZXdzbGV0dGVyIj09PWUudHlwZX0pKTtDJiYhT2JqZWN0KG0uZSkoKS5pbmNsdWRlcyhDLnZhbHVlKSYmQy52YWx1ZS5mb3JFYWNoKChmdW5jdGlvbihlKXsoZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiJHRVQiLHI9Imh0dHBzOi8vYXBpLXYyLnRpZGlvLmNvLyIsbz1yK2UsaT17bWV0aG9kOm59O3JldHVybiJHRVQiPT09bj9vPSIiLmNvbmNhdChvLCI/IikuY29uY2F0KFEuYS5zdHJpbmdpZnkodCkpOihpLmJvZHk9SlNPTi5zdHJpbmdpZnkodCksaS5oZWFkZXJzPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9KSxmZXRjaChvLGkpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChbZS5qc29uKCksZV0pfSkpLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciB0PUQoKShlLDIpLG49dFswXSxyPXRbMV07aWYoNDAxPT09ci5zdGF0dXMpdGhyb3cgbmV3IEVycm9yKHIuc3RhdHVzKTtpZighci5va3x8IW58fCFuLnN0YXR1cyl7aWYobil7aWYoIm9iamVjdCI9PT1mKCkobi52YWx1ZSkmJm51bGwhPT1uLnZhbHVlJiZuLnZhbHVlLnJlYXNvbil0aHJvdyBuZXcgRXJyb3IoIiIuY29uY2F0KG4udmFsdWUucmVhc29uKSk7aWYoIm9iamVjdCI9PT1mKCkobi52YWx1ZSkmJm51bGwhPT1uLnZhbHVlJiZuLnZhbHVlLmVycm9yKXRocm93IG5ldyBFcnJvcigiIi5jb25jYXQobi52YWx1ZS5lcnJvcikpO3Rocm93IG5ldyBFcnJvcigiIi5jb25jYXQobi52YWx1ZSkpfXRocm93IG5ldyBFcnJvcigiRXJyb3IgY29kZSAtICIuY29uY2F0KHIuc3RhdHVzKSl9aWYoci5vaylyZXR1cm4gbjt0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGNvZGUgLSAiLmNvbmNhdChyLnN0YXR1cykpfSkpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlfSkpfSkoImFwcHMvIi5jb25jYXQoZSwiL3NpZ251cCIpLHtlbWFpbDpFLHByb2plY3RfcHVibGljX2tleTpffSkuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpfSkpfWNhdGNoKHEpe09iamVjdChaLmEpKHEpfX1yZXR1cm4gZSh0KTtjYXNlIGguSjp2YXIgUz10LmVtYWlsO3JldHVybiBTJiZpKFRlLHtlbWFpbDpTfSksZSh0KTtjYXNlIGguUTpyZXR1cm4gdC5vcGVuPyhpKENlKSxDdC50cmFja0V2ZW50KCJDbGljayBvbiB0aGUgY2hhdCB3aWRnZXQiKSk6Q3QudHJhY2tFdmVudCgiQ2xvc2UgdGhlIGNoYXQgd2lkZ2V0IiksZSh0KTtjYXNlIGguYjp2YXIgeD1yKCksQT14LnZpZXcsaj14Lm1lc3NhZ2VzLFQ9eC5pc1BhZ2VWaXNpYmxlO0E9PT1rLmEuY2hhdCYmVCYmaShDZSksImFsd2F5c09ubGluZSI9PT10Lm1lc3NhZ2UudHlwZSYmQ3QudHJhY2tFdmVudCgiT2ZmbGluZSBtZXNzYWdlIiksInByZUNoYXQiPT09dC5tZXNzYWdlLnR5cGUmJkN0LnRyYWNrRXZlbnQoIlByZS1DaGF0IFN1cnZleSBzdGFydGVkIik7dmFyIFA9ai5sZW5ndGgsST1QPjAmJnQudGltZV9zZW50LWpbUC0xXS50aW1lX3NlbnQ+ODY0MDA7cmV0dXJuIHQubWVzc2FnZS5zZW5kZXIhPT1iLmcub3BlcmF0b3J8fCJhbHdheXNPbmxpbmUiPT09dC5tZXNzYWdlLnR5cGV8fDAhPT1QJiYhSXx8Q3QudHJhY2tFdmVudCgiT3BlcmF0b3Igc3RhcnRlZCB0aGUgY29udmVyc2F0aW9uIiksdC5tZXNzYWdlLnNlbmRlciE9PWIuZy5ib3R8fDAhPT1QJiYhSXx8Q3QudHJhY2tFdmVudCgiQXV0b21hdGlvbiBzdGFydGVkIHRoZSBjb252ZXJzYXRpb24iKSxlKHQpO2Nhc2UgaC5EYjpyZXR1cm4gaShqZSx0LnJhdGluZ0lzR29vZCksdC5yYXRpbmdJc0dvb2Q/Q3QudHJhY2tFdmVudCgiQ2hhdCByYXRlZCBnb29kIik6Q3QudHJhY2tFdmVudCgiQ2hhdCByYXRlZCBiYWQiKSxlKHQpO2Nhc2UgaC56YjpyZXR1cm4gYShTZSx0Lm1lc3NhZ2UpLGUodCk7Y2FzZSBoLk06cmV0dXJuIGkoUGUsdC5jb21tZW50KSxlKHQpO2Nhc2UgaC50Yjp2YXIgUj1lKHQpLE49cigpLm1lc3NhZ2VzLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC5tZXNzYWdlSWR9KSk7cmV0dXJuIE4mJihhLmNhbmNlbCgpLGkoX2UsTikpLFI7Y2FzZSBoLkViOnJldHVybiB0LmVtaXQmJmkoa2UsdC51cGRhdGVEYXRhKSxlKHQpO2Nhc2UgaC54YjpyZXR1cm4gaSh4ZSx0LnRhZ3MpLGUodCk7Y2FzZSBoLlI6cmV0dXJuIGkoa2Use3Byb3BlcnRpZXM6dC5wcm9wZXJ0aWVzfSksZSh0KTtjYXNlIGgucWI6cmV0dXJuIGkoSWUsdC5ldmVudE5hbWUsdC5ldmVudERhdGEsdC5zdWNjZXNzQ2FsbGJhY2spLGUodCk7Y2FzZSBoLmQ6dmFyIEw9dC5pZHM7cmV0dXJuIGkoUmUsTCksZSh0KTtjYXNlIGguZTpyZXR1cm4gaShEZSksZSh0KTtjYXNlIGguYzpyZXR1cm4gaShOZSksQ3QudHJhY2tFdmVudE9uY2VJbkludGVydmFsKCJTdGFydCB0aGUgQm90IiksZSh0KTtjYXNlIGgudmI6cmV0dXJuIGkoTGUsdC51cmwpLGUodCk7Y2FzZSBoLlo6cmV0dXJuIHQuc3RhdHVzPyhDdC50cmFja0V2ZW50KCJNdXRlIG5vdGlmaWNhdGlvbnMiKSxpKFZlLHZlLmEubm90aWZpY2F0aW9uc1R1cm5lZE9mZikpOmkoVmUsdmUuYS5ub3RpZmljYXRpb25zVHVybmVkT24pLGUodCk7Y2FzZSBoLmdiOnZhciBGPXIoKSxNPUYuaXNQYWdlVmlzaWJsZSxCPUYudW5yZWFkTWVzc2FnZXM7cmV0dXJuIHQudmlldz09PWsuYS5jaGF0JiZNJiZCJiZpKENlKSx0LnZpZXc9PT1rLmEuZmx5JiYoQ3QudHJhY2tFdmVudCgiRmx5IG1lc3NhZ2UgZGlzcGxheWVkIiksaShWZSx2ZS5hLmZseU1lc3NhZ2VEaXNwbGF5ZWQpKSxlKHQpO2Nhc2UgaC5pOnJldHVybiBuKCksZSh0KTtjYXNlIGguaGI6cmV0dXJuIGkodC5jYWxsYmFjayxuKSxlKHQpO2Nhc2UgaC55YjpyZXR1cm4gaShGZSksZSh0KTtjYXNlIGguYmI6dmFyIFU9cigpLHo9VS52aWV3LFY9VS51bnJlYWRNZXNzYWdlcztyZXR1cm4gej09PWsuYS5jaGF0JiZWJiZ0LnN0YXR1cyYmaShDZSksZSh0KTtjYXNlIGgubWI6cmV0dXJuIGkoQmUsdC5wYXJhbXMpLGUodCk7Y2FzZSBoLmtiOnJldHVybiBpKHplLHQucGFyYW1zKSxlKHQpO2Nhc2UgaC5sYjpyZXR1cm4gaShVZSx0LnBhcmFtcyksZSh0KTtjYXNlIGguRmI6cmV0dXJuIGkoTWUsdC5wYXJhbXMpLGUodCk7Y2FzZSBoLmpiOnJldHVybiB0LnN0YXR1cyYmaShWZSx2ZS5hLndpZGdldExvYWRlZCksZSh0KTtjYXNlIGgucGI6dmFyIEg9dC5tb2RhbDtyZXR1cm4gSCYmaShWZSwicHJlY2hhdCI9PT1IP3ZlLmEucHJlY2hhdE9wZW5lZDp2ZS5hLmFsd2F5c09ubGluZU9wZW5lZCksZSh0KTtjYXNlIGgucmI6cmV0dXJuITA9PT10LnN0YXR1cyYmaShWZSx2ZS5hLmVtb2ppUGFuZWxPcGVuZWQpLGUodCk7Y2FzZSBoLkdiOnJldHVybiBpKFZlLHQuZXZlbnQsdC5hZGRpdGlvbmFsRGF0YSksZSh0KTtjYXNlIGgubjpyZXR1cm4gSigpLnRoZW4oKGZ1bmN0aW9uKGUpe2koSGUse2RhdGE6ZX0pfSkpLmNhdGNoKChmdW5jdGlvbihlKXtPYmplY3QoWi5hKSgiU2hvcGlmeSBDYXJ0IHJlcXVlc3QgZXJyb3IiLHttZXNzYWdlOm51bGw9PT1lfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm1lc3NhZ2V9KX0pKSxlKHQpO2Nhc2UgaC5nOnRyeXt3aW5kb3cucGFyZW50LmZldGNoKCIvY2FydC91cGRhdGUuanMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7YXR0cmlidXRlczp7IlRpZGlvIFZpc2l0b3IgSWQiOm51bGx9fSl9KS5jYXRjaCgoZnVuY3Rpb24oZSl7T2JqZWN0KFouYSkoIlNob3BpZnkgQ2FydCBVcGRhdGUgcmVxdWVzdCBlcnJvciIse21lc3NhZ2U6bnVsbD09PWV8fHZvaWQgMD09PWU/dm9pZCAwOmUubWVzc2FnZX0pfSkpfWNhdGNoKFcpe09iamVjdChaLmEpKCJTaG9waWZ5IHVwZGF0ZSB2aXNpdG9yIGlkIGVycm9yICIse21lc3NhZ2U6bnVsbD09PVd8fHZvaWQgMD09PVc/dm9pZCAwOlcubWVzc2FnZX0pfXJldHVybiBlKHQpO2Nhc2UgaC5FOnJldHVybiBpKFdlLHQucmF0aW5nSWQsdC5yYXRpbmcpLGUodCk7Y2FzZSBoLkY6cmV0dXJuIGkocWUsdC5yYXRpbmcsdC50aHJlYWRJZCx0Lm1lc3NhZ2VJZCksZSh0KTtjYXNlIGguajpyZXR1cm4gaSgkZSx0LmNvbW1lbnQsdC50aHJlYWRJZCx0Lm1lc3NhZ2VJZCksZSh0KTtjYXNlIGgucjpyZXR1cm4gaShZZSx0LnJhdGluZyksZSh0KTtjYXNlIGguczpyZXR1cm4gaShHZSx0LnJhdGluZyksZSh0KTtjYXNlIGguZjpyZXR1cm4gaShLZSx0LmV2ZW50RGF0YSksZSh0KTtkZWZhdWx0OnJldHVybiBlKHQpfX19fX12YXIga3Q9bigyMSkseHQ9big0NiksQXQ9bigyMDEpO2Z1bmN0aW9uIGp0KGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBUdChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9qdChPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe28oKShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6anQoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9dmFyIFB0PW51bGwsSXQ9bnVsbCxSdD0yNzAsRHQ9ITEsTnQ9bnVsbCxMdD17fTtmdW5jdGlvbiBGdChlLHQpe2lmKGUuaXNNb2JpbGUpcmV0dXJuITE7aWYoIXR8fCF0LmFjdGl2ZUVsZW1lbnQpcmV0dXJuITE7aWYoZS5wcmV2aWV3TW9kZSlyZXR1cm4hMTtpZigiSU5QVVQiIT09dC5hY3RpdmVFbGVtZW50LnRhZ05hbWUpe3ZhciBuPU9iamVjdChtLmwpKGUpO3JldHVybiFufHwhKG4udHlwZT09PWIuZS5jYXJkc3x8bi5xdWlja1JlcGxpZXMmJm4ucXVpY2tSZXBsaWVzLmxlbmd0aD4wKX1yZXR1cm4hMX12YXIgTXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRTdGF0ZSxuPWUuZGlzcGF0Y2g7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihyKXtzd2l0Y2goci50eXBlKXtjYXNlIGguVjpyZXR1cm4gci5zaG91bGRTZW5kJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe24oT2JqZWN0KGguQ2MpKCExKSl9KSwwKSxlKHIpO2Nhc2UgaC5rOnZhciBvPXQoKSxpPXIuaWRlbnRpZnlEYXRhLGE9ITA7dHJ5e2E9IW8udGlkaW9JZGVudGlmeURhdGF8fDA9PT1PYmplY3Qua2V5cyhvLnRpZGlvSWRlbnRpZnlEYXRhKS5sZW5ndGh9Y2F0Y2goYWUpe3JldHVybiBPYmplY3QoWi5hKShhZSksZShyKX1pZighaSYmYSlyZXR1cm4gZShyKTt2YXIgcz1PYmplY3Qodi5qKShpKTtpZighcylyZXR1cm4gZShyKTtpZighT2JqZWN0KHYuTSkoby50aWRpb0lkZW50aWZ5RGF0YXx8e30scykpe3ZhciB1PWUocik7cmV0dXJuIG4oT2JqZWN0KGgucGMpKHMpKSx1fXJldHVybiBlKHIpO2Nhc2UgaC5qYjppZihyLnN0YXR1cyl7dmFyIGM9dCgpO2lmKGMuaXNNb3VudGVkKXJldHVybiExO3ZhciBsPU9iamVjdChtLmwpKGMpO251bGwhPT1sJiZ2b2lkIDAhPT1sJiZsLmlzV2FpdGluZ0ZvckFuc3dlciYmKER0PSEwKTt2YXIgZD1lKHIpLHA9T2JqZWN0KGt0LmQpKGMuY2hhdElmcmFtZVN0eWxlcy5pZnJhbWVWaWV3LGMuaXNBd2Vzb21lSWZyYW1lKSxnPXAud2lkdGgsTz1wLmhlaWdodDtyZXR1cm4gd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJyZXNpemUiLHt3aWR0aDpnLGhlaWdodDpPLGlmcmFtZTpPYmplY3QoeHQuZCkoKX0pLGR9cmV0dXJuIHdpbmRvdy50aWRpb0NoYXRBcGkudHJpZ2dlcigicmVzaXplIix7d2lkdGg6MCxoZWlnaHQ6MCxpZnJhbWU6bnVsbH0pLGUocik7Y2FzZSBoLlE6dmFyIF8sRT1yLm9wZW4sQz10KCksUz0hMSE9PUMuc2lkZWJhcklmcmFtZVN0eWxlcyx4PSJsZWZ0Ij09PUMuY2hhdElmcmFtZVN0eWxlcy53aWRnZXRQb3NpdGlvbnx8UztyZXR1cm4hKEMucHJldmlld01vZGUmJlMmJkUpJiYoXz1FP2t0LmYuY2hhdFNpemUxOlM/a3QuZi5vbmx5U2lkZWJhcjprdC5mLm9ubHlCdWJibGUsQy5pc01vYmlsZSYmKEU/Xz1rdC5mLm1vYmlsZTpTP189a3QuZi5vbmx5U2lkZWJhcjooXz1rdC5mLm9ubHlCdWJibGUsInNtYWxsIj09PUMubW9iaWxlQnV0dG9uU2l6ZT9fPWt0LmYub25seUJ1YmJsZVNtYWxsOiJtZWRpdW0iPT09Qy5tb2JpbGVCdXR0b25TaXplJiYoXz1rdC5mLm9ubHlCdWJibGVNZWRpdW0pKSksSXQmJihjbGVhclRpbWVvdXQoSXQpLEl0PW51bGwpLFJ0PXg/MjcwOjUwLEU/KHh8fG4oT2JqZWN0KGguRGMpKF8pKSxJdD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3gmJm4oT2JqZWN0KGguRGMpKF8pKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciBlPU9iamVjdCh4dC5jKSgpO0Z0KEMsZSkmJk9iamVjdCh4dC5iKSgpfSksMCksd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJvcGVuIiksd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJwb3BVcFNob3ciKX0pLFJ0KSxlKHIpKTooSXQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt3aW5kb3cudGlkaW9DaGF0QXBpLnRyaWdnZXIoImNsb3NlIiksd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJwb3BVcEhpZGUiKTt2YXIgZT10KCkscj1PYmplY3QoeS5oKShlKSxvPV89PT1rdC5mLm9ubHlCdWJibGV8fF89PT1rdC5mLm9ubHlCdWJibGVNZWRpdW18fF89PT1rdC5mLm9ubHlCdWJibGVTbWFsbHx8Xz09PWt0LmYub25seVNpZGViYXI7cmV0dXJuIShvJiZlLnZpZXchPT1rLmEuY2xvc2VkfHxyJiZvKSYmKG4oT2JqZWN0KGguRGMpKF8pKSwhMCl9KSwzMDApLGUocikpKTtjYXNlIGguZ2I6cmV0dXJuIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7RnQodCgpLE9iamVjdCh4dC5jKSgpKSYmT2JqZWN0KHh0LmIpKCl9KSwwKSxyLnZpZXc9PT1rLmEuY2hhdCYmd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJvcGVuIiksZShyKTtjYXNlIGguejpyZXR1cm4hMSE9PXIub3BlcmF0b3JJZE9yU3RhdHVzJiYoY2xlYXJUaW1lb3V0KFB0KSxQdD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBuKE9iamVjdChoLkhjKSghMSkpfSksM2UzKSksZShyKTtjYXNlIGguTDp2YXIgQT10KCk7aWYoQS5pc0JvdEFjdGl2ZSlyZXR1cm4gd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJtZXNzYWdlRnJvbVZpc2l0b3IiLHttZXNzYWdlOnIubWVzc2FnZSxmcm9tQm90OiEwfSksZShyKTtpZihEdClyZXR1cm4gRHQ9ITEsd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJtZXNzYWdlRnJvbVZpc2l0b3IiLHttZXNzYWdlOnIubWVzc2FnZSxmcm9tQm90OiEwfSksZShyKTtpZihyLnBheWxvYWQucGF5bG9hZClyZXR1cm4gd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJtZXNzYWdlRnJvbVZpc2l0b3IiLHttZXNzYWdlOnIubWVzc2FnZSxmcm9tQm90OiEwfSksZShyKTt2YXIgaj1PYmplY3QobS5iKShBKSxUPU9iamVjdChtLmgpKEEpLFA9T2JqZWN0KGIuZCkoQS5wcmVDaGF0LmRhdGEsQS52aXNpdG9yKS5sZW5ndGh8fGomJiFUO2lmKCFBLnByZUNoYXQuaXNGaWxsZWQmJlApe2lmKCFPYmplY3QoeS5nKShBKXx8ailyZXR1cm4gbihPYmplY3QoaC52Yykoci5tZXNzYWdlKSksbihPYmplY3QoaC5iZCkoInByZWNoYXQiKSksITF9ZWxzZSBpZighQS5pc1Byb2plY3RPbmxpbmUmJighT2JqZWN0KHkuYSkoQSl8fE9iamVjdCh5LmkpKEEpKSl7dmFyIEk9T2JqZWN0KGIuaCkoKTtpZighSSlyZXR1cm4gZShyKTt2YXIgUj1BLnZpc2l0b3IuZW1haWw7aWYoIVIpcmV0dXJuIG4oT2JqZWN0KGgudmMpKHIubWVzc2FnZSkpLG4oT2JqZWN0KGguYmQpKCJhbHdheXNPbmxpbmUiKSksITE7SS5jb250ZW50PVIsSS5kaXNhYmxlZD0hMCxzZXRUaW1lb3V0KChmdW5jdGlvbigpe24oT2JqZWN0KGguSWIpKEkpKX0pKX12YXIgRD1PYmplY3Qoei5hKSgibGFzdE1lc3NhZ2VGcm9tVmlzaXRvclRpbWVzdGFtcCIpfHwwLE49T2JqZWN0KHYubykoKTtyZXR1cm4gTi1EPjg2NDAwJiZ3aW5kb3cudGlkaW9DaGF0QXBpLnRyaWdnZXIoImNvbnZlcnNhdGlvblN0YXJ0IiksT2JqZWN0KHouZykoImxhc3RNZXNzYWdlRnJvbVZpc2l0b3JUaW1lc3RhbXAiLE4pLHdpbmRvdy50aWRpb0NoYXRBcGkudHJpZ2dlcigibWVzc2FnZUZyb21WaXNpdG9yIix7bWVzc2FnZTpyLm1lc3NhZ2UsZnJvbUJvdDohMX0pLE50PyhOdCgpLE50PW51bGwsZShUdChUdCh7fSxyKSx7fSx7ZW1pdDohMX0pKSk6ZShyKTtjYXNlIGguSjp2YXIgTD1PYmplY3QoYi5oKSgpLEY9ZShyKTtyZXR1cm4gTCYmbihPYmplY3QoaC5JYikoTCkpLG4oT2JqZWN0KGguQ2MpKCEwKSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtuKE9iamVjdChoLkliKShPYmplY3QoYi5tKShPYmplY3Qody5jKSgiYWx3YXlzT25saW5lVGhhbmtzIikpKSl9KSwwKSxGO2Nhc2UgaC5iOnZhciBNPXQoKTtpZigicmF0ZUNvbnZlcnNhdGlvbiI9PT1yLm1lc3NhZ2UudHlwZSlpZihPYmplY3QoeS5iKShNLCJyYXRlQ29udmVyc2F0aW9uIikuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hZS5kaXNhYmxlZH0pKS5sZW5ndGg+MClyZXR1cm4gT2JqZWN0KHh0LmYpKCksITE7dmFyIEI9TS5oaWRlV2hlbk9mZmxpbmUmJiFNLmlzUHJvamVjdE9ubGluZSYmIU0udmlzaXRvci5pc19jaGF0X29uX3NpdGU7aWYoTS5pc1NvdW5kRW5hYmxlZCYmIU0ubm90aWZpY2F0aW9uU25vb3plZCYmTS5pc01vdW50ZWQmJiFCKXRyeXtPYmplY3QoQXQuYSkoKX1jYXRjaChhZSl7T2JqZWN0KFouYSkoYWUpfXJldHVybiB3aW5kb3cudGlkaW9DaGF0QXBpLnRyaWdnZXIoIm1lc3NhZ2VGcm9tT3BlcmF0b3IiLHttZXNzYWdlOnIubWVzc2FnZS5jb250ZW50LGZyb21Cb3Q6ci5tZXNzYWdlLnNlbmRlcj09PWIuZy5ib3R9KSxyLm1lc3NhZ2UuaXNXYWl0aW5nRm9yQW5zd2VyJiYoRHQ9ITApLGUocik7Y2FzZSBoLkI6dmFyIFU9ci5vcGVyYXRvcklkO3JldHVybiEodCgpLmFzc2lnbmVkT3BlcmF0b3JzLmluZGV4T2YoVSk+LTEpJiZlKHIpO2Nhc2UgaC5BOnZhciBWPXIub3BlcmF0b3JJZDtyZXR1cm4tMT09PXQoKS5hc3NpZ25lZE9wZXJhdG9ycy5pbmRleE9mKFYpPyhPYmplY3QoWi5hKSgiIi5jb25jYXQoci50eXBlLCIgLSBObyBvcGVyYXRvcklkIGZvdW5kIGluIGFzc2lnbmVkT3BlcmF0b3JzIikse29wZXJhdG9ySWQ6Vn0pLCExKTplKHIpO2Nhc2UgaC5EYjp2YXIgSD1PYmplY3QoYi5rKShyLnJhdGluZ0lzR29vZCk7cmV0dXJuIG4oT2JqZWN0KGguSWIpKEgpKSxlKHIpO2Nhc2UgaC5FYjp2YXIgVz1PYmplY3Qodi5rKShyLnVwZGF0ZURhdGEpO3JldHVybiEoIm9iamVjdCIhPT1mKCkoci51cGRhdGVEYXRhKXx8IVcpJiZlKFR0KFR0KHt9LHIpLHt9LHt1cGRhdGVEYXRhOk9iamVjdCh2LmspKHIudXBkYXRlRGF0YSl9KSk7Y2FzZSBoLmRiOnJldHVybiB3aW5kb3cudGlkaW9DaGF0QXBpLnRyaWdnZXIoInNldFN0YXR1cyIsci5zdGF0dXMpLGUocik7Y2FzZSBoLks6ci51cGRhdGVEYXRhJiZ3aW5kb3cudGlkaW9DaGF0QXBpLnRyaWdnZXIoInByZUZvcm1GaWxsZWQiLHtmb3JtX2RhdGE6ci51cGRhdGVEYXRhfSk7dmFyIHE9dCgpLCQ9T2JqZWN0KGIuaikocS5wcmVDaGF0LmRhdGEscS52aXNpdG9yKSxZPWUocik7cmV0dXJuICQmJm4oT2JqZWN0KGguSWIpKCQpKSxuKE9iamVjdChoLkNjKSghMCkpLFk7Y2FzZSBoLlc6dmFyIEcsSyxYPXIuaWZyYW1lVmlldyxRPXIuZGltZW5zaW9ucztpZihRKUc9US53aWR0aCxLPVEuaGVpZ2h0LE9iamVjdChrdC5jKShHLEspO2Vsc2V7dmFyIEo9a3QuZVtYXTtHPUoud2lkdGgsSz1KLmhlaWdodH1yZXR1cm4gd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJyZXNpemUiLHt3aWR0aDpHLGhlaWdodDpLLGlmcmFtZTpPYmplY3QoeHQuZCkoKX0pLGUocik7Y2FzZSBoLmM6cmV0dXJuIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bihPYmplY3QoaC5PYykoay5hLmNoYXQpKX0pLDIwMCksZShyKTtjYXNlIGguY2I6dmFyIGVlPXIucHJvcCx0ZT1yLnBheWxvYWQ7aWYoInByZXZpZXdWaWV3Ij09PWVlKXt2YXIgbmU9dGU7ImNsb3NlZCI9PT1uZT9uKE9iamVjdChoLnhjKSghMSkpOihuKE9iamVjdChoLnhjKSghMCkpLCJvcGVyYXRvcnNPZmZsaW5lIj09PW5lJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe24oT2JqZWN0KGguT2MpKGsuYS5jaGF0KSksbihPYmplY3QoaC5iZCkoImFsd2F5c09ubGluZSIpKX0pLDApLCJwcmVmb3JtIj09PW5lJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe24oT2JqZWN0KGguT2MpKGsuYS5jaGF0KSksbihPYmplY3QoaC5iZCkoInByZWNoYXQiKSl9KSwwKSl9cmV0dXJuIGUocik7Y2FzZSBoLkNiOnZhciByZT1lKHIpO3JldHVybiBPYmplY3Qua2V5cyhMdCkubGVuZ3RoPjAmJm4oT2JqZWN0KGguQmMpKEx0KSkscmU7Y2FzZSBoLlU6dmFyIG9lPU9iamVjdCh2LmkpKHIuZmVhdHVyZXMpO2lmKCJvYmplY3QiIT09ZigpKHIuZmVhdHVyZXMpfHwhb2UpcmV0dXJuITE7dmFyIGllPVR0KFR0KHt9LHIpLHt9LHtmZWF0dXJlczpvZX0pO3JldHVybiBMdD1UdChUdCh7fSxMdCksb2UpLG9lLmN1c3RvbUJyYW5kaW5nJiYoT2JqZWN0KHZlLmIpKHZlLmEud2hpdGVsYWJlbGluZ0VuYWJsZWQpfHxuKE9iamVjdChoLm9kKSh2ZS5hLndoaXRlbGFiZWxpbmdFbmFibGVkKSkpLGUoaWUpO2RlZmF1bHQ6cmV0dXJuIGUocil9fX19LEJ0PWZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0U3RhdGUsbj1lLmRpc3BhdGNoO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7c3dpdGNoKHIudHlwZSl7Y2FzZSBoLmI6dmFyIG89dCgpO2lmKG8uaXNTb3VuZEVuYWJsZWQmJm8ubm90aWZpY2F0aW9uU25vb3plZClyZXR1cm4gZShyKTt2YXIgaT1yLm1lc3NhZ2UudHlwZTtpZihvLnZpZXc9PT1rLmEuY2xvc2VkKXt2YXIgYT0icmF0ZUNvbnZlcnNhdGlvbiI9PT1pP2suYS5jaGF0OmsuYS5mbHk7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtuKE9iamVjdChoLkZjKShyLm1lc3NhZ2UpKSxuKE9iamVjdChoLk9jKShhKSl9KSwwKX1lbHNlIGlmKG8udmlldz09PWsuYS5mbHkpeyJyYXRlQ29udmVyc2F0aW9uIj09PWkmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bihPYmplY3QoaC5PYykoay5hLmNoYXQpKX0pLDApfWVsc2Ugby52aWV3PT09ay5hLndlbGNvbWUmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bihPYmplY3QoaC5PYykoay5hLmNoYXQpKX0pLDApO3JldHVybiBlKHIpO2Nhc2UgaC5MOnJldHVybiB0KCkudmlldyE9PWsuYS5jaGF0JiZuKE9iamVjdChoLk9jKShrLmEuY2hhdCkpLGUocik7ZGVmYXVsdDpyZXR1cm4gZShyKX19fX0sVXQ9aWUoKSh6LmgsMjAwKSx6dD1udWxsLFZ0PSExLEh0PWZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0U3RhdGUsbj1lLmRpc3BhdGNoO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7c3dpdGNoKHIudHlwZSl7Y2FzZSBoLnpiOmNhc2UgaC5UOmNhc2UgaC5wYjpjYXNlIGguSDpyZXR1cm4gZShyKTtjYXNlIGguc2I6dmFyIG89T2JqZWN0KHouYikoITEpO3JldHVybiBvJiZ6LmMuZ2V0KCkhPT1vLnBlcnNpc3RlZFN0YXRlUmV2JiYobihPYmplY3QoaC5vYykobykpLHouYy5zZXQoby5wZXJzaXN0ZWRTdGF0ZVJldikpLGUocik7ZGVmYXVsdDp2YXIgaT1lKHIpO3JldHVybiExPT09enQ/KFZ0fHwoVnQ9ITAsbihPYmplY3QoaC5aYykoT2JqZWN0KHcuYykoImxvY2FsU3RvcmFnZU5vdEF2YWlsYWJsZSIsbnVsbCwiWW91J3JlIHZpZXdpbmcgdGhpcyBwYWdlIGluIFByaXZhdGUvSW5jb2duaXRvIG1vZGUgYW5kIHlvdXIgbWVzc2FnZXMgYXJlbid0IHNhdmVkIHdoZW4geW91IGdvIHRvIG90aGVyIHBhZ2VzLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGVuYWJsZSBsb2NhbFN0b3JhZ2UgaWYgaXQncyBibG9ja2VkIGluIHlvdXIgYnJvd3Nlci4iKSkpKSxpKTooenQ9bnVsbD09PXp0P09iamVjdCh6LmgpKHQoKSk6VXQodCgpKSxpKX19fX07ZnVuY3Rpb24gV3QoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIHF0KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP1d0KE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bygpKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpXdChPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiAkdChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gWXQoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/JHQoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtvKCkoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOiR0KE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfXZhciBHdD1udWxsLEt0PWZ1bmN0aW9uKCl7aWYoIUd0KXt2YXIgZT1PYmplY3Qodi5oKSgpfHwicHJldmlldyI7R3Q9InRpZGlvXyIuY29uY2F0KGUsIl8iKX1yZXR1cm4gR3R9LFh0PWZ1bmN0aW9uKCl7dmFyIGU9IiIuY29uY2F0KEt0KCksInRpZGlvQ2hhdExvZyIpLHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk7aWYodCl7dmFyIG49SlNPTi5wYXJzZSh0KTtyZXR1cm4gbiYmbi5kYXRhPyhuPW4uZGF0YSxBcnJheS5pc0FycmF5KG4pP24ubGVuZ3RoOjApOjB9cmV0dXJuITF9O2Z1bmN0aW9uIFF0KCl7dHJ5e3ZhciBlLHQ9IiIuY29uY2F0KEt0KCksInZpc2l0b3JEYXRhIik7dHJ5e2U9bG9jYWxTdG9yYWdlLmdldEl0ZW0odCl9Y2F0Y2goZCl7cmV0dXJufWlmKCFlKXJldHVybjt2YXIgbj1KU09OLnBhcnNlKGUpO2lmKCFufHwhbi5kYXRhKXJldHVybjt2YXIgcixvPVl0KFl0KFl0KHt9LG49bi5kYXRhKSx7fSx7aWQ6bi5pZH0sT2JqZWN0KGcuYSkoKSkse30se3Byb2plY3RfcHVibGljX2tleTpPYmplY3Qodi5oKSgpfSksaT0iIi5jb25jYXQoS3QoKSwidmlzaXRvcklkIik7dHJ5e3I9bG9jYWxTdG9yYWdlLmdldEl0ZW0oaSl9Y2F0Y2goZCl7fWlmKHIpe3ZhciBhPUpTT04ucGFyc2Uocik7bnVsbCE9PWEmJnZvaWQgMCE9PWEmJmEuZGF0YSYmInN0cmluZyI9PT10eXBlb2YgYS5kYXRhJiYzMj09PWEuZGF0YS5sZW5ndGgmJihvLmlkPWEuZGF0YSl9dmFyIHMsdT0iIi5jb25jYXQoS3QoKSwidmlzaXRvcklkT3JpZ2luIik7dHJ5e3M9bG9jYWxTdG9yYWdlLmdldEl0ZW0odSl9Y2F0Y2goZCl7fXZhciBjPW8uaWQ7aWYocyl7dmFyIGw9SlNPTi5wYXJzZShzKTtudWxsIT09bCYmdm9pZCAwIT09bCYmbC5kYXRhJiYic3RyaW5nIj09PXR5cGVvZiBsLmRhdGEmJjMyPT09bC5kYXRhLmxlbmd0aCYmKGM9bC5kYXRhKX1vLm9yaWdpbmFsVmlzaXRvcklkPWM7dmFyIGY9WHQoKTtyZXR1cm4gWXQoWXQoe30sUCkse30se3Zpc2l0b3I6byxpbXBvcnRlZE1lc3NhZ2VzQ291bnQ6Zn0pfWNhdGNoKGQpe3JldHVybiB2b2lkIE9iamVjdChaLmEpKGQpfX12YXIgSnQ9bigyMDIpO2Z1bmN0aW9uIFp0KGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBlbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9adChPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe28oKShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6WnQoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9dmFyIHRuPWkuYzt2LmEmJih0bj13aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9ffHxpLmMpO3QuZGVmYXVsdD1mdW5jdGlvbigpe3YuYXx8cy5hLmNvbmZpZygiaHR0cHM6Ly82MTFmNWI3ZDYyYTA0OWI2OGVkNzIyMjEzZTBhZmJlM0BzZW50cnkudGlkaW8uY28vMTUiLHtyZWxlYXNlOiIxLjE0MS4wIixpZ25vcmVFcnJvcnM6WyJUeXBlRXJyb3I6IExvYWQgZmFpbGVkIiwiVHlwZUVycm9yOiBGYWlsZWQgdG8gZmV0Y2giLCJUeXBlRXJyb3I6IE5ldHdvcmtFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2UuIiwiT2JqZWN0IE5vdCBGb3VuZCBNYXRjaGluZyBJZCJdLGlnbm9yZVVybHM6Wy9zYWZhcmktZXh0ZW5zaW9uL119KS5pbnN0YWxsKCk7dmFyIGU9T2JqZWN0KHYueSkoKSx0PU9iamVjdCh2LkEpKCkscj1PYmplY3Qodi5oKSgpO2lmKCFPYmplY3Qodi5DKSgpJiYoZXx8dHx8ITEhPT1yKSl7dmFyIG8sYT1PYmplY3Qodi56KSgpO2V8fGF8fHR8fChvPU9iamVjdCh6LmIpKCkpO3ZhciB1PSExO2lmKCFlJiYhYSlpZihvKXt2YXIgbD1YdCgpO2lmKCExIT09bCYmIm51bWJlciI9PT10eXBlb2YgbCYmKGw+by5pbXBvcnRlZE1lc3NhZ2VzQ291bnR8fCFvLmltcG9ydGVkTWVzc2FnZXNDb3VudCkpe3ZhciBmPVF0KCk7aWYoZil7dmFyIGQ9Zi52aXNpdG9yLHA9Zi5pbXBvcnRlZE1lc3NhZ2VzQ291bnQ7dT0hMCxvPWVuKGVuKHt9LG8pLHt9LHt2aXNpdG9yOmQsaW1wb3J0ZWRNZXNzYWdlc0NvdW50OnB9KX19fWVsc2V7dmFyIHk9UXQoKTt5JiYodT0hMCxvPXkpfW8mJihvPU9iamVjdCh6LmQpKG8sUCkpO3ZhciBtLGIsTz1bQnQsTXRdLF89d2luZG93LnBhcmVudC5kb2N1bWVudC50aWRpb0NoYXRQcmV2aWV3TW9kZURhdGE7ZXx8dHx8KG09T2JqZWN0KHouYSkoImNhY2hlIiksTy51bnNoaWZ0KGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt0LmRpc3BhdGNoO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7c3dpdGNoKG4udHlwZSl7Y2FzZSBoLkNiOmlmKGUpe3ZhciByPW4uZGF0YS53aWRnZXRfZGF0YS5jYWNoZV9oYXNoO2lmKGUuY2FjaGVfaGFzaD09PXJ8fCJ1bmRlZmluZWQiPT09dHlwZW9mIHIpe3ZhciBvPU9iamVjdCh2LmUpKG4pO3JldHVybiBvLmRhdGEud2lkZ2V0X2RhdGE9cXQocXQoe30sZSksbi5kYXRhLndpZGdldF9kYXRhKSxPYmplY3Qoei5nKSgiY2FjaGUiLG8uZGF0YS53aWRnZXRfZGF0YSksdChvKX1yZXR1cm4gT2JqZWN0KHouZykoImNhY2hlIixuLmRhdGEud2lkZ2V0X2RhdGEpLHQobil9cmV0dXJuIE9iamVjdCh6LmcpKCJjYWNoZSIsbi5kYXRhLndpZGdldF9kYXRhKSx0KG4pO2RlZmF1bHQ6cmV0dXJuIHQobil9fX19fShtKSkpLGUmJl8mJiJmdW5jdGlvbiI9PT10eXBlb2YgXy5wcmVNaWRkbGV3YXJlJiZPLnVuc2hpZnQoXy5wcmVNaWRkbGV3YXJlKSxlfHx0fHwoYj1mdW5jdGlvbihlKXt2YXIgdD1udWxsLG49ITEscj1bXSxvPTAsaT0hMCxhPSExLHM9bmV3IEwuYSgiaHR0cHM6Ly9zb2NrZXQudGlkaW8uY286NDQzIiwhMSx7cmVjb25uZWN0aW9uRGVsYXk6NTAwLHJlY29ubmVjdGlvbkRlbGF5TWF4OjZlNCxyYW5kb21pemF0aW9uRmFjdG9yOi44LHJlY29ubmVjdGlvbkF0dGVtcHRzOjUwMCx0cmFuc3BvcnRzOlsid2Vic29ja2V0Il19KTtmdW5jdGlvbiB1KGUsdCl7dHJ5e249ITE7Zm9yKHZhciBvPUQoKShlLDIpWzFdLnZpc2l0b3JfaWQ7MCE9PXIubGVuZ3RoOyl7dmFyIGk9ci5zaGlmdCgpLGE9RCgpKGksMykscz1hWzBdLHU9YVsxXSxjPWFbMl07dChzLE90KE90KHt9LHUpLHt9LHt2aXNpdG9ySWQ6b30pLGMpfX1jYXRjaChsKXtPYmplY3QoWi5hKShsKX19cmV0dXJuIHMuc2V0RW1pdFF1ZXVlQ29uc3RhbnRQYXJhbWV0ZXJzRnVuY3Rpb24oKGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lOyJ2aXNpdG9yUmVnaXN0ZXIiIT09dCYmInZpc2l0b3JJZGVudGlmeSIhPT10JiYidmlzaXRvckxhc3RTZWVuVXBkYXRlIiE9PXQmJihyLnZpc2l0b3JJZHx8KHIudmlzaXRvcklkPW4udmlzaXRvci5pZCksci5wcm9qZWN0UHVibGljS2V5fHwoci5wcm9qZWN0UHVibGljS2V5PW4ucHVibGljS2V5KSxyLmRldmljZXx8KHIuZGV2aWNlPW4uaXNNb2JpbGU/Im1vYmlsZSI6ImRlc2t0b3AiKSl9KSkscy5zZXRMaXN0ZW5lcnMoW1hlLFFlLEplLFplLG50LGV0LHJ0LGl0LG90LGF0LHN0LHV0LGN0LGx0LGZ0LGR0LHB0LGh0LHZ0LGd0LHl0LG10LGJ0XSkscy5zZXRNYW5hZ2VyRXZlbnRzQWN0aW9ucygiY29ubmVjdCIsKGZ1bmN0aW9uKG4scil7YXx8KGE9ITApLG89MCxuLmRpc3BhdGNoKE9iamVjdChoLk1jKShvKSksbi5nZXRTdGF0ZSgpLnRpZGlvSWRlbnRpZnlDaGFuZ2VkP3IoYmUsKGZ1bmN0aW9uKCl7cihPZSxlLGkscy5jbG9zZUNvbm5lY3Rpb24pfSkpOnIoT2UsZSxpLHMuY2xvc2VDb25uZWN0aW9uKSx0JiYoY2xlYXJJbnRlcnZhbCh0KSx0PW51bGwpLHQ9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7cihBZSl9KSwzZTQpfSkpLHMuc2V0TWFuYWdlckV2ZW50c0FjdGlvbnMoInJlY29ubmVjdF9hdHRlbXB0IiwoZnVuY3Rpb24oZSl7YSYmKGk9ITEpLG8rPTEsZS5kaXNwYXRjaChPYmplY3QoaC5NYykobykpfSkpLHMuc2V0U29ja2V0RW1pdFdyYXBwZXIoKGZ1bmN0aW9uKGUsdCxvLGkpe3ZhciBhPW87InZpc2l0b3JQcmVGb3JtIj09PWUmJihuPSEwLGE9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtvLmFwcGx5KHZvaWQgMCx0KSx1KHQsaSl9KSxuJiYidmlzaXRvck5ld01lc3NhZ2UiPT09ZT9yLnB1c2goW2UsdCxhXSk6aShlLHQsYSl9KSkscy5jb25uZWN0aW9uTWFuYWdlcigpfShtKSxPLnB1c2goU3QoYikpKSxPLnB1c2goYygpKHMuYSkpLGV8fGF8fHR8fE8ucHVzaChIdCk7dmFyIEU9T2JqZWN0KGkuZCkoSSxvLHRuKGkuYS5hcHBseSh2b2lkIDAsTykpKTt0JiZuLmUoNCkudGhlbihuLmJpbmQobnVsbCw0MDEpKS50aGVuKChmdW5jdGlvbihlKXt2YXIgdD0oMCxlLmRlZmF1bHQpKCk7RS5kaXNwYXRjaChPYmplY3QoaC5vYykodCkpfSkpO3ZhciBDPUUuZ2V0U3RhdGUoKTtzLmEuc2V0VGFnc0NvbnRleHQoe3B1YmxpY0tleTpDLnB1YmxpY0tleSx2aXNpdG9ySWQ6Qy52aXNpdG9yLmlkLG9yaWdpbmFsVmlzaXRvcklkOkMudmlzaXRvci5vcmlnaW5hbFZpc2l0b3JJZCx1cmw6T2JqZWN0KHYucCkoKX0pO3ZhciBTPUMudmlzaXRvci5lbWFpbCxrPUMudmlzaXRvci5uYW1lLHg9e2lkOkMudmlzaXRvci5pZH07UyYmKHguZW1haWw9UyksayYmKHgudXNlcm5hbWU9aykscy5hLnNldFVzZXJDb250ZXh0KHgpLG8/RS5kaXNwYXRjaChPYmplY3QoaC5rYykobykpOkUuZGlzcGF0Y2goT2JqZWN0KGguWWIpKE9iamVjdChnLmIpKCkpKTt2YXIgQT1PYmplY3Qodi50KSgpO0UuZGlzcGF0Y2goT2JqZWN0KGguU2IpKEEpKTt0cnl7dmFyIGo7aWYobnVsbCE9PShqPXdpbmRvdy5wYXJlbnQpJiZ2b2lkIDAhPT1qJiZqLmhpc3Rvcnkpe3ZhciBUPXdpbmRvdy5wYXJlbnQuaGlzdG9yeSxSPXdpbmRvdy5wYXJlbnQuaGlzdG9yeS5wdXNoU3RhdGU7d2luZG93LnBhcmVudC5oaXN0b3J5LnB1c2hTdGF0ZT1mdW5jdGlvbigpe3RyeXsiZnVuY3Rpb24iPT09dHlwZW9mIHdpbmRvdy5vbnB1c2hzdGF0ZSYmd2luZG93Lm9ucHVzaHN0YXRlKGFyZ3VtZW50cyl9Y2F0Y2goZSl7fXJldHVybiBSLmFwcGx5KFQsYXJndW1lbnRzKX19fWNhdGNoKE4pe09iamVjdChaLmEpKCJDYW4ndCBhY2Nlc3Mgd2luZG93LnBhcmVudCB3aGVuIHRyeWluZyB0byBwYXRjaCBwdXNoU3RhdGUiLHtlOk59KX1yZXR1cm4gT2JqZWN0KHYuYykoKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgZT1PYmplY3Qodi5wKSgpO2UuaW5jbHVkZXMoSnQuYil8fEUuZGlzcGF0Y2goT2JqZWN0KGguamQpKGUpKX0pKX0pKSwhZSYmYiYmYi5jb25uZWN0VG9Tb2NrZXRzKEUsd2luZG93LnBhcmVudC5oaXN0b3J5LChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pLHtxdWVyeTp7cHBrOnIsZGV2aWNlOk9iamVjdCh2LkQpKCk/Im1vYmlsZSI6ImRlc2t0b3AifX0pLGhlKEUpLGUmJihFLmRpc3BhdGNoKE9iamVjdChoLktjKSgicHJldmlld01vZGVFbmFibGVkIiwhMCkpLHdpbmRvdy5wYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKGZ1bmN0aW9uKGUpe2lmKCEoZS5vcmlnaW4uaW5jbHVkZXMoInRpZGlvY2hhdC5jb20iKXx8ZS5vcmlnaW4uaW5jbHVkZXMoInRpZGlvLmNvbSIpfHxlLm9yaWdpbi5pbmNsdWRlcygidGlkaW8uZGV2Iil8fGUub3JpZ2luLmluY2x1ZGVzKCJ0aWRpby5pbiIpfHxlLm9yaWdpbi5pbmNsdWRlcygidGlkaW8tbG9jYWwiKSkmJiJodHRwOi8vdGlkaW8ubG9jYWwiIT09ZS5vcmlnaW4mJiJodHRwOi8vbG9jYWxob3N0OjM0NTYiIT09ZS5vcmlnaW4pcmV0dXJuITE7dmFyIHQ9ZS5kYXRhO3JldHVybiB0PUpTT04ucGFyc2UodCksRS5kaXNwYXRjaChPYmplY3QoaC5LYykodC5wcm9wLHQucGF5bG9hZCkpLCEwfSksITEpLF8mJihfLnByZWZvcm1EYXRhJiZFLmRpc3BhdGNoKE9iamVjdChoLktjKSgicHJlQ2hhdERhdGEiLF8ucHJlZm9ybURhdGEpKSxfLnJvdXRpbmdSdWxlcyYmRS5kaXNwYXRjaChPYmplY3QoaC5LYykoInJvdXRpbmdSdWxlcyIsXy5yb3V0aW5nUnVsZXMpKSxfLm9wZXJhdG9ycyYmRS5kaXNwYXRjaChPYmplY3QoaC5LYykoIm9wZXJhdG9ycyIsXy5vcGVyYXRvcnMpKSxfLmNvbG9yJiZFLmRpc3BhdGNoKE9iamVjdChoLktjKSgiY29sb3IiLF8uY29sb3IpKSxfLmJhbm5lckltYWdlJiZFLmRpc3BhdGNoKE9iamVjdChoLktjKSgiYmFubmVySW1hZ2UiLF8uYmFubmVySW1hZ2UpKSxfLnRyYW5zbGF0aW9ucyYmT2JqZWN0KHcuYikoXy50cmFuc2xhdGlvbnMsImVuIiksdm9pZCAwIT09Xy5zaWRlYmFyJiZFLmRpc3BhdGNoKE9iamVjdChoLktjKSgic2lkZWJhciIsXy5zaWRlYmFyKSksXy5tZXNzYWdlcyYmRS5kaXNwYXRjaChPYmplY3QoaC5LYykoIm1lc3NhZ2VzIixfLm1lc3NhZ2VzKSksXy5wcmV2aWV3VmlldyYmRS5kaXNwYXRjaChPYmplY3QoaC5LYykoInByZXZpZXdWaWV3IixfLnByZXZpZXdWaWV3KSksXy5oaWRlV2hlbk9mZmxpbmUmJkUuZGlzcGF0Y2goT2JqZWN0KGguS2MpKCJoaWRlV2hlbk9mZmxpbmUiLF8uaGlkZVdoZW5PZmZsaW5lKSksXy53aWRnZXRMYWJlbFN0YXR1cyYmRS5kaXNwYXRjaChPYmplY3QoaC5LYykoIndpZGdldExhYmVsU3RhdHVzIixfLndpZGdldExhYmVsU3RhdHVzKSksITE9PT1fLndpZGdldFNvdW5kU3RhdHVzJiZFLmRpc3BhdGNoKE9iamVjdChoLktjKSgid2lkZ2V0U291bmRTdGF0dXMiLF8ud2lkZ2V0U291bmRTdGF0dXMpKSxfLmNoYXRPblNpdGUmJkUuZGlzcGF0Y2goT2JqZWN0KGguS2MpKCJjaGF0T25TaXRlIixfLmNoYXRPblNpdGUpKSxfLm1lc3NhZ2VGb3JGbHkmJkUuZGlzcGF0Y2goT2JqZWN0KGguS2MpKCJtZXNzYWdlRm9yRmx5IixfLm1lc3NhZ2VGb3JGbHkpKSwhMT09PV8uc2hvd0JyYW5kaW5nJiZFLmRpc3BhdGNoKE9iamVjdChoLktjKSgic2hvd0JyYW5kaW5nIixfLnNob3dCcmFuZGluZykpLF8uY3VzdG9tQnJhbmRpbmcmJkUuZGlzcGF0Y2goT2JqZWN0KGguS2MpKCJjdXN0b21CcmFuZGluZyIsXy5jdXN0b21CcmFuZGluZykpKSxFLmRpc3BhdGNoKE9iamVjdChoLlZjKSgpKSksdSYmRS5kaXNwYXRjaChPYmplY3QoaC5UYikoKSksRX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24ucih0KTtuKDg1KSxuKDU3KSxuKDI5KTt2YXIgcj1uKDQpLG89bi5uKHIpLGk9bigxMDgpLGE9big0Mykscz0obig4NCksbigxMDcpLG4oMTcpKSx1PW4oNDQpLGM9by5hLmxhenkoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uZSgyKS50aGVuKG4uYmluZChudWxsLDQwMykpfSkpO3ZhciBsPWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KGEuZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzTW91bnRlZH0pKSx0PU9iamVjdChhLmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5oaWRlV2hlbk9mZmxpbmV9KSksbj1PYmplY3QoYS5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNQcm9qZWN0T25saW5lfSkpLG89T2JqZWN0KGEuZCkocy5nKTtyZXR1cm4hZXx8dCYmIW4mJiFvP251bGw6T2JqZWN0KHUuZCkoci5TdXNwZW5zZSx7ZmFsbGJhY2s6bnVsbH0sT2JqZWN0KHUuZCkoYyxudWxsKSl9LGY9bigxKSxkPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoaS5yZW5kZXIpKE9iamVjdCh1LmQpKGEuYSx7c3RvcmU6ZX0sT2JqZWN0KHUuZCkobCxudWxsKSksd2luZG93LnBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGlkaW8tY2hhdCIpKX07d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2s9d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2t8fGZ1bmN0aW9uKGUpe3ZhciB0PURhdGUubm93KCk7cmV0dXJuIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSh7ZGlkVGltZW91dDohMSx0aW1lUmVtYWluaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWF4KDAsNTAtKERhdGUubm93KCktdCkpfX0pfSksMSl9LHdpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2s9d2luZG93LmNhbmNlbElkbGVDYWxsYmFja3x8ZnVuY3Rpb24oZSl7Y2xlYXJUaW1lb3V0KGUpfSx3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaygoZnVuY3Rpb24oKXt2YXIgZT1uKDMxNCkuZGVmYXVsdDt3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaygoZnVuY3Rpb24oKXt2YXIgdD1lKCk7d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKGZ1bmN0aW9uKCl7aWYodCl7dmFyIGU9dC5nZXRTdGF0ZSgpLG49T2JqZWN0KHMuZykoZSkscj1PYmplY3QoZi55KSgpLG89d2luZG93LnBhcmVudC5kb2N1bWVudCxpPW8uY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoaS5pZD0idGlkaW8tY2hhdCIsIW58fHIpby5ib2R5LmFwcGVuZENoaWxkKGkpLGQodCk7ZWxzZXt2YXIgYT1vLmJvZHkucXVlcnlTZWxlY3RvcigiLnJpZ2h0IiksdT1vLmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKTt1LmNsYXNzTmFtZT0iY2VudGVyIix1LmFwcGVuZENoaWxkKGkpLGEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodSxhKSxkKHQpfTB9fSkse3RpbWVvdXQ6NTB9KX0pLHt0aW1lb3V0OjEwMH0pfSkse3RpbWVvdXQ6MTAwfSl9XSk7"}},"time_used":27,"timings":{"blocked":0,"dns":0,"connect":1,"send":0,"wait":15,"receive":0,"ssl":10},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/i/productlogos/translate/v14/24px.svg","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.360Z","timestamp":1785132839360,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/i/productlogos/translate/v14/24px.svg HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ncontent-length: 3340\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 10:10:10 GMT\r\nexpires: Fri, 23 Jul 2027 10:10:10 GMT\r\ncache-control: public, max-age=31536000\r\nage: 331429\r\nlast-modified: Wed, 20 Apr 2022 14:24:23 GMT\r\ncontent-type: image/svg+xml\r\nvary: Accept-Encoding\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":6225,"size_decoded":4178,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"2bd5c073a88b83ed74db88282a56ddfb","sha1":"d0ebfc376f8c6a44a8d4cd216817dcd7d0c33650","sha256":"ab5c23a05e39deed14d9d8262b0dce9f024f86105a27196cad37d14a3f516e09","sha512":"5c6c4a92e93fc0f6a675658cc84f6187fdebd3eee94efd07e24658736cba598f3bc7156b19834b13fb44c1d43fcb7df9fcca7f0a453037e30da76ba8f4b23b89","ssdeep":"96:+R2K3Z4n7tyVwip82hezk6227gLFoXhu1XuE20ot+pVY3YptWDzOzgXK3Zx:ql3KnxyGGMzb7noR20NTww33","tlshash":"c1d1e6f19309d815cd6a83d8cd9b8002aa1f25ddd50ac6cc7639fb3bd1a50eb1d2d7a4","first_seen":"2023-04-06T21:34:37Z","last_seen":"2026-07-27T09:46:57.020234Z","times_seen":76497,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxkZWZzPjxwYXRoIGQ9Ik0yMS41IDVoLTkuMTdMMTEgMUgyLjVDMS42OCAxIDEgMS42OCAxIDIuNXYxNWMwIC44My42OCAxLjUgMS41IDEuNWg5LjE3TDEzIDIzaDguNWMuODIgMCAxLjUtLjY4IDEuNS0xLjV2LTE1YzAtLjgzLS42OC0xLjUtMS41LTEuNXoiIGlkPSJhIi8+PC9kZWZzPjxjbGlwUGF0aCBpZD0iYiI+PHVzZSBvdmVyZmxvdz0idmlzaWJsZSIgeGxpbms6aHJlZj0iI2EiLz48L2NsaXBQYXRoPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iMzEiIG9wYWNpdHk9Ii4yIiBvdmVyZmxvdz0idmlzaWJsZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMyAxKSIgd2lkdGg9IjI5IiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUIwQUFBQWZDQVlBQUFBYlc4WUVBQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQSBHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFCUUJKUkVGVWVOcThWOHR1MjBZVXZYZG0rTENrIFJLaU13STFURkVYaFZaSmQxZ1c2Nnhla3Y5RFBxUHN2WGRVL1VhRHJvSnNrS3krQ0luQ2NHcEt0RnkyU00vZjJERVhaaWEwb2R0S1cgQWtGSjh6aHp6bjNTMFljdnBzKzc5RU1EYmozWWZndjRFTStYVE4vZkVPYjNaZzNBWG1xN2o2NEQ1L2UveC9FZnpaTW5YNWp4K0xGWiBMTHlwNnlORE96c2tZYjZSdWJGZHBiZHZLVWwySmMrZDlQdlA1ZG16VXlINlRWb1lYUU9xK0g1Zzl2YitjT05zTzltYUxwSXl5WlBVIGtaTkFwcG1oOVZwZzVrU1h3Q1NWSjUvVmkvcjhUbDczeTJGOWVQaWRKM29hZ2ErQjR2a1VnRis2RVcxbmR6MTFndk5kRGRMMWJETnIgeUtrQ1dPMTZ0aHlVR1dJSWVhZTJaR3ZuMW9mNXhGRXhvR0Y1ZUhnTTRBTlpzVzAzMlRmMDVNamVXK3htTktlZWRlV0FnOXRteXdQTSA2ckdZek9BUEJTZlE1U3MwTmY0cEFtUnJTbUJQMWVoSXhRNkRweEYxYVhhU0g1WDBiRGNBUjFhT3hMUlB0UGRyWnJ3bmQ1NVN4M2d6IElNTzcyT3dCcTlrbW94MFJTa0hIUk54clJKV0ZEYlFYS3BSMXhONGVPZngwTnFuTWRGSHVsWS9ydy8xUkFFNWNyRXZ2ZmZHQ3ZYL0UgVlVvT0MzTW0yNGVhTzZUeU5aamVCNUUrc0RMTXQydENxWkVXOGxjZ1BTVTJ4MEloS2xBWW9UUDR4VVR1ZVVNdkh2Skszb3VROGZmSCBIUDYySnBHZWcvVlNZY2lxTkFEYkhReHZZNWV0ZHI2NXloTlhsRzJCNXhqemdXZkhKb1NlWjVPbGJ1YXErY3pReVlTdnhhbDcwMWRKIFNXb2lnUk5xWEl0ak9SaHNDK3g3NE5mRHRQUTZhR1BrZ0FVbEdST3BUS0JRUjRnYkIxeDZmanozL0RLOEdzb0hqL1NWRzZwSkFDaSsgTmhRZEFwc1FKRlBDZWxpWUtJbWdlRUpteWxjM1h6dzV5cDl4bklNWU1rWnQ5SGpWaEsvR2VIdHFaSTUrS1VWSlh0U1ZRY3djWURQbyBGSTkzamhXK0RXU2p6WnJHdHMwTlFTd09aVEZvTWFNQmFseTZDVEZaRzJLWFV0M1oxYVF6QzM2cktyRkowY2dVYjZhWlJudVJ3anRJIGxvN0VxM0NMV1N5YTRlSjdhK1ROMmV1ZHZDbGJrMTdJdEZlcG9RTHJweVF5eGtaVGpCWUlpd3FuWHdGLzFtWGVyUWl2dHUrSG9ocDcgdGY3Y1dKbkNUZ0JsZUNRM2JCRWFQaWFDVFJYa05xQkx1OTU1bzJrditOeklJb2dEa0dsQUVmdXdMNTFEWWg5ejNzZEsxeTFBTHlYMiBGeEpMSzNGajMzOU5Zbk8xNlA0ZkVsOEo5SFVTYXl0eFRIRlJZcXJobko2MEFaVTJsTnBETk9VTGFaSDFGcUJYSlM0TGhOOEVDZW9zIE1nYkxXVXgzQUsreHY0K1pLTjZBQ3h4bFp3MHhEemRaS2o3WjZFMUFMeVErOTFXTmNsd2dJVTZ3d1JsaTd4VGt6akE4QlFDU0J4ZkwgK01VaGxuR01ETVlsZnNQdVdzZFNGNEdaYTIyNmlvMU1XNG56UHZrUWJXZ0RuSWxHWUhTQ1RVK1FiT0k5Qk50VFRCN2h4bUVJaCtGVCBLREpHWm9pVnBrQTZLbU5SajkwRTBkdVBObWFOeEoyOVFWaDBSeFdzT01OUmgwSnlESWs3TEJLMWl3NjJCVjFjTEthWHBZMm4rSFdzIEdrWmlkT1pFeXNwM2ZESzRLM1R2SzkwRWlzR2Y2YkQvazZDVHFEcEJadDZFb1RXY1NYUVU1bWhYMUZ2Tm0vWFJpeVFpYXcwWEttRGkgRVhMOWtkVjZGTU11OWt2cHlVRG9CM1NJQjV1WXhwMitmU3I5UDdOYTdJT2lwc1VweFo1QnFJU05UdzFyRnk2YkdyS29JakFiUzl1dSBFS29UMk5vd3FpV0o3Y3FNMEtEOWxUOFgydCtsS3ozUzJsNFovZTR2OXB0WHpjRnluOVpkOG5sSEhjalhhTlpzYUN2S3FsVzZkV1AyIElicjdzZEUyZTY4SDlzeStUdk41SjZud3lkTFV2dHVXZm1vTHVnSDRaZzM0SnpiYkh3Ty93YXZHKzY4VmRKUFhpaHVDL3pjdlVKKzAgMFcydWZ3UVlBR0hLSzJDRk1JcnpBQUFBQUVsRlRrU3VRbUNDIi8+PHJhZGlhbEdyYWRpZW50IGN4PSI3LjM5NCIgY3k9IjUuNDM3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImMiIHI9IjIzLjQxNiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRUVFIi8+PHN0b3Agb2Zmc2V0PSIuNDMyIiBzdG9wLWNvbG9yPSIjRTZFNkU2Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTFFMUUxIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBkPSJNMTMgMjNoOC41Yy44MiAwIDEuNS0uNjggMS41LTEuNXYtMTVjMC0uODMtLjY4LTEuNS0xLjUtMS41SDdsNiAxOHoiIGZpbGw9InVybCgjYykiLz48L2c+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTggMTF2LTFoLTF2MWgtMy43NXYxaDUuMzJjLS4yLjQ5LS42IDEuMy0xLjMyIDIuMTQtLjUxLS42LS44Ni0xLjE4LTEuMS0xLjY0aC0xLjExYy4zNi44NC45IDEuNjYgMS41MiAyLjM4bC0yLjYgMi41OC43MS43MSAyLjU4LTIuNTggMi41OCAyLjU4LjcxLS43MS0yLjYtMi41OGMuNzQtLjg2IDEuMzMtMS44NSAxLjY4LTIuODhIMjF2LTFoLTN6IiBmaWxsPSIjNjA3RDhCIi8+PGxpbmVhckdyYWRpZW50IGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iZCIgeDE9IjEyLjMzMyIgeDI9IjIzIiB5MT0iMTQiIHkyPSIxNCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMjEyMTIxIiBzdG9wLW9wYWNpdHk9Ii4xIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMjEyMTIxIiBzdG9wLW9wYWNpdHk9Ii4wMiIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTIuMzMgNUwyMyAxNS42N1YyM0gxMyIgZmlsbD0idXJsKCNkKSIvPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iOCIgb3BhY2l0eT0iLjEiIG92ZXJmbG93PSJ2aXNpYmxlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC41IDE3LjUpIiB3aWR0aD0iOSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBb0FBQUFKQ0FZQUFBQUxwcjBUQUFBQUNYQklXWE1BQUFzU0FBQUxFZ0hTM1g3OEFBQUEgR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU9GSlJFRlVlTnAwVUQxTEEwRVVuTGU3SnNKaCBDaUZwTFZOWWFTMzQxMUw3Wi9JblVwZ21xUklSTEd4RU9FVlFzb1JjYm5lY3U2QUdUQjRNNzJ2ZXZqZHIrRFBEZitOdnMzODU4cTdhIEZwNG9ET1pCSjVkSk1DVkR6SjJUK0xZWXBlQXlUajM5VU1OWGhBMDBIQUJYS3k4OWJZNlVscXJGb01IbTVRSzBhL21iWFl4U3l5Wm0gZUNCVGU1S3I2OCtOR3ErS3Y0UXpvU004cTNaUDhpbWpYamRFdi82WXNuZCtxNmE3VU40WEZzS1lsaWZiVUpYdmozZnR5dEFxTTF2SiB6NlVnR3ZnaUliTjkwZzhSVmRkRktaL3B6cVgrWTVORHRkb25IVEk3MXZnV1lBRHpXbWR4LzRmcG1RQUFBQUJKUlU1RXJrSmdnZz09Ii8+PHBhdGggZD0iTTE3IDE5bC00IDQtMS4zMy00IiBmaWxsPSIjM0Y1MUI1Ii8+PC9nPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIxLjUgNUg3bC4wNC4xMkgyMS41Yy44MiAwIDEuNS42NyAxLjUgMS41VjYuNWMwLS44My0uNjgtMS41LTEuNS0xLjV6IiBmaWxsPSIjMjEyMTIxIiBmaWxsLW9wYWNpdHk9Ii4wMiIvPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIxLjUgMjIuODhIMTNMMTEuNzEgMTloLS4wNEwxMyAyM2g4LjVjLjgyIDAgMS41LS42OCAxLjUtMS41di0uMTJjMCAuODItLjY4IDEuNS0xLjUgMS41eiIgZmlsbD0iIzIxMjEyMSIgZmlsbC1vcGFjaXR5PSIuMSIvPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTEyLjk3IDIyLjkxTDEzIDIzbDQtNGgtLjEyIiBmaWxsPSIjMUEyMzdFIiBmaWxsLW9wYWNpdHk9Ii4yIi8+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTEuNjcgMTkuMTJoNS4yMUwxNyAxOWgtNS4zMyIgZmlsbD0iIzFBMjM3RSIgZmlsbC1vcGFjaXR5PSIuMSIvPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iMjIiIG9wYWNpdHk9Ii4yIiBvdmVyZmxvdz0idmlzaWJsZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLS41IC0uNSkiIHdpZHRoPSIyMCIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCVUFBQUFYQ0FZQUFBRGszd1NkQUFBQUNYQklXWE1BQUFzU0FBQUxFZ0hTM1g3OEFBQUEgR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQVVwSlJFRlVlTnFzbGJGT3d6QVFRTy9zUUNSYyBzcUFPbFJnck1qQ1ZyK0VyK0laK0F4L1dUQ3dWZXlWUWw5SU9RWTJQYzJxaE5Gd2NHc2RTckhOc1A1MmZwVFBDZVVQNFg2UFFaQTJaIFBpNDFscVhScENZS3RBNXRzRkJWRmRvOXBlbmg4MjFaU1dzUzExMlgxaEJkUFhHNDRCU3lRTWFFb0hjSjZRSkx1K0x4cmd1S1FEUUIgVUF1T24zbmZMQVRscWMwcHNtdnV2eVFWaWJmQVJ5YVhvUVBlaDZIazlNdzR1TDJidjN4czMxK1A3VVdxNVJkN0xzdk44YWtnNXpCUCBLVFBTSWdXWE4zT0NRbzZBUmtwaUNOUWQzNm1hZWdWNkRHZ2pXMWxCSkZSV01CUWFWREFVR2xRd0F2U3ZnaGhvcDRJWWFLZUNrYURuIENtS2hvb0pZcUtoQXRhbzU5VlYxb2Qzdzk5QlU0RXNmY1FWWHJ1QnVQQk12Z0pJdjFzZG1QU1ZBM0hPaEx2eS9iQ0MwcURrOHJqUDkgVHRXQjM2Z1Z2MUhydmplcTc5MlNqb2tSRi9aN0Z6OENEQUM4RW1XREtWR0RMZ0FBQUFCSlJVNUVya0pnZ2c9PSIvPjxwYXRoIGQ9Ik0xMSAxSDIuNUMxLjY4IDEgMSAxLjY4IDEgMi41djE1YzAgLjgzLjY4IDEuNSAxLjUgMS41SDE3TDExIDF6IiBmaWxsPSIjNDI4NUY0Ii8+PC9nPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIuNSAxQzEuNjggMSAxIDEuNjggMSAyLjV2LjEyYzAtLjgyLjY4LTEuNSAxLjUtMS41SDExVjFIMi41eiIgZmlsbD0iI0ZGRiIgZmlsbC1vcGFjaXR5PSIuMDIiLz48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGQ9Ik0xMSAxdi4xMmw1LjkyIDE3Ljc1SDIuNWMtLjgyIDAtMS41LS42Ny0xLjUtMS41di4xMmMwIC44NC42OCAxLjUxIDEuNSAxLjUxSDE3TDExIDF6IiBmaWxsPSIjMjEyMTIxIiBmaWxsLW9wYWNpdHk9Ii4xIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2IpIj48cGF0aCBkPSJNNy41IDEwdjEuMmgxLjk4Yy0uMDguNTItLjYgMS41MS0xLjk4IDEuNTEtMS4yIDAtMi4xNy0uOTktMi4xNy0yLjIxUzYuMyA4LjI5IDcuNSA4LjI5Yy42OCAwIDEuMTMuMjkgMS4zOS41NGwuOTUtLjkyQzkuMjQgNy4zNSA4LjQ0IDcgNy41IDcgNS41NyA3IDQgOC41NyA0IDEwLjVTNS41NyAxNCA3LjUgMTRjMi4wMiAwIDMuMzYtMS40MiAzLjM2LTMuNDIgMC0uMjMtLjAyLS40MS0uMDYtLjU4SDcuNXoiIGZpbGw9IiNFRUUiLz48cGF0aCBkPSJNNCA3aDd2N0g0eiIgZmlsbD0ibm9uZSIvPjwvZz48cmFkaWFsR3JhZGllbnQgY3g9IjEuNDU3IiBjeT0iMS40MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJlIiByPSIyOS43OTIiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0ZGRiIgc3RvcC1vcGFjaXR5PSIuMSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGRiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBkPSJNMjEuNSA1aC05LjE3TDExIDFIMi41QzEuNjggMSAxIDEuNjggMSAyLjV2MTVjMCAuODMuNjggMS41IDEuNSAxLjVoOS4xN0wxMyAyM2g4LjVjLjgyIDAgMS41LS42OCAxLjUtMS41di0xNWMwLS44My0uNjgtMS41LTEuNS0xLjV6IiBmaWxsPSJ1cmwoI2UpIi8+PC9zdmc+"}},"time_used":23,"timings":{"blocked":3,"dns":3,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/images/cleardot.gif","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.547Z","timestamp":1785132839547,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /images/cleardot.gif HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-type: image/gif\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 43\r\ndate: Mon, 27 Jul 2026 06:13:59 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\nlast-modified: Tue, 22 Oct 2019 18:30:00 GMT\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":43,"size_decoded":717,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"fc94fb0c3ed8a8f909dbc7630a0987ff","sha1":"56d45f8a17f5078a20af9962c992ca4678450765","sha256":"2dfe28cbdb83f01c940de6a88ab86200154fd772d568035ac568664e52068363","sha512":"c87bf81fd70cf6434ca3a6c05ad6e9bd3f1d96f77dddad8d45ee043b126b2cb07a5cf23b4137b9d8462cd8a9adf2b463ab6de2b38c93db72d2d511ca60e3b57e","ssdeep":"","tlshash":"cb900003cac8c022c2a2c0300a0c03002bbaa8300228030ec0bc30fcec2a3a38c02000","first_seen":"2023-04-05T02:54:04Z","last_seen":"2026-07-27T09:46:57.028085Z","times_seen":80180,"resource_available":true,"data":"R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="}},"time_used":45,"timings":{"blocked":0,"dns":2,"connect":25,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/lightbox.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.345Z","timestamp":1785132838345,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/js/lightbox.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 03 Jan 2022 23:40:58 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 4845\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":18929,"size_decoded":5082,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (671), with CRLF line terminators","md5":"f58c229bd407f4063d935b0a02f40191","sha1":"f20c5e033ddfc242ba7242f8d1ea1be02550c876","sha256":"db65737293ff206cfe801ea95ef29665d677bc5b19c142837096b9ad9dee886e","sha512":"88ad9bc63df3fb71224006e91a6f72e8f28d2c6d56bc26705469ea1acbeeb7efa87a72da033d38ff137042f2b24c2dc7cd48585f1cd7bf3dfdddca5f68e269c1","ssdeep":"384:ifXqSM0xmVjDOMo5XbHlxd2FFj/i3193O5GyLSwQzkn0:+C3AUnNLK","tlshash":"38827415a7242226d97732a76f0f6659eb7f52276803d34478bc92d81ff102091b6fec","first_seen":"2023-03-07T01:41:57Z","last_seen":"2026-07-27T08:27:40.292351Z","times_seen":332,"resource_available":true,"data":"LyohDQogKiBMaWdodGJveCB2Mi4xMC4wDQogKiBieSBMb2tlc2ggRGhha2FyDQogKg0KICogTW9yZSBpbmZvOg0KICogaHR0cDovL2xva2VzaGRoYWthci5jb20vcHJvamVjdHMvbGlnaHRib3gyLw0KICoNCiAqIENvcHlyaWdodCAyMDA3LCAyMDE4IExva2VzaCBEaGFrYXINCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQ0KICogaHR0cHM6Ly9naXRodWIuY29tL2xva2VzaC9saWdodGJveDIvYmxvYi9tYXN0ZXIvTElDRU5TRQ0KICoNCiAqIEBwcmVzZXJ2ZQ0KICovDQoNCi8vIFVzZXMgTm9kZSwgQU1EIG9yIGJyb3dzZXIgZ2xvYmFscyB0byBjcmVhdGUgYSBtb2R1bGUuDQooZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHsNCiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7DQogICAgICAgIC8vIEFNRC4gUmVnaXN0ZXIgYXMgYW4gYW5vbnltb3VzIG1vZHVsZS4NCiAgICAgICAgZGVmaW5lKFsnanF1ZXJ5J10sIGZhY3RvcnkpOw0KICAgIH0gZWxzZSBpZiAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKSB7DQogICAgICAgIC8vIE5vZGUuIERvZXMgbm90IHdvcmsgd2l0aCBzdHJpY3QgQ29tbW9uSlMsIGJ1dA0KICAgICAgICAvLyBvbmx5IENvbW1vbkpTLWxpa2UgZW52aXJvbm1lbnRzIHRoYXQgc3VwcG9ydCBtb2R1bGUuZXhwb3J0cywNCiAgICAgICAgLy8gbGlrZSBOb2RlLg0KICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZSgnanF1ZXJ5JykpOw0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIEJyb3dzZXIgZ2xvYmFscyAocm9vdCBpcyB3aW5kb3cpDQogICAgICAgIHJvb3QubGlnaHRib3ggPSBmYWN0b3J5KHJvb3QualF1ZXJ5KTsNCiAgICB9DQp9KHRoaXMsIGZ1bmN0aW9uICgkKSB7DQoNCiAgZnVuY3Rpb24gTGlnaHRib3gob3B0aW9ucykgew0KICAgIHRoaXMuYWxidW0gPSBbXTsNCiAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4ID0gdm9pZCAwOw0KICAgIHRoaXMuaW5pdCgpOw0KDQogICAgLy8gb3B0aW9ucw0KICAgIHRoaXMub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCB0aGlzLmNvbnN0cnVjdG9yLmRlZmF1bHRzKTsNCiAgICB0aGlzLm9wdGlvbihvcHRpb25zKTsNCiAgfQ0KDQogIC8vIERlc2NyaXB0aW9ucyBvZiBhbGwgb3B0aW9ucyBhdmFpbGFibGUgb24gdGhlIGRlbW8gc2l0ZToNCiAgLy8gaHR0cDovL2xva2VzaGRoYWthci5jb20vcHJvamVjdHMvbGlnaHRib3gyL2luZGV4Lmh0bWwjb3B0aW9ucw0KICBMaWdodGJveC5kZWZhdWx0cyA9IHsNCiAgICBhbGJ1bUxhYmVsOiAnSW1hZ2UgJTEgb2YgJTInLA0KICAgIGFsd2F5c1Nob3dOYXZPblRvdWNoRGV2aWNlczogZmFsc2UsDQogICAgZmFkZUR1cmF0aW9uOiA2MDAsDQogICAgZml0SW1hZ2VzSW5WaWV3cG9ydDogdHJ1ZSwNCiAgICBpbWFnZUZhZGVEdXJhdGlvbjogNjAwLA0KICAgIC8vIG1heFdpZHRoOiA4MDAsDQogICAgLy8gbWF4SGVpZ2h0OiA2MDAsDQogICAgcG9zaXRpb25Gcm9tVG9wOiA1MCwNCiAgICByZXNpemVEdXJhdGlvbjogNzAwLA0KICAgIHNob3dJbWFnZU51bWJlckxhYmVsOiB0cnVlLA0KICAgIHdyYXBBcm91bmQ6IGZhbHNlLA0KICAgIGRpc2FibGVTY3JvbGxpbmc6IGZhbHNlLA0KICAgIC8qDQogICAgU2FuaXRpemUgVGl0bGUNCiAgICBJZiB0aGUgY2FwdGlvbiBkYXRhIGlzIHRydXN0ZWQsIGZvciBleGFtcGxlIHlvdSBhcmUgaGFyZGNvZGluZyBpdCBpbiwgdGhlbiBsZWF2ZSB0aGlzIHRvIGZhbHNlLg0KICAgIFRoaXMgd2lsbCBmcmVlIHlvdSB0byBhZGQgaHRtbCB0YWdzLCBzdWNoIGFzIGxpbmtzLCBpbiB0aGUgY2FwdGlvbi4NCg0KICAgIElmIHRoZSBjYXB0aW9uIGRhdGEgaXMgdXNlciBzdWJtaXR0ZWQgb3IgZnJvbSBzb21lIG90aGVyIHVudHJ1c3RlZCBzb3VyY2UsIHRoZW4gc2V0IHRoaXMgdG8gdHJ1ZQ0KICAgIHRvIHByZXZlbnQgeHNzIGFuZCBvdGhlciBpbmplY3Rpb24gYXR0YWNrcy4NCiAgICAgKi8NCiAgICBzYW5pdGl6ZVRpdGxlOiBmYWxzZQ0KICB9Ow0KDQogIExpZ2h0Ym94LnByb3RvdHlwZS5vcHRpb24gPSBmdW5jdGlvbihvcHRpb25zKSB7DQogICAgJC5leHRlbmQodGhpcy5vcHRpb25zLCBvcHRpb25zKTsNCiAgfTsNCg0KICBMaWdodGJveC5wcm90b3R5cGUuaW1hZ2VDb3VudExhYmVsID0gZnVuY3Rpb24oY3VycmVudEltYWdlTnVtLCB0b3RhbEltYWdlcykgew0KICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYWxidW1MYWJlbC5yZXBsYWNlKC8lMS9nLCBjdXJyZW50SW1hZ2VOdW0pLnJlcGxhY2UoLyUyL2csIHRvdGFsSW1hZ2VzKTsNCiAgfTsNCg0KICBMaWdodGJveC5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uKCkgew0KICAgIHZhciBzZWxmID0gdGhpczsNCiAgICAvLyBCb3RoIGVuYWJsZSBhbmQgYnVpbGQgbWV0aG9kcyByZXF1aXJlIHRoZSBib2R5IHRhZyB0byBiZSBpbiB0aGUgRE9NLg0KICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgew0KICAgICAgc2VsZi5lbmFibGUoKTsNCiAgICAgIHNlbGYuYnVpbGQoKTsNCiAgICB9KTsNCiAgfTsNCg0KICAvLyBMb29wIHRocm91Z2ggYW5jaG9ycyBhbmQgYXJlYW1hcHMgbG9va2luZyBmb3IgZWl0aGVyIGRhdGEtbGlnaHRib3ggYXR0cmlidXRlcyBvciByZWwgYXR0cmlidXRlcw0KICAvLyB0aGF0IGNvbnRhaW4gJ2xpZ2h0Ym94Jy4gV2hlbiB0aGVzZSBhcmUgY2xpY2tlZCwgc3RhcnQgbGlnaHRib3guDQogIExpZ2h0Ym94LnByb3RvdHlwZS5lbmFibGUgPSBmdW5jdGlvbigpIHsNCiAgICB2YXIgc2VsZiA9IHRoaXM7DQogICAgJCgnYm9keScpLm9uKCdjbGljaycsICdhW3JlbF49bGlnaHRib3hdLCBhcmVhW3JlbF49bGlnaHRib3hdLCBhW2RhdGEtbGlnaHRib3hdLCBhcmVhW2RhdGEtbGlnaHRib3hdJywgZnVuY3Rpb24oZXZlbnQpIHsNCiAgICAgIHNlbGYuc3RhcnQoJChldmVudC5jdXJyZW50VGFyZ2V0KSk7DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfSk7DQogIH07DQoNCiAgLy8gQnVpbGQgaHRtbCBmb3IgdGhlIGxpZ2h0Ym94IGFuZCB0aGUgb3ZlcmxheS4NCiAgLy8gQXR0YWNoIGV2ZW50IGhhbmRsZXJzIHRvIHRoZSBuZXcgRE9NIGVsZW1lbnRzLiBjbGljayBjbGljayBjbGljaw0KICBMaWdodGJveC5wcm90b3R5cGUuYnVpbGQgPSBmdW5jdGlvbigpIHsNCiAgICBpZiAoJCgnI2xpZ2h0Ym94JykubGVuZ3RoID4gMCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KDQogICAgdmFyIHNlbGYgPSB0aGlzOw0KICAgICQoJzxkaXYgaWQ9ImxpZ2h0Ym94T3ZlcmxheSIgY2xhc3M9ImxpZ2h0Ym94T3ZlcmxheSI+PC9kaXY+PGRpdiBpZD0ibGlnaHRib3giIGNsYXNzPSJsaWdodGJveCI+PGRpdiBjbGFzcz0ibGItb3V0ZXJDb250YWluZXIiPjxkaXYgY2xhc3M9ImxiLWNvbnRhaW5lciI+PGltZyBjbGFzcz0ibGItaW1hZ2UiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBUC8vL3dBQUFDSDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUNSQUVBT3c9PSIgLz48ZGl2IGNsYXNzPSJsYi1uYXYiPjxhIGNsYXNzPSJsYi1wcmV2IiBocmVmPSIiID48L2E+PGEgY2xhc3M9ImxiLW5leHQiIGhyZWY9IiIgPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJsYi1sb2FkZXIiPjxhIGNsYXNzPSJsYi1jYW5jZWwiPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsYi1kYXRhQ29udGFpbmVyIj48ZGl2IGNsYXNzPSJsYi1kYXRhIj48ZGl2IGNsYXNzPSJsYi1kZXRhaWxzIj48c3BhbiBjbGFzcz0ibGItY2FwdGlvbiI+PC9zcGFuPjxzcGFuIGNsYXNzPSJsYi1udW1iZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJsYi1jbG9zZUNvbnRhaW5lciI+PGEgY2xhc3M9ImxiLWNsb3NlIj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+JykuYXBwZW5kVG8oJCgnYm9keScpKTsNCg0KICAgIC8vIENhY2hlIGpRdWVyeSBvYmplY3RzDQogICAgdGhpcy4kbGlnaHRib3ggICAgICAgPSAkKCcjbGlnaHRib3gnKTsNCiAgICB0aGlzLiRvdmVybGF5ICAgICAgICA9ICQoJyNsaWdodGJveE92ZXJsYXknKTsNCiAgICB0aGlzLiRvdXRlckNvbnRhaW5lciA9IHRoaXMuJGxpZ2h0Ym94LmZpbmQoJy5sYi1vdXRlckNvbnRhaW5lcicpOw0KICAgIHRoaXMuJGNvbnRhaW5lciAgICAgID0gdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLWNvbnRhaW5lcicpOw0KICAgIHRoaXMuJGltYWdlICAgICAgICAgID0gdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLWltYWdlJyk7DQogICAgdGhpcy4kbmF2ICAgICAgICAgICAgPSB0aGlzLiRsaWdodGJveC5maW5kKCcubGItbmF2Jyk7DQoNCiAgICAvLyBTdG9yZSBjc3MgdmFsdWVzIGZvciBmdXR1cmUgbG9va3VwDQogICAgdGhpcy5jb250YWluZXJQYWRkaW5nID0gew0KICAgICAgdG9wOiBwYXJzZUludCh0aGlzLiRjb250YWluZXIuY3NzKCdwYWRkaW5nLXRvcCcpLCAxMCksDQogICAgICByaWdodDogcGFyc2VJbnQodGhpcy4kY29udGFpbmVyLmNzcygncGFkZGluZy1yaWdodCcpLCAxMCksDQogICAgICBib3R0b206IHBhcnNlSW50KHRoaXMuJGNvbnRhaW5lci5jc3MoJ3BhZGRpbmctYm90dG9tJyksIDEwKSwNCiAgICAgIGxlZnQ6IHBhcnNlSW50KHRoaXMuJGNvbnRhaW5lci5jc3MoJ3BhZGRpbmctbGVmdCcpLCAxMCkNCiAgICB9Ow0KDQogICAgdGhpcy5pbWFnZUJvcmRlcldpZHRoID0gew0KICAgICAgdG9wOiBwYXJzZUludCh0aGlzLiRpbWFnZS5jc3MoJ2JvcmRlci10b3Atd2lkdGgnKSwgMTApLA0KICAgICAgcmlnaHQ6IHBhcnNlSW50KHRoaXMuJGltYWdlLmNzcygnYm9yZGVyLXJpZ2h0LXdpZHRoJyksIDEwKSwNCiAgICAgIGJvdHRvbTogcGFyc2VJbnQodGhpcy4kaW1hZ2UuY3NzKCdib3JkZXItYm90dG9tLXdpZHRoJyksIDEwKSwNCiAgICAgIGxlZnQ6IHBhcnNlSW50KHRoaXMuJGltYWdlLmNzcygnYm9yZGVyLWxlZnQtd2lkdGgnKSwgMTApDQogICAgfTsNCg0KICAgIC8vIEF0dGFjaCBldmVudCBoYW5kbGVycyB0byB0aGUgbmV3bHkgbWludGVkIERPTSBlbGVtZW50cw0KICAgIHRoaXMuJG92ZXJsYXkuaGlkZSgpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KICAgICAgc2VsZi5lbmQoKTsNCiAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9KTsNCg0KICAgIHRoaXMuJGxpZ2h0Ym94LmhpZGUoKS5vbignY2xpY2snLCBmdW5jdGlvbihldmVudCkgew0KICAgICAgaWYgKCQoZXZlbnQudGFyZ2V0KS5hdHRyKCdpZCcpID09PSAnbGlnaHRib3gnKSB7DQogICAgICAgIHNlbGYuZW5kKCk7DQogICAgICB9DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfSk7DQoNCiAgICB0aGlzLiRvdXRlckNvbnRhaW5lci5vbignY2xpY2snLCBmdW5jdGlvbihldmVudCkgew0KICAgICAgaWYgKCQoZXZlbnQudGFyZ2V0KS5hdHRyKCdpZCcpID09PSAnbGlnaHRib3gnKSB7DQogICAgICAgIHNlbGYuZW5kKCk7DQogICAgICB9DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfSk7DQoNCiAgICB0aGlzLiRsaWdodGJveC5maW5kKCcubGItcHJldicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHNlbGYuY3VycmVudEltYWdlSW5kZXggPT09IDApIHsNCiAgICAgICAgc2VsZi5jaGFuZ2VJbWFnZShzZWxmLmFsYnVtLmxlbmd0aCAtIDEpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgc2VsZi5jaGFuZ2VJbWFnZShzZWxmLmN1cnJlbnRJbWFnZUluZGV4IC0gMSk7DQogICAgICB9DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfSk7DQoNCiAgICB0aGlzLiRsaWdodGJveC5maW5kKCcubGItbmV4dCcpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHNlbGYuY3VycmVudEltYWdlSW5kZXggPT09IHNlbGYuYWxidW0ubGVuZ3RoIC0gMSkgew0KICAgICAgICBzZWxmLmNoYW5nZUltYWdlKDApOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgc2VsZi5jaGFuZ2VJbWFnZShzZWxmLmN1cnJlbnRJbWFnZUluZGV4ICsgMSk7DQogICAgICB9DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfSk7DQoNCiAgICAvKg0KICAgICAgU2hvdyBjb250ZXh0IG1lbnUgZm9yIGltYWdlIG9uIHJpZ2h0LWNsaWNrDQoNCiAgICAgIFRoZXJlIGlzIGEgZGl2IGNvbnRhaW5pbmcgdGhlIG5hdmlnYXRpb24gdGhhdCBzcGFucyB0aGUgZW50aXJlIGltYWdlIGFuZCBsaXZlcyBhYm92ZSBvZiBpdC4gSWYNCiAgICAgIHlvdSByaWdodC1jbGljaywgeW91IGFyZSByaWdodCBjbGlja2luZyB0aGlzIGRpdiBhbmQgbm90IHRoZSBpbWFnZS4gVGhpcyBwcmV2ZW50cyB1c2VycyBmcm9tDQogICAgICBzYXZpbmcgdGhlIGltYWdlIG9yIHVzaW5nIG90aGVyIGNvbnRleHQgbWVudSBhY3Rpb25zIHdpdGggdGhlIGltYWdlLg0KDQogICAgICBUbyBmaXggdGhpcywgd2hlbiB3ZSBkZXRlY3QgdGhlIHJpZ2h0IG1vdXNlIGJ1dHRvbiBpcyBwcmVzc2VkIGRvd24sIGJ1dCBub3QgeWV0IGNsaWNrZWQsIHdlDQogICAgICBzZXQgcG9pbnRlci1ldmVudHMgdG8gbm9uZSBvbiB0aGUgbmF2IGRpdi4gVGhpcyBpcyBzbyB0aGF0IHRoZSB1cGNvbWluZyByaWdodC1jbGljayBldmVudCBvbg0KICAgICAgdGhlIG5leHQgbW91c2V1cCB3aWxsIGJ1YmJsZSBkb3duIHRvIHRoZSBpbWFnZS4gT25jZSB0aGUgcmlnaHQtY2xpY2svY29udGV4dG1lbnUgZXZlbnQgb2NjdXJzDQogICAgICB3ZSBzZXQgdGhlIHBvaW50ZXIgZXZlbnRzIGJhY2sgdG8gYXV0byBmb3IgdGhlIG5hdiBkaXYgc28gaXQgY2FuIGNhcHR1cmUgaG92ZXIgYW5kIGxlZnQtY2xpY2sNCiAgICAgIGV2ZW50cyBhcyB1c3VhbC4NCiAgICAgKi8NCiAgICB0aGlzLiRuYXYub24oJ21vdXNlZG93bicsIGZ1bmN0aW9uKGV2ZW50KSB7DQogICAgICBpZiAoZXZlbnQud2hpY2ggPT09IDMpIHsNCiAgICAgICAgc2VsZi4kbmF2LmNzcygncG9pbnRlci1ldmVudHMnLCAnbm9uZScpOw0KDQogICAgICAgIHNlbGYuJGxpZ2h0Ym94Lm9uZSgnY29udGV4dG1lbnUnLCBmdW5jdGlvbigpIHsNCiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICB0aGlzLiRuYXYuY3NzKCdwb2ludGVyLWV2ZW50cycsICdhdXRvJyk7DQogICAgICAgICAgfS5iaW5kKHNlbGYpLCAwKTsNCiAgICAgICAgfSk7DQogICAgICB9DQogICAgfSk7DQoNCg0KICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoJy5sYi1sb2FkZXIsIC5sYi1jbG9zZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KICAgICAgc2VsZi5lbmQoKTsNCiAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9KTsNCiAgfTsNCg0KICAvLyBTaG93IG92ZXJsYXkgYW5kIGxpZ2h0Ym94LiBJZiB0aGUgaW1hZ2UgaXMgcGFydCBvZiBhIHNldCwgYWRkIHNpYmxpbmdzIHRvIGFsYnVtIGFycmF5Lg0KICBMaWdodGJveC5wcm90b3R5cGUuc3RhcnQgPSBmdW5jdGlvbigkbGluaykgew0KICAgIHZhciBzZWxmICAgID0gdGhpczsNCiAgICB2YXIgJHdpbmRvdyA9ICQod2luZG93KTsNCg0KICAgICR3aW5kb3cub24oJ3Jlc2l6ZScsICQucHJveHkodGhpcy5zaXplT3ZlcmxheSwgdGhpcykpOw0KDQogICAgJCgnc2VsZWN0LCBvYmplY3QsIGVtYmVkJykuY3NzKHsNCiAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nDQogICAgfSk7DQoNCiAgICB0aGlzLnNpemVPdmVybGF5KCk7DQoNCiAgICB0aGlzLmFsYnVtID0gW107DQogICAgdmFyIGltYWdlTnVtYmVyID0gMDsNCg0KICAgIGZ1bmN0aW9uIGFkZFRvQWxidW0oJGxpbmspIHsNCiAgICAgIHNlbGYuYWxidW0ucHVzaCh7DQogICAgICAgIGFsdDogJGxpbmsuYXR0cignZGF0YS1hbHQnKSwNCiAgICAgICAgbGluazogJGxpbmsuYXR0cignaHJlZicpLA0KICAgICAgICB0aXRsZTogJGxpbmsuYXR0cignZGF0YS10aXRsZScpIHx8ICRsaW5rLmF0dHIoJ3RpdGxlJykNCiAgICAgIH0pOw0KICAgIH0NCg0KICAgIC8vIFN1cHBvcnQgYm90aCBkYXRhLWxpZ2h0Ym94IGF0dHJpYnV0ZSBhbmQgcmVsIGF0dHJpYnV0ZSBpbXBsZW1lbnRhdGlvbnMNCiAgICB2YXIgZGF0YUxpZ2h0Ym94VmFsdWUgPSAkbGluay5hdHRyKCdkYXRhLWxpZ2h0Ym94Jyk7DQogICAgdmFyICRsaW5rczsNCg0KICAgIGlmIChkYXRhTGlnaHRib3hWYWx1ZSkgew0KICAgICAgJGxpbmtzID0gJCgkbGluay5wcm9wKCd0YWdOYW1lJykgKyAnW2RhdGEtbGlnaHRib3g9IicgKyBkYXRhTGlnaHRib3hWYWx1ZSArICciXScpOw0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAkbGlua3MubGVuZ3RoOyBpID0gKytpKSB7DQogICAgICAgIGFkZFRvQWxidW0oJCgkbGlua3NbaV0pKTsNCiAgICAgICAgaWYgKCRsaW5rc1tpXSA9PT0gJGxpbmtbMF0pIHsNCiAgICAgICAgICBpbWFnZU51bWJlciA9IGk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9IGVsc2Ugew0KICAgICAgaWYgKCRsaW5rLmF0dHIoJ3JlbCcpID09PSAnbGlnaHRib3gnKSB7DQogICAgICAgIC8vIElmIGltYWdlIGlzIG5vdCBwYXJ0IG9mIGEgc2V0DQogICAgICAgIGFkZFRvQWxidW0oJGxpbmspOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgLy8gSWYgaW1hZ2UgaXMgcGFydCBvZiBhIHNldA0KICAgICAgICAkbGlua3MgPSAkKCRsaW5rLnByb3AoJ3RhZ05hbWUnKSArICdbcmVsPSInICsgJGxpbmsuYXR0cigncmVsJykgKyAnIl0nKTsNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAkbGlua3MubGVuZ3RoOyBqID0gKytqKSB7DQogICAgICAgICAgYWRkVG9BbGJ1bSgkKCRsaW5rc1tqXSkpOw0KICAgICAgICAgIGlmICgkbGlua3Nbal0gPT09ICRsaW5rWzBdKSB7DQogICAgICAgICAgICBpbWFnZU51bWJlciA9IGo7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KDQogICAgLy8gUG9zaXRpb24gTGlnaHRib3gNCiAgICB2YXIgdG9wICA9ICR3aW5kb3cuc2Nyb2xsVG9wKCkgKyB0aGlzLm9wdGlvbnMucG9zaXRpb25Gcm9tVG9wOw0KICAgIHZhciBsZWZ0ID0gJHdpbmRvdy5zY3JvbGxMZWZ0KCk7DQogICAgdGhpcy4kbGlnaHRib3guY3NzKHsNCiAgICAgIHRvcDogdG9wICsgJ3B4JywNCiAgICAgIGxlZnQ6IGxlZnQgKyAncHgnDQogICAgfSkuZmFkZUluKHRoaXMub3B0aW9ucy5mYWRlRHVyYXRpb24pOw0KDQogICAgLy8gRGlzYWJsZSBzY3JvbGxpbmcgb2YgdGhlIHBhZ2Ugd2hpbGUgb3Blbg0KICAgIGlmICh0aGlzLm9wdGlvbnMuZGlzYWJsZVNjcm9sbGluZykgew0KICAgICAgJCgnaHRtbCcpLmFkZENsYXNzKCdsYi1kaXNhYmxlLXNjcm9sbGluZycpOw0KICAgIH0NCg0KICAgIHRoaXMuY2hhbmdlSW1hZ2UoaW1hZ2VOdW1iZXIpOw0KICB9Ow0KDQogIC8vIEhpZGUgbW9zdCBVSSBlbGVtZW50cyBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIGFuaW1hdGVkIHJlc2l6aW5nIG9mIHRoZSBsaWdodGJveC4NCiAgTGlnaHRib3gucHJvdG90eXBlLmNoYW5nZUltYWdlID0gZnVuY3Rpb24oaW1hZ2VOdW1iZXIpIHsNCiAgICB2YXIgc2VsZiA9IHRoaXM7DQoNCiAgICB0aGlzLmRpc2FibGVLZXlib2FyZE5hdigpOw0KICAgIHZhciAkaW1hZ2UgPSB0aGlzLiRsaWdodGJveC5maW5kKCcubGItaW1hZ2UnKTsNCg0KICAgIHRoaXMuJG92ZXJsYXkuZmFkZUluKHRoaXMub3B0aW9ucy5mYWRlRHVyYXRpb24pOw0KDQogICAgJCgnLmxiLWxvYWRlcicpLmZhZGVJbignc2xvdycpOw0KICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoJy5sYi1pbWFnZSwgLmxiLW5hdiwgLmxiLXByZXYsIC5sYi1uZXh0LCAubGItZGF0YUNvbnRhaW5lciwgLmxiLW51bWJlcnMsIC5sYi1jYXB0aW9uJykuaGlkZSgpOw0KDQogICAgdGhpcy4kb3V0ZXJDb250YWluZXIuYWRkQ2xhc3MoJ2FuaW1hdGluZycpOw0KDQogICAgLy8gV2hlbiBpbWFnZSB0byBzaG93IGlzIHByZWxvYWRlZCwgd2Ugc2VuZCB0aGUgd2lkdGggYW5kIGhlaWdodCB0byBzaXplQ29udGFpbmVyKCkNCiAgICB2YXIgcHJlbG9hZGVyID0gbmV3IEltYWdlKCk7DQogICAgcHJlbG9hZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgdmFyICRwcmVsb2FkZXI7DQogICAgICB2YXIgaW1hZ2VIZWlnaHQ7DQogICAgICB2YXIgaW1hZ2VXaWR0aDsNCiAgICAgIHZhciBtYXhJbWFnZUhlaWdodDsNCiAgICAgIHZhciBtYXhJbWFnZVdpZHRoOw0KICAgICAgdmFyIHdpbmRvd0hlaWdodDsNCiAgICAgIHZhciB3aW5kb3dXaWR0aDsNCg0KICAgICAgJGltYWdlLmF0dHIoew0KICAgICAgICAnYWx0Jzogc2VsZi5hbGJ1bVtpbWFnZU51bWJlcl0uYWx0LA0KICAgICAgICAnc3JjJzogc2VsZi5hbGJ1bVtpbWFnZU51bWJlcl0ubGluaw0KICAgICAgfSk7DQoNCiAgICAgICRwcmVsb2FkZXIgPSAkKHByZWxvYWRlcik7DQoNCiAgICAgICRpbWFnZS53aWR0aChwcmVsb2FkZXIud2lkdGgpOw0KICAgICAgJGltYWdlLmhlaWdodChwcmVsb2FkZXIuaGVpZ2h0KTsNCg0KICAgICAgaWYgKHNlbGYub3B0aW9ucy5maXRJbWFnZXNJblZpZXdwb3J0KSB7DQogICAgICAgIC8vIEZpdCBpbWFnZSBpbnNpZGUgdGhlIHZpZXdwb3J0Lg0KICAgICAgICAvLyBUYWtlIGludG8gYWNjb3VudCB0aGUgYm9yZGVyIGFyb3VuZCB0aGUgaW1hZ2UgYW5kIGFuIGFkZGl0aW9uYWwgMTBweCBndXR0ZXIgb24gZWFjaCBzaWRlLg0KDQogICAgICAgIHdpbmRvd1dpZHRoICAgID0gJCh3aW5kb3cpLndpZHRoKCk7DQogICAgICAgIHdpbmRvd0hlaWdodCAgID0gJCh3aW5kb3cpLmhlaWdodCgpOw0KICAgICAgICBtYXhJbWFnZVdpZHRoICA9IHdpbmRvd1dpZHRoIC0gc2VsZi5jb250YWluZXJQYWRkaW5nLmxlZnQgLSBzZWxmLmNvbnRhaW5lclBhZGRpbmcucmlnaHQgLSBzZWxmLmltYWdlQm9yZGVyV2lkdGgubGVmdCAtIHNlbGYuaW1hZ2VCb3JkZXJXaWR0aC5yaWdodCAtIDIwOw0KICAgICAgICBtYXhJbWFnZUhlaWdodCA9IHdpbmRvd0hlaWdodCAtIHNlbGYuY29udGFpbmVyUGFkZGluZy50b3AgLSBzZWxmLmNvbnRhaW5lclBhZGRpbmcuYm90dG9tIC0gc2VsZi5pbWFnZUJvcmRlcldpZHRoLnRvcCAtIHNlbGYuaW1hZ2VCb3JkZXJXaWR0aC5ib3R0b20gLSAxMjA7DQoNCiAgICAgICAgLy8gQ2hlY2sgaWYgaW1hZ2Ugc2l6ZSBpcyBsYXJnZXIgdGhlbiBtYXhXaWR0aHxtYXhIZWlnaHQgaW4gc2V0dGluZ3MNCiAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5tYXhXaWR0aCAmJiBzZWxmLm9wdGlvbnMubWF4V2lkdGggPCBtYXhJbWFnZVdpZHRoKSB7DQogICAgICAgICAgbWF4SW1hZ2VXaWR0aCA9IHNlbGYub3B0aW9ucy5tYXhXaWR0aDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2VsZi5vcHRpb25zLm1heEhlaWdodCAmJiBzZWxmLm9wdGlvbnMubWF4SGVpZ2h0IDwgbWF4SW1hZ2VXaWR0aCkgew0KICAgICAgICAgIG1heEltYWdlSGVpZ2h0ID0gc2VsZi5vcHRpb25zLm1heEhlaWdodDsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIElzIHRoZSBjdXJyZW50IGltYWdlJ3Mgd2lkdGggb3IgaGVpZ2h0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4SW1hZ2VXaWR0aCBvciBtYXhJbWFnZUhlaWdodA0KICAgICAgICAvLyBvcHRpb24gdGhhbiB3ZSBuZWVkIHRvIHNpemUgZG93biB3aGlsZSBtYWludGFpbmluZyB0aGUgYXNwZWN0IHJhdGlvLg0KICAgICAgICBpZiAoKHByZWxvYWRlci53aWR0aCA+IG1heEltYWdlV2lkdGgpIHx8IChwcmVsb2FkZXIuaGVpZ2h0ID4gbWF4SW1hZ2VIZWlnaHQpKSB7DQogICAgICAgICAgaWYgKChwcmVsb2FkZXIud2lkdGggLyBtYXhJbWFnZVdpZHRoKSA+IChwcmVsb2FkZXIuaGVpZ2h0IC8gbWF4SW1hZ2VIZWlnaHQpKSB7DQogICAgICAgICAgICBpbWFnZVdpZHRoICA9IG1heEltYWdlV2lkdGg7DQogICAgICAgICAgICBpbWFnZUhlaWdodCA9IHBhcnNlSW50KHByZWxvYWRlci5oZWlnaHQgLyAocHJlbG9hZGVyLndpZHRoIC8gaW1hZ2VXaWR0aCksIDEwKTsNCiAgICAgICAgICAgICRpbWFnZS53aWR0aChpbWFnZVdpZHRoKTsNCiAgICAgICAgICAgICRpbWFnZS5oZWlnaHQoaW1hZ2VIZWlnaHQpOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBpbWFnZUhlaWdodCA9IG1heEltYWdlSGVpZ2h0Ow0KICAgICAgICAgICAgaW1hZ2VXaWR0aCA9IHBhcnNlSW50KHByZWxvYWRlci53aWR0aCAvIChwcmVsb2FkZXIuaGVpZ2h0IC8gaW1hZ2VIZWlnaHQpLCAxMCk7DQogICAgICAgICAgICAkaW1hZ2Uud2lkdGgoaW1hZ2VXaWR0aCk7DQogICAgICAgICAgICAkaW1hZ2UuaGVpZ2h0KGltYWdlSGVpZ2h0KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIHNlbGYuc2l6ZUNvbnRhaW5lcigkaW1hZ2Uud2lkdGgoKSwgJGltYWdlLmhlaWdodCgpKTsNCiAgICB9Ow0KDQogICAgcHJlbG9hZGVyLnNyYyAgICAgICAgICA9IHRoaXMuYWxidW1baW1hZ2VOdW1iZXJdLmxpbms7DQogICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IGltYWdlTnVtYmVyOw0KICB9Ow0KDQogIC8vIFN0cmV0Y2ggb3ZlcmxheSB0byBmaXQgdGhlIHZpZXdwb3J0DQogIExpZ2h0Ym94LnByb3RvdHlwZS5zaXplT3ZlcmxheSA9IGZ1bmN0aW9uKCkgew0KICAgIHRoaXMuJG92ZXJsYXkNCiAgICAgIC53aWR0aCgkKGRvY3VtZW50KS53aWR0aCgpKQ0KICAgICAgLmhlaWdodCgkKGRvY3VtZW50KS5oZWlnaHQoKSk7DQogIH07DQoNCiAgLy8gQW5pbWF0ZSB0aGUgc2l6ZSBvZiB0aGUgbGlnaHRib3ggdG8gZml0IHRoZSBpbWFnZSB3ZSBhcmUgc2hvd2luZw0KICBMaWdodGJveC5wcm90b3R5cGUuc2l6ZUNvbnRhaW5lciA9IGZ1bmN0aW9uKGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KSB7DQogICAgdmFyIHNlbGYgPSB0aGlzOw0KDQogICAgdmFyIG9sZFdpZHRoICA9IHRoaXMuJG91dGVyQ29udGFpbmVyLm91dGVyV2lkdGgoKTsNCiAgICB2YXIgb2xkSGVpZ2h0ID0gdGhpcy4kb3V0ZXJDb250YWluZXIub3V0ZXJIZWlnaHQoKTsNCiAgICB2YXIgbmV3V2lkdGggID0gaW1hZ2VXaWR0aCArIHRoaXMuY29udGFpbmVyUGFkZGluZy5sZWZ0ICsgdGhpcy5jb250YWluZXJQYWRkaW5nLnJpZ2h0ICsgdGhpcy5pbWFnZUJvcmRlcldpZHRoLmxlZnQgKyB0aGlzLmltYWdlQm9yZGVyV2lkdGgucmlnaHQ7DQogICAgdmFyIG5ld0hlaWdodCA9IGltYWdlSGVpZ2h0ICsgdGhpcy5jb250YWluZXJQYWRkaW5nLnRvcCArIHRoaXMuY29udGFpbmVyUGFkZGluZy5ib3R0b20gKyB0aGlzLmltYWdlQm9yZGVyV2lkdGgudG9wICsgdGhpcy5pbWFnZUJvcmRlcldpZHRoLmJvdHRvbTsNCg0KICAgIGZ1bmN0aW9uIHBvc3RSZXNpemUoKSB7DQogICAgICBzZWxmLiRsaWdodGJveC5maW5kKCcubGItZGF0YUNvbnRhaW5lcicpLndpZHRoKG5ld1dpZHRoKTsNCiAgICAgIHNlbGYuJGxpZ2h0Ym94LmZpbmQoJy5sYi1wcmV2TGluaycpLmhlaWdodChuZXdIZWlnaHQpOw0KICAgICAgc2VsZi4kbGlnaHRib3guZmluZCgnLmxiLW5leHRMaW5rJykuaGVpZ2h0KG5ld0hlaWdodCk7DQogICAgICBzZWxmLnNob3dJbWFnZSgpOw0KICAgIH0NCg0KICAgIGlmIChvbGRXaWR0aCAhPT0gbmV3V2lkdGggfHwgb2xkSGVpZ2h0ICE9PSBuZXdIZWlnaHQpIHsNCiAgICAgIHRoaXMuJG91dGVyQ29udGFpbmVyLmFuaW1hdGUoew0KICAgICAgICB3aWR0aDogbmV3V2lkdGgsDQogICAgICAgIGhlaWdodDogbmV3SGVpZ2h0DQogICAgICB9LCB0aGlzLm9wdGlvbnMucmVzaXplRHVyYXRpb24sICdzd2luZycsIGZ1bmN0aW9uKCkgew0KICAgICAgICBwb3N0UmVzaXplKCk7DQogICAgICB9KTsNCiAgICB9IGVsc2Ugew0KICAgICAgcG9zdFJlc2l6ZSgpOw0KICAgIH0NCiAgfTsNCg0KICAvLyBEaXNwbGF5IHRoZSBpbWFnZSBhbmQgaXRzIGRldGFpbHMgYW5kIGJlZ2luIHByZWxvYWQgbmVpZ2hib3JpbmcgaW1hZ2VzLg0KICBMaWdodGJveC5wcm90b3R5cGUuc2hvd0ltYWdlID0gZnVuY3Rpb24oKSB7DQogICAgdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLWxvYWRlcicpLnN0b3AodHJ1ZSkuaGlkZSgpOw0KICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoJy5sYi1pbWFnZScpLmZhZGVJbih0aGlzLm9wdGlvbnMuaW1hZ2VGYWRlRHVyYXRpb24pOw0KDQogICAgdGhpcy51cGRhdGVOYXYoKTsNCiAgICB0aGlzLnVwZGF0ZURldGFpbHMoKTsNCiAgICB0aGlzLnByZWxvYWROZWlnaGJvcmluZ0ltYWdlcygpOw0KICAgIHRoaXMuZW5hYmxlS2V5Ym9hcmROYXYoKTsNCiAgfTsNCg0KICAvLyBEaXNwbGF5IHByZXZpb3VzIGFuZCBuZXh0IG5hdmlnYXRpb24gaWYgYXBwcm9wcmlhdGUuDQogIExpZ2h0Ym94LnByb3RvdHlwZS51cGRhdGVOYXYgPSBmdW5jdGlvbigpIHsNCiAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIGJyb3dzZXIgc3VwcG9ydHMgdG91Y2ggZXZlbnRzLiBJZiBzbywgd2UgdGFrZSB0aGUgY29uc2VydmF0aXZlIGFwcHJvYWNoDQogICAgLy8gYW5kIGFzc3VtZSB0aGF0IG1vdXNlIGhvdmVyIGV2ZW50cyBhcmUgbm90IHN1cHBvcnRlZCBhbmQgYWx3YXlzIHNob3cgcHJldi9uZXh0IG5hdmlnYXRpb24NCiAgICAvLyBhcnJvd3MgaW4gaW1hZ2Ugc2V0cy4NCiAgICB2YXIgYWx3YXlzU2hvd05hdiA9IGZhbHNlOw0KICAgIHRyeSB7DQogICAgICBkb2N1bWVudC5jcmVhdGVFdmVudCgnVG91Y2hFdmVudCcpOw0KICAgICAgYWx3YXlzU2hvd05hdiA9ICh0aGlzLm9wdGlvbnMuYWx3YXlzU2hvd05hdk9uVG91Y2hEZXZpY2VzKSA/IHRydWUgOiBmYWxzZTsNCiAgICB9IGNhdGNoIChlKSB7fQ0KDQogICAgdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLW5hdicpLnNob3coKTsNCg0KICAgIGlmICh0aGlzLmFsYnVtLmxlbmd0aCA+IDEpIHsNCiAgICAgIGlmICh0aGlzLm9wdGlvbnMud3JhcEFyb3VuZCkgew0KICAgICAgICBpZiAoYWx3YXlzU2hvd05hdikgew0KICAgICAgICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoJy5sYi1wcmV2LCAubGItbmV4dCcpLmNzcygnb3BhY2l0eScsICcxJyk7DQogICAgICAgIH0NCiAgICAgICAgdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLXByZXYsIC5sYi1uZXh0Jykuc2hvdygpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgaWYgKHRoaXMuY3VycmVudEltYWdlSW5kZXggPiAwKSB7DQogICAgICAgICAgdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLXByZXYnKS5zaG93KCk7DQogICAgICAgICAgaWYgKGFsd2F5c1Nob3dOYXYpIHsNCiAgICAgICAgICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoJy5sYi1wcmV2JykuY3NzKCdvcGFjaXR5JywgJzEnKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMuY3VycmVudEltYWdlSW5kZXggPCB0aGlzLmFsYnVtLmxlbmd0aCAtIDEpIHsNCiAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKCcubGItbmV4dCcpLnNob3coKTsNCiAgICAgICAgICBpZiAoYWx3YXlzU2hvd05hdikgew0KICAgICAgICAgICAgdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLW5leHQnKS5jc3MoJ29wYWNpdHknLCAnMScpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfTsNCg0KICAvLyBEaXNwbGF5IGNhcHRpb24sIGltYWdlIG51bWJlciwgYW5kIGNsb3NpbmcgYnV0dG9uLg0KICBMaWdodGJveC5wcm90b3R5cGUudXBkYXRlRGV0YWlscyA9IGZ1bmN0aW9uKCkgew0KICAgIHZhciBzZWxmID0gdGhpczsNCg0KICAgIC8vIEVuYWJsZSBhbmNob3IgY2xpY2tzIGluIHRoZSBpbmplY3RlZCBjYXB0aW9uIGh0bWwuDQogICAgLy8gVGhhbmtzIE5hdGUgV3JpZ2h0IGZvciB0aGUgZml4LiBAaHR0cHM6Ly9naXRodWIuY29tL05hdGVXcg0KICAgIGlmICh0eXBlb2YgdGhpcy5hbGJ1bVt0aGlzLmN1cnJlbnRJbWFnZUluZGV4XS50aXRsZSAhPT0gJ3VuZGVmaW5lZCcgJiYNCiAgICAgIHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0udGl0bGUgIT09ICcnKSB7DQogICAgICB2YXIgJGNhcHRpb24gPSB0aGlzLiRsaWdodGJveC5maW5kKCcubGItY2FwdGlvbicpOw0KICAgICAgaWYgKHRoaXMub3B0aW9ucy5zYW5pdGl6ZVRpdGxlKSB7DQogICAgICAgICRjYXB0aW9uLnRleHQodGhpcy5hbGJ1bVt0aGlzLmN1cnJlbnRJbWFnZUluZGV4XS50aXRsZSk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICAkY2FwdGlvbi5odG1sKHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0udGl0bGUpOw0KICAgICAgfQ0KICAgICAgJGNhcHRpb24uZmFkZUluKCdmYXN0JykNCiAgICAgICAgLmZpbmQoJ2EnKS5vbignY2xpY2snLCBmdW5jdGlvbihldmVudCkgew0KICAgICAgICAgIGlmICgkKHRoaXMpLmF0dHIoJ3RhcmdldCcpICE9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHdpbmRvdy5vcGVuKCQodGhpcykuYXR0cignaHJlZicpLCAkKHRoaXMpLmF0dHIoJ3RhcmdldCcpKTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9ICQodGhpcykuYXR0cignaHJlZicpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfQ0KDQogICAgaWYgKHRoaXMuYWxidW0ubGVuZ3RoID4gMSAmJiB0aGlzLm9wdGlvbnMuc2hvd0ltYWdlTnVtYmVyTGFiZWwpIHsNCiAgICAgIHZhciBsYWJlbFRleHQgPSB0aGlzLmltYWdlQ291bnRMYWJlbCh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICsgMSwgdGhpcy5hbGJ1bS5sZW5ndGgpOw0KICAgICAgdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLW51bWJlcicpLnRleHQobGFiZWxUZXh0KS5mYWRlSW4oJ2Zhc3QnKTsNCiAgICB9IGVsc2Ugew0KICAgICAgdGhpcy4kbGlnaHRib3guZmluZCgnLmxiLW51bWJlcicpLmhpZGUoKTsNCiAgICB9DQoNCiAgICB0aGlzLiRvdXRlckNvbnRhaW5lci5yZW1vdmVDbGFzcygnYW5pbWF0aW5nJyk7DQoNCiAgICB0aGlzLiRsaWdodGJveC5maW5kKCcubGItZGF0YUNvbnRhaW5lcicpLmZhZGVJbih0aGlzLm9wdGlvbnMucmVzaXplRHVyYXRpb24sIGZ1bmN0aW9uKCkgew0KICAgICAgcmV0dXJuIHNlbGYuc2l6ZU92ZXJsYXkoKTsNCiAgICB9KTsNCiAgfTsNCg0KICAvLyBQcmVsb2FkIHByZXZpb3VzIGFuZCBuZXh0IGltYWdlcyBpbiBzZXQuDQogIExpZ2h0Ym94LnByb3RvdHlwZS5wcmVsb2FkTmVpZ2hib3JpbmdJbWFnZXMgPSBmdW5jdGlvbigpIHsNCiAgICBpZiAodGhpcy5hbGJ1bS5sZW5ndGggPiB0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICsgMSkgew0KICAgICAgdmFyIHByZWxvYWROZXh0ID0gbmV3IEltYWdlKCk7DQogICAgICBwcmVsb2FkTmV4dC5zcmMgPSB0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXggKyAxXS5saW5rOw0KICAgIH0NCiAgICBpZiAodGhpcy5jdXJyZW50SW1hZ2VJbmRleCA+IDApIHsNCiAgICAgIHZhciBwcmVsb2FkUHJldiA9IG5ldyBJbWFnZSgpOw0KICAgICAgcHJlbG9hZFByZXYuc3JjID0gdGhpcy5hbGJ1bVt0aGlzLmN1cnJlbnRJbWFnZUluZGV4IC0gMV0ubGluazsNCiAgICB9DQogIH07DQoNCiAgTGlnaHRib3gucHJvdG90eXBlLmVuYWJsZUtleWJvYXJkTmF2ID0gZnVuY3Rpb24oKSB7DQogICAgJChkb2N1bWVudCkub24oJ2tleXVwLmtleWJvYXJkJywgJC5wcm94eSh0aGlzLmtleWJvYXJkQWN0aW9uLCB0aGlzKSk7DQogIH07DQoNCiAgTGlnaHRib3gucHJvdG90eXBlLmRpc2FibGVLZXlib2FyZE5hdiA9IGZ1bmN0aW9uKCkgew0KICAgICQoZG9jdW1lbnQpLm9mZignLmtleWJvYXJkJyk7DQogIH07DQoNCiAgTGlnaHRib3gucHJvdG90eXBlLmtleWJvYXJkQWN0aW9uID0gZnVuY3Rpb24oZXZlbnQpIHsNCiAgICB2YXIgS0VZQ09ERV9FU0MgICAgICAgID0gMjc7DQogICAgdmFyIEtFWUNPREVfTEVGVEFSUk9XICA9IDM3Ow0KICAgIHZhciBLRVlDT0RFX1JJR0hUQVJST1cgPSAzOTsNCg0KICAgIHZhciBrZXljb2RlID0gZXZlbnQua2V5Q29kZTsNCiAgICB2YXIga2V5ICAgICA9IFN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Y29kZSkudG9Mb3dlckNhc2UoKTsNCiAgICBpZiAoa2V5Y29kZSA9PT0gS0VZQ09ERV9FU0MgfHwga2V5Lm1hdGNoKC94fG98Yy8pKSB7DQogICAgICB0aGlzLmVuZCgpOw0KICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncCcgfHwga2V5Y29kZSA9PT0gS0VZQ09ERV9MRUZUQVJST1cpIHsNCiAgICAgIGlmICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICE9PSAwKSB7DQogICAgICAgIHRoaXMuY2hhbmdlSW1hZ2UodGhpcy5jdXJyZW50SW1hZ2VJbmRleCAtIDEpOw0KICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMud3JhcEFyb3VuZCAmJiB0aGlzLmFsYnVtLmxlbmd0aCA+IDEpIHsNCiAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZSh0aGlzLmFsYnVtLmxlbmd0aCAtIDEpOw0KICAgICAgfQ0KICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbicgfHwga2V5Y29kZSA9PT0gS0VZQ09ERV9SSUdIVEFSUk9XKSB7DQogICAgICBpZiAodGhpcy5jdXJyZW50SW1hZ2VJbmRleCAhPT0gdGhpcy5hbGJ1bS5sZW5ndGggLSAxKSB7DQogICAgICAgIHRoaXMuY2hhbmdlSW1hZ2UodGhpcy5jdXJyZW50SW1hZ2VJbmRleCArIDEpOw0KICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMud3JhcEFyb3VuZCAmJiB0aGlzLmFsYnVtLmxlbmd0aCA+IDEpIHsNCiAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZSgwKTsNCiAgICAgIH0NCiAgICB9DQogIH07DQoNCiAgLy8gQ2xvc2luZyB0aW1lLiA6LSgNCiAgTGlnaHRib3gucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkgew0KICAgIHRoaXMuZGlzYWJsZUtleWJvYXJkTmF2KCk7DQogICAgJCh3aW5kb3cpLm9mZigncmVzaXplJywgdGhpcy5zaXplT3ZlcmxheSk7DQogICAgdGhpcy4kbGlnaHRib3guZmFkZU91dCh0aGlzLm9wdGlvbnMuZmFkZUR1cmF0aW9uKTsNCiAgICB0aGlzLiRvdmVybGF5LmZhZGVPdXQodGhpcy5vcHRpb25zLmZhZGVEdXJhdGlvbik7DQogICAgJCgnc2VsZWN0LCBvYmplY3QsIGVtYmVkJykuY3NzKHsNCiAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJw0KICAgIH0pOw0KICAgIGlmICh0aGlzLm9wdGlvbnMuZGlzYWJsZVNjcm9sbGluZykgew0KICAgICAgJCgnaHRtbCcpLnJlbW92ZUNsYXNzKCdsYi1kaXNhYmxlLXNjcm9sbGluZycpOw0KICAgIH0NCiAgfTsNCg0KICByZXR1cm4gbmV3IExpZ2h0Ym94KCk7DQp9KSk7DQo="}},"time_used":72,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":71,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/stock.jpg","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.384Z","timestamp":1785132838384,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/stock.jpg HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Thu, 28 Apr 2022 22:29:22 GMT\r\naccept-ranges: bytes\r\ncontent-length: 65866\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":65866,"size_decoded":66133,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 536x730, components 3","md5":"de0c0f475d7a6021a7fc7f86a7c3f0a9","sha1":"2284b51b4e9f6d5376421e8751b0dabd9529abd2","sha256":"4db7fc3e3539d8fe3258e634f297c25f430cc5ac2767f984defc76d08513ce4a","sha512":"a6ba1bdf9471d2ed50afff612dea83d94d4c1b42c16b47c6abdf16fc4ca0aed5fd70b4e7eb6812a7a9a5be969949bfe1b686fe52d7c7f802354ee5ca0f90fa96","ssdeep":"1536:1OgwfBM4B1BbNyv6f6PppJsmnD9lg0xyVPPG4Om8SF:1OgQB1XbWNsct6N9lF","tlshash":"b7530290f71fe1e4dc1fe67a697818a6d69908a028e2c03973b5605cdf436cb59cc688","first_seen":"2025-08-12T04:19:48.010273Z","last_seen":"2026-07-27T06:14:42.633584Z","times_seen":3,"resource_available":false,"data":"/9j/4AAQSkZJRgABAQAAAQABAAD/4gHoSUNDX1BST0ZJTEUAAQEAAAHYAAAAAAIQAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAADRyWFlaAAABJAAAABRnWFlaAAABOAAAABRiWFlaAAABTAAAABRyVFJDAAABYAAAAChnVFJDAAABYAAAAChiVFJDAAABYAAAACh3dHB0AAABiAAAABRjcHJ0AAABnAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABgAAAAcAEcAbwBvAGcAbABlACAAUwBrAGkAYQAgWFlaIAAAAAAAAG+iAAA49gAAA5FYWVogAAAAAAAAYpMAALeFAAAY21hZWiAAAAAAAAAkoAAAD4QAALbUcGFyYQAAAAAABAAAAAJmZgAA8qcAAA1YAAAT0AAACloAAAAAAAAAAFhZWiAAAAAAAAD21gABAAAAANMtbWx1YwAAAAAAAAABAAAADGVuVVMAAAAgAAAAHABHAG8AbwBnAGwAZQAgAEkAbgBjAC4AIAAyADAAMQA2/9sAQwABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB/9sAQwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB/8AAEQgC2gIYAwEiAAIRAQMRAf/EAB8AAQAABgMBAQAAAAAAAAAAAAACAwQFBgcBCAkKC//EAH4QAAECBAIFBQoGCwkICwoIDwEAAgMEBREGIQcSMUFRCBNhcZEJFCIygaGxwdHwFVJykrLSChYjMzRCYnSClLM1U1RVc5PC0+EXJDh3eLa38RgmKDc5Q2OEosPiGSVFV1hko7S11ERGdoOHlZemGik2R0hWWmZ1lpinxNXW/8QAHwEBAAIBBQEBAQAAAAAAAAAAAAECAwQFBgcICQoL/8QAUBEAAQMCAgYIAwYDBAcGBQUAAQACAwQRBSEGEjFBUWEHE3GBkbHB8DKh0QgUIkJy4WLC8RUzUoIJFiMkQ6KyNDd2krO0FzZzdcM1U3S10v/aAAwDAQACEQMRAD8A+/hEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREUAdcngBfp9zY7kRREgC5NguDrbrev2KREftubAZdVxsHTmCTuuMjcBVIzAPEIikkRb7MvlWPYLA59IUJbE+Lfrt9cqoREVNqxPin5zPYU1YnxT85nsVSiJ72n0PvuCptWJ8U/OZ7E1YnxT85nsVSiKLdvifr5egVNqxPin5zPYmrE+KfnM9iqURLdvifr5egVNqxPin5zPYmrE+KfnM9iqURLdvifr5egVNqxPin5zPYmrE+KfnM9iqURLdvifr5egVNqxPin5zPYmrE+KfnM9iqURLdvifr5egVNqxPin5zPYmrE+KfnM9iqURLdvifr5egVNqxPin5zPYmrE+KfnM9iqURLdvifr5egVNqxPinyub6relchsThY9FvrhVCIpUkmI3M7Nm0HPqOztPlUTYgN77uvLyHPyqXNO1YV/ygMzYZg7ffLbuVIyLfs7L53BGwbjwsb3AJBPnsyHu3vmFcwb5hFTQ4huAcxa5OzhnbaDxH9inaxDrHYbWPvxPtRRf3z98OajRERSiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIuHGwJ8g61KcdVoG859GeQ4b7eUcFHENh5b9gKlRCDs2AZbRsGXC1iRbqARQffllfK6pIrrDaeggZA7SeFjuN9psDcNVyGwdQ3W82Sskw8gEjcCBfaN9iMwbkg2vcZ7LBXpvit+SPQiDadnd2n323USIiKURERERERERERERERERERERERERERERERERERFbaq8Mlg45fdmDPfk719StsGNcCx67Zm/EeUdFxtIIuqqvO1ZEH/l4Yz6Q8W8uzyqxSsU22i+QBtYC9yAdvQd17E7SptlfnbuttWNxs4b9mW7f623HuWTQnawFvJfIXt5BYg2FzvyyaFVg3aCD4py6ja39nQr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T5NyzwyUB21p8jj672ysDbcN2Sg+DpX4h4ZOIy3A557VYOcN9/fFULOHkBxPLf58lrwye27RfifCJ6MsxbO97ehQd6W/Gt0W2eZbE+DJS99R1/lbuGzYuPguU+K/55Vtfl67j2b7d11GofeXHkeR+S153r+V79id6/le/Yth/Bcp8V/z3J8FynxX/Pcmvy958+z58k1Dy8e3l2fPjlrzvX8r37E71/K9+xbD+C5T4r/nuT4LlPiv+e5Nfl7z59nz5JqHl49vLs+fHLXnev5Xv2J3r+V79i2H8FynxX/PcnwXKfFf89ya/L3nz7PnyTUPLx7eXZ8+OWvO9fyvfsTvX8r37FsP4LlPiv8AnuT4LlPiv+e5Nfl7z59nz5JqHl49vLs+fHLXnev5RPUCT2AKMSfQPJ4JHXfd1bTYnYVsD4LlPiv+eVz8GSnxHfO/sTrOXvP0tlx7k1D7N+O3IctiwZkpnk3tuDnexIG/IZgCwF+IVxgS+ywyO3dkWm+QsSM8x02IGd8qFOlRsY7Li9x29d/clRiSl2m4afK49HbawIvfPoyUF5OXbyve/Pnz2XUhme3iPEEX+Y3+GxWmBC1bC1iM8t23M9AO0nIkGzbBXKG0AWsBYDLbZt9tgBkSNmYbcjOwKqGy8JpyaRs35ZbOkWsNlt3DKYIbQSbbbcdwtx2dHtJVFe3Z4dvPn58VE0WAHR5965REUoiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiL//2Q=="}},"time_used":61,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":35,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js","fqdn":"ajax.googleapis.com","domain":"ajax.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.542Z","timestamp":1785132838542,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /ajax/libs/jquery/1.4.2/jquery.min.js HTTP/1.1\r\nHost: ajax.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/hosted-libraries-pushers\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"hosted-libraries-pushers\"\r\nreport-to: {\"group\":\"hosted-libraries-pushers\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/hosted-libraries-pushers\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 24715\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:45 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:45 GMT\r\ncache-control: public, max-age=31536000, stale-while-revalidate=2592000\r\nlast-modified: Tue, 03 Mar 2020 19:15:00 GMT\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 406994\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":72174,"size_decoded":25699,"mime_type":"text/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (820)","md5":"10092eee563dec2dca82b77d2cf5a1ae","sha1":"65cbff4e9d95d47a6f31d96ab4ea361c1f538a7b","sha256":"e23a2a4e2d7c2b41ebcdd8ffc0679df7140eb7f52e1eebabf827a88182643c59","sha512":"cc92cf5a9b3a62a18af432fdffb81b76da84e2f43ce3c7800a919c10809118d0611e29a47f103ff3df18a54d5331bc5f06ef4771dc406cc763b30ff2a66a3e81","ssdeep":"1536:Du98G2ltZMNWnDr7doqPp07HVDTLGbY9TGA7zEcbnkb17jQq3nPRefqvpsz:DuJItn6qepq15nUfqvpsz","tlshash":"5063e9c9b2c67273c3e730b824af510af136a8aaa44c4854f06ce8e5bd74a55447bf7d","first_seen":"2023-03-07T01:07:10Z","last_seen":"2026-07-27T06:14:42.634407Z","times_seen":9525,"resource_available":true,"data":"LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNC4yCiAqIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMCwgSm9obiBSZXNpZwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNsdWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJpZ2h0IDIwMTAsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBTYXQgRmViIDEzIDIyOjMzOjQ4IDIwMTAgLTA1MDAKICovCihmdW5jdGlvbihBLHcpe2Z1bmN0aW9uIG1hKCl7aWYoIWMuaXNSZWFkeSl7dHJ5e3MuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYSl7c2V0VGltZW91dChtYSwxKTtyZXR1cm59Yy5yZWFkeSgpfX1mdW5jdGlvbiBRYShhLGIpe2Iuc3JjP2MuYWpheCh7dXJsOmIuc3JjLGFzeW5jOmZhbHNlLGRhdGFUeXBlOiJzY3JpcHQifSk6Yy5nbG9iYWxFdmFsKGIudGV4dHx8Yi50ZXh0Q29udGVudHx8Yi5pbm5lckhUTUx8fCIiKTtiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX1mdW5jdGlvbiBYKGEsYixkLGYsZSxqKXt2YXIgaT1hLmxlbmd0aDtpZih0eXBlb2YgYj09PSJvYmplY3QiKXtmb3IodmFyIG8gaW4gYilYKGEsbyxiW29dLGYsZSxkKTtyZXR1cm4gYX1pZihkIT09dyl7Zj0haiYmZiYmYy5pc0Z1bmN0aW9uKGQpO2ZvcihvPTA7bzxpO28rKyllKGFbb10sYixmP2QuY2FsbChhW29dLG8sZShhW29dLGIpKTpkLGopO3JldHVybiBhfXJldHVybiBpPwplKGFbMF0sYik6d31mdW5jdGlvbiBKKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9ZnVuY3Rpb24gWSgpe3JldHVybiBmYWxzZX1mdW5jdGlvbiBaKCl7cmV0dXJuIHRydWV9ZnVuY3Rpb24gbmEoYSxiLGQpe2RbMF0udHlwZT1hO3JldHVybiBjLmV2ZW50LmhhbmRsZS5hcHBseShiLGQpfWZ1bmN0aW9uIG9hKGEpe3ZhciBiLGQ9W10sZj1bXSxlPWFyZ3VtZW50cyxqLGksbyxrLG4scjtpPWMuZGF0YSh0aGlzLCJldmVudHMiKTtpZighKGEubGl2ZUZpcmVkPT09dGhpc3x8IWl8fCFpLmxpdmV8fGEuYnV0dG9uJiZhLnR5cGU9PT0iY2xpY2siKSl7YS5saXZlRmlyZWQ9dGhpczt2YXIgdT1pLmxpdmUuc2xpY2UoMCk7Zm9yKGs9MDtrPHUubGVuZ3RoO2srKyl7aT11W2tdO2kub3JpZ1R5cGUucmVwbGFjZShPLCIiKT09PWEudHlwZT9mLnB1c2goaS5zZWxlY3Rvcik6dS5zcGxpY2Uoay0tLDEpfWo9YyhhLnRhcmdldCkuY2xvc2VzdChmLGEuY3VycmVudFRhcmdldCk7bj0wO2ZvcihyPQpqLmxlbmd0aDtuPHI7bisrKWZvcihrPTA7azx1Lmxlbmd0aDtrKyspe2k9dVtrXTtpZihqW25dLnNlbGVjdG9yPT09aS5zZWxlY3Rvcil7bz1qW25dLmVsZW07Zj1udWxsO2lmKGkucHJlVHlwZT09PSJtb3VzZWVudGVyInx8aS5wcmVUeXBlPT09Im1vdXNlbGVhdmUiKWY9YyhhLnJlbGF0ZWRUYXJnZXQpLmNsb3Nlc3QoaS5zZWxlY3RvcilbMF07aWYoIWZ8fGYhPT1vKWQucHVzaCh7ZWxlbTpvLGhhbmRsZU9iajppfSl9fW49MDtmb3Iocj1kLmxlbmd0aDtuPHI7bisrKXtqPWRbbl07YS5jdXJyZW50VGFyZ2V0PWouZWxlbTthLmRhdGE9ai5oYW5kbGVPYmouZGF0YTthLmhhbmRsZU9iaj1qLmhhbmRsZU9iajtpZihqLmhhbmRsZU9iai5vcmlnSGFuZGxlci5hcHBseShqLmVsZW0sZSk9PT1mYWxzZSl7Yj1mYWxzZTticmVha319cmV0dXJuIGJ9fWZ1bmN0aW9uIHBhKGEsYil7cmV0dXJuImxpdmUuIisoYSYmYSE9PSIqIj9hKyIuIjoiIikrYi5yZXBsYWNlKC9cLi9nLCJgIikucmVwbGFjZSgvIC9nLAoiJiIpfWZ1bmN0aW9uIHFhKGEpe3JldHVybiFhfHwhYS5wYXJlbnROb2RlfHxhLnBhcmVudE5vZGUubm9kZVR5cGU9PT0xMX1mdW5jdGlvbiByYShhLGIpe3ZhciBkPTA7Yi5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZT09PShhW2RdJiZhW2RdLm5vZGVOYW1lKSl7dmFyIGY9Yy5kYXRhKGFbZCsrXSksZT1jLmRhdGEodGhpcyxmKTtpZihmPWYmJmYuZXZlbnRzKXtkZWxldGUgZS5oYW5kbGU7ZS5ldmVudHM9e307Zm9yKHZhciBqIGluIGYpZm9yKHZhciBpIGluIGZbal0pYy5ldmVudC5hZGQodGhpcyxqLGZbal1baV0sZltqXVtpXS5kYXRhKX19fSl9ZnVuY3Rpb24gc2EoYSxiLGQpe3ZhciBmLGUsajtiPWImJmJbMF0/YlswXS5vd25lckRvY3VtZW50fHxiWzBdOnM7aWYoYS5sZW5ndGg9PT0xJiZ0eXBlb2YgYVswXT09PSJzdHJpbmciJiZhWzBdLmxlbmd0aDw1MTImJmI9PT1zJiYhdGEudGVzdChhWzBdKSYmKGMuc3VwcG9ydC5jaGVja0Nsb25lfHwhdWEudGVzdChhWzBdKSkpe2U9CnRydWU7aWYoaj1jLmZyYWdtZW50c1thWzBdXSlpZihqIT09MSlmPWp9aWYoIWYpe2Y9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yy5jbGVhbihhLGIsZixkKX1pZihlKWMuZnJhZ21lbnRzW2FbMF1dPWo/ZjoxO3JldHVybntmcmFnbWVudDpmLGNhY2hlYWJsZTplfX1mdW5jdGlvbiBLKGEsYil7dmFyIGQ9e307Yy5lYWNoKHZhLmNvbmNhdC5hcHBseShbXSx2YS5zbGljZSgwLGIpKSxmdW5jdGlvbigpe2RbdGhpc109YX0pO3JldHVybiBkfWZ1bmN0aW9uIHdhKGEpe3JldHVybiJzY3JvbGxUbyJpbiBhJiZhLmRvY3VtZW50P2E6YS5ub2RlVHlwZT09PTk/YS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3c6ZmFsc2V9dmFyIGM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IGMuZm4uaW5pdChhLGIpfSxSYT1BLmpRdWVyeSxTYT1BLiQscz1BLmRvY3VtZW50LFQsVGE9L15bXjxdKig8W1x3XFddKz4pW14+XSokfF4jKFtcdy1dKykkLyxVYT0vXi5bXjojXFtcLixdKiQvLFZhPS9cUy8sCldhPS9eKFxzfFx1MDBBMCkrfChcc3xcdTAwQTApKyQvZyxYYT0vXjwoXHcrKVxzKlwvPz4oPzo8XC9cMT4pPyQvLFA9bmF2aWdhdG9yLnVzZXJBZ2VudCx4YT1mYWxzZSxRPVtdLEwsJD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGFhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYmE9QXJyYXkucHJvdG90eXBlLnB1c2gsUj1BcnJheS5wcm90b3R5cGUuc2xpY2UseWE9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y7Yy5mbj1jLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbihhLGIpe3ZhciBkLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYS5ub2RlVHlwZSl7dGhpcy5jb250ZXh0PXRoaXNbMF09YTt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKGE9PT0iYm9keSImJiFiKXt0aGlzLmNvbnRleHQ9czt0aGlzWzBdPXMuYm9keTt0aGlzLnNlbGVjdG9yPSJib2R5Ijt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoKGQ9VGEuZXhlYyhhKSkmJgooZFsxXXx8IWIpKWlmKGRbMV0pe2Y9Yj9iLm93bmVyRG9jdW1lbnR8fGI6cztpZihhPVhhLmV4ZWMoYSkpaWYoYy5pc1BsYWluT2JqZWN0KGIpKXthPVtzLmNyZWF0ZUVsZW1lbnQoYVsxXSldO2MuZm4uYXR0ci5jYWxsKGEsYix0cnVlKX1lbHNlIGE9W2YuY3JlYXRlRWxlbWVudChhWzFdKV07ZWxzZXthPXNhKFtkWzFdXSxbZl0pO2E9KGEuY2FjaGVhYmxlP2EuZnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpOmEuZnJhZ21lbnQpLmNoaWxkTm9kZXN9cmV0dXJuIGMubWVyZ2UodGhpcyxhKX1lbHNle2lmKGI9cy5nZXRFbGVtZW50QnlJZChkWzJdKSl7aWYoYi5pZCE9PWRbMl0pcmV0dXJuIFQuZmluZChhKTt0aGlzLmxlbmd0aD0xO3RoaXNbMF09Yn10aGlzLmNvbnRleHQ9czt0aGlzLnNlbGVjdG9yPWE7cmV0dXJuIHRoaXN9ZWxzZSBpZighYiYmL15cdyskLy50ZXN0KGEpKXt0aGlzLnNlbGVjdG9yPWE7dGhpcy5jb250ZXh0PXM7YT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO3JldHVybiBjLm1lcmdlKHRoaXMsCmEpfWVsc2UgcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxUKS5maW5kKGEpOmMoYikuZmluZChhKTtlbHNlIGlmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gVC5yZWFkeShhKTtpZihhLnNlbGVjdG9yIT09dyl7dGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yO3RoaXMuY29udGV4dD1hLmNvbnRleHR9cmV0dXJuIGMubWFrZUFycmF5KGEsdGhpcyl9LHNlbGVjdG9yOiIiLGpxdWVyeToiMS40LjIiLGxlbmd0aDowLHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gUi5jYWxsKHRoaXMsMCl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD90aGlzLnRvQXJyYXkoKTphPDA/dGhpcy5zbGljZShhKVswXTp0aGlzW2FdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWMoKTtjLmlzQXJyYXkoYSk/YmEuYXBwbHkoZixhKTpjLm1lcmdlKGYsYSk7Zi5wcmV2T2JqZWN0PXRoaXM7Zi5jb250ZXh0PXRoaXMuY29udGV4dDtpZihiPT09CiJmaW5kIilmLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrKHRoaXMuc2VsZWN0b3I/IiAiOiIiKStkO2Vsc2UgaWYoYilmLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK2IrIigiK2QrIikiO3JldHVybiBmfSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGMuZWFjaCh0aGlzLGEsYil9LHJlYWR5OmZ1bmN0aW9uKGEpe2MuYmluZFJlYWR5KCk7aWYoYy5pc1JlYWR5KWEuY2FsbChzLGMpO2Vsc2UgUSYmUS5wdXNoKGEpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXtyZXR1cm4gYT09PS0xP3RoaXMuc2xpY2UoYSk6dGhpcy5zbGljZShhLCthKzEpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhSLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwic2xpY2UiLFIuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYy5tYXAodGhpcywKZnVuY3Rpb24oYixkKXtyZXR1cm4gYS5jYWxsKGIsZCxiKX0pKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8YyhudWxsKX0scHVzaDpiYSxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZX07Yy5mbi5pbml0LnByb3RvdHlwZT1jLmZuO2MuZXh0ZW5kPWMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzWzBdfHx7fSxiPTEsZD1hcmd1bWVudHMubGVuZ3RoLGY9ZmFsc2UsZSxqLGksbztpZih0eXBlb2YgYT09PSJib29sZWFuIil7Zj1hO2E9YXJndW1lbnRzWzFdfHx7fTtiPTJ9aWYodHlwZW9mIGEhPT0ib2JqZWN0IiYmIWMuaXNGdW5jdGlvbihhKSlhPXt9O2lmKGQ9PT1iKXthPXRoaXM7LS1ifWZvcig7YjxkO2IrKylpZigoZT1hcmd1bWVudHNbYl0pIT1udWxsKWZvcihqIGluIGUpe2k9YVtqXTtvPWVbal07aWYoYSE9PW8paWYoZiYmbyYmKGMuaXNQbGFpbk9iamVjdChvKXx8Yy5pc0FycmF5KG8pKSl7aT1pJiYoYy5pc1BsYWluT2JqZWN0KGkpfHwKYy5pc0FycmF5KGkpKT9pOmMuaXNBcnJheShvKT9bXTp7fTthW2pdPWMuZXh0ZW5kKGYsaSxvKX1lbHNlIGlmKG8hPT13KWFbal09b31yZXR1cm4gYX07Yy5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oYSl7QS4kPVNhO2lmKGEpQS5qUXVlcnk9UmE7cmV0dXJuIGN9LGlzUmVhZHk6ZmFsc2UscmVhZHk6ZnVuY3Rpb24oKXtpZighYy5pc1JlYWR5KXtpZighcy5ib2R5KXJldHVybiBzZXRUaW1lb3V0KGMucmVhZHksMTMpO2MuaXNSZWFkeT10cnVlO2lmKFEpe2Zvcih2YXIgYSxiPTA7YT1RW2IrK107KWEuY2FsbChzLGMpO1E9bnVsbH1jLmZuLnRyaWdnZXJIYW5kbGVyJiZjKHMpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX0sYmluZFJlYWR5OmZ1bmN0aW9uKCl7aWYoIXhhKXt4YT10cnVlO2lmKHMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpcmV0dXJuIGMucmVhZHkoKTtpZihzLmFkZEV2ZW50TGlzdGVuZXIpe3MuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsCkwsZmFsc2UpO0EuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYy5yZWFkeSxmYWxzZSl9ZWxzZSBpZihzLmF0dGFjaEV2ZW50KXtzLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEwpO0EuYXR0YWNoRXZlbnQoIm9ubG9hZCIsYy5yZWFkeSk7dmFyIGE9ZmFsc2U7dHJ5e2E9QS5mcmFtZUVsZW1lbnQ9PW51bGx9Y2F0Y2goYil7fXMuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsJiZhJiZtYSgpfX19LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuICQuY2FsbChhKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ9LGlzQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuICQuY2FsbChhKT09PSJbb2JqZWN0IEFycmF5XSJ9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oYSl7aWYoIWF8fCQuY2FsbChhKSE9PSJbb2JqZWN0IE9iamVjdF0ifHxhLm5vZGVUeXBlfHxhLnNldEludGVydmFsKXJldHVybiBmYWxzZTtpZihhLmNvbnN0cnVjdG9yJiYhYWEuY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhYWEuY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwKImlzUHJvdG90eXBlT2YiKSlyZXR1cm4gZmFsc2U7dmFyIGI7Zm9yKGIgaW4gYSk7cmV0dXJuIGI9PT13fHxhYS5jYWxsKGEsYil9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlfSxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBhO30scGFyc2VKU09OOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyJ8fCFhKXJldHVybiBudWxsO2E9Yy50cmltKGEpO2lmKC9eW1xdLDp7fVxzXSokLy50ZXN0KGEucmVwbGFjZSgvXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLCJAIikucmVwbGFjZSgvIlteIlxcXG5ccl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/L2csIl0iKS5yZXBsYWNlKC8oPzpefDp8LCkoPzpccypcWykrL2csIiIpKSlyZXR1cm4gQS5KU09OJiZBLkpTT04ucGFyc2U/QS5KU09OLnBhcnNlKGEpOihuZXcgRnVuY3Rpb24oInJldHVybiAiKwphKSkoKTtlbHNlIGMuZXJyb3IoIkludmFsaWQgSlNPTjogIithKX0sbm9vcDpmdW5jdGlvbigpe30sZ2xvYmFsRXZhbDpmdW5jdGlvbihhKXtpZihhJiZWYS50ZXN0KGEpKXt2YXIgYj1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fHMuZG9jdW1lbnRFbGVtZW50LGQ9cy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtkLnR5cGU9InRleHQvamF2YXNjcmlwdCI7aWYoYy5zdXBwb3J0LnNjcmlwdEV2YWwpZC5hcHBlbmRDaGlsZChzLmNyZWF0ZVRleHROb2RlKGEpKTtlbHNlIGQudGV4dD1hO2IuaW5zZXJ0QmVmb3JlKGQsYi5maXJzdENoaWxkKTtiLnJlbW92ZUNoaWxkKGQpfX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT09Yi50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixkKXt2YXIgZixlPTAsaj1hLmxlbmd0aCxpPWo9PT13fHxjLmlzRnVuY3Rpb24oYSk7aWYoZClpZihpKWZvcihmIGluIGEpe2lmKGIuYXBwbHkoYVtmXSwKZCk9PT1mYWxzZSlicmVha31lbHNlIGZvcig7ZTxqOyl7aWYoYi5hcHBseShhW2UrK10sZCk9PT1mYWxzZSlicmVha31lbHNlIGlmKGkpZm9yKGYgaW4gYSl7aWYoYi5jYWxsKGFbZl0sZixhW2ZdKT09PWZhbHNlKWJyZWFrfWVsc2UgZm9yKGQ9YVswXTtlPGomJmIuY2FsbChkLGUsZCkhPT1mYWxzZTtkPWFbKytlXSk7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuKGF8fCIiKS5yZXBsYWNlKFdhLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7Yj1ifHxbXTtpZihhIT1udWxsKWEubGVuZ3RoPT1udWxsfHx0eXBlb2YgYT09PSJzdHJpbmcifHxjLmlzRnVuY3Rpb24oYSl8fHR5cGVvZiBhIT09ImZ1bmN0aW9uIiYmYS5zZXRJbnRlcnZhbD9iYS5jYWxsKGIsYSk6Yy5tZXJnZShiLGEpO3JldHVybiBifSxpbkFycmF5OmZ1bmN0aW9uKGEsYil7aWYoYi5pbmRleE9mKXJldHVybiBiLmluZGV4T2YoYSk7Zm9yKHZhciBkPTAsZj1iLmxlbmd0aDtkPGY7ZCsrKWlmKGJbZF09PT0KYSlyZXR1cm4gZDtyZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgZD1hLmxlbmd0aCxmPTA7aWYodHlwZW9mIGIubGVuZ3RoPT09Im51bWJlciIpZm9yKHZhciBlPWIubGVuZ3RoO2Y8ZTtmKyspYVtkKytdPWJbZl07ZWxzZSBmb3IoO2JbZl0hPT13OylhW2QrK109YltmKytdO2EubGVuZ3RoPWQ7cmV0dXJuIGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZj1bXSxlPTAsaj1hLmxlbmd0aDtlPGo7ZSsrKSFkIT09IWIoYVtlXSxlKSYmZi5wdXNoKGFbZV0pO3JldHVybiBmfSxtYXA6ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZj1bXSxlLGo9MCxpPWEubGVuZ3RoO2o8aTtqKyspe2U9YihhW2pdLGosZCk7aWYoZSE9bnVsbClmW2YubGVuZ3RoXT1lfXJldHVybiBmLmNvbmNhdC5hcHBseShbXSxmKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGEsYixkKXtpZihhcmd1bWVudHMubGVuZ3RoPT09MilpZih0eXBlb2YgYj09PSJzdHJpbmciKXtkPWE7YT1kW2JdO2I9d31lbHNlIGlmKGImJgohYy5pc0Z1bmN0aW9uKGIpKXtkPWI7Yj13fWlmKCFiJiZhKWI9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShkfHx0aGlzLGFyZ3VtZW50cyl9O2lmKGEpYi5ndWlkPWEuZ3VpZD1hLmd1aWR8fGIuZ3VpZHx8Yy5ndWlkKys7cmV0dXJuIGJ9LHVhTWF0Y2g6ZnVuY3Rpb24oYSl7YT1hLnRvTG93ZXJDYXNlKCk7YT0vKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKGEpfHwvKG9wZXJhKSg/Oi4qdmVyc2lvbik/WyBcL10oW1x3Ll0rKS8uZXhlYyhhKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhlYyhhKXx8IS9jb21wYXRpYmxlLy50ZXN0KGEpJiYvKG1vemlsbGEpKD86Lio/IHJ2OihbXHcuXSspKT8vLmV4ZWMoYSl8fFtdO3JldHVybnticm93c2VyOmFbMV18fCIiLHZlcnNpb246YVsyXXx8IjAifX0sYnJvd3Nlcjp7fX0pO1A9Yy51YU1hdGNoKFApO2lmKFAuYnJvd3Nlcil7Yy5icm93c2VyW1AuYnJvd3Nlcl09dHJ1ZTtjLmJyb3dzZXIudmVyc2lvbj1QLnZlcnNpb259aWYoYy5icm93c2VyLndlYmtpdCljLmJyb3dzZXIuc2FmYXJpPQp0cnVlO2lmKHlhKWMuaW5BcnJheT1mdW5jdGlvbihhLGIpe3JldHVybiB5YS5jYWxsKGIsYSl9O1Q9YyhzKTtpZihzLmFkZEV2ZW50TGlzdGVuZXIpTD1mdW5jdGlvbigpe3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsTCxmYWxzZSk7Yy5yZWFkeSgpfTtlbHNlIGlmKHMuYXR0YWNoRXZlbnQpTD1mdW5jdGlvbigpe2lmKHMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe3MuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsTCk7Yy5yZWFkeSgpfX07KGZ1bmN0aW9uKCl7Yy5zdXBwb3J0PXt9O3ZhciBhPXMuZG9jdW1lbnRFbGVtZW50LGI9cy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxkPXMuY3JlYXRlRWxlbWVudCgiZGl2IiksZj0ic2NyaXB0IitKKCk7ZC5zdHlsZS5kaXNwbGF5PSJub25lIjtkLmlubmVySFRNTD0iICAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9Jy9hJyBzdHlsZT0nY29sb3I6cmVkO2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTU7Jz5hPC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiI7CnZhciBlPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxqPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighKCFlfHwhZS5sZW5ndGh8fCFqKSl7Yy5zdXBwb3J0PXtsZWFkaW5nV2hpdGVzcGFjZTpkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0zLHRib2R5OiFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KGouZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpqLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5Oi9eMC41NSQvLnRlc3Qoai5zdHlsZS5vcGFjaXR5KSxjc3NGbG9hdDohIWouc3R5bGUuY3NzRmxvYXQsY2hlY2tPbjpkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLnZhbHVlPT09Im9uIixvcHRTZWxlY3RlZDpzLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKHMuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLnNlbGVjdGVkLApwYXJlbnROb2RlOmQucmVtb3ZlQ2hpbGQoZC5hcHBlbmRDaGlsZChzLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSkucGFyZW50Tm9kZT09PW51bGwsZGVsZXRlRXhwYW5kbzp0cnVlLGNoZWNrQ2xvbmU6ZmFsc2Usc2NyaXB0RXZhbDpmYWxzZSxub0Nsb25lRXZlbnQ6dHJ1ZSxib3hNb2RlbDpudWxsfTtiLnR5cGU9InRleHQvamF2YXNjcmlwdCI7dHJ5e2IuYXBwZW5kQ2hpbGQocy5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrZisiPTE7IikpfWNhdGNoKGkpe31hLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGlsZCk7aWYoQVtmXSl7Yy5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgQVtmXX10cnl7ZGVsZXRlIGIudGVzdH1jYXRjaChvKXtjLnN1cHBvcnQuZGVsZXRlRXhwYW5kbz1mYWxzZX1hLnJlbW92ZUNoaWxkKGIpO2lmKGQuYXR0YWNoRXZlbnQmJmQuZmlyZUV2ZW50KXtkLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbiBrKCl7Yy5zdXBwb3J0Lm5vQ2xvbmVFdmVudD0KZmFsc2U7ZC5kZXRhY2hFdmVudCgib25jbGljayIsayl9KTtkLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1kPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5pbm5lckhUTUw9IjxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0ncmFkaW90ZXN0JyBjaGVja2VkPSdjaGVja2VkJy8+IjthPXMuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2EuYXBwZW5kQ2hpbGQoZC5maXJzdENoaWxkKTtjLnN1cHBvcnQuY2hlY2tDbG9uZT1hLmNsb25lTm9kZSh0cnVlKS5jbG9uZU5vZGUodHJ1ZSkubGFzdENoaWxkLmNoZWNrZWQ7YyhmdW5jdGlvbigpe3ZhciBrPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7ay5zdHlsZS53aWR0aD1rLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO3MuYm9keS5hcHBlbmRDaGlsZChrKTtjLmJveE1vZGVsPWMuc3VwcG9ydC5ib3hNb2RlbD1rLm9mZnNldFdpZHRoPT09MjtzLmJvZHkucmVtb3ZlQ2hpbGQoaykuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KTthPWZ1bmN0aW9uKGspe3ZhciBuPQpzLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2s9Im9uIitrO3ZhciByPWsgaW4gbjtpZighcil7bi5zZXRBdHRyaWJ1dGUoaywicmV0dXJuOyIpO3I9dHlwZW9mIG5ba109PT0iZnVuY3Rpb24ifXJldHVybiByfTtjLnN1cHBvcnQuc3VibWl0QnViYmxlcz1hKCJzdWJtaXQiKTtjLnN1cHBvcnQuY2hhbmdlQnViYmxlcz1hKCJjaGFuZ2UiKTthPWI9ZD1lPWo9bnVsbH19KSgpO2MucHJvcHM9eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUiLHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsY29sc3BhbjoiY29sU3BhbiIsdGFiaW5kZXg6InRhYkluZGV4Iix1c2VtYXA6InVzZU1hcCIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIn07dmFyIEc9ImpRdWVyeSIrSigpLFlhPTAsemE9e307Yy5leHRlbmQoe2NhY2hlOnt9LGV4cGFuZG86Ryxub0RhdGE6e2VtYmVkOnRydWUsb2JqZWN0OnRydWUsCmFwcGxldDp0cnVlfSxkYXRhOmZ1bmN0aW9uKGEsYixkKXtpZighKGEubm9kZU5hbWUmJmMubm9EYXRhW2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXthPWE9PUE/emE6YTt2YXIgZj1hW0ddLGU9Yy5jYWNoZTtpZighZiYmdHlwZW9mIGI9PT0ic3RyaW5nIiYmZD09PXcpcmV0dXJuIG51bGw7Znx8KGY9KytZYSk7aWYodHlwZW9mIGI9PT0ib2JqZWN0Iil7YVtHXT1mO2VbZl09Yy5leHRlbmQodHJ1ZSx7fSxiKX1lbHNlIGlmKCFlW2ZdKXthW0ddPWY7ZVtmXT17fX1hPWVbZl07aWYoZCE9PXcpYVtiXT1kO3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmciP2FbYl06YX19LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtpZighKGEubm9kZU5hbWUmJmMubm9EYXRhW2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXthPWE9PUE/emE6YTt2YXIgZD1hW0ddLGY9Yy5jYWNoZSxlPWZbZF07aWYoYil7aWYoZSl7ZGVsZXRlIGVbYl07Yy5pc0VtcHR5T2JqZWN0KGUpJiZjLnJlbW92ZURhdGEoYSl9fWVsc2V7aWYoYy5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8pZGVsZXRlIGFbYy5leHBhbmRvXTsKZWxzZSBhLnJlbW92ZUF0dHJpYnV0ZSYmYS5yZW1vdmVBdHRyaWJ1dGUoYy5leHBhbmRvKTtkZWxldGUgZltkXX19fX0pO2MuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0idW5kZWZpbmVkIiYmdGhpcy5sZW5ndGgpcmV0dXJuIGMuZGF0YSh0aGlzWzBdKTtlbHNlIGlmKHR5cGVvZiBhPT09Im9iamVjdCIpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlzLGEpfSk7dmFyIGQ9YS5zcGxpdCgiLiIpO2RbMV09ZFsxXT8iLiIrZFsxXToiIjtpZihiPT09dyl7dmFyIGY9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIrZFsxXSsiISIsW2RbMF1dKTtpZihmPT09dyYmdGhpcy5sZW5ndGgpZj1jLmRhdGEodGhpc1swXSxhKTtyZXR1cm4gZj09PXcmJmRbMV0/dGhpcy5kYXRhKGRbMF0pOmZ9ZWxzZSByZXR1cm4gdGhpcy50cmlnZ2VyKCJzZXREYXRhIitkWzFdKyIhIixbZFswXSxiXSkuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlzLAphLGIpfSl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSk7Yy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixkKXtpZihhKXtiPShifHwiZngiKSsicXVldWUiO3ZhciBmPWMuZGF0YShhLGIpO2lmKCFkKXJldHVybiBmfHxbXTtpZighZnx8Yy5pc0FycmF5KGQpKWY9Yy5kYXRhKGEsYixjLm1ha2VBcnJheShkKSk7ZWxzZSBmLnB1c2goZCk7cmV0dXJuIGZ9fSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBkPWMucXVldWUoYSxiKSxmPWQuc2hpZnQoKTtpZihmPT09ImlucHJvZ3Jlc3MiKWY9ZC5zaGlmdCgpO2lmKGYpe2I9PT0iZngiJiZkLnVuc2hpZnQoImlucHJvZ3Jlc3MiKTtmLmNhbGwoYSxmdW5jdGlvbigpe2MuZGVxdWV1ZShhLGIpfSl9fX0pO2MuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpe2I9YTthPSJmeCJ9aWYoYj09PQp3KXJldHVybiBjLnF1ZXVlKHRoaXNbMF0sYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWMucXVldWUodGhpcyxhLGIpO2E9PT0iZngiJiZkWzBdIT09ImlucHJvZ3Jlc3MiJiZjLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmRlcXVldWUodGhpcyxhKX0pfSxkZWxheTpmdW5jdGlvbihhLGIpe2E9Yy5meD9jLmZ4LnNwZWVkc1thXXx8YTphO2I9Ynx8ImZ4IjtyZXR1cm4gdGhpcy5xdWV1ZShiLGZ1bmN0aW9uKCl7dmFyIGQ9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKGQsYil9LGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9fSk7dmFyIEFhPS9bXG5cdF0vZyxjYT0vXHMrLyxaYT0vXHIvZywkYT0vaHJlZnxzcmN8c3R5bGUvLGFiPS8oYnV0dG9ufGlucHV0KS9pLGJiPS8oYnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpL2ksCmNiPS9eKGF8YXJlYSkkL2ksQmE9L3JhZGlvfGNoZWNrYm94LztjLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBYKHRoaXMsYSxiLHRydWUsYy5hdHRyKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5hdHRyKHRoaXMsYSwiIik7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMucmVtb3ZlQXR0cmlidXRlKGEpfSl9LGFkZENsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe3ZhciByPWModGhpcyk7ci5hZGRDbGFzcyhhLmNhbGwodGhpcyxuLHIuYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nIilmb3IodmFyIGI9KGF8fCIiKS5zcGxpdChjYSksZD0wLGY9dGhpcy5sZW5ndGg7ZDxmO2QrKyl7dmFyIGU9dGhpc1tkXTtpZihlLm5vZGVUeXBlPT09MSlpZihlLmNsYXNzTmFtZSl7Zm9yKHZhciBqPSIgIitlLmNsYXNzTmFtZSsiICIsCmk9ZS5jbGFzc05hbWUsbz0wLGs9Yi5sZW5ndGg7bzxrO28rKylpZihqLmluZGV4T2YoIiAiK2Jbb10rIiAiKTwwKWkrPSIgIitiW29dO2UuY2xhc3NOYW1lPWMudHJpbShpKX1lbHNlIGUuY2xhc3NOYW1lPWF9cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGspe3ZhciBuPWModGhpcyk7bi5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxrLG4uYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nInx8YT09PXcpZm9yKHZhciBiPShhfHwiIikuc3BsaXQoY2EpLGQ9MCxmPXRoaXMubGVuZ3RoO2Q8ZjtkKyspe3ZhciBlPXRoaXNbZF07aWYoZS5ub2RlVHlwZT09PTEmJmUuY2xhc3NOYW1lKWlmKGEpe2Zvcih2YXIgaj0oIiAiK2UuY2xhc3NOYW1lKyIgIikucmVwbGFjZShBYSwiICIpLGk9MCxvPWIubGVuZ3RoO2k8bztpKyspaj1qLnJlcGxhY2UoIiAiK2JbaV0rIiAiLAoiICIpO2UuY2xhc3NOYW1lPWMudHJpbShqKX1lbHNlIGUuY2xhc3NOYW1lPSIifXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhLGY9dHlwZW9mIGI9PT0iYm9vbGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIGo9Yyh0aGlzKTtqLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGUsai5hdHRyKCJjbGFzcyIpLGIpLGIpfSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKGQ9PT0ic3RyaW5nIilmb3IodmFyIGUsaj0wLGk9Yyh0aGlzKSxvPWIsaz1hLnNwbGl0KGNhKTtlPWtbaisrXTspe289Zj9vOiFpLmhhc0NsYXNzKGUpO2lbbz8iYWRkQ2xhc3MiOiJyZW1vdmVDbGFzcyJdKGUpfWVsc2UgaWYoZD09PSJ1bmRlZmluZWQifHxkPT09ImJvb2xlYW4iKXt0aGlzLmNsYXNzTmFtZSYmYy5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHRoaXMuY2xhc3NOYW1lKTt0aGlzLmNsYXNzTmFtZT0KdGhpcy5jbGFzc05hbWV8fGE9PT1mYWxzZT8iIjpjLmRhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIn19KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7YT0iICIrYSsiICI7Zm9yKHZhciBiPTAsZD10aGlzLmxlbmd0aDtiPGQ7YisrKWlmKCgiICIrdGhpc1tiXS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKEFhLCIgIikuaW5kZXhPZihhKT4tMSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9LHZhbDpmdW5jdGlvbihhKXtpZihhPT09dyl7dmFyIGI9dGhpc1swXTtpZihiKXtpZihjLm5vZGVOYW1lKGIsIm9wdGlvbiIpKXJldHVybihiLmF0dHJpYnV0ZXMudmFsdWV8fHt9KS5zcGVjaWZpZWQ/Yi52YWx1ZTpiLnRleHQ7aWYoYy5ub2RlTmFtZShiLCJzZWxlY3QiKSl7dmFyIGQ9Yi5zZWxlY3RlZEluZGV4LGY9W10sZT1iLm9wdGlvbnM7Yj1iLnR5cGU9PT0ic2VsZWN0LW9uZSI7aWYoZDwwKXJldHVybiBudWxsO3ZhciBqPWI/ZDowO2ZvcihkPWI/ZCsxOmUubGVuZ3RoO2o8ZDtqKyspe3ZhciBpPQplW2pdO2lmKGkuc2VsZWN0ZWQpe2E9YyhpKS52YWwoKTtpZihiKXJldHVybiBhO2YucHVzaChhKX19cmV0dXJuIGZ9aWYoQmEudGVzdChiLnR5cGUpJiYhYy5zdXBwb3J0LmNoZWNrT24pcmV0dXJuIGIuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPT09bnVsbD8ib24iOmIudmFsdWU7cmV0dXJuKGIudmFsdWV8fCIiKS5yZXBsYWNlKFphLCIiKX1yZXR1cm4gd312YXIgbz1jLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihrKXt2YXIgbj1jKHRoaXMpLHI9YTtpZih0aGlzLm5vZGVUeXBlPT09MSl7aWYobylyPWEuY2FsbCh0aGlzLGssbi52YWwoKSk7aWYodHlwZW9mIHI9PT0ibnVtYmVyIilyKz0iIjtpZihjLmlzQXJyYXkocikmJkJhLnRlc3QodGhpcy50eXBlKSl0aGlzLmNoZWNrZWQ9Yy5pbkFycmF5KG4udmFsKCkscik+PTA7ZWxzZSBpZihjLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgdT1jLm1ha2VBcnJheShyKTtjKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPQpjLmluQXJyYXkoYyh0aGlzKS52YWwoKSx1KT49MH0pO2lmKCF1Lmxlbmd0aCl0aGlzLnNlbGVjdGVkSW5kZXg9LTF9ZWxzZSB0aGlzLnZhbHVlPXJ9fSl9fSk7Yy5leHRlbmQoe2F0dHJGbjp7dmFsOnRydWUsY3NzOnRydWUsaHRtbDp0cnVlLHRleHQ6dHJ1ZSxkYXRhOnRydWUsd2lkdGg6dHJ1ZSxoZWlnaHQ6dHJ1ZSxvZmZzZXQ6dHJ1ZX0sYXR0cjpmdW5jdGlvbihhLGIsZCxmKXtpZighYXx8YS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KXJldHVybiB3O2lmKGYmJmIgaW4gYy5hdHRyRm4pcmV0dXJuIGMoYSlbYl0oZCk7Zj1hLm5vZGVUeXBlIT09MXx8IWMuaXNYTUxEb2MoYSk7dmFyIGU9ZCE9PXc7Yj1mJiZjLnByb3BzW2JdfHxiO2lmKGEubm9kZVR5cGU9PT0xKXt2YXIgaj0kYS50ZXN0KGIpO2lmKGIgaW4gYSYmZiYmIWope2lmKGUpe2I9PT0idHlwZSImJmFiLnRlc3QoYS5ub2RlTmFtZSkmJmEucGFyZW50Tm9kZSYmYy5lcnJvcigidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIik7CmFbYl09ZH1pZihjLm5vZGVOYW1lKGEsImZvcm0iKSYmYS5nZXRBdHRyaWJ1dGVOb2RlKGIpKXJldHVybiBhLmdldEF0dHJpYnV0ZU5vZGUoYikubm9kZVZhbHVlO2lmKGI9PT0idGFiSW5kZXgiKXJldHVybihiPWEuZ2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKSkmJmIuc3BlY2lmaWVkP2IudmFsdWU6YmIudGVzdChhLm5vZGVOYW1lKXx8Y2IudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6dztyZXR1cm4gYVtiXX1pZighYy5zdXBwb3J0LnN0eWxlJiZmJiZiPT09InN0eWxlIil7aWYoZSlhLnN0eWxlLmNzc1RleHQ9IiIrZDtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fWUmJmEuc2V0QXR0cmlidXRlKGIsIiIrZCk7YT0hYy5zdXBwb3J0LmhyZWZOb3JtYWxpemVkJiZmJiZqP2EuZ2V0QXR0cmlidXRlKGIsMik6YS5nZXRBdHRyaWJ1dGUoYik7cmV0dXJuIGE9PT1udWxsP3c6YX1yZXR1cm4gYy5zdHlsZShhLGIsZCl9fSk7dmFyIE89L1wuKC4qKSQvLGRiPWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1teXHdcc1wuXHxgXS9nLApmdW5jdGlvbihiKXtyZXR1cm4iXFwiK2J9KX07Yy5ldmVudD17YWRkOmZ1bmN0aW9uKGEsYixkLGYpe2lmKCEoYS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KSl7aWYoYS5zZXRJbnRlcnZhbCYmYSE9PUEmJiFhLmZyYW1lRWxlbWVudClhPUE7dmFyIGUsajtpZihkLmhhbmRsZXIpe2U9ZDtkPWUuaGFuZGxlcn1pZighZC5ndWlkKWQuZ3VpZD1jLmd1aWQrKztpZihqPWMuZGF0YShhKSl7dmFyIGk9ai5ldmVudHM9ai5ldmVudHN8fHt9LG89ai5oYW5kbGU7aWYoIW8pai5oYW5kbGU9bz1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgYyE9PSJ1bmRlZmluZWQiJiYhYy5ldmVudC50cmlnZ2VyZWQ/Yy5ldmVudC5oYW5kbGUuYXBwbHkoby5lbGVtLGFyZ3VtZW50cyk6d307by5lbGVtPWE7Yj1iLnNwbGl0KCIgIik7Zm9yKHZhciBrLG49MCxyO2s9YltuKytdOyl7aj1lP2MuZXh0ZW5kKHt9LGUpOntoYW5kbGVyOmQsZGF0YTpmfTtpZihrLmluZGV4T2YoIi4iKT4tMSl7cj1rLnNwbGl0KCIuIik7Cms9ci5zaGlmdCgpO2oubmFtZXNwYWNlPXIuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKX1lbHNle3I9W107ai5uYW1lc3BhY2U9IiJ9ai50eXBlPWs7ai5ndWlkPWQuZ3VpZDt2YXIgdT1pW2tdLHo9Yy5ldmVudC5zcGVjaWFsW2tdfHx7fTtpZighdSl7dT1pW2tdPVtdO2lmKCF6LnNldHVwfHx6LnNldHVwLmNhbGwoYSxmLHIsbyk9PT1mYWxzZSlpZihhLmFkZEV2ZW50TGlzdGVuZXIpYS5hZGRFdmVudExpc3RlbmVyKGssbyxmYWxzZSk7ZWxzZSBhLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrayxvKX1pZih6LmFkZCl7ei5hZGQuY2FsbChhLGopO2lmKCFqLmhhbmRsZXIuZ3VpZClqLmhhbmRsZXIuZ3VpZD1kLmd1aWR9dS5wdXNoKGopO2MuZXZlbnQuZ2xvYmFsW2tdPXRydWV9YT1udWxsfX19LGdsb2JhbDp7fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGQsZil7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpKXt2YXIgZSxqPTAsaSxvLGssbixyLHUsej1jLmRhdGEoYSksCkM9eiYmei5ldmVudHM7aWYoeiYmQyl7aWYoYiYmYi50eXBlKXtkPWIuaGFuZGxlcjtiPWIudHlwZX1pZighYnx8dHlwZW9mIGI9PT0ic3RyaW5nIiYmYi5jaGFyQXQoMCk9PT0iLiIpe2I9Ynx8IiI7Zm9yKGUgaW4gQyljLmV2ZW50LnJlbW92ZShhLGUrYil9ZWxzZXtmb3IoYj1iLnNwbGl0KCIgIik7ZT1iW2orK107KXtuPWU7aT1lLmluZGV4T2YoIi4iKTwwO289W107aWYoIWkpe289ZS5zcGxpdCgiLiIpO2U9by5zaGlmdCgpO2s9bmV3IFJlZ0V4cCgiKF58XFwuKSIrYy5tYXAoby5zbGljZSgwKS5zb3J0KCksZGIpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWlmKHI9Q1tlXSlpZihkKXtuPWMuZXZlbnQuc3BlY2lhbFtlXXx8e307Zm9yKEI9Znx8MDtCPHIubGVuZ3RoO0IrKyl7dT1yW0JdO2lmKGQuZ3VpZD09PXUuZ3VpZCl7aWYoaXx8ay50ZXN0KHUubmFtZXNwYWNlKSl7Zj09bnVsbCYmci5zcGxpY2UoQi0tLDEpO24ucmVtb3ZlJiZuLnJlbW92ZS5jYWxsKGEsdSl9aWYoZiE9Cm51bGwpYnJlYWt9fWlmKHIubGVuZ3RoPT09MHx8ZiE9bnVsbCYmci5sZW5ndGg9PT0xKXtpZighbi50ZWFyZG93bnx8bi50ZWFyZG93bi5jYWxsKGEsbyk9PT1mYWxzZSlDYShhLGUsei5oYW5kbGUpO2RlbGV0ZSBDW2VdfX1lbHNlIGZvcih2YXIgQj0wO0I8ci5sZW5ndGg7QisrKXt1PXJbQl07aWYoaXx8ay50ZXN0KHUubmFtZXNwYWNlKSl7Yy5ldmVudC5yZW1vdmUoYSxuLHUuaGFuZGxlcixCKTtyLnNwbGljZShCLS0sMSl9fX1pZihjLmlzRW1wdHlPYmplY3QoQykpe2lmKGI9ei5oYW5kbGUpYi5lbGVtPW51bGw7ZGVsZXRlIHouZXZlbnRzO2RlbGV0ZSB6LmhhbmRsZTtjLmlzRW1wdHlPYmplY3QoeikmJmMucmVtb3ZlRGF0YShhKX19fX19LHRyaWdnZXI6ZnVuY3Rpb24oYSxiLGQsZil7dmFyIGU9YS50eXBlfHxhO2lmKCFmKXthPXR5cGVvZiBhPT09Im9iamVjdCI/YVtHXT9hOmMuZXh0ZW5kKGMuRXZlbnQoZSksYSk6Yy5FdmVudChlKTtpZihlLmluZGV4T2YoIiEiKT49MCl7YS50eXBlPQplPWUuc2xpY2UoMCwtMSk7YS5leGNsdXNpdmU9dHJ1ZX1pZighZCl7YS5zdG9wUHJvcGFnYXRpb24oKTtjLmV2ZW50Lmdsb2JhbFtlXSYmYy5lYWNoKGMuY2FjaGUsZnVuY3Rpb24oKXt0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbZV0mJmMuZXZlbnQudHJpZ2dlcihhLGIsdGhpcy5oYW5kbGUuZWxlbSl9KX1pZighZHx8ZC5ub2RlVHlwZT09PTN8fGQubm9kZVR5cGU9PT04KXJldHVybiB3O2EucmVzdWx0PXc7YS50YXJnZXQ9ZDtiPWMubWFrZUFycmF5KGIpO2IudW5zaGlmdChhKX1hLmN1cnJlbnRUYXJnZXQ9ZDsoZj1jLmRhdGEoZCwiaGFuZGxlIikpJiZmLmFwcGx5KGQsYik7Zj1kLnBhcmVudE5vZGV8fGQub3duZXJEb2N1bWVudDt0cnl7aWYoIShkJiZkLm5vZGVOYW1lJiZjLm5vRGF0YVtkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSlpZihkWyJvbiIrZV0mJmRbIm9uIitlXS5hcHBseShkLGIpPT09ZmFsc2UpYS5yZXN1bHQ9ZmFsc2V9Y2F0Y2goail7fWlmKCFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJgpmKWMuZXZlbnQudHJpZ2dlcihhLGIsZix0cnVlKTtlbHNlIGlmKCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtmPWEudGFyZ2V0O3ZhciBpLG89Yy5ub2RlTmFtZShmLCJhIikmJmU9PT0iY2xpY2siLGs9Yy5ldmVudC5zcGVjaWFsW2VdfHx7fTtpZigoIWsuX2RlZmF1bHR8fGsuX2RlZmF1bHQuY2FsbChkLGEpPT09ZmFsc2UpJiYhbyYmIShmJiZmLm5vZGVOYW1lJiZjLm5vRGF0YVtmLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSl7dHJ5e2lmKGZbZV0pe2lmKGk9Zlsib24iK2VdKWZbIm9uIitlXT1udWxsO2MuZXZlbnQudHJpZ2dlcmVkPXRydWU7ZltlXSgpfX1jYXRjaChuKXt9aWYoaSlmWyJvbiIrZV09aTtjLmV2ZW50LnRyaWdnZXJlZD1mYWxzZX19fSxoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGIsZCxmLGU7YT1hcmd1bWVudHNbMF09Yy5ldmVudC5maXgoYXx8QS5ldmVudCk7YS5jdXJyZW50VGFyZ2V0PXRoaXM7Yj1hLnR5cGUuaW5kZXhPZigiLiIpPDAmJiFhLmV4Y2x1c2l2ZTsKaWYoIWIpe2Q9YS50eXBlLnNwbGl0KCIuIik7YS50eXBlPWQuc2hpZnQoKTtmPW5ldyBSZWdFeHAoIihefFxcLikiK2Quc2xpY2UoMCkuc29ydCgpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWU9Yy5kYXRhKHRoaXMsImV2ZW50cyIpO2Q9ZVthLnR5cGVdO2lmKGUmJmQpe2Q9ZC5zbGljZSgwKTtlPTA7Zm9yKHZhciBqPWQubGVuZ3RoO2U8ajtlKyspe3ZhciBpPWRbZV07aWYoYnx8Zi50ZXN0KGkubmFtZXNwYWNlKSl7YS5oYW5kbGVyPWkuaGFuZGxlcjthLmRhdGE9aS5kYXRhO2EuaGFuZGxlT2JqPWk7aT1pLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKGkhPT13KXthLnJlc3VsdD1pO2lmKGk9PT1mYWxzZSl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCl9fWlmKGEuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVha319fXJldHVybiBhLnJlc3VsdH0scHJvcHM6ImFsdEtleSBhdHRyQ2hhbmdlIGF0dHJOYW1lIGJ1YmJsZXMgYnV0dG9uIGNhbmNlbGFibGUgY2hhckNvZGUgY2xpZW50WCBjbGllbnRZIGN0cmxLZXkgY3VycmVudFRhcmdldCBkYXRhIGRldGFpbCBldmVudFBoYXNlIGZyb21FbGVtZW50IGhhbmRsZXIga2V5Q29kZSBsYXllclggbGF5ZXJZIG1ldGFLZXkgbmV3VmFsdWUgb2Zmc2V0WCBvZmZzZXRZIG9yaWdpbmFsVGFyZ2V0IHBhZ2VYIHBhZ2VZIHByZXZWYWx1ZSByZWxhdGVkTm9kZSByZWxhdGVkVGFyZ2V0IHNjcmVlblggc2NyZWVuWSBzaGlmdEtleSBzcmNFbGVtZW50IHRhcmdldCB0b0VsZW1lbnQgdmlldyB3aGVlbERlbHRhIHdoaWNoIi5zcGxpdCgiICIpLApmaXg6ZnVuY3Rpb24oYSl7aWYoYVtHXSlyZXR1cm4gYTt2YXIgYj1hO2E9Yy5FdmVudChiKTtmb3IodmFyIGQ9dGhpcy5wcm9wcy5sZW5ndGgsZjtkOyl7Zj10aGlzLnByb3BzWy0tZF07YVtmXT1iW2ZdfWlmKCFhLnRhcmdldClhLnRhcmdldD1hLnNyY0VsZW1lbnR8fHM7aWYoYS50YXJnZXQubm9kZVR5cGU9PT0zKWEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGU7aWYoIWEucmVsYXRlZFRhcmdldCYmYS5mcm9tRWxlbWVudClhLnJlbGF0ZWRUYXJnZXQ9YS5mcm9tRWxlbWVudD09PWEudGFyZ2V0P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ7aWYoYS5wYWdlWD09bnVsbCYmYS5jbGllbnRYIT1udWxsKXtiPXMuZG9jdW1lbnRFbGVtZW50O2Q9cy5ib2R5O2EucGFnZVg9YS5jbGllbnRYKyhiJiZiLnNjcm9sbExlZnR8fGQmJmQuc2Nyb2xsTGVmdHx8MCktKGImJmIuY2xpZW50TGVmdHx8ZCYmZC5jbGllbnRMZWZ0fHwwKTthLnBhZ2VZPWEuY2xpZW50WSsoYiYmYi5zY3JvbGxUb3B8fApkJiZkLnNjcm9sbFRvcHx8MCktKGImJmIuY2xpZW50VG9wfHxkJiZkLmNsaWVudFRvcHx8MCl9aWYoIWEud2hpY2gmJihhLmNoYXJDb2RlfHxhLmNoYXJDb2RlPT09MD9hLmNoYXJDb2RlOmEua2V5Q29kZSkpYS53aGljaD1hLmNoYXJDb2RlfHxhLmtleUNvZGU7aWYoIWEubWV0YUtleSYmYS5jdHJsS2V5KWEubWV0YUtleT1hLmN0cmxLZXk7aWYoIWEud2hpY2gmJmEuYnV0dG9uIT09dylhLndoaWNoPWEuYnV0dG9uJjE/MTphLmJ1dHRvbiYyPzM6YS5idXR0b24mND8yOjA7cmV0dXJuIGF9LGd1aWQ6MUU4LHByb3h5OmMucHJveHksc3BlY2lhbDp7cmVhZHk6e3NldHVwOmMuYmluZFJlYWR5LHRlYXJkb3duOmMubm9vcH0sbGl2ZTp7YWRkOmZ1bmN0aW9uKGEpe2MuZXZlbnQuYWRkKHRoaXMsYS5vcmlnVHlwZSxjLmV4dGVuZCh7fSxhLHtoYW5kbGVyOm9hfSkpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7dmFyIGI9dHJ1ZSxkPWEub3JpZ1R5cGUucmVwbGFjZShPLCIiKTtjLmVhY2goYy5kYXRhKHRoaXMsCiJldmVudHMiKS5saXZlfHxbXSxmdW5jdGlvbigpe2lmKGQ9PT10aGlzLm9yaWdUeXBlLnJlcGxhY2UoTywiIikpcmV0dXJuIGI9ZmFsc2V9KTtiJiZjLmV2ZW50LnJlbW92ZSh0aGlzLGEub3JpZ1R5cGUsb2EpfX0sYmVmb3JldW5sb2FkOntzZXR1cDpmdW5jdGlvbihhLGIsZCl7aWYodGhpcy5zZXRJbnRlcnZhbCl0aGlzLm9uYmVmb3JldW5sb2FkPWQ7cmV0dXJuIGZhbHNlfSx0ZWFyZG93bjpmdW5jdGlvbihhLGIpe2lmKHRoaXMub25iZWZvcmV1bmxvYWQ9PT1iKXRoaXMub25iZWZvcmV1bmxvYWQ9bnVsbH19fX07dmFyIENhPXMucmVtb3ZlRXZlbnRMaXN0ZW5lcj9mdW5jdGlvbihhLGIsZCl7YS5yZW1vdmVFdmVudExpc3RlbmVyKGIsZCxmYWxzZSl9OmZ1bmN0aW9uKGEsYixkKXthLmRldGFjaEV2ZW50KCJvbiIrYixkKX07Yy5FdmVudD1mdW5jdGlvbihhKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdClyZXR1cm4gbmV3IGMuRXZlbnQoYSk7aWYoYSYmYS50eXBlKXt0aGlzLm9yaWdpbmFsRXZlbnQ9CmE7dGhpcy50eXBlPWEudHlwZX1lbHNlIHRoaXMudHlwZT1hO3RoaXMudGltZVN0YW1wPUooKTt0aGlzW0ddPXRydWV9O2MuRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPVo7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKGEpe2EucHJldmVudERlZmF1bHQmJmEucHJldmVudERlZmF1bHQoKTthLnJldHVyblZhbHVlPWZhbHNlfX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1aO3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDtpZihhKXthLnN0b3BQcm9wYWdhdGlvbiYmYS5zdG9wUHJvcGFnYXRpb24oKTthLmNhbmNlbEJ1YmJsZT10cnVlfX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1aO3RoaXMuc3RvcFByb3BhZ2F0aW9uKCl9LGlzRGVmYXVsdFByZXZlbnRlZDpZLGlzUHJvcGFnYXRpb25TdG9wcGVkOlksCmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOll9O3ZhciBEYT1mdW5jdGlvbihhKXt2YXIgYj1hLnJlbGF0ZWRUYXJnZXQ7dHJ5e2Zvcig7YiYmYiE9PXRoaXM7KWI9Yi5wYXJlbnROb2RlO2lmKGIhPT10aGlzKXthLnR5cGU9YS5kYXRhO2MuZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19Y2F0Y2goZCl7fX0sRWE9ZnVuY3Rpb24oYSl7YS50eXBlPWEuZGF0YTtjLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2MuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9LGZ1bmN0aW9uKGEsYil7Yy5ldmVudC5zcGVjaWFsW2FdPXtzZXR1cDpmdW5jdGlvbihkKXtjLmV2ZW50LmFkZCh0aGlzLGIsZCYmZC5zZWxlY3Rvcj9FYTpEYSxhKX0sdGVhcmRvd246ZnVuY3Rpb24oZCl7Yy5ldmVudC5yZW1vdmUodGhpcyxiLGQmJmQuc2VsZWN0b3I/RWE6RGEpfX19KTtpZighYy5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXMpYy5ldmVudC5zcGVjaWFsLnN1Ym1pdD0Ke3NldHVwOmZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09ImZvcm0iKXtjLmV2ZW50LmFkZCh0aGlzLCJjbGljay5zcGVjaWFsU3VibWl0IixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtpZigoZD09PSJzdWJtaXQifHxkPT09ImltYWdlIikmJmMoYikuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aClyZXR1cm4gbmEoInN1Ym1pdCIsdGhpcyxhcmd1bWVudHMpfSk7Yy5ldmVudC5hZGQodGhpcywia2V5cHJlc3Muc3BlY2lhbFN1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoKGQ9PT0idGV4dCJ8fGQ9PT0icGFzc3dvcmQiKSYmYyhiKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoJiZhLmtleUNvZGU9PT0xMylyZXR1cm4gbmEoInN1Ym1pdCIsdGhpcyxhcmd1bWVudHMpfSl9ZWxzZSByZXR1cm4gZmFsc2V9LHRlYXJkb3duOmZ1bmN0aW9uKCl7Yy5ldmVudC5yZW1vdmUodGhpcywiLnNwZWNpYWxTdWJtaXQiKX19OwppZighYy5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMpe3ZhciBkYT0vdGV4dGFyZWF8aW5wdXR8c2VsZWN0L2ksZWEsRmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS50eXBlLGQ9YS52YWx1ZTtpZihiPT09InJhZGlvInx8Yj09PSJjaGVja2JveCIpZD1hLmNoZWNrZWQ7ZWxzZSBpZihiPT09InNlbGVjdC1tdWx0aXBsZSIpZD1hLnNlbGVjdGVkSW5kZXg+LTE/Yy5tYXAoYS5vcHRpb25zLGZ1bmN0aW9uKGYpe3JldHVybiBmLnNlbGVjdGVkfSkuam9pbigiLSIpOiIiO2Vsc2UgaWYoYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09InNlbGVjdCIpZD1hLnNlbGVjdGVkSW5kZXg7cmV0dXJuIGR9LGZhPWZ1bmN0aW9uKGEsYil7dmFyIGQ9YS50YXJnZXQsZixlO2lmKCEoIWRhLnRlc3QoZC5ub2RlTmFtZSl8fGQucmVhZE9ubHkpKXtmPWMuZGF0YShkLCJfY2hhbmdlX2RhdGEiKTtlPUZhKGQpO2lmKGEudHlwZSE9PSJmb2N1c291dCJ8fGQudHlwZSE9PSJyYWRpbyIpYy5kYXRhKGQsIl9jaGFuZ2VfZGF0YSIsCmUpO2lmKCEoZj09PXd8fGU9PT1mKSlpZihmIT1udWxsfHxlKXthLnR5cGU9ImNoYW5nZSI7cmV0dXJuIGMuZXZlbnQudHJpZ2dlcihhLGIsZCl9fX07Yy5ldmVudC5zcGVjaWFsLmNoYW5nZT17ZmlsdGVyczp7Zm9jdXNvdXQ6ZmEsY2xpY2s6ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoZD09PSJyYWRpbyJ8fGQ9PT0iY2hlY2tib3gifHxiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2VsZWN0IilyZXR1cm4gZmEuY2FsbCh0aGlzLGEpfSxrZXlkb3duOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGQ9Yi50eXBlO2lmKGEua2V5Q29kZT09PTEzJiZiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0idGV4dGFyZWEifHxhLmtleUNvZGU9PT0zMiYmKGQ9PT0iY2hlY2tib3gifHxkPT09InJhZGlvIil8fGQ9PT0ic2VsZWN0LW11bHRpcGxlIilyZXR1cm4gZmEuY2FsbCh0aGlzLGEpfSxiZWZvcmVhY3RpdmF0ZTpmdW5jdGlvbihhKXthPWEudGFyZ2V0O2MuZGF0YShhLAoiX2NoYW5nZV9kYXRhIixGYShhKSl9fSxzZXR1cDpmdW5jdGlvbigpe2lmKHRoaXMudHlwZT09PSJmaWxlIilyZXR1cm4gZmFsc2U7Zm9yKHZhciBhIGluIGVhKWMuZXZlbnQuYWRkKHRoaXMsYSsiLnNwZWNpYWxDaGFuZ2UiLGVhW2FdKTtyZXR1cm4gZGEudGVzdCh0aGlzLm5vZGVOYW1lKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtjLmV2ZW50LnJlbW92ZSh0aGlzLCIuc3BlY2lhbENoYW5nZSIpO3JldHVybiBkYS50ZXN0KHRoaXMubm9kZU5hbWUpfX07ZWE9Yy5ldmVudC5zcGVjaWFsLmNoYW5nZS5maWx0ZXJzfXMuYWRkRXZlbnRMaXN0ZW5lciYmYy5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoZil7Zj1jLmV2ZW50LmZpeChmKTtmLnR5cGU9YjtyZXR1cm4gYy5ldmVudC5oYW5kbGUuY2FsbCh0aGlzLGYpfWMuZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYSwKZCx0cnVlKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxkLHRydWUpfX19KTtjLmVhY2goWyJiaW5kIiwib25lIl0sZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQsZixlKXtpZih0eXBlb2YgZD09PSJvYmplY3QiKXtmb3IodmFyIGogaW4gZCl0aGlzW2JdKGosZixkW2pdLGUpO3JldHVybiB0aGlzfWlmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9d312YXIgaT1iPT09Im9uZSI/Yy5wcm94eShlLGZ1bmN0aW9uKGspe2ModGhpcykudW5iaW5kKGssaSk7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSk6ZTtpZihkPT09InVubG9hZCImJmIhPT0ib25lIil0aGlzLm9uZShkLGYsZSk7ZWxzZXtqPTA7Zm9yKHZhciBvPXRoaXMubGVuZ3RoO2o8bztqKyspYy5ldmVudC5hZGQodGhpc1tqXSxkLGksZil9cmV0dXJuIHRoaXN9fSk7Yy5mbi5leHRlbmQoe3VuYmluZDpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09Im9iamVjdCImJgohYS5wcmV2ZW50RGVmYXVsdClmb3IodmFyIGQgaW4gYSl0aGlzLnVuYmluZChkLGFbZF0pO2Vsc2V7ZD0wO2Zvcih2YXIgZj10aGlzLmxlbmd0aDtkPGY7ZCsrKWMuZXZlbnQucmVtb3ZlKHRoaXNbZF0sYSxiKX1yZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGQsZil7cmV0dXJuIHRoaXMubGl2ZShiLGQsZixhKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wP3RoaXMudW5iaW5kKCJsaXZlIik6dGhpcy5kaWUoYixudWxsLGQsYSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe2lmKHRoaXNbMF0pe2E9Yy5FdmVudChhKTthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtjLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXNbMF0pO3JldHVybiBhLnJlc3VsdH19LAp0b2dnbGU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWFyZ3VtZW50cyxkPTE7ZDxiLmxlbmd0aDspYy5wcm94eShhLGJbZCsrXSk7cmV0dXJuIHRoaXMuY2xpY2soYy5wcm94eShhLGZ1bmN0aW9uKGYpe3ZhciBlPShjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkKXx8MCklZDtjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkLGUrMSk7Zi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBiW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8ZmFsc2V9KSl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO3ZhciBHYT17Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0Iixtb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In07Yy5lYWNoKFsibGl2ZSIsImRpZSJdLGZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkLGYsZSxqKXt2YXIgaSxvPTAsayxuLHI9anx8dGhpcy5zZWxlY3RvciwKdT1qP3RoaXM6Yyh0aGlzLmNvbnRleHQpO2lmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9d31mb3IoZD0oZHx8IiIpLnNwbGl0KCIgIik7KGk9ZFtvKytdKSE9bnVsbDspe2o9Ty5leGVjKGkpO2s9IiI7aWYoail7az1qWzBdO2k9aS5yZXBsYWNlKE8sIiIpfWlmKGk9PT0iaG92ZXIiKWQucHVzaCgibW91c2VlbnRlciIraywibW91c2VsZWF2ZSIrayk7ZWxzZXtuPWk7aWYoaT09PSJmb2N1cyJ8fGk9PT0iYmx1ciIpe2QucHVzaChHYVtpXStrKTtpKz1rfWVsc2UgaT0oR2FbaV18fGkpK2s7Yj09PSJsaXZlIj91LmVhY2goZnVuY3Rpb24oKXtjLmV2ZW50LmFkZCh0aGlzLHBhKGkscikse2RhdGE6ZixzZWxlY3RvcjpyLGhhbmRsZXI6ZSxvcmlnVHlwZTppLG9yaWdIYW5kbGVyOmUscHJlVHlwZTpufSl9KTp1LnVuYmluZChwYShpLHIpLGUpfX1yZXR1cm4gdGhpc319KTtjLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IiLnNwbGl0KCIgIiksCmZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkKXtyZXR1cm4gZD90aGlzLmJpbmQoYixkKTp0aGlzLnRyaWdnZXIoYil9O2lmKGMuYXR0ckZuKWMuYXR0ckZuW2JdPXRydWV9KTtBLmF0dGFjaEV2ZW50JiYhQS5hZGRFdmVudExpc3RlbmVyJiZBLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gYy5jYWNoZSlpZihjLmNhY2hlW2FdLmhhbmRsZSl0cnl7Yy5ldmVudC5yZW1vdmUoYy5jYWNoZVthXS5oYW5kbGUuZWxlbSl9Y2F0Y2goYil7fX0pOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoZyl7Zm9yKHZhciBoPSIiLGwsbT0wO2dbbV07bSsrKXtsPWdbbV07aWYobC5ub2RlVHlwZT09PTN8fGwubm9kZVR5cGU9PT00KWgrPWwubm9kZVZhbHVlO2Vsc2UgaWYobC5ub2RlVHlwZSE9PTgpaCs9YShsLmNoaWxkTm9kZXMpfXJldHVybiBofWZ1bmN0aW9uIGIoZyxoLGwsbSxxLHApe3E9MDtmb3IodmFyIHY9bS5sZW5ndGg7cTx2O3ErKyl7dmFyIHQ9bVtxXTsKaWYodCl7dD10W2ddO2Zvcih2YXIgeT1mYWxzZTt0Oyl7aWYodC5zaXpjYWNoZT09PWwpe3k9bVt0LnNpenNldF07YnJlYWt9aWYodC5ub2RlVHlwZT09PTEmJiFwKXt0LnNpemNhY2hlPWw7dC5zaXpzZXQ9cX1pZih0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oKXt5PXQ7YnJlYWt9dD10W2ddfW1bcV09eX19fWZ1bmN0aW9uIGQoZyxoLGwsbSxxLHApe3E9MDtmb3IodmFyIHY9bS5sZW5ndGg7cTx2O3ErKyl7dmFyIHQ9bVtxXTtpZih0KXt0PXRbZ107Zm9yKHZhciB5PWZhbHNlO3Q7KXtpZih0LnNpemNhY2hlPT09bCl7eT1tW3Quc2l6c2V0XTticmVha31pZih0Lm5vZGVUeXBlPT09MSl7aWYoIXApe3Quc2l6Y2FjaGU9bDt0LnNpenNldD1xfWlmKHR5cGVvZiBoIT09InN0cmluZyIpe2lmKHQ9PT1oKXt5PXRydWU7YnJlYWt9fWVsc2UgaWYoay5maWx0ZXIoaCxbdF0pLmxlbmd0aD4wKXt5PXQ7YnJlYWt9fXQ9dFtnXX1tW3FdPXl9fX12YXIgZj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/KCg/Oi58XHJ8XG4pKikvZywKZT0wLGo9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxpPWZhbHNlLG89dHJ1ZTtbMCwwXS5zb3J0KGZ1bmN0aW9uKCl7bz1mYWxzZTtyZXR1cm4gMH0pO3ZhciBrPWZ1bmN0aW9uKGcsaCxsLG0pe2w9bHx8W107dmFyIHE9aD1ofHxzO2lmKGgubm9kZVR5cGUhPT0xJiZoLm5vZGVUeXBlIT09OSlyZXR1cm5bXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4gbDtmb3IodmFyIHA9W10sdix0LHksUyxIPXRydWUsTT14KGgpLEk9ZzsoZi5leGVjKCIiKSx2PWYuZXhlYyhJKSkhPT1udWxsOyl7ST12WzNdO3AucHVzaCh2WzFdKTtpZih2WzJdKXtTPXZbM107YnJlYWt9fWlmKHAubGVuZ3RoPjEmJnIuZXhlYyhnKSlpZihwLmxlbmd0aD09PTImJm4ucmVsYXRpdmVbcFswXV0pdD1nYShwWzBdK3BbMV0saCk7ZWxzZSBmb3IodD1uLnJlbGF0aXZlW3BbMF1dP1toXTprKHAuc2hpZnQoKSxoKTtwLmxlbmd0aDspe2c9cC5zaGlmdCgpO2lmKG4ucmVsYXRpdmVbZ10pZys9cC5zaGlmdCgpOwp0PWdhKGcsdCl9ZWxzZXtpZighbSYmcC5sZW5ndGg+MSYmaC5ub2RlVHlwZT09PTkmJiFNJiZuLm1hdGNoLklELnRlc3QocFswXSkmJiFuLm1hdGNoLklELnRlc3QocFtwLmxlbmd0aC0xXSkpe3Y9ay5maW5kKHAuc2hpZnQoKSxoLE0pO2g9di5leHByP2suZmlsdGVyKHYuZXhwcix2LnNldClbMF06di5zZXRbMF19aWYoaCl7dj1tP3tleHByOnAucG9wKCksc2V0OnoobSl9OmsuZmluZChwLnBvcCgpLHAubGVuZ3RoPT09MSYmKHBbMF09PT0ifiJ8fHBbMF09PT0iKyIpJiZoLnBhcmVudE5vZGU/aC5wYXJlbnROb2RlOmgsTSk7dD12LmV4cHI/ay5maWx0ZXIodi5leHByLHYuc2V0KTp2LnNldDtpZihwLmxlbmd0aD4wKXk9eih0KTtlbHNlIEg9ZmFsc2U7Zm9yKDtwLmxlbmd0aDspe3ZhciBEPXAucG9wKCk7dj1EO2lmKG4ucmVsYXRpdmVbRF0pdj1wLnBvcCgpO2Vsc2UgRD0iIjtpZih2PT1udWxsKXY9aDtuLnJlbGF0aXZlW0RdKHksdixNKX19ZWxzZSB5PVtdfXl8fCh5PXQpO3l8fGsuZXJyb3IoRHx8CmcpO2lmKGouY2FsbCh5KT09PSJbb2JqZWN0IEFycmF5XSIpaWYoSClpZihoJiZoLm5vZGVUeXBlPT09MSlmb3IoZz0wO3lbZ10hPW51bGw7ZysrKXtpZih5W2ddJiYoeVtnXT09PXRydWV8fHlbZ10ubm9kZVR5cGU9PT0xJiZFKGgseVtnXSkpKWwucHVzaCh0W2ddKX1lbHNlIGZvcihnPTA7eVtnXSE9bnVsbDtnKyspeVtnXSYmeVtnXS5ub2RlVHlwZT09PTEmJmwucHVzaCh0W2ddKTtlbHNlIGwucHVzaC5hcHBseShsLHkpO2Vsc2Ugeih5LGwpO2lmKFMpe2soUyxxLGwsbSk7ay51bmlxdWVTb3J0KGwpfXJldHVybiBsfTtrLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZyl7aWYoQil7aT1vO2cuc29ydChCKTtpZihpKWZvcih2YXIgaD0xO2g8Zy5sZW5ndGg7aCsrKWdbaF09PT1nW2gtMV0mJmcuc3BsaWNlKGgtLSwxKX1yZXR1cm4gZ307ay5tYXRjaGVzPWZ1bmN0aW9uKGcsaCl7cmV0dXJuIGsoZyxudWxsLG51bGwsaCl9O2suZmluZD1mdW5jdGlvbihnLGgsbCl7dmFyIG0scTtpZighZylyZXR1cm5bXTsKZm9yKHZhciBwPTAsdj1uLm9yZGVyLmxlbmd0aDtwPHY7cCsrKXt2YXIgdD1uLm9yZGVyW3BdO2lmKHE9bi5sZWZ0TWF0Y2hbdF0uZXhlYyhnKSl7dmFyIHk9cVsxXTtxLnNwbGljZSgxLDEpO2lmKHkuc3Vic3RyKHkubGVuZ3RoLTEpIT09IlxcIil7cVsxXT0ocVsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO209bi5maW5kW3RdKHEsaCxsKTtpZihtIT1udWxsKXtnPWcucmVwbGFjZShuLm1hdGNoW3RdLCIiKTticmVha319fX1tfHwobT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO3JldHVybntzZXQ6bSxleHByOmd9fTtrLmZpbHRlcj1mdW5jdGlvbihnLGgsbCxtKXtmb3IodmFyIHE9ZyxwPVtdLHY9aCx0LHksUz1oJiZoWzBdJiZ4KGhbMF0pO2cmJmgubGVuZ3RoOyl7Zm9yKHZhciBIIGluIG4uZmlsdGVyKWlmKCh0PW4ubGVmdE1hdGNoW0hdLmV4ZWMoZykpIT1udWxsJiZ0WzJdKXt2YXIgTT1uLmZpbHRlcltIXSxJLEQ7RD10WzFdO3k9ZmFsc2U7dC5zcGxpY2UoMSwxKTtpZihELnN1YnN0cihELmxlbmd0aC0KMSkhPT0iXFwiKXtpZih2PT09cClwPVtdO2lmKG4ucHJlRmlsdGVyW0hdKWlmKHQ9bi5wcmVGaWx0ZXJbSF0odCx2LGwscCxtLFMpKXtpZih0PT09dHJ1ZSljb250aW51ZX1lbHNlIHk9ST10cnVlO2lmKHQpZm9yKHZhciBVPTA7KEQ9dltVXSkhPW51bGw7VSsrKWlmKEQpe0k9TShELHQsVSx2KTt2YXIgSGE9bV4hIUk7aWYobCYmSSE9bnVsbClpZihIYSl5PXRydWU7ZWxzZSB2W1VdPWZhbHNlO2Vsc2UgaWYoSGEpe3AucHVzaChEKTt5PXRydWV9fWlmKEkhPT13KXtsfHwodj1wKTtnPWcucmVwbGFjZShuLm1hdGNoW0hdLCIiKTtpZigheSlyZXR1cm5bXTticmVha319fWlmKGc9PT1xKWlmKHk9PW51bGwpay5lcnJvcihnKTtlbHNlIGJyZWFrO3E9Z31yZXR1cm4gdn07ay5lcnJvcj1mdW5jdGlvbihnKXt0aHJvdyJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2c7fTt2YXIgbj1rLnNlbGVjdG9ycz17b3JkZXI6WyJJRCIsIk5BTUUiLCJUQUciXSxtYXRjaDp7SUQ6LyMoKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKS8sCkNMQVNTOi9cLigoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKVsnIl0qXF0vLEFUVFI6L1xbXHMqKCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKylccyooPzooXFM/PSlccyooWyciXSopKC4qPylcM3wpXHMqXF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCotXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKykoPzpcKChbJyJdPykoKD86XChbXlwpXStcKXxbXlwoXCldKikrKVwyXCkpPy99LGxlZnRNYXRjaDp7fSxhdHRyTWFwOnsiY2xhc3MiOiJjbGFzc05hbWUiLCJmb3IiOiJodG1sRm9yIn0sYXR0ckhhbmRsZTp7aHJlZjpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRBdHRyaWJ1dGUoImhyZWYiKX19LApyZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGcsaCl7dmFyIGw9dHlwZW9mIGg9PT0ic3RyaW5nIixtPWwmJiEvXFcvLnRlc3QoaCk7bD1sJiYhbTtpZihtKWg9aC50b0xvd2VyQ2FzZSgpO209MDtmb3IodmFyIHE9Zy5sZW5ndGgscDttPHE7bSsrKWlmKHA9Z1ttXSl7Zm9yKDsocD1wLnByZXZpb3VzU2libGluZykmJnAubm9kZVR5cGUhPT0xOyk7Z1ttXT1sfHxwJiZwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP3B8fGZhbHNlOnA9PT1ofWwmJmsuZmlsdGVyKGgsZyx0cnVlKX0sIj4iOmZ1bmN0aW9uKGcsaCl7dmFyIGw9dHlwZW9mIGg9PT0ic3RyaW5nIjtpZihsJiYhL1xXLy50ZXN0KGgpKXtoPWgudG9Mb3dlckNhc2UoKTtmb3IodmFyIG09MCxxPWcubGVuZ3RoO208cTttKyspe3ZhciBwPWdbbV07aWYocCl7bD1wLnBhcmVudE5vZGU7Z1ttXT1sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP2w6ZmFsc2V9fX1lbHNle209MDtmb3IocT1nLmxlbmd0aDttPHE7bSsrKWlmKHA9Z1ttXSlnW21dPQpsP3AucGFyZW50Tm9kZTpwLnBhcmVudE5vZGU9PT1oO2wmJmsuZmlsdGVyKGgsZyx0cnVlKX19LCIiOmZ1bmN0aW9uKGcsaCxsKXt2YXIgbT1lKysscT1kO2lmKHR5cGVvZiBoPT09InN0cmluZyImJiEvXFcvLnRlc3QoaCkpe3ZhciBwPWg9aC50b0xvd2VyQ2FzZSgpO3E9Yn1xKCJwYXJlbnROb2RlIixoLG0sZyxwLGwpfSwifiI6ZnVuY3Rpb24oZyxoLGwpe3ZhciBtPWUrKyxxPWQ7aWYodHlwZW9mIGg9PT0ic3RyaW5nIiYmIS9cVy8udGVzdChoKSl7dmFyIHA9aD1oLnRvTG93ZXJDYXNlKCk7cT1ifXEoInByZXZpb3VzU2libGluZyIsaCxtLGcscCxsKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGcsaCxsKXtpZih0eXBlb2YgaC5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhbClyZXR1cm4oZz1oLmdldEVsZW1lbnRCeUlkKGdbMV0pKT9bZ106W119LE5BTUU6ZnVuY3Rpb24oZyxoKXtpZih0eXBlb2YgaC5nZXRFbGVtZW50c0J5TmFtZSE9PSJ1bmRlZmluZWQiKXt2YXIgbD1bXTsKaD1oLmdldEVsZW1lbnRzQnlOYW1lKGdbMV0pO2Zvcih2YXIgbT0wLHE9aC5sZW5ndGg7bTxxO20rKyloW21dLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09Z1sxXSYmbC5wdXNoKGhbbV0pO3JldHVybiBsLmxlbmd0aD09PTA/bnVsbDpsfX0sVEFHOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGguZ2V0RWxlbWVudHNCeVRhZ05hbWUoZ1sxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKGcsaCxsLG0scSxwKXtnPSIgIitnWzFdLnJlcGxhY2UoL1xcL2csIiIpKyIgIjtpZihwKXJldHVybiBnO3A9MDtmb3IodmFyIHY7KHY9aFtwXSkhPW51bGw7cCsrKWlmKHYpaWYocV4odi5jbGFzc05hbWUmJigiICIrdi5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKC9bXHRcbl0vZywiICIpLmluZGV4T2YoZyk+PTApKWx8fG0ucHVzaCh2KTtlbHNlIGlmKGwpaFtwXT1mYWxzZTtyZXR1cm4gZmFsc2V9LElEOmZ1bmN0aW9uKGcpe3JldHVybiBnWzFdLnJlcGxhY2UoL1xcL2csIiIpfSxUQUc6ZnVuY3Rpb24oZyl7cmV0dXJuIGdbMV0udG9Mb3dlckNhc2UoKX0sCkNISUxEOmZ1bmN0aW9uKGcpe2lmKGdbMV09PT0ibnRoIil7dmFyIGg9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhnWzJdPT09ImV2ZW4iJiYiMm4ifHxnWzJdPT09Im9kZCImJiIybisxInx8IS9cRC8udGVzdChnWzJdKSYmIjBuKyIrZ1syXXx8Z1syXSk7Z1syXT1oWzFdKyhoWzJdfHwxKS0wO2dbM109aFszXS0wfWdbMF09ZSsrO3JldHVybiBnfSxBVFRSOmZ1bmN0aW9uKGcsaCxsLG0scSxwKXtoPWdbMV0ucmVwbGFjZSgvXFwvZywiIik7aWYoIXAmJm4uYXR0ck1hcFtoXSlnWzFdPW4uYXR0ck1hcFtoXTtpZihnWzJdPT09In49IilnWzRdPSIgIitnWzRdKyIgIjtyZXR1cm4gZ30sUFNFVURPOmZ1bmN0aW9uKGcsaCxsLG0scSl7aWYoZ1sxXT09PSJub3QiKWlmKChmLmV4ZWMoZ1szXSl8fCIiKS5sZW5ndGg+MXx8L15cdy8udGVzdChnWzNdKSlnWzNdPWsoZ1szXSxudWxsLG51bGwsaCk7ZWxzZXtnPWsuZmlsdGVyKGdbM10saCxsLHRydWVecSk7bHx8bS5wdXNoLmFwcGx5KG0sCmcpO3JldHVybiBmYWxzZX1lbHNlIGlmKG4ubWF0Y2guUE9TLnRlc3QoZ1swXSl8fG4ubWF0Y2guQ0hJTEQudGVzdChnWzBdKSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZ30sUE9TOmZ1bmN0aW9uKGcpe2cudW5zaGlmdCh0cnVlKTtyZXR1cm4gZ319LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZGlzYWJsZWQ9PT1mYWxzZSYmZy50eXBlIT09ImhpZGRlbiJ9LGRpc2FibGVkOmZ1bmN0aW9uKGcpe3JldHVybiBnLmRpc2FibGVkPT09dHJ1ZX0sY2hlY2tlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5jaGVja2VkPT09dHJ1ZX0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuc2VsZWN0ZWQ9PT10cnVlfSxwYXJlbnQ6ZnVuY3Rpb24oZyl7cmV0dXJuISFnLmZpcnN0Q2hpbGR9LGVtcHR5OmZ1bmN0aW9uKGcpe3JldHVybiFnLmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihnLGgsbCl7cmV0dXJuISFrKGxbM10sZykubGVuZ3RofSxoZWFkZXI6ZnVuY3Rpb24oZyl7cmV0dXJuL2hcZC9pLnRlc3QoZy5ub2RlTmFtZSl9LAp0ZXh0OmZ1bmN0aW9uKGcpe3JldHVybiJ0ZXh0Ij09PWcudHlwZX0scmFkaW86ZnVuY3Rpb24oZyl7cmV0dXJuInJhZGlvIj09PWcudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oZyl7cmV0dXJuImNoZWNrYm94Ij09PWcudHlwZX0sZmlsZTpmdW5jdGlvbihnKXtyZXR1cm4iZmlsZSI9PT1nLnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKGcpe3JldHVybiJwYXNzd29yZCI9PT1nLnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihnKXtyZXR1cm4ic3VibWl0Ij09PWcudHlwZX0saW1hZ2U6ZnVuY3Rpb24oZyl7cmV0dXJuImltYWdlIj09PWcudHlwZX0scmVzZXQ6ZnVuY3Rpb24oZyl7cmV0dXJuInJlc2V0Ij09PWcudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKGcpe3JldHVybiJidXR0b24iPT09Zy50eXBlfHxnLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iYnV0dG9uIn0saW5wdXQ6ZnVuY3Rpb24oZyl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGcubm9kZU5hbWUpfX0sCnNldEZpbHRlcnM6e2ZpcnN0OmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGg9PT0wfSxsYXN0OmZ1bmN0aW9uKGcsaCxsLG0pe3JldHVybiBoPT09bS5sZW5ndGgtMX0sZXZlbjpmdW5jdGlvbihnLGgpe3JldHVybiBoJTI9PT0wfSxvZGQ6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaCUyPT09MX0sbHQ6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBoPGxbM10tMH0sZ3Q6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBoPmxbM10tMH0sbnRoOmZ1bmN0aW9uKGcsaCxsKXtyZXR1cm4gbFszXS0wPT09aH0sZXE6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBsWzNdLTA9PT1ofX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oZyxoLGwsbSl7dmFyIHE9aFsxXSxwPW4uZmlsdGVyc1txXTtpZihwKXJldHVybiBwKGcsbCxoLG0pO2Vsc2UgaWYocT09PSJjb250YWlucyIpcmV0dXJuKGcudGV4dENvbnRlbnR8fGcuaW5uZXJUZXh0fHxhKFtnXSl8fCIiKS5pbmRleE9mKGhbM10pPj0wO2Vsc2UgaWYocT09PSJub3QiKXtoPQpoWzNdO2w9MDtmb3IobT1oLmxlbmd0aDtsPG07bCsrKWlmKGhbbF09PT1nKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZX1lbHNlIGsuZXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrcSl9LENISUxEOmZ1bmN0aW9uKGcsaCl7dmFyIGw9aFsxXSxtPWc7c3dpdGNoKGwpe2Nhc2UgIm9ubHkiOmNhc2UgImZpcnN0Ijpmb3IoO209bS5wcmV2aW91c1NpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtpZihsPT09ImZpcnN0IilyZXR1cm4gdHJ1ZTttPWc7Y2FzZSAibGFzdCI6Zm9yKDttPW0ubmV4dFNpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZTtjYXNlICJudGgiOmw9aFsyXTt2YXIgcT1oWzNdO2lmKGw9PT0xJiZxPT09MClyZXR1cm4gdHJ1ZTtoPWhbMF07dmFyIHA9Zy5wYXJlbnROb2RlO2lmKHAmJihwLnNpemNhY2hlIT09aHx8IWcubm9kZUluZGV4KSl7dmFyIHY9MDtmb3IobT1wLmZpcnN0Q2hpbGQ7bTttPQptLm5leHRTaWJsaW5nKWlmKG0ubm9kZVR5cGU9PT0xKW0ubm9kZUluZGV4PSsrdjtwLnNpemNhY2hlPWh9Zz1nLm5vZGVJbmRleC1xO3JldHVybiBsPT09MD9nPT09MDpnJWw9PT0wJiZnL2w+PTB9fSxJRDpmdW5jdGlvbihnLGgpe3JldHVybiBnLm5vZGVUeXBlPT09MSYmZy5nZXRBdHRyaWJ1dGUoImlkIik9PT1ofSxUQUc6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaD09PSIqIiYmZy5ub2RlVHlwZT09PTF8fGcubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWh9LENMQVNTOmZ1bmN0aW9uKGcsaCl7cmV0dXJuKCIgIisoZy5jbGFzc05hbWV8fGcuZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSsiICIpLmluZGV4T2YoaCk+LTF9LEFUVFI6ZnVuY3Rpb24oZyxoKXt2YXIgbD1oWzFdO2c9bi5hdHRySGFuZGxlW2xdP24uYXR0ckhhbmRsZVtsXShnKTpnW2xdIT1udWxsP2dbbF06Zy5nZXRBdHRyaWJ1dGUobCk7bD1nKyIiO3ZhciBtPWhbMl07aD1oWzRdO3JldHVybiBnPT1udWxsP209PT0iIT0iOm09PT0KIj0iP2w9PT1oOm09PT0iKj0iP2wuaW5kZXhPZihoKT49MDptPT09In49Ij8oIiAiK2wrIiAiKS5pbmRleE9mKGgpPj0wOiFoP2wmJmchPT1mYWxzZTptPT09IiE9Ij9sIT09aDptPT09Il49Ij9sLmluZGV4T2YoaCk9PT0wOm09PT0iJD0iP2wuc3Vic3RyKGwubGVuZ3RoLWgubGVuZ3RoKT09PWg6bT09PSJ8PSI/bD09PWh8fGwuc3Vic3RyKDAsaC5sZW5ndGgrMSk9PT1oKyItIjpmYWxzZX0sUE9TOmZ1bmN0aW9uKGcsaCxsLG0pe3ZhciBxPW4uc2V0RmlsdGVyc1toWzJdXTtpZihxKXJldHVybiBxKGcsbCxoLG0pfX19LHI9bi5tYXRjaC5QT1M7Zm9yKHZhciB1IGluIG4ubWF0Y2gpe24ubWF0Y2hbdV09bmV3IFJlZ0V4cChuLm1hdGNoW3VdLnNvdXJjZSsvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UpO24ubGVmdE1hdGNoW3VdPW5ldyBSZWdFeHAoLyheKD86LnxccnxcbikqPykvLnNvdXJjZStuLm1hdGNoW3VdLnNvdXJjZS5yZXBsYWNlKC9cXChcZCspL2csZnVuY3Rpb24oZywKaCl7cmV0dXJuIlxcIisoaC0wKzEpfSkpfXZhciB6PWZ1bmN0aW9uKGcsaCl7Zz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChnLDApO2lmKGgpe2gucHVzaC5hcHBseShoLGcpO3JldHVybiBofXJldHVybiBnfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocy5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywwKX1jYXRjaChDKXt6PWZ1bmN0aW9uKGcsaCl7aD1ofHxbXTtpZihqLmNhbGwoZyk9PT0iW29iamVjdCBBcnJheV0iKUFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGgsZyk7ZWxzZSBpZih0eXBlb2YgZy5sZW5ndGg9PT0ibnVtYmVyIilmb3IodmFyIGw9MCxtPWcubGVuZ3RoO2w8bTtsKyspaC5wdXNoKGdbbF0pO2Vsc2UgZm9yKGw9MDtnW2xdO2wrKyloLnB1c2goZ1tsXSk7cmV0dXJuIGh9fXZhciBCO2lmKHMuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKUI9ZnVuY3Rpb24oZyxoKXtpZighZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbnx8CiFoLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtpZihnPT1oKWk9dHJ1ZTtyZXR1cm4gZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxfWc9Zy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihoKSY0Py0xOmc9PT1oPzA6MTtpZihnPT09MClpPXRydWU7cmV0dXJuIGd9O2Vsc2UgaWYoInNvdXJjZUluZGV4ImluIHMuZG9jdW1lbnRFbGVtZW50KUI9ZnVuY3Rpb24oZyxoKXtpZighZy5zb3VyY2VJbmRleHx8IWguc291cmNlSW5kZXgpe2lmKGc9PWgpaT10cnVlO3JldHVybiBnLnNvdXJjZUluZGV4Py0xOjF9Zz1nLnNvdXJjZUluZGV4LWguc291cmNlSW5kZXg7aWYoZz09PTApaT10cnVlO3JldHVybiBnfTtlbHNlIGlmKHMuY3JlYXRlUmFuZ2UpQj1mdW5jdGlvbihnLGgpe2lmKCFnLm93bmVyRG9jdW1lbnR8fCFoLm93bmVyRG9jdW1lbnQpe2lmKGc9PWgpaT10cnVlO3JldHVybiBnLm93bmVyRG9jdW1lbnQ/LTE6MX12YXIgbD1nLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxtPQpoLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtsLnNldFN0YXJ0KGcsMCk7bC5zZXRFbmQoZywwKTttLnNldFN0YXJ0KGgsMCk7bS5zZXRFbmQoaCwwKTtnPWwuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLlNUQVJUX1RPX0VORCxtKTtpZihnPT09MClpPXRydWU7cmV0dXJuIGd9OyhmdW5jdGlvbigpe3ZhciBnPXMuY3JlYXRlRWxlbWVudCgiZGl2IiksaD0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtnLmlubmVySFRNTD0iPGEgbmFtZT0nIitoKyInLz4iO3ZhciBsPXMuZG9jdW1lbnRFbGVtZW50O2wuaW5zZXJ0QmVmb3JlKGcsbC5maXJzdENoaWxkKTtpZihzLmdldEVsZW1lbnRCeUlkKGgpKXtuLmZpbmQuSUQ9ZnVuY3Rpb24obSxxLHApe2lmKHR5cGVvZiBxLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFwKXJldHVybihxPXEuZ2V0RWxlbWVudEJ5SWQobVsxXSkpP3EuaWQ9PT1tWzFdfHx0eXBlb2YgcS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJgpxLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09bVsxXT9bcV06dzpbXX07bi5maWx0ZXIuSUQ9ZnVuY3Rpb24obSxxKXt2YXIgcD10eXBlb2YgbS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJm0uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbS5ub2RlVHlwZT09PTEmJnAmJnAubm9kZVZhbHVlPT09cX19bC5yZW1vdmVDaGlsZChnKTtsPWc9bnVsbH0pKCk7KGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmFwcGVuZENoaWxkKHMuY3JlYXRlQ29tbWVudCgiIikpO2lmKGcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCluLmZpbmQuVEFHPWZ1bmN0aW9uKGgsbCl7bD1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKGhbMV0pO2lmKGhbMV09PT0iKiIpe2g9W107Zm9yKHZhciBtPTA7bFttXTttKyspbFttXS5ub2RlVHlwZT09PTEmJmgucHVzaChsW21dKTtsPWh9cmV0dXJuIGx9O2cuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IjsKaWYoZy5maXJzdENoaWxkJiZ0eXBlb2YgZy5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSE9PSJ1bmRlZmluZWQiJiZnLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIikhPT0iIyIpbi5hdHRySGFuZGxlLmhyZWY9ZnVuY3Rpb24oaCl7cmV0dXJuIGguZ2V0QXR0cmlidXRlKCJocmVmIiwyKX07Zz1udWxsfSkoKTtzLnF1ZXJ5U2VsZWN0b3JBbGwmJmZ1bmN0aW9uKCl7dmFyIGc9ayxoPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5pbm5lckhUTUw9IjxwIGNsYXNzPSdURVNUJz48L3A+IjtpZighKGgucXVlcnlTZWxlY3RvckFsbCYmaC5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApKXtrPWZ1bmN0aW9uKG0scSxwLHYpe3E9cXx8cztpZighdiYmcS5ub2RlVHlwZT09PTkmJiF4KHEpKXRyeXtyZXR1cm4geihxLnF1ZXJ5U2VsZWN0b3JBbGwobSkscCl9Y2F0Y2godCl7fXJldHVybiBnKG0scSxwLHYpfTtmb3IodmFyIGwgaW4gZylrW2xdPWdbbF07aD1udWxsfX0oKTsKKGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKCEoIWcuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZXx8Zy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MCkpe2cubGFzdENoaWxkLmNsYXNzTmFtZT0iZSI7aWYoZy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoIT09MSl7bi5vcmRlci5zcGxpY2UoMSwwLCJDTEFTUyIpO24uZmluZC5DTEFTUz1mdW5jdGlvbihoLGwsbSl7aWYodHlwZW9mIGwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PSJ1bmRlZmluZWQiJiYhbSlyZXR1cm4gbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGhbMV0pfTtnPW51bGx9fX0pKCk7dmFyIEU9cy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlvbihnLGgpe3JldHVybiEhKGcuY29tcGFyZURvY3VtZW50UG9zaXRpb24oaCkmMTYpfToKZnVuY3Rpb24oZyxoKXtyZXR1cm4gZyE9PWgmJihnLmNvbnRhaW5zP2cuY29udGFpbnMoaCk6dHJ1ZSl9LHg9ZnVuY3Rpb24oZyl7cmV0dXJuKGc9KGc/Zy5vd25lckRvY3VtZW50fHxnOjApLmRvY3VtZW50RWxlbWVudCk/Zy5ub2RlTmFtZSE9PSJIVE1MIjpmYWxzZX0sZ2E9ZnVuY3Rpb24oZyxoKXt2YXIgbD1bXSxtPSIiLHE7Zm9yKGg9aC5ub2RlVHlwZT9baF06aDtxPW4ubWF0Y2guUFNFVURPLmV4ZWMoZyk7KXttKz1xWzBdO2c9Zy5yZXBsYWNlKG4ubWF0Y2guUFNFVURPLCIiKX1nPW4ucmVsYXRpdmVbZ10/ZysiKiI6ZztxPTA7Zm9yKHZhciBwPWgubGVuZ3RoO3E8cDtxKyspayhnLGhbcV0sbCk7cmV0dXJuIGsuZmlsdGVyKG0sbCl9O2MuZmluZD1rO2MuZXhwcj1rLnNlbGVjdG9ycztjLmV4cHJbIjoiXT1jLmV4cHIuZmlsdGVycztjLnVuaXF1ZT1rLnVuaXF1ZVNvcnQ7Yy50ZXh0PWE7Yy5pc1hNTERvYz14O2MuY29udGFpbnM9RX0pKCk7dmFyIGViPS9VbnRpbCQvLGZiPS9eKD86cGFyZW50c3xwcmV2VW50aWx8cHJldkFsbCkvLApnYj0vLC87Uj1BcnJheS5wcm90b3R5cGUuc2xpY2U7dmFyIElhPWZ1bmN0aW9uKGEsYixkKXtpZihjLmlzRnVuY3Rpb24oYikpcmV0dXJuIGMuZ3JlcChhLGZ1bmN0aW9uKGUsail7cmV0dXJuISFiLmNhbGwoZSxqLGUpPT09ZH0pO2Vsc2UgaWYoYi5ub2RlVHlwZSlyZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1iPT09ZH0pO2Vsc2UgaWYodHlwZW9mIGI9PT0ic3RyaW5nIil7dmFyIGY9Yy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZVR5cGU9PT0xfSk7aWYoVWEudGVzdChiKSlyZXR1cm4gYy5maWx0ZXIoYixmLCFkKTtlbHNlIGI9Yy5maWx0ZXIoYixmKX1yZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGMuaW5BcnJheShlLGIpPj0wPT09ZH0pfTtjLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcy5wdXNoU3RhY2soIiIsImZpbmQiLGEpLGQ9MCxmPTAsZT10aGlzLmxlbmd0aDtmPGU7ZisrKXtkPWIubGVuZ3RoOwpjLmZpbmQoYSx0aGlzW2ZdLGIpO2lmKGY+MClmb3IodmFyIGo9ZDtqPGIubGVuZ3RoO2orKylmb3IodmFyIGk9MDtpPGQ7aSsrKWlmKGJbaV09PT1iW2pdKXtiLnNwbGljZShqLS0sMSk7YnJlYWt9fXJldHVybiBifSxoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9YyhhKTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGQ9MCxmPWIubGVuZ3RoO2Q8ZjtkKyspaWYoYy5jb250YWlucyh0aGlzLGJbZF0pKXJldHVybiB0cnVlfSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soSWEodGhpcyxhLGZhbHNlKSwibm90IixhKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhJYSh0aGlzLGEsdHJ1ZSksImZpbHRlciIsYSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhYSYmYy5maWx0ZXIoYSx0aGlzKS5sZW5ndGg+MH0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe2lmKGMuaXNBcnJheShhKSl7dmFyIGQ9W10sZj10aGlzWzBdLGUsaj0Ke30saTtpZihmJiZhLmxlbmd0aCl7ZT0wO2Zvcih2YXIgbz1hLmxlbmd0aDtlPG87ZSsrKXtpPWFbZV07altpXXx8KGpbaV09Yy5leHByLm1hdGNoLlBPUy50ZXN0KGkpP2MoaSxifHx0aGlzLmNvbnRleHQpOmkpfWZvcig7ZiYmZi5vd25lckRvY3VtZW50JiZmIT09Yjspe2ZvcihpIGluIGope2U9altpXTtpZihlLmpxdWVyeT9lLmluZGV4KGYpPi0xOmMoZikuaXMoZSkpe2QucHVzaCh7c2VsZWN0b3I6aSxlbGVtOmZ9KTtkZWxldGUgaltpXX19Zj1mLnBhcmVudE5vZGV9fXJldHVybiBkfXZhciBrPWMuZXhwci5tYXRjaC5QT1MudGVzdChhKT9jKGEsYnx8dGhpcy5jb250ZXh0KTpudWxsO3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihuLHIpe2Zvcig7ciYmci5vd25lckRvY3VtZW50JiZyIT09Yjspe2lmKGs/ay5pbmRleChyKT4tMTpjKHIpLmlzKGEpKXJldHVybiByO3I9ci5wYXJlbnROb2RlfXJldHVybiBudWxsfSl9LGluZGV4OmZ1bmN0aW9uKGEpe2lmKCFhfHx0eXBlb2YgYT09PQoic3RyaW5nIilyZXR1cm4gYy5pbkFycmF5KHRoaXNbMF0sYT9jKGEpOnRoaXMucGFyZW50KCkuY2hpbGRyZW4oKSk7cmV0dXJuIGMuaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyl9LGFkZDpmdW5jdGlvbihhLGIpe2E9dHlwZW9mIGE9PT0ic3RyaW5nIj9jKGEsYnx8dGhpcy5jb250ZXh0KTpjLm1ha2VBcnJheShhKTtiPWMubWVyZ2UodGhpcy5nZXQoKSxhKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2socWEoYVswXSl8fHFhKGJbMF0pP2I6Yy51bmlxdWUoYikpfSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9fSk7Yy5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5wYXJlbnROb2RlKSYmYS5ub2RlVHlwZSE9PTExP2E6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLmRpcihhLCJwYXJlbnROb2RlIiwKZCl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGMubnRoKGEsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gYy5udGgoYSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGMuZGlyKGEsIm5leHRTaWJsaW5nIixkKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIixkKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5ub2RlTmFtZShhLCJpZnJhbWUiKT8KYS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDpjLm1ha2VBcnJheShhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtjLmZuW2FdPWZ1bmN0aW9uKGQsZil7dmFyIGU9Yy5tYXAodGhpcyxiLGQpO2ViLnRlc3QoYSl8fChmPWQpO2lmKGYmJnR5cGVvZiBmPT09InN0cmluZyIpZT1jLmZpbHRlcihmLGUpO2U9dGhpcy5sZW5ndGg+MT9jLnVuaXF1ZShlKTplO2lmKCh0aGlzLmxlbmd0aD4xfHxnYi50ZXN0KGYpKSYmZmIudGVzdChhKSllPWUucmV2ZXJzZSgpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlLGEsUi5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpKX19KTtjLmV4dGVuZCh7ZmlsdGVyOmZ1bmN0aW9uKGEsYixkKXtpZihkKWE9Ijpub3QoIithKyIpIjtyZXR1cm4gYy5maW5kLm1hdGNoZXMoYSxiKX0sZGlyOmZ1bmN0aW9uKGEsYixkKXt2YXIgZj1bXTtmb3IoYT1hW2JdO2EmJmEubm9kZVR5cGUhPT05JiYoZD09PXd8fGEubm9kZVR5cGUhPT0xfHwhYyhhKS5pcyhkKSk7KXthLm5vZGVUeXBlPT09CjEmJmYucHVzaChhKTthPWFbYl19cmV0dXJuIGZ9LG50aDpmdW5jdGlvbihhLGIsZCl7Yj1ifHwxO2Zvcih2YXIgZj0wO2E7YT1hW2RdKWlmKGEubm9kZVR5cGU9PT0xJiYrK2Y9PT1iKWJyZWFrO3JldHVybiBhfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPVtdO2E7YT1hLm5leHRTaWJsaW5nKWEubm9kZVR5cGU9PT0xJiZhIT09YiYmZC5wdXNoKGEpO3JldHVybiBkfX0pO3ZhciBKYT0vIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLFY9L15ccysvLEthPS8oPChbXHc6XSspW14+XSo/KVwvPi9nLGhiPS9eKD86YXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkkL2ksTGE9LzwoW1x3Ol0rKS8saWI9Lzx0Ym9keS9pLGpiPS88fCYjP1x3KzsvLHRhPS88c2NyaXB0fDxvYmplY3R8PGVtYmVkfDxvcHRpb258PHN0eWxlL2ksdWE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksTWE9ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBoYi50ZXN0KGQpPwphOmIrIj48LyIrZCsiPiJ9LEY9e29wdGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2VuZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07Ri5vcHRncm91cD1GLm9wdGlvbjtGLnRib2R5PUYudGZvb3Q9Ri5jb2xncm91cD1GLmNhcHRpb249Ri50aGVhZDtGLnRoPUYudGQ7aWYoIWMuc3VwcG9ydC5odG1sU2VyaWFsaXplKUYuX2RlZmF1bHQ9WzEsImRpdjxkaXY+IiwiPC9kaXY+Il07Yy5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7dmFyIGQ9CmModGhpcyk7ZC50ZXh0KGEuY2FsbCh0aGlzLGIsZC50ZXh0KCkpKX0pO2lmKHR5cGVvZiBhIT09Im9iamVjdCImJmEhPT13KXJldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHMpLmNyZWF0ZVRleHROb2RlKGEpKTtyZXR1cm4gYy50ZXh0KHRoaXMpfSx3cmFwQWxsOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGQpe2ModGhpcykud3JhcEFsbChhLmNhbGwodGhpcyxkKSl9KTtpZih0aGlzWzBdKXt2YXIgYj1jKGEsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSh0cnVlKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pO2IubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPXRoaXM7ZC5maXJzdENoaWxkJiZkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0xOylkPWQuZmlyc3RDaGlsZDtyZXR1cm4gZH0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sCndyYXBJbm5lcjpmdW5jdGlvbihhKXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtjKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKSxkPWIuY29udGVudHMoKTtkLmxlbmd0aD9kLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS53cmFwQWxsKGEpfSl9LHVud3JhcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKXtjLm5vZGVOYW1lKHRoaXMsImJvZHkiKXx8Yyh0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5kKCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLmFwcGVuZENoaWxkKGEpfSl9LApwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMuaW5zZXJ0QmVmb3JlKGEsdGhpcy5maXJzdENoaWxkKX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYix0aGlzKX0pO2Vsc2UgaWYoYXJndW1lbnRzLmxlbmd0aCl7dmFyIGE9Yyhhcmd1bWVudHNbMF0pO2EucHVzaC5hcHBseShhLHRoaXMudG9BcnJheSgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYSwiYmVmb3JlIixhcmd1bWVudHMpfX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYiwKdGhpcy5uZXh0U2libGluZyl9KTtlbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBhPXRoaXMucHVzaFN0YWNrKHRoaXMsImFmdGVyIixhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLGMoYXJndW1lbnRzWzBdKS50b0FycmF5KCkpO3JldHVybiBhfX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPTAsZjsoZj10aGlzW2RdKSE9bnVsbDtkKyspaWYoIWF8fGMuZmlsdGVyKGEsW2ZdKS5sZW5ndGgpe2lmKCFiJiZmLm5vZGVUeXBlPT09MSl7Yy5jbGVhbkRhdGEoZi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTtjLmNsZWFuRGF0YShbZl0pfWYucGFyZW50Tm9kZSYmZi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGYpfXJldHVybiB0aGlzfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYT0wLGI7KGI9dGhpc1thXSkhPW51bGw7YSsrKWZvcihiLm5vZGVUeXBlPT09MSYmYy5jbGVhbkRhdGEoYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTtiLmZpcnN0Q2hpbGQ7KWIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKTsKcmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubWFwKGZ1bmN0aW9uKCl7aWYoIWMuc3VwcG9ydC5ub0Nsb25lRXZlbnQmJiFjLmlzWE1MRG9jKHRoaXMpKXt2YXIgZD10aGlzLm91dGVySFRNTCxmPXRoaXMub3duZXJEb2N1bWVudDtpZighZCl7ZD1mLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuYXBwZW5kQ2hpbGQodGhpcy5jbG9uZU5vZGUodHJ1ZSkpO2Q9ZC5pbm5lckhUTUx9cmV0dXJuIGMuY2xlYW4oW2QucmVwbGFjZShKYSwiIikucmVwbGFjZSgvPShbXj0iJz5cc10rXC8pPi9nLCc9IiQxIj4nKS5yZXBsYWNlKFYsIiIpXSxmKVswXX1lbHNlIHJldHVybiB0aGlzLmNsb25lTm9kZSh0cnVlKX0pO2lmKGE9PT10cnVlKXtyYSh0aGlzLGIpO3JhKHRoaXMuZmluZCgiKiIpLGIuZmluZCgiKiIpKX1yZXR1cm4gYn0saHRtbDpmdW5jdGlvbihhKXtpZihhPT09dylyZXR1cm4gdGhpc1swXSYmdGhpc1swXS5ub2RlVHlwZT09PTE/dGhpc1swXS5pbm5lckhUTUwucmVwbGFjZShKYSwKIiIpOm51bGw7ZWxzZSBpZih0eXBlb2YgYT09PSJzdHJpbmciJiYhdGEudGVzdChhKSYmKGMuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZXx8IVYudGVzdChhKSkmJiFGWyhMYS5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1hLnJlcGxhY2UoS2EsTWEpO3RyeXtmb3IodmFyIGI9MCxkPXRoaXMubGVuZ3RoO2I8ZDtiKyspaWYodGhpc1tiXS5ub2RlVHlwZT09PTEpe2MuY2xlYW5EYXRhKHRoaXNbYl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7dGhpc1tiXS5pbm5lckhUTUw9YX19Y2F0Y2goZil7dGhpcy5lbXB0eSgpLmFwcGVuZChhKX19ZWxzZSBjLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBqPWModGhpcyksaT1qLmh0bWwoKTtqLmVtcHR5KCkuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIGEuY2FsbCh0aGlzLGUsaSl9KX0pOnRoaXMuZW1wdHkoKS5hcHBlbmQoYSk7cmV0dXJuIHRoaXN9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKGEpe2lmKHRoaXNbMF0mJgp0aGlzWzBdLnBhcmVudE5vZGUpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWModGhpcyksZj1kLmh0bWwoKTtkLnJlcGxhY2VXaXRoKGEuY2FsbCh0aGlzLGIsZikpfSk7aWYodHlwZW9mIGEhPT0ic3RyaW5nIilhPWMoYSkuZGV0YWNoKCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPXRoaXMubmV4dFNpYmxpbmcsZD10aGlzLnBhcmVudE5vZGU7Yyh0aGlzKS5yZW1vdmUoKTtiP2MoYikuYmVmb3JlKGEpOmMoZCkuYXBwZW5kKGEpfSl9ZWxzZSByZXR1cm4gdGhpcy5wdXNoU3RhY2soYyhjLmlzRnVuY3Rpb24oYSk/YSgpOmEpLCJyZXBsYWNlV2l0aCIsYSl9LGRldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yZW1vdmUoYSx0cnVlKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiLGQpe2Z1bmN0aW9uIGYodSl7cmV0dXJuIGMubm9kZU5hbWUodSwidGFibGUiKT91LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHwKdS5hcHBlbmRDaGlsZCh1Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6dX12YXIgZSxqLGk9YVswXSxvPVtdLGs7aWYoIWMuc3VwcG9ydC5jaGVja0Nsb25lJiZhcmd1bWVudHMubGVuZ3RoPT09MyYmdHlwZW9mIGk9PT0ic3RyaW5nIiYmdWEudGVzdChpKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5kb21NYW5pcChhLGIsZCx0cnVlKX0pO2lmKGMuaXNGdW5jdGlvbihpKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHUpe3ZhciB6PWModGhpcyk7YVswXT1pLmNhbGwodGhpcyx1LGI/ei5odG1sKCk6dyk7ei5kb21NYW5pcChhLGIsZCl9KTtpZih0aGlzWzBdKXtlPWkmJmkucGFyZW50Tm9kZTtlPWMuc3VwcG9ydC5wYXJlbnROb2RlJiZlJiZlLm5vZGVUeXBlPT09MTEmJmUuY2hpbGROb2Rlcy5sZW5ndGg9PT10aGlzLmxlbmd0aD97ZnJhZ21lbnQ6ZX06c2EoYSx0aGlzLG8pO2s9ZS5mcmFnbWVudDtpZihqPWsuY2hpbGROb2Rlcy5sZW5ndGg9PT0KMT8oaz1rLmZpcnN0Q2hpbGQpOmsuZmlyc3RDaGlsZCl7Yj1iJiZjLm5vZGVOYW1lKGosInRyIik7Zm9yKHZhciBuPTAscj10aGlzLmxlbmd0aDtuPHI7bisrKWQuY2FsbChiP2YodGhpc1tuXSxqKTp0aGlzW25dLG4+MHx8ZS5jYWNoZWFibGV8fHRoaXMubGVuZ3RoPjE/ay5jbG9uZU5vZGUodHJ1ZSk6ayl9by5sZW5ndGgmJmMuZWFjaChvLFFhKX1yZXR1cm4gdGhpc319KTtjLmZyYWdtZW50cz17fTtjLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCl7dmFyIGY9W107ZD1jKGQpO3ZhciBlPXRoaXMubGVuZ3RoPT09MSYmdGhpc1swXS5wYXJlbnROb2RlO2lmKGUmJmUubm9kZVR5cGU9PT0xMSYmZS5jaGlsZE5vZGVzLmxlbmd0aD09PTEmJmQubGVuZ3RoPT09MSl7ZFtiXSh0aGlzWzBdKTsKcmV0dXJuIHRoaXN9ZWxzZXtlPTA7Zm9yKHZhciBqPWQubGVuZ3RoO2U8ajtlKyspe3ZhciBpPShlPjA/dGhpcy5jbG9uZSh0cnVlKTp0aGlzKS5nZXQoKTtjLmZuW2JdLmFwcGx5KGMoZFtlXSksaSk7Zj1mLmNvbmNhdChpKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soZixhLGQuc2VsZWN0b3IpfX19KTtjLmV4dGVuZCh7Y2xlYW46ZnVuY3Rpb24oYSxiLGQsZil7Yj1ifHxzO2lmKHR5cGVvZiBiLmNyZWF0ZUVsZW1lbnQ9PT0idW5kZWZpbmVkIiliPWIub3duZXJEb2N1bWVudHx8YlswXSYmYlswXS5vd25lckRvY3VtZW50fHxzO2Zvcih2YXIgZT1bXSxqPTAsaTsoaT1hW2pdKSE9bnVsbDtqKyspe2lmKHR5cGVvZiBpPT09Im51bWJlciIpaSs9IiI7aWYoaSl7aWYodHlwZW9mIGk9PT0ic3RyaW5nIiYmIWpiLnRlc3QoaSkpaT1iLmNyZWF0ZVRleHROb2RlKGkpO2Vsc2UgaWYodHlwZW9mIGk9PT0ic3RyaW5nIil7aT1pLnJlcGxhY2UoS2EsTWEpO3ZhciBvPShMYS5leGVjKGkpfHxbIiIsCiIiXSlbMV0udG9Mb3dlckNhc2UoKSxrPUZbb118fEYuX2RlZmF1bHQsbj1rWzBdLHI9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3Ioci5pbm5lckhUTUw9a1sxXStpK2tbMl07bi0tOylyPXIubGFzdENoaWxkO2lmKCFjLnN1cHBvcnQudGJvZHkpe249aWIudGVzdChpKTtvPW89PT0idGFibGUiJiYhbj9yLmZpcnN0Q2hpbGQmJnIuZmlyc3RDaGlsZC5jaGlsZE5vZGVzOmtbMV09PT0iPHRhYmxlPiImJiFuP3IuY2hpbGROb2RlczpbXTtmb3Ioaz1vLmxlbmd0aC0xO2s+PTA7LS1rKWMubm9kZU5hbWUob1trXSwidGJvZHkiKSYmIW9ba10uY2hpbGROb2Rlcy5sZW5ndGgmJm9ba10ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvW2tdKX0hYy5zdXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNlJiZWLnRlc3QoaSkmJnIuaW5zZXJ0QmVmb3JlKGIuY3JlYXRlVGV4dE5vZGUoVi5leGVjKGkpWzBdKSxyLmZpcnN0Q2hpbGQpO2k9ci5jaGlsZE5vZGVzfWlmKGkubm9kZVR5cGUpZS5wdXNoKGkpO2Vsc2UgZT0KYy5tZXJnZShlLGkpfX1pZihkKWZvcihqPTA7ZVtqXTtqKyspaWYoZiYmYy5ub2RlTmFtZShlW2pdLCJzY3JpcHQiKSYmKCFlW2pdLnR5cGV8fGVbal0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKWYucHVzaChlW2pdLnBhcmVudE5vZGU/ZVtqXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVbal0pOmVbal0pO2Vsc2V7ZVtqXS5ub2RlVHlwZT09PTEmJmUuc3BsaWNlLmFwcGx5KGUsW2orMSwwXS5jb25jYXQoYy5tYWtlQXJyYXkoZVtqXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSk7ZC5hcHBlbmRDaGlsZChlW2pdKX1yZXR1cm4gZX0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixkLGY9Yy5jYWNoZSxlPWMuZXZlbnQuc3BlY2lhbCxqPWMuc3VwcG9ydC5kZWxldGVFeHBhbmRvLGk9MCxvOyhvPWFbaV0pIT1udWxsO2krKylpZihkPW9bYy5leHBhbmRvXSl7Yj1mW2RdO2lmKGIuZXZlbnRzKWZvcih2YXIgayBpbiBiLmV2ZW50cyllW2tdPwpjLmV2ZW50LnJlbW92ZShvLGspOkNhKG8sayxiLmhhbmRsZSk7aWYoailkZWxldGUgb1tjLmV4cGFuZG9dO2Vsc2Ugby5yZW1vdmVBdHRyaWJ1dGUmJm8ucmVtb3ZlQXR0cmlidXRlKGMuZXhwYW5kbyk7ZGVsZXRlIGZbZF19fX0pO3ZhciBrYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxOYT0vYWxwaGFcKFteKV0qXCkvLE9hPS9vcGFjaXR5PShbXildKikvLGhhPS9mbG9hdC9pLGlhPS8tKFthLXpdKS9pZyxsYj0vKFtBLVpdKS9nLG1iPS9eLT9cZCsoPzpweCk/JC9pLG5iPS9eLT9cZC8sb2I9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LHBiPVsiTGVmdCIsIlJpZ2h0Il0scWI9WyJUb3AiLCJCb3R0b20iXSxyYj1zLmRlZmF1bHRWaWV3JiZzLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUsUGE9Yy5zdXBwb3J0LmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQiLGphPQpmdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O2MuZm4uY3NzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFgodGhpcyxhLGIsdHJ1ZSxmdW5jdGlvbihkLGYsZSl7aWYoZT09PXcpcmV0dXJuIGMuY3VyQ1NTKGQsZik7aWYodHlwZW9mIGU9PT0ibnVtYmVyIiYmIWtiLnRlc3QoZikpZSs9InB4IjtjLnN0eWxlKGQsZixlKX0pfTtjLmV4dGVuZCh7c3R5bGU6ZnVuY3Rpb24oYSxiLGQpe2lmKCFhfHxhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpcmV0dXJuIHc7aWYoKGI9PT0id2lkdGgifHxiPT09ImhlaWdodCIpJiZwYXJzZUZsb2F0KGQpPDApZD13O3ZhciBmPWEuc3R5bGV8fGEsZT1kIT09dztpZighYy5zdXBwb3J0Lm9wYWNpdHkmJmI9PT0ib3BhY2l0eSIpe2lmKGUpe2Yuem9vbT0xO2I9cGFyc2VJbnQoZCwxMCkrIiI9PT0iTmFOIj8iIjoiYWxwaGEob3BhY2l0eT0iK2QqMTAwKyIpIjthPWYuZmlsdGVyfHxjLmN1ckNTUyhhLCJmaWx0ZXIiKXx8IiI7Zi5maWx0ZXI9Ck5hLnRlc3QoYSk/YS5yZXBsYWNlKE5hLGIpOmJ9cmV0dXJuIGYuZmlsdGVyJiZmLmZpbHRlci5pbmRleE9mKCJvcGFjaXR5PSIpPj0wP3BhcnNlRmxvYXQoT2EuZXhlYyhmLmZpbHRlcilbMV0pLzEwMCsiIjoiIn1pZihoYS50ZXN0KGIpKWI9UGE7Yj1iLnJlcGxhY2UoaWEsamEpO2lmKGUpZltiXT1kO3JldHVybiBmW2JdfSxjc3M6ZnVuY3Rpb24oYSxiLGQsZil7aWYoYj09PSJ3aWR0aCJ8fGI9PT0iaGVpZ2h0Iil7dmFyIGUsaj1iPT09IndpZHRoIj9wYjpxYjtmdW5jdGlvbiBpKCl7ZT1iPT09IndpZHRoIj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0O2YhPT0iYm9yZGVyIiYmYy5lYWNoKGosZnVuY3Rpb24oKXtmfHwoZS09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJwYWRkaW5nIit0aGlzLHRydWUpKXx8MCk7aWYoZj09PSJtYXJnaW4iKWUrPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luIit0aGlzLHRydWUpKXx8MDtlbHNlIGUtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwKImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MH0pfWEub2Zmc2V0V2lkdGghPT0wP2koKTpjLnN3YXAoYSxvYixpKTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLnJvdW5kKGUpKX1yZXR1cm4gYy5jdXJDU1MoYSxiLGQpfSxjdXJDU1M6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmLGU9YS5zdHlsZTtpZighYy5zdXBwb3J0Lm9wYWNpdHkmJmI9PT0ib3BhY2l0eSImJmEuY3VycmVudFN0eWxlKXtmPU9hLnRlc3QoYS5jdXJyZW50U3R5bGUuZmlsdGVyfHwiIik/cGFyc2VGbG9hdChSZWdFeHAuJDEpLzEwMCsiIjoiIjtyZXR1cm4gZj09PSIiPyIxIjpmfWlmKGhhLnRlc3QoYikpYj1QYTtpZighZCYmZSYmZVtiXSlmPWVbYl07ZWxzZSBpZihyYil7aWYoaGEudGVzdChiKSliPSJmbG9hdCI7Yj1iLnJlcGxhY2UobGIsIi0kMSIpLnRvTG93ZXJDYXNlKCk7ZT1hLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7aWYoIWUpcmV0dXJuIG51bGw7aWYoYT1lLmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSlmPQphLmdldFByb3BlcnR5VmFsdWUoYik7aWYoYj09PSJvcGFjaXR5IiYmZj09PSIiKWY9IjEifWVsc2UgaWYoYS5jdXJyZW50U3R5bGUpe2Q9Yi5yZXBsYWNlKGlhLGphKTtmPWEuY3VycmVudFN0eWxlW2JdfHxhLmN1cnJlbnRTdHlsZVtkXTtpZighbWIudGVzdChmKSYmbmIudGVzdChmKSl7Yj1lLmxlZnQ7dmFyIGo9YS5ydW50aW1lU3R5bGUubGVmdDthLnJ1bnRpbWVTdHlsZS5sZWZ0PWEuY3VycmVudFN0eWxlLmxlZnQ7ZS5sZWZ0PWQ9PT0iZm9udFNpemUiPyIxZW0iOmZ8fDA7Zj1lLnBpeGVsTGVmdCsicHgiO2UubGVmdD1iO2EucnVudGltZVN0eWxlLmxlZnQ9an19cmV0dXJuIGZ9LHN3YXA6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPXt9O2Zvcih2YXIgZSBpbiBiKXtmW2VdPWEuc3R5bGVbZV07YS5zdHlsZVtlXT1iW2VdfWQuY2FsbChhKTtmb3IoZSBpbiBiKWEuc3R5bGVbZV09ZltlXX19KTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKXtjLmV4cHIuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oYSl7dmFyIGI9CmEub2Zmc2V0V2lkdGgsZD1hLm9mZnNldEhlaWdodCxmPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0ciI7cmV0dXJuIGI9PT0wJiZkPT09MCYmIWY/dHJ1ZTpiPjAmJmQ+MCYmIWY/ZmFsc2U6Yy5jdXJDU1MoYSwiZGlzcGxheSIpPT09Im5vbmUifTtjLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFjLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9fXZhciBzYj1KKCksdGI9LzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9naSx1Yj0vc2VsZWN0fHRleHRhcmVhL2ksdmI9L2NvbG9yfGRhdGV8ZGF0ZXRpbWV8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2Vlay9pLE49Lz1cPygmfCQpLyxrYT0vXD8vLHdiPS8oXD98JilfPS4qPygmfCQpLyx4Yj0vXihcdys6KT9cL1wvKFteXC8/I10rKS8seWI9LyUyMC9nLHpiPWMuZm4ubG9hZDtjLmZuLmV4dGVuZCh7bG9hZDpmdW5jdGlvbihhLGIsZCl7aWYodHlwZW9mIGEhPT0KInN0cmluZyIpcmV0dXJuIHpiLmNhbGwodGhpcyxhKTtlbHNlIGlmKCF0aGlzLmxlbmd0aClyZXR1cm4gdGhpczt2YXIgZj1hLmluZGV4T2YoIiAiKTtpZihmPj0wKXt2YXIgZT1hLnNsaWNlKGYsYS5sZW5ndGgpO2E9YS5zbGljZSgwLGYpfWY9IkdFVCI7aWYoYilpZihjLmlzRnVuY3Rpb24oYikpe2Q9YjtiPW51bGx9ZWxzZSBpZih0eXBlb2YgYj09PSJvYmplY3QiKXtiPWMucGFyYW0oYixjLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCk7Zj0iUE9TVCJ9dmFyIGo9dGhpcztjLmFqYXgoe3VybDphLHR5cGU6ZixkYXRhVHlwZToiaHRtbCIsZGF0YTpiLGNvbXBsZXRlOmZ1bmN0aW9uKGksbyl7aWYobz09PSJzdWNjZXNzInx8bz09PSJub3Rtb2RpZmllZCIpai5odG1sKGU/YygiPGRpdiAvPiIpLmFwcGVuZChpLnJlc3BvbnNlVGV4dC5yZXBsYWNlKHRiLCIiKSkuZmluZChlKTppLnJlc3BvbnNlVGV4dCk7ZCYmai5lYWNoKGQsW2kucmVzcG9uc2VUZXh0LG8saV0pfX0pO3JldHVybiB0aGlzfSwKc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9jLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fHViLnRlc3QodGhpcy5ub2RlTmFtZSl8fHZiLnRlc3QodGhpcy50eXBlKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXthPWModGhpcykudmFsKCk7cmV0dXJuIGE9PW51bGw/bnVsbDpjLmlzQXJyYXkoYSk/Yy5tYXAoYSxmdW5jdGlvbihkKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6ZH19KTp7bmFtZTpiLm5hbWUsdmFsdWU6YX19KS5nZXQoKX19KTtjLmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLApmdW5jdGlvbihhLGIpe2MuZm5bYl09ZnVuY3Rpb24oZCl7cmV0dXJuIHRoaXMuYmluZChiLGQpfX0pO2MuZXh0ZW5kKHtnZXQ6ZnVuY3Rpb24oYSxiLGQsZil7aWYoYy5pc0Z1bmN0aW9uKGIpKXtmPWZ8fGQ7ZD1iO2I9bnVsbH1yZXR1cm4gYy5hamF4KHt0eXBlOiJHRVQiLHVybDphLGRhdGE6YixzdWNjZXNzOmQsZGF0YVR5cGU6Zn0pfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYy5nZXQoYSxudWxsLGIsInNjcmlwdCIpfSxnZXRKU09OOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5nZXQoYSxiLGQsImpzb24iKX0scG9zdDpmdW5jdGlvbihhLGIsZCxmKXtpZihjLmlzRnVuY3Rpb24oYikpe2Y9Znx8ZDtkPWI7Yj17fX1yZXR1cm4gYy5hamF4KHt0eXBlOiJQT1NUIix1cmw6YSxkYXRhOmIsc3VjY2VzczpkLGRhdGFUeXBlOmZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKGEpe2MuZXh0ZW5kKGMuYWpheFNldHRpbmdzLGEpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLApnbG9iYWw6dHJ1ZSx0eXBlOiJHRVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLHByb2Nlc3NEYXRhOnRydWUsYXN5bmM6dHJ1ZSx4aHI6QS5YTUxIdHRwUmVxdWVzdCYmKEEubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToifHwhQS5BY3RpdmVYT2JqZWN0KT9mdW5jdGlvbigpe3JldHVybiBuZXcgQS5YTUxIdHRwUmVxdWVzdH06ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBBLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYSl7fX0sYWNjZXB0czp7eG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixodG1sOiJ0ZXh0L2h0bWwiLHNjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLHRleHQ6InRleHQvcGxhaW4iLF9kZWZhdWx0OiIqLyoifX0sbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheDpmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7ZS5zdWNjZXNzJiYKZS5zdWNjZXNzLmNhbGwoayxvLGkseCk7ZS5nbG9iYWwmJmYoImFqYXhTdWNjZXNzIixbeCxlXSl9ZnVuY3Rpb24gZCgpe2UuY29tcGxldGUmJmUuY29tcGxldGUuY2FsbChrLHgsaSk7ZS5nbG9iYWwmJmYoImFqYXhDb21wbGV0ZSIsW3gsZV0pO2UuZ2xvYmFsJiYhLS1jLmFjdGl2ZSYmYy5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfWZ1bmN0aW9uIGYocSxwKXsoZS5jb250ZXh0P2MoZS5jb250ZXh0KTpjLmV2ZW50KS50cmlnZ2VyKHEscCl9dmFyIGU9Yy5leHRlbmQodHJ1ZSx7fSxjLmFqYXhTZXR0aW5ncyxhKSxqLGksbyxrPWEmJmEuY29udGV4dHx8ZSxuPWUudHlwZS50b1VwcGVyQ2FzZSgpO2lmKGUuZGF0YSYmZS5wcm9jZXNzRGF0YSYmdHlwZW9mIGUuZGF0YSE9PSJzdHJpbmciKWUuZGF0YT1jLnBhcmFtKGUuZGF0YSxlLnRyYWRpdGlvbmFsKTtpZihlLmRhdGFUeXBlPT09Impzb25wIil7aWYobj09PSJHRVQiKU4udGVzdChlLnVybCl8fChlLnVybCs9KGthLnRlc3QoZS51cmwpPwoiJiI6Ij8iKSsoZS5qc29ucHx8ImNhbGxiYWNrIikrIj0/Iik7ZWxzZSBpZighZS5kYXRhfHwhTi50ZXN0KGUuZGF0YSkpZS5kYXRhPShlLmRhdGE/ZS5kYXRhKyImIjoiIikrKGUuanNvbnB8fCJjYWxsYmFjayIpKyI9PyI7ZS5kYXRhVHlwZT0ianNvbiJ9aWYoZS5kYXRhVHlwZT09PSJqc29uIiYmKGUuZGF0YSYmTi50ZXN0KGUuZGF0YSl8fE4udGVzdChlLnVybCkpKXtqPWUuanNvbnBDYWxsYmFja3x8Impzb25wIitzYisrO2lmKGUuZGF0YSllLmRhdGE9KGUuZGF0YSsiIikucmVwbGFjZShOLCI9IitqKyIkMSIpO2UudXJsPWUudXJsLnJlcGxhY2UoTiwiPSIraisiJDEiKTtlLmRhdGFUeXBlPSJzY3JpcHQiO0Fbal09QVtqXXx8ZnVuY3Rpb24ocSl7bz1xO2IoKTtkKCk7QVtqXT13O3RyeXtkZWxldGUgQVtqXX1jYXRjaChwKXt9eiYmei5yZW1vdmVDaGlsZChDKX19aWYoZS5kYXRhVHlwZT09PSJzY3JpcHQiJiZlLmNhY2hlPT09bnVsbCllLmNhY2hlPWZhbHNlO2lmKGUuY2FjaGU9PT0KZmFsc2UmJm49PT0iR0VUIil7dmFyIHI9SigpLHU9ZS51cmwucmVwbGFjZSh3YiwiJDFfPSIrcisiJDIiKTtlLnVybD11Kyh1PT09ZS51cmw/KGthLnRlc3QoZS51cmwpPyImIjoiPyIpKyJfPSIrcjoiIil9aWYoZS5kYXRhJiZuPT09IkdFVCIpZS51cmwrPShrYS50ZXN0KGUudXJsKT8iJiI6Ij8iKStlLmRhdGE7ZS5nbG9iYWwmJiFjLmFjdGl2ZSsrJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpO3I9KHI9eGIuZXhlYyhlLnVybCkpJiYoclsxXSYmclsxXSE9PWxvY2F0aW9uLnByb3RvY29sfHxyWzJdIT09bG9jYXRpb24uaG9zdCk7aWYoZS5kYXRhVHlwZT09PSJzY3JpcHQiJiZuPT09IkdFVCImJnIpe3ZhciB6PXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8cy5kb2N1bWVudEVsZW1lbnQsQz1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0Muc3JjPWUudXJsO2lmKGUuc2NyaXB0Q2hhcnNldClDLmNoYXJzZXQ9ZS5zY3JpcHRDaGFyc2V0O2lmKCFqKXt2YXIgQj0KZmFsc2U7Qy5vbmxvYWQ9Qy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZighQiYmKCF0aGlzLnJlYWR5U3RhdGV8fHRoaXMucmVhZHlTdGF0ZT09PSJsb2FkZWQifHx0aGlzLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKSl7Qj10cnVlO2IoKTtkKCk7Qy5vbmxvYWQ9Qy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDt6JiZDLnBhcmVudE5vZGUmJnoucmVtb3ZlQ2hpbGQoQyl9fX16Lmluc2VydEJlZm9yZShDLHouZmlyc3RDaGlsZCk7cmV0dXJuIHd9dmFyIEU9ZmFsc2UseD1lLnhocigpO2lmKHgpe2UudXNlcm5hbWU/eC5vcGVuKG4sZS51cmwsZS5hc3luYyxlLnVzZXJuYW1lLGUucGFzc3dvcmQpOngub3BlbihuLGUudXJsLGUuYXN5bmMpO3RyeXtpZihlLmRhdGF8fGEmJmEuY29udGVudFR5cGUpeC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGUuY29udGVudFR5cGUpO2lmKGUuaWZNb2RpZmllZCl7Yy5sYXN0TW9kaWZpZWRbZS51cmxdJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIiwKYy5sYXN0TW9kaWZpZWRbZS51cmxdKTtjLmV0YWdbZS51cmxdJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLGMuZXRhZ1tlLnVybF0pfXJ8fHguc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0Iik7eC5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLGUuZGF0YVR5cGUmJmUuYWNjZXB0c1tlLmRhdGFUeXBlXT9lLmFjY2VwdHNbZS5kYXRhVHlwZV0rIiwgKi8qIjplLmFjY2VwdHMuX2RlZmF1bHQpfWNhdGNoKGdhKXt9aWYoZS5iZWZvcmVTZW5kJiZlLmJlZm9yZVNlbmQuY2FsbChrLHgsZSk9PT1mYWxzZSl7ZS5nbG9iYWwmJiEtLWMuYWN0aXZlJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIik7eC5hYm9ydCgpO3JldHVybiBmYWxzZX1lLmdsb2JhbCYmZigiYWpheFNlbmQiLFt4LGVdKTt2YXIgZz14Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihxKXtpZigheHx8eC5yZWFkeVN0YXRlPT09MHx8cT09PSJhYm9ydCIpe0V8fApkKCk7RT10cnVlO2lmKHgpeC5vbnJlYWR5c3RhdGVjaGFuZ2U9Yy5ub29wfWVsc2UgaWYoIUUmJngmJih4LnJlYWR5U3RhdGU9PT00fHxxPT09InRpbWVvdXQiKSl7RT10cnVlO3gub25yZWFkeXN0YXRlY2hhbmdlPWMubm9vcDtpPXE9PT0idGltZW91dCI/InRpbWVvdXQiOiFjLmh0dHBTdWNjZXNzKHgpPyJlcnJvciI6ZS5pZk1vZGlmaWVkJiZjLmh0dHBOb3RNb2RpZmllZCh4LGUudXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjt2YXIgcDtpZihpPT09InN1Y2Nlc3MiKXRyeXtvPWMuaHR0cERhdGEoeCxlLmRhdGFUeXBlLGUpfWNhdGNoKHYpe2k9InBhcnNlcmVycm9yIjtwPXZ9aWYoaT09PSJzdWNjZXNzInx8aT09PSJub3Rtb2RpZmllZCIpanx8YigpO2Vsc2UgYy5oYW5kbGVFcnJvcihlLHgsaSxwKTtkKCk7cT09PSJ0aW1lb3V0IiYmeC5hYm9ydCgpO2lmKGUuYXN5bmMpeD1udWxsfX07dHJ5e3ZhciBoPXguYWJvcnQ7eC5hYm9ydD1mdW5jdGlvbigpe3gmJmguY2FsbCh4KTsKZygiYWJvcnQiKX19Y2F0Y2gobCl7fWUuYXN5bmMmJmUudGltZW91dD4wJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eCYmIUUmJmcoInRpbWVvdXQiKX0sZS50aW1lb3V0KTt0cnl7eC5zZW5kKG49PT0iUE9TVCJ8fG49PT0iUFVUInx8bj09PSJERUxFVEUiP2UuZGF0YTpudWxsKX1jYXRjaChtKXtjLmhhbmRsZUVycm9yKGUseCxudWxsLG0pO2QoKX1lLmFzeW5jfHxnKCk7cmV0dXJuIHh9fSxoYW5kbGVFcnJvcjpmdW5jdGlvbihhLGIsZCxmKXtpZihhLmVycm9yKWEuZXJyb3IuY2FsbChhLmNvbnRleHR8fGEsYixkLGYpO2lmKGEuZ2xvYmFsKShhLmNvbnRleHQ/YyhhLmNvbnRleHQpOmMuZXZlbnQpLnRyaWdnZXIoImFqYXhFcnJvciIsW2IsYSxmXSl9LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4hYS5zdGF0dXMmJmxvY2F0aW9uLnByb3RvY29sPT09ImZpbGU6Inx8YS5zdGF0dXM+PTIwMCYmYS5zdGF0dXM8MzAwfHxhLnN0YXR1cz09PTMwNHx8YS5zdGF0dXM9PT0KMTIyM3x8YS5zdGF0dXM9PT0wfWNhdGNoKGIpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihhLGIpe3ZhciBkPWEuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSxmPWEuZ2V0UmVzcG9uc2VIZWFkZXIoIkV0YWciKTtpZihkKWMubGFzdE1vZGlmaWVkW2JdPWQ7aWYoZiljLmV0YWdbYl09ZjtyZXR1cm4gYS5zdGF0dXM9PT0zMDR8fGEuc3RhdHVzPT09MH0saHR0cERhdGE6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWEuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpfHwiIixlPWI9PT0ieG1sInx8IWImJmYuaW5kZXhPZigieG1sIik+PTA7YT1lP2EucmVzcG9uc2VYTUw6YS5yZXNwb25zZVRleHQ7ZSYmYS5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWU9PT0icGFyc2VyZXJyb3IiJiZjLmVycm9yKCJwYXJzZXJlcnJvciIpO2lmKGQmJmQuZGF0YUZpbHRlcilhPWQuZGF0YUZpbHRlcihhLGIpO2lmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoYj09PQoianNvbiJ8fCFiJiZmLmluZGV4T2YoImpzb24iKT49MClhPWMucGFyc2VKU09OKGEpO2Vsc2UgaWYoYj09PSJzY3JpcHQifHwhYiYmZi5pbmRleE9mKCJqYXZhc2NyaXB0Iik+PTApYy5nbG9iYWxFdmFsKGEpO3JldHVybiBhfSxwYXJhbTpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoaSxvKXtpZihjLmlzQXJyYXkobykpYy5lYWNoKG8sZnVuY3Rpb24oayxuKXtifHwvXFtcXSQvLnRlc3QoaSk/ZihpLG4pOmQoaSsiWyIrKHR5cGVvZiBuPT09Im9iamVjdCJ8fGMuaXNBcnJheShuKT9rOiIiKSsiXSIsbil9KTtlbHNlIWImJm8hPW51bGwmJnR5cGVvZiBvPT09Im9iamVjdCI/Yy5lYWNoKG8sZnVuY3Rpb24oayxuKXtkKGkrIlsiK2srIl0iLG4pfSk6ZihpLG8pfWZ1bmN0aW9uIGYoaSxvKXtvPWMuaXNGdW5jdGlvbihvKT9vKCk6bztlW2UubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoaSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChvKX12YXIgZT1bXTtpZihiPT09dyliPWMuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsOwppZihjLmlzQXJyYXkoYSl8fGEuanF1ZXJ5KWMuZWFjaChhLGZ1bmN0aW9uKCl7Zih0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcih2YXIgaiBpbiBhKWQoaixhW2pdKTtyZXR1cm4gZS5qb2luKCImIikucmVwbGFjZSh5YiwiKyIpfX0pO3ZhciBsYT17fSxBYj0vdG9nZ2xlfHNob3d8aGlkZS8sQmI9L14oWystXT0pPyhbXGQrLS5dKykoLiopJC8sVyx2YT1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtjLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihhLGIpe2lmKGF8fGE9PT0wKXJldHVybiB0aGlzLmFuaW1hdGUoSygic2hvdyIsMyksYSxiKTtlbHNle2E9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXt2YXIgZD1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpOwp0aGlzW2FdLnN0eWxlLmRpc3BsYXk9ZHx8IiI7aWYoYy5jc3ModGhpc1thXSwiZGlzcGxheSIpPT09Im5vbmUiKXtkPXRoaXNbYV0ubm9kZU5hbWU7dmFyIGY7aWYobGFbZF0pZj1sYVtkXTtlbHNle3ZhciBlPWMoIjwiK2QrIiAvPiIpLmFwcGVuZFRvKCJib2R5Iik7Zj1lLmNzcygiZGlzcGxheSIpO2lmKGY9PT0ibm9uZSIpZj0iYmxvY2siO2UucmVtb3ZlKCk7bGFbZF09Zn1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIsZil9fWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpfHwiIjtyZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oYSxiKXtpZihhfHxhPT09MClyZXR1cm4gdGhpcy5hbmltYXRlKEsoImhpZGUiLDMpLGEsYik7ZWxzZXthPTA7Zm9yKGI9dGhpcy5sZW5ndGg7YTxiO2ErKyl7dmFyIGQ9Yy5kYXRhKHRoaXNbYV0sIm9sZGRpc3BsYXkiKTshZCYmZCE9PSJub25lIiYmYy5kYXRhKHRoaXNbYV0sCiJvbGRkaXNwbGF5IixjLmNzcyh0aGlzW2FdLCJkaXNwbGF5IikpfWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOmMuZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhPT09ImJvb2xlYW4iO2lmKGMuaXNGdW5jdGlvbihhKSYmYy5pc0Z1bmN0aW9uKGIpKXRoaXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZWxzZSBhPT1udWxsfHxkP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPWQ/YTpjKHRoaXMpLmlzKCI6aGlkZGVuIik7Yyh0aGlzKVtmPyJzaG93IjoiaGlkZSJdKCl9KTp0aGlzLmFuaW1hdGUoSygidG9nZ2xlIiwzKSxhLGIpO3JldHVybiB0aGlzfSxmYWRlVG86ZnVuY3Rpb24oYSxiLGQpe3JldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxkKX0sCmFuaW1hdGU6ZnVuY3Rpb24oYSxiLGQsZil7dmFyIGU9Yy5zcGVlZChiLGQsZik7aWYoYy5pc0VtcHR5T2JqZWN0KGEpKXJldHVybiB0aGlzLmVhY2goZS5jb21wbGV0ZSk7cmV0dXJuIHRoaXNbZS5xdWV1ZT09PWZhbHNlPyJlYWNoIjoicXVldWUiXShmdW5jdGlvbigpe3ZhciBqPWMuZXh0ZW5kKHt9LGUpLGksbz10aGlzLm5vZGVUeXBlPT09MSYmYyh0aGlzKS5pcygiOmhpZGRlbiIpLGs9dGhpcztmb3IoaSBpbiBhKXt2YXIgbj1pLnJlcGxhY2UoaWEsamEpO2lmKGkhPT1uKXthW25dPWFbaV07ZGVsZXRlIGFbaV07aT1ufWlmKGFbaV09PT0iaGlkZSImJm98fGFbaV09PT0ic2hvdyImJiFvKXJldHVybiBqLmNvbXBsZXRlLmNhbGwodGhpcyk7aWYoKGk9PT0iaGVpZ2h0Inx8aT09PSJ3aWR0aCIpJiZ0aGlzLnN0eWxlKXtqLmRpc3BsYXk9Yy5jc3ModGhpcywiZGlzcGxheSIpO2oub3ZlcmZsb3c9dGhpcy5zdHlsZS5vdmVyZmxvd31pZihjLmlzQXJyYXkoYVtpXSkpeyhqLnNwZWNpYWxFYXNpbmc9Cmouc3BlY2lhbEVhc2luZ3x8e30pW2ldPWFbaV1bMV07YVtpXT1hW2ldWzBdfX1pZihqLm92ZXJmbG93IT1udWxsKXRoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7ai5jdXJBbmltPWMuZXh0ZW5kKHt9LGEpO2MuZWFjaChhLGZ1bmN0aW9uKHIsdSl7dmFyIHo9bmV3IGMuZngoayxqLHIpO2lmKEFiLnRlc3QodSkpelt1PT09InRvZ2dsZSI/bz8ic2hvdyI6ImhpZGUiOnVdKGEpO2Vsc2V7dmFyIEM9QmIuZXhlYyh1KSxCPXouY3VyKHRydWUpfHwwO2lmKEMpe3U9cGFyc2VGbG9hdChDWzJdKTt2YXIgRT1DWzNdfHwicHgiO2lmKEUhPT0icHgiKXtrLnN0eWxlW3JdPSh1fHwxKStFO0I9KHV8fDEpL3ouY3VyKHRydWUpKkI7ay5zdHlsZVtyXT1CK0V9aWYoQ1sxXSl1PShDWzFdPT09Ii09Ij8tMToxKSp1K0I7ei5jdXN0b20oQix1LEUpfWVsc2Ugei5jdXN0b20oQix1LCIiKX19KTtyZXR1cm4gdHJ1ZX0pfSxzdG9wOmZ1bmN0aW9uKGEsYil7dmFyIGQ9Yy50aW1lcnM7YSYmdGhpcy5xdWV1ZShbXSk7CnRoaXMuZWFjaChmdW5jdGlvbigpe2Zvcih2YXIgZj1kLmxlbmd0aC0xO2Y+PTA7Zi0tKWlmKGRbZl0uZWxlbT09PXRoaXMpe2ImJmRbZl0odHJ1ZSk7ZC5zcGxpY2UoZiwxKX19KTtifHx0aGlzLmRlcXVldWUoKTtyZXR1cm4gdGhpc319KTtjLmVhY2goe3NsaWRlRG93bjpLKCJzaG93IiwxKSxzbGlkZVVwOksoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOksoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCxmKXtyZXR1cm4gdGhpcy5hbmltYXRlKGIsZCxmKX19KTtjLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWEmJnR5cGVvZiBhPT09Im9iamVjdCI/YTp7Y29tcGxldGU6ZHx8IWQmJmJ8fGMuaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpkJiZifHxiJiYhYy5pc0Z1bmN0aW9uKGIpJiZifTtmLmR1cmF0aW9uPWMuZngub2ZmPzA6dHlwZW9mIGYuZHVyYXRpb249PT0KIm51bWJlciI/Zi5kdXJhdGlvbjpjLmZ4LnNwZWVkc1tmLmR1cmF0aW9uXXx8Yy5meC5zcGVlZHMuX2RlZmF1bHQ7Zi5vbGQ9Zi5jb21wbGV0ZTtmLmNvbXBsZXRlPWZ1bmN0aW9uKCl7Zi5xdWV1ZSE9PWZhbHNlJiZjKHRoaXMpLmRlcXVldWUoKTtjLmlzRnVuY3Rpb24oZi5vbGQpJiZmLm9sZC5jYWxsKHRoaXMpfTtyZXR1cm4gZn0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oYSxiLGQsZil7cmV0dXJuIGQrZiphfSxzd2luZzpmdW5jdGlvbihhLGIsZCxmKXtyZXR1cm4oLU1hdGguY29zKGEqTWF0aC5QSSkvMiswLjUpKmYrZH19LHRpbWVyczpbXSxmeDpmdW5jdGlvbihhLGIsZCl7dGhpcy5vcHRpb25zPWI7dGhpcy5lbGVtPWE7dGhpcy5wcm9wPWQ7aWYoIWIub3JpZyliLm9yaWc9e319fSk7Yy5meC5wcm90b3R5cGU9e3VwZGF0ZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKTsoYy5meC5zdGVwW3RoaXMucHJvcF18fApjLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PT0iaGVpZ2h0Inx8dGhpcy5wcm9wPT09IndpZHRoIikmJnRoaXMuZWxlbS5zdHlsZSl0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT0iYmxvY2sifSxjdXI6ZnVuY3Rpb24oYSl7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpcmV0dXJuIHRoaXMuZWxlbVt0aGlzLnByb3BdO3JldHVybihhPXBhcnNlRmxvYXQoYy5jc3ModGhpcy5lbGVtLHRoaXMucHJvcCxhKSkpJiZhPi0xMDAwMD9hOnBhcnNlRmxvYXQoYy5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oYSxiLGQpe2Z1bmN0aW9uIGYoail7cmV0dXJuIGUuc3RlcChqKX10aGlzLnN0YXJ0VGltZT1KKCk7dGhpcy5zdGFydD1hO3RoaXMuZW5kPWI7dGhpcy51bml0PWR8fHRoaXMudW5pdHx8InB4Ijt0aGlzLm5vdz10aGlzLnN0YXJ0Owp0aGlzLnBvcz10aGlzLnN0YXRlPTA7dmFyIGU9dGhpcztmLmVsZW09dGhpcy5lbGVtO2lmKGYoKSYmYy50aW1lcnMucHVzaChmKSYmIVcpVz1zZXRJbnRlcnZhbChjLmZ4LnRpY2ssMTMpfSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1jLnN0eWxlKHRoaXMuZWxlbSx0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5zaG93PXRydWU7dGhpcy5jdXN0b20odGhpcy5wcm9wPT09IndpZHRoInx8dGhpcy5wcm9wPT09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO2ModGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLmhpZGU9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLmN1cigpLDApfSxzdGVwOmZ1bmN0aW9uKGEpe3ZhciBiPUooKSxkPXRydWU7aWYoYXx8Yj49dGhpcy5vcHRpb25zLmR1cmF0aW9uK3RoaXMuc3RhcnRUaW1lKXt0aGlzLm5vdz0KdGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO2Zvcih2YXIgZiBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSlpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtmXSE9PXRydWUpZD1mYWxzZTtpZihkKXtpZih0aGlzLm9wdGlvbnMuZGlzcGxheSE9bnVsbCl7dGhpcy5lbGVtLnN0eWxlLm92ZXJmbG93PXRoaXMub3B0aW9ucy5vdmVyZmxvdzthPWMuZGF0YSh0aGlzLmVsZW0sIm9sZGRpc3BsYXkiKTt0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT1hP2E6dGhpcy5vcHRpb25zLmRpc3BsYXk7aWYoYy5jc3ModGhpcy5lbGVtLCJkaXNwbGF5Iik9PT0ibm9uZSIpdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn10aGlzLm9wdGlvbnMuaGlkZSYmYyh0aGlzLmVsZW0pLmhpZGUoKTtpZih0aGlzLm9wdGlvbnMuaGlkZXx8dGhpcy5vcHRpb25zLnNob3cpZm9yKHZhciBlIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKWMuc3R5bGUodGhpcy5lbGVtLAplLHRoaXMub3B0aW9ucy5vcmlnW2VdKTt0aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle2U9Yi10aGlzLnN0YXJ0VGltZTt0aGlzLnN0YXRlPWUvdGhpcy5vcHRpb25zLmR1cmF0aW9uO2E9dGhpcy5vcHRpb25zLmVhc2luZ3x8KGMuZWFzaW5nLnN3aW5nPyJzd2luZyI6ImxpbmVhciIpO3RoaXMucG9zPWMuZWFzaW5nW3RoaXMub3B0aW9ucy5zcGVjaWFsRWFzaW5nJiZ0aGlzLm9wdGlvbnMuc3BlY2lhbEVhc2luZ1t0aGlzLnByb3BdfHxhXSh0aGlzLnN0YXRlLGUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik7dGhpcy5ub3c9dGhpcy5zdGFydCsodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3M7dGhpcy51cGRhdGUoKX1yZXR1cm4gdHJ1ZX19O2MuZXh0ZW5kKGMuZngse3RpY2s6ZnVuY3Rpb24oKXtmb3IodmFyIGE9Yy50aW1lcnMsYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0oKXx8YS5zcGxpY2UoYi0tLDEpO2EubGVuZ3RofHwKYy5meC5zdG9wKCl9LHN0b3A6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKFcpO1c9bnVsbH0sc3BlZWRzOntzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LHN0ZXA6e29wYWNpdHk6ZnVuY3Rpb24oYSl7Yy5zdHlsZShhLmVsZW0sIm9wYWNpdHkiLGEubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7aWYoYS5lbGVtLnN0eWxlJiZhLmVsZW0uc3R5bGVbYS5wcm9wXSE9bnVsbClhLmVsZW0uc3R5bGVbYS5wcm9wXT0oYS5wcm9wPT09IndpZHRoInx8YS5wcm9wPT09ImhlaWdodCI/TWF0aC5tYXgoMCxhLm5vdyk6YS5ub3cpK2EudW5pdDtlbHNlIGEuZWxlbVthLnByb3BdPWEubm93fX19KTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKWMuZXhwci5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKGEpe3JldHVybiBjLmdyZXAoYy50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJuIGE9PT1iLmVsZW19KS5sZW5ndGh9O2MuZm4ub2Zmc2V0PSJnZXRCb3VuZGluZ0NsaWVudFJlY3QiaW4gcy5kb2N1bWVudEVsZW1lbnQ/CmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF07aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsZSl9KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGMub2Zmc2V0LmJvZHlPZmZzZXQoYik7dmFyIGQ9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWIub3duZXJEb2N1bWVudDtiPWYuYm9keTtmPWYuZG9jdW1lbnRFbGVtZW50O3JldHVybnt0b3A6ZC50b3ArKHNlbGYucGFnZVlPZmZzZXR8fGMuc3VwcG9ydC5ib3hNb2RlbCYmZi5zY3JvbGxUb3B8fGIuc2Nyb2xsVG9wKS0oZi5jbGllbnRUb3B8fGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoc2VsZi5wYWdlWE9mZnNldHx8Yy5zdXBwb3J0LmJveE1vZGVsJiZmLnNjcm9sbExlZnR8fGIuc2Nyb2xsTGVmdCktKGYuY2xpZW50TGVmdHx8Yi5jbGllbnRMZWZ0fHwwKX19OmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzWzBdO2lmKGEpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihyKXtjLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLHIpfSk7aWYoIWJ8fCFiLm93bmVyRG9jdW1lbnQpcmV0dXJuIG51bGw7aWYoYj09PWIub3duZXJEb2N1bWVudC5ib2R5KXJldHVybiBjLm9mZnNldC5ib2R5T2Zmc2V0KGIpO2Mub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgZD1iLm9mZnNldFBhcmVudCxmPWIsZT1iLm93bmVyRG9jdW1lbnQsaixpPWUuZG9jdW1lbnRFbGVtZW50LG89ZS5ib2R5O2Y9KGU9ZS5kZWZhdWx0Vmlldyk/ZS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6Yi5jdXJyZW50U3R5bGU7Zm9yKHZhciBrPWIub2Zmc2V0VG9wLG49Yi5vZmZzZXRMZWZ0OyhiPWIucGFyZW50Tm9kZSkmJmIhPT1vJiZiIT09aTspe2lmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmZi5wb3NpdGlvbj09PSJmaXhlZCIpYnJlYWs7aj1lP2UuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlOwprLT1iLnNjcm9sbFRvcDtuLT1iLnNjcm9sbExlZnQ7aWYoYj09PWQpe2srPWIub2Zmc2V0VG9wO24rPWIub2Zmc2V0TGVmdDtpZihjLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKGMub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoYi5ub2RlTmFtZSkpKXtrKz1wYXJzZUZsb2F0KGouYm9yZGVyVG9wV2lkdGgpfHwwO24rPXBhcnNlRmxvYXQoai5ib3JkZXJMZWZ0V2lkdGgpfHwwfWY9ZDtkPWIub2Zmc2V0UGFyZW50fWlmKGMub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSYmai5vdmVyZmxvdyE9PSJ2aXNpYmxlIil7ays9cGFyc2VGbG9hdChqLmJvcmRlclRvcFdpZHRoKXx8MDtuKz1wYXJzZUZsb2F0KGouYm9yZGVyTGVmdFdpZHRoKXx8MH1mPWp9aWYoZi5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fGYucG9zaXRpb249PT0ic3RhdGljIil7ays9by5vZmZzZXRUb3A7bis9by5vZmZzZXRMZWZ0fWlmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmCmYucG9zaXRpb249PT0iZml4ZWQiKXtrKz1NYXRoLm1heChpLnNjcm9sbFRvcCxvLnNjcm9sbFRvcCk7bis9TWF0aC5tYXgoaS5zY3JvbGxMZWZ0LG8uc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDprLGxlZnQ6bn19O2Mub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIGE9cy5ib2R5LGI9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxkLGYsZSxqPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luVG9wIix0cnVlKSl8fDA7Yy5leHRlbmQoYi5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtiLmlubmVySFRNTD0iPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKYS5pbnNlcnRCZWZvcmUoYixhLmZpcnN0Q2hpbGQpO2Q9Yi5maXJzdENoaWxkO2Y9ZC5maXJzdENoaWxkO2U9ZC5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7dGhpcy5kb2VzTm90QWRkQm9yZGVyPWYub2Zmc2V0VG9wIT09NTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPWUub2Zmc2V0VG9wPT09NTtmLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCI7Zi5zdHlsZS50b3A9IjIwcHgiO3RoaXMuc3VwcG9ydHNGaXhlZFBvc2l0aW9uPWYub2Zmc2V0VG9wPT09MjB8fGYub2Zmc2V0VG9wPT09MTU7Zi5zdHlsZS5wb3NpdGlvbj1mLnN0eWxlLnRvcD0iIjtkLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2Quc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZT1mLm9mZnNldFRvcD09PS01O3RoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ9YS5vZmZzZXRUb3AhPT1qO2EucmVtb3ZlQ2hpbGQoYik7CmMub2Zmc2V0LmluaXRpYWxpemU9Yy5ub29wfSxib2R5T2Zmc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0VG9wLGQ9YS5vZmZzZXRMZWZ0O2Mub2Zmc2V0LmluaXRpYWxpemUoKTtpZihjLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Yis9cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsIm1hcmdpbkxlZnQiLHRydWUpKXx8MH1yZXR1cm57dG9wOmIsbGVmdDpkfX0sc2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixkKXtpZigvc3RhdGljLy50ZXN0KGMuY3VyQ1NTKGEsInBvc2l0aW9uIikpKWEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt2YXIgZj1jKGEpLGU9Zi5vZmZzZXQoKSxqPXBhcnNlSW50KGMuY3VyQ1NTKGEsInRvcCIsdHJ1ZSksMTApfHwwLGk9cGFyc2VJbnQoYy5jdXJDU1MoYSwibGVmdCIsdHJ1ZSksMTApfHwwO2lmKGMuaXNGdW5jdGlvbihiKSliPWIuY2FsbChhLApkLGUpO2Q9e3RvcDpiLnRvcC1lLnRvcCtqLGxlZnQ6Yi5sZWZ0LWUubGVmdCtpfTsidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxkKTpmLmNzcyhkKX19O2MuZm4uZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe2lmKCF0aGlzWzBdKXJldHVybiBudWxsO3ZhciBhPXRoaXNbMF0sYj10aGlzLm9mZnNldFBhcmVudCgpLGQ9dGhpcy5vZmZzZXQoKSxmPS9eYm9keXxodG1sJC9pLnRlc3QoYlswXS5ub2RlTmFtZSk/e3RvcDowLGxlZnQ6MH06Yi5vZmZzZXQoKTtkLnRvcC09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkLmxlZnQtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luTGVmdCIsdHJ1ZSkpfHwwO2YudG9wKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlclRvcFdpZHRoIix0cnVlKSl8fDA7Zi5sZWZ0Kz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlckxlZnRXaWR0aCIsdHJ1ZSkpfHwwO3JldHVybnt0b3A6ZC50b3AtCmYudG9wLGxlZnQ6ZC5sZWZ0LWYubGVmdH19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudHx8cy5ib2R5O2EmJiEvXmJvZHl8aHRtbCQvaS50ZXN0KGEubm9kZU5hbWUpJiZjLmNzcyhhLCJwb3NpdGlvbiIpPT09InN0YXRpYyI7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF9KX19KTtjLmVhY2goWyJMZWZ0IiwiVG9wIl0sZnVuY3Rpb24oYSxiKXt2YXIgZD0ic2Nyb2xsIitiO2MuZm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXSxqO2lmKCFlKXJldHVybiBudWxsO2lmKGYhPT13KXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihqPXdhKHRoaXMpKWouc2Nyb2xsVG8oIWE/ZjpjKGopLnNjcm9sbExlZnQoKSxhP2Y6YyhqKS5zY3JvbGxUb3AoKSk7ZWxzZSB0aGlzW2RdPWZ9KTtlbHNlIHJldHVybihqPXdhKGUpKT8icGFnZVhPZmZzZXQiaW4gaj9qW2E/InBhZ2VZT2Zmc2V0IjoKInBhZ2VYT2Zmc2V0Il06Yy5zdXBwb3J0LmJveE1vZGVsJiZqLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXXx8ai5kb2N1bWVudC5ib2R5W2RdOmVbZF19fSk7Yy5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihhLGIpe3ZhciBkPWIudG9Mb3dlckNhc2UoKTtjLmZuWyJpbm5lciIrYl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1swXT9jLmNzcyh0aGlzWzBdLGQsZmFsc2UsInBhZGRpbmciKTpudWxsfTtjLmZuWyJvdXRlciIrYl09ZnVuY3Rpb24oZil7cmV0dXJuIHRoaXNbMF0/Yy5jc3ModGhpc1swXSxkLGZhbHNlLGY/Im1hcmdpbiI6ImJvcmRlciIpOm51bGx9O2MuZm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXTtpZighZSlyZXR1cm4gZj09bnVsbD9udWxsOnRoaXM7aWYoYy5pc0Z1bmN0aW9uKGYpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oail7dmFyIGk9Yyh0aGlzKTtpW2RdKGYuY2FsbCh0aGlzLGosaVtkXSgpKSl9KTtyZXR1cm4ic2Nyb2xsVG8iaW4KZSYmZS5kb2N1bWVudD9lLmRvY3VtZW50LmNvbXBhdE1vZGU9PT0iQ1NTMUNvbXBhdCImJmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2JdfHxlLmRvY3VtZW50LmJvZHlbImNsaWVudCIrYl06ZS5ub2RlVHlwZT09PTk/TWF0aC5tYXgoZS5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYl0sZS5ib2R5WyJzY3JvbGwiK2JdLGUuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK2JdLGUuYm9keVsib2Zmc2V0IitiXSxlLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IitiXSk6Zj09PXc/Yy5jc3MoZSxkKTp0aGlzLmNzcyhkLHR5cGVvZiBmPT09InN0cmluZyI/ZjpmKyJweCIpfX0pO0EualF1ZXJ5PUEuJD1jfSkod2luZG93KTsK"}},"time_used":82,"timings":{"blocked":-1,"dns":2,"connect":15,"send":0,"wait":16,"receive":15,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/facts-bg.jpg","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.603Z","timestamp":1785132838603,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/facts-bg.jpg HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/templatemo-edu-meeting.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Mon, 03 Jan 2022 23:40:30 GMT\r\naccept-ranges: bytes\r\ncontent-length: 72324\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":72324,"size_decoded":72591,"mime_type":"image/jpeg","magic":"JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 1600x810, components 3","md5":"1ca269779e8bc6817f40f012ad826db1","sha1":"57454b664b9c503562c2128486ab5e7baf080a3d","sha256":"48c0276ef4ec2bf5e15cd55b7a54f2ab9d70a9a6ad087b718e60cc6add0fb41c","sha512":"8fbcbefcca9dc34aaac97eb911bc14c9f05226a78f095eb0a62b212665f68d3fd893b3c38c0241d50a7589ba54bced14dc62b449a33137f8cc091ee801fdcc32","ssdeep":"1536:XM74rukBZuMgS8MBc7Vhn++3FYaTk+UuAn5lsMWqMFNDdJ+QTQf:sAukB22Bc7nZVT0dUMWqm3e","tlshash":"b063f137f38820c7e52d1732e6a74f757669eea0f27342732ad984009d923a4bf191c4","first_seen":"2023-08-17T18:24:32Z","last_seen":"2026-07-27T06:14:42.635299Z","times_seen":23,"resource_available":false,"data":"/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABGAAD/4QMsaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0OCA3OS4xNjQwMzYsIDIwMTkvMDgvMTMtMDE6MDY6NTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNkRDNTJDMjIyNDgxMUVCQjZGQjg2RTVFNUQ5MTEyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNkRDNTJDMzIyNDgxMUVCQjZGQjg2RTVFNUQ5MTEyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2REM1MkMwMjI0ODExRUJCNkZCODZFNUU1RDkxMTI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2REM1MkMxMjI0ODExRUJCNkZCODZFNUU1RDkxMTI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUE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"}},"time_used":35,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":26,"receive":9,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"translate-pa.googleapis.com/v1/supportedLanguages?client=te\u0026display_language=no\u0026key=AIzaSyBWDj0QJvVIx8XOhRegXX5_SrRWxhT5Hs4\u0026callback=callback","fqdn":"translate-pa.googleapis.com","domain":"translate-pa.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"moz-nullprincipal:{4d968f82-7bd0-449b-9498-203720b5197c}?https://farosonglobaltrade.ltd","date":"2026-07-27T06:13:59.421Z","timestamp":1785132839421,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"GET /v1/supportedLanguages?client=te\u0026display_language=no\u0026key=AIzaSyBWDj0QJvVIx8XOhRegXX5_SrRWxhT5Hs4\u0026callback=callback HTTP/1.1\r\nHost: translate-pa.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\np3p: CP=\"This is not a P3P policy! See g.co/p3phelp for more info.\"\r\ncross-origin-resource-policy: cross-origin\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Origin, X-Origin, Referer\r\ncontent-encoding: gzip\r\ndate: Mon, 27 Jul 2026 06:13:59 GMT\r\nserver: ESF\r\ncontent-length: 2635\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nset-cookie: NID=533=XmjLRADIaiBUh13Hzeeg-8rILcpfG6JabAfdeOPCL0l31OlwM-tS3xGzlJvm_rp1HwE4rpDg_X8dgVcimEzt4ILmvrs17RSSmNoPoUgU6vHLwCCchXWTjq_7a7KkkUH9lwD5CRO7WqbP3Ne9E6qP0aaH3QPyJHk1JYmUcb90X3F0N0NIjMR2NHTkvN-E9er0EJaPrJwn6cK3PP7vyHzaaLsAbOwl6DbZJw; expires=Tue, 26-Jan-2027 06:13:59 GMT; path=/; domain=.translate-pa.googleapis.com; HttpOnly\r\nexpires: Mon, 27 Jul 2026 06:13:59 GMT\r\ncache-control: private\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":31482,"size_decoded":3504,"mime_type":"text/javascript; charset=UTF-8","magic":"Unicode text, UTF-8 text","md5":"91115de97ad1a90076e130223cdd90ad","sha1":"f3ad22e4fa892dfbff0d083bc0465fc3a2240317","sha256":"816e9881b1955d8beff3011d93481dad4c4de71bbd80b50ac267e7e45d4c3bad","sha512":"fbca69c3431240ab374b9ccfb06d76074059cdfe2f153743b292020271a8a3a36885189594a97fd74b43249b1f6359af62dfd0731e7b50e024f37faebdccf620","ssdeep":"192:Z6STcB9aqiD0+52DdKXrWryLxizUSTcB9aqdD0+52DdKXrWryLxG:JTcbaU3KXiMxidTcbah3KXiMxG","tlshash":"d0e267bae8b50d9b6a5e65b416fa2a03306041db4edc3c053b1c1e4c6fdec1e6c7169e","first_seen":"2025-09-02T05:12:23.753308Z","last_seen":"2026-07-27T09:46:57.066121Z","times_seen":7009,"resource_available":true,"data":"Ly8gQVBJIGNhbGxiYWNrCmNhbGxiYWNrKHsKICAic291cmNlTGFuZ3VhZ2VzIjogWwogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXV0byIsCiAgICAgICJuYW1lIjogIkdqZW5ramVubiBzcHLDpWsiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWIiLAogICAgICAibmFtZSI6ICJhYmtoYXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWNlIiwKICAgICAgIm5hbWUiOiAiYWNlaG5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhY2giLAogICAgICAibmFtZSI6ICJhY2hvbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWEiLAogICAgICAibmFtZSI6ICJhZmFyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFmIiwKICAgICAgIm5hbWUiOiAiYWZyaWthYW5zIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNxIiwKICAgICAgIm5hbWUiOiAiYWxiYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhbHoiLAogICAgICAibmFtZSI6ICJhbHVyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFtIiwKICAgICAgIm5hbWUiOiAiYW1oYXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXIiLAogICAgICAibmFtZSI6ICJhcmFiaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh5IiwKICAgICAgIm5hbWUiOiAiYXJtZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJheiIsCiAgICAgICJuYW1lIjogImFzZXJiYWpkc2phbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFzIiwKICAgICAgIm5hbWUiOiAiYXNzYW1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhdiIsCiAgICAgICJuYW1lIjogImF2YXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXdhIiwKICAgICAgIm5hbWUiOiAiYXdhZGhpIgogICAgfSwKICAgIHsKICAgICAibGFuZ3VhZ2UiOiAiYXkiLAogICAgICAibmFtZSI6ICJheW1hcmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmFuIiwKICAgICAgIm5hbWUiOiAiYmFsaW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYWwiLAogICAgICAibmFtZSI6ICJiYWx1dHNqaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibSIsCiAgICAgICJuYW1lIjogImJhbWJhcmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmNpIiwKICAgICAgIm5hbWUiOiAiYmFvdWzDqSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYSIsCiAgICAgICJuYW1lIjogImJhc2praXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJldSIsCiAgICAgICJuYW1lIjogImJhc2tpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnR4IiwKICAgICAgIm5hbWUiOiAiYmF0YWsga2FybyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJidHMiLAogICAgICAibmFtZSI6ICJiYXRhayBzaW1hbHVuZ3VuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJiYyIsCiAgICAgICJuYW1lIjogImJhdGFrIHRvYmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVtIiwKICAgICAgIm5hbWUiOiAiYmVtYmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYm4iLAogICAgICAibmFtZSI6ICJiZW5nYWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJldyIsCiAgICAgICJuYW1lIjogImJldGF3aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiaG8iLAogICAgICAibmFtZSI6ICJiaG9qcHVyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiaWsiLAogICAgICAibmFtZSI6ICJiaWtvbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJicyIsCiAgICAgICJuYW1lIjogImJvc25pc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnIiLAogICAgICAibmFtZSI6ICJicmV0b25zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZyIsCiAgICAgICJuYW1lIjogImJ1bGdhcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJ1YSIsCiAgICAgICJuYW1lIjogImJ1cmphdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJteSIsCiAgICAgICJuYW1lIjogImJ1cm1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZWIiLAogICAgICAibmFtZSI6ICJjZWJ1YW5vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNoIiwKICAgICAgIm5hbWUiOiAiY2hhbW9ycm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnkiLAogICAgICAibmFtZSI6ICJjaGljaGV3YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkYSIsCiAgICAgICJuYW1lIjogImRhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZhLUFGIiwKICAgICAgIm5hbWUiOiAiZGFyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkdiIsCiAgICAgICJuYW1lIjogImRoaXZlaGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZGluIiwKICAgICAgIm5hbWUiOiAiZGlua2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZG9pIiwKICAgICAgIm5hbWUiOiAiZG9ncmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZG92IiwKICAgICAgIm5hbWUiOiAiZG9tYmUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZHl1IiwKICAgICAgIm5hbWUiOiAiRHl1bGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZHoiLAogICAgICAibmFtZSI6ICJkem9uZ2toYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbiIsCiAgICAgICJuYW1lIjogImVuZ2Vsc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZW8iLAogICAgICAibmFtZSI6ICJlc3BlcmFudG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZXQiLAogICAgICAibmFtZSI6ICJlc3Rpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZWUiLAogICAgICAibmFtZSI6ICJld2UiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmEiLAogICAgICAibmFtZSI6ICJmYXJzaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmaiIsCiAgICAgICJuYW1lIjogImZpamlhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZpIiwKICAgICAgIm5hbWUiOiAiZmluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZm9uIiwKICAgICAgIm5hbWUiOiAiZm9uIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZyIiwKICAgICAgIm5hbWUiOiAiZnJhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZyLUNBIiwKICAgICAgIm5hbWUiOiAiRnJhbnNrIChDYW5hZGEpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZ5IiwKICAgICAgIm5hbWUiOiAiZnJpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmdXIiLAogICAgICAibmFtZSI6ICJmcml1bGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmZiIsCiAgICAgICJuYW1lIjogImZ1bGZ1bGRlIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZvIiwKICAgICAgIm5hbWUiOiAiZsOmcsO4eXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdsIiwKICAgICAgIm5hbWUiOiAiZ2FsaXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2EiLAogICAgICAibmFtZSI6ICJnZW9yZ2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbCIsCiAgICAgICJuYW1lIjogImdyZXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImduIiwKICAgICAgIm5hbWUiOiAiZ3VhcmFuw60iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ3UiLAogICAgICAibmFtZSI6ICJndWphcmF0aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnYWEiLAogICAgICAibmFtZSI6ICJnYWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY25oIiwKICAgICAgIm5hbWUiOiAiaGFraGEgY2hpbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoYSIsCiAgICAgICJuYW1lIjogImhhdXNhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhhdyIsCiAgICAgICJuYW1lIjogImhhd2FpaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIml3IiwKICAgICAgIm5hbWUiOiAiaGVicmFpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaGlsIiwKICAgICAgIm5hbWUiOiAiaGlsaWdheW5vbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoaSIsCiAgICAgICJuYW1lIjogImhpbmRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhtbiIsCiAgICAgICJuYW1lIjogImhtb25nIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhyeCIsCiAgICAgICJuYW1lIjogImh1bnNyaWsiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmUiLAogICAgICAibmFtZSI6ICJodml0ZXJ1c3Npc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaWJhIiwKICAgICAgIm5hbWUiOiAiaWJhbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpZyIsCiAgICAgICJuYW1lIjogImlnYm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaWxvIiwKICAgICAgIm5hbWUiOiAiaWxva2FubyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpZCIsCiAgICAgICJuYW1lIjogImluZG9uZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXUtTGF0biIsCiAgICAgICJuYW1lIjogIkludWt0aXR1dCAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXUiLAogICAgICAibmFtZSI6ICJJbnVrdGl0dXQgKHN0YXZlbHNlKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnYSIsCiAgICAgICJuYW1lIjogImlyc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXMiLAogICAgICAibmFtZSI6ICJpc2xhbmRzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdCIsCiAgICAgICJuYW1lIjogIml0YWxpZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYWgiLAogICAgICAibmFtZSI6ICJqYWt1dGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqYW0iLAogICAgICAibmFtZSI6ICJqYW1haWNhbnNrIHBhdG9pcyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqYSIsCiAgICAgICJuYW1lIjogImphcGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAianciLAogICAgICAibmFtZSI6ICJqYXZhbmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInlpIiwKICAgICAgIm5hbWUiOiAiamlkZGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrYWMiLAogICAgICAibmFtZSI6ICJqaW5ncG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieW8iLAogICAgICAibmFtZSI6ICJqb3J1YmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2wiLAogICAgICAibmFtZSI6ICJrYWxhYWxsaXN1dCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrbiIsCiAgICAgICJuYW1lIjogImthbm5hZGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieXVlIiwKICAgICAgIm5hbWUiOiAia2FudG9uZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3IiLAogICAgICAibmFtZSI6ICJrYW51cmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGFtIiwKICAgICAgIm5hbWUiOiAia2FwYW1wYW5nYW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2siLAogICAgICAibmFtZSI6ICJrYXNha2hpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2EiLAogICAgICAibmFtZSI6ICJrYXRhbGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2VrIiwKICAgICAgIm5hbWUiOiAia2VrY2hpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtoYSIsCiAgICAgICJuYW1lIjogImtoYXNpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImttIiwKICAgICAgIm5hbWUiOiAia2htZXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2dnIiwKICAgICAgIm5hbWUiOiAia2lnYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrZyIsCiAgICAgICJuYW1lIjogImtpa29uZ28iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiemgtQ04iLAogICAgICAibmFtZSI6ICJraW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJydyIsCiAgICAgICJuYW1lIjogImtpbnlhcndhbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt5IiwKICAgICAgIm5hbWUiOiAia2lyZ2lzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJuIiwKICAgICAgIm5hbWUiOiAia2lydW5kaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrdHUiLAogICAgICAibmFtZSI6ICJraXR1YmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHJwIiwKICAgICAgIm5hbWUiOiAia29rYm9yb2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3YiLAogICAgICAibmFtZSI6ICJrb21pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdvbSIsCiAgICAgICJuYW1lIjogImtvbmthbmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia28iLAogICAgICAibmFtZSI6ICJrb3JlYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjbyIsCiAgICAgICJuYW1lIjogImtvcnNpa2Fuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHQiLAogICAgICAibmFtZSI6ICJrcmVvbCAoSGFpdGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNycyIsCiAgICAgICJuYW1lIjogImtyZW9sIChTZXljaGVsbGVuZSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3JoIiwKICAgICAgIm5hbWUiOiAiS3JpbXRhdGFyaXNrIChreXJpbGxpc2spIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNyaC1MYXRuIiwKICAgICAgIm5hbWUiOiAiS3JpbXRhdGFyaXNrIChsYXRpbnNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrcmkiLAogICAgICAibmFtZSI6ICJrcmlvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhyIiwKICAgICAgIm5hbWUiOiAia3JvYXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3UiLAogICAgICAibmFtZSI6ICJrdXJkaXNrIChrdXJtYW5qaSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2tiIiwKICAgICAgIm5hbWUiOiAia3VyZGlzayAoc29yYW5pKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbyIsCiAgICAgICJuYW1lIjogImxhb3Rpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHRnIiwKICAgICAgIm5hbWUiOiAibGF0Z2FsaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxhIiwKICAgICAgIm5hbWUiOiAibGF0aW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHYiLAogICAgICAibmFtZSI6ICJsYXR2aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxpaiIsCiAgICAgICJuYW1lIjogImxpZ3VyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxpIiwKICAgICAgIm5hbWUiOiAibGltYnVyZ3NrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxuIiwKICAgICAgIm5hbWUiOiAibGluZ2FsYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdCIsCiAgICAgICJuYW1lIjogImxpdGF1aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxtbyIsCiAgICAgICJuYW1lIjogImxvbWJhcmRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibGciLAogICAgICAibmFtZSI6ICJsdWdhbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx1byIsCiAgICAgICJuYW1lIjogImx1byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsYiIsCiAgICAgICJuYW1lIjogImx1eGVtYm91cmdzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtZyIsCiAgICAgICJuYW1lIjogIm1hZGFnYXNzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hZCIsCiAgICAgICJuYW1lIjogIm1hZHVyZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWFpIiwKICAgICAgIm5hbWUiOiAibWFpdGhpbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWFrIiwKICAgICAgIm5hbWUiOiAiTWFrYXNzYXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWsiLAogICAgICAibmFtZSI6ICJtYWtlZG9uc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWwiLAogICAgICAibmFtZSI6ICJtYWxheWFsYW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXMiLAogICAgICAibmFtZSI6ICJtYWxheWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtcy1BcmFiIiwKICAgICAgIm5hbWUiOiAibWFsYXlpc2sgKGphd2kpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm10IiwKICAgICAgIm5hbWUiOiAibWFsdGVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hbSIsCiAgICAgICJuYW1lIjogIm1hbSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJndiIsCiAgICAgICJuYW1lIjogIm1hbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1pIiwKICAgICAgIm5hbWUiOiAibWFvcmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXIiLAogICAgICAibmFtZSI6ICJtYXJhdGhpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1oIiwKICAgICAgIm5hbWUiOiAibWFyc2hhbGxlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtd3IiLAogICAgICAibmFtZSI6ICJtYXJ3YWRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1mZSIsCiAgICAgICJuYW1lIjogIm1hdXJpdGlzayBrcmVvbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtbmktTXRlaSIsCiAgICAgICJuYW1lIjogIm1laXRlaWxvbiAobWFuaXB1cmkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1pbiIsCiAgICAgICJuYW1lIjogIm1pbmFuZyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdXMiLAogICAgICAibmFtZSI6ICJtaXpvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1uIiwKICAgICAgIm5hbWUiOiAibW9uZ29sc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibmhlIiwKICAgICAgIm5hbWUiOiAibmFodWF0bCAow7hzdGxpZ2UgSHVhc3RlY2EpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5kYy1aVyIsCiAgICAgICJuYW1lIjogIm5kYXUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnIiLAogICAgICAibmFtZSI6ICJuZGViZWxlIChzw7hyKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJubCIsCiAgICAgICJuYW1lIjogIm5lZGVybGFuZHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5ldyIsCiAgICAgICJuYW1lIjogIk5lcGFsIGJoYXNhIChuZXdhcmkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5lIiwKICAgICAgIm5hbWUiOiAibmVwYWxzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibS1Oa29vIiwKICAgICAgIm5hbWUiOiAiTktvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5vIiwKICAgICAgIm5hbWUiOiAibm9yc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnVzIiwKICAgICAgIm5hbWUiOiAibnVlciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvYyIsCiAgICAgICJuYW1lIjogIm9rc2l0YW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvciIsCiAgICAgICJuYW1lIjogIm9yaXlhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm9tIiwKICAgICAgIm5hbWUiOiAib3JvbW8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib3MiLAogICAgICAibmFtZSI6ICJvc3NldGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYWciLAogICAgICAibmFtZSI6ICJwYW5nYXNpbmFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhIiwKICAgICAgIm5hbWUiOiAiUGFuamFiaSAoZ3VybXVraGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhLUFyYWIiLAogICAgICAibmFtZSI6ICJwYW5qYWJpIChzaGFobXVraGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhcCIsCiAgICAgICJuYW1lIjogInBhcGlhbWVudG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicHMiLAogICAgICAibmFtZSI6ICJwYXNodG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGwiLAogICAgICAibmFtZSI6ICJwb2xzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwdCIsCiAgICAgICJuYW1lIjogInBvcnR1Z2lzaXNrIChCcmFzaWwpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInB0LVBUIiwKICAgICAgIm5hbWUiOiAicG9ydHVnaXNpc2sgKFBvcnR1Z2FsKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJxdSIsCiAgICAgICJuYW1lIjogInF1ZWNodWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicm9tIiwKICAgICAgIm5hbWUiOiAicm9tYW5pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJvIiwKICAgICAgIm5hbWUiOiAicnVtZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJydSIsCiAgICAgICJuYW1lIjogInJ1c3Npc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2UiLAogICAgICAibmFtZSI6ICJzYW1pc2sgKG5vcmQpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNtIiwKICAgICAgIm5hbWUiOiAic2Ftb2Fuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2ciLAogICAgICAibmFtZSI6ICJzYW5nbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYSIsCiAgICAgICJuYW1lIjogInNhbnNrcml0IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhdC1MYXRuIiwKICAgICAgIm5hbWUiOiAiU2FudGFsaSAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2F0IiwKICAgICAgIm5hbWUiOiAiU2FudGFsaSAob2wgY2hpa2kpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN6bCIsCiAgICAgICJuYW1lIjogInNjaGxlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuc28iLAogICAgICAibmFtZSI6ICJzZXBlZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3IiLAogICAgICAibmFtZSI6ICJzZXJiaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNobiIsCiAgICAgICJuYW1lIjogInNoYW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic24iLAogICAgICAibmFtZSI6ICJzaG9uYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzY24iLAogICAgICAibmFtZSI6ICJzaWNpbGlhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNkIiwKICAgICAgIm5hbWUiOiAic2luZGhpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNpIiwKICAgICAgIm5hbWUiOiAic2luZ2FsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ2QiLAogICAgICAibmFtZSI6ICJza290c2sgZ8OmbGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzayIsCiAgICAgICJuYW1lIjogInNsb3Zha2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbCIsCiAgICAgICJuYW1lIjogInNsb3ZlbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNvIiwKICAgICAgIm5hbWUiOiAic29tYWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN0IiwKICAgICAgIm5hbWUiOiAic290aG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZXMiLAogICAgICAibmFtZSI6ICJzcGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3UiLAogICAgICAibmFtZSI6ICJzdW5kYW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdXMiLAogICAgICAibmFtZSI6ICJzdXN1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN2IiwKICAgICAgIm5hbWUiOiAic3ZlbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN3IiwKICAgICAgIm5hbWUiOiAic3dhaGlsaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzcyIsCiAgICAgICJuYW1lIjogInN3YXRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRnIiwKICAgICAgIm5hbWUiOiAidGFkc2ppa2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0bCIsCiAgICAgICJuYW1lIjogInRhZ2Fsb2ciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHkiLAogICAgICAibmFtZSI6ICJ0YWhpdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZXItTGF0biIsCiAgICAgICJuYW1lIjogInRhbWF6aWdodCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZXIiLAogICAgICAibmFtZSI6ICJ0YW1hemlnaHQgKHRpZmluYWdoKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0YSIsCiAgICAgICJuYW1lIjogInRhbWlsIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR0IiwKICAgICAgIm5hbWUiOiAidGF0YXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGUiLAogICAgICAibmFtZSI6ICJ0ZWx1Z3UiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGV0IiwKICAgICAgIm5hbWUiOiAidGV0dW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGgiLAogICAgICAibmFtZSI6ICJ0aGFpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJvIiwKICAgICAgIm5hbWUiOiAidGliZXRhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRpIiwKICAgICAgIm5hbWUiOiAidGlncmluamEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGl2IiwKICAgICAgIm5hbWUiOiAidGl2IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRwaSIsCiAgICAgICJuYW1lIjogInRvayBwaXNpbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0byIsCiAgICAgICJuYW1lIjogInRvbmdhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx1YSIsCiAgICAgICJuYW1lIjogInRzaGlsdWJhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNzIiwKICAgICAgIm5hbWUiOiAidHNqZWtraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNlIiwKICAgICAgIm5hbWUiOiAidHNqZXRzamVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2hrIiwKICAgICAgIm5hbWUiOiAidHNqdWt0c2ppc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3YiLAogICAgICAibmFtZSI6ICJ0c2p1dmFzamlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0cyIsCiAgICAgICJuYW1lIjogInRzb25nYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0biIsCiAgICAgICJuYW1lIjogInRzd2FuYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0Y3kiLAogICAgICAibmFtZSI6ICJ0dWx1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR1bSIsCiAgICAgICJuYW1lIjogInR1bWJ1a2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGsiLAogICAgICAibmFtZSI6ICJ0dXJrbWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHl2IiwKICAgICAgIm5hbWUiOiAidHV2aW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhayIsCiAgICAgICJuYW1lIjogInR3aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0ciIsCiAgICAgICJuYW1lIjogInR5cmtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZGUiLAogICAgICAibmFtZSI6ICJ0eXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVkbSIsCiAgICAgICJuYW1lIjogInVkbXVydGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ZyIsCiAgICAgICJuYW1lIjogInVpZ3VyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVrIiwKICAgICAgIm5hbWUiOiAidWtyYWluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHUiLAogICAgICAibmFtZSI6ICJ1bmdhcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVyIiwKICAgICAgIm5hbWUiOiAidXJkdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1eiIsCiAgICAgICJuYW1lIjogInVzYmVraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInZlIiwKICAgICAgIm5hbWUiOiAidmVuZGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidmVjIiwKICAgICAgIm5hbWUiOiAidmVuZXRpYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ2aSIsCiAgICAgICJuYW1lIjogInZpZXRuYW1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjeSIsCiAgICAgICJuYW1lIjogIndhbGlzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIndhciIsCiAgICAgICJuYW1lIjogIndhcmF5LXdhcmF5IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIndvIiwKICAgICAgIm5hbWUiOiAid29sb2YiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieGgiLAogICAgICAibmFtZSI6ICJ4aG9zYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5dWEiLAogICAgICAibmFtZSI6ICJ5dWthdGFuc2sgbWF5YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6YXAiLAogICAgICAibmFtZSI6ICJ6YXBvdGVjIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInp1IiwKICAgICAgIm5hbWUiOiAienVsdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjaG0iLAogICAgICAibmFtZSI6ICLDuHN0bWFyaXNrIgogICAgfQogIF0sCiAgInRhcmdldExhbmd1YWdlcyI6IFsKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFiIiwKICAgICAgIm5hbWUiOiAiYWJraGFzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFjZSIsCiAgICAgICJuYW1lIjogImFjZWhuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWNoIiwKICAgICAgIm5hbWUiOiAiYWNob2xpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFhIiwKICAgICAgIm5hbWUiOiAiYWZhciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhZiIsCiAgICAgICJuYW1lIjogImFmcmlrYWFucyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzcSIsCiAgICAgICJuYW1lIjogImFsYmFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWx6IiwKICAgICAgIm5hbWUiOiAiYWx1ciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhbSIsCiAgICAgICJuYW1lIjogImFtaGFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFyIiwKICAgICAgIm5hbWUiOiAiYXJhYmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoeSIsCiAgICAgICJuYW1lIjogImFybWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXoiLAogICAgICAibmFtZSI6ICJhc2VyYmFqZHNqYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhcyIsCiAgICAgICJuYW1lIjogImFzc2FtZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXYiLAogICAgICAibmFtZSI6ICJhdmFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImF3YSIsCiAgICAgICJuYW1lIjogImF3YWRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJheSIsCiAgICAgICJuYW1lIjogImF5bWFyYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYW4iLAogICAgICAibmFtZSI6ICJiYWxpbmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJhbCIsCiAgICAgICJuYW1lIjogImJhbHV0c2ppIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJtIiwKICAgICAgIm5hbWUiOiAiYmFtYmFyYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiY2kiLAogICAgICAibmFtZSI6ICJiYW91bMOpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJhIiwKICAgICAgIm5hbWUiOiAiYmFzamtpcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImV1IiwKICAgICAgIm5hbWUiOiAiYmFza2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJidHgiLAogICAgICAibmFtZSI6ICJiYXRhayBrYXJvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJ0cyIsCiAgICAgICJuYW1lIjogImJhdGFrIHNpbWFsdW5ndW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmJjIiwKICAgICAgIm5hbWUiOiAiYmF0YWsgdG9iYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZW0iLAogICAgICAibmFtZSI6ICJiZW1iYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibiIsCiAgICAgICJuYW1lIjogImJlbmdhbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmV3IiwKICAgICAgIm5hbWUiOiAiYmV0YXdpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJobyIsCiAgICAgICJuYW1lIjogImJob2pwdXJpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJpayIsCiAgICAgICJuYW1lIjogImJpa29sIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJzIiwKICAgICAgIm5hbWUiOiAiYm9zbmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiciIsCiAgICAgICJuYW1lIjogImJyZXRvbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJnIiwKICAgICAgIm5hbWUiOiAiYnVsZ2Fyc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnVhIiwKICAgICAgIm5hbWUiOiAiYnVyamF0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm15IiwKICAgICAgIm5hbWUiOiAiYnVybWVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNlYiIsCiAgICAgICJuYW1lIjogImNlYnVhbm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2giLAogICAgICAibmFtZSI6ICJjaGFtb3JybyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJueSIsCiAgICAgICJuYW1lIjogImNoaWNoZXdhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImRhIiwKICAgICAgIm5hbWUiOiAiZGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmEtQUYiLAogICAgICAibmFtZSI6ICJkYXJpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImR2IiwKICAgICAgIm5hbWUiOiAiZGhpdmVoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkaW4iLAogICAgICAibmFtZSI6ICJkaW5rYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkb2kiLAogICAgICAibmFtZSI6ICJkb2dyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkb3YiLAogICAgICAibmFtZSI6ICJkb21iZSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkeXUiLAogICAgICAibmFtZSI6ICJEeXVsYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkeiIsCiAgICAgICJuYW1lIjogImR6b25na2hhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVuIiwKICAgICAgIm5hbWUiOiAiZW5nZWxzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbyIsCiAgICAgICJuYW1lIjogImVzcGVyYW50byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJldCIsCiAgICAgICJuYW1lIjogImVzdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlZSIsCiAgICAgICJuYW1lIjogImV3ZSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmYSIsCiAgICAgICJuYW1lIjogImZhcnNpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZqIiwKICAgICAgIm5hbWUiOiAiZmlqaWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmkiLAogICAgICAibmFtZSI6ICJmaW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmb24iLAogICAgICAibmFtZSI6ICJmb24iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnIiLAogICAgICAibmFtZSI6ICJmcmFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnItQ0EiLAogICAgICAibmFtZSI6ICJGcmFuc2sgKENhbmFkYSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnkiLAogICAgICAibmFtZSI6ICJmcmlzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZ1ciIsCiAgICAgICJuYW1lIjogImZyaXVsaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZmIiwKICAgICAgIm5hbWUiOiAiZnVsZnVsZGUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZm8iLAogICAgICAibmFtZSI6ICJmw6Zyw7h5c2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ2wiLAogICAgICAibmFtZSI6ICJnYWxpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrYSIsCiAgICAgICJuYW1lIjogImdlb3JnaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVsIiwKICAgICAgIm5hbWUiOiAiZ3Jlc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ24iLAogICAgICAibmFtZSI6ICJndWFyYW7DrSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJndSIsCiAgICAgICJuYW1lIjogImd1amFyYXRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdhYSIsCiAgICAgICJuYW1lIjogImdhYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjbmgiLAogICAgICAibmFtZSI6ICJoYWtoYSBjaGluIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhhIiwKICAgICAgIm5hbWUiOiAiaGF1c2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaGF3IiwKICAgICAgIm5hbWUiOiAiaGF3YWlpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXciLAogICAgICAibmFtZSI6ICJoZWJyYWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoaWwiLAogICAgICAibmFtZSI6ICJoaWxpZ2F5bm9uIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhpIiwKICAgICAgIm5hbWUiOiAiaGluZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaG1uIiwKICAgICAgIm5hbWUiOiAiaG1vbmciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHJ4IiwKICAgICAgIm5hbWUiOiAiaHVuc3JpayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZSIsCiAgICAgICJuYW1lIjogImh2aXRlcnVzc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpYmEiLAogICAgICAibmFtZSI6ICJpYmFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImlnIiwKICAgICAgIm5hbWUiOiAiaWdibyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpbG8iLAogICAgICAibmFtZSI6ICJpbG9rYW5vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImlkIiwKICAgICAgIm5hbWUiOiAiaW5kb25lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdS1MYXRuIiwKICAgICAgIm5hbWUiOiAiSW51a3RpdHV0IChsYXRpbnNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdSIsCiAgICAgICJuYW1lIjogIkludWt0aXR1dCAoc3RhdmVsc2UpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdhIiwKICAgICAgIm5hbWUiOiAiaXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpcyIsCiAgICAgICJuYW1lIjogImlzbGFuZHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIml0IiwKICAgICAgIm5hbWUiOiAiaXRhbGllbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhaCIsCiAgICAgICJuYW1lIjogImpha3V0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImphbSIsCiAgICAgICJuYW1lIjogImphbWFpY2Fuc2sgcGF0b2lzIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImphIiwKICAgICAgIm5hbWUiOiAiamFwYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqdyIsCiAgICAgICJuYW1lIjogImphdmFuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieWkiLAogICAgICAibmFtZSI6ICJqaWRkaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImthYyIsCiAgICAgICJuYW1lIjogImppbmdwbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5byIsCiAgICAgICJuYW1lIjogImpvcnViYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrbCIsCiAgICAgICJuYW1lIjogImthbGFhbGxpc3V0IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtuIiwKICAgICAgIm5hbWUiOiAia2FubmFkYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5dWUiLAogICAgICAibmFtZSI6ICJrYW50b25lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrciIsCiAgICAgICJuYW1lIjogImthbnVyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYW0iLAogICAgICAibmFtZSI6ICJrYXBhbXBhbmdhbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrayIsCiAgICAgICJuYW1lIjogImthc2FraGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjYSIsCiAgICAgICJuYW1lIjogImthdGFsYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrZWsiLAogICAgICAibmFtZSI6ICJrZWtjaGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2hhIiwKICAgICAgIm5hbWUiOiAia2hhc2kiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia20iLAogICAgICAibmFtZSI6ICJraG1lciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZ2ciLAogICAgICAibmFtZSI6ICJraWdhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtnIiwKICAgICAgIm5hbWUiOiAia2lrb25nbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6aC1DTiIsCiAgICAgICJuYW1lIjogImtpbmVzaXNrIChmb3JlbmtsZXQpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInpoLVRXIiwKICAgICAgIm5hbWUiOiAia2luZXNpc2sgKHRyYWRpc2pvbmVsbCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicnciLAogICAgICAibmFtZSI6ICJraW55YXJ3YW5kYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJreSIsCiAgICAgICJuYW1lIjogImtpcmdpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJybiIsCiAgICAgICJuYW1lIjogImtpcnVuZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3R1IiwKICAgICAgIm5hbWUiOiAia2l0dWJhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRycCIsCiAgICAgICJuYW1lIjogImtva2Jvcm9rIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt2IiwKICAgICAgIm5hbWUiOiAia29taSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnb20iLAogICAgICAibmFtZSI6ICJrb25rYW5pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtvIiwKICAgICAgIm5hbWUiOiAia29yZWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY28iLAogICAgICAibmFtZSI6ICJrb3JzaWthbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh0IiwKICAgICAgIm5hbWUiOiAia3Jlb2wgKEhhaXRpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcnMiLAogICAgICAibmFtZSI6ICJrcmVvbCAoU2V5Y2hlbGxlbmUpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNyaCIsCiAgICAgICJuYW1lIjogIktyaW10YXRhcmlzayAoa3lyaWxsaXNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcmgtTGF0biIsCiAgICAgICJuYW1lIjogIktyaW10YXRhcmlzayAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3JpIiwKICAgICAgIm5hbWUiOiAia3JpbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJociIsCiAgICAgICJuYW1lIjogImtyb2F0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt1IiwKICAgICAgIm5hbWUiOiAia3VyZGlzayAoa3VybWFuamkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNrYiIsCiAgICAgICJuYW1lIjogImt1cmRpc2sgKHNvcmFuaSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibG8iLAogICAgICAibmFtZSI6ICJsYW90aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx0ZyIsCiAgICAgICJuYW1lIjogImxhdGdhbGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsYSIsCiAgICAgICJuYW1lIjogImxhdGluIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx2IiwKICAgICAgIm5hbWUiOiAibGF0dmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsaWoiLAogICAgICAibmFtZSI6ICJsaWd1cmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsaSIsCiAgICAgICJuYW1lIjogImxpbWJ1cmdzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbiIsCiAgICAgICJuYW1lIjogImxpbmdhbGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHQiLAogICAgICAibmFtZSI6ICJsaXRhdWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbW8iLAogICAgICAibmFtZSI6ICJsb21iYXJkaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxnIiwKICAgICAgIm5hbWUiOiAibHVnYW5kYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdW8iLAogICAgICAibmFtZSI6ICJsdW8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibGIiLAogICAgICAibmFtZSI6ICJsdXhlbWJvdXJnc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWciLAogICAgICAibmFtZSI6ICJtYWRhZ2Fzc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtYWQiLAogICAgICAibmFtZSI6ICJtYWR1cmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1haSIsCiAgICAgICJuYW1lIjogIm1haXRoaWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hayIsCiAgICAgICJuYW1lIjogIk1ha2Fzc2FyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1rIiwKICAgICAgIm5hbWUiOiAibWFrZWRvbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1sIiwKICAgICAgIm5hbWUiOiAibWFsYXlhbGFtIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1zIiwKICAgICAgIm5hbWUiOiAibWFsYXlpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXMtQXJhYiIsCiAgICAgICJuYW1lIjogIm1hbGF5aXNrIChqYXdpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtdCIsCiAgICAgICJuYW1lIjogIm1hbHRlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtYW0iLAogICAgICAibmFtZSI6ICJtYW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ3YiLAogICAgICAibmFtZSI6ICJtYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaSIsCiAgICAgICJuYW1lIjogIm1hb3JpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1yIiwKICAgICAgIm5hbWUiOiAibWFyYXRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaCIsCiAgICAgICJuYW1lIjogIm1hcnNoYWxsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXdyIiwKICAgICAgIm5hbWUiOiAibWFyd2FkaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtZmUiLAogICAgICAibmFtZSI6ICJtYXVyaXRpc2sga3Jlb2wiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibW5pLU10ZWkiLAogICAgICAibmFtZSI6ICJtZWl0ZWlsb24gKG1hbmlwdXJpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaW4iLAogICAgICAibmFtZSI6ICJtaW5hbmciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHVzIiwKICAgICAgIm5hbWUiOiAibWl6byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtbiIsCiAgICAgICJuYW1lIjogIm1vbmdvbHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5oZSIsCiAgICAgICJuYW1lIjogIm5haHVhdGwgKMO4c3RsaWdlIEh1YXN0ZWNhKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZGMtWlciLAogICAgICAibmFtZSI6ICJuZGF1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5yIiwKICAgICAgIm5hbWUiOiAibmRlYmVsZSAoc8O4cikiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibmwiLAogICAgICAibmFtZSI6ICJuZWRlcmxhbmRzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZXciLAogICAgICAibmFtZSI6ICJOZXBhbCBiaGFzYSAobmV3YXJpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZSIsCiAgICAgICJuYW1lIjogIm5lcGFsc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYm0tTmtvbyIsCiAgICAgICJuYW1lIjogIk5LbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJubyIsCiAgICAgICJuYW1lIjogIm5vcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm51cyIsCiAgICAgICJuYW1lIjogIm51ZXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib2MiLAogICAgICAibmFtZSI6ICJva3NpdGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib3IiLAogICAgICAibmFtZSI6ICJvcml5YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvbSIsCiAgICAgICJuYW1lIjogIm9yb21vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm9zIiwKICAgICAgIm5hbWUiOiAib3NzZXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGFnIiwKICAgICAgIm5hbWUiOiAicGFuZ2FzaW5hbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYSIsCiAgICAgICJuYW1lIjogIlBhbmphYmkgKGd1cm11a2hpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYS1BcmFiIiwKICAgICAgIm5hbWUiOiAicGFuamFiaSAoc2hhaG11a2hpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYXAiLAogICAgICAibmFtZSI6ICJwYXBpYW1lbnRvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBzIiwKICAgICAgIm5hbWUiOiAicGFzaHRvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBsIiwKICAgICAgIm5hbWUiOiAicG9sc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicHQiLAogICAgICAibmFtZSI6ICJwb3J0dWdpc2lzayAoQnJhc2lsKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwdC1QVCIsCiAgICAgICJuYW1lIjogInBvcnR1Z2lzaXNrIChQb3J0dWdhbCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicXUiLAogICAgICAibmFtZSI6ICJxdWVjaHVhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJvbSIsCiAgICAgICJuYW1lIjogInJvbWFuaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJybyIsCiAgICAgICJuYW1lIjogInJ1bWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicnUiLAogICAgICAibmFtZSI6ICJydXNzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNlIiwKICAgICAgIm5hbWUiOiAic2FtaXNrIChub3JkKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbSIsCiAgICAgICJuYW1lIjogInNhbW9hbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNnIiwKICAgICAgIm5hbWUiOiAic2FuZ28iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2EiLAogICAgICAibmFtZSI6ICJzYW5za3JpdCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYXQtTGF0biIsCiAgICAgICJuYW1lIjogIlNhbnRhbGkgKGxhdGluc2spIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhdCIsCiAgICAgICJuYW1lIjogIlNhbnRhbGkgKG9sIGNoaWtpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzemwiLAogICAgICAibmFtZSI6ICJzY2hsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnNvIiwKICAgICAgIm5hbWUiOiAic2VwZWRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNyIiwKICAgICAgIm5hbWUiOiAic2VyYmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzaG4iLAogICAgICAibmFtZSI6ICJzaGFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNuIiwKICAgICAgIm5hbWUiOiAic2hvbmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2NuIiwKICAgICAgIm5hbWUiOiAic2ljaWxpYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzZCIsCiAgICAgICJuYW1lIjogInNpbmRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzaSIsCiAgICAgICJuYW1lIjogInNpbmdhbGVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdkIiwKICAgICAgIm5hbWUiOiAic2tvdHNrIGfDpmxpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2siLAogICAgICAibmFtZSI6ICJzbG92YWtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2wiLAogICAgICAibmFtZSI6ICJzbG92ZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbyIsCiAgICAgICJuYW1lIjogInNvbWFsaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdCIsCiAgICAgICJuYW1lIjogInNvdGhvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVzIiwKICAgICAgIm5hbWUiOiAic3BhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN1IiwKICAgICAgIm5hbWUiOiAic3VuZGFuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3VzIiwKICAgICAgIm5hbWUiOiAic3VzdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdiIsCiAgICAgICJuYW1lIjogInN2ZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdyIsCiAgICAgICJuYW1lIjogInN3YWhpbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3MiLAogICAgICAibmFtZSI6ICJzd2F0aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0ZyIsCiAgICAgICJuYW1lIjogInRhZHNqaWtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGwiLAogICAgICAibmFtZSI6ICJ0YWdhbG9nIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR5IiwKICAgICAgIm5hbWUiOiAidGFoaXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVyLUxhdG4iLAogICAgICAibmFtZSI6ICJ0YW1hemlnaHQiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVyIiwKICAgICAgIm5hbWUiOiAidGFtYXppZ2h0ICh0aWZpbmFnaCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGEiLAogICAgICAibmFtZSI6ICJ0YW1pbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0dCIsCiAgICAgICJuYW1lIjogInRhdGFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRlIiwKICAgICAgIm5hbWUiOiAidGVsdWd1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRldCIsCiAgICAgICJuYW1lIjogInRldHVtIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRoIiwKICAgICAgIm5hbWUiOiAidGhhaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibyIsCiAgICAgICJuYW1lIjogInRpYmV0YW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0aSIsCiAgICAgICJuYW1lIjogInRpZ3JpbmphIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRpdiIsCiAgICAgICJuYW1lIjogInRpdiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0cGkiLAogICAgICAibmFtZSI6ICJ0b2sgcGlzaW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidG8iLAogICAgICAibmFtZSI6ICJ0b25nYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdWEiLAogICAgICAibmFtZSI6ICJ0c2hpbHViYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcyIsCiAgICAgICJuYW1lIjogInRzamVra2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZSIsCiAgICAgICJuYW1lIjogInRzamV0c2plbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNoayIsCiAgICAgICJuYW1lIjogInRzanVrdHNqaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImN2IiwKICAgICAgIm5hbWUiOiAidHNqdXZhc2ppc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHMiLAogICAgICAibmFtZSI6ICJ0c29uZ2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidG4iLAogICAgICAibmFtZSI6ICJ0c3dhbmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGN5IiwKICAgICAgIm5hbWUiOiAidHVsdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0dW0iLAogICAgICAibmFtZSI6ICJ0dW1idWthIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRrIiwKICAgICAgIm5hbWUiOiAidHVya21lbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR5diIsCiAgICAgICJuYW1lIjogInR1dmluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWsiLAogICAgICAibmFtZSI6ICJ0d2kiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHIiLAogICAgICAibmFtZSI6ICJ0eXJraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImRlIiwKICAgICAgIm5hbWUiOiAidHlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ZG0iLAogICAgICAibmFtZSI6ICJ1ZG11cnRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidWciLAogICAgICAibmFtZSI6ICJ1aWd1cmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ayIsCiAgICAgICJuYW1lIjogInVrcmFpbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh1IiwKICAgICAgIm5hbWUiOiAidW5nYXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ciIsCiAgICAgICJuYW1lIjogInVyZHUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidXoiLAogICAgICAibmFtZSI6ICJ1c2Jla2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ2ZSIsCiAgICAgICJuYW1lIjogInZlbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInZlYyIsCiAgICAgICJuYW1lIjogInZlbmV0aWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidmkiLAogICAgICAibmFtZSI6ICJ2aWV0bmFtZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3kiLAogICAgICAibmFtZSI6ICJ3YWxpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ3YXIiLAogICAgICAibmFtZSI6ICJ3YXJheS13YXJheSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ3byIsCiAgICAgICJuYW1lIjogIndvbG9mIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInhoIiwKICAgICAgIm5hbWUiOiAieGhvc2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieXVhIiwKICAgICAgIm5hbWUiOiAieXVrYXRhbnNrIG1heWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiemFwIiwKICAgICAgIm5hbWUiOiAiemFwb3RlYyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6dSIsCiAgICAgICJuYW1lIjogInp1bHUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2htIiwKICAgICAgIm5hbWUiOiAiw7hzdG1hcmlzayIKICAgIH0KICBdCn0KKTs="}},"time_used":62,"timings":{"blocked":0,"dns":2,"connect":9,"send":0,"wait":27,"receive":0,"ssl":24},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget.coinlore.com/widgets/top-list/?top=undefined\u0026cur=usd","fqdn":"widget.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:27.931Z","timestamp":1785132867931,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /widgets/top-list/?top=undefined\u0026cur=usd HTTP/1.1\r\nHost: widget.coinlore.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://farosonglobaltrade.ltd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\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 06:14:28 GMT\r\ncontent-type: application/json\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\nx-cache: HIT\r\ncontent-encoding: gzip\r\nlast-modified: Mon, 27 Jul 2026 06:14:28 GMT\r\ncache-control: no-store\r\ncf-cache-status: EXPIRED\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=7AzrxXjpJeT2lASn0npos1KZJz5%2BPgTyE1LgfwV6lwHlUCH%2BJcmjJdFsm5Zj3w05%2F9ieytMupGDg5G0fYs%2FA4fmNNmX%2FHE%2FO14zsDJHOflRiThIiezXXKria1Tu%2BFXWh4HVpemo%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-ray: a2198108bfcab28a-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":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2910,"size_decoded":1594,"mime_type":"application/json","magic":"JSON text data","md5":"92be28cc6d6590d91a20ace013a1373d","sha1":"35af69201f0c89c3c3b940647092877a25c7596f","sha256":"c370c7f515ed6481228f680b29dc01185deaaa2d271b625fb641151b97c39f0a","sha512":"8a56af09d27b4fa70b2fe0a136bbe7c47a247c08db109ec213b041942450cfe63adac7b9536360666e86b274a616bcd377fb202312c7fce8b7745624d8be3ee8","ssdeep":"","tlshash":"26515b470e181e7b8191b97565a147a8686c87cefd7e770c821e8dce08ccfd3012eda5","first_seen":"2026-07-27T06:14:42.63719Z","last_seen":"2026-07-27T06:14:42.63719Z","times_seen":1,"resource_available":false,"data":"W3sic3ltYm9sIjoiQlRDIiwibmFtZSI6IkJpdGNvaW4iLCJuYW1laWQiOiJiaXRjb2luIiwicHJpY2VfdXNkIjoiNjUsNTUyLjEwIiwicHJpY2VfdXNkX24iOiI2NTU1Mi4wOTUyNjMxNTgiLCJwZXJjZW50X2NoYW5nZV8yNGgiOiIxLjgzIiwicGVyY2VudF9jaGFuZ2VfMWgiOiIwLjM2IiwicGVyY2VudF9jaGFuZ2VfN2QiOiIxLjczIiwibWFya2V0X2NhcF91c2QiOiIxLjMxIFQiLCJ0MjRoX3ZvbHVtZV91c2QiOiIyNC45NiBCIiwidDI0aF92b2x1bWVfbmF0aXZlIjoiMzgwNzc1LjY0IiwibWMiOiJVU0QifSx7InN5bWJvbCI6IkVUSCIsIm5hbWUiOiJFdGhlcmV1bSIsIm5hbWVpZCI6ImV0aGVyZXVtIiwicHJpY2VfdXNkIjoiMSw5NjkuMDAiLCJwcmljZV91c2RfbiI6IjE5NjguOTk4MzY4NDIxMSIsInBlcmNlbnRfY2hhbmdlXzI0aCI6IjQuNTciLCJwZXJjZW50X2NoYW5nZV8xaCI6IjAuNjciLCJwZXJjZW50X2NoYW5nZV83ZCI6IjUuNzUiLCJtYXJrZXRfY2FwX3VzZCI6IjI0MC45NiBCIiwidDI0aF92b2x1bWVfdXNkIjoiNy42MyBCIiwidDI0aF92b2x1bWVfbmF0aXZlIjoiMzg3NzQzNi43NSIsIm1jIjoiVVNEIn0seyJzeW1ib2wiOiJVU0RUIiwibmFtZSI6IlRldGhlciIsIm5hbWVpZCI6InRldGhlciIsInByaWNlX3VzZCI6IjAuOTk4MzYzIiwicHJpY2VfdXNkX24iOiIwLjk5ODM2MjY2ODg3NDg1IiwicGVyY2VudF9jaGFuZ2VfMjRoIjoiLTAuMTMiLCJwZXJjZW50X2NoYW5nZV8xaCI6Ii0wLjAzIiwicGVyY2VudF9jaGFuZ2VfN2QiOiItMC4xNCIsIm1hcmtldF9jYXBfdXNkIjoiMTgzLjkyIEIiLCJ0MjRoX3ZvbHVtZV91c2QiOiIzMi4xIEIiLCJ0MjRoX3ZvbHVtZV9uYXRpdmUiOiIzMjE0ODg5NjQ2NS45MCIsIm1jIjoiVVNEIn0seyJzeW1ib2wiOiJCTkIiLCJuYW1lIjoiQmluYW5jZSBDb2luIiwibmFtZWlkIjoiYmluYW5jZS1jb2luIiwicHJpY2VfdXNkIjoiNTc1LjkzIiwicHJpY2VfdXNkX24iOiI1NzUuOTI5MTc1IiwicGVyY2VudF9jaGFuZ2VfMjRoIjoiMC44MyIsInBlcmNlbnRfY2hhbmdlXzFoIjoiMC4zNSIsInBlcmNlbnRfY2hhbmdlXzdkIjoiMS40NyIsIm1hcmtldF9jYXBfdXNkIjoiODAuMTYgQiIsInQyNGhfdm9sdW1lX3VzZCI6IjMxNy40IE0iLCJ0MjRoX3ZvbHVtZV9uYXRpdmUiOiI1NTExMDEuMzAiLCJtYyI6IlVTRCJ9LHsic3ltYm9sIjoiVVNEQyIsIm5hbWUiOiJVU0QgQ29pbiIsIm5hbWVpZCI6InVzZC1jb2luIiwicHJpY2VfdXNkIjoiMS4wMCIsInByaWNlX3VzZF9uIjoiMS4wMDA4NDQxMTc2NDcxIiwicGVyY2VudF9jaGFuZ2VfMjRoIjoiMC4wMCIsInBlcmNlbnRfY2hhbmdlXzFoIjoiMC4wMCIsInBlcmNlbnRfY2hhbmdlXzdkIjoiMC4wMyIsIm1hcmtldF9jYXBfdXNkIjoiNzQuMDQgQiIsInQyNGhfdm9sdW1lX3VzZCI6IjUuMjcgQiIsInQyNGhfdm9sdW1lX25hdGl2ZSI6IjUyNjQ3NTM3OTcuNzEiLCJtYyI6IlVTRCJ9LHsic3ltYm9sIjoiWFJQIiwibmFtZSI6IlhSUCIsIm5hbWVpZCI6InJpcHBsZSIsInByaWNlX3VzZCI6IjEuMTEiLCJwcmljZV91c2RfbiI6IjEuMTExMjE3NTA5Nzg3NyIsInBlcmNlbnRfY2hhbmdlXzI0aCI6IjEuMTciLCJwZXJjZW50X2NoYW5nZV8xaCI6IjAuMzQiLCJwZXJjZW50X2NoYW5nZV83ZCI6IjEuNjYiLCJtYXJrZXRfY2FwX3VzZCI6IjY2LjQzIEIiLCJ0MjRoX3ZvbHVtZV91c2QiOiI1NTEuNzIgTSIsInQyNGhfdm9sdW1lX25hdGl2ZSI6IjQ5NjQ5ODkxMy45MyIsIm1jIjoiVVNEIn0seyJzeW1ib2wiOiJTT0wiLCJuYW1lIjoiU29sYW5hIiwibmFtZWlkIjoic29sYW5hIiwicHJpY2VfdXNkIjoiNzYuNzMiLCJwcmljZV91c2RfbiI6Ijc2LjczNDUzMDc2OTIzMSIsInBlcmNlbnRfY2hhbmdlXzI0aCI6IjIuNDMiLCJwZXJjZW50X2NoYW5nZV8xaCI6IjAuNDgiLCJwZXJjZW50X2NoYW5nZV83ZCI6IjEuNDIiLCJtYXJrZXRfY2FwX3VzZCI6IjQxLjY4IEIiLCJ0MjRoX3ZvbHVtZV91c2QiOiIxLjA2IEIiLCJ0MjRoX3ZvbHVtZV9uYXRpdmUiOiIxMzc1NDQ3Ni42NiIsIm1jIjoiVVNEIn0seyJzeW1ib2wiOiJUUlgiLCJuYW1lIjoiVFJPTiIsIm5hbWVpZCI6InRyb24iLCJwcmljZV91c2QiOiIwLjMzMjAyNiIsInByaWNlX3VzZF9uIjoiMC4zMzIwMjU4MDgyMDMxOCIsInBlcmNlbnRfY2hhbmdlXzI0aCI6IjAuMjIiLCJwZXJjZW50X2NoYW5nZV8xaCI6IjAuMTQiLCJwZXJjZW50X2NoYW5nZV83ZCI6IjEuNjMiLCJtYXJrZXRfY2FwX3VzZCI6IjMxLjQzIEIiLCJ0MjRoX3ZvbHVtZV91c2QiOiIyMjkuOTMgTSIsInQyNGhfdm9sdW1lX25hdGl2ZSI6IjY5MjUxNTg2Ny42MCIsIm1jIjoiVVNEIn0seyJzeW1ib2wiOiJIWVBFIiwibmFtZSI6Ikh5cGVybGlxdWlkIiwibmFtZWlkIjoiaHlwZXJsaXF1aWQiLCJwcmljZV91c2QiOiI2MC4xNyIsInByaWNlX3VzZF9uIjoiNjAuMTcyNjg3NSIsInBlcmNlbnRfY2hhbmdlXzI0aCI6IjIuNTQiLCJwZXJjZW50X2NoYW5nZV8xaCI6Ii0wLjM3IiwicGVyY2VudF9jaGFuZ2VfN2QiOiItMC44MiIsIm1hcmtldF9jYXBfdXNkIjoiMjAuMDkgQiIsInQyNGhfdm9sdW1lX3VzZCI6IjE3NS4wNyBNIiwidDI0aF92b2x1bWVfbmF0aXZlIjoiMjkwOTQ2Ny4xMCIsIm1jIjoiVVNEIn0seyJzeW1ib2wiOiJTVEVUSCIsIm5hbWUiOiJTdGFrZWQgRXRoZXIiLCJuYW1laWQiOiJzdGFrZWQtZXRoZXIiLCJwcmljZV91c2QiOiIxLDk2MC45NSIsInByaWNlX3VzZF9uIjoiMTk2MC45NDY1Mjc0NjkzIiwicGVyY2VudF9jaGFuZ2VfMjRoIjoiNC40NCIsInBlcmNlbnRfY2hhbmdlXzFoIjoiMC42NiIsInBlcmNlbnRfY2hhbmdlXzdkIjoiNS4zNCIsIm1hcmtldF9jYXBfdXNkIjoiMTYuNzcgQiIsInQyNGhfdm9sdW1lX3VzZCI6IjYuMiBNIiwidDI0aF92b2x1bWVfbmF0aXZlIjoiMzE2MS4xMCIsIm1jIjoiVVNEIn1d"}},"time_used":85,"timings":{"blocked":-1,"dns":8,"connect":1,"send":0,"wait":61,"receive":0,"ssl":14},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/ethereum.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.037Z","timestamp":1785132868037,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/ethereum.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:45:27 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae21a7-2ac\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\ncf-bgj: imgq:85,h2pri\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=XJkkodUJ2%2BGWOfqBuVnIZO%2B%2FBLseNYcMyowXcIt76FX2VBk0Vz20TDZZBEYlB0zqZ%2FyuPluhXdTP0zZ1phMIwt56Vunnx1pOMd%2Fmj2kMhhtb27B53bVM%2BaP9KjMBICGvDg%3D%3D\"}]}\r\ncf-polished: ok, orig_size=684\r\npriority: u=4,i\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept, accept-encoding\r\nage: 196848\r\ncf-cache-status: HIT\r\ncf-ray: a21981094ecc5ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 344\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":344,"size_decoded":1468,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"b3462f1ce62bcb4bed287529714e25a4","sha1":"ed8e613a45c8f70459d68492faed173fbf303232","sha256":"069cc28b8b18fb9aabaa7fe92ff8e37abdb5d98f60b0e021a761ce71e5aeca6c","sha512":"79f1926493e47bd9a51e28fd2e3403f31d2a02b845609341a2f73f4e5d3326fcfe60b697ecb3bbf78477a5f1605bfb4e423f59230c7972e082914d1fd182944f","ssdeep":"","tlshash":"45e07d98e1b92570d9651a331b84c1a33ba3eeda60c7daf412f8bea557340373752142","first_seen":"2026-07-27T04:22:23.263476Z","last_seen":"2026-07-27T06:14:42.639541Z","times_seen":2,"resource_available":false,"data":"UklGRlABAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSHAAAAABX6CQkSQ2efeN4UC+WHxEBKI+7NSmANvatmWcRQ9iqUyqgrEKsVSmAzKamNLZa8+7NUT0X23bNow8pZczIO6WIQ8AZjOzDGjspwiuPy2pOYWTJzk99e3pH8/4eXaFMlTKIRqpi9SV4nL1Dfkh8TUAVlA4ILoAAABwBACdASoUABQAPkkgjESioiEUBVQoBIS0gGMgxXg3bQ7zEmOsl5etZdvuAAD+/nuK2ZFzPAPLffPLmRMvn/7sZPv1cYLeA+9y56jydovBlWhFd87yUxHczT6nqCMn9895Dh+cDpz8w+Tfh5B6lX83T8ZYX7ZdXPvd5PIHe6MqBIcasldzw1W/Q/be/nlBhP/6AcN/H9Gqm7AHo4tA71ZhqPb/af/Ho0/MR2v0U6BRqM2EHC+YkHsQAAA="}},"time_used":15,"timings":{"blocked":-1,"dns":3,"connect":2,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/usd-coin.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.045Z","timestamp":1785132868045,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/usd-coin.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, 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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:45:25 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae21a5-2ef\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\nx-content-type-options: nosniff\r\npriority: u=4,i\r\ncf-bgj: h2pri,imgq:85\r\ncf-polished: ok, orig_size=751\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=DtjyG4CIHNwZnkPk5DKrFaLnfaYeHMB%2FnJ0wYLI2ygBG1N85e1cFo6eOlpC09ZNsw0TdNTGPH2yhUNG3LAhIzBw7EZEbXgEfqH6SsCCl5UctoW9rf7ogP3UHRdkdvGlzfQ%3D%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept, accept-encoding\r\nage: 119244\r\ncf-cache-status: HIT\r\ncf-ray: a21981094ed15ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 584\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":584,"size_decoded":1698,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"001ee93ff098dcf0028302b6a3da9dad","sha1":"6e7822425d512a5e472e44048138a82f19f5ad3f","sha256":"3ee0ea104ac19bcc55c8f84fb69d50f9096e2b438b59bb4c33db8e611ed063d9","sha512":"fba2c3b8ed5e6fdf9305b6e243b80d4d0c368a002588b125103475fe978b3fd110eb0053c1147c8c13263c12bff9de34796fa62bab6cf8f14f552a8582ab108e","ssdeep":"","tlshash":"41f047594bf4c4f29854a0b581b00213239ba31b3464177155315095e51945ce72be9e","first_seen":"2026-07-27T04:22:23.333138Z","last_seen":"2026-07-27T06:14:42.641642Z","times_seen":2,"resource_available":false,"data":"UklGRkACAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSHwAAAABf6CojRQ4TXYXFPBCxmWEiAhDPIBDAg0U3NTa9jQPxQOMGGgSMIABLHQkRAFTrGTFA8keCf+UXqh/kRDR/wmA4Pi95jbAeZqmKQO6adeDx15PMkndURbeZM1LNnxlYjL6k4m3bLjJmlEWpjKXx14Phz0fuGwygOD0F4UNVlA4IJ4BAACwCQCdASoUABQAPkkejEQioaEUBqgoBIS2AE6ZQjgbwDhDNWe8H7M3qBkAOf/9AG8AegB5aPsMeUBCgFEJ8bj2D9Zg7rHWT8pcmANTldxnquHhTLPksAD7x1VOOCAMUOKTQ0qCDl8NxBQ6vFit298f4OFUzDsyKt034usQMzuITzNW89/hRI7H6/1WYXv9YXvnDdlJVJmTjH+8twM+H0kwwTv+F16WM/1cwj6/B18TupA/NuP/E/j69yJU3XTUnc3Y8kQ9iYirxYP/q74gqJ9Gczfvu/rP+P//y4+qfMowgqOPcuUsDKdOuGrM3cQCyTrGFz/4vcRZEKEzIHIVFG7QoACCYkO1TclT1ukq05YYoUa6FZGpQ2mCbl10bn5FbBgsAAH6s03gqa8PL+9E+BYygoCOHP8yKXyswhhv6Ci5Fzyb8Jj1aUg995zO+8mMdEYc4qx5l9g4wTTgvpmSngbkPJYdS6uf+MyoGtrQvviGSn75j0IhLZhKecWgCiPn4s8d+6kEB7qFxLtCsJsLwZHZlRofx4j5QU7Yi6mDsAA="}},"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":"https","addr":"farosonglobaltrade.ltd/assets/css/lightbox.css","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.047Z","timestamp":1785132838047,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/css/lightbox.css HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 03 Jan 2022 23:40:18 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 923\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3828,"size_decoded":1231,"mime_type":"text/css","magic":"ASCII text, with CRLF line terminators","md5":"51419fb3861fbbf97e5189a61249a2fb","sha1":"3ae444e736cbefd17050f96963d605ace1335dd0","sha256":"9b993b7e27e8df8619e7562a5d0e83662dc9ae25d828c8fe9cde3a057078fb2a","sha512":"182373b3158949e9ec4df9e7cc6e321270633b4dbe3f59337611cd9f87feabce7309f9e7c6f675c523b812c1eeb73acb04c18b98f42d2d43c6b841905fcce03d","ssdeep":"","tlshash":"6981ed2ce7526106e533d6a4bbd4c7656a2d90d37b1306efbad46062f3c32281032fe9","first_seen":"2023-04-07T23:43:50Z","last_seen":"2026-07-27T06:14:42.6438Z","times_seen":245,"resource_available":false,"data":"aHRtbC5sYi1kaXNhYmxlLXNjcm9sbGluZyB7DQogIG92ZXJmbG93OiBoaWRkZW47DQogIC8qIFBvc2l0aW9uIGZpeGVkIHJlcXVpcmVkIGZvciBpT1MuIEp1c3QgcHV0dGluZyBvdmVyZmxvdzogaGlkZGVuOyBvbiB0aGUgYm9keSBpcyBub3QgZW5vdWdoLiAqLw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGhlaWdodDogMTAwdmg7DQogIHdpZHRoOiAxMDB2dzsNCn0NCg0KLmxpZ2h0Ym94T3ZlcmxheSB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgdG9wOiAwOw0KICBsZWZ0OiAwOw0KICB6LWluZGV4OiA5OTk5Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsNCiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT05NSk7DQogIG9wYWNpdHk6IDAuOTU7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCi5saWdodGJveCB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgbGVmdDogMDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDAwOw0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIGxpbmUtaGVpZ2h0OiAwOw0KICBmb250LXdlaWdodDogbm9ybWFsOw0KfQ0KDQoubGlnaHRib3ggLmxiLWltYWdlIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogYXV0bzsNCiAgbWF4LXdpZHRoOiBpbmhlcml0Ow0KICBtYXgtaGVpZ2h0OiBub25lOw0KICBib3JkZXItcmFkaXVzOiA1cHg7DQp9DQoNCi5saWdodGJveCBhIGltZyB7DQogIGJvcmRlcjogbm9uZTsNCn0NCg0KLmxiLW91dGVyQ29udGFpbmVyIHsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAqem9vbTogMTsNCiAgd2lkdGg6IDI1MHB4Ow0KICBoZWlnaHQ6IDI1MHB4Ow0KICBtYXJnaW46IDAgYXV0bzsNCiAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsNCn0NCg0KLmxiLW91dGVyQ29udGFpbmVyOmFmdGVyIHsNCiAgY29udGVudDogIiI7DQogIGRpc3BsYXk6IHRhYmxlOw0KICBjbGVhcjogYm90aDsNCn0NCg0KLmxiLWxvYWRlciB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgdG9wOiA0MyU7DQogIGxlZnQ6IDA7DQogIGhlaWdodDogMjUlOw0KICB3aWR0aDogMTAwJTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBsaW5lLWhlaWdodDogMDsNCn0NCg0KLmxiLWNhbmNlbCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogMzJweDsNCiAgaGVpZ2h0OiAzMnB4Ow0KICBtYXJnaW46IDAgYXV0bzsNCiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9sb2FkaW5nLmdpZikgbm8tcmVwZWF0Ow0KfQ0KDQoubGItbmF2IHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICB0b3A6IDA7DQogIGxlZnQ6IDA7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwOw0KfQ0KDQoubGItY29udGFpbmVyID4gLm5hdiB7DQogIGxlZnQ6IDA7DQp9DQoNCi5sYi1uYXYgYSB7DQogIG91dGxpbmU6IG5vbmU7DQogIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFQQUFBUC8vL3dBQUFDSDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUNSQUVBT3c9PScpOw0KfQ0KDQoubGItcHJldiwgLmxiLW5leHQgew0KICBoZWlnaHQ6IDEwMCU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZGlzcGxheTogYmxvY2s7DQp9DQoNCi5sYi1uYXYgYS5sYi1wcmV2IHsNCiAgd2lkdGg6IDM0JTsNCiAgbGVmdDogMDsNCiAgZmxvYXQ6IGxlZnQ7DQogIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvcHJldi5wbmcpIGxlZnQgNDglIG5vLXJlcGVhdDsNCiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKTsNCiAgb3BhY2l0eTogMDsNCiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7DQogIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzOw0KICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7DQogIHRyYW5zaXRpb246IG9wYWNpdHkgMC42czsNCn0NCg0KLmxiLW5hdiBhLmxiLXByZXY6aG92ZXIgew0KICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7DQogIG9wYWNpdHk6IDE7DQp9DQoNCi5sYi1uYXYgYS5sYi1uZXh0IHsNCiAgd2lkdGg6IDY0JTsNCiAgcmlnaHQ6IDA7DQogIGZsb2F0OiByaWdodDsNCiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9uZXh0LnBuZykgcmlnaHQgNDglIG5vLXJlcGVhdDsNCiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKTsNCiAgb3BhY2l0eTogMDsNCiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7DQogIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzOw0KICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7DQogIHRyYW5zaXRpb246IG9wYWNpdHkgMC42czsNCn0NCg0KLmxiLW5hdiBhLmxiLW5leHQ6aG92ZXIgew0KICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7DQogIG9wYWNpdHk6IDE7DQp9DQoNCi5sYi1kYXRhQ29udGFpbmVyIHsNCiAgbWFyZ2luOiAwIGF1dG87DQogIHBhZGRpbmctdG9wOiA1cHg7DQogICp6b29tOiAxOw0KICB3aWR0aDogMTAwJTsNCiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4Ow0KICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4Ow0KfQ0KDQoubGItZGF0YUNvbnRhaW5lcjphZnRlciB7DQogIGNvbnRlbnQ6ICIiOw0KICBkaXNwbGF5OiB0YWJsZTsNCiAgY2xlYXI6IGJvdGg7DQp9DQoNCi5sYi1kYXRhIHsNCiAgcGFkZGluZzogMCA0cHg7DQogIGNvbG9yOiAjY2NjOw0KfQ0KDQoubGItZGF0YSAubGItZGV0YWlscyB7DQogIG1hcmdpbi10b3A6IDEwcHg7DQogIHdpZHRoOiA4NSU7DQogIGZsb2F0OiBsZWZ0Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBsaW5lLWhlaWdodDogMS4xZW07DQp9DQoNCi5sYi1kYXRhIC5sYi1jYXB0aW9uIHsNCiAgZm9udC1zaXplOiAxM3B4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgbGluZS1oZWlnaHQ6IDFlbTsNCn0NCg0KLmxiLWRhdGEgLmxiLWNhcHRpb24gYSB7DQogIGNvbG9yOiAjNGFlOw0KfQ0KDQoubGItZGF0YSAubGItbnVtYmVyIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNsZWFyOiBsZWZ0Ow0KICBwYWRkaW5nLWJvdHRvbTogMWVtOw0KICBmb250LXNpemU6IDEycHg7DQogIGNvbG9yOiAjOTk5OTk5Ow0KfQ0KDQoubGItZGF0YSAubGItY2xvc2Ugew0KICBkaXNwbGF5OiBibG9jazsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICB3aWR0aDogMzBweDsNCiAgaGVpZ2h0OiAzMHB4Ow0KICBtYXJnaW4tdG9wOiAxNXB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2Nsb3NlLnBuZykgdG9wIHJpZ2h0IG5vLXJlcGVhdDsNCiAgdGV4dC1hbGlnbjogcmlnaHQ7DQogIG91dGxpbmU6IG5vbmU7DQogIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9NzApOw0KICBvcGFjaXR5OiAwLjc7DQogIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOw0KICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsNCiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOw0KICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7DQp9DQoNCi5sYi1kYXRhIC5sYi1jbG9zZTpob3ZlciB7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOw0KICBvcGFjaXR5OiAxOw0KfQ0K"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/1_141_0/static/js/render.326fdf51a69c63448a75.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.352Z","timestamp":1785132838352,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /1_141_0/static/js/render.326fdf51a69c63448a75.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Wed, 15 Feb 2023 20:03:22 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 7646\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":22303,"size_decoded":7883,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (22303), with no line terminators","md5":"c202a949462d9335b4c98df71dc082aa","sha1":"acd23d8201202d3093dac380106cb9378dc44c75","sha256":"007651dbf596dc66b447b1512e5956977e667d3c801e3032782df7d8867936c4","sha512":"8be56199fd746d13b9c02fd6057b0266fa33c1342a69fd4d3171bf3c292053bd80dedefe42abcc1756c2f2e497a7340d662105f5d6c7c3f202fe11dd221eb617","ssdeep":"192:ML1f6EF4ObB2QGcND08tsVXHkD1E2266Y4KHGTYu26H3hpbKICkyXHQsrK/pMpW6:s8ObjZyuIs1EiHuYiX/uI9yXHPlW8xj","tlshash":"eda25389b689b5a512e770b8017f630fb2b7e955749ac5c1c266e5e0ac7c84f402bf3c","first_seen":"2025-08-12T04:19:47.992614Z","last_seen":"2026-07-27T06:14:42.646061Z","times_seen":3,"resource_available":true,"data":"IWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIG4ocil7aWYoZVtyXSlyZXR1cm4gZVtyXS5leHBvcnRzO3ZhciBvPWVbcl09e2k6cixsOiExLGV4cG9ydHM6e319O3JldHVybiB0W3JdLmNhbGwoby5leHBvcnRzLG8sby5leHBvcnRzLG4pLG8ubD0hMCxvLmV4cG9ydHN9bi5tPXQsbi5jPWUsbi5kPWZ1bmN0aW9uKHQsZSxyKXtuLm8odCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxnZXQ6cn0pfSxuLnI9ZnVuY3Rpb24odCl7InVuZGVmaW5lZCIhPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG4udD1mdW5jdGlvbih0LGUpe2lmKDEmZSYmKHQ9bih0KSksOCZlKXJldHVybiB0O2lmKDQmZSYmIm9iamVjdCI9PT10eXBlb2YgdCYmdCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciByPU9iamVjdC5jcmVhdGUobnVsbCk7aWYobi5yKHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSksMiZlJiYic3RyaW5nIiE9dHlwZW9mIHQpZm9yKHZhciBvIGluIHQpbi5kKHIsbyxmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0uYmluZChudWxsLG8pKTtyZXR1cm4gcn0sbi5uPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiB0LmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIHR9O3JldHVybiBuLmQoZSwiYSIsZSksZX0sbi5vPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSxuLnA9Imh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIixuLmg9IjMyNmZkZjUxYTY5YzYzNDQ4YTc1IixuLmNuPSJyZW5kZXIiLG4obi5zPTIyMSl9KFssLCwsLCwsLGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuTWF0aD09TWF0aCYmdH07dC5leHBvcnRzPW4oIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8bigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8bigib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxuKCJvYmplY3QiPT10eXBlb2YgZSYmZSl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbih0LGUsbil7dmFyIHI9big4KSxvPW4oNDcpLmYsaT1uKDI0KSxjPW4oMzApLHU9big2MCksYT1uKDEzMiksZj1uKDc3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbixzLGwsZCxwLHY9dC50YXJnZXQsaD10Lmdsb2JhbCx5PXQuc3RhdDtpZihuPWg/cjp5P3Jbdl18fHUodix7fSk6KHJbdl18fHt9KS5wcm90b3R5cGUpZm9yKHMgaW4gZSl7aWYoZD1lW3NdLGw9dC5ub1RhcmdldEdldD8ocD1vKG4scykpJiZwLnZhbHVlOm5bc10sIWYoaD9zOnYrKHk/Ii4iOiIjIikrcyx0LmZvcmNlZCkmJnZvaWQgMCE9PWwpe2lmKHR5cGVvZiBkPT09dHlwZW9mIGwpY29udGludWU7YShkLGwpfSh0LnNoYW18fGwmJmwuc2hhbSkmJmkoZCwic2hhbSIsITApLGMobixzLGQsdCl9fX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKGUpe3JldHVybiEwfX19LCxmdW5jdGlvbih0LGUsbil7dmFyIHI9big4KSxvPW4oOTUpLGk9bigxOCksYz1uKDk2KSx1PW4oMTAxKSxhPW4oMTM2KSxmPW8oIndrcyIpLHM9ci5TeW1ib2wsbD1hP3M6cyYmcy53aXRob3V0U2V0dGVyfHxjO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaShmLHQpfHwodSYmaShzLHQpP2ZbdF09c1t0XTpmW3RdPWwoIlN5bWJvbC4iK3QpKSxmW3RdfX0sZnVuY3Rpb24odCxlKXt2YXIgbjtuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCk7dHJ5e249bnx8bmV3IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9Y2F0Y2gocil7Im9iamVjdCI9PT10eXBlb2Ygd2luZG93JiYobj13aW5kb3cpfXQuZXhwb3J0cz1ufSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigxNSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFyKHQpKXRocm93IFR5cGVFcnJvcihTdHJpbmcodCkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIHR9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiB0P251bGwhPT10OiJmdW5jdGlvbiI9PT10eXBlb2YgdH19LCwsZnVuY3Rpb24odCxlKXt2YXIgbj17fS5oYXNPd25Qcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5jYWxsKHQsZSl9fSwsZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oMTApO3QuZXhwb3J0cz0hcigoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSwsZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodm9pZCAwPT10KXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIit0KTtyZXR1cm4gdH19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDQxKSxvPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP28ocih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oMjApLG89bigyNiksaT1uKDQ4KTt0LmV4cG9ydHM9cj9mdW5jdGlvbih0LGUsbil7cmV0dXJuIG8uZih0LGUsaSgxLG4pKX06ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW4sdH19LCxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigyMCksbz1uKDkyKSxpPW4oMTQpLGM9big0OSksdT1PYmplY3QuZGVmaW5lUHJvcGVydHk7ZS5mPXI/dTpmdW5jdGlvbih0LGUsbil7aWYoaSh0KSxlPWMoZSwhMCksaShuKSxvKXRyeXtyZXR1cm4gdSh0LGUsbil9Y2F0Y2gocil7fWlmKCJnZXQiaW4gbnx8InNldCJpbiBuKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gbiYmKHRbZV09bi52YWx1ZSksdH19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9fSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIua2V5LHIpfX10LmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlJiZuKHQucHJvdG90eXBlLGUpLHImJm4odCxyKSx0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oOSksbz1uKDgpLGk9big2NyksYz1bXS5zbGljZSx1PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixvPXI/Yy5jYWxsKGFyZ3VtZW50cywyKTp2b2lkIDA7cmV0dXJuIHQocj9mdW5jdGlvbigpeygiZnVuY3Rpb24iPT10eXBlb2YgZT9lOkZ1bmN0aW9uKGUpKS5hcHBseSh0aGlzLG8pfTplLG4pfX07cih7Z2xvYmFsOiEwLGJpbmQ6ITAsZm9yY2VkOi9NU0lFIC5cLi8udGVzdChpKX0se3NldFRpbWVvdXQ6dShvLnNldFRpbWVvdXQpLHNldEludGVydmFsOnUoby5zZXRJbnRlcnZhbCl9KX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oOCksbz1uKDI0KSxpPW4oMTgpLGM9big2MCksdT1uKDc1KSxhPW4oNjIpLGY9YS5nZXQscz1hLmVuZm9yY2UsbD1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KHQuZXhwb3J0cz1mdW5jdGlvbih0LGUsbix1KXt2YXIgYSxmPSEhdSYmISF1LnVuc2FmZSxkPSEhdSYmISF1LmVudW1lcmFibGUscD0hIXUmJiEhdS5ub1RhcmdldEdldDsiZnVuY3Rpb24iPT10eXBlb2YgbiYmKCJzdHJpbmciIT10eXBlb2YgZXx8aShuLCJuYW1lIil8fG8obiwibmFtZSIsZSksKGE9cyhuKSkuc291cmNlfHwoYS5zb3VyY2U9bC5qb2luKCJzdHJpbmciPT10eXBlb2YgZT9lOiIiKSkpLHQhPT1yPyhmPyFwJiZ0W2VdJiYoZD0hMCk6ZGVsZXRlIHRbZV0sZD90W2VdPW46byh0LGUsbikpOmQ/dFtlXT1uOmMoZSxuKX0pKEZ1bmN0aW9uLnByb3RvdHlwZSwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzJiZmKHRoaXMpLnNvdXJjZXx8dSh0aGlzKX0pKX0sLGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9big5KSxvPW4oNTEpO3Ioe3RhcmdldDoiUmVnRXhwIixwcm90bzohMCxmb3JjZWQ6Ly4vLmV4ZWMhPT1vfSx7ZXhlYzpvfSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDIyKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdChyKHQpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDc0KSxvPW4oMjIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcihvKHQpKX19LGZ1bmN0aW9uKHQsZSl7dmFyIG49e30udG9TdHJpbmc7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuLmNhbGwodCkuc2xpY2UoOCwtMSl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOSksbz1uKDEwKSxpPW4oNjQpLGM9bigxNSksdT1uKDMzKSxhPW4oMjMpLGY9big4OCkscz1uKDEwMCksbD1uKDY1KSxkPW4oMTIpLHA9big2Niksdj1kKCJpc0NvbmNhdFNwcmVhZGFibGUiKSxoPXA+PTUxfHwhbygoZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdFt2XT0hMSx0LmNvbmNhdCgpWzBdIT09dH0pKSx5PWwoImNvbmNhdCIpLGc9ZnVuY3Rpb24odCl7aWYoIWModCkpcmV0dXJuITE7dmFyIGU9dFt2XTtyZXR1cm4gdm9pZCAwIT09ZT8hIWU6aSh0KX07cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFofHwheX0se2NvbmNhdDpmdW5jdGlvbih0KXt2YXIgZSxuLHIsbyxpLGM9dSh0aGlzKSxsPXMoYywwKSxkPTA7Zm9yKGU9LTEscj1hcmd1bWVudHMubGVuZ3RoO2U8cjtlKyspaWYoZyhpPS0xPT09ZT9jOmFyZ3VtZW50c1tlXSkpe2lmKGQrKG89YShpLmxlbmd0aCkpPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgVHlwZUVycm9yKCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtmb3Iobj0wO248bztuKyssZCsrKW4gaW4gaSYmZihsLGQsaVtuXSl9ZWxzZXtpZihkPj05MDA3MTk5MjU0NzQwOTkxKXRocm93IFR5cGVFcnJvcigiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7ZihsLGQrKyxpKX1yZXR1cm4gbC5sZW5ndGg9ZCxsfX0pfSwsLCwsZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLmNlaWwscj1NYXRoLmZsb29yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaXNOYU4odD0rdCk/MDoodD4wP3I6bikodCl9fSwsLCwsLGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDIwKSxvPW4oMTEyKSxpPW4oNDgpLGM9bigzNCksdT1uKDQ5KSxhPW4oMTgpLGY9big5Mikscz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1yP3M6ZnVuY3Rpb24odCxlKXtpZih0PWModCksZT11KGUsITApLGYpdHJ5e3JldHVybiBzKHQsZSl9Y2F0Y2gobil7fWlmKGEodCxlKSlyZXR1cm4gaSghby5mLmNhbGwodCxlKSx0W2VdKX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oMTUpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCFyKHQpKXJldHVybiB0O3ZhciBuLG87aWYoZSYmImZ1bmN0aW9uIj09dHlwZW9mKG49dC50b1N0cmluZykmJiFyKG89bi5jYWxsKHQpKSlyZXR1cm4gbztpZigiZnVuY3Rpb24iPT10eXBlb2Yobj10LnZhbHVlT2YpJiYhcihvPW4uY2FsbCh0KSkpcmV0dXJuIG87aWYoIWUmJiJmdW5jdGlvbiI9PXR5cGVvZihuPXQudG9TdHJpbmcpJiYhcihvPW4uY2FsbCh0KSkpcmV0dXJuIG87dGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDEzNCksbz1uKDgpLGk9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp2b2lkIDB9O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/aShyW3RdKXx8aShvW3RdKTpyW3RdJiZyW3RdW2VdfHxvW3RdJiZvW3RdW2VdfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDEwMiksbz1uKDExNCksaT1SZWdFeHAucHJvdG90eXBlLmV4ZWMsYz1TdHJpbmcucHJvdG90eXBlLnJlcGxhY2UsdT1pLGE9ZnVuY3Rpb24oKXt2YXIgdD0vYS8sZT0vYiovZztyZXR1cm4gaS5jYWxsKHQsImEiKSxpLmNhbGwoZSwiYSIpLDAhPT10Lmxhc3RJbmRleHx8MCE9PWUubGFzdEluZGV4fSgpLGY9by5VTlNVUFBPUlRFRF9ZfHxvLkJST0tFTl9DQVJFVCxzPXZvaWQgMCE9PS8oKT8/Ly5leGVjKCIiKVsxXTsoYXx8c3x8ZikmJih1PWZ1bmN0aW9uKHQpe3ZhciBlLG4sbyx1LGw9dGhpcyxkPWYmJmwuc3RpY2t5LHA9ci5jYWxsKGwpLHY9bC5zb3VyY2UsaD0wLHk9dDtyZXR1cm4gZCYmKC0xPT09KHA9cC5yZXBsYWNlKCJ5IiwiIikpLmluZGV4T2YoImciKSYmKHArPSJnIikseT1TdHJpbmcodCkuc2xpY2UobC5sYXN0SW5kZXgpLGwubGFzdEluZGV4PjAmJighbC5tdWx0aWxpbmV8fGwubXVsdGlsaW5lJiYiXG4iIT09dFtsLmxhc3RJbmRleC0xXSkmJih2PSIoPzogIit2KyIpIix5PSIgIit5LGgrKyksbj1uZXcgUmVnRXhwKCJeKD86Iit2KyIpIixwKSkscyYmKG49bmV3IFJlZ0V4cCgiXiIrdisiJCg/IVxccykiLHApKSxhJiYoZT1sLmxhc3RJbmRleCksbz1pLmNhbGwoZD9uOmwseSksZD9vPyhvLmlucHV0PW8uaW5wdXQuc2xpY2UoaCksb1swXT1vWzBdLnNsaWNlKGgpLG8uaW5kZXg9bC5sYXN0SW5kZXgsbC5sYXN0SW5kZXgrPW9bMF0ubGVuZ3RoKTpsLmxhc3RJbmRleD0wOmEmJm8mJihsLmxhc3RJbmRleD1sLmdsb2JhbD9vLmluZGV4K29bMF0ubGVuZ3RoOmUpLHMmJm8mJm8ubGVuZ3RoPjEmJmMuY2FsbChvWzBdLG4sKGZ1bmN0aW9uKCl7Zm9yKHU9MTt1PGFyZ3VtZW50cy5sZW5ndGgtMjt1Kyspdm9pZCAwPT09YXJndW1lbnRzW3VdJiYob1t1XT12b2lkIDApfSkpLG99KSx0LmV4cG9ydHM9dX0sLCwsLCwsLCxmdW5jdGlvbih0LGUsbil7dmFyIHI9big4KSxvPW4oMjQpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3RyeXtvKHIsdCxlKX1jYXRjaChuKXtyW3RdPWV9cmV0dXJuIGV9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9big4KSxvPW4oNjApLGk9clsiX19jb3JlLWpzX3NoYXJlZF9fIl18fG8oIl9fY29yZS1qc19zaGFyZWRfXyIse30pO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpLGM9bigxMzEpLHU9big4KSxhPW4oMTUpLGY9bigyNCkscz1uKDE4KSxsPW4oNjEpLGQ9big5NCkscD1uKDc2KSx2PXUuV2Vha01hcDtpZihjKXt2YXIgaD1sLnN0YXRlfHwobC5zdGF0ZT1uZXcgdikseT1oLmdldCxnPWguaGFzLHg9aC5zZXQ7cj1mdW5jdGlvbih0LGUpe3JldHVybiBlLmZhY2FkZT10LHguY2FsbChoLHQsZSksZX0sbz1mdW5jdGlvbih0KXtyZXR1cm4geS5jYWxsKGgsdCl8fHt9fSxpPWZ1bmN0aW9uKHQpe3JldHVybiBnLmNhbGwoaCx0KX19ZWxzZXt2YXIgbT1kKCJzdGF0ZSIpO3BbbV09ITAscj1mdW5jdGlvbih0LGUpe3JldHVybiBlLmZhY2FkZT10LGYodCxtLGUpLGV9LG89ZnVuY3Rpb24odCl7cmV0dXJuIHModCxtKT90W21dOnt9fSxpPWZ1bmN0aW9uKHQpe3JldHVybiBzKHQsbSl9fXQuZXhwb3J0cz17c2V0OnIsZ2V0Om8saGFzOmksZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gaSh0KT9vKHQpOnIodCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG47aWYoIWEoZSl8fChuPW8oZSkpLnR5cGUhPT10KXRocm93IFR5cGVFcnJvcigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3QrIiByZXF1aXJlZCIpO3JldHVybiBufX19fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz0hMX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oMzUpO3QuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iQXJyYXkiPT1yKHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oMTApLG89bigxMiksaT1uKDY2KSxjPW8oInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGk+PTUxfHwhcigoZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4oZS5jb25zdHJ1Y3Rvcj17fSlbY109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09ZVt0XShCb29sZWFuKS5mb299KSl9fSxmdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpPW4oOCksYz1uKDY3KSx1PWkucHJvY2VzcyxhPXUmJnUudmVyc2lvbnMsZj1hJiZhLnY4O2Y/bz0ocj1mLnNwbGl0KCIuIikpWzBdK3JbMV06YyYmKCEocj1jLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8clsxXT49NzQpJiYocj1jLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYobz1yWzFdKSx0LmV4cG9ydHM9byYmK299LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDUwKTt0LmV4cG9ydHM9cigibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIifSwsLCwsLCxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigxMCksbz1uKDM1KSxpPSIiLnNwbGl0O3QuZXhwb3J0cz1yKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09byh0KT9pLmNhbGwodCwiIik6T2JqZWN0KHQpfTpPYmplY3R9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDYxKSxvPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiByLmluc3BlY3RTb3VyY2UmJihyLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY2FsbCh0KX0pLHQuZXhwb3J0cz1yLmluc3BlY3RTb3VyY2V9LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPXt9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigxMCksbz0vI3xcLnByb3RvdHlwZVwuLyxpPWZ1bmN0aW9uKHQsZSl7dmFyIG49dVtjKHQpXTtyZXR1cm4gbj09Znx8biE9YSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlP3IoZSk6ISFlKX0sYz1pLm5vcm1hbGl6ZT1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpLnJlcGxhY2UobywiLiIpLnRvTG93ZXJDYXNlKCl9LHU9aS5kYXRhPXt9LGE9aS5OQVRJVkU9Ik4iLGY9aS5QT0xZRklMTD0iUCI7dC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigzMik7dmFyIHI9bigzMCksbz1uKDEwKSxpPW4oMTIpLGM9big1MSksdT1uKDI0KSxhPWkoInNwZWNpZXMiKSxmPSFvKChmdW5jdGlvbigpe3ZhciB0PS8uLztyZXR1cm4gdC5leGVjPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQuZ3JvdXBzPXthOiI3In0sdH0sIjciIT09IiIucmVwbGFjZSh0LCIkPGE+Iil9KSkscz0iJDAiPT09ImEiLnJlcGxhY2UoLy4vLCIkMCIpLGw9aSgicmVwbGFjZSIpLGQ9ISEvLi9bbF0mJiIiPT09Ly4vW2xdKCJhIiwiJDAiKSxwPSFvKChmdW5jdGlvbigpe3ZhciB0PS8oPzopLyxlPXQuZXhlYzt0LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBuPSJhYiIuc3BsaXQodCk7cmV0dXJuIDIhPT1uLmxlbmd0aHx8ImEiIT09blswXXx8ImIiIT09blsxXX0pKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sbCl7dmFyIHY9aSh0KSxoPSFvKChmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlW3ZdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW3RdKGUpfSkpLHk9aCYmIW8oKGZ1bmN0aW9uKCl7dmFyIGU9ITEsbj0vYS87cmV0dXJuInNwbGl0Ij09PXQmJigobj17fSkuY29uc3RydWN0b3I9e30sbi5jb25zdHJ1Y3RvclthXT1mdW5jdGlvbigpe3JldHVybiBufSxuLmZsYWdzPSIiLG5bdl09Ly4vW3ZdKSxuLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxudWxsfSxuW3ZdKCIiKSwhZX0pKTtpZighaHx8IXl8fCJyZXBsYWNlIj09PXQmJighZnx8IXN8fGQpfHwic3BsaXQiPT09dCYmIXApe3ZhciBnPS8uL1t2XSx4PW4odiwiIlt0XSwoZnVuY3Rpb24odCxlLG4scixvKXtyZXR1cm4gZS5leGVjPT09Yz9oJiYhbz97ZG9uZTohMCx2YWx1ZTpnLmNhbGwoZSxuLHIpfTp7ZG9uZTohMCx2YWx1ZTp0LmNhbGwobixlLHIpfTp7ZG9uZTohMX19KSx7UkVQTEFDRV9LRUVQU18kMDpzLFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFOmR9KSxtPXhbMF0sRT14WzFdO3IoU3RyaW5nLnByb3RvdHlwZSx0LG0pLHIoUmVnRXhwLnByb3RvdHlwZSx2LDI9PWU/ZnVuY3Rpb24odCxlKXtyZXR1cm4gRS5jYWxsKHQsdGhpcyxlKX06ZnVuY3Rpb24odCl7cmV0dXJuIEUuY2FsbCh0LHRoaXMpfSl9bCYmdShSZWdFeHAucHJvdG90eXBlW3ZdLCJzaGFtIiwhMCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigzNSksbz1uKDUxKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmV4ZWM7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBuKXt2YXIgaT1uLmNhbGwodCxlKTtpZigib2JqZWN0IiE9PXR5cGVvZiBpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIGl9aWYoIlJlZ0V4cCIhPT1yKHQpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBvLmNhbGwodCxlKX19LCwsLCwsLCxmdW5jdGlvbih0LGUsbil7dmFyIHI9big0MSksbz1NYXRoLm1heCxpPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXIodCk7cmV0dXJuIG48MD9vKG4rZSwwKTppKG4sZSl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNDkpLG89bigyNiksaT1uKDQ4KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBjPXIoZSk7YyBpbiB0P28uZih0LGMsaSgwLG4pKTp0W2NdPW59fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNzgpLG89bigxNCksaT1uKDIzKSxjPW4oNDEpLHU9bigyMiksYT1uKDEwMyksZj1uKDEzNykscz1uKDc5KSxsPU1hdGgubWF4LGQ9TWF0aC5taW47cigicmVwbGFjZSIsMiwoZnVuY3Rpb24odCxlLG4scil7dmFyIHA9ci5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSx2PXIuUkVQTEFDRV9LRUVQU18kMCxoPXA/IiQiOiIkMCI7cmV0dXJuW2Z1bmN0aW9uKG4scil7dmFyIG89dSh0aGlzKSxpPXZvaWQgMD09bj92b2lkIDA6blt0XTtyZXR1cm4gdm9pZCAwIT09aT9pLmNhbGwobixvLHIpOmUuY2FsbChTdHJpbmcobyksbixyKX0sZnVuY3Rpb24odCxyKXtpZighcCYmdnx8InN0cmluZyI9PT10eXBlb2YgciYmLTE9PT1yLmluZGV4T2YoaCkpe3ZhciB1PW4oZSx0LHRoaXMscik7aWYodS5kb25lKXJldHVybiB1LnZhbHVlfXZhciB5PW8odCksZz1TdHJpbmcodGhpcykseD0iZnVuY3Rpb24iPT09dHlwZW9mIHI7eHx8KHI9U3RyaW5nKHIpKTt2YXIgbT15Lmdsb2JhbDtpZihtKXt2YXIgRT15LnVuaWNvZGU7eS5sYXN0SW5kZXg9MH1mb3IodmFyIHc9W107Oyl7dmFyIF89cyh5LGcpO2lmKG51bGw9PT1fKWJyZWFrO2lmKHcucHVzaChfKSwhbSlicmVhazsiIj09PVN0cmluZyhfWzBdKSYmKHkubGFzdEluZGV4PWEoZyxpKHkubGFzdEluZGV4KSxFKSl9Zm9yKHZhciBiLFM9IiIsTz0wLFQ9MDtUPHcubGVuZ3RoO1QrKyl7Xz13W1RdO2Zvcih2YXIgUD1TdHJpbmcoX1swXSksaz1sKGQoYyhfLmluZGV4KSxnLmxlbmd0aCksMCksST1bXSxDPTE7QzxfLmxlbmd0aDtDKyspSS5wdXNoKHZvaWQgMD09PShiPV9bQ10pP2I6U3RyaW5nKGIpKTt2YXIgaj1fLmdyb3VwcztpZih4KXt2YXIgUj1bUF0uY29uY2F0KEksayxnKTt2b2lkIDAhPT1qJiZSLnB1c2goaik7dmFyIEE9U3RyaW5nKHIuYXBwbHkodm9pZCAwLFIpKX1lbHNlIEE9ZihQLGcsayxJLGoscik7az49TyYmKFMrPWcuc2xpY2UoTyxrKStBLE89aytQLmxlbmd0aCl9cmV0dXJuIFMrZy5zbGljZShPKX1dfSkpfSwsLGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDIwKSxvPW4oMTApLGk9big5Myk7dC5leHBvcnRzPSFyJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGkoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oOCksbz1uKDE1KSxpPXIuZG9jdW1lbnQsYz1vKGkpJiZvKGkuY3JlYXRlRWxlbWVudCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBjP2kuY3JlYXRlRWxlbWVudCh0KTp7fX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDk1KSxvPW4oOTYpLGk9cigia2V5cyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaVt0XXx8KGlbdF09byh0KSl9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9big2Myksbz1uKDYxKTsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG9bdF18fChvW3RdPXZvaWQgMCE9PWU/ZTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjguMyIsbW9kZTpyPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6Ilx4YTkgMjAyMSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSJ9KX0sZnVuY3Rpb24odCxlKXt2YXIgbj0wLHI9TWF0aC5yYW5kb20oKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIlN5bWJvbCgiK1N0cmluZyh2b2lkIDA9PT10PyIiOnQpKyIpXyIrKCsrbityKS50b1N0cmluZygzNil9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigxMTMpLG89big5OSkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiByKHQsbyl9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigzNCksbz1uKDIzKSxpPW4oODcpLGM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixjKXt2YXIgdSxhPXIoZSksZj1vKGEubGVuZ3RoKSxzPWkoYyxmKTtpZih0JiZuIT1uKXtmb3IoO2Y+czspaWYoKHU9YVtzKytdKSE9dSlyZXR1cm4hMH1lbHNlIGZvcig7Zj5zO3MrKylpZigodHx8cyBpbiBhKSYmYVtzXT09PW4pcmV0dXJuIHR8fHN8fDA7cmV0dXJuIXQmJi0xfX07dC5leHBvcnRzPXtpbmNsdWRlczpjKCEwKSxpbmRleE9mOmMoITEpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oMTUpLG89big2NCksaT1uKDEyKSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBvKHQpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKG49dC5jb25zdHJ1Y3Rvcil8fG4hPT1BcnJheSYmIW8obi5wcm90b3R5cGUpP3IobikmJm51bGw9PT0obj1uW2ldKSYmKG49dm9pZCAwKTpuPXZvaWQgMCksbmV3KHZvaWQgMD09PW4/QXJyYXk6bikoMD09PWU/MDplKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDEwKTt0LmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhcigoZnVuY3Rpb24oKXtyZXR1cm4hU3RyaW5nKFN5bWJvbCgpKX0pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE0KTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1yKHRoaXMpLGU9IiI7cmV0dXJuIHQuZ2xvYmFsJiYoZSs9ImciKSx0Lmlnbm9yZUNhc2UmJihlKz0iaSIpLHQubXVsdGlsaW5lJiYoZSs9Im0iKSx0LmRvdEFsbCYmKGUrPSJzIiksdC51bmljb2RlJiYoZSs9InUiKSx0LnN0aWNreSYmKGUrPSJ5IiksZX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMTUpLmNoYXJBdDt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlKyhuP3IodCxlKS5sZW5ndGg6MSl9fSwsLCwsLCwsLGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9e30ucHJvcGVydHlJc0VudW1lcmFibGUsbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGk9byYmIXIuY2FsbCh7MToyfSwxKTtlLmY9aT9mdW5jdGlvbih0KXt2YXIgZT1vKHRoaXMsdCk7cmV0dXJuISFlJiZlLmVudW1lcmFibGV9OnJ9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDE4KSxvPW4oMzQpLGk9big5OCkuaW5kZXhPZixjPW4oNzYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuLHU9byh0KSxhPTAsZj1bXTtmb3IobiBpbiB1KSFyKGMsbikmJnIodSxuKSYmZi5wdXNoKG4pO2Zvcig7ZS5sZW5ndGg+YTspcih1LG49ZVthKytdKSYmKH5pKGYsbil8fGYucHVzaChuKSk7cmV0dXJuIGZ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTApO2Z1bmN0aW9uIG8odCxlKXtyZXR1cm4gUmVnRXhwKHQsZSl9ZS5VTlNVUFBPUlRFRF9ZPXIoKGZ1bmN0aW9uKCl7dmFyIHQ9bygiYSIsInkiKTtyZXR1cm4gdC5sYXN0SW5kZXg9MixudWxsIT10LmV4ZWMoImFiY2QiKX0pKSxlLkJST0tFTl9DQVJFVD1yKChmdW5jdGlvbigpe3ZhciB0PW8oIl5yIiwiZ3kiKTtyZXR1cm4gdC5sYXN0SW5kZXg9MixudWxsIT10LmV4ZWMoInN0ciIpfSkpfSxmdW5jdGlvbih0LGUsbil7dmFyIHI9big0MSksbz1uKDIyKSxpPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpLGMsdT1TdHJpbmcobyhlKSksYT1yKG4pLGY9dS5sZW5ndGg7cmV0dXJuIGE8MHx8YT49Zj90PyIiOnZvaWQgMDooaT11LmNoYXJDb2RlQXQoYSkpPDU1Mjk2fHxpPjU2MzE5fHxhKzE9PT1mfHwoYz11LmNoYXJDb2RlQXQoYSsxKSk8NTYzMjB8fGM+NTczNDM/dD91LmNoYXJBdChhKTppOnQ/dS5zbGljZShhLGErMik6Yy01NjMyMCsoaS01NTI5Njw8MTApKzY1NTM2fX07dC5leHBvcnRzPXtjb2RlQXQ6aSghMSksY2hhckF0OmkoITApfX0sLCwsLCwsLCwsLCwsLCxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpeygidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT09dHlwZW9mIHQ/dDoidW5kZWZpbmVkIiE9PXR5cGVvZiBzZWxmP3NlbGY6e30pLlNFTlRSWV9SRUxFQVNFPXtpZDoiMS4xNDEuMCJ9fSkuY2FsbCh0aGlzLG4oMTMpKX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oOCksbz1uKDc1KSxpPXIuV2Vha01hcDt0LmV4cG9ydHM9ImZ1bmN0aW9uIj09PXR5cGVvZiBpJiYvbmF0aXZlIGNvZGUvLnRlc3QobyhpKSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDE4KSxvPW4oMTMzKSxpPW4oNDcpLGM9bigyNik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPW8oZSksdT1jLmYsYT1pLmYsZj0wO2Y8bi5sZW5ndGg7ZisrKXt2YXIgcz1uW2ZdO3IodCxzKXx8dSh0LHMsYShlLHMpKX19fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9big1MCksbz1uKDk3KSxpPW4oMTM1KSxjPW4oMTQpO3QuZXhwb3J0cz1yKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbih0KXt2YXIgZT1vLmYoYyh0KSksbj1pLmY7cmV0dXJuIG4/ZS5jb25jYXQobih0KSk6ZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDgpO3QuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUpe2UuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigxMDEpO3QuZXhwb3J0cz1yJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yfSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigzMyksbz1NYXRoLmZsb29yLGk9IiIucmVwbGFjZSxjPS9cJChbJCYnYF18XGRcZD98PFtePl0qPikvZyx1PS9cJChbJCYnYF18XGRcZD8pL2c7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGEsZixzKXt2YXIgbD1uK3QubGVuZ3RoLGQ9YS5sZW5ndGgscD11O3JldHVybiB2b2lkIDAhPT1mJiYoZj1yKGYpLHA9YyksaS5jYWxsKHMscCwoZnVuY3Rpb24ocixpKXt2YXIgYztzd2l0Y2goaS5jaGFyQXQoMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIHQ7Y2FzZSJgIjpyZXR1cm4gZS5zbGljZSgwLG4pO2Nhc2UiJyI6cmV0dXJuIGUuc2xpY2UobCk7Y2FzZSI8IjpjPWZbaS5zbGljZSgxLC0xKV07YnJlYWs7ZGVmYXVsdDp2YXIgdT0raTtpZigwPT09dSlyZXR1cm4gcjtpZih1PmQpe3ZhciBzPW8odS8xMCk7cmV0dXJuIDA9PT1zP3I6czw9ZD92b2lkIDA9PT1hW3MtMV0/aS5jaGFyQXQoMSk6YVtzLTFdK2kuY2hhckF0KDEpOnJ9Yz1hW3UtMV19cmV0dXJuIHZvaWQgMD09PWM/IiI6Y30pKX19LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsZnVuY3Rpb24odCxlLG4pe24oMTMwKSx0LmV4cG9ydHM9bigyMjIpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTtuKDM2KSxuKDMyKSxuKDg5KSxuKDI5KTshZnVuY3Rpb24oKXt2YXIgdD0iYm9vbGVhbiI9PT10eXBlb2YgUFJPRFVDVElPTl9ERVZFTE9QTUVOVF9CVUlMRCYmITA9PT1QUk9EVUNUSU9OX0RFVkVMT1BNRU5UX0JVSUxELGU9dD8iIi5jb25jYXQoImh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIiwiL2Rpc3QvIik6Imh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIjt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PVtdLGU9ITEsbj0hMTtmdW5jdGlvbiByKCl7aWYoIWUpe2U9ITA7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKz0xKXRbbl0uZm4uY2FsbCh3aW5kb3csdFtuXS5jdHgpO3Q9W119fWZ1bmN0aW9uIG8oKXsiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmcigpfXJldHVybiBmdW5jdGlvbihpLGMpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBmb3IgZG9jUmVhZHkoZm4pIG11c3QgYmUgYSBmdW5jdGlvbiIpO3JldHVybiBlPyhzZXRUaW1lb3V0KChmdW5jdGlvbigpe2koYyl9KSwxKSwhMSk6KHQucHVzaCh7Zm46aSxjdHg6Y30pLCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlfHwhZG9jdW1lbnQuYXR0YWNoRXZlbnQmJiJpbnRlcmFjdGl2ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP3NldFRpbWVvdXQociwxKTpufHwoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj8oZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsciwhMSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHIsITEpKTooZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsbyksd2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLHIpKSxuPSEwKSwhMCl9fSgpO2Z1bmN0aW9uIG8odCl7IWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5jb250ZW50V2luZG93LmRvY3VtZW50LHI9bi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyLnNyYz1lLHIuYXN5bmM9ITAsbi5ib2R5LmFwcGVuZENoaWxkKHIpfSh0LCIiLmNvbmNhdChlLnJlcGxhY2UoL1wvJC8sIiIpLCIvIikuY29uY2F0KCIxXzE0MV8wIiwiL3N0YXRpYy9qcy93aWRnZXQuIikuY29uY2F0KG4uaCwiLmpzIikpfXZhciBpPW4oMjIzKS5kZWZhdWx0O3dpbmRvdy50aWRpb0NoYXRBcGk9bmV3IGkscigoZnVuY3Rpb24oKXtyZXR1cm4gc2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgcj13aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpZGlvLWNoYXQtY29kZSIpLGk9d2luZG93LlNob3BpZnkmJiEwPT09d2luZG93LlNob3BpZnkuZGVzaWduTW9kZSxjPS9NU0lFfFRyaWRlbnQvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO2lmKHJ8fGl8fGMpcmV0dXJuITE7IWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1lLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLG89ITE7ci5vbmxvYWQ9ZnVuY3Rpb24oKXtvfHwobihyKSxvPSEwKX0sci5pZD10LHIuc3R5bGUuZGlzcGxheT0ibm9uZSIsci50aXRsZT0iVGlkaW8gQ2hhdCBjb2RlIixlLmJvZHkuYXBwZW5kQ2hpbGQociksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtvfHwobihyKSxvPSEwKX0pLDFlMyl9KCJ0aWRpby1jaGF0LWNvZGUiLHdpbmRvdy5kb2N1bWVudCwoZnVuY3Rpb24ocil7dCYmd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18mJihyLmNvbnRlbnRXaW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXz13aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyxyLmNvbnRlbnRXaW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fPXdpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18pLGZ1bmN0aW9uKHQpe3ZhciByPSIvL2xvY2FsaG9zdDozMDAwL3N0YXRpYy9qcy9XaWRnZXRJZnJhbWUuanMiO3I9IiIuY29uY2F0KGUpLmNvbmNhdCgiMV8xNDFfMCIsIi9zdGF0aWMvanMvY2h1bmstV2lkZ2V0SWZyYW1lLSIpLmNvbmNhdChuLmgsIi5qcyIpO3ZhciBvPXQuY3JlYXRlRWxlbWVudCgibGluayIpO28ucmVsPSJwcmVsb2FkIixvLmFzPSJzY3JpcHQiLG8uaHJlZj1yLHQuaGVhZC5hcHBlbmRDaGlsZChvKX0oci5jb250ZW50V2luZG93LmRvY3VtZW50KSxmdW5jdGlvbih0KXt2YXIgZT10LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtlLnJlbD0icHJlbG9hZCIsZS5ocmVmPSIiLmNvbmNhdCgiaHR0cHM6Ly93aWRnZXQtdjQudGlkaW9jaGF0LmNvbS8iLCJmb250cy9tdWxpc2hfU0doZ3FrM3dvdFlLTm5CUS53b2ZmMiIpLGUuYXM9ImZvbnQiLGUudHlwZT0iZm9udC93b2ZmMiIsZS5jcm9zc09yaWdpbj0iIix0LmhlYWQuYXBwZW5kQ2hpbGQoZSl9KHIuY29udGVudFdpbmRvdy5kb2N1bWVudCksZnVuY3Rpb24odCl7dmFyIG49IiIuY29uY2F0KGUsIi90dXJ1cnUubXAzIikscj10LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIik7ci5wcmVsb2FkPSJtZXRhZGF0YSIsci5zcmM9bix0LmhlYWQuYXBwZW5kQ2hpbGQocil9KHIuY29udGVudFdpbmRvdy5kb2N1bWVudCksZnVuY3Rpb24odCl7dmFyIGU9dC5jcmVhdGVFbGVtZW50KCJsaW5rIik7ZS5yZWw9InByZWNvbm5lY3QiLGUuaHJlZj0iaHR0cHM6Ly9zb2NrZXQudGlkaW8uY286NDQzIix0LmhlYWQuYXBwZW5kQ2hpbGQoZSl9KHIuY29udGVudFdpbmRvdy5kb2N1bWVudCksZnVuY3Rpb24odCl7dmFyIGU9dC5jcmVhdGVFbGVtZW50KCJsaW5rIik7ZS5yZWw9InByZWNvbm5lY3QiLGUuaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbSIsdC5oZWFkLmFwcGVuZENoaWxkKGUpfShyLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLHIuY29udGVudFdpbmRvdy50aWRpb0NoYXRBcGk9d2luZG93LnRpZGlvQ2hhdEFwaSwicmVxdWVzdElkbGVDYWxsYmFjayJpbiB3aW5kb3c/d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKGZ1bmN0aW9uKCl7byhyKX0pLHt0aW1lb3V0OjVlM30pOnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7byhyKX0pLDApfSkpfSksMCl9KSl9KCl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpLG4uZChlLCJkZWZhdWx0IiwoZnVuY3Rpb24oKXtyZXR1cm4gdX0pKTtuKDM2KTt2YXIgcj1uKDI3KSxvPW4ubihyKSxpPW4oMjgpLGM9bi5uKGkpLHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7bygpKHRoaXMsdCksdGhpcy5ldmVudFByZWZpeD0idGlkaW9DaGF0LSIsdGhpcy5yZWFkeUV2ZW50V2FzRmlyZWQ9ITEsdGhpcy5xdWV1ZT1bXSx0aGlzLnBvcFVwT3Blbj10aGlzLm9wZW4sdGhpcy5wb3BVcEhpZGU9dGhpcy5jbG9zZSx0aGlzLmNoYXREaXNwbGF5PXRoaXMuZGlzcGxheSx0aGlzLnNldENvbG9yUGFsbGV0ZT10aGlzLnNldENvbG9yUGFsZXR0ZX1yZXR1cm4gYygpKHQsW3trZXk6Im9uIix2YWx1ZTpmdW5jdGlvbih0LGUpeyJyZWFkeSI9PT10JiZ0aGlzLnJlYWR5RXZlbnRXYXNGaXJlZD9lKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiIi5jb25jYXQodGhpcy5ldmVudFByZWZpeCkuY29uY2F0KHQpLChmdW5jdGlvbih0KXtlKHQuZGF0YSl9KSwhMSl9fSx7a2V5OiJ0cmlnZ2VyIix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKCJyZWFkeSI9PT10JiZ0aGlzLnJlYWR5RXZlbnRXYXNGaXJlZClyZXR1cm4hMTt0cnl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7aWYobi5pbml0RXZlbnQoIiIuY29uY2F0KHRoaXMuZXZlbnRQcmVmaXgpLmNvbmNhdCh0KSwhMCwhMCksbi5kYXRhPWUsZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuKSwicmVhZHkiPT09dCl7aWYodGhpcy5yZWFkeUV2ZW50V2FzRmlyZWQpcmV0dXJuITE7dGhpcy5fZmx1c2hBbGxGcm9tUXVldWUoKSx0aGlzLnJlYWR5RXZlbnRXYXNGaXJlZD0hMH19Y2F0Y2gocil7cmV0dXJuITF9cmV0dXJuITB9fSx7a2V5OiJtZXRob2QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuInJlYWR5Ij09PXQmJiJmdW5jdGlvbiI9PT10eXBlb2YgZT8odGhpcy5vbigicmVhZHkiLGUpLCEwKToodGhpc1t0XSYmdGhpc1t0XShlKSwhMCl9fSx7a2V5OiJfYWRkVG9RdWV1ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7dGhpcy5xdWV1ZS5wdXNoKHttZXRob2Q6dCxhcmdzOmV9KX19LHtrZXk6Il9mbHVzaEFsbEZyb21RdWV1ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IoOzAhPT10aGlzLnF1ZXVlLmxlbmd0aDspe3ZhciB0PXRoaXMucXVldWUuc2hpZnQoKSxlPXQubWV0aG9kLG49dC5hcmdzO3RoaXNbZV0uYXBwbHkobnVsbCxuKX19fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2FkZFRvUXVldWUoIm9wZW4iKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2FkZFRvUXVldWUoImNsb3NlIil9fSx7a2V5OiJkaXNwbGF5Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07dGhpcy5fYWRkVG9RdWV1ZSgiZGlzcGxheSIsW3RdKX19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fYWRkVG9RdWV1ZSgic2hvdyIpfX0se2tleToiaGlkZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9hZGRUb1F1ZXVlKCJoaWRlIil9fSx7a2V5OiJzZXRDb2xvclBhbGV0dGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuX2FkZFRvUXVldWUoInNldENvbG9yUGFsZXR0ZSIsW3RdKX19LHtrZXk6InRyYWNrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToidHJhY2siLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOmZ1bmN0aW9uKCl7fTt0aGlzLl9hZGRUb1F1ZXVlKCJ0cmFjayIsW3QsZSxuXSl9fSx7a2V5OiJtZXNzYWdlRnJvbVZpc2l0b3IiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuX2FkZFRvUXVldWUoIm1lc3NhZ2VGcm9tVmlzaXRvciIsW3RdKX19LHtrZXk6Im1lc3NhZ2VGcm9tT3BlcmF0b3IiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07dGhpcy5fYWRkVG9RdWV1ZSgibWVzc2FnZUZyb21PcGVyYXRvciIsW3QsZV0pfX0se2tleToic2V0VmlzaXRvckRhdGEiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5fYWRkVG9RdWV1ZSgic2V0VmlzaXRvckRhdGEiLFt0LGVdKX19LHtrZXk6InNldENvbnRhY3RQcm9wZXJ0aWVzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuX2FkZFRvUXVldWUoInNldENvbnRhY3RQcm9wZXJ0aWVzIixbdCxlXSl9fSx7a2V5OiJhZGRWaXNpdG9yVGFncyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLl9hZGRUb1F1ZXVlKCJhZGRWaXNpdG9yVGFncyIsW3QsZV0pfX0se2tleToic2V0RmVhdHVyZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O3RoaXMuX2FkZFRvUXVldWUoInNldEZlYXR1cmVzIixbdF0pfX1dKSx0fSgpfV0pOw=="}},"time_used":85,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":84,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_42x16dp.png","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.361Z","timestamp":1785132839361,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /images/branding/googlelogo/1x/googlelogo_color_42x16dp.png HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 910\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:14 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:14 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 02 Nov 2023 22:48:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 407025\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":910,"size_decoded":1583,"mime_type":"image/png","magic":"PNG image data, 42 x 16, 8-bit/color RGBA, non-interlaced","md5":"efa6bb2bfe459bc6f4bdafa3db0383f6","sha1":"52d15ce52fe50643e542c17812de43f4ed1b6ee0","sha256":"6318394f737c66f0e2ccfcd88e3935c6667633a1b95fa29fba2b75431d55eef2","sha512":"e23c04d8997f5c2f92070e09261b7ee50d9df8753f45cf66f604f0874ffa8d99e947c97c528ec02a2c3fbe8e43d840b343a7d0225532980d5da95031216415b7","ssdeep":"","tlshash":"491184a73cd1dc6854a47a87aa91b864ec250f1b91a220981237b42277313444fdc8f7","first_seen":"2023-04-05T07:39:29Z","last_seen":"2026-07-27T09:46:57.042608Z","times_seen":54250,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAACoAAAAQCAYAAABgIu2QAAADVUlEQVR4AcxUA9AdPRRNbdu2+7K//+4mW9vWqNbYU2z21bZt27Zt+6nK5lUftrkPO7V1Zu7iZnJycoUc2HYC4hZVKROjqCnmEdMaoDJRHv1g4HmNKuCFjVX0OajeO5CWML5eCrSlnaGMr5VCr4X+mdXrhwpd0GgKXtDgAPoUIJIgTDPFE42JalF37952QspE+6rG0zy/hVDdsDSInHy3Qp8Jr6pk99A/s7333ttRdrD3ramDRHbd/STTp4QG6F+5fNUq5kCvg5qWmxr8qWuincTxsWAu1bRKR42avCT4H1TFeXxU2ePTFRvMo7t2AmlI4ObkeWM2J9kTsyWJDSa/d8ZvSRFaU3vzzJohNkFA5Fnx8sz9mmGJt4XeVV2ZvTreFuWXZy29rqrJEYAwMUYKuYccgM+aAKRR0wweayOUwEdc++Tm034dK/e1in96CT7nocoO20YJpLh9MVsSnX65ObHyclviP+X3ORAbvri1kjJ+mxi8EmWiIjHFKeB9W6hXV+Z7iXITuMF8RBHyPDeKkHSDTeqAYO7XU6SavDgYYWKEjEYgoP6RG27pp7iOUwI6bgQ+MShn+XAkkzprMZuTNgLfxlmNC0AUNca7OIEwecP3CZXCglLsCMk7xEtcDyAwcAYC/GfyLHKTRQ2xEBoIvYbave2U0n8exhWkPZKS2o7Qyrgh+F70z1khnO5EzlrMpqQNwbdhVuvC4cwEO0bXNBas9yGhYF6qTPRWUd4ZjRDVJprJ42TktgEJzE/ZXM3k/0kp9CExHheC1Huo67CPuo7fr4JLy2YqC2Ughe6NpP6wTPfxFxuTlH6xJUlZKAOoWeCH0QfjTmVBHM4SP/Zeoboy20OUu16C//GSioW8FM/1UNwavQ4pVKUmP/x6bRJTbAdiFAFslkTHosXuJcqhe6RCPlh7tjlZwZhNiY46zbQpycH4rcnzRUuJGmKPw834ifcJffzffxl8FG8A7ohd9tGKFdEHR0g/q4wzRt5CKLI6LggG36+vQWRB8LONyQrAt8PZ25ta7/+sIBhMFBnd7pAp9AFAP/gJLmb3RgnRz4QUNhm6HsqKuIN1iclvUWZNQ78b/hnoT0MMMVsz+Qtq8JfQuGrvR+nR74omi+xEYOjVBgEYBQDoQD6ep9ySZwAAAABJRU5ErkJggg=="}},"time_used":16,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/#","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"","port":0,"asn":0,"as":"","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.522Z","timestamp":1785132839522,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: farosonglobaltrade.ltd\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"","headers":null,"cookies":null,"status_code":"","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T09:47:52.605533Z","times_seen":17560503,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/preload.css","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.048Z","timestamp":1785132838048,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /preload.css HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 25 Dec 2023 08:29:08 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 289\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":889,"size_decoded":597,"mime_type":"text/css","magic":"ASCII text","md5":"109d8a24a9358637e850f469e106311b","sha1":"9d84d4538aaad4d030d70fa993f0f6cfe0e4c200","sha256":"093e337af1f4dbb811c47a861278afd69882f8d898f47c091e4feb902a5a8334","sha512":"729851b2d24f945799864409ef817d048a442c282fe73498020c48b8cb382e03c4dd678a1f902d0ff3e16f95103bbf7fbde3cafe048a2e6315f6de1d83b4b24e","ssdeep":"","tlshash":"6711493659a76104b05f95ac27fa17191228c053a64accad3acc2645dfd5188aae3388","first_seen":"2024-12-13T14:20:56.565475Z","last_seen":"2026-07-27T07:12:30.071992Z","times_seen":7,"resource_available":false,"data":"LnBvcHVwLWNvbnRhaW5lciB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIG1heC13aWR0aDogODAlOwogICAgICAgICAgICBtYXgtaGVpZ2h0OiA4MCU7CiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDFzIGVhc2UtaW4tb3V0IGZvcndhcmRzOwogICAgICAgIH0KCiAgICAgICAgLnBvcHVwLWNvbnRlbnQgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAucG9wdXAtaW1nIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAuYnRuLWNsb3NlIHsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgICAgIDAlIHsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgMTAwJSB7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICB9CiAgICAgICAgfQ=="}},"time_used":21,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":21,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/vendor/jquery/jquery.min.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.340Z","timestamp":1785132838340,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /vendor/jquery/jquery.min.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Sun, 26 Dec 2021 23:46:20 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 29658\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":86927,"size_decoded":29896,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (65450), with CRLF line terminators","md5":"a46fb81762396b7bf2020774a2fb4d9e","sha1":"fb5edd7a663dc8dda7ec10815a7cd82a30fc98a7","sha256":"d30b6114fb9496ae46b2a8cdf59379c8ffdb957534bd1dd73e626c7c61c7e67d","sha512":"40759595b05808dd911075918bdcc32fb91362019bdfca24827043b8e54116e6ebe7362050ec72182b66481f1dc8d4ec4c8942c984fd597659313d71ad60dc33","ssdeep":"1536:aLiBdiaWLOczCmZx6+VWuGzQNOzdn6x2RZd9SEnk9HB96c9Yo/NWLbVj3kC6tv:+kn6x2xe9NK6nC6N","tlshash":"378319dd72c6b06247ab71ba00bf550bf2361999684d4410f129e4eabc74b4e823bf7d","first_seen":"2023-03-07T01:10:49Z","last_seen":"2026-07-27T09:26:58.684267Z","times_seen":61887,"resource_available":true,"data":"LyohIGpRdWVyeSB2My4zLjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovDQohZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZS5kb2N1bWVudD90KGUsITApOmZ1bmN0aW9uKGUpe2lmKCFlLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiB0KGUpfTp0KGUpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1bXSxyPWUuZG9jdW1lbnQsaT1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1uLnNsaWNlLGE9bi5jb25jYXQscz1uLnB1c2gsdT1uLmluZGV4T2YsbD17fSxjPWwudG9TdHJpbmcsZj1sLmhhc093blByb3BlcnR5LHA9Zi50b1N0cmluZyxkPXAuY2FsbChPYmplY3QpLGg9e30sZz1mdW5jdGlvbiBlKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHQubm9kZVR5cGV9LHk9ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbnVsbCE9dCYmdD09PXQud2luZG93fSx2PXt0eXBlOiEwLHNyYzohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gbShlLHQsbil7dmFyIGksbz0odD10fHxyKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihvLnRleHQ9ZSxuKWZvcihpIGluIHYpbltpXSYmKG9baV09bltpXSk7dC5oZWFkLmFwcGVuZENoaWxkKG8pLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobyl9ZnVuY3Rpb24geChlKXtyZXR1cm4gbnVsbD09ZT9lKyIiOiJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGU/bFtjLmNhbGwoZSldfHwib2JqZWN0Ijp0eXBlb2YgZX12YXIgYj0iMy4zLjEiLHc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IHcuZm4uaW5pdChlLHQpfSxUPS9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZzt3LmZuPXcucHJvdG90eXBlPXtqcXVlcnk6IjMuMy4xIixjb25zdHJ1Y3Rvcjp3LGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gby5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/by5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD13Lm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gdy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sody5tYXAodGhpcyxmdW5jdGlvbih0LG4pe3JldHVybiBlLmNhbGwodCxuLHQpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubGVuZ3RoLG49K2UrKGU8MD90OjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhuPj0wJiZuPHQ/W3RoaXNbbl1dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcigpfSxwdXNoOnMsc29ydDpuLnNvcnQsc3BsaWNlOm4uc3BsaWNlfSx3LmV4dGVuZD13LmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBlLHQsbixyLGksbyxhPWFyZ3VtZW50c1swXXx8e30scz0xLHU9YXJndW1lbnRzLmxlbmd0aCxsPSExO2ZvcigiYm9vbGVhbiI9PXR5cGVvZiBhJiYobD1hLGE9YXJndW1lbnRzW3NdfHx7fSxzKyspLCJvYmplY3QiPT10eXBlb2YgYXx8ZyhhKXx8KGE9e30pLHM9PT11JiYoYT10aGlzLHMtLSk7czx1O3MrKylpZihudWxsIT0oZT1hcmd1bWVudHNbc10pKWZvcih0IGluIGUpbj1hW3RdLGEhPT0ocj1lW3RdKSYmKGwmJnImJih3LmlzUGxhaW5PYmplY3Qocil8fChpPUFycmF5LmlzQXJyYXkocikpKT8oaT8oaT0hMSxvPW4mJkFycmF5LmlzQXJyYXkobik/bjpbXSk6bz1uJiZ3LmlzUGxhaW5PYmplY3Qobik/bjp7fSxhW3RdPXcuZXh0ZW5kKGwsbyxyKSk6dm9pZCAwIT09ciYmKGFbdF09cikpO3JldHVybiBhfSx3LmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoIjMuMy4xIitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEoIWV8fCJbb2JqZWN0IE9iamVjdF0iIT09Yy5jYWxsKGUpKSYmKCEodD1pKGUpKXx8ImZ1bmN0aW9uIj09dHlwZW9mKG49Zi5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3IpJiZwLmNhbGwobik9PT1kKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUpe20oZSl9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTA7aWYoQyhlKSl7Zm9yKG49ZS5sZW5ndGg7cjxuO3IrKylpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWt9ZWxzZSBmb3IociBpbiBlKWlmKCExPT09dC5jYWxsKGVbcl0scixlW3JdKSlicmVhaztyZXR1cm4gZX0sdHJpbTpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT8iIjooZSsiIikucmVwbGFjZShULCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGUsdCl7dmFyIG49dHx8W107cmV0dXJuIG51bGwhPWUmJihDKE9iamVjdChlKSk/dy5tZXJnZShuLCJzdHJpbmciPT10eXBlb2YgZT9bZV06ZSk6cy5jYWxsKG4sZSkpLG59LGluQXJyYXk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBudWxsPT10Py0xOnUuY2FsbCh0LGUsbil9LG1lcmdlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPSt0Lmxlbmd0aCxyPTAsaT1lLmxlbmd0aDtyPG47cisrKWVbaSsrXT10W3JdO3JldHVybiBlLmxlbmd0aD1pLGV9LGdyZXA6ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcixpPVtdLG89MCxhPWUubGVuZ3RoLHM9IW47bzxhO28rKykocj0hdChlW29dLG8pKSE9PXMmJmkucHVzaChlW29dKTtyZXR1cm4gaX0sbWFwOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89MCxzPVtdO2lmKEMoZSkpZm9yKHI9ZS5sZW5ndGg7bzxyO28rKyludWxsIT0oaT10KGVbb10sbyxuKSkmJnMucHVzaChpKTtlbHNlIGZvcihvIGluIGUpbnVsbCE9KGk9dChlW29dLG8sbikpJiZzLnB1c2goaSk7cmV0dXJuIGEuYXBwbHkoW10scyl9LGd1aWQ6MSxzdXBwb3J0Omh9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYody5mbltTeW1ib2wuaXRlcmF0b3JdPW5bU3ltYm9sLml0ZXJhdG9yXSksdy5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2xbIltvYmplY3QgIit0KyJdIl09dC50b0xvd2VyQ2FzZSgpfSk7ZnVuY3Rpb24gQyhlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj14KGUpO3JldHVybiFnKGUpJiYheShlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiZ0PjAmJnQtMSBpbiBlKX12YXIgRT1mdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscyx1LGwsYyxmLHAsZCxoLGcseSx2LG0seCxiPSJzaXp6bGUiKzEqbmV3IERhdGUsdz1lLmRvY3VtZW50LFQ9MCxDPTAsRT1hZSgpLGs9YWUoKSxTPWFlKCksRD1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKGY9ITApLDB9LE49e30uaGFzT3duUHJvcGVydHksQT1bXSxqPUEucG9wLHE9QS5wdXNoLEw9QS5wdXNoLEg9QS5zbGljZSxPPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfSxQPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTT0iW1xceDIwXFx0XFxyXFxuXFxmXSIsUj0iKD86XFxcXC58W1xcdy1dfFteXDAtXFx4YTBdKSsiLEk9IlxcWyIrTSsiKigiK1IrIikoPzoiK00rIiooWypeJHwhfl0/PSkiK00rIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitSKyIpKXwpIitNKyIqXFxdIixXPSI6KCIrUisiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrSSsiKSopfC4qKVxcKXwpIiwkPW5ldyBSZWdFeHAoTSsiKyIsImciKSxCPW5ldyBSZWdFeHAoIl4iK00rIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTSsiKyQiLCJnIiksRj1uZXcgUmVnRXhwKCJeIitNKyIqLCIrTSsiKiIpLF89bmV3IFJlZ0V4cCgiXiIrTSsiKihbPit+XXwiK00rIikiK00rIioiKSx6PW5ldyBSZWdFeHAoIj0iK00rIiooW15cXF0nXCJdKj8pIitNKyIqXFxdIiwiZyIpLFg9bmV3IFJlZ0V4cChXKSxVPW5ldyBSZWdFeHAoIl4iK1IrIiQiKSxWPXtJRDpuZXcgUmVnRXhwKCJeIygiK1IrIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrUisiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrUisifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK0kpLFBTRVVETzpuZXcgUmVnRXhwKCJeIitXKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK00rIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK00rIiooPzooWystXXwpIitNKyIqKFxcZCspfCkpIitNKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitQKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTSsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitNKyIqKCg/Oi1cXGQpP1xcZCopIitNKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxHPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksWT0vXmhcZCQvaSxRPS9eW157XStce1xzKlxbbmF0aXZlIFx3LyxKPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sSz0vWyt+XS8sWj1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK00rIj98KCIrTSsiKXwuKSIsImlnIiksZWU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPSIweCIrdC02NTUzNjtyZXR1cm4gciE9PXJ8fG4/dDpyPDA/U3RyaW5nLmZyb21DaGFyQ29kZShyKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKHI+PjEwfDU1Mjk2LDEwMjMmcnw1NjMyMCl9LHRlPS8oW1wwLVx4MWZceDdmXXxeLT9cZCl8Xi0kfFteXDAtXHgxZlx4N2YtXHVGRkZGXHctXS9nLG5lPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/IlwwIj09PWU/Ilx1ZmZmZCI6ZS5zbGljZSgwLC0xKSsiXFwiK2UuY2hhckNvZGVBdChlLmxlbmd0aC0xKS50b1N0cmluZygxNikrIiAiOiJcXCIrZX0scmU9ZnVuY3Rpb24oKXtwKCl9LGllPW1lKGZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZS5kaXNhYmxlZCYmKCJmb3JtImluIGV8fCJsYWJlbCJpbiBlKX0se2RpcjoicGFyZW50Tm9kZSIsbmV4dDoibGVnZW5kIn0pO3RyeXtMLmFwcGx5KEE9SC5jYWxsKHcuY2hpbGROb2Rlcyksdy5jaGlsZE5vZGVzKSxBW3cuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGUpe0w9e2FwcGx5OkEubGVuZ3RoP2Z1bmN0aW9uKGUsdCl7cS5hcHBseShlLEguY2FsbCh0KSl9OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5sZW5ndGgscj0wO3doaWxlKGVbbisrXT10W3IrK10pO2UubGVuZ3RoPW4tMX19fWZ1bmN0aW9uIG9lKGUsdCxyLGkpe3ZhciBvLHMsbCxjLGYsaCx2LG09dCYmdC5vd25lckRvY3VtZW50LFQ9dD90Lm5vZGVUeXBlOjk7aWYocj1yfHxbXSwic3RyaW5nIiE9dHlwZW9mIGV8fCFlfHwxIT09VCYmOSE9PVQmJjExIT09VClyZXR1cm4gcjtpZighaSYmKCh0P3Qub3duZXJEb2N1bWVudHx8dDp3KSE9PWQmJnAodCksdD10fHxkLGcpKXtpZigxMSE9PVQmJihmPUouZXhlYyhlKSkpaWYobz1mWzFdKXtpZig5PT09VCl7aWYoIShsPXQuZ2V0RWxlbWVudEJ5SWQobykpKXJldHVybiByO2lmKGwuaWQ9PT1vKXJldHVybiByLnB1c2gobCkscn1lbHNlIGlmKG0mJihsPW0uZ2V0RWxlbWVudEJ5SWQobykpJiZ4KHQsbCkmJmwuaWQ9PT1vKXJldHVybiByLnB1c2gobCkscn1lbHNle2lmKGZbMl0pcmV0dXJuIEwuYXBwbHkocix0LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpKSxyO2lmKChvPWZbM10pJiZuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gTC5hcHBseShyLHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShvKSkscn1pZihuLnFzYSYmIVNbZSsiICJdJiYoIXl8fCF5LnRlc3QoZSkpKXtpZigxIT09VCltPXQsdj1lO2Vsc2UgaWYoIm9iamVjdCIhPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpeyhjPXQuZ2V0QXR0cmlidXRlKCJpZCIpKT9jPWMucmVwbGFjZSh0ZSxuZSk6dC5zZXRBdHRyaWJ1dGUoImlkIixjPWIpLHM9KGg9YShlKSkubGVuZ3RoO3doaWxlKHMtLSloW3NdPSIjIitjKyIgIit2ZShoW3NdKTt2PWguam9pbigiLCIpLG09Sy50ZXN0KGUpJiZnZSh0LnBhcmVudE5vZGUpfHx0fWlmKHYpdHJ5e3JldHVybiBMLmFwcGx5KHIsbS5xdWVyeVNlbGVjdG9yQWxsKHYpKSxyfWNhdGNoKGUpe31maW5hbGx5e2M9PT1iJiZ0LnJlbW92ZUF0dHJpYnV0ZSgiaWQiKX19fXJldHVybiB1KGUucmVwbGFjZShCLCIkMSIpLHQscixpKX1mdW5jdGlvbiBhZSgpe3ZhciBlPVtdO2Z1bmN0aW9uIHQobixpKXtyZXR1cm4gZS5wdXNoKG4rIiAiKT5yLmNhY2hlTGVuZ3RoJiZkZWxldGUgdFtlLnNoaWZ0KCldLHRbbisiICJdPWl9cmV0dXJuIHR9ZnVuY3Rpb24gc2UoZSl7cmV0dXJuIGVbYl09ITAsZX1mdW5jdGlvbiB1ZShlKXt2YXIgdD1kLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7dHJ5e3JldHVybiEhZSh0KX1jYXRjaChlKXtyZXR1cm4hMX1maW5hbGx5e3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHQ9bnVsbH19ZnVuY3Rpb24gbGUoZSx0KXt2YXIgbj1lLnNwbGl0KCJ8IiksaT1uLmxlbmd0aDt3aGlsZShpLS0pci5hdHRySGFuZGxlW25baV1dPXR9ZnVuY3Rpb24gY2UoZSx0KXt2YXIgbj10JiZlLHI9biYmMT09PWUubm9kZVR5cGUmJjE9PT10Lm5vZGVUeXBlJiZlLnNvdXJjZUluZGV4LXQuc291cmNlSW5kZXg7aWYocilyZXR1cm4gcjtpZihuKXdoaWxlKG49bi5uZXh0U2libGluZylpZihuPT09dClyZXR1cm4tMTtyZXR1cm4gZT8xOi0xfWZ1bmN0aW9uIGZlKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4iaW5wdXQiPT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiZ0LnR5cGU9PT1lfX1mdW5jdGlvbiBwZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09bnx8ImJ1dHRvbiI9PT1uKSYmdC50eXBlPT09ZX19ZnVuY3Rpb24gZGUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiJmb3JtImluIHQ/dC5wYXJlbnROb2RlJiYhMT09PXQuZGlzYWJsZWQ/ImxhYmVsImluIHQ/ImxhYmVsImluIHQucGFyZW50Tm9kZT90LnBhcmVudE5vZGUuZGlzYWJsZWQ9PT1lOnQuZGlzYWJsZWQ9PT1lOnQuaXNEaXNhYmxlZD09PWV8fHQuaXNEaXNhYmxlZCE9PSFlJiZpZSh0KT09PWU6dC5kaXNhYmxlZD09PWU6ImxhYmVsImluIHQmJnQuZGlzYWJsZWQ9PT1lfX1mdW5jdGlvbiBoZShlKXtyZXR1cm4gc2UoZnVuY3Rpb24odCl7cmV0dXJuIHQ9K3Qsc2UoZnVuY3Rpb24obixyKXt2YXIgaSxvPWUoW10sbi5sZW5ndGgsdCksYT1vLmxlbmd0aDt3aGlsZShhLS0pbltpPW9bYV1dJiYobltpXT0hKHJbaV09bltpXSkpfSl9KX1mdW5jdGlvbiBnZShlKXtyZXR1cm4gZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZlfW49b2Uuc3VwcG9ydD17fSxvPW9lLmlzWE1MPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJihlLm93bmVyRG9jdW1lbnR8fGUpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hIXQmJiJIVE1MIiE9PXQubm9kZU5hbWV9LHA9b2Uuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsaSxhPWU/ZS5vd25lckRvY3VtZW50fHxlOnc7cmV0dXJuIGEhPT1kJiY5PT09YS5ub2RlVHlwZSYmYS5kb2N1bWVudEVsZW1lbnQ/KGQ9YSxoPWQuZG9jdW1lbnRFbGVtZW50LGc9IW8oZCksdyE9PWQmJihpPWQuZGVmYXVsdFZpZXcpJiZpLnRvcCE9PWkmJihpLmFkZEV2ZW50TGlzdGVuZXI/aS5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLHJlLCExKTppLmF0dGFjaEV2ZW50JiZpLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIscmUpKSxuLmF0dHJpYnV0ZXM9dWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NOYW1lPSJpIiwhZS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksbi5nZXRFbGVtZW50c0J5VGFnTmFtZT11ZShmdW5jdGlvbihlKXtyZXR1cm4gZS5hcHBlbmRDaGlsZChkLmNyZWF0ZUNvbW1lbnQoIiIpKSwhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLG4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1RLnRlc3QoZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxuLmdldEJ5SWQ9dWUoZnVuY3Rpb24oZSl7cmV0dXJuIGguYXBwZW5kQ2hpbGQoZSkuaWQ9YiwhZC5nZXRFbGVtZW50c0J5TmFtZXx8IWQuZ2V0RWxlbWVudHNCeU5hbWUoYikubGVuZ3RofSksbi5nZXRCeUlkPyhyLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoWixlZSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZSgiaWQiKT09PXR9fSxyLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQmJmcpe3ZhciBuPXQuZ2V0RWxlbWVudEJ5SWQoZSk7cmV0dXJuIG4/W25dOltdfX0pOihyLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoWixlZSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRBdHRyaWJ1dGVOb2RlJiZlLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIG4mJm4udmFsdWU9PT10fX0sci5maW5kLklEPWZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRCeUlkJiZnKXt2YXIgbixyLGksbz10LmdldEVsZW1lbnRCeUlkKGUpO2lmKG8pe2lmKChuPW8uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJm4udmFsdWU9PT1lKXJldHVybltvXTtpPXQuZ2V0RWxlbWVudHNCeU5hbWUoZSkscj0wO3doaWxlKG89aVtyKytdKWlmKChuPW8uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJm4udmFsdWU9PT1lKXJldHVybltvXX1yZXR1cm5bXX19KSxyLmZpbmQuVEFHPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWU/ZnVuY3Rpb24oZSx0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudHNCeVRhZ05hbWU/dC5nZXRFbGVtZW50c0J5VGFnTmFtZShlKTpuLnFzYT90LnF1ZXJ5U2VsZWN0b3JBbGwoZSk6dm9pZCAwfTpmdW5jdGlvbihlLHQpe3ZhciBuLHI9W10saT0wLG89dC5nZXRFbGVtZW50c0J5VGFnTmFtZShlKTtpZigiKiI9PT1lKXt3aGlsZShuPW9baSsrXSkxPT09bi5ub2RlVHlwZSYmci5wdXNoKG4pO3JldHVybiByfXJldHVybiBvfSxyLmZpbmQuQ0xBU1M9bi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZmdW5jdGlvbihlLHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZnKXJldHVybiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZSl9LHY9W10seT1bXSwobi5xc2E9US50ZXN0KGQucXVlcnlTZWxlY3RvckFsbCkpJiYodWUoZnVuY3Rpb24oZSl7aC5hcHBlbmRDaGlsZChlKS5pbm5lckhUTUw9IjxhIGlkPSciK2IrIic+PC9hPjxzZWxlY3QgaWQ9JyIrYisiLVxyXFwnIG1zYWxsb3djYXB0dXJlPScnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IixlLnF1ZXJ5U2VsZWN0b3JBbGwoIlttc2FsbG93Y2FwdHVyZV49JyddIikubGVuZ3RoJiZ5LnB1c2goIlsqXiRdPSIrTSsiKig/OicnfFwiXCIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJbc2VsZWN0ZWRdIikubGVuZ3RofHx5LnB1c2goIlxcWyIrTSsiKig/OnZhbHVlfCIrUCsiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiW2lkfj0iK2IrIi1dIikubGVuZ3RofHx5LnB1c2goIn49IiksZS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8eS5wdXNoKCI6Y2hlY2tlZCIpLGUucXVlcnlTZWxlY3RvckFsbCgiYSMiK2IrIisqIikubGVuZ3RofHx5LnB1c2goIi4jLitbK35dIil9KSx1ZShmdW5jdGlvbihlKXtlLmlubmVySFRNTD0iPGEgaHJlZj0nJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjwvYT48c2VsZWN0IGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbi8+PC9zZWxlY3Q+Ijt2YXIgdD1kLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxlLmFwcGVuZENoaWxkKHQpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZ5LnB1c2goIm5hbWUiK00rIipbKl4kfCF+XT89IiksMiE9PWUucXVlcnlTZWxlY3RvckFsbCgiOmVuYWJsZWQiKS5sZW5ndGgmJnkucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKSxoLmFwcGVuZENoaWxkKGUpLmRpc2FibGVkPSEwLDIhPT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIjpkaXNhYmxlZCIpLmxlbmd0aCYmeS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGUucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHkucHVzaCgiLC4qOiIpfSkpLChuLm1hdGNoZXNTZWxlY3Rvcj1RLnRlc3QobT1oLm1hdGNoZXN8fGgud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxoLm1vek1hdGNoZXNTZWxlY3Rvcnx8aC5vTWF0Y2hlc1NlbGVjdG9yfHxoLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJnVlKGZ1bmN0aW9uKGUpe24uZGlzY29ubmVjdGVkTWF0Y2g9bS5jYWxsKGUsIioiKSxtLmNhbGwoZSwiW3MhPScnXTp4Iiksdi5wdXNoKCIhPSIsVyl9KSx5PXkubGVuZ3RoJiZuZXcgUmVnRXhwKHkuam9pbigifCIpKSx2PXYubGVuZ3RoJiZuZXcgUmVnRXhwKHYuam9pbigifCIpKSx0PVEudGVzdChoLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKSx4PXR8fFEudGVzdChoLmNvbnRhaW5zKT9mdW5jdGlvbihlLHQpe3ZhciBuPTk9PT1lLm5vZGVUeXBlP2UuZG9jdW1lbnRFbGVtZW50OmUscj10JiZ0LnBhcmVudE5vZGU7cmV0dXJuIGU9PT1yfHwhKCFyfHwxIT09ci5ub2RlVHlwZXx8IShuLmNvbnRhaW5zP24uY29udGFpbnMocik6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmMTYmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihyKSkpfTpmdW5jdGlvbihlLHQpe2lmKHQpd2hpbGUodD10LnBhcmVudE5vZGUpaWYodD09PWUpcmV0dXJuITA7cmV0dXJuITF9LEQ9dD9mdW5jdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiBmPSEwLDA7dmFyIHI9IWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIXQuY29tcGFyZURvY3VtZW50UG9zaXRpb247cmV0dXJuIHJ8fCgxJihyPShlLm93bmVyRG9jdW1lbnR8fGUpPT09KHQub3duZXJEb2N1bWVudHx8dCk/ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KToxKXx8IW4uc29ydERldGFjaGVkJiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpPT09cj9lPT09ZHx8ZS5vd25lckRvY3VtZW50PT09dyYmeCh3LGUpPy0xOnQ9PT1kfHx0Lm93bmVyRG9jdW1lbnQ9PT13JiZ4KHcsdCk/MTpjP08oYyxlKS1PKGMsdCk6MDo0JnI/LTE6MSl9OmZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGY9ITAsMDt2YXIgbixyPTAsaT1lLnBhcmVudE5vZGUsbz10LnBhcmVudE5vZGUsYT1bZV0scz1bdF07aWYoIWl8fCFvKXJldHVybiBlPT09ZD8tMTp0PT09ZD8xOmk/LTE6bz8xOmM/TyhjLGUpLU8oYyx0KTowO2lmKGk9PT1vKXJldHVybiBjZShlLHQpO249ZTt3aGlsZShuPW4ucGFyZW50Tm9kZSlhLnVuc2hpZnQobik7bj10O3doaWxlKG49bi5wYXJlbnROb2RlKXMudW5zaGlmdChuKTt3aGlsZShhW3JdPT09c1tyXSlyKys7cmV0dXJuIHI/Y2UoYVtyXSxzW3JdKTphW3JdPT09dz8tMTpzW3JdPT09dz8xOjB9LGQpOmR9LG9lLm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gb2UoZSxudWxsLG51bGwsdCl9LG9lLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKChlLm93bmVyRG9jdW1lbnR8fGUpIT09ZCYmcChlKSx0PXQucmVwbGFjZSh6LCI9JyQxJ10iKSxuLm1hdGNoZXNTZWxlY3RvciYmZyYmIVNbdCsiICJdJiYoIXZ8fCF2LnRlc3QodCkpJiYoIXl8fCF5LnRlc3QodCkpKXRyeXt2YXIgcj1tLmNhbGwoZSx0KTtpZihyfHxuLmRpc2Nvbm5lY3RlZE1hdGNofHxlLmRvY3VtZW50JiYxMSE9PWUuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIHJ9Y2F0Y2goZSl7fXJldHVybiBvZSh0LGQsbnVsbCxbZV0pLmxlbmd0aD4wfSxvZS5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybihlLm93bmVyRG9jdW1lbnR8fGUpIT09ZCYmcChlKSx4KGUsdCl9LG9lLmF0dHI9ZnVuY3Rpb24oZSx0KXsoZS5vd25lckRvY3VtZW50fHxlKSE9PWQmJnAoZSk7dmFyIGk9ci5hdHRySGFuZGxlW3QudG9Mb3dlckNhc2UoKV0sbz1pJiZOLmNhbGwoci5hdHRySGFuZGxlLHQudG9Mb3dlckNhc2UoKSk/aShlLHQsIWcpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09bz9vOm4uYXR0cmlidXRlc3x8IWc/ZS5nZXRBdHRyaWJ1dGUodCk6KG89ZS5nZXRBdHRyaWJ1dGVOb2RlKHQpKSYmby5zcGVjaWZpZWQ/by52YWx1ZTpudWxsfSxvZS5lc2NhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrIiIpLnJlcGxhY2UodGUsbmUpfSxvZS5lcnJvcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZSl9LG9lLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQscj1bXSxpPTAsbz0wO2lmKGY9IW4uZGV0ZWN0RHVwbGljYXRlcyxjPSFuLnNvcnRTdGFibGUmJmUuc2xpY2UoMCksZS5zb3J0KEQpLGYpe3doaWxlKHQ9ZVtvKytdKXQ9PT1lW29dJiYoaT1yLnB1c2gobykpO3doaWxlKGktLSllLnNwbGljZShyW2ldLDEpfXJldHVybiBjPW51bGwsZX0saT1vZS5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49IiIscj0wLG89ZS5ub2RlVHlwZTtpZihvKXtpZigxPT09b3x8OT09PW98fDExPT09byl7aWYoInN0cmluZyI9PXR5cGVvZiBlLnRleHRDb250ZW50KXJldHVybiBlLnRleHRDb250ZW50O2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyluKz1pKGUpfWVsc2UgaWYoMz09PW98fDQ9PT1vKXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKHQ9ZVtyKytdKW4rPWkodCk7cmV0dXJuIG59LChyPW9lLnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOnNlLG1hdGNoOlYsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0ucmVwbGFjZShaLGVlKSxlWzNdPShlWzNdfHxlWzRdfHxlWzVdfHwiIikucmVwbGFjZShaLGVlKSwifj0iPT09ZVsyXSYmKGVbM109IiAiK2VbM10rIiAiKSxlLnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PWVbMV0uc2xpY2UoMCwzKT8oZVszXXx8b2UuZXJyb3IoZVswXSksZVs0XT0rKGVbNF0/ZVs1XSsoZVs2XXx8MSk6MiooImV2ZW4iPT09ZVszXXx8Im9kZCI9PT1lWzNdKSksZVs1XT0rKGVbN10rZVs4XXx8Im9kZCI9PT1lWzNdKSk6ZVszXSYmb2UuZXJyb3IoZVswXSksZX0sUFNFVURPOmZ1bmN0aW9uKGUpe3ZhciB0LG49IWVbNl0mJmVbMl07cmV0dXJuIFYuQ0hJTEQudGVzdChlWzBdKT9udWxsOihlWzNdP2VbMl09ZVs0XXx8ZVs1XXx8IiI6biYmWC50ZXN0KG4pJiYodD1hKG4sITApKSYmKHQ9bi5pbmRleE9mKCIpIixuLmxlbmd0aC10KS1uLmxlbmd0aCkmJihlWzBdPWVbMF0uc2xpY2UoMCx0KSxlWzJdPW4uc2xpY2UoMCx0KSksZS5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShaLGVlKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXR9fSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1FW2UrIiAiXTtyZXR1cm4gdHx8KHQ9bmV3IFJlZ0V4cCgiKF58IitNKyIpIitlKyIoIitNKyJ8JCkiKSkmJkUoZSxmdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KCJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWUmJmUuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmdW5jdGlvbihyKXt2YXIgaT1vZS5hdHRyKHIsZSk7cmV0dXJuIG51bGw9PWk/IiE9Ij09PXQ6IXR8fChpKz0iIiwiPSI9PT10P2k9PT1uOiIhPSI9PT10P2khPT1uOiJePSI9PT10P24mJjA9PT1pLmluZGV4T2Yobik6Iio9Ij09PXQ/biYmaS5pbmRleE9mKG4pPi0xOiIkPSI9PT10P24mJmkuc2xpY2UoLW4ubGVuZ3RoKT09PW46In49Ij09PXQ/KCIgIitpLnJlcGxhY2UoJCwiICIpKyIgIikuaW5kZXhPZihuKT4tMToifD0iPT09dCYmKGk9PT1ufHxpLnNsaWNlKDAsbi5sZW5ndGgrMSk9PT1uKyItIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbz0ibnRoIiE9PWUuc2xpY2UoMCwzKSxhPSJsYXN0IiE9PWUuc2xpY2UoLTQpLHM9Im9mLXR5cGUiPT09dDtyZXR1cm4gMT09PXImJjA9PT1pP2Z1bmN0aW9uKGUpe3JldHVybiEhZS5wYXJlbnROb2RlfTpmdW5jdGlvbih0LG4sdSl7dmFyIGwsYyxmLHAsZCxoLGc9byE9PWE/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIix5PXQucGFyZW50Tm9kZSx2PXMmJnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxtPSF1JiYhcyx4PSExO2lmKHkpe2lmKG8pe3doaWxlKGcpe3A9dDt3aGlsZShwPXBbZ10paWYocz9wLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT12OjE9PT1wLm5vZGVUeXBlKXJldHVybiExO2g9Zz0ib25seSI9PT1lJiYhaCYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihoPVthP3kuZmlyc3RDaGlsZDp5Lmxhc3RDaGlsZF0sYSYmbSl7eD0oZD0obD0oYz0oZj0ocD15KVtiXXx8KHBbYl09e30pKVtwLnVuaXF1ZUlEXXx8KGZbcC51bmlxdWVJRF09e30pKVtlXXx8W10pWzBdPT09VCYmbFsxXSkmJmxbMl0scD1kJiZ5LmNoaWxkTm9kZXNbZF07d2hpbGUocD0rK2QmJnAmJnBbZ118fCh4PWQ9MCl8fGgucG9wKCkpaWYoMT09PXAubm9kZVR5cGUmJisreCYmcD09PXQpe2NbZV09W1QsZCx4XTticmVha319ZWxzZSBpZihtJiYoeD1kPShsPShjPShmPShwPXQpW2JdfHwocFtiXT17fSkpW3AudW5pcXVlSURdfHwoZltwLnVuaXF1ZUlEXT17fSkpW2VdfHxbXSlbMF09PT1UJiZsWzFdKSwhMT09PXgpd2hpbGUocD0rK2QmJnAmJnBbZ118fCh4PWQ9MCl8fGgucG9wKCkpaWYoKHM/cC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09djoxPT09cC5ub2RlVHlwZSkmJisreCYmKG0mJigoYz0oZj1wW2JdfHwocFtiXT17fSkpW3AudW5pcXVlSURdfHwoZltwLnVuaXF1ZUlEXT17fSkpW2VdPVtULHhdKSxwPT09dCkpYnJlYWs7cmV0dXJuKHgtPWkpPT09cnx8eCVyPT0wJiZ4L3I+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT1yLnBzZXVkb3NbZV18fHIuc2V0RmlsdGVyc1tlLnRvTG93ZXJDYXNlKCldfHxvZS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2UpO3JldHVybiBpW2JdP2kodCk6aS5sZW5ndGg+MT8obj1bZSxlLCIiLHRdLHIuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShlLnRvTG93ZXJDYXNlKCkpP3NlKGZ1bmN0aW9uKGUsbil7dmFyIHIsbz1pKGUsdCksYT1vLmxlbmd0aDt3aGlsZShhLS0pZVtyPU8oZSxvW2FdKV09IShuW3JdPW9bYV0pfSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSwwLG4pfSk6aX19LHBzZXVkb3M6e25vdDpzZShmdW5jdGlvbihlKXt2YXIgdD1bXSxuPVtdLHI9cyhlLnJlcGxhY2UoQiwiJDEiKSk7cmV0dXJuIHJbYl0/c2UoZnVuY3Rpb24oZSx0LG4saSl7dmFyIG8sYT1yKGUsbnVsbCxpLFtdKSxzPWUubGVuZ3RoO3doaWxlKHMtLSkobz1hW3NdKSYmKGVbc109ISh0W3NdPW8pKX0pOmZ1bmN0aW9uKGUsaSxvKXtyZXR1cm4gdFswXT1lLHIodCxudWxsLG8sbiksdFswXT1udWxsLCFuLnBvcCgpfX0pLGhhczpzZShmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG9lKGUsdCkubGVuZ3RoPjB9fSksY29udGFpbnM6c2UoZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZS5yZXBsYWNlKFosZWUpLGZ1bmN0aW9uKHQpe3JldHVybih0LnRleHRDb250ZW50fHx0LmlubmVyVGV4dHx8aSh0KSkuaW5kZXhPZihlKT4tMX19KSxsYW5nOnNlKGZ1bmN0aW9uKGUpe3JldHVybiBVLnRlc3QoZXx8IiIpfHxvZS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIitlKSxlPWUucmVwbGFjZShaLGVlKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKHQpe3ZhciBuO2Rve2lmKG49Zz90Lmxhbmc6dC5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fHQuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuKG49bi50b0xvd2VyQ2FzZSgpKT09PWV8fDA9PT1uLmluZGV4T2YoZSsiLSIpfXdoaWxlKCh0PXQucGFyZW50Tm9kZSkmJjE9PT10Lm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24odCl7dmFyIG49ZS5sb2NhdGlvbiYmZS5sb2NhdGlvbi5oYXNoO3JldHVybiBuJiZuLnNsaWNlKDEpPT09dC5pZH0scm9vdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWh9LGZvY3VzOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09ZC5hY3RpdmVFbGVtZW50JiYoIWQuaGFzRm9jdXN8fGQuaGFzRm9jdXMoKSkmJiEhKGUudHlwZXx8ZS5ocmVmfHx+ZS50YWJJbmRleCl9LGVuYWJsZWQ6ZGUoITEpLGRpc2FibGVkOmRlKCEwKSxjaGVja2VkOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dCYmISFlLmNoZWNrZWR8fCJvcHRpb24iPT09dCYmISFlLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwhMD09PWUuc2VsZWN0ZWR9LGVtcHR5OmZ1bmN0aW9uKGUpe2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZylpZihlLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihlKXtyZXR1cm4hci5wc2V1ZG9zLmVtcHR5KGUpfSxoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIFkudGVzdChlLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIEcudGVzdChlLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dCYmImJ1dHRvbiI9PT1lLnR5cGV8fCJidXR0b24iPT09dH0sdGV4dDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1lLnR5cGUmJihudWxsPT0odD1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09dC50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6aGUoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0OmhlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuW3QtMV19KSxlcTpoZShmdW5jdGlvbihlLHQsbil7cmV0dXJuW248MD9uK3Q6bl19KSxldmVuOmhlKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjx0O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksb2RkOmhlKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTE7bjx0O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksbHQ6aGUoZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uPDA/bit0Om47LS1yPj0wOyllLnB1c2gocik7cmV0dXJuIGV9KSxndDpoZShmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPW48MD9uK3Q6bjsrK3I8dDspZS5wdXNoKHIpO3JldHVybiBlfSl9fSkucHNldWRvcy5udGg9ci5wc2V1ZG9zLmVxO2Zvcih0IGlue3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KXIucHNldWRvc1t0XT1mZSh0KTtmb3IodCBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KXIucHNldWRvc1t0XT1wZSh0KTtmdW5jdGlvbiB5ZSgpe315ZS5wcm90b3R5cGU9ci5maWx0ZXJzPXIucHNldWRvcyxyLnNldEZpbHRlcnM9bmV3IHllLGE9b2UudG9rZW5pemU9ZnVuY3Rpb24oZSx0KXt2YXIgbixpLG8sYSxzLHUsbCxjPWtbZSsiICJdO2lmKGMpcmV0dXJuIHQ/MDpjLnNsaWNlKDApO3M9ZSx1PVtdLGw9ci5wcmVGaWx0ZXI7d2hpbGUocyl7biYmIShpPUYuZXhlYyhzKSl8fChpJiYocz1zLnNsaWNlKGlbMF0ubGVuZ3RoKXx8cyksdS5wdXNoKG89W10pKSxuPSExLChpPV8uZXhlYyhzKSkmJihuPWkuc2hpZnQoKSxvLnB1c2goe3ZhbHVlOm4sdHlwZTppWzBdLnJlcGxhY2UoQiwiICIpfSkscz1zLnNsaWNlKG4ubGVuZ3RoKSk7Zm9yKGEgaW4gci5maWx0ZXIpIShpPVZbYV0uZXhlYyhzKSl8fGxbYV0mJiEoaT1sW2FdKGkpKXx8KG49aS5zaGlmdCgpLG8ucHVzaCh7dmFsdWU6bix0eXBlOmEsbWF0Y2hlczppfSkscz1zLnNsaWNlKG4ubGVuZ3RoKSk7aWYoIW4pYnJlYWt9cmV0dXJuIHQ/cy5sZW5ndGg6cz9vZS5lcnJvcihlKTprKGUsdSkuc2xpY2UoMCl9O2Z1bmN0aW9uIHZlKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscj0iIjt0PG47dCsrKXIrPWVbdF0udmFsdWU7cmV0dXJuIHJ9ZnVuY3Rpb24gbWUoZSx0LG4pe3ZhciByPXQuZGlyLGk9dC5uZXh0LG89aXx8cixhPW4mJiJwYXJlbnROb2RlIj09PW8scz1DKys7cmV0dXJuIHQuZmlyc3Q/ZnVuY3Rpb24odCxuLGkpe3doaWxlKHQ9dFtyXSlpZigxPT09dC5ub2RlVHlwZXx8YSlyZXR1cm4gZSh0LG4saSk7cmV0dXJuITF9OmZ1bmN0aW9uKHQsbix1KXt2YXIgbCxjLGYscD1bVCxzXTtpZih1KXt3aGlsZSh0PXRbcl0paWYoKDE9PT10Lm5vZGVUeXBlfHxhKSYmZSh0LG4sdSkpcmV0dXJuITB9ZWxzZSB3aGlsZSh0PXRbcl0paWYoMT09PXQubm9kZVR5cGV8fGEpaWYoZj10W2JdfHwodFtiXT17fSksYz1mW3QudW5pcXVlSURdfHwoZlt0LnVuaXF1ZUlEXT17fSksaSYmaT09PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl0PXRbcl18fHQ7ZWxzZXtpZigobD1jW29dKSYmbFswXT09PVQmJmxbMV09PT1zKXJldHVybiBwWzJdPWxbMl07aWYoY1tvXT1wLHBbMl09ZSh0LG4sdSkpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHhlKGUpe3JldHVybiBlLmxlbmd0aD4xP2Z1bmN0aW9uKHQsbixyKXt2YXIgaT1lLmxlbmd0aDt3aGlsZShpLS0paWYoIWVbaV0odCxuLHIpKXJldHVybiExO3JldHVybiEwfTplWzBdfWZ1bmN0aW9uIGJlKGUsdCxuKXtmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspb2UoZSx0W3JdLG4pO3JldHVybiBufWZ1bmN0aW9uIHdlKGUsdCxuLHIsaSl7Zm9yKHZhciBvLGE9W10scz0wLHU9ZS5sZW5ndGgsbD1udWxsIT10O3M8dTtzKyspKG89ZVtzXSkmJihuJiYhbihvLHIsaSl8fChhLnB1c2gobyksbCYmdC5wdXNoKHMpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gVGUoZSx0LG4scixpLG8pe3JldHVybiByJiYhcltiXSYmKHI9VGUocikpLGkmJiFpW2JdJiYoaT1UZShpLG8pKSxzZShmdW5jdGlvbihvLGEscyx1KXt2YXIgbCxjLGYscD1bXSxkPVtdLGg9YS5sZW5ndGgsZz1vfHxiZSh0fHwiKiIscy5ub2RlVHlwZT9bc106cyxbXSkseT0hZXx8IW8mJnQ/Zzp3ZShnLHAsZSxzLHUpLHY9bj9pfHwobz9lOmh8fHIpP1tdOmE6eTtpZihuJiZuKHksdixzLHUpLHIpe2w9d2UodixkKSxyKGwsW10scyx1KSxjPWwubGVuZ3RoO3doaWxlKGMtLSkoZj1sW2NdKSYmKHZbZFtjXV09ISh5W2RbY11dPWYpKX1pZihvKXtpZihpfHxlKXtpZihpKXtsPVtdLGM9di5sZW5ndGg7d2hpbGUoYy0tKShmPXZbY10pJiZsLnB1c2goeVtjXT1mKTtpKG51bGwsdj1bXSxsLHUpfWM9di5sZW5ndGg7d2hpbGUoYy0tKShmPXZbY10pJiYobD1pP08obyxmKTpwW2NdKT4tMSYmKG9bbF09IShhW2xdPWYpKX19ZWxzZSB2PXdlKHY9PT1hP3Yuc3BsaWNlKGgsdi5sZW5ndGgpOnYpLGk/aShudWxsLGEsdix1KTpMLmFwcGx5KGEsdil9KX1mdW5jdGlvbiBDZShlKXtmb3IodmFyIHQsbixpLG89ZS5sZW5ndGgsYT1yLnJlbGF0aXZlW2VbMF0udHlwZV0scz1hfHxyLnJlbGF0aXZlWyIgIl0sdT1hPzE6MCxjPW1lKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dH0scywhMCksZj1tZShmdW5jdGlvbihlKXtyZXR1cm4gTyh0LGUpPi0xfSxzLCEwKSxwPVtmdW5jdGlvbihlLG4scil7dmFyIGk9IWEmJihyfHxuIT09bCl8fCgodD1uKS5ub2RlVHlwZT9jKGUsbixyKTpmKGUsbixyKSk7cmV0dXJuIHQ9bnVsbCxpfV07dTxvO3UrKylpZihuPXIucmVsYXRpdmVbZVt1XS50eXBlXSlwPVttZSh4ZShwKSxuKV07ZWxzZXtpZigobj1yLmZpbHRlcltlW3VdLnR5cGVdLmFwcGx5KG51bGwsZVt1XS5tYXRjaGVzKSlbYl0pe2ZvcihpPSsrdTtpPG87aSsrKWlmKHIucmVsYXRpdmVbZVtpXS50eXBlXSlicmVhaztyZXR1cm4gVGUodT4xJiZ4ZShwKSx1PjEmJnZlKGUuc2xpY2UoMCx1LTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09ZVt1LTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoQiwiJDEiKSxuLHU8aSYmQ2UoZS5zbGljZSh1LGkpKSxpPG8mJkNlKGU9ZS5zbGljZShpKSksaTxvJiZ2ZShlKSl9cC5wdXNoKG4pfXJldHVybiB4ZShwKX1mdW5jdGlvbiBFZShlLHQpe3ZhciBuPXQubGVuZ3RoPjAsaT1lLmxlbmd0aD4wLG89ZnVuY3Rpb24obyxhLHMsdSxjKXt2YXIgZixoLHksdj0wLG09IjAiLHg9byYmW10sYj1bXSx3PWwsQz1vfHxpJiZyLmZpbmQuVEFHKCIqIixjKSxFPVQrPW51bGw9PXc/MTpNYXRoLnJhbmRvbSgpfHwuMSxrPUMubGVuZ3RoO2ZvcihjJiYobD1hPT09ZHx8YXx8Yyk7bSE9PWsmJm51bGwhPShmPUNbbV0pO20rKyl7aWYoaSYmZil7aD0wLGF8fGYub3duZXJEb2N1bWVudD09PWR8fChwKGYpLHM9IWcpO3doaWxlKHk9ZVtoKytdKWlmKHkoZixhfHxkLHMpKXt1LnB1c2goZik7YnJlYWt9YyYmKFQ9RSl9biYmKChmPSF5JiZmKSYmdi0tLG8mJngucHVzaChmKSl9aWYodis9bSxuJiZtIT09dil7aD0wO3doaWxlKHk9dFtoKytdKXkoeCxiLGEscyk7aWYobyl7aWYodj4wKXdoaWxlKG0tLSl4W21dfHxiW21dfHwoYlttXT1qLmNhbGwodSkpO2I9d2UoYil9TC5hcHBseSh1LGIpLGMmJiFvJiZiLmxlbmd0aD4wJiZ2K3QubGVuZ3RoPjEmJm9lLnVuaXF1ZVNvcnQodSl9cmV0dXJuIGMmJihUPUUsbD13KSx4fTtyZXR1cm4gbj9zZShvKTpvfXJldHVybiBzPW9lLmNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPVtdLGk9W10sbz1TW2UrIiAiXTtpZighbyl7dHx8KHQ9YShlKSksbj10Lmxlbmd0aDt3aGlsZShuLS0pKG89Q2UodFtuXSkpW2JdP3IucHVzaChvKTppLnB1c2gobyk7KG89UyhlLEVlKGkscikpKS5zZWxlY3Rvcj1lfXJldHVybiBvfSx1PW9lLnNlbGVjdD1mdW5jdGlvbihlLHQsbixpKXt2YXIgbyx1LGwsYyxmLHA9ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUsZD0haSYmYShlPXAuc2VsZWN0b3J8fGUpO2lmKG49bnx8W10sMT09PWQubGVuZ3RoKXtpZigodT1kWzBdPWRbMF0uc2xpY2UoMCkpLmxlbmd0aD4yJiYiSUQiPT09KGw9dVswXSkudHlwZSYmOT09PXQubm9kZVR5cGUmJmcmJnIucmVsYXRpdmVbdVsxXS50eXBlXSl7aWYoISh0PShyLmZpbmQuSUQobC5tYXRjaGVzWzBdLnJlcGxhY2UoWixlZSksdCl8fFtdKVswXSkpcmV0dXJuIG47cCYmKHQ9dC5wYXJlbnROb2RlKSxlPWUuc2xpY2UodS5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9bz1WLm5lZWRzQ29udGV4dC50ZXN0KGUpPzA6dS5sZW5ndGg7d2hpbGUoby0tKXtpZihsPXVbb10sci5yZWxhdGl2ZVtjPWwudHlwZV0pYnJlYWs7aWYoKGY9ci5maW5kW2NdKSYmKGk9ZihsLm1hdGNoZXNbMF0ucmVwbGFjZShaLGVlKSxLLnRlc3QodVswXS50eXBlKSYmZ2UodC5wYXJlbnROb2RlKXx8dCkpKXtpZih1LnNwbGljZShvLDEpLCEoZT1pLmxlbmd0aCYmdmUodSkpKXJldHVybiBMLmFwcGx5KG4saSksbjticmVha319fXJldHVybihwfHxzKGUsZCkpKGksdCwhZyxuLCF0fHxLLnRlc3QoZSkmJmdlKHQucGFyZW50Tm9kZSl8fHQpLG59LG4uc29ydFN0YWJsZT1iLnNwbGl0KCIiKS5zb3J0KEQpLmpvaW4oIiIpPT09YixuLmRldGVjdER1cGxpY2F0ZXM9ISFmLHAoKSxuLnNvcnREZXRhY2hlZD11ZShmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSl9KSx1ZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxsZSgidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oZSx0LG4pe2lmKCFuKXJldHVybiBlLmdldEF0dHJpYnV0ZSh0LCJ0eXBlIj09PXQudG9Mb3dlckNhc2UoKT8xOjIpfSksbi5hdHRyaWJ1dGVzJiZ1ZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxpbnB1dC8+IixlLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09ZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxsZSgidmFsdWUiLGZ1bmN0aW9uKGUsdCxuKXtpZighbiYmImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gZS5kZWZhdWx0VmFsdWV9KSx1ZShmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8bGUoUCxmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoIW4pcmV0dXJuITA9PT1lW3RdP3QudG9Mb3dlckNhc2UoKToocj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZyLnNwZWNpZmllZD9yLnZhbHVlOm51bGx9KSxvZX0oZSk7dy5maW5kPUUsdy5leHByPUUuc2VsZWN0b3JzLHcuZXhwclsiOiJdPXcuZXhwci5wc2V1ZG9zLHcudW5pcXVlU29ydD13LnVuaXF1ZT1FLnVuaXF1ZVNvcnQsdy50ZXh0PUUuZ2V0VGV4dCx3LmlzWE1MRG9jPUUuaXNYTUwsdy5jb250YWlucz1FLmNvbnRhaW5zLHcuZXNjYXBlU2VsZWN0b3I9RS5lc2NhcGU7dmFyIGs9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVtdLGk9dm9pZCAwIT09bjt3aGlsZSgoZT1lW3RdKSYmOSE9PWUubm9kZVR5cGUpaWYoMT09PWUubm9kZVR5cGUpe2lmKGkmJncoZSkuaXMobikpYnJlYWs7ci5wdXNoKGUpfXJldHVybiByfSxTPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdO2U7ZT1lLm5leHRTaWJsaW5nKTE9PT1lLm5vZGVUeXBlJiZlIT09dCYmbi5wdXNoKGUpO3JldHVybiBufSxEPXcuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7ZnVuY3Rpb24gTihlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9dmFyIEE9L148KFthLXpdW15cL1wwPjpceDIwXHRcclxuXGZdKilbXHgyMFx0XHJcblxmXSpcLz8+KD86PFwvXDE+fCkkL2k7ZnVuY3Rpb24gaihlLHQsbil7cmV0dXJuIGcodCk/dy5ncmVwKGUsZnVuY3Rpb24oZSxyKXtyZXR1cm4hIXQuY2FsbChlLHIsZSkhPT1ufSk6dC5ub2RlVHlwZT93LmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZT09PXQhPT1ufSk6InN0cmluZyIhPXR5cGVvZiB0P3cuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybiB1LmNhbGwodCxlKT4tMSE9PW59KTp3LmZpbHRlcih0LGUsbil9dy5maWx0ZXI9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF07cmV0dXJuIG4mJihlPSI6bm90KCIrZSsiKSIpLDE9PT10Lmxlbmd0aCYmMT09PXIubm9kZVR5cGU/dy5maW5kLm1hdGNoZXNTZWxlY3RvcihyLGUpP1tyXTpbXTp3LmZpbmQubWF0Y2hlcyhlLHcuZ3JlcCh0LGZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZX0pKX0sdy5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyPXRoaXMubGVuZ3RoLGk9dGhpcztpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIHRoaXMucHVzaFN0YWNrKHcoZSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHQ9MDt0PHI7dCsrKWlmKHcuY29udGFpbnMoaVt0XSx0aGlzKSlyZXR1cm4hMH0pKTtmb3Iobj10aGlzLnB1c2hTdGFjayhbXSksdD0wO3Q8cjt0Kyspdy5maW5kKGUsaVt0XSxuKTtyZXR1cm4gcj4xP3cudW5pcXVlU29ydChuKTpufSxmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGoodGhpcyxlfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGoodGhpcyxlfHxbXSwhMCkpfSxpczpmdW5jdGlvbihlKXtyZXR1cm4hIWoodGhpcywic3RyaW5nIj09dHlwZW9mIGUmJkQudGVzdChlKT93KGUpOmV8fFtdLCExKS5sZW5ndGh9fSk7dmFyIHEsTD0vXig/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSspKSQvOyh3LmZuLmluaXQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLG87aWYoIWUpcmV0dXJuIHRoaXM7aWYobj1ufHxxLCJzdHJpbmciPT10eXBlb2YgZSl7aWYoIShpPSI8Ij09PWVbMF0mJiI+Ij09PWVbZS5sZW5ndGgtMV0mJmUubGVuZ3RoPj0zP1tudWxsLGUsbnVsbF06TC5leGVjKGUpKXx8IWlbMV0mJnQpcmV0dXJuIXR8fHQuanF1ZXJ5Pyh0fHxuKS5maW5kKGUpOnRoaXMuY29uc3RydWN0b3IodCkuZmluZChlKTtpZihpWzFdKXtpZih0PXQgaW5zdGFuY2VvZiB3P3RbMF06dCx3Lm1lcmdlKHRoaXMsdy5wYXJzZUhUTUwoaVsxXSx0JiZ0Lm5vZGVUeXBlP3Qub3duZXJEb2N1bWVudHx8dDpyLCEwKSksQS50ZXN0KGlbMV0pJiZ3LmlzUGxhaW5PYmplY3QodCkpZm9yKGkgaW4gdClnKHRoaXNbaV0pP3RoaXNbaV0odFtpXSk6dGhpcy5hdHRyKGksdFtpXSk7cmV0dXJuIHRoaXN9cmV0dXJuKG89ci5nZXRFbGVtZW50QnlJZChpWzJdKSkmJih0aGlzWzBdPW8sdGhpcy5sZW5ndGg9MSksdGhpc31yZXR1cm4gZS5ub2RlVHlwZT8odGhpc1swXT1lLHRoaXMubGVuZ3RoPTEsdGhpcyk6ZyhlKT92b2lkIDAhPT1uLnJlYWR5P24ucmVhZHkoZSk6ZSh3KTp3Lm1ha2VBcnJheShlLHRoaXMpfSkucHJvdG90eXBlPXcuZm4scT13KHIpO3ZhciBIPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLE89e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07dy5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihlKXt2YXIgdD13KGUsdGhpcyksbj10Lmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPG47ZSsrKWlmKHcuY29udGFpbnModGhpcyx0W2VdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wLGk9dGhpcy5sZW5ndGgsbz1bXSxhPSJzdHJpbmciIT10eXBlb2YgZSYmdyhlKTtpZighRC50ZXN0KGUpKWZvcig7cjxpO3IrKylmb3Iobj10aGlzW3JdO24mJm4hPT10O249bi5wYXJlbnROb2RlKWlmKG4ubm9kZVR5cGU8MTEmJihhP2EuaW5kZXgobik+LTE6MT09PW4ubm9kZVR5cGUmJncuZmluZC5tYXRjaGVzU2VsZWN0b3IobixlKSkpe28ucHVzaChuKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soby5sZW5ndGg+MT93LnVuaXF1ZVNvcnQobyk6byl9LGluZGV4OmZ1bmN0aW9uKGUpe3JldHVybiBlPyJzdHJpbmciPT10eXBlb2YgZT91LmNhbGwodyhlKSx0aGlzWzBdKTp1LmNhbGwodGhpcyxlLmpxdWVyeT9lWzBdOmUpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcudW5pcXVlU29ydCh3Lm1lcmdlKHRoaXMuZ2V0KCksdyhlLHQpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFkZChudWxsPT1lP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGUpKX19KTtmdW5jdGlvbiBQKGUsdCl7d2hpbGUoKGU9ZVt0XSkmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX13LmVhY2goe3BhcmVudDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQmJjExIT09dC5ub2RlVHlwZT90Om51bGx9LHBhcmVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBrKGUsInBhcmVudE5vZGUiLG4pfSxuZXh0OmZ1bmN0aW9uKGUpe3JldHVybiBQKGUsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oZSl7cmV0dXJuIFAoZSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihlKXtyZXR1cm4gayhlLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gayhlLCJuZXh0U2libGluZyIsbil9LHByZXZVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGsoZSwicHJldmlvdXNTaWJsaW5nIixuKX0sc2libGluZ3M6ZnVuY3Rpb24oZSl7cmV0dXJuIFMoKGUucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsZSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGUpe3JldHVybiBTKGUuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGUpe3JldHVybiBOKGUsImlmcmFtZSIpP2UuY29udGVudERvY3VtZW50OihOKGUsInRlbXBsYXRlIikmJihlPWUuY29udGVudHx8ZSksdy5tZXJnZShbXSxlLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKGUsdCl7dy5mbltlXT1mdW5jdGlvbihuLHIpe3ZhciBpPXcubWFwKHRoaXMsdCxuKTtyZXR1cm4iVW50aWwiIT09ZS5zbGljZSgtNSkmJihyPW4pLHImJiJzdHJpbmciPT10eXBlb2YgciYmKGk9dy5maWx0ZXIocixpKSksdGhpcy5sZW5ndGg+MSYmKE9bZV18fHcudW5pcXVlU29ydChpKSxILnRlc3QoZSkmJmkucmV2ZXJzZSgpKSx0aGlzLnB1c2hTdGFjayhpKX19KTt2YXIgTT0vW15ceDIwXHRcclxuXGZdKy9nO2Z1bmN0aW9uIFIoZSl7dmFyIHQ9e307cmV0dXJuIHcuZWFjaChlLm1hdGNoKE0pfHxbXSxmdW5jdGlvbihlLG4pe3Rbbl09ITB9KSx0fXcuQ2FsbGJhY2tzPWZ1bmN0aW9uKGUpe2U9InN0cmluZyI9PXR5cGVvZiBlP1IoZSk6dy5leHRlbmQoe30sZSk7dmFyIHQsbixyLGksbz1bXSxhPVtdLHM9LTEsdT1mdW5jdGlvbigpe2ZvcihpPWl8fGUub25jZSxyPXQ9ITA7YS5sZW5ndGg7cz0tMSl7bj1hLnNoaWZ0KCk7d2hpbGUoKytzPG8ubGVuZ3RoKSExPT09b1tzXS5hcHBseShuWzBdLG5bMV0pJiZlLnN0b3BPbkZhbHNlJiYocz1vLmxlbmd0aCxuPSExKX1lLm1lbW9yeXx8KG49ITEpLHQ9ITEsaSYmKG89bj9bXToiIil9LGw9e2FkZDpmdW5jdGlvbigpe3JldHVybiBvJiYobiYmIXQmJihzPW8ubGVuZ3RoLTEsYS5wdXNoKG4pKSxmdW5jdGlvbiB0KG4pe3cuZWFjaChuLGZ1bmN0aW9uKG4scil7ZyhyKT9lLnVuaXF1ZSYmbC5oYXMocil8fG8ucHVzaChyKTpyJiZyLmxlbmd0aCYmInN0cmluZyIhPT14KHIpJiZ0KHIpfSl9KGFyZ3VtZW50cyksbiYmIXQmJnUoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHcuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgbjt3aGlsZSgobj13LmluQXJyYXkodCxvLG4pKT4tMSlvLnNwbGljZShuLDEpLG48PXMmJnMtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT93LmluQXJyYXkoZSxvKT4tMTpvLmxlbmd0aD4wfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBvJiYobz1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBpPWE9W10sbz1uPSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIW99LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gaT1hPVtdLG58fHR8fChvPW49IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhaX0sZmlyZVdpdGg6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gaXx8KG49W2UsKG49bnx8W10pLnNsaWNlP24uc2xpY2UoKTpuXSxhLnB1c2gobiksdHx8dSgpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGwuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFyfX07cmV0dXJuIGx9O2Z1bmN0aW9uIEkoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gVyhlKXt0aHJvdyBlfWZ1bmN0aW9uICQoZSx0LG4scil7dmFyIGk7dHJ5e2UmJmcoaT1lLnByb21pc2UpP2kuY2FsbChlKS5kb25lKHQpLmZhaWwobik6ZSYmZyhpPWUudGhlbik/aS5jYWxsKGUsdCxuKTp0LmFwcGx5KHZvaWQgMCxbZV0uc2xpY2UocikpfWNhdGNoKGUpe24uYXBwbHkodm9pZCAwLFtlXSl9fXcuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbih0KXt2YXIgbj1bWyJub3RpZnkiLCJwcm9ncmVzcyIsdy5DYWxsYmFja3MoIm1lbW9yeSIpLHcuQ2FsbGJhY2tzKCJtZW1vcnkiKSwyXSxbInJlc29sdmUiLCJkb25lIix3LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwwLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsdy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksdy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0scj0icGVuZGluZyIsaT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIG8uZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGUpe3JldHVybiBpLnRoZW4obnVsbCxlKX0scGlwZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztyZXR1cm4gdy5EZWZlcnJlZChmdW5jdGlvbih0KXt3LmVhY2gobixmdW5jdGlvbihuLHIpe3ZhciBpPWcoZVtyWzRdXSkmJmVbcls0XV07b1tyWzFdXShmdW5jdGlvbigpe3ZhciBlPWkmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJmcoZS5wcm9taXNlKT9lLnByb21pc2UoKS5wcm9ncmVzcyh0Lm5vdGlmeSkuZG9uZSh0LnJlc29sdmUpLmZhaWwodC5yZWplY3QpOnRbclswXSsiV2l0aCJdKHRoaXMsaT9bZV06YXJndW1lbnRzKX0pfSksZT1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKHQscixpKXt2YXIgbz0wO2Z1bmN0aW9uIGEodCxuLHIsaSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM9dGhpcyx1PWFyZ3VtZW50cyxsPWZ1bmN0aW9uKCl7dmFyIGUsbDtpZighKHQ8bykpe2lmKChlPXIuYXBwbHkocyx1KSk9PT1uLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTtsPWUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSYmZS50aGVuLGcobCk/aT9sLmNhbGwoZSxhKG8sbixJLGkpLGEobyxuLFcsaSkpOihvKyssbC5jYWxsKGUsYShvLG4sSSxpKSxhKG8sbixXLGkpLGEobyxuLEksbi5ub3RpZnlXaXRoKSkpOihyIT09SSYmKHM9dm9pZCAwLHU9W2VdKSwoaXx8bi5yZXNvbHZlV2l0aCkocyx1KSl9fSxjPWk/bDpmdW5jdGlvbigpe3RyeXtsKCl9Y2F0Y2goZSl7dy5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZ3LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2soZSxjLnN0YWNrVHJhY2UpLHQrMT49byYmKHIhPT1XJiYocz12b2lkIDAsdT1bZV0pLG4ucmVqZWN0V2l0aChzLHUpKX19O3Q/YygpOih3LkRlZmVycmVkLmdldFN0YWNrSG9vayYmKGMuc3RhY2tUcmFjZT13LkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSxlLnNldFRpbWVvdXQoYykpfX1yZXR1cm4gdy5EZWZlcnJlZChmdW5jdGlvbihlKXtuWzBdWzNdLmFkZChhKDAsZSxnKGkpP2k6SSxlLm5vdGlmeVdpdGgpKSxuWzFdWzNdLmFkZChhKDAsZSxnKHQpP3Q6SSkpLG5bMl1bM10uYWRkKGEoMCxlLGcocik/cjpXKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/dy5leHRlbmQoZSxpKTppfX0sbz17fTtyZXR1cm4gdy5lYWNoKG4sZnVuY3Rpb24oZSx0KXt2YXIgYT10WzJdLHM9dFs1XTtpW3RbMV1dPWEuYWRkLHMmJmEuYWRkKGZ1bmN0aW9uKCl7cj1zfSxuWzMtZV1bMl0uZGlzYWJsZSxuWzMtZV1bM10uZGlzYWJsZSxuWzBdWzJdLmxvY2ssblswXVszXS5sb2NrKSxhLmFkZCh0WzNdLmZpcmUpLG9bdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gb1t0WzBdKyJXaXRoIl0odGhpcz09PW8/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxvW3RbMF0rIldpdGgiXT1hLmZpcmVXaXRofSksaS5wcm9taXNlKG8pLHQmJnQuY2FsbChvLG8pLG99LHdoZW46ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxuPXQscj1BcnJheShuKSxpPW8uY2FsbChhcmd1bWVudHMpLGE9dy5EZWZlcnJlZCgpLHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JbZV09dGhpcyxpW2VdPWFyZ3VtZW50cy5sZW5ndGg+MT9vLmNhbGwoYXJndW1lbnRzKTpuLC0tdHx8YS5yZXNvbHZlV2l0aChyLGkpfX07aWYodDw9MSYmKCQoZSxhLmRvbmUocyhuKSkucmVzb2x2ZSxhLnJlamVjdCwhdCksInBlbmRpbmciPT09YS5zdGF0ZSgpfHxnKGlbbl0mJmlbbl0udGhlbikpKXJldHVybiBhLnRoZW4oKTt3aGlsZShuLS0pJChpW25dLHMobiksYS5yZWplY3QpO3JldHVybiBhLnByb21pc2UoKX19KTt2YXIgQj0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLzt3LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24odCxuKXtlLmNvbnNvbGUmJmUuY29uc29sZS53YXJuJiZ0JiZCLnRlc3QodC5uYW1lKSYmZS5jb25zb2xlLndhcm4oImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246ICIrdC5tZXNzYWdlLHQuc3RhY2ssbil9LHcucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24odCl7ZS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgdH0pfTt2YXIgRj13LkRlZmVycmVkKCk7dy5mbi5yZWFkeT1mdW5jdGlvbihlKXtyZXR1cm4gRi50aGVuKGUpWyJjYXRjaCJdKGZ1bmN0aW9uKGUpe3cucmVhZHlFeGNlcHRpb24oZSl9KSx0aGlzfSx3LmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihlKXsoITA9PT1lPy0tdy5yZWFkeVdhaXQ6dy5pc1JlYWR5KXx8KHcuaXNSZWFkeT0hMCwhMCE9PWUmJi0tdy5yZWFkeVdhaXQ+MHx8Ri5yZXNvbHZlV2l0aChyLFt3XSkpfX0pLHcucmVhZHkudGhlbj1GLnRoZW47ZnVuY3Rpb24gXygpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsXyksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixfKSx3LnJlYWR5KCl9ImNvbXBsZXRlIj09PXIucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09ci5yZWFkeVN0YXRlJiYhci5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/ZS5zZXRUaW1lb3V0KHcucmVhZHkpOihyLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLF8pLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsXykpO3ZhciB6PWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe3ZhciBzPTAsdT1lLmxlbmd0aCxsPW51bGw9PW47aWYoIm9iamVjdCI9PT14KG4pKXtpPSEwO2ZvcihzIGluIG4peihlLHQscyxuW3NdLCEwLG8sYSl9ZWxzZSBpZih2b2lkIDAhPT1yJiYoaT0hMCxnKHIpfHwoYT0hMCksbCYmKGE/KHQuY2FsbChlLHIpLHQ9bnVsbCk6KGw9dCx0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbC5jYWxsKHcoZSksbil9KSksdCkpZm9yKDtzPHU7cysrKXQoZVtzXSxuLGE/cjpyLmNhbGwoZVtzXSxzLHQoZVtzXSxuKSkpO3JldHVybiBpP2U6bD90LmNhbGwoZSk6dT90KGVbMF0sbik6b30sWD0vXi1tcy0vLFU9Ly0oW2Etel0pL2c7ZnVuY3Rpb24gVihlLHQpe3JldHVybiB0LnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gRyhlKXtyZXR1cm4gZS5yZXBsYWNlKFgsIm1zLSIpLnJlcGxhY2UoVSxWKX12YXIgWT1mdW5jdGlvbihlKXtyZXR1cm4gMT09PWUubm9kZVR5cGV8fDk9PT1lLm5vZGVUeXBlfHwhK2Uubm9kZVR5cGV9O2Z1bmN0aW9uIFEoKXt0aGlzLmV4cGFuZG89dy5leHBhbmRvK1EudWlkKyt9US51aWQ9MSxRLnByb3RvdHlwZT17Y2FjaGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZVt0aGlzLmV4cGFuZG9dO3JldHVybiB0fHwodD17fSxZKGUpJiYoZS5ub2RlVHlwZT9lW3RoaXMuZXhwYW5kb109dDpPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0aGlzLmV4cGFuZG8se3ZhbHVlOnQsY29uZmlndXJhYmxlOiEwfSkpKSx0fSxzZXQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9dGhpcy5jYWNoZShlKTtpZigic3RyaW5nIj09dHlwZW9mIHQpaVtHKHQpXT1uO2Vsc2UgZm9yKHIgaW4gdClpW0cocildPXRbcl07cmV0dXJuIGl9LGdldDpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10P3RoaXMuY2FjaGUoZSk6ZVt0aGlzLmV4cGFuZG9dJiZlW3RoaXMuZXhwYW5kb11bRyh0KV19LGFjY2VzczpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHZvaWQgMD09PXR8fHQmJiJzdHJpbmciPT10eXBlb2YgdCYmdm9pZCAwPT09bj90aGlzLmdldChlLHQpOih0aGlzLnNldChlLHQsbiksdm9pZCAwIT09bj9uOnQpfSxyZW1vdmU6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWVbdGhpcy5leHBhbmRvXTtpZih2b2lkIDAhPT1yKXtpZih2b2lkIDAhPT10KXtuPSh0PUFycmF5LmlzQXJyYXkodCk/dC5tYXAoRyk6KHQ9Ryh0KSlpbiByP1t0XTp0Lm1hdGNoKE0pfHxbXSkubGVuZ3RoO3doaWxlKG4tLSlkZWxldGUgclt0W25dXX0odm9pZCAwPT09dHx8dy5pc0VtcHR5T2JqZWN0KHIpKSYmKGUubm9kZVR5cGU/ZVt0aGlzLmV4cGFuZG9dPXZvaWQgMDpkZWxldGUgZVt0aGlzLmV4cGFuZG9dKX19LGhhc0RhdGE6ZnVuY3Rpb24oZSl7dmFyIHQ9ZVt0aGlzLmV4cGFuZG9dO3JldHVybiB2b2lkIDAhPT10JiYhdy5pc0VtcHR5T2JqZWN0KHQpfX07dmFyIEo9bmV3IFEsSz1uZXcgUSxaPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sZWU9L1tBLVpdL2c7ZnVuY3Rpb24gdGUoZSl7cmV0dXJuInRydWUiPT09ZXx8ImZhbHNlIiE9PWUmJigibnVsbCI9PT1lP251bGw6ZT09PStlKyIiPytlOloudGVzdChlKT9KU09OLnBhcnNlKGUpOmUpfWZ1bmN0aW9uIG5lKGUsdCxuKXt2YXIgcjtpZih2b2lkIDA9PT1uJiYxPT09ZS5ub2RlVHlwZSlpZihyPSJkYXRhLSIrdC5yZXBsYWNlKGVlLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2Yobj1lLmdldEF0dHJpYnV0ZShyKSkpe3RyeXtuPXRlKG4pfWNhdGNoKGUpe31LLnNldChlLHQsbil9ZWxzZSBuPXZvaWQgMDtyZXR1cm4gbn13LmV4dGVuZCh7aGFzRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4gSy5oYXNEYXRhKGUpfHxKLmhhc0RhdGEoZSl9LGRhdGE6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBLLmFjY2VzcyhlLHQsbil9LHJlbW92ZURhdGE6ZnVuY3Rpb24oZSx0KXtLLnJlbW92ZShlLHQpfSxfZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIEouYWNjZXNzKGUsdCxuKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oZSx0KXtKLnJlbW92ZShlLHQpfX0pLHcuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG89dGhpc1swXSxhPW8mJm8uYXR0cmlidXRlcztpZih2b2lkIDA9PT1lKXtpZih0aGlzLmxlbmd0aCYmKGk9Sy5nZXQobyksMT09PW8ubm9kZVR5cGUmJiFKLmdldChvLCJoYXNEYXRhQXR0cnMiKSkpe249YS5sZW5ndGg7d2hpbGUobi0tKWFbbl0mJjA9PT0ocj1hW25dLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihyPUcoci5zbGljZSg1KSksbmUobyxyLGlbcl0pKTtKLnNldChvLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gaX1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7Sy5zZXQodGhpcyxlKX0pOnoodGhpcyxmdW5jdGlvbih0KXt2YXIgbjtpZihvJiZ2b2lkIDA9PT10KXtpZih2b2lkIDAhPT0obj1LLmdldChvLGUpKSlyZXR1cm4gbjtpZih2b2lkIDAhPT0obj1uZShvLGUpKSlyZXR1cm4gbn1lbHNlIHRoaXMuZWFjaChmdW5jdGlvbigpe0suc2V0KHRoaXMsZSx0KX0pfSxudWxsLHQsYXJndW1lbnRzLmxlbmd0aD4xLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtLLnJlbW92ZSh0aGlzLGUpfSl9fSksdy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZihlKXJldHVybiB0PSh0fHwiZngiKSsicXVldWUiLHI9Si5nZXQoZSx0KSxuJiYoIXJ8fEFycmF5LmlzQXJyYXkobik/cj1KLmFjY2VzcyhlLHQsdy5tYWtlQXJyYXkobikpOnIucHVzaChuKSkscnx8W119LGRlcXVldWU6ZnVuY3Rpb24oZSx0KXt0PXR8fCJmeCI7dmFyIG49dy5xdWV1ZShlLHQpLHI9bi5sZW5ndGgsaT1uLnNoaWZ0KCksbz13Ll9xdWV1ZUhvb2tzKGUsdCksYT1mdW5jdGlvbigpe3cuZGVxdWV1ZShlLHQpfTsiaW5wcm9ncmVzcyI9PT1pJiYoaT1uLnNoaWZ0KCksci0tKSxpJiYoImZ4Ij09PXQmJm4udW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBvLnN0b3AsaS5jYWxsKGUsYSxvKSksIXImJm8mJm8uZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihlLHQpe3ZhciBuPXQrInF1ZXVlSG9va3MiO3JldHVybiBKLmdldChlLG4pfHxKLmFjY2VzcyhlLG4se2VtcHR5OncuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe0oucmVtb3ZlKGUsW3QrInF1ZXVlIixuXSl9KX0pfX0pLHcuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBlJiYodD1lLGU9ImZ4IixuLS0pLGFyZ3VtZW50cy5sZW5ndGg8bj93LnF1ZXVlKHRoaXNbMF0sZSk6dm9pZCAwPT09dD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBuPXcucXVldWUodGhpcyxlLHQpO3cuX3F1ZXVlSG9va3ModGhpcyxlKSwiZngiPT09ZSYmImlucHJvZ3Jlc3MiIT09blswXSYmdy5kZXF1ZXVlKHRoaXMsZSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dy5kZXF1ZXVlKHRoaXMsZSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5xdWV1ZShlfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MSxpPXcuRGVmZXJyZWQoKSxvPXRoaXMsYT10aGlzLmxlbmd0aCxzPWZ1bmN0aW9uKCl7LS1yfHxpLnJlc29sdmVXaXRoKG8sW29dKX07InN0cmluZyIhPXR5cGVvZiBlJiYodD1lLGU9dm9pZCAwKSxlPWV8fCJmeCI7d2hpbGUoYS0tKShuPUouZ2V0KG9bYV0sZSsicXVldWVIb29rcyIpKSYmbi5lbXB0eSYmKHIrKyxuLmVtcHR5LmFkZChzKSk7cmV0dXJuIHMoKSxpLnByb21pc2UodCl9fSk7dmFyIHJlPS9bKy1dPyg/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLGllPW5ldyBSZWdFeHAoIl4oPzooWystXSk9fCkoIityZSsiKShbYS16JV0qKSQiLCJpIiksb2U9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxhZT1mdW5jdGlvbihlLHQpe3JldHVybiJub25lIj09PShlPXR8fGUpLnN0eWxlLmRpc3BsYXl8fCIiPT09ZS5zdHlsZS5kaXNwbGF5JiZ3LmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKSYmIm5vbmUiPT09dy5jc3MoZSwiZGlzcGxheSIpfSxzZT1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGE9e307Zm9yKG8gaW4gdClhW29dPWUuc3R5bGVbb10sZS5zdHlsZVtvXT10W29dO2k9bi5hcHBseShlLHJ8fFtdKTtmb3IobyBpbiB0KWUuc3R5bGVbb109YVtvXTtyZXR1cm4gaX07ZnVuY3Rpb24gdWUoZSx0LG4scil7dmFyIGksbyxhPTIwLHM9cj9mdW5jdGlvbigpe3JldHVybiByLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiB3LmNzcyhlLHQsIiIpfSx1PXMoKSxsPW4mJm5bM118fCh3LmNzc051bWJlclt0XT8iIjoicHgiKSxjPSh3LmNzc051bWJlclt0XXx8InB4IiE9PWwmJit1KSYmaWUuZXhlYyh3LmNzcyhlLHQpKTtpZihjJiZjWzNdIT09bCl7dS89MixsPWx8fGNbM10sYz0rdXx8MTt3aGlsZShhLS0pdy5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLHcuc3R5bGUoZSx0LGMrbCksbj1ufHxbXX1yZXR1cm4gbiYmKGM9K2N8fCt1fHwwLGk9blsxXT9jKyhuWzFdKzEpKm5bMl06K25bMl0sciYmKHIudW5pdD1sLHIuc3RhcnQ9YyxyLmVuZD1pKSksaX12YXIgbGU9e307ZnVuY3Rpb24gY2UoZSl7dmFyIHQsbj1lLm93bmVyRG9jdW1lbnQscj1lLm5vZGVOYW1lLGk9bGVbcl07cmV0dXJuIGl8fCh0PW4uYm9keS5hcHBlbmRDaGlsZChuLmNyZWF0ZUVsZW1lbnQocikpLGk9dy5jc3ModCwiZGlzcGxheSIpLHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSwibm9uZSI9PT1pJiYoaT0iYmxvY2siKSxsZVtyXT1pLGkpfWZ1bmN0aW9uIGZlKGUsdCl7Zm9yKHZhciBuLHIsaT1bXSxvPTAsYT1lLmxlbmd0aDtvPGE7bysrKShyPWVbb10pLnN0eWxlJiYobj1yLnN0eWxlLmRpc3BsYXksdD8oIm5vbmUiPT09biYmKGlbb109Si5nZXQociwiZGlzcGxheSIpfHxudWxsLGlbb118fChyLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PXIuc3R5bGUuZGlzcGxheSYmYWUocikmJihpW29dPWNlKHIpKSk6Im5vbmUiIT09biYmKGlbb109Im5vbmUiLEouc2V0KHIsImRpc3BsYXkiLG4pKSk7Zm9yKG89MDtvPGE7bysrKW51bGwhPWlbb10mJihlW29dLnN0eWxlLmRpc3BsYXk9aVtvXSk7cmV0dXJuIGV9dy5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gZmUodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gZmUodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihlKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBlP2U/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7YWUodGhpcyk/dyh0aGlzKS5zaG93KCk6dyh0aGlzKS5oaWRlKCl9KX19KTt2YXIgcGU9L14oPzpjaGVja2JveHxyYWRpbykkL2ksZGU9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSspL2ksaGU9L14kfF5tb2R1bGUkfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLGdlPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07Z2Uub3B0Z3JvdXA9Z2Uub3B0aW9uLGdlLnRib2R5PWdlLnRmb290PWdlLmNvbGdyb3VwPWdlLmNhcHRpb249Z2UudGhlYWQsZ2UudGg9Z2UudGQ7ZnVuY3Rpb24geWUoZSx0KXt2YXIgbjtyZXR1cm4gbj0idW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0RWxlbWVudHNCeVRhZ05hbWU/ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0fHwiKiIpOiJ1bmRlZmluZWQiIT10eXBlb2YgZS5xdWVyeVNlbGVjdG9yQWxsP2UucXVlcnlTZWxlY3RvckFsbCh0fHwiKiIpOltdLHZvaWQgMD09PXR8fHQmJk4oZSx0KT93Lm1lcmdlKFtlXSxuKTpufWZ1bmN0aW9uIHZlKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKUouc2V0KGVbbl0sImdsb2JhbEV2YWwiLCF0fHxKLmdldCh0W25dLCJnbG9iYWxFdmFsIikpfXZhciBtZT0vPHwmIz9cdys7LztmdW5jdGlvbiB4ZShlLHQsbixyLGkpe2Zvcih2YXIgbyxhLHMsdSxsLGMsZj10LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxwPVtdLGQ9MCxoPWUubGVuZ3RoO2Q8aDtkKyspaWYoKG89ZVtkXSl8fDA9PT1vKWlmKCJvYmplY3QiPT09eChvKSl3Lm1lcmdlKHAsby5ub2RlVHlwZT9bb106byk7ZWxzZSBpZihtZS50ZXN0KG8pKXthPWF8fGYuYXBwZW5kQ2hpbGQodC5jcmVhdGVFbGVtZW50KCJkaXYiKSkscz0oZGUuZXhlYyhvKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSx1PWdlW3NdfHxnZS5fZGVmYXVsdCxhLmlubmVySFRNTD11WzFdK3cuaHRtbFByZWZpbHRlcihvKSt1WzJdLGM9dVswXTt3aGlsZShjLS0pYT1hLmxhc3RDaGlsZDt3Lm1lcmdlKHAsYS5jaGlsZE5vZGVzKSwoYT1mLmZpcnN0Q2hpbGQpLnRleHRDb250ZW50PSIifWVsc2UgcC5wdXNoKHQuY3JlYXRlVGV4dE5vZGUobykpO2YudGV4dENvbnRlbnQ9IiIsZD0wO3doaWxlKG89cFtkKytdKWlmKHImJncuaW5BcnJheShvLHIpPi0xKWkmJmkucHVzaChvKTtlbHNlIGlmKGw9dy5jb250YWlucyhvLm93bmVyRG9jdW1lbnQsbyksYT15ZShmLmFwcGVuZENoaWxkKG8pLCJzY3JpcHQiKSxsJiZ2ZShhKSxuKXtjPTA7d2hpbGUobz1hW2MrK10paGUudGVzdChvLnR5cGV8fCIiKSYmbi5wdXNoKG8pfXJldHVybiBmfSFmdW5jdGlvbigpe3ZhciBlPXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLmFwcGVuZENoaWxkKHIuY3JlYXRlRWxlbWVudCgiZGl2IikpLHQ9ci5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Quc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSx0LnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSx0LnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKSxlLmFwcGVuZENoaWxkKHQpLGguY2hlY2tDbG9uZT1lLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxlLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIsaC5ub0Nsb25lQ2hlY2tlZD0hIWUuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlfSgpO3ZhciBiZT1yLmRvY3VtZW50RWxlbWVudCx3ZT0vXmtleS8sVGU9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLENlPS9eKFteLl0qKSg/OlwuKC4rKXwpLztmdW5jdGlvbiBFZSgpe3JldHVybiEwfWZ1bmN0aW9uIGtlKCl7cmV0dXJuITF9ZnVuY3Rpb24gU2UoKXt0cnl7cmV0dXJuIHIuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fWZ1bmN0aW9uIERlKGUsdCxuLHIsaSxvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7InN0cmluZyIhPXR5cGVvZiBuJiYocj1yfHxuLG49dm9pZCAwKTtmb3IocyBpbiB0KURlKGUscyxuLHIsdFtzXSxvKTtyZXR1cm4gZX1pZihudWxsPT1yJiZudWxsPT1pPyhpPW4scj1uPXZvaWQgMCk6bnVsbD09aSYmKCJzdHJpbmciPT10eXBlb2Ygbj8oaT1yLHI9dm9pZCAwKTooaT1yLHI9bixuPXZvaWQgMCkpLCExPT09aSlpPWtlO2Vsc2UgaWYoIWkpcmV0dXJuIGU7cmV0dXJuIDE9PT1vJiYoYT1pLChpPWZ1bmN0aW9uKGUpe3JldHVybiB3KCkub2ZmKGUpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkuZ3VpZD1hLmd1aWR8fChhLmd1aWQ9dy5ndWlkKyspKSxlLmVhY2goZnVuY3Rpb24oKXt3LmV2ZW50LmFkZCh0aGlzLHQsaSxyLG4pfSl9dy5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvLGEscyx1LGwsYyxmLHAsZCxoLGcseT1KLmdldChlKTtpZih5KXtuLmhhbmRsZXImJihuPShvPW4pLmhhbmRsZXIsaT1vLnNlbGVjdG9yKSxpJiZ3LmZpbmQubWF0Y2hlc1NlbGVjdG9yKGJlLGkpLG4uZ3VpZHx8KG4uZ3VpZD13Lmd1aWQrKyksKHU9eS5ldmVudHMpfHwodT15LmV2ZW50cz17fSksKGE9eS5oYW5kbGUpfHwoYT15LmhhbmRsZT1mdW5jdGlvbih0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHcmJncuZXZlbnQudHJpZ2dlcmVkIT09dC50eXBlP3cuZXZlbnQuZGlzcGF0Y2guYXBwbHkoZSxhcmd1bWVudHMpOnZvaWQgMH0pLGw9KHQ9KHR8fCIiKS5tYXRjaChNKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlkPWc9KHM9Q2UuZXhlYyh0W2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkJiYoZj13LmV2ZW50LnNwZWNpYWxbZF18fHt9LGQ9KGk/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGQsZj13LmV2ZW50LnNwZWNpYWxbZF18fHt9LGM9dy5leHRlbmQoe3R5cGU6ZCxvcmlnVHlwZTpnLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6aSxuZWVkc0NvbnRleHQ6aSYmdy5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGkpLG5hbWVzcGFjZTpoLmpvaW4oIi4iKX0sbyksKHA9dVtkXSl8fCgocD11W2RdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZi5zZXR1cCYmITEhPT1mLnNldHVwLmNhbGwoZSxyLGgsYSl8fGUuYWRkRXZlbnRMaXN0ZW5lciYmZS5hZGRFdmVudExpc3RlbmVyKGQsYSkpLGYuYWRkJiYoZi5hZGQuY2FsbChlLGMpLGMuaGFuZGxlci5ndWlkfHwoYy5oYW5kbGVyLmd1aWQ9bi5ndWlkKSksaT9wLnNwbGljZShwLmRlbGVnYXRlQ291bnQrKywwLGMpOnAucHVzaChjKSx3LmV2ZW50Lmdsb2JhbFtkXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHk9Si5oYXNEYXRhKGUpJiZKLmdldChlKTtpZih5JiYodT15LmV2ZW50cykpe2w9KHQ9KHR8fCIiKS5tYXRjaChNKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlpZihzPUNlLmV4ZWModFtsXSl8fFtdLGQ9Zz1zWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkKXtmPXcuZXZlbnQuc3BlY2lhbFtkXXx8e30scD11W2Q9KHI/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGRdfHxbXSxzPXNbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksYT1vPXAubGVuZ3RoO3doaWxlKG8tLSljPXBbb10sIWkmJmchPT1jLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1jLmd1aWR8fHMmJiFzLnRlc3QoYy5uYW1lc3BhY2UpfHxyJiZyIT09Yy5zZWxlY3RvciYmKCIqKiIhPT1yfHwhYy5zZWxlY3Rvcil8fChwLnNwbGljZShvLDEpLGMuc2VsZWN0b3ImJnAuZGVsZWdhdGVDb3VudC0tLGYucmVtb3ZlJiZmLnJlbW92ZS5jYWxsKGUsYykpO2EmJiFwLmxlbmd0aCYmKGYudGVhcmRvd24mJiExIT09Zi50ZWFyZG93bi5jYWxsKGUsaCx5LmhhbmRsZSl8fHcucmVtb3ZlRXZlbnQoZSxkLHkuaGFuZGxlKSxkZWxldGUgdVtkXSl9ZWxzZSBmb3IoZCBpbiB1KXcuZXZlbnQucmVtb3ZlKGUsZCt0W2xdLG4sciwhMCk7dy5pc0VtcHR5T2JqZWN0KHUpJiZKLnJlbW92ZShlLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihlKXt2YXIgdD13LmV2ZW50LmZpeChlKSxuLHIsaSxvLGEscyx1PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxsPShKLmdldCh0aGlzLCJldmVudHMiKXx8e30pW3QudHlwZV18fFtdLGM9dy5ldmVudC5zcGVjaWFsW3QudHlwZV18fHt9O2Zvcih1WzBdPXQsbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdVtuXT1hcmd1bWVudHNbbl07aWYodC5kZWxlZ2F0ZVRhcmdldD10aGlzLCFjLnByZURpc3BhdGNofHwhMSE9PWMucHJlRGlzcGF0Y2guY2FsbCh0aGlzLHQpKXtzPXcuZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLHQsbCksbj0wO3doaWxlKChvPXNbbisrXSkmJiF0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3QuY3VycmVudFRhcmdldD1vLmVsZW0scj0wO3doaWxlKChhPW8uaGFuZGxlcnNbcisrXSkmJiF0LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpdC5ybmFtZXNwYWNlJiYhdC5ybmFtZXNwYWNlLnRlc3QoYS5uYW1lc3BhY2UpfHwodC5oYW5kbGVPYmo9YSx0LmRhdGE9YS5kYXRhLHZvaWQgMCE9PShpPSgody5ldmVudC5zcGVjaWFsW2Eub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxhLmhhbmRsZXIpLmFwcGx5KG8uZWxlbSx1KSkmJiExPT09KHQucmVzdWx0PWkpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gYy5wb3N0RGlzcGF0Y2gmJmMucG9zdERpc3BhdGNoLmNhbGwodGhpcyx0KSx0LnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzPVtdLHU9dC5kZWxlZ2F0ZUNvdW50LGw9ZS50YXJnZXQ7aWYodSYmbC5ub2RlVHlwZSYmISgiY2xpY2siPT09ZS50eXBlJiZlLmJ1dHRvbj49MSkpZm9yKDtsIT09dGhpcztsPWwucGFyZW50Tm9kZXx8dGhpcylpZigxPT09bC5ub2RlVHlwZSYmKCJjbGljayIhPT1lLnR5cGV8fCEwIT09bC5kaXNhYmxlZCkpe2ZvcihvPVtdLGE9e30sbj0wO248dTtuKyspdm9pZCAwPT09YVtpPShyPXRbbl0pLnNlbGVjdG9yKyIgIl0mJihhW2ldPXIubmVlZHNDb250ZXh0P3coaSx0aGlzKS5pbmRleChsKT4tMTp3LmZpbmQoaSx0aGlzLG51bGwsW2xdKS5sZW5ndGgpLGFbaV0mJm8ucHVzaChyKTtvLmxlbmd0aCYmcy5wdXNoKHtlbGVtOmwsaGFuZGxlcnM6b30pfXJldHVybiBsPXRoaXMsdTx0Lmxlbmd0aCYmcy5wdXNoKHtlbGVtOmwsaGFuZGxlcnM6dC5zbGljZSh1KX0pLHN9LGFkZFByb3A6ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkody5FdmVudC5wcm90b3R5cGUsZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmcodCk/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHQodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFtlXX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KX19KX0sZml4OmZ1bmN0aW9uKGUpe3JldHVybiBlW3cuZXhwYW5kb10/ZTpuZXcgdy5FdmVudChlKX0sc3BlY2lhbDp7bG9hZDp7bm9CdWJibGU6ITB9LGZvY3VzOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7aWYodGhpcyE9PVNlKCkmJnRoaXMuZm9jdXMpcmV0dXJuIHRoaXMuZm9jdXMoKSwhMX0sZGVsZWdhdGVUeXBlOiJmb2N1c2luIn0sYmx1cjp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKHRoaXM9PT1TZSgpJiZ0aGlzLmJsdXIpcmV0dXJuIHRoaXMuYmx1cigpLCExfSxkZWxlZ2F0ZVR5cGU6ImZvY3Vzb3V0In0sY2xpY2s6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZigiY2hlY2tib3giPT09dGhpcy50eXBlJiZ0aGlzLmNsaWNrJiZOKHRoaXMsImlucHV0IikpcmV0dXJuIHRoaXMuY2xpY2soKSwhMX0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE4oZS50YXJnZXQsImEiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGUpe3ZvaWQgMCE9PWUucmVzdWx0JiZlLm9yaWdpbmFsRXZlbnQmJihlLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9ZS5yZXN1bHQpfX19fSx3LnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGUsdCxuKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfSx3LkV2ZW50PWZ1bmN0aW9uKGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2Ygdy5FdmVudCkpcmV0dXJuIG5ldyB3LkV2ZW50KGUsdCk7ZSYmZS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9ZSx0aGlzLnR5cGU9ZS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWUuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09ZS5kZWZhdWx0UHJldmVudGVkJiYhMT09PWUucmV0dXJuVmFsdWU/RWU6a2UsdGhpcy50YXJnZXQ9ZS50YXJnZXQmJjM9PT1lLnRhcmdldC5ub2RlVHlwZT9lLnRhcmdldC5wYXJlbnROb2RlOmUudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1lLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWUucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWUsdCYmdy5leHRlbmQodGhpcyx0KSx0aGlzLnRpbWVTdGFtcD1lJiZlLnRpbWVTdGFtcHx8RGF0ZS5ub3coKSx0aGlzW3cuZXhwYW5kb109ITB9LHcuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp3LkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDprZSxpc1Byb3BhZ2F0aW9uU3RvcHBlZDprZSxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDprZSxpc1NpbXVsYXRlZDohMSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1FZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1FZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wUHJvcGFnYXRpb24oKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9RWUsZSYmIXRoaXMuaXNTaW11bGF0ZWQmJmUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LHcuZWFjaCh7YWx0S2V5OiEwLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjaGFuZ2VkVG91Y2hlczohMCxjdHJsS2V5OiEwLGRldGFpbDohMCxldmVudFBoYXNlOiEwLG1ldGFLZXk6ITAscGFnZVg6ITAscGFnZVk6ITAsc2hpZnRLZXk6ITAsdmlldzohMCwiY2hhciI6ITAsY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5idXR0b247cmV0dXJuIG51bGw9PWUud2hpY2gmJndlLnRlc3QoZS50eXBlKT9udWxsIT1lLmNoYXJDb2RlP2UuY2hhckNvZGU6ZS5rZXlDb2RlOiFlLndoaWNoJiZ2b2lkIDAhPT10JiZUZS50ZXN0KGUudHlwZSk/MSZ0PzE6MiZ0PzM6NCZ0PzI6MDplLndoaWNofX0sdy5ldmVudC5hZGRQcm9wKSx3LmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToicG9pbnRlcm91dCJ9LGZ1bmN0aW9uKGUsdCl7dy5ldmVudC5zcGVjaWFsW2VdPXtkZWxlZ2F0ZVR5cGU6dCxiaW5kVHlwZTp0LGhhbmRsZTpmdW5jdGlvbihlKXt2YXIgbixyPXRoaXMsaT1lLnJlbGF0ZWRUYXJnZXQsbz1lLmhhbmRsZU9iajtyZXR1cm4gaSYmKGk9PT1yfHx3LmNvbnRhaW5zKHIsaSkpfHwoZS50eXBlPW8ub3JpZ1R5cGUsbj1vLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT10KSxufX19KSx3LmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIERlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gRGUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosdyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGUpe2ZvcihpIGluIGUpdGhpcy5vZmYoaSx0LGVbaV0pO3JldHVybiB0aGlzfXJldHVybiExIT09dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49a2UpLHRoaXMuZWFjaChmdW5jdGlvbigpe3cuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIE5lPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKVtePl0qKVwvPi9naSxBZT0vPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxqZT0vY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSxxZT0vXlxzKjwhKD86XFtDREFUQVxbfC0tKXwoPzpcXVxdfC0tKT5ccyokL2c7ZnVuY3Rpb24gTGUoZSx0KXtyZXR1cm4gTihlLCJ0YWJsZSIpJiZOKDExIT09dC5ub2RlVHlwZT90OnQuZmlyc3RDaGlsZCwidHIiKT93KGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlOmV9ZnVuY3Rpb24gSGUoZSl7cmV0dXJuIGUudHlwZT0obnVsbCE9PWUuZ2V0QXR0cmlidXRlKCJ0eXBlIikpKyIvIitlLnR5cGUsZX1mdW5jdGlvbiBPZShlKXtyZXR1cm4idHJ1ZS8iPT09KGUudHlwZXx8IiIpLnNsaWNlKDAsNSk/ZS50eXBlPWUudHlwZS5zbGljZSg1KTplLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLGV9ZnVuY3Rpb24gUGUoZSx0KXt2YXIgbixyLGksbyxhLHMsdSxsO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihKLmhhc0RhdGEoZSkmJihvPUouYWNjZXNzKGUpLGE9Si5zZXQodCxvKSxsPW8uZXZlbnRzKSl7ZGVsZXRlIGEuaGFuZGxlLGEuZXZlbnRzPXt9O2ZvcihpIGluIGwpZm9yKG49MCxyPWxbaV0ubGVuZ3RoO248cjtuKyspdy5ldmVudC5hZGQodCxpLGxbaV1bbl0pfUsuaGFzRGF0YShlKSYmKHM9Sy5hY2Nlc3MoZSksdT13LmV4dGVuZCh7fSxzKSxLLnNldCh0LHUpKX19ZnVuY3Rpb24gTWUoZSx0KXt2YXIgbj10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7ImlucHV0Ij09PW4mJnBlLnRlc3QoZS50eXBlKT90LmNoZWNrZWQ9ZS5jaGVja2VkOiJpbnB1dCIhPT1uJiYidGV4dGFyZWEiIT09bnx8KHQuZGVmYXVsdFZhbHVlPWUuZGVmYXVsdFZhbHVlKX1mdW5jdGlvbiBSZShlLHQsbixyKXt0PWEuYXBwbHkoW10sdCk7dmFyIGksbyxzLHUsbCxjLGY9MCxwPWUubGVuZ3RoLGQ9cC0xLHk9dFswXSx2PWcoeSk7aWYodnx8cD4xJiYic3RyaW5nIj09dHlwZW9mIHkmJiFoLmNoZWNrQ2xvbmUmJmplLnRlc3QoeSkpcmV0dXJuIGUuZWFjaChmdW5jdGlvbihpKXt2YXIgbz1lLmVxKGkpO3YmJih0WzBdPXkuY2FsbCh0aGlzLGksby5odG1sKCkpKSxSZShvLHQsbixyKX0pO2lmKHAmJihpPXhlKHQsZVswXS5vd25lckRvY3VtZW50LCExLGUsciksbz1pLmZpcnN0Q2hpbGQsMT09PWkuY2hpbGROb2Rlcy5sZW5ndGgmJihpPW8pLG98fHIpKXtmb3IodT0ocz13Lm1hcCh5ZShpLCJzY3JpcHQiKSxIZSkpLmxlbmd0aDtmPHA7ZisrKWw9aSxmIT09ZCYmKGw9dy5jbG9uZShsLCEwLCEwKSx1JiZ3Lm1lcmdlKHMseWUobCwic2NyaXB0IikpKSxuLmNhbGwoZVtmXSxsLGYpO2lmKHUpZm9yKGM9c1tzLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LHcubWFwKHMsT2UpLGY9MDtmPHU7ZisrKWw9c1tmXSxoZS50ZXN0KGwudHlwZXx8IiIpJiYhSi5hY2Nlc3MobCwiZ2xvYmFsRXZhbCIpJiZ3LmNvbnRhaW5zKGMsbCkmJihsLnNyYyYmIm1vZHVsZSIhPT0obC50eXBlfHwiIikudG9Mb3dlckNhc2UoKT93Ll9ldmFsVXJsJiZ3Ll9ldmFsVXJsKGwuc3JjKTptKGwudGV4dENvbnRlbnQucmVwbGFjZShxZSwiIiksYyxsKSl9cmV0dXJuIGV9ZnVuY3Rpb24gSWUoZSx0LG4pe2Zvcih2YXIgcixpPXQ/dy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fHcuY2xlYW5EYXRhKHllKHIpKSxyLnBhcmVudE5vZGUmJihuJiZ3LmNvbnRhaW5zKHIub3duZXJEb2N1bWVudCxyKSYmdmUoeWUociwic2NyaXB0IikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9dy5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShOZSwiPCQxPjwvJDI+Iil9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY2xvbmVOb2RlKCEwKSx1PXcuY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpO2lmKCEoaC5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8dy5pc1hNTERvYyhlKSkpZm9yKGE9eWUocykscj0wLGk9KG89eWUoZSkpLmxlbmd0aDtyPGk7cisrKU1lKG9bcl0sYVtyXSk7aWYodClpZihuKWZvcihvPW98fHllKGUpLGE9YXx8eWUocykscj0wLGk9by5sZW5ndGg7cjxpO3IrKylQZShvW3JdLGFbcl0pO2Vsc2UgUGUoZSxzKTtyZXR1cm4oYT15ZShzLCJzY3JpcHQiKSkubGVuZ3RoPjAmJnZlKGEsIXUmJnllKGUsInNjcmlwdCIpKSxzfSxjbGVhbkRhdGE6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG4scixpPXcuZXZlbnQuc3BlY2lhbCxvPTA7dm9pZCAwIT09KG49ZVtvXSk7bysrKWlmKFkobikpe2lmKHQ9bltKLmV4cGFuZG9dKXtpZih0LmV2ZW50cylmb3IociBpbiB0LmV2ZW50cylpW3JdP3cuZXZlbnQucmVtb3ZlKG4scik6dy5yZW1vdmVFdmVudChuLHIsdC5oYW5kbGUpO25bSi5leHBhbmRvXT12b2lkIDB9bltLLmV4cGFuZG9dJiYobltLLmV4cGFuZG9dPXZvaWQgMCl9fX0pLHcuZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIEllKHRoaXMsZSwhMCl9LHJlbW92ZTpmdW5jdGlvbihlKXtyZXR1cm4gSWUodGhpcyxlKX0sdGV4dDpmdW5jdGlvbihlKXtyZXR1cm4geih0aGlzLGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP3cudGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuZWFjaChmdW5jdGlvbigpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHwodGhpcy50ZXh0Q29udGVudD1lKX0pfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiBSZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8TGUodGhpcyxlKS5hcHBlbmRDaGlsZChlKX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIFJlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgdD1MZSh0aGlzLGUpO3QuaW5zZXJ0QmVmb3JlKGUsdC5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIFJlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIFJlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9MDtudWxsIT0oZT10aGlzW3RdKTt0KyspMT09PWUubm9kZVR5cGUmJih3LmNsZWFuRGF0YSh5ZShlLCExKSksZS50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9bnVsbCE9ZSYmZSx0PW51bGw9PXQ/ZTp0LHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHcuY2xvbmUodGhpcyxlLHQpfSl9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHoodGhpcyxmdW5jdGlvbihlKXt2YXIgdD10aGlzWzBdfHx7fSxuPTAscj10aGlzLmxlbmd0aDtpZih2b2lkIDA9PT1lJiYxPT09dC5ub2RlVHlwZSlyZXR1cm4gdC5pbm5lckhUTUw7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYhQWUudGVzdChlKSYmIWdlWyhkZS5leGVjKGUpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7ZT13Lmh0bWxQcmVmaWx0ZXIoZSk7dHJ5e2Zvcig7bjxyO24rKykxPT09KHQ9dGhpc1tuXXx8e30pLm5vZGVUeXBlJiYody5jbGVhbkRhdGEoeWUodCwhMSkpLHQuaW5uZXJIVE1MPWUpO3Q9MH1jYXRjaChlKXt9fXQmJnRoaXMuZW1wdHkoKS5hcHBlbmQoZSl9LG51bGwsZSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gUmUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24odCl7dmFyIG49dGhpcy5wYXJlbnROb2RlO3cuaW5BcnJheSh0aGlzLGUpPDAmJih3LmNsZWFuRGF0YSh5ZSh0aGlzKSksbiYmbi5yZXBsYWNlQ2hpbGQodCx0aGlzKSl9LGUpfX0pLHcuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGUsdCl7dy5mbltlXT1mdW5jdGlvbihlKXtmb3IodmFyIG4scj1bXSxpPXcoZSksbz1pLmxlbmd0aC0xLGE9MDthPD1vO2ErKyluPWE9PT1vP3RoaXM6dGhpcy5jbG9uZSghMCksdyhpW2FdKVt0XShuKSxzLmFwcGx5KHIsbi5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHIpfX0pO3ZhciBXZT1uZXcgUmVnRXhwKCJeKCIrcmUrIikoPyFweClbYS16JV0rJCIsImkiKSwkZT1mdW5jdGlvbih0KXt2YXIgbj10Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIG4mJm4ub3BlbmVyfHwobj1lKSxuLmdldENvbXB1dGVkU3R5bGUodCl9LEJlPW5ldyBSZWdFeHAob2Uuam9pbigifCIpLCJpIik7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe2lmKGMpe2wuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweDt3aWR0aDo2MHB4O21hcmdpbi10b3A6MXB4O3BhZGRpbmc6MDtib3JkZXI6MCIsYy5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpzY3JvbGw7bWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt3aWR0aDo2MCU7dG9wOjElIixiZS5hcHBlbmRDaGlsZChsKS5hcHBlbmRDaGlsZChjKTt2YXIgdD1lLmdldENvbXB1dGVkU3R5bGUoYyk7aT0iMSUiIT09dC50b3AsdT0xMj09PW4odC5tYXJnaW5MZWZ0KSxjLnN0eWxlLnJpZ2h0PSI2MCUiLHM9MzY9PT1uKHQucmlnaHQpLG89MzY9PT1uKHQud2lkdGgpLGMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixhPTM2PT09Yy5vZmZzZXRXaWR0aHx8ImFic29sdXRlIixiZS5yZW1vdmVDaGlsZChsKSxjPW51bGx9fWZ1bmN0aW9uIG4oZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIGksbyxhLHMsdSxsPXIuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1yLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Muc3R5bGUmJihjLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsYy5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGguY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1jLnN0eWxlLmJhY2tncm91bmRDbGlwLHcuZXh0ZW5kKGgse2JveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxvfSxwaXhlbEJveFN0eWxlczpmdW5jdGlvbigpe3JldHVybiB0KCksc30scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0KCksaX0scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSx1fSxzY3JvbGxib3hTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxhfX0pKX0oKTtmdW5jdGlvbiBGZShlLHQsbil7dmFyIHIsaSxvLGEscz1lLnN0eWxlO3JldHVybihuPW58fCRlKGUpKSYmKCIiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8dy5jb250YWlucyhlLm93bmVyRG9jdW1lbnQsZSl8fChhPXcuc3R5bGUoZSx0KSksIWgucGl4ZWxCb3hTdHlsZXMoKSYmV2UudGVzdChhKSYmQmUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gX2UoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fXZhciB6ZT0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sWGU9L14tLS8sVWU9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LFZlPXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifSxHZT1bIldlYmtpdCIsIk1veiIsIm1zIl0sWWU9ci5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZTtmdW5jdGlvbiBRZShlKXtpZihlIGluIFllKXJldHVybiBlO3ZhciB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpLG49R2UubGVuZ3RoO3doaWxlKG4tLSlpZigoZT1HZVtuXSt0KWluIFllKXJldHVybiBlfWZ1bmN0aW9uIEplKGUpe3ZhciB0PXcuY3NzUHJvcHNbZV07cmV0dXJuIHR8fCh0PXcuY3NzUHJvcHNbZV09UWUoZSl8fGUpLHR9ZnVuY3Rpb24gS2UoZSx0LG4pe3ZhciByPWllLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gWmUoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpIm1hcmdpbiI9PT1uJiYodSs9dy5jc3MoZSxuK29lW2FdLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYodS09dy5jc3MoZSwicGFkZGluZyIrb2VbYV0sITAsaSkpLCJtYXJnaW4iIT09biYmKHUtPXcuY3NzKGUsImJvcmRlciIrb2VbYV0rIldpZHRoIiwhMCxpKSkpOih1Kz13LmNzcyhlLCJwYWRkaW5nIitvZVthXSwhMCxpKSwicGFkZGluZyIhPT1uP3UrPXcuY3NzKGUsImJvcmRlciIrb2VbYV0rIldpZHRoIiwhMCxpKTpzKz13LmNzcyhlLCJib3JkZXIiK29lW2FdKyJXaWR0aCIsITAsaSkpO3JldHVybiFyJiZvPj0wJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKSksdX1mdW5jdGlvbiBldChlLHQsbil7dmFyIHI9JGUoZSksaT1GZShlLHQsciksbz0iYm9yZGVyLWJveCI9PT13LmNzcyhlLCJib3hTaXppbmciLCExLHIpLGE9bztpZihXZS50ZXN0KGkpKXtpZighbilyZXR1cm4gaTtpPSJhdXRvIn1yZXR1cm4gYT1hJiYoaC5ib3hTaXppbmdSZWxpYWJsZSgpfHxpPT09ZS5zdHlsZVt0XSksKCJhdXRvIj09PWl8fCFwYXJzZUZsb2F0KGkpJiYiaW5saW5lIj09PXcuY3NzKGUsImRpc3BsYXkiLCExLHIpKSYmKGk9ZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0sYT0hMCksKGk9cGFyc2VGbG9hdChpKXx8MCkrWmUoZSx0LG58fChvPyJib3JkZXIiOiJjb250ZW50IiksYSxyLGkpKyJweCJ9dy5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24oZSx0KXtpZih0KXt2YXIgbj1GZShlLCJvcGFjaXR5Iik7cmV0dXJuIiI9PT1uPyIxIjpufX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGNvbHVtbkNvdW50OiEwLGZpbGxPcGFjaXR5OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9Ryh0KSx1PVhlLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PUplKHMpKSxhPXcuY3NzSG9va3NbdF18fHcuY3NzSG9va3Nbc10sdm9pZCAwPT09bilyZXR1cm4gYSYmImdldCJpbiBhJiZ2b2lkIDAhPT0oaT1hLmdldChlLCExLHIpKT9pOmxbdF07InN0cmluZyI9PShvPXR5cGVvZiBuKSYmKGk9aWUuZXhlYyhuKSkmJmlbMV0mJihuPXVlKGUsdCxpKSxvPSJudW1iZXIiKSxudWxsIT1uJiZuPT09biYmKCJudW1iZXIiPT09byYmKG4rPWkmJmlbM118fCh3LmNzc051bWJlcltzXT8iIjoicHgiKSksaC5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPUcodCk7cmV0dXJuIFhlLnRlc3QodCl8fCh0PUplKHMpKSwoYT13LmNzc0hvb2tzW3RdfHx3LmNzc0hvb2tzW3NdKSYmImdldCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1GZShlLHQscikpLCJub3JtYWwiPT09aSYmdCBpbiBWZSYmKGk9VmVbdF0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KGkpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDppKTppfX0pLHcuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx0KXt3LmNzc0hvb2tzW3RdPXtnZXQ6ZnVuY3Rpb24oZSxuLHIpe2lmKG4pcmV0dXJuIXplLnRlc3Qody5jc3MoZSwiZGlzcGxheSIpKXx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9ldChlLHQscik6c2UoZSxVZSxmdW5jdGlvbigpe3JldHVybiBldChlLHQscil9KX0sc2V0OmZ1bmN0aW9uKGUsbixyKXt2YXIgaSxvPSRlKGUpLGE9ImJvcmRlci1ib3giPT09dy5jc3MoZSwiYm94U2l6aW5nIiwhMSxvKSxzPXImJlplKGUsdCxyLGEsbyk7cmV0dXJuIGEmJmguc2Nyb2xsYm94U2l6ZSgpPT09by5wb3NpdGlvbiYmKHMtPU1hdGguY2VpbChlWyJvZmZzZXQiK3RbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpXS1wYXJzZUZsb2F0KG9bdF0pLVplKGUsdCwiYm9yZGVyIiwhMSxvKS0uNSkpLHMmJihpPWllLmV4ZWMobikpJiYicHgiIT09KGlbM118fCJweCIpJiYoZS5zdHlsZVt0XT1uLG49dy5jc3MoZSx0KSksS2UoZSxuLHMpfX19KSx3LmNzc0hvb2tzLm1hcmdpbkxlZnQ9X2UoaC5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24oZSx0KXtpZih0KXJldHVybihwYXJzZUZsb2F0KEZlKGUsIm1hcmdpbkxlZnQiKSl8fGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1zZShlLHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSksdy5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oZSx0KXt3LmNzc0hvb2tzW2UrdF09e2V4cGFuZDpmdW5jdGlvbihuKXtmb3IodmFyIHI9MCxpPXt9LG89InN0cmluZyI9PXR5cGVvZiBuP24uc3BsaXQoIiAiKTpbbl07cjw0O3IrKylpW2Urb2Vbcl0rdF09b1tyXXx8b1tyLTJdfHxvWzBdO3JldHVybiBpfX0sIm1hcmdpbiIhPT1lJiYody5jc3NIb29rc1tlK3RdLnNldD1LZSl9KSx3LmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHoodGhpcyxmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9LGE9MDtpZihBcnJheS5pc0FycmF5KHQpKXtmb3Iocj0kZShlKSxpPXQubGVuZ3RoO2E8aTthKyspb1t0W2FdXT13LmNzcyhlLHRbYV0sITEscik7cmV0dXJuIG99cmV0dXJuIHZvaWQgMCE9PW4/dy5zdHlsZShlLHQsbik6dy5jc3MoZSx0KX0sZSx0LGFyZ3VtZW50cy5sZW5ndGg+MSl9fSk7ZnVuY3Rpb24gdHQoZSx0LG4scixpKXtyZXR1cm4gbmV3IHR0LnByb3RvdHlwZS5pbml0KGUsdCxuLHIsaSl9dy5Ud2Vlbj10dCx0dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnR0LGluaXQ6ZnVuY3Rpb24oZSx0LG4scixpLG8pe3RoaXMuZWxlbT1lLHRoaXMucHJvcD1uLHRoaXMuZWFzaW5nPWl8fHcuZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz10LHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1yLHRoaXMudW5pdD1vfHwody5jc3NOdW1iZXJbbl0/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBlPXR0LnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBlJiZlLmdldD9lLmdldCh0aGlzKTp0dC5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oZSl7dmFyIHQsbj10dC5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPXQ9dy5lYXNpbmdbdGhpcy5lYXNpbmddKGUsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9dD1lLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSp0K3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLG4mJm4uc2V0P24uc2V0KHRoaXMpOnR0LnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LHR0LnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT10dC5wcm90b3R5cGUsdHQucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9dy5jc3MoZS5lbGVtLGUucHJvcCwiIikpJiYiYXV0byIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe3cuZnguc3RlcFtlLnByb3BdP3cuZnguc3RlcFtlLnByb3BdKGUpOjEhPT1lLmVsZW0ubm9kZVR5cGV8fG51bGw9PWUuZWxlbS5zdHlsZVt3LmNzc1Byb3BzW2UucHJvcF1dJiYhdy5jc3NIb29rc1tlLnByb3BdP2UuZWxlbVtlLnByb3BdPWUubm93Oncuc3R5bGUoZS5lbGVtLGUucHJvcCxlLm5vdytlLnVuaXQpfX19LHR0LnByb3BIb29rcy5zY3JvbGxUb3A9dHQucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihlKXtlLmVsZW0ubm9kZVR5cGUmJmUuZWxlbS5wYXJlbnROb2RlJiYoZS5lbGVtW2UucHJvcF09ZS5ub3cpfX0sdy5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihlKXtyZXR1cm4gZX0sc3dpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuLjUtTWF0aC5jb3MoZSpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifSx3LmZ4PXR0LnByb3RvdHlwZS5pbml0LHcuZnguc3RlcD17fTt2YXIgbnQscnQsaXQ9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLG90PS9xdWV1ZUhvb2tzJC87ZnVuY3Rpb24gYXQoKXtydCYmKCExPT09ci5oaWRkZW4mJmUucmVxdWVzdEFuaW1hdGlvbkZyYW1lP2UucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGF0KTplLnNldFRpbWVvdXQoYXQsdy5meC5pbnRlcnZhbCksdy5meC50aWNrKCkpfWZ1bmN0aW9uIHN0KCl7cmV0dXJuIGUuc2V0VGltZW91dChmdW5jdGlvbigpe250PXZvaWQgMH0pLG50PURhdGUubm93KCl9ZnVuY3Rpb24gdXQoZSx0KXt2YXIgbixyPTAsaT17aGVpZ2h0OmV9O2Zvcih0PXQ/MTowO3I8NDtyKz0yLXQpaVsibWFyZ2luIisobj1vZVtyXSldPWlbInBhZGRpbmciK25dPWU7cmV0dXJuIHQmJihpLm9wYWNpdHk9aS53aWR0aD1lKSxpfWZ1bmN0aW9uIGx0KGUsdCxuKXtmb3IodmFyIHIsaT0ocHQudHdlZW5lcnNbdF18fFtdKS5jb25jYXQocHQudHdlZW5lcnNbIioiXSksbz0wLGE9aS5sZW5ndGg7bzxhO28rKylpZihyPWlbb10uY2FsbChuLHQsZSkpcmV0dXJuIHJ9ZnVuY3Rpb24gY3QoZSx0LG4pe3ZhciByLGksbyxhLHMsdSxsLGMsZj0id2lkdGgiaW4gdHx8ImhlaWdodCJpbiB0LHA9dGhpcyxkPXt9LGg9ZS5zdHlsZSxnPWUubm9kZVR5cGUmJmFlKGUpLHk9Si5nZXQoZSwiZnhzaG93Iik7bi5xdWV1ZXx8KG51bGw9PShhPXcuX3F1ZXVlSG9va3MoZSwiZngiKSkudW5xdWV1ZWQmJihhLnVucXVldWVkPTAscz1hLmVtcHR5LmZpcmUsYS5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7YS51bnF1ZXVlZHx8cygpfSksYS51bnF1ZXVlZCsrLHAuYWx3YXlzKGZ1bmN0aW9uKCl7cC5hbHdheXMoZnVuY3Rpb24oKXthLnVucXVldWVkLS0sdy5xdWV1ZShlLCJmeCIpLmxlbmd0aHx8YS5lbXB0eS5maXJlKCl9KX0pKTtmb3IociBpbiB0KWlmKGk9dFtyXSxpdC50ZXN0KGkpKXtpZihkZWxldGUgdFtyXSxvPW98fCJ0b2dnbGUiPT09aSxpPT09KGc/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWl8fCF5fHx2b2lkIDA9PT15W3JdKWNvbnRpbnVlO2c9ITB9ZFtyXT15JiZ5W3JdfHx3LnN0eWxlKGUscil9aWYoKHU9IXcuaXNFbXB0eU9iamVjdCh0KSl8fCF3LmlzRW1wdHlPYmplY3QoZCkpe2YmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9eSYmeS5kaXNwbGF5KSYmKGw9Si5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz13LmNzcyhlLCJkaXNwbGF5IikpJiYobD9jPWw6KGZlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz13LmNzcyhlLCJkaXNwbGF5IiksZmUoW2VdKSkpLCgiaW5saW5lIj09PWN8fCJpbmxpbmUtYmxvY2siPT09YyYmbnVsbCE9bCkmJiJub25lIj09PXcuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMTtmb3IociBpbiBkKXV8fCh5PyJoaWRkZW4iaW4geSYmKGc9eS5oaWRkZW4pOnk9Si5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHkuaGlkZGVuPSFnKSxnJiZmZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2d8fGZlKFtlXSksSi5yZW1vdmUoZSwiZnhzaG93Iik7Zm9yKHIgaW4gZCl3LnN0eWxlKGUscixkW3JdKX0pKSx1PWx0KGc/eVtyXTowLHIscCksciBpbiB5fHwoeVtyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfX1mdW5jdGlvbiBmdChlLHQpe3ZhciBuLHIsaSxvLGE7Zm9yKG4gaW4gZSlpZihyPUcobiksaT10W3JdLG89ZVtuXSxBcnJheS5pc0FycmF5KG8pJiYoaT1vWzFdLG89ZVtuXT1vWzBdKSxuIT09ciYmKGVbcl09byxkZWxldGUgZVtuXSksKGE9dy5jc3NIb29rc1tyXSkmJiJleHBhbmQiaW4gYSl7bz1hLmV4cGFuZChvKSxkZWxldGUgZVtyXTtmb3IobiBpbiBvKW4gaW4gZXx8KGVbbl09b1tuXSx0W25dPWkpfWVsc2UgdFtyXT1pfWZ1bmN0aW9uIHB0KGUsdCxuKXt2YXIgcixpLG89MCxhPXB0LnByZWZpbHRlcnMubGVuZ3RoLHM9dy5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoaSlyZXR1cm4hMTtmb3IodmFyIHQ9bnR8fHN0KCksbj1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tdCkscj0xLShuL2wuZHVyYXRpb258fDApLG89MCxhPWwudHdlZW5zLmxlbmd0aDtvPGE7bysrKWwudHdlZW5zW29dLnJ1bihyKTtyZXR1cm4gcy5ub3RpZnlXaXRoKGUsW2wscixuXSkscjwxJiZhP246KGF8fHMubm90aWZ5V2l0aChlLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgoZSxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06ZSxwcm9wczp3LmV4dGVuZCh7fSx0KSxvcHRzOncuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzp3LmVhc2luZy5fZGVmYXVsdH0sbiksb3JpZ2luYWxQcm9wZXJ0aWVzOnQsb3JpZ2luYWxPcHRpb25zOm4sc3RhcnRUaW1lOm50fHxzdCgpLGR1cmF0aW9uOm4uZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIHI9dy5Ud2VlbihlLGwub3B0cyx0LG4sbC5vcHRzLnNwZWNpYWxFYXNpbmdbdF18fGwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKHIpLHJ9LHN0b3A6ZnVuY3Rpb24odCl7dmFyIG49MCxyPXQ/bC50d2VlbnMubGVuZ3RoOjA7aWYoaSlyZXR1cm4gdGhpcztmb3IoaT0hMDtuPHI7bisrKWwudHdlZW5zW25dLnJ1bigxKTtyZXR1cm4gdD8ocy5ub3RpZnlXaXRoKGUsW2wsMSwwXSkscy5yZXNvbHZlV2l0aChlLFtsLHRdKSk6cy5yZWplY3RXaXRoKGUsW2wsdF0pLHRoaXN9fSksYz1sLnByb3BzO2ZvcihmdChjLGwub3B0cy5zcGVjaWFsRWFzaW5nKTtvPGE7bysrKWlmKHI9cHQucHJlZmlsdGVyc1tvXS5jYWxsKGwsZSxjLGwub3B0cykpcmV0dXJuIGcoci5zdG9wKSYmKHcuX3F1ZXVlSG9va3MobC5lbGVtLGwub3B0cy5xdWV1ZSkuc3RvcD1yLnN0b3AuYmluZChyKSkscjtyZXR1cm4gdy5tYXAoYyxsdCxsKSxnKGwub3B0cy5zdGFydCkmJmwub3B0cy5zdGFydC5jYWxsKGUsbCksbC5wcm9ncmVzcyhsLm9wdHMucHJvZ3Jlc3MpLmRvbmUobC5vcHRzLmRvbmUsbC5vcHRzLmNvbXBsZXRlKS5mYWlsKGwub3B0cy5mYWlsKS5hbHdheXMobC5vcHRzLmFsd2F5cyksdy5meC50aW1lcih3LmV4dGVuZCh1LHtlbGVtOmUsYW5pbTpsLHF1ZXVlOmwub3B0cy5xdWV1ZX0pKSxsfXcuQW5pbWF0aW9uPXcuZXh0ZW5kKHB0LHt0d2VlbmVyczp7IioiOltmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY3JlYXRlVHdlZW4oZSx0KTtyZXR1cm4gdWUobi5lbGVtLGUsaWUuZXhlYyh0KSxuKSxufV19LHR3ZWVuZXI6ZnVuY3Rpb24oZSx0KXtnKGUpPyh0PWUsZT1bIioiXSk6ZT1lLm1hdGNoKE0pO2Zvcih2YXIgbixyPTAsaT1lLmxlbmd0aDtyPGk7cisrKW49ZVtyXSxwdC50d2VlbmVyc1tuXT1wdC50d2VlbmVyc1tuXXx8W10scHQudHdlZW5lcnNbbl0udW5zaGlmdCh0KX0scHJlZmlsdGVyczpbY3RdLHByZWZpbHRlcjpmdW5jdGlvbihlLHQpe3Q/cHQucHJlZmlsdGVycy51bnNoaWZ0KGUpOnB0LnByZWZpbHRlcnMucHVzaChlKX19KSx3LnNwZWVkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lJiYib2JqZWN0Ij09dHlwZW9mIGU/dy5leHRlbmQoe30sZSk6e2NvbXBsZXRlOm58fCFuJiZ0fHxnKGUpJiZlLGR1cmF0aW9uOmUsZWFzaW5nOm4mJnR8fHQmJiFnKHQpJiZ0fTtyZXR1cm4gdy5meC5vZmY/ci5kdXJhdGlvbj0wOiJudW1iZXIiIT10eXBlb2Ygci5kdXJhdGlvbiYmKHIuZHVyYXRpb24gaW4gdy5meC5zcGVlZHM/ci5kdXJhdGlvbj13LmZ4LnNwZWVkc1tyLmR1cmF0aW9uXTpyLmR1cmF0aW9uPXcuZnguc3BlZWRzLl9kZWZhdWx0KSxudWxsIT1yLnF1ZXVlJiYhMCE9PXIucXVldWV8fChyLnF1ZXVlPSJmeCIpLHIub2xkPXIuY29tcGxldGUsci5jb21wbGV0ZT1mdW5jdGlvbigpe2coci5vbGQpJiZyLm9sZC5jYWxsKHRoaXMpLHIucXVldWUmJncuZGVxdWV1ZSh0aGlzLHIucXVldWUpfSxyfSx3LmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLmZpbHRlcihhZSkuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTp0fSxlLG4scil9LGFuaW1hdGU6ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dy5pc0VtcHR5T2JqZWN0KGUpLG89dy5zcGVlZCh0LG4sciksYT1mdW5jdGlvbigpe3ZhciB0PXB0KHRoaXMsdy5leHRlbmQoe30sZSksbyk7KGl8fEouZ2V0KHRoaXMsImZpbmlzaCIpKSYmdC5zdG9wKCEwKX07cmV0dXJuIGEuZmluaXNoPWEsaXx8ITE9PT1vLnF1ZXVlP3RoaXMuZWFjaChhKTp0aGlzLnF1ZXVlKG8ucXVldWUsYSl9LHN0b3A6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RvcDtkZWxldGUgZS5zdG9wLHQobil9O3JldHVybiJzdHJpbmciIT10eXBlb2YgZSYmKG49dCx0PWUsZT12b2lkIDApLHQmJiExIT09ZSYmdGhpcy5xdWV1ZShlfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD0hMCxpPW51bGwhPWUmJmUrInF1ZXVlSG9va3MiLG89dy50aW1lcnMsYT1KLmdldCh0aGlzKTtpZihpKWFbaV0mJmFbaV0uc3RvcCYmcihhW2ldKTtlbHNlIGZvcihpIGluIGEpYVtpXSYmYVtpXS5zdG9wJiZvdC50ZXN0KGkpJiZyKGFbaV0pO2ZvcihpPW8ubGVuZ3RoO2ktLTspb1tpXS5lbGVtIT09dGhpc3x8bnVsbCE9ZSYmb1tpXS5xdWV1ZSE9PWV8fChvW2ldLmFuaW0uc3RvcChuKSx0PSExLG8uc3BsaWNlKGksMSkpOyF0JiZufHx3LmRlcXVldWUodGhpcyxlKX0pfSxmaW5pc2g6ZnVuY3Rpb24oZSl7cmV0dXJuITEhPT1lJiYoZT1lfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdCxuPUouZ2V0KHRoaXMpLHI9bltlKyJxdWV1ZSJdLGk9bltlKyJxdWV1ZUhvb2tzIl0sbz13LnRpbWVycyxhPXI/ci5sZW5ndGg6MDtmb3Iobi5maW5pc2g9ITAsdy5xdWV1ZSh0aGlzLGUsW10pLGkmJmkuc3RvcCYmaS5zdG9wLmNhbGwodGhpcywhMCksdD1vLmxlbmd0aDt0LS07KW9bdF0uZWxlbT09PXRoaXMmJm9bdF0ucXVldWU9PT1lJiYob1t0XS5hbmltLnN0b3AoITApLG8uc3BsaWNlKHQsMSkpO2Zvcih0PTA7dDxhO3QrKylyW3RdJiZyW3RdLmZpbmlzaCYmclt0XS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgbi5maW5pc2h9KX19KSx3LmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dy5mblt0XTt3LmZuW3RdPWZ1bmN0aW9uKGUscixpKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUodXQodCwhMCksZSxyLGkpfX0pLHcuZWFjaCh7c2xpZGVEb3duOnV0KCJzaG93Iiksc2xpZGVVcDp1dCgiaGlkZSIpLHNsaWRlVG9nZ2xlOnV0KCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGUsdCl7dy5mbltlXT1mdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh0LGUsbixyKX19KSx3LnRpbWVycz1bXSx3LmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj13LnRpbWVycztmb3IobnQ9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHx3LmZ4LnN0b3AoKSxudD12b2lkIDB9LHcuZngudGltZXI9ZnVuY3Rpb24oZSl7dy50aW1lcnMucHVzaChlKSx3LmZ4LnN0YXJ0KCl9LHcuZnguaW50ZXJ2YWw9MTMsdy5meC5zdGFydD1mdW5jdGlvbigpe3J0fHwocnQ9ITAsYXQoKSl9LHcuZnguc3RvcD1mdW5jdGlvbigpe3J0PW51bGx9LHcuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LHcuZm4uZGVsYXk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdD13LmZ4P3cuZnguc3BlZWRzW3RdfHx0OnQsbj1ufHwiZngiLHRoaXMucXVldWUobixmdW5jdGlvbihuLHIpe3ZhciBpPWUuc2V0VGltZW91dChuLHQpO3Iuc3RvcD1mdW5jdGlvbigpe2UuY2xlYXJUaW1lb3V0KGkpfX0pfSxmdW5jdGlvbigpe3ZhciBlPXIuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0PXIuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5kQ2hpbGQoci5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7ZS50eXBlPSJjaGVja2JveCIsaC5jaGVja09uPSIiIT09ZS52YWx1ZSxoLm9wdFNlbGVjdGVkPXQuc2VsZWN0ZWQsKGU9ci5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS52YWx1ZT0idCIsZS50eXBlPSJyYWRpbyIsaC5yYWRpb1ZhbHVlPSJ0Ij09PWUudmFsdWV9KCk7dmFyIGR0LGh0PXcuZXhwci5hdHRySGFuZGxlO3cuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHoodGhpcyx3LmF0dHIsZSx0LGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3cucmVtb3ZlQXR0cih0aGlzLGUpfSl9fSksdy5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz1lLm5vZGVUeXBlO2lmKDMhPT1vJiY4IT09byYmMiE9PW8pcmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBlLmdldEF0dHJpYnV0ZT93LnByb3AoZSx0LG4pOigxPT09byYmdy5pc1hNTERvYyhlKXx8KGk9dy5hdHRySG9va3NbdC50b0xvd2VyQ2FzZSgpXXx8KHcuZXhwci5tYXRjaC5ib29sLnRlc3QodCk/ZHQ6dm9pZCAwKSksdm9pZCAwIT09bj9udWxsPT09bj92b2lkIHcucmVtb3ZlQXR0cihlLHQpOmkmJiJzZXQiaW4gaSYmdm9pZCAwIT09KHI9aS5zZXQoZSxuLHQpKT9yOihlLnNldEF0dHJpYnV0ZSh0LG4rIiIpLG4pOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6bnVsbD09KHI9dy5maW5kLmF0dHIoZSx0KSk/dm9pZCAwOnIpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihlLHQpe2lmKCFoLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT10JiZOKGUsImlucHV0Iikpe3ZhciBuPWUudmFsdWU7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJ0eXBlIix0KSxuJiYoZS52YWx1ZT1uKSx0fX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wLGk9dCYmdC5tYXRjaChNKTtpZihpJiYxPT09ZS5ub2RlVHlwZSl3aGlsZShuPWlbcisrXSllLnJlbW92ZUF0dHJpYnV0ZShuKX19KSxkdD17c2V0OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hMT09PXQ/dy5yZW1vdmVBdHRyKGUsbik6ZS5zZXRBdHRyaWJ1dGUobixuKSxufX0sdy5lYWNoKHcuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGUsdCl7dmFyIG49aHRbdF18fHcuZmluZC5hdHRyO2h0W3RdPWZ1bmN0aW9uKGUsdCxyKXt2YXIgaSxvLGE9dC50b0xvd2VyQ2FzZSgpO3JldHVybiByfHwobz1odFthXSxodFthXT1pLGk9bnVsbCE9bihlLHQscik/YTpudWxsLGh0W2FdPW8pLGl9fSk7dmFyIGd0PS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2kseXQ9L14oPzphfGFyZWEpJC9pO3cuZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHoodGhpcyx3LnByb3AsZSx0LGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3cucHJvcEZpeFtlXXx8ZV19KX19KSx3LmV4dGVuZCh7cHJvcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPWUubm9kZVR5cGU7aWYoMyE9PW8mJjghPT1vJiYyIT09bylyZXR1cm4gMT09PW8mJncuaXNYTUxEb2MoZSl8fCh0PXcucHJvcEZpeFt0XXx8dCxpPXcucHJvcEhvb2tzW3RdKSx2b2lkIDAhPT1uP2kmJiJzZXQiaW4gaSYmdm9pZCAwIT09KHI9aS5zZXQoZSxuLHQpKT9yOmVbdF09bjppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOmVbdF19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihlKXt2YXIgdD13LmZpbmQuYXR0cihlLCJ0YWJpbmRleCIpO3JldHVybiB0P3BhcnNlSW50KHQsMTApOmd0LnRlc3QoZS5ub2RlTmFtZSl8fHl0LnRlc3QoZS5ub2RlTmFtZSkmJmUuaHJlZj8wOi0xfX19LHByb3BGaXg6eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifX0pLGgub3B0U2VsZWN0ZWR8fCh3LnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxudWxsfSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3QmJih0LnNlbGVjdGVkSW5kZXgsdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCl9fSksdy5lYWNoKFsidGFiSW5kZXgiLCJyZWFkT25seSIsIm1heExlbmd0aCIsImNlbGxTcGFjaW5nIiwiY2VsbFBhZGRpbmciLCJyb3dTcGFuIiwiY29sU3BhbiIsInVzZU1hcCIsImZyYW1lQm9yZGVyIiwiY29udGVudEVkaXRhYmxlIl0sZnVuY3Rpb24oKXt3LnByb3BGaXhbdGhpcy50b0xvd2VyQ2FzZSgpXT10aGlzfSk7ZnVuY3Rpb24gdnQoZSl7cmV0dXJuKGUubWF0Y2goTSl8fFtdKS5qb2luKCIgIil9ZnVuY3Rpb24gbXQoZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24geHQoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZToic3RyaW5nIj09dHlwZW9mIGU/ZS5tYXRjaChNKXx8W106W119dy5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLG8sYSxzLHU9MDtpZihnKGUpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7dyh0aGlzKS5hZGRDbGFzcyhlLmNhbGwodGhpcyx0LG10KHRoaXMpKSl9KTtpZigodD14dChlKSkubGVuZ3RoKXdoaWxlKG49dGhpc1t1KytdKWlmKGk9bXQobikscj0xPT09bi5ub2RlVHlwZSYmIiAiK3Z0KGkpKyIgIil7YT0wO3doaWxlKG89dFthKytdKXIuaW5kZXhPZigiICIrbysiICIpPDAmJihyKz1vKyIgIik7aSE9PShzPXZ0KHIpKSYmbi5zZXRBdHRyaWJ1dGUoImNsYXNzIixzKX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHMsdT0wO2lmKGcoZSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih0KXt3KHRoaXMpLnJlbW92ZUNsYXNzKGUuY2FsbCh0aGlzLHQsbXQodGhpcykpKX0pO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLmF0dHIoImNsYXNzIiwiIik7aWYoKHQ9eHQoZSkpLmxlbmd0aCl3aGlsZShuPXRoaXNbdSsrXSlpZihpPW10KG4pLHI9MT09PW4ubm9kZVR5cGUmJiIgIit2dChpKSsiICIpe2E9MDt3aGlsZShvPXRbYSsrXSl3aGlsZShyLmluZGV4T2YoIiAiK28rIiAiKT4tMSlyPXIucmVwbGFjZSgiICIrbysiICIsIiAiKTtpIT09KHM9dnQocikpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpfXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBlLHI9InN0cmluZyI9PT1ufHxBcnJheS5pc0FycmF5KGUpO3JldHVybiJib29sZWFuIj09dHlwZW9mIHQmJnI/dD90aGlzLmFkZENsYXNzKGUpOnRoaXMucmVtb3ZlQ2xhc3MoZSk6ZyhlKT90aGlzLmVhY2goZnVuY3Rpb24obil7dyh0aGlzKS50b2dnbGVDbGFzcyhlLmNhbGwodGhpcyxuLG10KHRoaXMpLHQpLHQpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQsaSxvLGE7aWYocil7aT0wLG89dyh0aGlzKSxhPXh0KGUpO3doaWxlKHQ9YVtpKytdKW8uaGFzQ2xhc3ModCk/by5yZW1vdmVDbGFzcyh0KTpvLmFkZENsYXNzKHQpfWVsc2Ugdm9pZCAwIT09ZSYmImJvb2xlYW4iIT09bnx8KCh0PW10KHRoaXMpKSYmSi5zZXQodGhpcywiX19jbGFzc05hbWVfXyIsdCksdGhpcy5zZXRBdHRyaWJ1dGUmJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsdHx8ITE9PT1lPyIiOkouZ2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpKX0pfSxoYXNDbGFzczpmdW5jdGlvbihlKXt2YXIgdCxuLHI9MDt0PSIgIitlKyIgIjt3aGlsZShuPXRoaXNbcisrXSlpZigxPT09bi5ub2RlVHlwZSYmKCIgIit2dChtdChuKSkrIiAiKS5pbmRleE9mKHQpPi0xKXJldHVybiEwO3JldHVybiExfX0pO3ZhciBidD0vXHIvZzt3LmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpPXRoaXNbMF07e2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHI9ZyhlKSx0aGlzLmVhY2goZnVuY3Rpb24obil7dmFyIGk7MT09PXRoaXMubm9kZVR5cGUmJihudWxsPT0oaT1yP2UuY2FsbCh0aGlzLG4sdyh0aGlzKS52YWwoKSk6ZSk/aT0iIjoibnVtYmVyIj09dHlwZW9mIGk/aSs9IiI6QXJyYXkuaXNBcnJheShpKSYmKGk9dy5tYXAoaSxmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT8iIjplKyIifSkpLCh0PXcudmFsSG9va3NbdGhpcy50eXBlXXx8dy52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmInNldCJpbiB0JiZ2b2lkIDAhPT10LnNldCh0aGlzLGksInZhbHVlIil8fCh0aGlzLnZhbHVlPWkpKX0pO2lmKGkpcmV0dXJuKHQ9dy52YWxIb29rc1tpLnR5cGVdfHx3LnZhbEhvb2tzW2kubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIHQmJnZvaWQgMCE9PShuPXQuZ2V0KGksInZhbHVlIikpP246InN0cmluZyI9PXR5cGVvZihuPWkudmFsdWUpP24ucmVwbGFjZShidCwiIik6bnVsbD09bj8iIjpufX19KSx3LmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PXcuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDp2dCh3LnRleHQoZSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9ZS5vcHRpb25zLG89ZS5zZWxlY3RlZEluZGV4LGE9InNlbGVjdC1vbmUiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhTihuLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZih0PXcobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz13Lm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9dy5pbkFycmF5KHcudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKT4tMSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLHcuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe3cudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD13LmluQXJyYXkodyhlKS52YWwoKSx0KT4tMX19LGguY2hlY2tPbnx8KHcudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KSxoLmZvY3VzaW49Im9uZm9jdXNpbiJpbiBlO3ZhciB3dD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sVHQ9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07dy5leHRlbmQody5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbih0LG4saSxvKXt2YXIgYSxzLHUsbCxjLHAsZCxoLHY9W2l8fHJdLG09Zi5jYWxsKHQsInR5cGUiKT90LnR5cGU6dCx4PWYuY2FsbCh0LCJuYW1lc3BhY2UiKT90Lm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKHM9aD11PWk9aXx8ciwzIT09aS5ub2RlVHlwZSYmOCE9PWkubm9kZVR5cGUmJiF3dC50ZXN0KG0rdy5ldmVudC50cmlnZ2VyZWQpJiYobS5pbmRleE9mKCIuIik+LTEmJihtPSh4PW0uc3BsaXQoIi4iKSkuc2hpZnQoKSx4LnNvcnQoKSksYz1tLmluZGV4T2YoIjoiKTwwJiYib24iK20sdD10W3cuZXhwYW5kb10/dDpuZXcgdy5FdmVudChtLCJvYmplY3QiPT10eXBlb2YgdCYmdCksdC5pc1RyaWdnZXI9bz8yOjMsdC5uYW1lc3BhY2U9eC5qb2luKCIuIiksdC5ybmFtZXNwYWNlPXQubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCx0LnJlc3VsdD12b2lkIDAsdC50YXJnZXR8fCh0LnRhcmdldD1pKSxuPW51bGw9PW4/W3RdOncubWFrZUFycmF5KG4sW3RdKSxkPXcuZXZlbnQuc3BlY2lhbFttXXx8e30sb3x8IWQudHJpZ2dlcnx8ITEhPT1kLnRyaWdnZXIuYXBwbHkoaSxuKSkpe2lmKCFvJiYhZC5ub0J1YmJsZSYmIXkoaSkpe2ZvcihsPWQuZGVsZWdhdGVUeXBlfHxtLHd0LnRlc3QobCttKXx8KHM9cy5wYXJlbnROb2RlKTtzO3M9cy5wYXJlbnROb2RlKXYucHVzaChzKSx1PXM7dT09PShpLm93bmVyRG9jdW1lbnR8fHIpJiZ2LnB1c2godS5kZWZhdWx0Vmlld3x8dS5wYXJlbnRXaW5kb3d8fGUpfWE9MDt3aGlsZSgocz12W2ErK10pJiYhdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWg9cyx0LnR5cGU9YT4xP2w6ZC5iaW5kVHlwZXx8bSwocD0oSi5nZXQocywiZXZlbnRzIil8fHt9KVt0LnR5cGVdJiZKLmdldChzLCJoYW5kbGUiKSkmJnAuYXBwbHkocyxuKSwocD1jJiZzW2NdKSYmcC5hcHBseSYmWShzKSYmKHQucmVzdWx0PXAuYXBwbHkocyxuKSwhMT09PXQucmVzdWx0JiZ0LnByZXZlbnREZWZhdWx0KCkpO3JldHVybiB0LnR5cGU9bSxvfHx0LmlzRGVmYXVsdFByZXZlbnRlZCgpfHxkLl9kZWZhdWx0JiYhMSE9PWQuX2RlZmF1bHQuYXBwbHkodi5wb3AoKSxuKXx8IVkoaSl8fGMmJmcoaVttXSkmJiF5KGkpJiYoKHU9aVtjXSkmJihpW2NdPW51bGwpLHcuZXZlbnQudHJpZ2dlcmVkPW0sdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZoLmFkZEV2ZW50TGlzdGVuZXIobSxUdCksaVttXSgpLHQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmaC5yZW1vdmVFdmVudExpc3RlbmVyKG0sVHQpLHcuZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCx1JiYoaVtjXT11KSksdC5yZXN1bHR9fSxzaW11bGF0ZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dy5leHRlbmQobmV3IHcuRXZlbnQsbix7dHlwZTplLGlzU2ltdWxhdGVkOiEwfSk7dy5ldmVudC50cmlnZ2VyKHIsbnVsbCx0KX19KSx3LmZuLmV4dGVuZCh7dHJpZ2dlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt3LmV2ZW50LnRyaWdnZXIoZSx0LHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpc1swXTtpZihuKXJldHVybiB3LmV2ZW50LnRyaWdnZXIoZSx0LG4sITApfX0pLGguZm9jdXNpbnx8dy5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKGUpe3cuZXZlbnQuc2ltdWxhdGUodCxlLnRhcmdldCx3LmV2ZW50LmZpeChlKSl9O3cuZXZlbnQuc3BlY2lhbFt0XT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgcj10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsaT1KLmFjY2VzcyhyLHQpO2l8fHIuYWRkRXZlbnRMaXN0ZW5lcihlLG4sITApLEouYWNjZXNzKHIsdCwoaXx8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGk9Si5hY2Nlc3Mocix0KS0xO2k/Si5hY2Nlc3Mocix0LGkpOihyLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxuLCEwKSxKLnJlbW92ZShyLHQpKX19fSk7dmFyIEN0PWUubG9jYXRpb24sRXQ9RGF0ZS5ub3coKSxrdD0vXD8vO3cucGFyc2VYTUw9ZnVuY3Rpb24odCl7dmFyIG47aWYoIXR8fCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gbnVsbDt0cnl7bj0obmV3IGUuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcodCwidGV4dC94bWwiKX1jYXRjaChlKXtuPXZvaWQgMH1yZXR1cm4gbiYmIW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIikubGVuZ3RofHx3LmVycm9yKCJJbnZhbGlkIFhNTDogIit0KSxufTt2YXIgU3Q9L1xbXF0kLyxEdD0vXHI/XG4vZyxOdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksQXQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIGp0KGUsdCxuLHIpe3ZhciBpO2lmKEFycmF5LmlzQXJyYXkodCkpdy5lYWNoKHQsZnVuY3Rpb24odCxpKXtufHxTdC50ZXN0KGUpP3IoZSxpKTpqdChlKyJbIisoIm9iamVjdCI9PXR5cGVvZiBpJiZudWxsIT1pP3Q6IiIpKyJdIixpLG4scil9KTtlbHNlIGlmKG58fCJvYmplY3QiIT09eCh0KSlyKGUsdCk7ZWxzZSBmb3IoaSBpbiB0KWp0KGUrIlsiK2krIl0iLHRbaV0sbixyKX13LnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49Zyh0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihBcnJheS5pc0FycmF5KGUpfHxlLmpxdWVyeSYmIXcuaXNQbGFpbk9iamVjdChlKSl3LmVhY2goZSxmdW5jdGlvbigpe2kodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IobiBpbiBlKWp0KG4sZVtuXSx0LGkpO3JldHVybiByLmpvaW4oIiYiKX0sdy5mbi5leHRlbmQoe3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiB3LnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LHNlcmlhbGl6ZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dy5wcm9wKHRoaXMsImVsZW1lbnRzIik7cmV0dXJuIGU/dy5tYWtlQXJyYXkoZSk6dGhpc30pLmZpbHRlcihmdW5jdGlvbigpe3ZhciBlPXRoaXMudHlwZTtyZXR1cm4gdGhpcy5uYW1lJiYhdyh0aGlzKS5pcygiOmRpc2FibGVkIikmJkF0LnRlc3QodGhpcy5ub2RlTmFtZSkmJiFOdC50ZXN0KGUpJiYodGhpcy5jaGVja2VkfHwhcGUudGVzdChlKSl9KS5tYXAoZnVuY3Rpb24oZSx0KXt2YXIgbj13KHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1uP251bGw6QXJyYXkuaXNBcnJheShuKT93Lm1hcChuLGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOnQubmFtZSx2YWx1ZTplLnJlcGxhY2UoRHQsIlxyXG4iKX19KTp7bmFtZTp0Lm5hbWUsdmFsdWU6bi5yZXBsYWNlKER0LCJcclxuIil9fSkuZ2V0KCl9fSk7dmFyIHF0PS8lMjAvZyxMdD0vIy4qJC8sSHQ9LyhbPyZdKV89W14mXSovLE90PS9eKC4qPyk6WyBcdF0qKFteXHJcbl0qKSQvZ20sUHQ9L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8sTXQ9L14oPzpHRVR8SEVBRCkkLyxSdD0vXlwvXC8vLEl0PXt9LFd0PXt9LCR0PSIqLyIuY29uY2F0KCIqIiksQnQ9ci5jcmVhdGVFbGVtZW50KCJhIik7QnQuaHJlZj1DdC5ocmVmO2Z1bmN0aW9uIEZ0KGUpe3JldHVybiBmdW5jdGlvbih0LG4peyJzdHJpbmciIT10eXBlb2YgdCYmKG49dCx0PSIqIik7dmFyIHIsaT0wLG89dC50b0xvd2VyQ2FzZSgpLm1hdGNoKE0pfHxbXTtpZihnKG4pKXdoaWxlKHI9b1tpKytdKSIrIj09PXJbMF0/KHI9ci5zbGljZSgxKXx8IioiLChlW3JdPWVbcl18fFtdKS51bnNoaWZ0KG4pKTooZVtyXT1lW3JdfHxbXSkucHVzaChuKX19ZnVuY3Rpb24gX3QoZSx0LG4scil7dmFyIGk9e30sbz1lPT09V3Q7ZnVuY3Rpb24gYShzKXt2YXIgdTtyZXR1cm4gaVtzXT0hMCx3LmVhY2goZVtzXXx8W10sZnVuY3Rpb24oZSxzKXt2YXIgbD1zKHQsbixyKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGx8fG98fGlbbF0/bz8hKHU9bCk6dm9pZCAwOih0LmRhdGFUeXBlcy51bnNoaWZ0KGwpLGEobCksITEpfSksdX1yZXR1cm4gYSh0LmRhdGFUeXBlc1swXSl8fCFpWyIqIl0mJmEoIioiKX1mdW5jdGlvbiB6dChlLHQpe3ZhciBuLHIsaT13LmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKG4gaW4gdCl2b2lkIDAhPT10W25dJiYoKGlbbl0/ZTpyfHwocj17fSkpW25dPXRbbl0pO3JldHVybiByJiZ3LmV4dGVuZCghMCxlLHIpLGV9ZnVuY3Rpb24gWHQoZSx0LG4pe3ZhciByLGksbyxhLHM9ZS5jb250ZW50cyx1PWUuZGF0YVR5cGVzO3doaWxlKCIqIj09PXVbMF0pdS5zaGlmdCgpLHZvaWQgMD09PXImJihyPWUubWltZVR5cGV8fHQuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihyKWZvcihpIGluIHMpaWYoc1tpXSYmc1tpXS50ZXN0KHIpKXt1LnVuc2hpZnQoaSk7YnJlYWt9aWYodVswXWluIG4pbz11WzBdO2Vsc2V7Zm9yKGkgaW4gbil7aWYoIXVbMF18fGUuY29udmVydGVyc1tpKyIgIit1WzBdXSl7bz1pO2JyZWFrfWF8fChhPWkpfW89b3x8YX1pZihvKXJldHVybiBvIT09dVswXSYmdS51bnNoaWZ0KG8pLG5bb119ZnVuY3Rpb24gVXQoZSx0LG4scil7dmFyIGksbyxhLHMsdSxsPXt9LGM9ZS5kYXRhVHlwZXMuc2xpY2UoKTtpZihjWzFdKWZvcihhIGluIGUuY29udmVydGVycylsW2EudG9Mb3dlckNhc2UoKV09ZS5jb252ZXJ0ZXJzW2FdO289Yy5zaGlmdCgpO3doaWxlKG8paWYoZS5yZXNwb25zZUZpZWxkc1tvXSYmKG5bZS5yZXNwb25zZUZpZWxkc1tvXV09dCksIXUmJnImJmUuZGF0YUZpbHRlciYmKHQ9ZS5kYXRhRmlsdGVyKHQsZS5kYXRhVHlwZSkpLHU9byxvPWMuc2hpZnQoKSlpZigiKiI9PT1vKW89dTtlbHNlIGlmKCIqIiE9PXUmJnUhPT1vKXtpZighKGE9bFt1KyIgIitvXXx8bFsiKiAiK29dKSlmb3IoaSBpbiBsKWlmKChzPWkuc3BsaXQoIiAiKSlbMV09PT1vJiYoYT1sW3UrIiAiK3NbMF1dfHxsWyIqICIrc1swXV0pKXshMD09PWE/YT1sW2ldOiEwIT09bFtpXSYmKG89c1swXSxjLnVuc2hpZnQoc1sxXSkpO2JyZWFrfWlmKCEwIT09YSlpZihhJiZlWyJ0aHJvd3MiXSl0PWEodCk7ZWxzZSB0cnl7dD1hKHQpfWNhdGNoKGUpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmE/ZToiTm8gY29udmVyc2lvbiBmcm9tICIrdSsiIHRvICIrb319fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTp0fX13LmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6Q3QuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6UHQudGVzdChDdC5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjokdCx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6dy5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/enQoenQoZSx3LmFqYXhTZXR0aW5ncyksdCk6enQody5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6RnQoSXQpLGFqYXhUcmFuc3BvcnQ6RnQoV3QpLGFqYXg6ZnVuY3Rpb24odCxuKXsib2JqZWN0Ij09dHlwZW9mIHQmJihuPXQsdD12b2lkIDApLG49bnx8e307dmFyIGksbyxhLHMsdSxsLGMsZixwLGQsaD13LmFqYXhTZXR1cCh7fSxuKSxnPWguY29udGV4dHx8aCx5PWguY29udGV4dCYmKGcubm9kZVR5cGV8fGcuanF1ZXJ5KT93KGcpOncuZXZlbnQsdj13LkRlZmVycmVkKCksbT13LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx4PWguc3RhdHVzQ29kZXx8e30sYj17fSxUPXt9LEM9ImNhbmNlbGVkIixFPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoYyl7aWYoIXMpe3M9e307d2hpbGUodD1PdC5leGVjKGEpKXNbdFsxXS50b0xvd2VyQ2FzZSgpXT10WzJdfXQ9c1tlLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT10P251bGw6dH0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIGM/YTpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWMmJihlPVRbZS50b0xvd2VyQ2FzZSgpXT1UW2UudG9Mb3dlckNhc2UoKV18fGUsYltlXT10KSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1jJiYoaC5taW1lVHlwZT1lKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGUpe3ZhciB0O2lmKGUpaWYoYylFLmFsd2F5cyhlW0Uuc3RhdHVzXSk7ZWxzZSBmb3IodCBpbiBlKXhbdF09W3hbdF0sZVt0XV07cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGUpe3ZhciB0PWV8fEM7cmV0dXJuIGkmJmkuYWJvcnQodCksaygwLHQpLHRoaXN9fTtpZih2LnByb21pc2UoRSksaC51cmw9KCh0fHxoLnVybHx8Q3QuaHJlZikrIiIpLnJlcGxhY2UoUnQsQ3QucHJvdG9jb2wrIi8vIiksaC50eXBlPW4ubWV0aG9kfHxuLnR5cGV8fGgubWV0aG9kfHxoLnR5cGUsaC5kYXRhVHlwZXM9KGguZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChNKXx8WyIiXSxudWxsPT1oLmNyb3NzRG9tYWluKXtsPXIuY3JlYXRlRWxlbWVudCgiYSIpO3RyeXtsLmhyZWY9aC51cmwsbC5ocmVmPWwuaHJlZixoLmNyb3NzRG9tYWluPUJ0LnByb3RvY29sKyIvLyIrQnQuaG9zdCE9bC5wcm90b2NvbCsiLy8iK2wuaG9zdH1jYXRjaChlKXtoLmNyb3NzRG9tYWluPSEwfX1pZihoLmRhdGEmJmgucHJvY2Vzc0RhdGEmJiJzdHJpbmciIT10eXBlb2YgaC5kYXRhJiYoaC5kYXRhPXcucGFyYW0oaC5kYXRhLGgudHJhZGl0aW9uYWwpKSxfdChJdCxoLG4sRSksYylyZXR1cm4gRTsoZj13LmV2ZW50JiZoLmdsb2JhbCkmJjA9PXcuYWN0aXZlKysmJncuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0IiksaC50eXBlPWgudHlwZS50b1VwcGVyQ2FzZSgpLGguaGFzQ29udGVudD0hTXQudGVzdChoLnR5cGUpLG89aC51cmwucmVwbGFjZShMdCwiIiksaC5oYXNDb250ZW50P2guZGF0YSYmaC5wcm9jZXNzRGF0YSYmMD09PShoLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJihoLmRhdGE9aC5kYXRhLnJlcGxhY2UocXQsIisiKSk6KGQ9aC51cmwuc2xpY2Uoby5sZW5ndGgpLGguZGF0YSYmKGgucHJvY2Vzc0RhdGF8fCJzdHJpbmciPT10eXBlb2YgaC5kYXRhKSYmKG8rPShrdC50ZXN0KG8pPyImIjoiPyIpK2guZGF0YSxkZWxldGUgaC5kYXRhKSwhMT09PWguY2FjaGUmJihvPW8ucmVwbGFjZShIdCwiJDEiKSxkPShrdC50ZXN0KG8pPyImIjoiPyIpKyJfPSIrRXQrKytkKSxoLnVybD1vK2QpLGguaWZNb2RpZmllZCYmKHcubGFzdE1vZGlmaWVkW29dJiZFLnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIix3Lmxhc3RNb2RpZmllZFtvXSksdy5ldGFnW29dJiZFLnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLHcuZXRhZ1tvXSkpLChoLmRhdGEmJmguaGFzQ29udGVudCYmITEhPT1oLmNvbnRlbnRUeXBlfHxuLmNvbnRlbnRUeXBlKSYmRS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGguY29udGVudFR5cGUpLEUuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixoLmRhdGFUeXBlc1swXSYmaC5hY2NlcHRzW2guZGF0YVR5cGVzWzBdXT9oLmFjY2VwdHNbaC5kYXRhVHlwZXNbMF1dKygiKiIhPT1oLmRhdGFUeXBlc1swXT8iLCAiKyR0KyI7IHE9MC4wMSI6IiIpOmguYWNjZXB0c1siKiJdKTtmb3IocCBpbiBoLmhlYWRlcnMpRS5zZXRSZXF1ZXN0SGVhZGVyKHAsaC5oZWFkZXJzW3BdKTtpZihoLmJlZm9yZVNlbmQmJighMT09PWguYmVmb3JlU2VuZC5jYWxsKGcsRSxoKXx8YykpcmV0dXJuIEUuYWJvcnQoKTtpZihDPSJhYm9ydCIsbS5hZGQoaC5jb21wbGV0ZSksRS5kb25lKGguc3VjY2VzcyksRS5mYWlsKGguZXJyb3IpLGk9X3QoV3QsaCxuLEUpKXtpZihFLnJlYWR5U3RhdGU9MSxmJiZ5LnRyaWdnZXIoImFqYXhTZW5kIixbRSxoXSksYylyZXR1cm4gRTtoLmFzeW5jJiZoLnRpbWVvdXQ+MCYmKHU9ZS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7RS5hYm9ydCgidGltZW91dCIpfSxoLnRpbWVvdXQpKTt0cnl7Yz0hMSxpLnNlbmQoYixrKX1jYXRjaChlKXtpZihjKXRocm93IGU7aygtMSxlKX19ZWxzZSBrKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBrKHQsbixyLHMpe3ZhciBsLHAsZCxiLFQsQz1uO2N8fChjPSEwLHUmJmUuY2xlYXJUaW1lb3V0KHUpLGk9dm9pZCAwLGE9c3x8IiIsRS5yZWFkeVN0YXRlPXQ+MD80OjAsbD10Pj0yMDAmJnQ8MzAwfHwzMDQ9PT10LHImJihiPVh0KGgsRSxyKSksYj1VdChoLGIsRSxsKSxsPyhoLmlmTW9kaWZpZWQmJigoVD1FLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYody5sYXN0TW9kaWZpZWRbb109VCksKFQ9RS5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKHcuZXRhZ1tvXT1UKSksMjA0PT09dHx8IkhFQUQiPT09aC50eXBlP0M9Im5vY29udGVudCI6MzA0PT09dD9DPSJub3Rtb2RpZmllZCI6KEM9Yi5zdGF0ZSxwPWIuZGF0YSxsPSEoZD1iLmVycm9yKSkpOihkPUMsIXQmJkN8fChDPSJlcnJvciIsdDwwJiYodD0wKSkpLEUuc3RhdHVzPXQsRS5zdGF0dXNUZXh0PShufHxDKSsiIixsP3YucmVzb2x2ZVdpdGgoZyxbcCxDLEVdKTp2LnJlamVjdFdpdGgoZyxbRSxDLGRdKSxFLnN0YXR1c0NvZGUoeCkseD12b2lkIDAsZiYmeS50cmlnZ2VyKGw/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbRSxoLGw/cDpkXSksbS5maXJlV2l0aChnLFtFLENdKSxmJiYoeS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtFLGhdKSwtLXcuYWN0aXZlfHx3LmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gRX0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHcuZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiB3LmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSx3LmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oZSx0KXt3W3RdPWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBnKG4pJiYoaT1pfHxyLHI9bixuPXZvaWQgMCksdy5hamF4KHcuZXh0ZW5kKHt1cmw6ZSx0eXBlOnQsZGF0YVR5cGU6aSxkYXRhOm4sc3VjY2VzczpyfSx3LmlzUGxhaW5PYmplY3QoZSkmJmUpKX19KSx3Ll9ldmFsVXJsPWZ1bmN0aW9uKGUpe3JldHVybiB3LmFqYXgoe3VybDplLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLCJ0aHJvd3MiOiEwfSl9LHcuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzWzBdJiYoZyhlKSYmKGU9ZS5jYWxsKHRoaXNbMF0pKSx0PXcoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJnQuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLHQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aGlsZShlLmZpcnN0RWxlbWVudENoaWxkKWU9ZS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gZX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGUpe3JldHVybiBnKGUpP3RoaXMuZWFjaChmdW5jdGlvbih0KXt3KHRoaXMpLndyYXBJbm5lcihlLmNhbGwodGhpcyx0KSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD13KHRoaXMpLG49dC5jb250ZW50cygpO24ubGVuZ3RoP24ud3JhcEFsbChlKTp0LmFwcGVuZChlKX0pfSx3cmFwOmZ1bmN0aW9uKGUpe3ZhciB0PWcoZSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihuKXt3KHRoaXMpLndyYXBBbGwodD9lLmNhbGwodGhpcyxuKTplKX0pfSx1bndyYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucGFyZW50KGUpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXt3KHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLHcuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hdy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sdy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LHcuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IGUuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIFZ0PXswOjIwMCwxMjIzOjIwNH0sR3Q9dy5hamF4U2V0dGluZ3MueGhyKCk7aC5jb3JzPSEhR3QmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gR3QsaC5hamF4PUd0PSEhR3Qsdy5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKHQpe3ZhciBuLHI7aWYoaC5jb3JzfHxHdCYmIXQuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oaSxvKXt2YXIgYSxzPXQueGhyKCk7aWYocy5vcGVuKHQudHlwZSx0LnVybCx0LmFzeW5jLHQudXNlcm5hbWUsdC5wYXNzd29yZCksdC54aHJGaWVsZHMpZm9yKGEgaW4gdC54aHJGaWVsZHMpc1thXT10LnhockZpZWxkc1thXTt0Lm1pbWVUeXBlJiZzLm92ZXJyaWRlTWltZVR5cGUmJnMub3ZlcnJpZGVNaW1lVHlwZSh0Lm1pbWVUeXBlKSx0LmNyb3NzRG9tYWlufHxpWyJYLVJlcXVlc3RlZC1XaXRoIl18fChpWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0Iik7Zm9yKGEgaW4gaSlzLnNldFJlcXVlc3RIZWFkZXIoYSxpW2FdKTtuPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe24mJihuPXI9cy5vbmxvYWQ9cy5vbmVycm9yPXMub25hYm9ydD1zLm9udGltZW91dD1zLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1lP3MuYWJvcnQoKToiZXJyb3IiPT09ZT8ibnVtYmVyIiE9dHlwZW9mIHMuc3RhdHVzP28oMCwiZXJyb3IiKTpvKHMuc3RhdHVzLHMuc3RhdHVzVGV4dCk6byhWdFtzLnN0YXR1c118fHMuc3RhdHVzLHMuc3RhdHVzVGV4dCwidGV4dCIhPT0ocy5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2Ygcy5yZXNwb25zZVRleHQ/e2JpbmFyeTpzLnJlc3BvbnNlfTp7dGV4dDpzLnJlc3BvbnNlVGV4dH0scy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0scy5vbmxvYWQ9bigpLHI9cy5vbmVycm9yPXMub250aW1lb3V0PW4oImVycm9yIiksdm9pZCAwIT09cy5vbmFib3J0P3Mub25hYm9ydD1yOnMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXMucmVhZHlTdGF0ZSYmZS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7biYmcigpfSl9LG49bigiYWJvcnQiKTt0cnl7cy5zZW5kKHQuaGFzQ29udGVudCYmdC5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihuKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe24mJm4oKX19fSksdy5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSx3LmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4gdy5nbG9iYWxFdmFsKGUpLGV9fX0pLHcuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSx3LmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oZSl7aWYoZS5jcm9zc0RvbWFpbil7dmFyIHQsbjtyZXR1cm57c2VuZDpmdW5jdGlvbihpLG8pe3Q9dygiPHNjcmlwdD4iKS5wcm9wKHtjaGFyc2V0OmUuc2NyaXB0Q2hhcnNldCxzcmM6ZS51cmx9KS5vbigibG9hZCBlcnJvciIsbj1mdW5jdGlvbihlKXt0LnJlbW92ZSgpLG49bnVsbCxlJiZvKCJlcnJvciI9PT1lLnR5cGU/NDA0OjIwMCxlLnR5cGUpfSksci5oZWFkLmFwcGVuZENoaWxkKHRbMF0pfSxhYm9ydDpmdW5jdGlvbigpe24mJm4oKX19fX0pO3ZhciBZdD1bXSxRdD0vKD0pXD8oPz0mfCQpfFw/XD8vO3cuYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZT1ZdC5wb3AoKXx8dy5leHBhbmRvKyJfIitFdCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksdy5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbih0LG4scil7dmFyIGksbyxhLHM9ITEhPT10Lmpzb25wJiYoUXQudGVzdCh0LnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiB0LmRhdGEmJjA9PT0odC5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZRdC50ZXN0KHQuZGF0YSkmJiJkYXRhIik7aWYoc3x8Impzb25wIj09PXQuZGF0YVR5cGVzWzBdKXJldHVybiBpPXQuanNvbnBDYWxsYmFjaz1nKHQuanNvbnBDYWxsYmFjayk/dC5qc29ucENhbGxiYWNrKCk6dC5qc29ucENhbGxiYWNrLHM/dFtzXT10W3NdLnJlcGxhY2UoUXQsIiQxIitpKTohMSE9PXQuanNvbnAmJih0LnVybCs9KGt0LnRlc3QodC51cmwpPyImIjoiPyIpK3QuanNvbnArIj0iK2kpLHQuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBhfHx3LmVycm9yKGkrIiB3YXMgbm90IGNhbGxlZCIpLGFbMF19LHQuZGF0YVR5cGVzWzBdPSJqc29uIixvPWVbaV0sZVtpXT1mdW5jdGlvbigpe2E9YXJndW1lbnRzfSxyLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PW8/dyhlKS5yZW1vdmVQcm9wKGkpOmVbaV09byx0W2ldJiYodC5qc29ucENhbGxiYWNrPW4uanNvbnBDYWxsYmFjayxZdC5wdXNoKGkpKSxhJiZnKG8pJiZvKGFbMF0pLGE9bz12b2lkIDB9KSwic2NyaXB0In0pLGguY3JlYXRlSFRNTERvY3VtZW50PWZ1bmN0aW9uKCl7dmFyIGU9ci5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHk7cmV0dXJuIGUuaW5uZXJIVE1MPSI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPiIsMj09PWUuY2hpbGROb2Rlcy5sZW5ndGh9KCksdy5wYXJzZUhUTUw9ZnVuY3Rpb24oZSx0LG4pe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm5bXTsiYm9vbGVhbiI9PXR5cGVvZiB0JiYobj10LHQ9ITEpO3ZhciBpLG8sYTtyZXR1cm4gdHx8KGguY3JlYXRlSFRNTERvY3VtZW50PygoaT0odD1yLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikpLmNyZWF0ZUVsZW1lbnQoImJhc2UiKSkuaHJlZj1yLmxvY2F0aW9uLmhyZWYsdC5oZWFkLmFwcGVuZENoaWxkKGkpKTp0PXIpLG89QS5leGVjKGUpLGE9IW4mJltdLG8/W3QuY3JlYXRlRWxlbWVudChvWzFdKV06KG89eGUoW2VdLHQsYSksYSYmYS5sZW5ndGgmJncoYSkucmVtb3ZlKCksdy5tZXJnZShbXSxvLmNoaWxkTm9kZXMpKX0sdy5mbi5sb2FkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT10aGlzLHM9ZS5pbmRleE9mKCIgIik7cmV0dXJuIHM+LTEmJihyPXZ0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSxnKHQpPyhuPXQsdD12b2lkIDApOnQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGk9IlBPU1QiKSxhLmxlbmd0aD4wJiZ3LmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/dygiPGRpdj4iKS5hcHBlbmQody5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSx3LmVhY2goWyJhamF4U3RhcnQiLCJhamF4U3RvcCIsImFqYXhDb21wbGV0ZSIsImFqYXhFcnJvciIsImFqYXhTdWNjZXNzIiwiYWpheFNlbmQiXSxmdW5jdGlvbihlLHQpe3cuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSx3LmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbihlKXtyZXR1cm4gdy5ncmVwKHcudGltZXJzLGZ1bmN0aW9uKHQpe3JldHVybiBlPT09dC5lbGVtfSkubGVuZ3RofSx3Lm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPXcuY3NzKGUsInBvc2l0aW9uIiksZj13KGUpLHA9e307InN0YXRpYyI9PT1jJiYoZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxzPWYub2Zmc2V0KCksbz13LmNzcyhlLCJ0b3AiKSx1PXcuY3NzKGUsImxlZnQiKSwobD0oImFic29sdXRlIj09PWN8fCJmaXhlZCI9PT1jKSYmKG8rdSkuaW5kZXhPZigiYXV0byIpPi0xKT8oYT0ocj1mLnBvc2l0aW9uKCkpLnRvcCxpPXIubGVmdCk6KGE9cGFyc2VGbG9hdChvKXx8MCxpPXBhcnNlRmxvYXQodSl8fDApLGcodCkmJih0PXQuY2FsbChlLG4sdy5leHRlbmQoe30scykpKSxudWxsIT10LnRvcCYmKHAudG9wPXQudG9wLXMudG9wK2EpLG51bGwhPXQubGVmdCYmKHAubGVmdD10LmxlZnQtcy5sZWZ0K2kpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLHApOmYuY3NzKHApfX0sdy5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihlKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1lP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3cub2Zmc2V0LnNldE9mZnNldCh0aGlzLGUsdCl9KTt2YXIgdCxuLHI9dGhpc1swXTtpZihyKXJldHVybiByLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyh0PXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDp0LnRvcCtuLnBhZ2VZT2Zmc2V0LGxlZnQ6dC5sZWZ0K24ucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfX0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgZSx0LG4scj10aGlzWzBdLGk9e3RvcDowLGxlZnQ6MH07aWYoImZpeGVkIj09PXcuY3NzKHIsInBvc2l0aW9uIikpdD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7dD10aGlzLm9mZnNldCgpLG49ci5vd25lckRvY3VtZW50LGU9ci5vZmZzZXRQYXJlbnR8fG4uZG9jdW1lbnRFbGVtZW50O3doaWxlKGUmJihlPT09bi5ib2R5fHxlPT09bi5kb2N1bWVudEVsZW1lbnQpJiYic3RhdGljIj09PXcuY3NzKGUsInBvc2l0aW9uIikpZT1lLnBhcmVudE5vZGU7ZSYmZSE9PXImJjE9PT1lLm5vZGVUeXBlJiYoKGk9dyhlKS5vZmZzZXQoKSkudG9wKz13LmNzcyhlLCJib3JkZXJUb3BXaWR0aCIsITApLGkubGVmdCs9dy5jc3MoZSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpfXJldHVybnt0b3A6dC50b3AtaS50b3Atdy5jc3MociwibWFyZ2luVG9wIiwhMCksbGVmdDp0LmxlZnQtaS5sZWZ0LXcuY3NzKHIsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShlJiYic3RhdGljIj09PXcuY3NzKGUsInBvc2l0aW9uIikpZT1lLm9mZnNldFBhcmVudDtyZXR1cm4gZXx8YmV9KX19KSx3LmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24oZSx0KXt2YXIgbj0icGFnZVlPZmZzZXQiPT09dDt3LmZuW2VdPWZ1bmN0aW9uKHIpe3JldHVybiB6KHRoaXMsZnVuY3Rpb24oZSxyLGkpe3ZhciBvO2lmKHkoZSk/bz1lOjk9PT1lLm5vZGVUeXBlJiYobz1lLmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1pKXJldHVybiBvP29bdF06ZVtyXTtvP28uc2Nyb2xsVG8obj9vLnBhZ2VYT2Zmc2V0Omksbj9pOm8ucGFnZVlPZmZzZXQpOmVbcl09aX0sZSxyLGFyZ3VtZW50cy5sZW5ndGgpfX0pLHcuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLHQpe3cuY3NzSG9va3NbdF09X2UoaC5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGUsbil7aWYobilyZXR1cm4gbj1GZShlLHQpLFdlLnRlc3Qobik/dyhlKS5wb3NpdGlvbigpW3RdKyJweCI6bn0pfSksdy5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24oZSx0KXt3LmVhY2goe3BhZGRpbmc6ImlubmVyIitlLGNvbnRlbnQ6dCwiIjoib3V0ZXIiK2V9LGZ1bmN0aW9uKG4scil7dy5mbltyXT1mdW5jdGlvbihpLG8pe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGgmJihufHwiYm9vbGVhbiIhPXR5cGVvZiBpKSxzPW58fCghMD09PWl8fCEwPT09bz8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIHoodGhpcyxmdW5jdGlvbih0LG4saSl7dmFyIG87cmV0dXJuIHkodCk/MD09PXIuaW5kZXhPZigib3V0ZXIiKT90WyJpbm5lciIrZV06dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrZV06OT09PXQubm9kZVR5cGU/KG89dC5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgodC5ib2R5WyJzY3JvbGwiK2VdLG9bInNjcm9sbCIrZV0sdC5ib2R5WyJvZmZzZXQiK2VdLG9bIm9mZnNldCIrZV0sb1siY2xpZW50IitlXSkpOnZvaWQgMD09PWk/dy5jc3ModCxuLHMpOncuc3R5bGUodCxuLGkscyl9LHQsYT9pOnZvaWQgMCxhKX19KX0pLHcuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe3cuZm5bdF09ZnVuY3Rpb24oZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24odCxudWxsLGUsbik6dGhpcy50cmlnZ2VyKHQpfX0pLHcuZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoZSkubW91c2VsZWF2ZSh0fHxlKX19KSx3LmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMub24oZSxudWxsLHQsbil9LHVuYmluZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9mZihlLG51bGwsdCl9LGRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKHQsZSxuLHIpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoZSwiKioiKTp0aGlzLm9mZih0LGV8fCIqKiIsbil9fSksdy5wcm94eT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaTtpZigic3RyaW5nIj09dHlwZW9mIHQmJihuPWVbdF0sdD1lLGU9biksZyhlKSlyZXR1cm4gcj1vLmNhbGwoYXJndW1lbnRzLDIpLGk9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0fHx0aGlzLHIuY29uY2F0KG8uY2FsbChhcmd1bWVudHMpKSl9LGkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHx3Lmd1aWQrKyxpfSx3LmhvbGRSZWFkeT1mdW5jdGlvbihlKXtlP3cucmVhZHlXYWl0Kys6dy5yZWFkeSghMCl9LHcuaXNBcnJheT1BcnJheS5pc0FycmF5LHcucGFyc2VKU09OPUpTT04ucGFyc2Usdy5ub2RlTmFtZT1OLHcuaXNGdW5jdGlvbj1nLHcuaXNXaW5kb3c9eSx3LmNhbWVsQ2FzZT1HLHcudHlwZT14LHcubm93PURhdGUubm93LHcuaXNOdW1lcmljPWZ1bmN0aW9uKGUpe3ZhciB0PXcudHlwZShlKTtyZXR1cm4oIm51bWJlciI9PT10fHwic3RyaW5nIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIHd9KTt2YXIgSnQ9ZS5qUXVlcnksS3Q9ZS4kO3JldHVybiB3Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGUuJD09PXcmJihlLiQ9S3QpLHQmJmUualF1ZXJ5PT09dyYmKGUualF1ZXJ5PUp0KSx3fSx0fHwoZS5qUXVlcnk9ZS4kPXcpLHd9KTs="}},"time_used":33,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":11,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/close.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.927Z","timestamp":1785132838927,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/close.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/lightbox.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Mon, 03 Jan 2022 23:40:28 GMT\r\naccept-ranges: bytes\r\ncontent-length: 280\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":280,"size_decoded":544,"mime_type":"image/png","magic":"PNG image data, 27 x 27, 8-bit colormap, non-interlaced","md5":"d9d2d0b1308cb694aa8116915592e2a9","sha1":"3ca48361cfe0e41163023d03c26296f375bb3eac","sha256":"5d62e6c90005bfb71f6abb440f9e4753681cb23bbd5e60477ab6f442d2f0e69c","sha512":"ae70339ec05f19d698a319cc265da583814711acbefd81ddcb7d6d5e59934b78b289e5a55c666af62216a8f9ce5de60afd6f41c54ef7e4ea569d5458cef78af5","ssdeep":"","tlshash":"14d02bde1679ec69ec90667161128210d83778517264a145704fa125944b685f515367","first_seen":"2023-04-05T16:20:30Z","last_seen":"2026-07-27T09:01:27.094041Z","times_seen":22298,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAAPFBMVEX///8AAAD9/f2CgoKAgIAAAAAAAAAAAABLS0sAAAAAAACqqqqqqqq6urpKSkpISEgAAAC7u7u5ubn////zbsMcAAAAE3RSTlMASv6rqwAWS5YMC7/AyZWVFcrJCYaKfAAAAHhJREFUeF590kkOgCAQRFEaFVGc+/53FYmbz6JqBbyQMFSYuoQuV+iTflnstI7ssLXRvMWRaEMs84e2uVckuZe6knL0hiSPObXhj6ChzoEkIolIIpKIO4joICAIeDd7QGIfCCjOKe9HEk8mnxpIAup/F31RPZP9fAG3IAyBSJe0igAAAABJRU5ErkJggg=="}},"time_used":21,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":21,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_68x28dp.png","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.545Z","timestamp":1785132839545,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /images/branding/googlelogo/1x/googlelogo_color_68x28dp.png HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 1597\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:18 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:18 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 30 Jun 2023 18:58:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 407021\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1597,"size_decoded":2271,"mime_type":"image/png","magic":"PNG image data, 68 x 28, 8-bit/color RGBA, non-interlaced","md5":"c4a931d597decd2553aac6634b766cf2","sha1":"6ec84fb4a2745b4b71520241be77db1fd1013830","sha256":"f56402b127698db4b4dc611a97a6f081d04c4691c60522c5912d189e37c94a9e","sha512":"4932e0f7f38085a7c52539bdd5c7f470740e560a4471bea30d12ef9e3efe77f6bbfac28d26c62a245c43d98ebf74c824b2b414843080a27edf1563a5f874ac84","ssdeep":"","tlshash":"7c310afff39e8cec419e764069ba5965a362cd68233e928f14499592e4d007710f5f41","first_seen":"2023-04-05T08:27:37Z","last_seen":"2026-07-27T09:46:57.043199Z","times_seen":17600,"resource_available":false,"data":"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"}},"time_used":16,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/style-CliJwUTR.css","fqdn":"widget-v3.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":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:05.711Z","timestamp":1785132845711,"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://farosonglobaltrade.ltd\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 06:14:05 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: k6M/tn38HlA4Z0tWfjWOKn1BJsXz/jPeHWDnnFQy0xso0iRfICc/hr4asaRefG3AfyHug9Q\r\nx-77-nzt-ray: fdb541232848488e2df7666ae681572a\r\nx-77-cache: HIT\r\nx-77-age: 1719802\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-07-27T09:46:41.732545Z","times_seen":2155,"resource_available":false,"data":"LmJ0bi5zdmVsdGUteXdvZm1se2JvcmRlci1yYWRpdXM6OTk5OXB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6LjI1cmVtO2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmlubGluZS1mbGV4fS5idG4tcHJpbWFyeS5zdmVsdGUteXdvZm1se2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1wcmltYXJ5LnN2ZWx0ZS15d29mbWw6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tZ2hvc3Quc3ZlbHRlLXl3b2ZtbDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYnRuLXN1Y2Nlc3Muc3ZlbHRlLXl3b2ZtbHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNiAxODUgMTI5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5idG4tc3VjY2Vzcy5zdmVsdGUteXdvZm1sOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDUgMTUwIDEwNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5idG4tc20uc3ZlbHRlLXl3b2ZtbHt3aWR0aDoxLjVyZW07aGVpZ2h0OjEuNXJlbX0uYnRuLW1kLnN2ZWx0ZS15d29mbWx7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbX0uYnRuLWxnLnN2ZWx0ZS15d29mbWx7d2lkdGg6Mi43NXJlbTtoZWlnaHQ6Mi43NXJlbX0uYnRuLXhsLnN2ZWx0ZS15d29mbWx7d2lkdGg6M3JlbTtoZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS15d29mbWx7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjJ9LmJ0bi1kaXNhYmxlZC5zdmVsdGUteXdvZm1sOmhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwMDB9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowO2JvcmRlci1jb2xvcjp2YXIoLS11bi1kZWZhdWx0LWJvcmRlci1jb2xvciwjZTVlN2ViKX06YmVmb3JlLDphZnRlcnstLXVuLWNvbnRlbnQ6IiJ9aHRtbCw6aG9zdHstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTt0YWItc2l6ZTo0O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6bm9ybWFsOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSxzYW5zLXNlcmlmLEFwcGxlIENvbG9yIEVtb2ppLFNlZ29lIFVJIEVtb2ppLFNlZ29lIFVJIFN5bWJvbCxOb3RvIENvbG9yIEVtb2ppO2xpbmUtaGVpZ2h0OjEuNX1ib2R5e2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOjB9aHJ7aGVpZ2h0OjA7Y29sb3I6aW5oZXJpdDtib3JkZXItdG9wLXdpZHRoOjFweH1hYmJyOndoZXJlKFt0aXRsZV0pey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9Y29kZSxrYmQsc2FtcCxwcmV7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxMaWJlcmF0aW9uIE1vbm8sQ291cmllciBOZXcsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mZWF0dXJlLXNldHRpbmdzOmluaGVyaXQ7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjppbmhlcml0O21hcmdpbjowO3BhZGRpbmc6MH1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JhY2tncm91bmQtaW1hZ2U6bm9uZX06LW1vei1mb2N1c3Jpbmd7b3V0bGluZTphdXRvfTotbW96LXVpLWludmFsaWR7Ym94LXNoYWRvdzpub25lfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b306Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX1ibG9ja3F1b3RlLGRsLGRkLGgxLGgyLGgzLGg0LGg1LGg2LGhyLGZpZ3VyZSxwLHByZXttYXJnaW46MH1maWVsZHNldHttYXJnaW46MDtwYWRkaW5nOjB9bGVnZW5ke3BhZGRpbmc6MH1vbCx1bCxtZW51e21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9ZGlhbG9ne3BhZGRpbmc6MH10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9aW5wdXQ6OnBsYWNlaG9sZGVyLHRleHRhcmVhOjpwbGFjZWhvbGRlcntvcGFjaXR5OjE7Y29sb3I6IzljYTNhZn1idXR0b24sW3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn06ZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9aW1nLHN2Zyx2aWRlbyxjYW52YXMsYXVkaW8saWZyYW1lLGVtYmVkLG9iamVjdHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTpibG9ja31pbWcsdmlkZW97bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99W2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPXVudGlsLWZvdW5kXSkpe2Rpc3BsYXk6bm9uZX0qLDpiZWZvcmUsOmFmdGVyLDo6YmFja2Ryb3B7LS11bi1yb3RhdGU6MDstLXVuLXJvdGF0ZS14OjA7LS11bi1yb3RhdGUteTowOy0tdW4tcm90YXRlLXo6MDstLXVuLXNjYWxlLXg6MTstLXVuLXNjYWxlLXk6MTstLXVuLXNjYWxlLXo6MTstLXVuLXNrZXcteDowOy0tdW4tc2tldy15OjA7LS11bi10cmFuc2xhdGUteDowOy0tdW4tdHJhbnNsYXRlLXk6MDstLXVuLXRyYW5zbGF0ZS16OjA7LS11bi1wYW4teDogOy0tdW4tcGFuLXk6IDstLXVuLXBpbmNoLXpvb206IDstLXVuLXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6cHJveGltaXR5Oy0tdW4tb3JkaW5hbDogOy0tdW4tc2xhc2hlZC16ZXJvOiA7LS11bi1udW1lcmljLWZpZ3VyZTogOy0tdW4tbnVtZXJpYy1zcGFjaW5nOiA7LS11bi1udW1lcmljLWZyYWN0aW9uOiA7LS11bi1ib3JkZXItc3BhY2luZy14OjA7LS11bi1ib3JkZXItc3BhY2luZy15OjA7LS11bi1yaW5nLW9mZnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1zaGFkb3c6MCAwICMwMDAwOy0tdW4tc2hhZG93LWluc2V0OiA7LS11bi1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1pbnNldDogOy0tdW4tcmluZy1vZmZzZXQtd2lkdGg6MHB4Oy0tdW4tcmluZy1vZmZzZXQtY29sb3I6I2ZmZjstLXVuLXJpbmctd2lkdGg6MHB4Oy0tdW4tcmluZy1jb2xvcjojOTNjNWZkODA7LS11bi1ibHVyOiA7LS11bi1icmlnaHRuZXNzOiA7LS11bi1jb250cmFzdDogOy0tdW4tZHJvcC1zaGFkb3c6IDstLXVuLWdyYXlzY2FsZTogOy0tdW4taHVlLXJvdGF0ZTogOy0tdW4taW52ZXJ0OiA7LS11bi1zYXR1cmF0ZTogOy0tdW4tc2VwaWE6IDstLXVuLWJhY2tkcm9wLWJsdXI6IDstLXVuLWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXVuLWJhY2tkcm9wLWNvbnRyYXN0OiA7LS11bi1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXVuLWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXVuLWJhY2tkcm9wLWludmVydDogOy0tdW4tYmFja2Ryb3Atb3BhY2l0eTogOy0tdW4tYmFja2Ryb3Atc2F0dXJhdGU6IDstLXVuLWJhY2tkcm9wLXNlcGlhOiB9LmZsZXgtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uYnV0dG9uLWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6MXB4O291dGxpbmUtc3R5bGU6c29saWR9LmJ1dHRvbi1mb2N1cy1zZWNvbmRhcnk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXdpZHRoOjJweDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktZm9jdXMpIDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXNlY29uZGFyeS1mb2N1cykgO291dGxpbmUtb2Zmc2V0OjFweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzLXNlY29uZGFyeTpmb2N1cy12aXNpYmxle291dGxpbmUtd2lkdGg6MnB4O291dGxpbmUtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1mb2N1cykgO291dGxpbmUtY29sb3I6dmFyKC0tY29sb3Itc2Vjb25kYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5cW2NsaXBcOnJlY3RcKDBcLDBcLDBcLDBcKVxde2NsaXA6cmVjdCgwLDAsMCwwKX0uc3Itb25seXtjbGlwOnJlY3QoMCwwLDAsMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci13aWR0aDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzpoaWRkZW59LnBvaW50ZXItZXZlbnRzLWF1dG97cG9pbnRlci1ldmVudHM6YXV0b30ucG9pbnRlci1ldmVudHMtbm9uZXtwb2ludGVyLWV2ZW50czpub25lfS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWR7cG9zaXRpb246Zml4ZWR9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGlja3l7cG9zaXRpb246c3RpY2t5fS4tYm90dG9tLTRcLjV7Ym90dG9tOi0xLjEyNXJlbX0uLXJpZ2h0LVxbNHB4XF17cmlnaHQ6LTRweH0uLXRvcC1cWzRweFxde3RvcDotNHB4fS5ib3R0b20tXFstOHB4XF17Ym90dG9tOi04cHh9LmJvdHRvbS0we2JvdHRvbTowfS5ib3R0b20tM3tib3R0b206Ljc1cmVtfS5ib3R0b20tZnVsbHtib3R0b206MTAwJX0ubGVmdC1cWzJweFxde2xlZnQ6MnB4fS5sZWZ0LTB7bGVmdDowfS5sZWZ0LTFcLzJ7bGVmdDo1MCV9LmxlZnQtMntsZWZ0Oi41cmVtfS5sZWZ0LTNcLjd7bGVmdDouOTI1cmVtfS5yaWdodC1cWzE2cHhcXXtyaWdodDoxNnB4fS5yaWdodC0we3JpZ2h0OjB9LnJpZ2h0LTBcLjV7cmlnaHQ6LjEyNXJlbX0ucmlnaHQtMntyaWdodDouNXJlbX0ucmlnaHQtM3tyaWdodDouNzVyZW19LnRvcC1cWzJweFxde3RvcDoycHh9LnRvcC0we3RvcDowfS50b3AtMnt0b3A6LjVyZW19LnRvcC0ze3RvcDouNzVyZW19LnRvcC0zXC43e3RvcDouOTI1cmVtfS50b3AtMzB7dG9wOjcuNXJlbX0udG9wLTQwe3RvcDoxMHJlbX0ubGluZS1jbGFtcC0xey13ZWJraXQtbGluZS1jbGFtcDoxO2xpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LmxpbmUtY2xhbXAtMnstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS5saW5lLWNsYW1wLTN7LXdlYmtpdC1saW5lLWNsYW1wOjM7bGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0ubGluZS1jbGFtcC01ey13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LnotMXt6LWluZGV4OjF9LnotMTB7ei1pbmRleDoxMH0uei0xMDB7ei1pbmRleDoxMDB9LnotNTB7ei1pbmRleDo1MH0uZ3JpZHtkaXNwbGF5OmdyaWR9LmZsb2F0LXJpZ2h0e2Zsb2F0OnJpZ2h0fS4tbS1weHttYXJnaW46LTFweH0ubS0ze21hcmdpbjouNzVyZW19Lm0tYXV0b3ttYXJnaW46YXV0b30ubTE1e21hcmdpbjozLjc1cmVtfS5tMTZ7bWFyZ2luOjRyZW19Lm0xOHttYXJnaW46NC41cmVtfS5tMjF7bWFyZ2luOjUuMjVyZW19Lm0yMnttYXJnaW46NS41cmVtfS5tNnttYXJnaW46MS41cmVtfS5tN3ttYXJnaW46MS43NXJlbX0ubTh7bWFyZ2luOjJyZW19Lm05e21hcmdpbjoyLjI1cmVtfS5teC0ye21hcmdpbi1sZWZ0Oi41cmVtO21hcmdpbi1yaWdodDouNXJlbX0ubXgtM3ttYXJnaW4tbGVmdDouNzVyZW07bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXgtNHttYXJnaW4tbGVmdDoxcmVtO21hcmdpbi1yaWdodDoxcmVtfS5teS0ze21hcmdpbi10b3A6Ljc1cmVtO21hcmdpbi1ib3R0b206Ljc1cmVtfS5teS00e21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjFyZW19Li1tdC0ze21hcmdpbi10b3A6LS43NXJlbX0ubWItXFsycHhcXXttYXJnaW4tYm90dG9tOjJweH0ubWItMHttYXJnaW4tYm90dG9tOjB9Lm1iLTEsLm5vdC1sYXN0LW9mLXR5cGVcOm1iLTE6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206LjI1cmVtfS5tYi0ye21hcmdpbi1ib3R0b206LjVyZW19Lm1iLTN7bWFyZ2luLWJvdHRvbTouNzVyZW19Lm1iLTR7bWFyZ2luLWJvdHRvbToxcmVtfS5tYi02e21hcmdpbi1ib3R0b206MS41cmVtfS5tbC0wXC41e21hcmdpbi1sZWZ0Oi4xMjVyZW19Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtfS5tbC0ye21hcmdpbi1sZWZ0Oi41cmVtfS5tbC0ze21hcmdpbi1sZWZ0Oi43NXJlbX0ubWwtNHttYXJnaW4tbGVmdDoxcmVtfS5tbC04e21hcmdpbi1sZWZ0OjJyZW19Lm1yLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbX0ubXItMVwuNXttYXJnaW4tcmlnaHQ6LjM3NXJlbX0ubXItMTB7bWFyZ2luLXJpZ2h0OjIuNXJlbX0ubXItMnttYXJnaW4tcmlnaHQ6LjVyZW19Lm1yLTN7bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXItNHttYXJnaW4tcmlnaHQ6MXJlbX0ubXQtXFsxcHhcXXttYXJnaW4tdG9wOjFweH0ubXQtMFwuNXttYXJnaW4tdG9wOi4xMjVyZW19Lm10LTJ7bWFyZ2luLXRvcDouNXJlbX0ubXQtM3ttYXJnaW4tdG9wOi43NXJlbX0ubXQtNHttYXJnaW4tdG9wOjFyZW19Lm10LTZ7bWFyZ2luLXRvcDoxLjVyZW19Lm10LTh7bWFyZ2luLXRvcDoycmVtfS5maXJzdC1vZi10eXBlXDptdC0yOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDouNXJlbX0uaW5saW5le2Rpc3BsYXk6aW5saW5lfS5ibG9ja3tkaXNwbGF5OmJsb2NrfS5pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmgtXFsxXC4yZW1cXXtoZWlnaHQ6MS4yZW19LmgtXFsxZW1cXXtoZWlnaHQ6MWVtfS5oLVxbNTBweFxde2hlaWdodDo1MHB4fS5oLTF7aGVpZ2h0Oi4yNXJlbX0uaC0xMHtoZWlnaHQ6Mi41cmVtfS5oLTExe2hlaWdodDoyLjc1cmVtfS5oLTEye2hlaWdodDozcmVtfS5oLTJ7aGVpZ2h0Oi41cmVtfS5oLTJcLjV7aGVpZ2h0Oi42MjVyZW19LmgtMjB7aGVpZ2h0OjVyZW19LmgtMzB7aGVpZ2h0OjcuNXJlbX0uaC00e2hlaWdodDoxcmVtfS5oLTQwe2hlaWdodDoxMHJlbX0uaC00MDBweHtoZWlnaHQ6NDAwcHh9LmgtNXtoZWlnaHQ6MS4yNXJlbX0uaC01NHB4e2hlaWdodDo1NHB4fS5oLTZ7aGVpZ2h0OjEuNXJlbX0uaC02MHB4e2hlaWdodDo2MHB4fS5oLTY0cHh7aGVpZ2h0OjY0cHh9LmgtN3toZWlnaHQ6MS43NXJlbX0uaC04e2hlaWdodDoycmVtfS5oLWZ1bGx7aGVpZ2h0OjEwMCV9LmgtcHh7aGVpZ2h0OjFweH0ubWF4LWgtXFsxMjVweFxde21heC1oZWlnaHQ6MTI1cHh9Lm1heC1oLVxbMjQwcHhcXXttYXgtaGVpZ2h0OjI0MHB4fS5tYXgtaC1cWzMycHhcXXttYXgtaGVpZ2h0OjMycHh9Lm1heC1oLTEzMnB4e21heC1oZWlnaHQ6MTMycHh9Lm1heC1oLTY0e21heC1oZWlnaHQ6MTZyZW19Lm1heC1oLTgwdmh7bWF4LWhlaWdodDo4MHZofS5tYXgtaC04NnttYXgtaGVpZ2h0OjIxLjVyZW19Lm1heC1oLWZ1bGx7bWF4LWhlaWdodDoxMDAlfS5tYXgtdy1cWzgwXCVcXXttYXgtd2lkdGg6ODAlfS5tYXgtdy1cWzg1XCVcXXttYXgtd2lkdGg6ODUlfS5tYXgtdy1cW2NhbGNcKDEwMFwlLTE1MHB4XClcXXttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTUwcHgpfS5tYXgtdy1mdWxse21heC13aWR0aDoxMDAlfS5taW4taC1cWzE2cHhcXXttaW4taGVpZ2h0OjE2cHh9Lm1pbi13LVxbMTZweFxde21pbi13aWR0aDoxNnB4fS5taW4tdy0we21pbi13aWR0aDowfS5taW4tdy01e21pbi13aWR0aDoxLjI1cmVtfS5taW4tdy01XC41e21pbi13aWR0aDoxLjM3NXJlbX0ubWluLXctNnttaW4td2lkdGg6MS41cmVtfS53LVxbMVwuMmVtXF17d2lkdGg6MS4yZW19LnctXFsxZW1cXXt3aWR0aDoxZW19LnctXFs1MHB4XF17d2lkdGg6NTBweH0udy0we3dpZHRoOjB9LnctMXt3aWR0aDouMjVyZW19LnctMTF7d2lkdGg6Mi43NXJlbX0udy0xMTZ7d2lkdGg6MjlyZW19LnctMTJ7d2lkdGg6M3JlbX0udy0ye3dpZHRoOi41cmVtfS53LTJcLjV7d2lkdGg6LjYyNXJlbX0udy0yODBweHt3aWR0aDoyODBweH0udy0zNDhweHt3aWR0aDozNDhweH0udy00e3dpZHRoOjFyZW19LnctNXt3aWR0aDoxLjI1cmVtfS53LTUye3dpZHRoOjEzcmVtfS53LTU2e3dpZHRoOjE0cmVtfS53LTZ7d2lkdGg6MS41cmVtfS53LTYwcHh7d2lkdGg6NjBweH0udy03e3dpZHRoOjEuNzVyZW19LnctOHt3aWR0aDoycmVtfS53LWZ1bGx7d2lkdGg6MTAwJX0udy1tYXh7d2lkdGg6bWF4LWNvbnRlbnR9LnctcHh7d2lkdGg6MXB4fS5mbGV4e2Rpc3BsYXk6ZmxleH0uaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uZmxleC0xe2ZsZXg6MX0uZmxleC1ub25le2ZsZXg6bm9uZX0uZmxleC1zaHJpbmt7ZmxleC1zaHJpbms6MX0uZmxleC1zaHJpbmstMCwuc2hyaW5rLTB7ZmxleC1zaHJpbms6MH0uZmxleC1ncm93LC5ncm93e2ZsZXgtZ3JvdzoxfS5mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS4tdHJhbnNsYXRlLXgtMVwvMnstLXVuLXRyYW5zbGF0ZS14Oi01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNsYXRlLXgtZnVsbHstLXVuLXRyYW5zbGF0ZS14OjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpzY2FsZS0xMTV7LS11bi1zY2FsZS14OjEuMTU7LS11bi1zY2FsZS15OjEuMTU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uaG92ZXJcOnNjYWxlLTEyMDpob3ZlcnstLXVuLXNjYWxlLXg6MS4yOy0tdW4tc2NhbGUteToxLjI7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNmb3Jte3RyYW5zZm9ybTp0cmFuc2xhdGVYKHZhcigtLXVuLXRyYW5zbGF0ZS14KSkgdHJhbnNsYXRlWSh2YXIoLS11bi10cmFuc2xhdGUteSkpIHRyYW5zbGF0ZVoodmFyKC0tdW4tdHJhbnNsYXRlLXopKSByb3RhdGUodmFyKC0tdW4tcm90YXRlKSkgcm90YXRlWCh2YXIoLS11bi1yb3RhdGUteCkpIHJvdGF0ZVkodmFyKC0tdW4tcm90YXRlLXkpKSByb3RhdGVaKHZhcigtLXVuLXJvdGF0ZS16KSkgc2tld1godmFyKC0tdW4tc2tldy14KSkgc2tld1kodmFyKC0tdW4tc2tldy15KSkgc2NhbGVYKHZhcigtLXVuLXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdW4tc2NhbGUteSkpIHNjYWxlWih2YXIoLS11bi1zY2FsZS16KSl9QGtleWZyYW1lcyBwdWxzZXswJSx0b3tvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgcHVzaC10by1sZWZ0ezAle21hcmdpbi1yaWdodDotNTAlO3RyYW5zZm9ybTpzY2FsZSgwKX10b3ttYXJnaW4tcmlnaHQ6aW5oZXJpdDt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgc3BpbnswJXtyb3RhdGU6MGRlZ310b3tyb3RhdGU6MzYwZGVnfX1Aa2V5ZnJhbWVzIHR5cGluZ3swJSw1MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9MjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02cHgpfX0uYW5pbWF0ZS1wdWxzZXthbmltYXRpb246MnMgY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkgaW5maW5pdGUgcHVsc2V9LmFuaW1hdGUtcHVzaC10by1sZWZ0e2FuaW1hdGlvbjouMjVzIGVhc2UtaW4tb3V0IHB1c2gtdG8tbGVmdH0uYW5pbWF0ZS1zcGlue2FuaW1hdGlvbjoxcyBsaW5lYXIgaW5maW5pdGUgc3Bpbn0uYW5pbWF0ZS10eXBpbmd7YW5pbWF0aW9uOi44cyBlYXNlLWluLW91dCB0eXBpbmd9LmN1cnNvci1hdXRve2N1cnNvcjphdXRvfS5jdXJzb3ItcG9pbnRlciwuaG92ZXJcOmN1cnNvci1wb2ludGVyOmhvdmVye2N1cnNvcjpwb2ludGVyfS5jdXJzb3Itbm90LWFsbG93ZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5zZWxlY3Qtbm9uZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucmVzaXple3Jlc2l6ZTpib3RofS5yZXNpemUtbm9uZXtyZXNpemU6bm9uZX0uc2Nyb2xsLW10LTJ7c2Nyb2xsLW1hcmdpbi10b3A6LjVyZW19Lmxpc3QtZGVjaW1hbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0ubGlzdC1kaXNje2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5jb250ZW50LWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlcn0uaXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uaXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZX0uc2VsZi1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaH0uanVzdGlmeS1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uanVzdGlmeS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmdhcC0ye2dhcDouNXJlbX0uZ2FwLTN7Z2FwOi43NXJlbX0uc3BhY2UteC0yPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdW4tc3BhY2UteC1yZXZlcnNlOjA7bWFyZ2luLWxlZnQ6Y2FsYyguNXJlbSAqIGNhbGMoMSAtIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpKTttYXJnaW4tcmlnaHQ6Y2FsYyguNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS14LTU+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS14LXJldmVyc2U6MDttYXJnaW4tbGVmdDpjYWxjKDEuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS14LXJldmVyc2UpKSk7bWFyZ2luLXJpZ2h0OmNhbGMoMS4yNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS15LTI+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tdG9wOmNhbGMoLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC41cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktND46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxcmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktNT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxLjI1cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30ub3ZlcmZsb3ctY2xpcHtvdmVyZmxvdzpjbGlwfS5vdmVyZmxvdy1oaWRkZW57b3ZlcmZsb3c6aGlkZGVufS5vdmVyZmxvdy14LWhpZGRlbntvdmVyZmxvdy14OmhpZGRlbn0ub3ZlcmZsb3cteS1hdXRve292ZXJmbG93LXk6YXV0b30ub3ZlcmZsb3cteS1zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGx9Lm92ZXJzY3JvbGwtY29udGFpbntvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LnRydW5jYXRle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0udGV4dC1lbGxpcHNpc3t0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53aGl0ZXNwYWNlLW5vcm1hbHt3aGl0ZS1zcGFjZTpub3JtYWx9LndoaXRlc3BhY2Utbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0ud2hpdGVzcGFjZS1wcmV7d2hpdGUtc3BhY2U6cHJlfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS5icmVhay13b3Jkc3tvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmJyZWFrLWFsbHt3b3JkLWJyZWFrOmJyZWFrLWFsbH0uYm9yZGVyLC5ib3JkZXItMXtib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItMHtib3JkZXItd2lkdGg6MH0uYm9yZGVyLTJ7Ym9yZGVyLXdpZHRoOjJweH0uYm9yZGVyLXQtMntib3JkZXItdG9wLXdpZHRoOjJweH0uYm9yZGVyLWdyYXktMzAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci1ncmVlbi00MDB7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoNzQgMjIyIDEyOC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItcHJpbWFyeXtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeSl9LmJvcmRlci1wcmltYXJ5LWJ1dHRvbntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pfS5ib3JkZXItcmVkLTUwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uYm9yZGVyLXNsYXRlLTIwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItd2hpdGV7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uZm9jdXNcOmJvcmRlci1ibHVlLTUwMDpmb2N1c3stLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci10LW5ldXRyYWwtMTAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTstLXVuLWJvcmRlci10b3Atb3BhY2l0eTp2YXIoLS11bi1ib3JkZXItb3BhY2l0eSk7Ym9yZGVyLXRvcC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYm9yZGVyLXRvcC1vcGFjaXR5KSl9LmJvcmRlci1yb3VuZGVkLWZ1bGwsLnJvdW5kZWQtZnVsbHtib3JkZXItcmFkaXVzOjk5OTlweH0ucm91bmRlZC0yLC5yb3VuZGVkLWxne2JvcmRlci1yYWRpdXM6LjVyZW19LnJvdW5kZWQtMnhse2JvcmRlci1yYWRpdXM6MXJlbX0ucm91bmRlZC0zeGwsLnJvdW5kZWQtNntib3JkZXItcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1tZHtib3JkZXItcmFkaXVzOi4zNzVyZW19LnJvdW5kZWQteGx7Ym9yZGVyLXJhZGl1czouNzVyZW19LnJvdW5kZWQtbHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbX0ucm91bmRlZC1sLTN4bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW19LnJvdW5kZWQtci0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC10LTZ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5yb3VuZGVkLWxiLTN4bHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1sdC0zeGx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW19LnJvdW5kZWQtcmItM3hse2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ydC0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5ib3JkZXItZGFzaGVke2JvcmRlci1zdHlsZTpkYXNoZWR9LmJvcmRlci1ub25le2JvcmRlci1zdHlsZTpub25lfS5iZy1ibGFja3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ibGFja1wvODB7YmFja2dyb3VuZC1jb2xvcjojMDAwY30uYmctZW1lcmFsZC01MDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTYgMTg1IDEyOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjkgMjMxIDIzNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTMwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTQwMFwvXFtcLjk1XF17YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjJ9LmJnLWdyYXktNjAwXC9cW1wuOTVcXXtiYWNrZ3JvdW5kLWNvbG9yOiM0YjU1NjNmMn0uYmctZ3JlZW4tNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDc0IDIyMiAxMjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctZ3JlZW4tNTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDM0IDE5NyA5NC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDUgMjQ1IDI0NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMFwvNTB7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1ODB9LmJnLW5ldXRyYWwtNjAwXC80MHtiYWNrZ3JvdW5kLWNvbG9yOiM1MjUyNTI2Nn0uYmctb3JhbmdlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDkgMTE1IDIyL3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXByaW1hcnktYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIH0uYmctcmVkLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctcmVkLTYwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtMTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1zbGF0ZS0zMDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjAzIDIxMyAyMjUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5iZy13aGl0ZXstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUgMjU1IDI1NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1ibGFjazpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1lbWVyYWxkLTYwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYig1IDE1MCAxMDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uaG92ZXItYmctcHJpbWFyeS1idXR0b24taG92ZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5ob3Zlci1iZy1wcmltYXJ5LWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmhvdmVyLWJnLXNsYXRlLTEwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDEgMjQ1IDI0OS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy10cmFuc3BhcmVudDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5ob3Zlclw6Ymctc2xhdGUtMTAwOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLW9wYWNpdHktMTAsLmhvdmVyLWJnLW9wYWNpdHktMTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5Oi4xfS5mcm9tLXdoaXRlXC8xMDB7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlOy0tdW4tZ3JhZGllbnQtZnJvbTojZmZmIHZhcigtLXVuLWdyYWRpZW50LWZyb20tcG9zaXRpb24pOy0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwIHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKTstLXVuLWdyYWRpZW50LXN0b3BzOnZhcigtLXVuLWdyYWRpZW50LWZyb20pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnZpYS13aGl0ZVwvNDB7LS11bi1ncmFkaWVudC12aWEtcG9zaXRpb246NTAlOy0tdW4tZ3JhZGllbnQtdG86I2ZmZjA7LS11bi1ncmFkaWVudC1zdG9wczp2YXIoLS11bi1ncmFkaWVudC1mcm9tKSwgI2ZmZjYgdmFyKC0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uKSwgdmFyKC0tdW4tZ3JhZGllbnQtdG8pfS52aWEtd2hpdGVcLzUwey0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjUwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwOy0tdW4tZ3JhZGllbnQtc3RvcHM6dmFyKC0tdW4tZ3JhZGllbnQtZnJvbSksICNmZmZmZmY4MCB2YXIoLS11bi1ncmFkaWVudC12aWEtcG9zaXRpb24pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnRvLXRyYW5zcGFyZW50ey0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOnRyYW5zcGFyZW50IHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKX0uZnJvbS0wXCV7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlfS52aWEtNTBcJXstLXVuLWdyYWRpZW50LXZpYS1wb3NpdGlvbjo1MCV9LnZpYS03MFwley0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjcwJX0uYmctZ3JhZGllbnQtdG8tdHstLXVuLWdyYWRpZW50LXNoYXBlOnRvIHRvcCBpbiBva2xjaDstLXVuLWdyYWRpZW50OnZhcigtLXVuLWdyYWRpZW50LXNoYXBlKSwgdmFyKC0tdW4tZ3JhZGllbnQtc3RvcHMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHZhcigtLXVuLWdyYWRpZW50KSl9LmZpbGwtY3VycmVudHtmaWxsOmN1cnJlbnRDb2xvcn0uZmlsbC1wcmltYXJ5LWJ1dHRvbntmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmZpbGwtcHJpbWFyeS1idXR0b24tY29udGVudHtmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0ub2JqZWN0LWNvbnRhaW57b2JqZWN0LWZpdDpjb250YWlufS5wLTB7cGFkZGluZzowfS5wLTBcLjh7cGFkZGluZzouMnJlbX0ucC0xe3BhZGRpbmc6LjI1cmVtfS5wLTFcLjV7cGFkZGluZzouMzc1cmVtfS5wLTJ7cGFkZGluZzouNXJlbX0ucC0ze3BhZGRpbmc6Ljc1cmVtfS5wLTR7cGFkZGluZzoxcmVtfS5wLTh7cGFkZGluZzoycmVtfS5weCwucHgtNHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnB4LTF7cGFkZGluZy1sZWZ0Oi4yNXJlbTtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0ucHgtMntwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0ucHgtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtO3BhZGRpbmctcmlnaHQ6Ljc1cmVtfS5weC04e3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0ucHktMXtwYWRkaW5nLXRvcDouMjVyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5weS0ye3BhZGRpbmctdG9wOi41cmVtO3BhZGRpbmctYm90dG9tOi41cmVtfS5weS0yXC41e3BhZGRpbmctdG9wOi42MjVyZW07cGFkZGluZy1ib3R0b206LjYyNXJlbX0ucHktM3twYWRkaW5nLXRvcDouNzVyZW07cGFkZGluZy1ib3R0b206Ljc1cmVtfS5wYi0we3BhZGRpbmctYm90dG9tOjB9LnBiLTF7cGFkZGluZy1ib3R0b206LjI1cmVtfS5wYi0ye3BhZGRpbmctYm90dG9tOi41cmVtfS5wYi0ze3BhZGRpbmctYm90dG9tOi43NXJlbX0ucGItNHtwYWRkaW5nLWJvdHRvbToxcmVtfS5wbC0ye3BhZGRpbmctbGVmdDouNXJlbX0ucGwtNCwuZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpub3QtZmlyc3RcOnBsLTQ6bm90KDpmaXJzdC1jaGlsZCl7cGFkZGluZy1sZWZ0OjFyZW19LnByLTF7cGFkZGluZy1yaWdodDouMjVyZW19LnByLTR7cGFkZGluZy1yaWdodDoxcmVtfS5wdC0xe3BhZGRpbmctdG9wOi4yNXJlbX0ucHQtNntwYWRkaW5nLXRvcDoxLjVyZW19LnB0LTl7cGFkZGluZy10b3A6Mi4yNXJlbX0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtMnhse2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MnJlbX0udGV4dC1iYXNle2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNXJlbX0udGV4dC1iYXNlLWlucHV0e2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW19LnRleHQtbGd7Zm9udC1zaXplOjEuMTI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19LnRleHQtc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbX0udGV4dC14c3tmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjFyZW19LnRleHQtYmxhY2t7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LWdyYXktMzAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1ncmF5LTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDcgMTE0IDEyOC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtbmV1dHJhbC00MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTYzIDE2MyAxNjMvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LW5ldXRyYWwtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDExNSAxMTUgMTE1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1wcmltYXJ5e2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnkpIH0udGV4dC1wcmltYXJ5LWJ1dHRvbntjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgfS50ZXh0LXByaW1hcnktYnV0dG9uLWNvbnRlbnR7Y29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudCkgfS50ZXh0LXByaW1hcnktY29udGVudHtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRlbnQpIH0udGV4dC1yZWQtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNDAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3Itc2xhdGUtNTAwLC50ZXh0LXNsYXRlLTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNjAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDcxIDg1IDEwNS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmNvbG9yLXNsYXRlLTgwMCwudGV4dC1zbGF0ZS04MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LXdoaXRley0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI1NSAyNTUgMjU1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uaG92ZXItdGV4dC1wcmltYXJ5LWJ1dHRvbi1jb250ZW50OmhvdmVye2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uaG92ZXJcOnRleHQtZ3JheS00MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTU2IDE2MyAxNzUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6dGV4dC1zbGF0ZS04MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5wbGFjZWhvbGRlclw6dGV4dC1zbGF0ZS0zMDA6OnBsYWNlaG9sZGVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwMyAyMTMgMjI1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3ItcmVkLTYwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6Y29sb3Itc2xhdGUtNzAwOmhvdmVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDUxIDY1IDg1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1vcGFjaXR5LTIwey0tdW4tdGV4dC1vcGFjaXR5Oi4yfS5mb250LTIwMHtmb250LXdlaWdodDoyMDB9LmZvbnQtNTAwLC5mb250LW1lZGl1bXtmb250LXdlaWdodDo1MDB9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZvbnQtbGlnaHR7Zm9udC13ZWlnaHQ6MzAwfS5mb250LXNlbWlib2xke2ZvbnQtd2VpZ2h0OjYwMH0ubGVhZGluZy1cWzIycHhcXXtsaW5lLWhlaWdodDoyMnB4fS5sZWFkaW5nLTRcLjV7bGluZS1oZWlnaHQ6MS4xMjVyZW19LmxlYWRpbmctNVwuNXtsaW5lLWhlaWdodDoxLjM3NXJlbX0ubGVhZGluZy02e2xpbmUtaGVpZ2h0OjEuNXJlbX0ubGVhZGluZy1ub3JtYWx7bGluZS1oZWlnaHQ6MS41fS5pdGFsaWN7Zm9udC1zdHlsZTppdGFsaWN9LnVuZGVybGluZXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm5vLXVuZGVybGluZSwuaG92ZXItbm8tdW5kZXJsaW5lOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5vcGFjaXR5LTEwe29wYWNpdHk6LjF9Lm9wYWNpdHktMTAwe29wYWNpdHk6MX0ub3BhY2l0eS0yMHtvcGFjaXR5Oi4yfS5vcGFjaXR5LTMwe29wYWNpdHk6LjN9Lm9wYWNpdHktNjB7b3BhY2l0eTouNn0uc2hhZG93ey0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxcHggM3B4IDAgdmFyKC0tdW4tc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksdmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uc2hhZG93LWxney0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxMHB4IDE1cHggLTNweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgNHB4IDZweCAtNHB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctbWR7LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDRweCA2cHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgMnB4IDRweCAtMnB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctc217LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggMCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDBkKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpvdXRsaW5lLTI6Zm9jdXMtd2l0aGlue291dGxpbmUtd2lkdGg6MnB4fS5mb2N1cy13aXRoaW5cOm91dGxpbmUtcHJpbWFyeS1mb2N1czpmb2N1cy13aXRoaW57b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSB9Lm91dGxpbmUsLmZvY3VzLXdpdGhpblw6b3V0bGluZS1zb2xpZDpmb2N1cy13aXRoaW57b3V0bGluZS1zdHlsZTpzb2xpZH0ub3V0bGluZS1ub25lLC5mb2N1c1w6b3V0bGluZS1ub25lOmZvY3VzLC5mb2N1cy12aXNpYmxlXDpvdXRsaW5lLW5vbmU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDoycHg7b3V0bGluZToycHggc29saWQgIzAwMDB9LmZvY3VzLXdpdGhpblw6cmluZy0zOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctd2lkdGg6M3B4Oy0tdW4tcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXVuLXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXVuLXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS11bi1yaW5nLW9mZnNldC1jb2xvcik7LS11bi1yaW5nLXNoYWRvdzp2YXIoLS11bi1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKHZhcigtLXVuLXJpbmctd2lkdGgpICsgdmFyKC0tdW4tcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS11bi1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpyaW5nLW9mZnNldC0xOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb2Zmc2V0LXdpZHRoOjFweH0uZm9jdXMtd2l0aGluXDpyaW5nLWJsdWUtNDAwOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb3BhY2l0eToxOy0tdW4tcmluZy1jb2xvcjpyZ2IoOTYgMTY1IDI1MC92YXIoLS11bi1yaW5nLW9wYWNpdHkpKSB9LmZvY3VzXDpyaW5nLWJsdWUtNTAwOmZvY3Vzey0tdW4tcmluZy1vcGFjaXR5OjE7LS11bi1yaW5nLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLXJpbmctb3BhY2l0eSkpIH0udHJhbnNpdGlvbnt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSxvcGFjaXR5LGJveC1zaGFkb3csdHJhbnNmb3JtLGZpbHRlciwtd2Via2l0LWJhY2tkcm9wLWZpbHRlcixiYWNrZHJvcC1maWx0ZXI7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tY29sb3Jze3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0udHJhbnNpdGlvbi1vcGFjaXR5e3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tcGFkZGluZy00MDB7dHJhbnNpdGlvbi1wcm9wZXJ0eTpwYWRkaW5nO3RyYW5zaXRpb24tZHVyYXRpb246LjRzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLXRyYW5zZm9ybXt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24td2lkdGgtMjUwe3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGg7dHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5kdXJhdGlvbi0xNTB7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzfS5kdXJhdGlvbi0zMDB7dHJhbnNpdGlvbi1kdXJhdGlvbjouM3N9LmR1cmF0aW9uLTc1e3RyYW5zaXRpb24tZHVyYXRpb246NzVtc30uZGVsYXktMHt0cmFuc2l0aW9uLWRlbGF5OjBzfS5lYXNlLWluLW91dHt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uZWFzZS1vdXR7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0uY29udGVudC1cW1wiXCJcXXtjb250ZW50OiIifS5iZy1wcmltYXJ5LWdyYWRpZW50e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDgwZGVnLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvKSAxMzAlKX0uYmctcHJpbWFyeS1ncmFkaWVudC1idXR0b257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtYnV0dG9uLWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWJ1dHRvbi10bykgMTMwJSl9LmJnLXByaW1hcnktZ3JhZGllbnQtaG92ZXI6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItZnJvbSksIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItdG8pIDEzMCUpfS5saW5lLWNsYW1wLTV7LXdlYmtpdC1saW5lLWNsYW1wOjU7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS50eXBpbmctaW5kaWNhdG9yLnN2ZWx0ZS1zNDB4Z2t7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnR5cGluZy1pbmRpY2F0b3Iuc20uc3ZlbHRlLXM0MHhna3t3aWR0aDouMjVyZW07aGVpZ2h0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci5tZC5zdmVsdGUtczQweGdre3dpZHRoOi41cmVtO2hlaWdodDouNXJlbX0udHlwaW5nLWluZGljYXRvci5pbmRpY2F0b3ItY29sb3ItYmxhY2suc3ZlbHRlLXM0MHhna3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS50eXBpbmctaW5kaWNhdG9yLmluZGljYXRvci1jb2xvci1ncmF5LnN2ZWx0ZS1zNDB4Z2t7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTAwIDExNiAxMzkvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0udHlwaW5nLWluZGljYXRvci5zdmVsdGUtczQweGdrOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci1zZWNvbmQuc3ZlbHRlLXM0MHhna3thbmltYXRpb24tZGVsYXk6LjFzfS50eXBpbmctaW5kaWNhdG9yLXRoaXJkLnN2ZWx0ZS1zNDB4Z2t7YW5pbWF0aW9uLWRlbGF5Oi4yc30uYnRuLnN2ZWx0ZS0xZTg0bjd3e2JvcmRlci1yYWRpdXM6MS41cmVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTppbmxpbmUtZmxleH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3d7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgO2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3c6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tb3V0bGluZS5zdmVsdGUtMWU4NG43d3tib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbik7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigwIDAgMC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmJ0bi1vdXRsaW5lLnN2ZWx0ZS0xZTg0bjd3OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1yYWlzZWQuc3ZlbHRlLTFlODRuN3d7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSA7Ym94LXNoYWRvdzowIDJweCA2cHggIzAwMDAwMDI5fS5idG4tcmFpc2VkLnN2ZWx0ZS0xZTg0bjd3OmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJ0bi1zbS5zdmVsdGUtMWU4NG43d3toZWlnaHQ6MnJlbX0uYnRuLW1kLnN2ZWx0ZS0xZTg0bjd3e2hlaWdodDoyLjVyZW19LmJ0bi1sZy5zdmVsdGUtMWU4NG43d3toZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS0xZTg0bjd3e2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi4yfS5kYXJrLnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojNGI1NTYzZjI7cGFkZGluZzouNXJlbSAuNzVyZW19LmxpZ2h0LnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjI7cGFkZGluZzouMjVyZW0gLjVyZW19c3ZnLnN2ZWx0ZS15aXhoYXR7ZmlsbDpjdXJyZW50Q29sb3I7d2lkdGg6MWVtO2hlaWdodDoxZW19LmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpke2p1c3RpZnktY29udGVudDpzdGFydDthbGlnbi1pdGVtczpzdGFydDt3aWR0aDoxMDAlfS5jYXJvdXNlbC5zdmVsdGUtMTBxcWp6ZDpob3ZlciAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCksLmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpkOmZvY3VzLXdpdGhpbiAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCl7b3BhY2l0eToxfS5idXR0b24uc3ZlbHRlLTEwcXFqemR7b3BhY2l0eTowO3otaW5kZXg6MTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JvcmRlcjpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuNHM7cG9zaXRpb246YWJzb2x1dGV9LmxlZnQuc3ZlbHRlLTEwcXFqemR7bGVmdDotMWVtfS5yaWdodC5zdmVsdGUtMTBxcWp6ZHtyaWdodDotMWVtfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCB1bHttYXJnaW4tcmlnaHQ6LjI1cmVtO3BhZGRpbmctbGVmdDoxcmVtO2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBsaTpub3QoOmZpcnN0LWNoaWxkKSwubWVzc2FnZS1jb250ZW50LWh0bWwgbGk+dWwsLm1lc3NhZ2UtY29udGVudC1odG1sIGxpPm9se21hcmdpbi10b3A6LjVyZW19Lm1lc3NhZ2UtY29udGVudC1odG1sIG9se21hcmdpbi1yaWdodDouMjVyZW07cGFkZGluZy1sZWZ0OjFyZW07bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9Lm1lc3NhZ2UtY29udGVudC1odG1sIGF7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCAqe3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9Lm1lc3NhZ2UtY29udGVudC10ZXh0LnN2ZWx0ZS1uZmIweW17b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0ubWVzc2FnZS1jb250ZW50LXRleHQgYXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm1lc3NhZ2UtY29udGVudC10ZXh0IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6Zmlyc3Qtb2YtdHlwZXt6LWluZGV4OjN9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6bnRoLW9mLXR5cGUoMil7ei1pbmRleDoyfS5hdmF0YXItZ3JvdXAtaXRlbS5zdmVsdGUteWZ4YTd0Om50aC1vZi10eXBlKDMpe3otaW5kZXg6MX0uYXZhdGFyLXNtLnN2ZWx0ZS15ZnhhN3Q6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6LTEycHh9LmF2YXRhci1tZC5zdmVsdGUteWZ4YTd0Om5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi0xNnB4fS5hdmF0YXItbGcuc3ZlbHRlLXlmeGE3dDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDotMjJweH0ucmVtb3ZlSWNvbi5zdmVsdGUtMTFmM2Jkd3tvcGFjaXR5OjA7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6aG92ZXIgLnJlbW92ZUljb246d2hlcmUoLnN2ZWx0ZS0xMWYzYmR3KSwuYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6Zm9jdXMtd2l0aGluIC5yZW1vdmVJY29uOndoZXJlKC5zdmVsdGUtMTFmM2Jkdyl7b3BhY2l0eToxfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2V7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3Njcm9sbGJhci13aWR0aDpub25lO2ZsZXg6MTttYXgtaGVpZ2h0OjMycHg7bWFyZ2luLXRvcDouNzVyZW07bWFyZ2luLWJvdHRvbTouNzVyZW07ZGlzcGxheTpncmlkO292ZXJmbG93OmhpZGRlbiBhdXRvfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udGV4dGFyZWEtY29udGFpbmVyLXJlc2l6YWJsZS5zdmVsdGUtMXRsOWxjZXttYXgtaGVpZ2h0OjEyNXB4fS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdGV4dGFyZWEtdmFsdWUpICIgIjt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXIsdGV4dGFyZWEuc3ZlbHRlLTF0bDlsY2V7Zm9udC1zaXplOmluaGVyaXQ7Z3JpZC1hcmVhOjEvMS8yLzI7bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6Ljc1cmVtfXRleHRhcmVhLnN2ZWx0ZS0xdGw5bGNlOjpwbGFjZWhvbGRlcnt3b3JkLWJyZWFrOmJyZWFrLWFsbDtvdmVyZmxvdzpoaWRkZW59ZW0tZW1vamktcGlja2Vyey0tYm9yZGVyLXJhZGl1czoxMnB4Oy0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjpyZ2IoMjI2IDIzMiAyNDAvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItcmFkaXVzOi43NXJlbTt3aWR0aDoxMDAlO2hlaWdodDo0MDBweDttYXgtaGVpZ2h0Ojgwdmg7cGFkZGluZy10b3A6LjI1cmVtO2JveC1zaGFkb3c6MCAxcHggMTVweCAxcHggIzAwMDAwMDFmfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em97LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjI5IDIzMSAyMzUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoyLjc1cmVtO2hlaWdodDoxLjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2U7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86Zm9jdXN7b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86YWZ0ZXJ7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7Y29udGVudDoiIjtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoxLjI1cmVtO2hlaWdodDoxLjI1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4fS5zd2l0Y2guY2hlY2tlZC5zdmVsdGUtMXl6Znp6b3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LnN3aXRjaC5jaGVja2VkLnN2ZWx0ZS0xeXpmenpvOmFmdGVyey0tdW4tdHJhbnNsYXRlLXg6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCh2YXIoLS11bi10cmFuc2xhdGUteCkpIHRyYW5zbGF0ZVkodmFyKC0tdW4tdHJhbnNsYXRlLXkpKSB0cmFuc2xhdGVaKHZhcigtLXVuLXRyYW5zbGF0ZS16KSkgcm90YXRlKHZhcigtLXVuLXJvdGF0ZSkpIHJvdGF0ZVgodmFyKC0tdW4tcm90YXRlLXgpKSByb3RhdGVZKHZhcigtLXVuLXJvdGF0ZS15KSkgcm90YXRlWih2YXIoLS11bi1yb3RhdGUteikpIHNrZXdYKHZhcigtLXVuLXNrZXcteCkpIHNrZXdZKHZhcigtLXVuLXNrZXcteSkpIHNjYWxlWCh2YXIoLS11bi1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXVuLXNjYWxlLXkpKSBzY2FsZVoodmFyKC0tdW4tc2NhbGUteikpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmludmFsaWQuc3ZlbHRlLTEyZjRjMWcsLmludmFsaWQuc3ZlbHRlLTE5bTN1Y3l7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjM5IDY4IDY4L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9c2VsZWN0LnN2ZWx0ZS04aDVycTR7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzZCNzI4MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nbTYgOCA0IDQgNC00Jy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAuNXJlbSBjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxLjVlbSAxLjVlbX0uaW52YWxpZC5zdmVsdGUtOGg1cnE0ey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5pY29uLnN2ZWx0ZS0xcnNhMnF2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSA7Ym9yZGVyLXJhZGl1czoxLjVyZW07cGFkZGluZzouNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uZHJhd2VyLWJ1dHRvbi5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtib3JkZXItcmFkaXVzOi41cmVtO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6LjVyZW07dHJhbnNpdGlvbjpjb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxib3JkZXItY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSx0ZXh0LWRlY29yYXRpb24tY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxmaWxsIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksc3Ryb2tlIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTpmbGV4fS5kcmF3ZXItYnV0dG9uLnN2ZWx0ZS1qNmV4cTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uZHJhd2VyLWJ1dHRvbi1kaXNhYmxlZC5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtvcGFjaXR5Oi4zO2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTtkaXNwbGF5OmZsZXh9LmRyYXdlci1idXR0b24tZGlzYWJsZWQuc3ZlbHRlLWo2ZXhxMDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWR9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGN7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTt0cmFuc2l0aW9uOmNvbG9yIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksYmFja2dyb3VuZC1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJvcmRlci1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLHRleHQtZGVjb3JhdGlvbi1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGZpbGwgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxzdHJva2UgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmZsZXh9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGM6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0ubWVzc2FnZS1jb250ZW50LnN2ZWx0ZS0xZ2Z2aGk2e292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm1lc3NhZ2UtY29udGVudC1sZWZ0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6LjI1cmVtIDEuNXJlbSAxLjVyZW0gLjI1cmVtfS5tZXNzYWdlLWNvbnRlbnQtbGVmdC1maXJzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LWxlZnQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LXJpZ2h0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6MS41cmVtIC4yNXJlbSAuMjVyZW0gMS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtZmlyc3Quc3ZlbHRlLTFnZnZoaTZ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoxLjVyZW19LmNvdW50LWFuaW1hdGUuc3ZlbHRlLTIyOGM3bnthbmltYXRpb246LjJzIGN1YmljLWJlemllciguNCwyLC42LDEpIHN2ZWx0ZS0yMjhjN24tcG9wLXNjYWxlfUBrZXlmcmFtZXMgc3ZlbHRlLTIyOGM3bi1wb3Atc2NhbGV7MCV7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xKX10b3t0cmFuc2Zvcm06c2NhbGUoMSl9fQovKiR2aXRlJDoxKi8="}},"time_used":29,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":29,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/binance-coin.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.042Z","timestamp":1785132868042,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/binance-coin.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:45:23 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae21a3-2b1\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=4,i\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=LRrfO%2BwXKjOrLndQeU7XIGIQFcn%2FVplawHIZWYdJhsIcMc%2FJjknXirogObEzr6bKJ%2FVGfvsvJT3e7mGVN5vuU7DaSIqRI21IRk5Qhn7V%2F5y38h3VKUKiBGXO%2FKpr71R2GA%3D%3D\"}]}\r\ncf-polished: ok, orig_size=689\r\ncf-bgj: h2pri,imgq:85\r\nx-content-type-options: nosniff\r\nvary: accept, accept-encoding\r\nage: 130375\r\ncf-cache-status: HIT\r\ncf-ray: a21981094ed05ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 514\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":514,"size_decoded":1638,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"9b7a1e465a45841adb147ba56f1c4172","sha1":"1f5a40b2808195e077409b4f8fcd17e498d8e896","sha256":"5de1a4568205b8e3b9cbe4c0dcec95d43045f1f161f7c8f94ac3c77362a0c108","sha512":"ed4385639b162f9c74a3c13f668b27095d3a673bde4ca96ac4a9b3fdc1feeb2a06e07eab338ddadc74deb74b41f08b21bf17c529e3b449c00d514cbba6b2f8fc","ssdeep":"","tlshash":"acf0056264d74b3c488f74097ebeced0cc570047576cbeae142417a139b8ac85005d91","first_seen":"2026-07-27T04:22:23.341804Z","last_seen":"2026-07-27T06:14:42.65493Z","times_seen":2,"resource_available":false,"data":"UklGRvoBAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSIUAAAABd4AmERArksNJnMQg7l/gIyJCf/nsqQFOa217mpcywK/QWFBYHJoJUG2BtgAO25INcjJGwgIpCzTXy7dE/neHiP5PAOB2p01iAlBrEZHQABrROlB3XWsEQu0F828sfbL+w+Yvu/7Y8cPmJ+tvLF0xL2KWeuhKA4XOAdTyLzYAuN1um5gAAFZQOCBOAQAAsAgAnQEqFAAUAD5JHIxDoqGhlAaoKASEtgBOmUI4G2Z8gZoF3k/aO1AYI1/jv5n70f8A6FXgAP059Jf2HPJq//5T3PF4QuH1pTudJ1gAAP73PKvqic8TeHtNVynj4aBhRx7aWRJmnjr0UBhhhiGMBQAIRh/p/QcT+Z055KFLAaahl1K/8yUwYDD+N/qLF8RNwyiID3Se/98DP3iD/xfz//32qR9cGpArwf2sPH+QfhRMeRCq+XD7OwNV//kqX3jvvk/mg285Gz7kUZicjmLWt/aIVCJ/vNTE5T45u4Xpd8Waq0WySwr6Qf8X5RPXtLRRrxcytfB0R/39MzWwvf/9LBTmGkQJ5ivnn/bzLXgXQnRhAka1c974yatEMMJ/+//+4eo/CsNZo/0e1/kUGo3F6P7/4+st/IR3MMw5wv7zcWU4OBw9AX7H6xup/K2wAA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"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.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.909Z","timestamp":1785132838909,"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://farosonglobaltrade.ltd/\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 06:14:02 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: k3Lh9Ski/4Tu94SAROMK9uAHKeDuY6lVymRS/zKdLfflL9feu+FNpdyMH07QKLh56lMOLhI\r\nx-77-nzt-ray: e2f75420f41cc4ca2af7666a62b4790b\r\nx-77-cache: HIT\r\nx-77-age: 27\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":6042,"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-07-27T09:46:41.752116Z","times_seen":6851,"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":3291,"timings":{"blocked":-1,"dns":3,"connect":8,"send":0,"wait":8,"receive":0,"ssl":3272},"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":"18.195.200.162","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:05.872Z","timestamp":1785132845872,"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://farosonglobaltrade.ltd\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: sVFRt7eISUdZOvCq0yC9pA==\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 06:14:06 GMT\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Accept: eSJh9jLQ87HcIpvc0U5fSxDIZrA=\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-07-27T09:47:52.605533Z","times_seen":17560503,"resource_available":true,"data":""}},"time_used":615,"timings":{"blocked":0,"dns":73,"connect":91,"send":0,"wait":427,"receive":0,"ssl":25},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/tether.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.039Z","timestamp":1785132868039,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/tether.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:45:26 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae21a6-207\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=4,i\r\ncf-polished: ok, orig_size=519\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=r3DK8rth%2BktdV%2B7usDou%2Bw6YOsELajYE4jEeT2JCpSBXo5MO4JQySu0NYAY8USrcXW0GnNPYDioCrEkLvYSSA6%2Fk21U5lP6k4D167BtCuHRNNq5QrxRW1I4MJ%2FI8bfBUWQ%3D%3D\"}]}\r\ncf-bgj: h2pri,imgq:85\r\nvary: accept, accept-encoding\r\nage: 205116\r\ncf-cache-status: HIT\r\ncf-ray: a21981094ecd5ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 486\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":486,"size_decoded":1608,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"b41c0a3a91bf5005a759779b7374e356","sha1":"3b59b607a05a59f03ed14b63dcd564dd3c52002c","sha256":"e6cde8bb14c5a6ee65527d6a9b4fb50d121fbbcae7c5a3c571a4d5791b32ce0c","sha512":"dbaab73e8af27f1829700691efccbe4593adc3a01994078f877041bc12cb1102f8623c6f916df01cf8bf46d35c758ff924a6634e83cd9c27fda32c33943dfca0","ssdeep":"","tlshash":"c2f054b477761532e7b01773fa2461a6b132cb14733562d170728ec80aac011be26d81","first_seen":"2026-07-27T04:22:23.307156Z","last_seen":"2026-07-27T06:14:42.657893Z","times_seen":2,"resource_available":false,"data":"UklGRt4BAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSIEAAAABcBvbtqocnEhj18jdnYgCKIQCaIOQOrQQd3eJiL7y3qeDiJgASC232km1Yi2GuCvi/pIxdcGQoRypgQZD3YTpRPcwtxkJOzcpbrUP3aeCwovmlQOQeZA9UhAmLiSXCMRDp18HH36HdmKbAEi9K8HKDXLnjmF2dtBaZxMr6HU6/BcAVlA4IDYBAAAQCACdASoUABQAPkkijkUioiEUBAAoBIS2AFiPmh0/x35QOQCMAqwHqA2wHmA8//nZusA9ADyo/Yq8mQpin+jCzddXRCh+GbVAAP59QguDtDOx8FqmP1F8SG6Qd/6q2k39whW7X3FJW2jXQD/mkuerG/1WfCqnzGKm2DIWjGS7HxsGVT3z/p8PL0S3PF3eF2Ag2JAf3fpgf+r/oheJSBmx3x7775Chw6E3XP1/JZ7/+xb6/WkpzZMxwtPWaQNFBjqD1uMca+1eFmR4QqH7cssqitwTeuGOFp6XRjHifZWev9+O9fc5qnduhA/lP+G73i/2Nf/DWxLAzxq0l5DrXfxN+8EP3WlDvy401awpPgIfrkXe9/tNQY2hi3PY//hpxRPTS4JytYswa4/8U8ngh//bbwbBsAAA"}},"time_used":12,"timings":{"blocked":-1,"dns":1,"connect":2,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/solana.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.048Z","timestamp":1785132868048,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/solana.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, 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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:46:31 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae21e7-228\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=wrY7ZOoJc3%2F74wpD3GNAFYNMuuKMcboRlq2z6xEguoAh84qZRc2VIWx4VqS0Vj6GUIM71cUPgtoQFngd7LD0UY6fm4FBAH8VHpYnOO%2Ft0TxQnLRmAjWmjsUh7pmFjeqGmQ%3D%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=4,i\r\ncf-polished: ok, orig_size=552\r\ncf-bgj: imgq:85,h2pri\r\nx-content-type-options: nosniff\r\nvary: accept, accept-encoding\r\nage: 196848\r\ncf-cache-status: HIT\r\ncf-ray: a21981094ed35ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 184\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":184,"size_decoded":1300,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image, VP8 encoding, 20x20, Scaling: [none]x[none], YUV color, decoders should clamp","md5":"3a168dda45f1b6389d965cf8a11e6bfd","sha1":"41dfcc331aa6043ff3b66840eb191cc7d6572f08","sha256":"53a1bc2b33c75e4e676e4d360c99f250ef1ca8295cff6cd39254a00036317fbf","sha512":"9fdb08026144a3671d1eb1c423059534bd1493f2c6aefdcc61c2417f67bba600d1f99fffd85a95783310130bdbe2378656aae8fe4ca70e24fc8e7fcecf3afa28","ssdeep":"","tlshash":"60c022304a412930a091cebf3ac0829412b31c141cd08a840a44787b00220236640723","first_seen":"2026-07-27T04:22:23.347398Z","last_seen":"2026-07-27T06:14:42.659583Z","times_seen":2,"resource_available":false,"data":"UklGRrAAAABXRUJQVlA4IKQAAABQBACdASoUABQAPkkai0OioaEb+qwAKASEswBb4xAG8bEolCva0ekUf+gAAP7/Odx/Ffn3f5p7foSKBpwPhcn5RBOGIZz7w25skeD/MaweJ5bG5VHGGUt7apkmss1HOHGlq/vVn2T1J9oE1hxcI5OP1LUNc5VWLt179Sivl25PTq7UGCjjtf6zPzHN1/qy1yzaVg/RcwxfqBFg+vxOaq/+QAAAAA=="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T06:13:57.284Z","timestamp":1785132837284,"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":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: farosonglobaltrade.ltd\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nx-powered-by: PHP/7.4.33\r\nset-cookie: CameFrom=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; secure\nPHPSESSID=257f853cb65b6be74dfd8cb7fc141754; path=/; domain=farosonglobaltrade.ltd; HttpOnly; secure\r\nexpires: Thu, 19 Nov 1981 08:52:00 GMT\r\ncache-control: no-store, no-cache, must-revalidate\r\npragma: no-cache\r\ncontent-type: text/html; charset=UTF-8\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 06:13:57 GMT\r\nserver: LiteSpeed\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"jQuery","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":"Lightbox","description":"Lightbox is small javascript library used to overlay images on top of the current page.","website":"https://lokeshdhakar.com/projects/lightbox2/","common_platform_enumeration":"cpe:2.3:a:lightbox_photo_gallery_project:lightbox_photo_gallery:*:*:*:*:*:*:*:*","icon":"Lightbox.png","categories":["JavaScript libraries"]},{"name":"PHP:7.4.33","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]}],"data":{"size":54695,"size_decoded":13447,"mime_type":"text/html; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (2935)","md5":"50db9ca98df12dafc4560289b45daf63","sha1":"ff4b1ed9045a216b12c804815ce6a97720bc152f","sha256":"2286bd64be18fce590ed05d829e623a95a5b57be3ee4b21f443aecc77a2913ae","sha512":"f15baa26d2845647fa6aef75e6775f390be8b29ecf0f4c0288a89ce021e4fb3c9fc414b9bbed9f43d0e15c12e0d836dc01a0c1c07236e2da618ad07b30130467","ssdeep":"768:PSeNAG4dozfi5TQxiTZ2Uybs0nG9/eUGPsLrZ:PSYAG4dozfiJQxiTpybs01UuQZ","tlshash":"fd33612194f120234193a3d5b932af1a7f92e567d60a8b0872fc4bd5afd3e86cc5724d","first_seen":"2026-07-27T04:22:23.294771Z","last_seen":"2026-07-27T06:14:42.661228Z","times_seen":2,"resource_available":false,"data":"CgoKPGh0bWwgbGFuZz0iZW4iPgoKICA8aGVhZD4KCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iPgoKICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwOi8vZmFyb3Nzb25nbG9iYWx0cmFkZS5sdGQvYXNzZXRzL2ltYWdlcy9sb2dvby5wbmciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOnNlY3VyZV91cmwiIGNvbnRlbnQ9Imh0dHBzOi8vZmFyb3Nzb25nbG9iYWx0cmFkZS5sdGQvYXNzZXRzL2ltYWdlcy9sb2dvby5wbmciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOnR5cGUiIGNvbnRlbnQ9ImltYWdlL2pwZWciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIiBjb250ZW50PSI1MDAiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOmhlaWdodCIgY29udGVudD0iMzAwIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTphbHQiIGNvbnRlbnQ9ImZhcm9zc29uIEdsb2JhbCBUcmFkZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9ImZhcm9zc29uZ2xvYmFsdHJhZGUgaXMgYSBtdWx0aXB1cnBvc2UgaW52ZXN0bWVudCBwbGF0Zm9ybSB0aGF0IGhhcyBiZWVuIG9wZXJhdGluZyBhbGwgb3ZlciBTaW5nYXBvcmUgZm9yIG92ZXIgMTl5ZWFycy4gICAgIAogICAgICBXZSBvZmZlciB0aGUgYmVzdCBpbnZlc3RtZW50IHNlcnZpY2VzIHdpdGggdGhlIGRpZ2l0YWxpemF0aW9uIG9mIEFncm9ub215LCBSZWFsIEVzdGF0ZSB0aHJvdWdoIGEgc2VjdXJlIFNJUCBhbmQgQUlQIE1ldGhvZCByZWd1bGF0ZWQgaW4gdGhlIEJsb2NrY2hhaW4gbmV0d29yaywgaGVscGluZyBvdXIgaW52ZXN0b3JzIHRvIG1haW50YWluIGEgc3RhYmxlIGRhaWx5IGluY29tZSBHUk9XVEggClRoZSBjb21wYW55IHdhcyBpbmNvcnBvcmF0ZWQgb24gMDIgSmFuIDIwMDQsIHdoaWNoIGlzIDE5LjEgeWVhcnMgYWdvLiBUaGUgYWRkcmVzcyBvZiB0aGUgQnVzaW5lc3MncyByZWdpc3RlcmVkIG9mZmljZSBpcyBJTlRFUk5BVElPTkFMIFBMQVpBLCAxMCBBTlNPTiBST0FELCAjMTAtMTQsIFBvc3RhbCAwNzk5MDMuClRoZSBCdXNpbmVzcydzIHByaW5jaXBhbCBhY3Rpdml0eSBpcyBUUkFESU5HIE9GIERJRkZFUkVOVCBWQVJJRVRJRVMuIj4KICAgIDxtZXRhIG5hbWU9Imdvb2dsZS1zaXRlLXZlcmlmaWNhdGlvbiIgY29udGVudD0ib3R0Uko4U1pvNDdubjJzTTdPa1BVUEhJUXpuX3BNMC1FREU2SzBURllsNCI+CiAgICA8bGluayBocmVmPSJjc3M/ZmFtaWx5PVBvcHBpbnM6MTAwLDIwMCwzMDAsNDAwLDUwMCw2MDAsNzAwLDgwMCw5MDAiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPHRpdGxlPmZhcm9zc29uIEdsb2JhbCBUcmFkZTwvdGl0bGU+CgogICAgPCEtLSBCb290c3RyYXAgY29yZSBDU1MgLS0+CiAgICA8bGluayBocmVmPSJ2ZW5kb3IvYm9vdHN0cmFwL2Nzcy9ib290c3RyYXAubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KCgogICAgPCEtLSBBZGRpdGlvbmFsIENTUyBGaWxlcyAtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Nzcy9mb250YXdlc29tZS5jc3MiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJhc3NldHMvY3NzL3RlbXBsYXRlbW8tZWR1LW1lZXRpbmcuY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Nzcy9vd2wuY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Nzcy9saWdodGJveC5jc3MiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJwcmVsb2FkLmNzcyI+CiA8ZGl2IGNsYXNzPSJzZWxlY3QtbGFuZ3VhZ2UiPgogICAgICAgICAgICA8ZGl2IGlkPSJnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQiPjwvZGl2PgoKICAgICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGdvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0KCkgewoKICAgICAgICAgICAgICAgICAgICBuZXcgZ29vZ2xlLnRyYW5zbGF0ZS5UcmFuc2xhdGVFbGVtZW50KHsKCiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VMYW5ndWFnZTogJ2VuJwoKICAgICAgICAgICAgICAgICAgICB9LCAnZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50Jyk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgPC9zY3JpcHQ+CgoKCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3RyYW5zbGF0ZS5nb29nbGUuY29tL3RyYW5zbGF0ZV9hL2VsZW1lbnQuanM/Y2I9Z29vZ2xlVHJhbnNsYXRlRWxlbWVudEluaXQiPjwvc2NyaXB0PgogICAgICAgIDwvZGl2PgogIDwvaGVhZD4KCjxib2R5PgoKICA8IS0tIFN1YiBIZWFkZXIgLS0+CiAKCiAgPCEtLSAqKioqKiBIZWFkZXIgQXJlYSBTdGFydCAqKioqKiAtLT4KICAgPGRpdiBjbGFzcz0ic3ViLWhlYWRlciI+CiAKICAgICAKCiAgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IndpZGdldHMvdGlja2VyLXdpZGdldC5qcyI+PC9zY3JpcHQ+PGRpdiBjbGFzcz0iY29pbmxvcmUtcHJpY2V0aWNrZXItd2lkZ2V0IiBkYXRhLW1jdXJyZW5jeT0idXNkIiBkYXRhLWJjb2xvcj0iIzBBOURCRCIgZGF0YS1zY29sb3I9IiNGRkQ3MDAiIGRhdGEtY2NvbG9yPSIjZmZmIiBkYXRhLXBjb2xvcj0iI2ZmZiI+PC9kaXY+CgogICA8IS0tICA8L2Rpdj4gLS0+CiAgIAogIDwvZGl2Pgo8aGVhZGVyIGNsYXNzPSJoZWFkZXItYXJlYSBoZWFkZXItc3RpY2t5IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsiPgogICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPSJtYWluLW5hdiI+CiAgICAgICAgICAgICAgICAgICAgICA8IS0tICoqKioqIExvZ28gU3RhcnQgKioqKiogLS0+CiAgICAgICAgICAgICAgICAgICAgICA8YSBzdHlsZT0iZm9udC1zaXplOiAyMHB4IWltcG9ydGFudDsiIGhyZWY9Ij9hPWhvbWUiIGNsYXNzPSJsb2dvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL2ltYWdlcy9sb2dvby5wbmciIHN0eWxlPSJoZWlnaHQ6NjBweDsgd2lkdGg6MTUwcHg7ICAiPgogICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgPCEtLSAqKioqKiBMb2dvIEVuZCAqKioqKiAtLT4KICAgICAgICAgICAgICAgICAgICAgIDwhLS0gKioqKiogTWVudSBTdGFydCAqKioqKiAtLT4KICAgICAgICAgICAgICAgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIC5uYXYgYXsKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2shaW1wb3J0YW50OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iIj48YSBocmVmPSI/YT1ob21lIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ij9hPXRlcm0iPlRlcm1zPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ij9hPWFib3V0Ij5BYm91dDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAgPGxpIGNsYXNzPSJoYXMtc3ViIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj5QYWdlczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJzdWItbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0ibWVldGluZ3MiPlVwY29taW5nIE1lZXRpbmdzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0ibWVldGluZy1kZXRhaWxzIj5NZWV0aW5nIERldGFpbHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2E9ZmFxIj5GQVE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2E9ZGlnaXRhbCI+RGlnaXRhbCBBc3NldHM8L2E+PC9saT4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ij9hPWFncmljIj5BZ3JpY3VsdHVyZTwvYT48L2xpPiAKICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2E9cmVhbCI+UmVhbCBFc3RhdGU8L2E+PC9saT4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ij9hPXN1cHBvcnQiPkNvbnRhY3Q8L2E+PC9saT4gCiAgICAgICAgICAgICAgICAgICAgICA8L3VsPiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0nbWVudS10cmlnZ2VyJz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5NZW51PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgPCEtLSAqKioqKiBNZW51IEVuZCAqKioqKiAtLT4KICAgICAgICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8IS0tIDxkaXYgY2xhc3M9InBvcHVwLWNvbnRhaW5lciIgaWQ9InBvcHVwIj4KICAgIDxkaXYgY2xhc3M9InBvcHVwLWNvbnRlbnQiPgogICAgICAgIDxpbWcgc3JjPSIvMTAzMWNhZjJmMWQ0Y2I3ZDk0NDA2Yzg5ZTQxZjM0YTYuZ2lmIiBhbHQ9IlBvcHVwIEltYWdlIiBjbGFzcz0icG9wdXAtaW1nIj4KICAgICAgIAogICAgICAgIDxzcGFuIGNsYXNzPSJidG4tY2xvc2UiIG9uY2xpY2s9ImNsb3NlUG9wdXAoKSI+Q2xvc2U8L3NwYW4+CiAgICA8L2Rpdj4KPC9kaXY+LS0KCjxzY3JpcHQ+CiAgICAvLyBGdW5jdGlvbiB0byBvcGVuIHRoZSBwb3B1cCBhZnRlciBhIGRlbGF5CiAgICBmdW5jdGlvbiBvcGVuUG9wdXAoKSB7CiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cCIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgIH0sIDMwMDApOyAvLyBBZGp1c3QgdGhlIGRlbGF5IChpbiBtaWxsaXNlY29uZHMpIGFzIG5lZWRlZAogICAgfQoKICAgIGZ1bmN0aW9uIGNsb3NlUG9wdXAoKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgIH0KCiAgICAvLyBDYWxsIHRoZSBvcGVuUG9wdXAgZnVuY3Rpb24gb24gcGFnZSBsb2FkCiAgICB3aW5kb3cub25sb2FkID0gb3BlblBvcHVwOwo8L3NjcmlwdD4tLT4KPGRpdiBjbGFzcz0icgogICAgICA8ZGl2IGNsYXNzPSJzdWItaGVhZGVyIj4KICAKCgogICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTcgY29sLXNtLTEyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InJpZ2h0LWljb25zIj4KCiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2E9c2lnbnVwIj5TaWduIFVwPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPnw8L2E+PC9saT4KICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2E9bG9naW4iPlNpZ24gSW48L2E+PC9saT4KICAgICAgICAgICAgICAKICAgICAgICAgICAgPC91bD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICA8L2Rpdj4KICA8Y2VudGVyPgogIAogIDwvY2VudGVyPgogIDwvaGVhZGVyPgoKICA8IS0tICoqKioqIEhlYWRlciBBcmVhIEVuZCAqKioqKiAtLT4KCiAgPCEtLSAqKioqKiBNYWluIEJhbm5lciBBcmVhIFN0YXJ0ICoqKioqIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIG1haW4tYmFubmVyIiBpZD0idG9wIiBkYXRhLXNlY3Rpb249InNlY3Rpb24xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMCkscmdiYSgwLCAwLCAwLCAwLjUpKSAsIHVybChhc3NldHMvaW1hZ2VzL2Nhcm91c2VsLWltYWdlLnBuZyk7Ij4KICAgICAgCiAgICAgICAgICAgICAgPHZpZGVvIGF1dG9wbGF5PSIiIG11dGVkPSIiIGxvb3A9IiIgaWQ9ImJnLXZpZGVvIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAgICAgICA8c291cmNlIHNyYz0iYXNzZXRzL2ltYWdlcy92aWQubXA0IiB0eXBlPSJ2aWRlby9tcDQiPgogICAgICA8L3ZpZGVvPgogICAgICAKCiAgICAgIDxkaXYgY2xhc3M9InZpZGVvLW92ZXJsYXkgaGVhZGVyLXRleHQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHRpb24iPiAKICAgICAgICAgICAgICA8IS0tIDxoNj5IZWxsbyBTdHVkZW50czwvaDY+IC0tPgogICAgICAgICAgICAgCiAgICAgICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiA1MDBweCl7CiAgICAgICAgICAgICAgICAudG9waHR3b3sKICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweCFpbXBvcnRhbnQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIDwvc3R5bGU+CgogICAgICAgICAgIDwhLS0gIDxkaXYgIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgdmlzaWJpbGl0eTogaGlkZGVuOyIgICBpZD0iZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50Ij48L2Rpdj4gLS0+CgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idG9waHR3byI+d2UgZ2VuZXJhdGUgbW9zdCB2YWx1YWJsZSBhc3NldHM8L2gyPiAKCiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxwPk1vc3QgcmVsaWFibGUgaW52ZXN0bWVudCBjb21wYW55PC9wPjwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWJ1dHRvbi1yZWQiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICA8ZGl2PjxhIGhyZWY9Ij9hPXNpZ251cCI+R2V0IFN0YXJ0ZWQgZm9yIGZyZWU8L2E+PC9kaXY+ICZuYnNwOyAmbmJzcDsgIDxkaXYgY2xhc3M9InNjcm9sbC10by1zZWN0aW9uIj48YSBocmVmPSI/YT1zaWdudXAiPkxlYXJuIE1vcmUgPC9hPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PiAKCgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tYnV0dG9uLXJlZCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyAgdmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAgICAgICAgICAgICAgIDxkaXY+PGEgaHJlZj0iP2E9c2lnbnVwIj5MZWFybiBNb3JlPC9hPjwvZGl2PgoKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxicj48YnI+CiAgPC9zZWN0aW9uPgogIDwhLS0gKioqKiogTWFpbiBCYW5uZXIgQXJlYSBFbmQgKioqKiogLS0+CgogIDxzZWN0aW9uIGNsYXNzPSJzZXJ2aWNlcyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJvd2wtc2VydmljZS1pdGVtIG93bC1jYXJvdXNlbCI+CiAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbiI+CiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL2ltYWdlcy9zZXJ2aWNlLWljb24tMDEucG5nIiBhbHQ9IiI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG93bi1jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxoND5jdXN0b21pemVkIFBsYW5zPC9oND4KICAgICAgICAgICAgICAgPCEtLSAgPHA+U3VzcGVuZGlzc2UgdGVtcG9yIG1hdXJpcyBhIHNlbSBlbGVtZW50dW0gYmliZW5kdW0uIFByYWVzZW50IGZhY2lsaXNpcyBtYXNzYSBub24gdmVzdGlidWx1bS48L3A+IC0tPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24iPgogICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvc2VydmljZS1pY29uLTAyLnBuZyIgYWx0PSIiPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgICA8aDQ+WmVybyBDb3N0PC9oND4KICAgICAgICAgICAgICAgPCEtLSAgPHA+U3VzcGVuZGlzc2UgdGVtcG9yIG1hdXJpcyBhIHNlbSBlbGVtZW50dW0gYmliZW5kdW0uIFByYWVzZW50IGZhY2lsaXNpcyBtYXNzYSBub24gdmVzdGlidWx1bS48L3A+IC0tPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24iPgogICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvc2VydmljZS1pY29uLTAzLnBuZyIgYWx0PSIiPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgICA8aDQ+cHJvZmVzc2lvbmFsIFRlYW08L2g0PgogICAgICAgICAgICAgICAgPCEtLSA8cD5TdXNwZW5kaXNzZSB0ZW1wb3IgbWF1cmlzIGEgc2VtIGVsZW1lbnR1bSBiaWJlbmR1bS4gUHJhZXNlbnQgZmFjaWxpc2lzIG1hc3NhIG5vbiB2ZXN0aWJ1bHVtLjwvcD4gLS0+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24iPgogICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvc2VydmljZS1pY29uLTAzLnBuZyIgYWx0PSIiPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgICA8aDQ+UXVpY2sgUGF5b3V0PC9oND4KICAgICAgICAgICAgICAgPCEtLSAgPHA+U3VzcGVuZGlzc2UgdGVtcG9yIG1hdXJpcyBhIHNlbSBlbGVtZW50dW0gYmliZW5kdW0uIFByYWVzZW50IGZhY2lsaXNpcyBtYXNzYSBub24gdmVzdGlidWx1bS48L3A+IC0tPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgoKICA8c2VjdGlvbiBjbGFzcz0idXBjb21pbmctbWVldGluZ3MiIGlkPSJtZWV0aW5ncyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8aDI+d2VsY29tZSB0byBmYXJvc3NvbiBHbG9iYWwgVHJhZGU8L2gyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPSJjb2wtbGctOCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yaWVzIj4KICAgICAgICAgICAgPGg0Pk1lZXRpbmcgQ2F0Z29yaWVzPC9oND4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5TZWQgdGVtcHVzIGVuaW0gbGVvPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPkFlbmVhbiBtb2xlc3RpZSBxdWlzPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPkNyYXMgZXQgbWV0dXMgdmVzdGlidWx1bTwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5OYW0gZXQgY29uZGltZW50dW08L2E+PC9saT4KICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+UGhhc2VsbHVzIG5lYyBzYXBpZW48L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1idXR0b24tcmVkIj4KICAgICAgICAgICAgICA8YSBocmVmPSJtZWV0aW5ncyI+QWxsIFVwY29taW5nIE1lZXRpbmdzPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZiFpbXBvcnRhbnQ7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTYiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZXRpbmctaXRlbSI+CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG93bi1jb250ZW50IiBzdHlsZT0iYm9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50OyI+IAogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIj48aDQ+QWJvdXQgVXM8L2g0PjwvYT4KICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMHB4OyI+ZmFyb3Nzb24gR2xvYmFsIFRyYWRlIGlzIGEgbXVsdGlwdXJwb3NlIGludmVzdG1lbnQgcGxhdGZvcm0gdGhhdCBoYXMgYmVlbiBvcGVyYXRpbmcgYWxsIG92ZXIgU2luZ2Fwb3JlIGZvciBvdmVyIDE5eWVhcnMuIDxicj4gICAgIAogICAgICBXZSBvZmZlciB0aGUgYmVzdCBpbnZlc3RtZW50IHNlcnZpY2VzIHdpdGggdGhlIGRpZ2l0YWxpemF0aW9uIG9mIEFncm9ub215LCBSZWFsIEVzdGF0ZSB0aHJvdWdoIGEgc2VjdXJlIFNJUCBhbmQgQUlQIE1ldGhvZCByZWd1bGF0ZWQgaW4gdGhlIEJsb2NrY2hhaW4gbmV0d29yaywgaGVscGluZyBvdXIgaW52ZXN0b3JzIHRvIG1haW50YWluIGEgc3RhYmxlIGRhaWx5IGluY29tZSBHUk9XVEggPGJyPgpUaGUgY29tcGFueSB3YXMgaW5jb3Jwb3JhdGVkIG9uIDAyIEphbiAyMDA0LCB3aGljaCBpcyAxOS4xIHllYXJzIGFnby4gVGhlIGFkZHJlc3Mgb2YgdGhlIEJ1c2luZXNzJ3MgcmVnaXN0ZXJlZCBvZmZpY2UgaXMgVW5pdCA5LTAyLCBTYW1zdW5nIEh1YiwgMyBDaHVyY2ggU3QsIFNpbmdhcG9yZSAwNDk0ODMuClRoZSBCdXNpbmVzcydzIHByaW5jaXBhbCBhY3Rpdml0eSBpcyBUUkFESU5HIE9GIERJRkZFUkVOVCBWQVJJRVRJRVMuPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRodW1iIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+PGltZyBzdHlsZT0iYm9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50OyIgc3JjPSJhc3NldHMvaW1hZ2VzL2Fib3V0LXVzLnBuZyIgYWx0PSJOZXcgTGVjdHVyZXIgTWVldGluZyI+PC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTYiPiAKCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVldGluZy1pdGVtIj4KICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRodW1iIj4KICAgICA8IS0tICAgICAgICAgICAgIAogICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTYgYWxpZ24tc2VsZi1jZW50ZXIiPgogICAgICAgICA8aWZyYW1lIHdpZHRoPSI1NDAiIGhlaWdodD0iMzUwIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL29UNEI4aUpfT2xjIiB0aXRsZT0iRkFST1NTT05HTE9CQUwgVFJBREUgTElNSVRFRCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmUiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4KICAgICAgICA8L2Rpdj4tLT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yaWVzIj4KICAgICAgICAgICAgPGg0PiA8c21hbGwgc3R5bGU9ImxldHRlci1zcGFjaW5nOjVweDsgY29sb3I6IzE0OWRlZjsiPldlIGFyZSB0aGUgbW9zdDwvc21hbGw+IDxicj4gR2xvYmFsIENyeXB0byBUcmFkaW5nIENvbXBhbnk8L2g0PgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPjxpIHN0eWxlPSJjb2xvcjojMTQ5ZGVmOyIgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiA8YSBocmVmPSIjIj5UZXN0ZWQgYW5kIHRydXN0ZWQgY3J5cHRvIGNvbXBhbnk8L2E+PC9saT4KCiAgICAgICAgICAgICAgPGxpPjxpIHN0eWxlPSJjb2xvcjojMTQ5ZGVmOyIgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiA8YSBocmVmPSIjIj5BdXRvbWF0aWMgcGF5b3V0cyBvbiBwcm9maXQgbWF0dXJpdHk8L2E+PC9saT4KPGxpPjxpIHN0eWxlPSJjb2xvcjojMTQ5ZGVmOyIgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiA8YSBocmVmPSIjIj5XZSBvZmZlciBncmVhdCBSZXR1cm4gb24gSW52ZXN0bWVudDwvYT48L2xpPgoKPGxpPjxpIHN0eWxlPSJjb2xvcjojMTQ5ZGVmOyIgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiA8YSBocmVmPSIjIj5ObyBIaWRkZW4gY2hhcmdlcyBvbiB0cmFuc2FjdGlvbnM8L2E+PC9saT4KPGxpPjxpIHN0eWxlPSJjb2xvcjojMTQ5ZGVmOyIgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiA8YSBocmVmPSIjIj5WZXJ5IHRyYW5zcGFyZW50IHRyYWRpbmcgcGxhdGZvcm08L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgCiAgPC9zZWN0aW9uPgoKCjxzZWN0aW9uIGNsYXNzPSJhcHBseS1ub3ciIGlkPSIiPgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctNiBhbGlnbi1zZWxmLWNlbnRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWNlbnRlciI+ZmFyb3Nzb25HbG9iYWwgVHJhZGU8L2gzPgogICAgICAgICAgICAgICA8IS0tIDxwPiA8YSBocmVmPSJjZXJ0LnBuZyI+IDxpbWcgc3R5bGU9ImJvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDsiIHNyYz0iYXNzZXRzL2ltYWdlcy9jZXJ0LnBuZyIgYWx0PSJPbmxpbmUgVGVhY2hpbmciPjwvYT4KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgPCEtLSAgPGRpdiBjbGFzcz0ibWFpbi1idXR0b24tcmVkIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLXRvLXNlY3Rpb24iPjxhIGhyZWY9IiNjb250YWN0Ij5Kb2luIFVzIE5vdyE8L2E+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+IC0tPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIDwhLS0gPHA+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImFzc2V0cy9pbWFnZXMvZm9ybS1jcnMtSFVBV0VJLWdsb2JhbC10cmFkZS1sdGQucGRmIj4gPGltZyBzdHlsZT0iYm9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50OyIgc3JjPSJhc3NldHMvaW1hZ2VzL2MyLmpwZWciIGFsdD0iT25saW5lIFRlYWNoaW5nIj48L2E+CiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgIDwhLS0gIDxkaXYgY2xhc3M9Im1haW4tYnV0dG9uLXllbGxvdyI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC10by1zZWN0aW9uIj48YSBocmVmPSIjY29udGFjdCI+Sm9pbiBVcyBOb3chPC9hPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PiAtLT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctNiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb25zIGlzLWZpcnN0LWV4cGFuZGVkIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8aDMgc3R5bGU9ImNvbG9yOiMxNDlkZWY7IiBjbGFzcz0idGV4dC1jZW50ZXIiPk1ha2UgeW91ciBidXNpbmVzcyBzdWNjZXNzIHdpdGggdXMgPC9oMz4KICAgICAgICAgICAgICAgPGJyPgogICAgICA8cCBhbGlnbj0iY2VudGVyIj5XaXRoIHVuaXF1ZSBhbmQgcHJvZmVzc2lvbmFsIHRyYWRpbmcgc3RhcnRlZ2llcywgb3VyIEZvcmV4IGFuZCBDcnlwdG8gc3BlY2lhbGlzdHMgYXJlIHZlcnkgcmVsaWFibGUgaW4gYnJpbmdpbmcgbWF4aW11bSByZXR1cm5zICB0byBhbGwgb3VyIHBhcnRuZXJzLiBUaGlzIGlzIHRvIHNheSwgeW91ciBmdW5kcyBhcmUgc2FmZSB3aXRoIHVzLi48L3A+CiAgICAKCiAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgLnczX3R3b19ncmlkX3JpZ2h0MSBpewogICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE0OWRlZjsKICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGZvbnQtc2l6ZTogMjVweDsKICAgICAgICB9CgogICAgICAgIC53M190d29fZ3JpZF9yaWdodDEgaDR7CiAgICAgICAgICBjb2xvcjogIzE0OWRlZjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxicj4KICAgICAgPGRpdiBjbGFzcz0idzNfdHdvX2dyaWRfcmlnaHQxIj4KICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9IiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtYnVpbGRpbmciPjwvaT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy05ICI+CiAgICAgICAgICA8aDQ+UmVnaXN0ZXJlZCBhbmQgUmVsaWFibGU8L2g0PgogICAgICAgICAgPHA+ZmFyb3Nzb24gR2xvYmFsIFRyYWRlIGlzIGR1bHkgcmVnaXN0ZXJlZCB3aXRoIGFwcHJvcHJpYXRlIGZpbmFuY2lhbCBhdXRob3JpdGllcy48L3A+CiAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+IDwvZGl2PgogICAgICA8L2Rpdj4KCgogICAgICA8ZGl2IGNsYXNzPSJ3M190d29fZ3JpZF9yaWdodDEiPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtd3JlbmNoIj48L2k+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtOSAiPgogICAgICAgICAgPGg0PlByb2Zlc3Npb25hbCBNYW5hZ2VtZW50PC9oND4KICAgICAgICAgIDxwPk91ciBtYW5hZ2VtZW50IHRlYW0gYXJlIHdvcmxkLWNsYXNzIGZpbmFuY2lhbCBwcm9mZXNzaW9uYWxzLjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+ICAKCiAgICAgIDxicj4KICAgIDxkaXYgY2xhc3M9Im1haW4tYnV0dG9uLXJlZCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC10by1zZWN0aW9uIj48YSBocmVmPSIjY29udGFjdCI+R2V0IFN0YXJ0ZWQ8L2E+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+IAogICAgICAgCiAgICAgICAgICAKICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogIDwvc2VjdGlvbj4KCgogCgoKIAoKIDxzZWN0aW9uIGNsYXNzPSJ1cGNvbWluZy1tZWV0aW5ncyIgaWQ9Im1lZXRpbmdzIj4KICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgICAgICAgICAgIC5pcGxhbnsKICAgICAgICAgICAgICBib3JkZXI6MHB4IWltcG9ydGFudDsKICAgICAgICAgICAgIH0KICAgICAgICAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0iZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPGgyPkludmVzdG1lbnQgJiBUcmFkaW5nIFBsYW5zPC9oMj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTUiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcmllcyI+CiAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMTQ5ZGVmOyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxoNCBjbGFzcz0ibWFpbi1idXR0b24tcmVkIiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5ESUdJVEFMIEFTU0VUUzwvaDQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICA8aDQgY2xhc3M9ImlwbGFuIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4OyB2aXNpYmlsaXR5OiA7Ij48Y2VudGVyPjUlIEFGVEVSIDI0IEhPVVJTPC9jZW50ZXI+PC9oND4KCgogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iPjxjZW50ZXI+TWluOiAkMTAwIC0gTWF4OiBVbmxpbWl0ZWQ8L2NlbnRlcj48L2g0PgoKICAgICAgICAgICAgICA8aDQgY2xhc3M9ImlwbGFuIj48Y2VudGVyPkluc3RhbnQgUGF5b3V0PC9jZW50ZXI+PC9oND4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWJ1dHRvbi1yZWQiPgogICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXNpZ251cCI+Q2hvb3NlIFBsYW48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctNSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yaWVzIj4KICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMxNDlkZWY7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJtYWluLWJ1dHRvbi1yZWQiIHN0eWxlPSJjb2xvcjogI2ZmZjsiPlJFQUwgRVNUQVRFPC9oND4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7IHZpc2liaWxpdHk6ICA7Ij48Y2VudGVyPjMuNSUgRk9SIDcgREFZUyA8L2NlbnRlcj48L2g0PgoKCiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJpcGxhbiI+PGNlbnRlcj5NaW46ICQzLDAwMCAtIE1heDogVW5saW1pdGVkPC9jZW50ZXI+PC9oND4KCiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJpcGxhbiI+PGNlbnRlcj5JbnN0YW50IFBheW91dDwvY2VudGVyPjwvaDQ+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1idXR0b24tcmVkIj4KICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiPkNob29zZSBQbGFuPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKCgogICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MzVweDsiIGNsYXNzPSJjb2wtbGctNSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yaWVzIj4KICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMxNDlkZWY7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJtYWluLWJ1dHRvbi1yZWQiIHN0eWxlPSJjb2xvcjogI2ZmZjsiPkFHUklDVUxUVVJFPC9oND4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7IHZpc2liaWxpdHk6ICA7Ij48Y2VudGVyPjMlIERBSUxZIEZPUiAzIERBWVMgPC9jZW50ZXI+PC9oND4KCgogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iPjxjZW50ZXI+TWluOiAkMiwwMDAgLSBNYXg6IFVubGltaXRlZDwvY2VudGVyPjwvaDQ+CgogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iPjxjZW50ZXI+SW5zdGFudCBQYXlvdXQ8L2NlbnRlcj48L2g0PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tYnV0dG9uLXJlZCI+CiAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9c2lnbnVwIj5DaG9vc2UgUGxhbjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCgoKICAgICAgICAgIDwhLS0gPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDozNXB4OyIgY2xhc3M9ImNvbC1sZy01Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhdGVnb3JpZXMiPgogICAgICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzE0OWRlZjsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ij4KICAgICAgICAgICAgICA8aDQgY2xhc3M9Im1haW4tYnV0dG9uLXJlZCIgc3R5bGU9ImNvbG9yOiAjZmZmOyI+TUlHSFRZIFBMQU48L2g0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJpcGxhbiIgc3R5bGU9Im1hcmdpbi10b3A6MTBweDsgdmlzaWJpbGl0eTogIGhpZGRlbjsiPjxjZW50ZXI+MjAlIEFGVEVSIDk2IEhPVVJTIDwvY2VudGVyPjwvaDQ+CgoKICAgICAgICAgICAgICA8aDQgY2xhc3M9ImlwbGFuIj48Y2VudGVyPk1pbjogJDEwLDAwMCAtIE1heDogJDE1LDAwMDwvY2VudGVyPjwvaDQ+CgogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iPjxjZW50ZXI+SW5zdGFudCBQYXlvdXQ8L2NlbnRlcj48L2g0PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tYnV0dG9uLXJlZCI+CiAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9c2lnbnVwIj5DaG9vc2UgUGxhbjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCgoKICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjM1cHg7IiBjbGFzcz0iY29sLWxnLTUiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcmllcyI+CiAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMTQ5ZGVmOyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxoNCBjbGFzcz0ibWFpbi1idXR0b24tcmVkIiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5UUkFESU5HIFBMQU4gQTwvaDQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICA8aDQgY2xhc3M9ImlwbGFuIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4OyB2aXNpYmlsaXR5OiAgaGlkZGVuOyI+PGNlbnRlcj4yMCUgQUZURVIgNTAgSE9VUlMgPC9jZW50ZXI+PC9oND4KCgogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iPjxjZW50ZXI+TWluOiAkMTUsMDAwIC0gTWF4OiAkMjksOTk5PC9jZW50ZXI+PC9oND4KCiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJpcGxhbiI+PGNlbnRlcj5JbnN0YW50IFBheW91dDwvY2VudGVyPjwvaDQ+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1idXR0b24tcmVkIj4KICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiPkNob29zZSBQbGFuPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKCiAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MzVweDsiIGNsYXNzPSJjb2wtbGctNSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yaWVzIj4KICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMxNDlkZWY7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJtYWluLWJ1dHRvbi1yZWQiIHN0eWxlPSJjb2xvcjogI2ZmZjsiPlRSQURJTkcgUExBTiBCPC9oND4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7IHZpc2liaWxpdHk6ICBoaWRkZW47Ij48Y2VudGVyPjEwJSBBRlRFUiA1IEhPVVJTIDwvY2VudGVyPjwvaDQ+CgoKICAgICAgICAgICAgICA8aDQgY2xhc3M9ImlwbGFuIj48Y2VudGVyPk1pbjogJDMwLDAwMCAtIE1heDogJDQ5LDk5OTwvY2VudGVyPjwvaDQ+CgogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iPjxjZW50ZXI+SW5zdGFudCBQYXlvdXQ8L2NlbnRlcj48L2g0PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tYnV0dG9uLXJlZCI+CiAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9c2lnbnVwIj5DaG9vc2UgUGxhbjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCgogICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjM1cHg7IiBjbGFzcz0iY29sLWxnLTUiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcmllcyI+CiAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMTQ5ZGVmOyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxoNCBjbGFzcz0ibWFpbi1idXR0b24tcmVkIiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5UUkFESU5HIFBMQU4gQzwvaDQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICA8aDQgY2xhc3M9ImlwbGFuIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4OyB2aXNpYmlsaXR5OiAgaGlkZGVuOyI+PGNlbnRlcj4xMiUgQUZURVIgNSBIT1VSUyA8L2NlbnRlcj48L2g0PgoKCiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJpcGxhbiI+PGNlbnRlcj5NaW46ICQ1MCwwMDAgLSBNYXg6ICQxNTAsMDAwPC9jZW50ZXI+PC9oND4KCiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJpcGxhbiI+PGNlbnRlcj5JbnN0YW50IFBheW91dDwvY2VudGVyPjwvaDQ+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1idXR0b24tcmVkIj4KICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiPkNob29zZSBQbGFuPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKCiAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MzVweDsiIGNsYXNzPSJjb2wtbGctNSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yaWVzIj4KICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMxNDlkZWY7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJtYWluLWJ1dHRvbi1yZWQiIHN0eWxlPSJjb2xvcjogI2ZmZjsiPlRSQURJTkcgUExBTiBEPC9oND4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgIDxoNCBjbGFzcz0iaXBsYW4iIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7IHZpc2liaWxpdHk6ICBoaWRkZW47Ij48Y2VudGVyPjEwJSBBRlRFUiAxMiBIT1VSUyA8L2NlbnRlcj48L2g0PgoKCiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJpcGxhbiI+PGNlbnRlcj5NaW46JDE1MCwwMDAgLSBNYXg6VW5saW1pdGVkPC9jZW50ZXI+PC9oND4KCiAgICAgICAgICAgICAgPGg0IGNsYXNzPSJpcGxhbiI+PGNlbnRlcj5JbnN0YW50IFBheW91dDwvY2VudGVyPjwvaDQ+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1idXR0b24tcmVkIj4KICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiPkNob29zZSBQbGFuPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2Pi0tPgoKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgoKIDxkaXYgY2xhc3M9InNraWxsLWFyZWEgZGVmYXVsdC1wYWRkaW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTYiPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtc3RyaXBlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZCBzdHlsZT0iYmFja2dyb3VuZDojMTE3QkRDOyAgY29sb3I6I2ZmZmZmZjsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIj5MYXRlc3QgRGVwb3NpdHM8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9ImxkX2JvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC02Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLXN0cmlwZWQiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQgc3R5bGU9ImJhY2tncm91bmQ6IzEyMTIxMjsgIGNvbG9yOiNmZmZmZmY7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCI+TGF0ZXN0IFdpdGhkcmF3YWxzPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJsd19ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+Cgo8c2VjdGlvbiBjbGFzcz0idXBjb21pbmctbWVldGluZ3MiIHN0eWxlPSJtYXJnaW46MHB4IWltcG9ydGFudDsgcGFkZGluZzogIDIwcHggMHB4IDgwcHggMHB4OyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQiPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgoKPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6IDFweCBzb2xpZCAjZmZmOyBwYWRkaW5nOiA1MHB4OyI+CiAgICAgICA8ZGl2PgogICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWNlbnRlciI+SW5zdGFudCA1JSBSZWZlcnJhbCBCb251czwvaDM+IAogICAgICAgICAgPHAgY2xhc3M9InRleHQtY2VudGVyIiBhbGlnbj0ianVzdGlmeSI+IFlvdSB3aWxsIHJlY2VpdmUgaW5zdGFudCA1JSBib251cyBjcmVkaXRlZCB0byB5b3VyIGFjY291bnQgd2hlbiB5b3UgcmVmZXIgZmFyb3Nzb24gR2xvYmFsIFRyYWRlIHRvIGZhbWlseSBhbmQgZnJpZW5kcy4gPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWJ1dHRvbi1yZWQiIHN0eWxlPSJkaXNwbGF5OiBmbGV4O2p1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9c2lnbnVwIj5HZXQgU3RhcnRlZCBOb3c8L2E+CiAgICAgICAgICAgIDwvZGl2PiAgICAgCiAgICA8L2Rpdj4KCjwvZGl2Pgo8L2Rpdj4KPC9zZWN0aW9uPgoKCgoKPHNlY3Rpb24+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZiFpbXBvcnRhbnQ7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTciPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZXRpbmctaXRlbSI+CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG93bi1jb250ZW50IiBzdHlsZT0iYm9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50OyI+IAogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIj48aDQ+MTAwJSBzdG9ja3MgITwvaDQ+PC9hPgogICAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4gV2h5IHBheSBmZWVzIHdoZW4geW91IGRvbid0IGhhdmUgdG8/IGludmVzdCBpbiBhIGxhcmdlIHZhcmlldHkgb2YgcGxhbnMgb24gIGZhcm9zc29uIEdsb2JhbCBUcmFkZS4gVGhlcmUgYXJlIG5vIGxpbWl0cyBvbiB0cmFkaW5nIHZvbHVtZSBlaXRoZXIuLi48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KIDxkaXYgY2xhc3M9Im1haW4tYnV0dG9uLXJlZCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ij4KICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiPkludmVzdCBpbiBzdG9ja3M8L2E+CiAgICAgICAgICAgIDwvZGl2PiAKICAgICAgICAgICAgICAgICA8c21hbGw+PHAgY2xhc3M9ImRvd24tY29udGVudCI+CiAgIFplcm8gY29tbWlzc2lvbiBkb2VzIG5vdCBhcHBseSB0byBzaG9ydCBvciBsZXZlcmFnZWQgc3RvY2sgdHJhZGVzLiBaZXJvIGNvbW1pc3Npb24gbWVhbnMgdGhhdCBubyBicm9rZXIgZmVlIGhhcyBiZWVuIGNoYXJnZWQgd2hlbiBvcGVuaW5nIG9yIGNsb3NpbmcgdGhlIHBvc2l0aW9uLiBPdGhlciBmZWVzIG1heSBhcHBseS48L3A+CiAgICAgICAgICAgICAgICA8L3NtYWxsPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy01Ij4gCgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZXRpbmctaXRlbSI+CiAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGh1bWIiPgogICAgICAgICAgICAgICAgICAKICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy02IiBzdHlsZT0iIj4KICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvc3RvY2suanBnIiBzdHlsZT0id2lkdGg6IDEwMCU7ICIgYWx0PSIiPgogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgIAogIDwvc2VjdGlvbj4KCgoKCgoKIDxzZWN0aW9uIGNsYXNzPSJtZWV0aW5ncy1wYWdlIiBpZD0ibWVldGluZ3MiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwKSxyZ2JhKDAsIDAsIDAsIDAuNSkpICwgdXJsKGFzc2V0cy9pbWFnZXMvY3Q1LmpwZWcpOyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlcnMiPgogICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICA8bGkgc3R5bGU9ImZvbnQtc2l6ZTogMjBweDsiPkNvbXBhbnkgVGltZWxpbmUgIDwvbGk+CiAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgZ3JpZCI+CgoKCiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTQgdGVtcGxhdGVtby1pdGVtLWNvbCBhbGwgc29vbiI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZXRpbmctaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGh1bWIiPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bWFycXVlZSB3aWR0aD0iMTAwJSIgZGlyZWN0aW9uPSJsZWZ0IiBoZWlnaHQ9IjUwcHgiPiA8c3Bhbj4gQXMgQCAyMDA3PC9zcGFuPjwvbWFycXVlZT4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+PGltZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMxNDlkZWY7IiBzcmM9ImFzc2V0cy9pbWFnZXMvY3QxLnBuZyIgYWx0PSIiPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb3duLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJ0ZXh0LWNlbnRlciI+SHVtYmxlIGJlZ2lubmluZ3M8L2g0PgogICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtY2VudGVyIj4KQSBncm91cCBvZiBjb21tZXJjaWFsIHRyYWRlcnMgaW5pdGlhdGVkIHRyYWRpbmcgaW4gZmluYW5jaWFsIG1hcmtldHMuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKCgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy00IHRlbXBsYXRlbW8taXRlbS1jb2wgYWxsIHNvb24iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWV0aW5nLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRodW1iIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG1hcnF1ZWUgd2lkdGg9IjEwMCUiIGRpcmVjdGlvbj0ibGVmdCIgaGVpZ2h0PSI1MHB4Ij4gPHNwYW4+IEFzIEAgMjAxMzwvc3Bhbj48L21hcnF1ZWU+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiPjxpbWcgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMTQ5ZGVmOyIgc3JjPSJhc3NldHMvaW1hZ2VzL2N0Mi5wbmciIGFsdD0iIj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG93bi1jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGV4dC1jZW50ZXIiPkJpZ2dlciBvcHBvcnR1bml0aWVzPC9oND4KICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWNlbnRlciI+ClByb2ZpdHMgZ2VuZXJhdGVkIHdlcmUgcmV1c2VkIHRvIGdlbmVyYXRlIGV2ZW4gYmV0dGVyIG1hcmdpbnMgb2YgcHJvZml0cy48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctNCB0ZW1wbGF0ZW1vLWl0ZW0tY29sIGFsbCBzb29uIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVldGluZy1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aHVtYiI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXJxdWVlIHdpZHRoPSIxMDAlIiBkaXJlY3Rpb249ImxlZnQiIGhlaWdodD0iNTBweCI+IDxzcGFuPiBBcyBAIDIwMTg8L3NwYW4+PC9tYXJxdWVlPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIj48aW1nIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItYm90dG9tOiAycHggc29saWQgIzE0OWRlZjsiIHNyYz0iYXNzZXRzL2ltYWdlcy9jdDMucG5nIiBhbHQ9IiI+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9InRleHQtY2VudGVyIj5Db21wYW55IGZvcm1hdGlvbjwvaDQ+CiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1jZW50ZXIiPgoKZmFyb3Nzb24gR2xvYmFsIFRyYWRlIGlzIGZ1bGx5IGxlZ2l0IGFuZCBvZmZpY2lhbGx5IHJlZ2lzdGVyZWQgY29tcGFueS48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgoKCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTMgdGVtcGxhdGVtby1pdGVtLWNvbCBhbGwgc29vbiI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZXRpbmctaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGh1bWIiPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bWFycXVlZSB3aWR0aD0iMTAwJSIgZGlyZWN0aW9uPSJsZWZ0IiBoZWlnaHQ9IjUwcHgiPiA8c3Bhbj4gQXMgQCAyMDIxPC9zcGFuPjwvbWFycXVlZT4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+PGltZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMxNDlkZWY7IiBzcmM9ImFzc2V0cy9pbWFnZXMvY3Q0LnBuZyIgYWx0PSIiPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb3duLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJ0ZXh0LWNlbnRlciI+V29ybGQgd2lkZSBjb3ZlcmFnZTwvaDQ+CiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1jZW50ZXIiPgoKT3VyIHZpc2lvbiBpcyB0byBncm93IGFsb25nIHdpdGggb3VyIGNsaWVudHMgYW5kIGV4cGFuZCBnbG9iYWxseS48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgoKPHNlY3Rpb24gY2xhc3M9Im91ci1mYWN0cyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgICAgIDxoMj5BZmZpbGlhdGlvbiBQcm9ncmFtPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZXRpbmctaXRlbSI+CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG93bi1jb250ZW50IiBzdHlsZT0iYm9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50OyI+IAogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIj48aDQgc3R5bGU9ImNvbG9yOiAjMTQ5ZGVmOyI+UmVmZXJyYWwgUHJvZ3JhbTwvaDQ+PC9hPgogICAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4KV2hlbiB5b3UgcmVmZXIgeW91ciBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGNvbW11bml0eSBtZW1iZXJzIHRvIGZhcm9zc29uIEdsb2JhbCBUcmFkZSwgeW91IGFyZSBlbnRpdGxlZCB0byA1JSBvbiBldmVyeSBkZXBvc2l0IG1hZGUgYnkgeW91ciBkb3dubGluZS4gRm9yIHNlY29uZCBsZXZlbCAsIHlvdSB3aWxsIHJlY2VpdmUgMiUgYWZmaWxpYXRlIGNvbW1pc3Npb24gYW5kIGZvciB0aGlyZCBsZXZlbCB5b3Ugd2lsbCBnZXQgMSUgYWZmaWxpYXRlIGNvbW1pc3Npb24uIFlvdSBjYW4gcmVpbnZlc3QgeW91ciBjb21taXNzaW9uIG9yIHdpdGhkcmF3IGF0IGFueSB0aW1lLgoKPGJyPjxicj4KCjxoNCBzdHlsZT0iY29sb3I6ICMxNDlkZWY7Ij5SZXByZXNlbnRhdGl2ZSBQcm9ncmFtPC9oND4KICBCZWNvbWluZyBhbiBvZmZpY2lhbCByZXByZXNlbnRhdGl2ZSBvZiBmYXJvc3NvbiBHbG9iYWwgVHJhZGUgcGxhdGZvcm0gYnJpbmdzIHlvdSBsaW1pdGxlc3MgYnVzaW5lc3MgcG9zc2liaWxpdGllcy4gRm9yIGRpcmVjdCByZXByZXNlbnRhdGl2ZXMgeW91IHdpbGwgZ2V0IDclIHJlcHJlc2VudGF0aXZlIGNvbW1pc3Npb24uIEZvciBzZWNvbmQgbGV2ZWwgcmVwcmVzZW50YXRpdmUgeW91IHdpbGwgZ2V0IDIlIHJlcHJlc2VudGF0aXZlIGNvbW1pc3Npb24gLCBmb3IgdGhpcmQgbGV2ZWwgcmVwcmVzZW50YXRpdmUgeW91IHdpbGwgZ2V0IDElIHJlcHJlc2VudGF0aXZlIGNvbW1pc3Npb24uCiAgPGJyPgogPGRpdiBjbGFzcz0ibWFpbi1idXR0b24tcmVkIiBzdHlsZT0iZGlzcGxheTogZmxleDtqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXNpZ251cCI+R2V0IFN0YXJ0ZWQ8L2E+CiAgICAgICAgICAgIDwvZGl2PiAKCiAgICAgICAgICAgICAgICA8L2Rpdj4KCgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KIDxkaXYgY2xhc3M9ImNvbC1sZy04Ij4KIDx0YWJsZSBjbGFzcz0idGFibGUiIHN0eWxlPSIgd2lkdGg6IDEwMCU7Ym9yZGVyOiAxcHggc29saWQgbGlnaHRncmV5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBjb2xvcjogIzE0OWRlZjsgIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0icmVkIHRleHQtY2VudGVyIj5MZXZlbDwvdGg+CiAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0iYmx1ZSB0ZXh0LWNlbnRlciI+U3RhbmRhcmQgQ29tbWlzc2lvbiA8L3RoPgogICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9ImdyZWVuIHRleHQtY2VudGVyIj5SZXByZXNlbnRhdGl2ZSBDb21taXNzaW9uPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHkgY2xhc3M9InRleHQtY2VudGVyIj4KICAgIDx0cj4KICAgICAgPHRkIHNjb3BlPSJyb3ciIGNsYXNzPSJyZWQiPjE8L3RkPgogICAgICA8dGQgY2xhc3M9ImJsdWUiPjUlPC90ZD4KICAgICAgPHRkIGNsYXNzPSJncmVlbiI+NyU8L3RkPgogICAgPC90cj4KICAgICA8dHI+CiAgICAgIDx0ZCBzY29wZT0icm93IiBjbGFzcz0icmVkIj4yPC90ZD4KICAgICAgPHRkIGNsYXNzPSJibHVlIj4yJTwvdGQ+CiAgICAgIDx0ZCBjbGFzcz0iZ3JlZW4iPjIlPC90ZD4KICAgIDwvdHI+CiAgICAgPHRyPgogICAgICA8dGQgc2NvcGU9InJvdyIgY2xhc3M9InJlZCI+MzwvdGQ+CiAgICAgIDx0ZCBjbGFzcz0iYmx1ZSI+MSU8L3RkPgogICAgICA8dGQgY2xhc3M9ImdyZWVuIj4xJTwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CjwvZGl2PgoKICAgICAgICAKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PiAKICAgICAgIAogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCgoKPCEtLSA8c2VjdGlvbiBjbGFzcz0ib3VyLWNvdXJzZXMiIGlkPSJjb3Vyc2VzIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxoMj5UZXN0aW1vbmlhbHM8L2gyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im93bC1jb3Vyc2VzLWl0ZW0gb3dsLWNhcm91c2VsIj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICAgIDxpbWcgc3R5bGU9ImJvcmRlci1yYWRpdXM6IDUwJTsgaGVpZ2h0OjIwMHB4OyIgc3JjPSJhc3NldHMvaW1hZ2VzL3Q1LmpwZWciIGFsdD0iQ291cnNlIE9uZSI+CgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9InRleHQtY2VudGVyIiBzdHlsZT0icGFkZGluZy10b3A6IDE1cHghaW1wb3J0YW50OyI+RHIuRGF2aWQgRWlmcmlnIE1jR2xvbmUgPHNwYW4gY2xhc3M9Imljb25pZnkiIGRhdGEtaWNvbj0idHdlbW9qaTpmbGFnLWNhbmFkYSIgZGF0YS13aWR0aD0iMjUiPjwvc3Bhbj4gPC9oNj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgPHAgYWxpZ249ImNlbnRlciI+V2FpdGluZyBoZWxwcyB5b3UgYXMgYW4gaW52ZXN0b3IgYW5kIGEgbG90IG9mIHBlb3BsZSBqdXN0IGNhbid0IHN0YW5kIHRvIHdhaXQuIElmIHlvdSBkaWRuJ3QgZ2V0IHRoZSBkZWZlcnJlZCAtZ3JhdGlmaWNhdGlvbiBnZW5lLCB5b3UndmUgZ290IHRvIHdvcmsgdmVyeSBoYXJkIHRvIG92ZXJjb21lIHRoYXQuIApmYXJvc3NvbiBHbG9iYWwgVHJhZGUgVGhhbmtzLjwvcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCgogICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICAgIDxpbWcgc3R5bGU9ImJvcmRlci1yYWRpdXM6IDUwJTsgaGVpZ2h0OjIwMHB4OyAiIHNyYz0iYXNzZXRzL2ltYWdlcy90Ni5qcGVnIiBhbHQ9IkNvdXJzZSBPbmUiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9InRleHQtY2VudGVyIiBzdHlsZT0icGFkZGluZy10b3A6IDE1cHghaW1wb3J0YW50OyI+Q2xhcmVuIFcuIEhpbWVsc2Vpbi4gPHNwYW4gY2xhc3M9Imljb25pZnkiIGRhdGEtaWNvbj0iZW1vamlvbmUtdjE6ZmxhZy1mb3ItYXVzdHJhbGlhIiBkYXRhLXdpZHRoPSIyNSI+PC9zcGFuPjwvaDY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgPHAgYWxpZ249ImNlbnRlciI+VGhvdWdoIHRlbXB0aW5nLCB0cnlpbmcgYW5kIHN1Y2Nlc3NmdWwgdGltZSBpbiBmYXJvc3NvbiBHbG9iYWwgVHJhZGUgTWFya2V0IGlzIG9uIGdhaW5lcnMsICQxMCwwMDAgY29udGludW91c2x5IGludmVzdGVkIGluIGZhcm9zc29uIEdsb2JhbCBUcmFkZSBNYXJrZXQgb3ZlciB0aGUgcGFzdCA1IE1vbnRocyBncmV3IHRvIG1vcmUgdGhhbiAkNDgsMDAwLiAKVGhhbmsgeW91IGZhcm9zc29uIEdsb2JhbCBUcmFkZS48cCBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+SXQncyBiZWVuIGFuIGFtYXppbmcgMyB5ZWFycyBJdCdzIGJlZW4gYW4gYW1hemluZyAzIHllYXJzICAgPC9wPiAKICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgICA8aW1nIHN0eWxlPSJib3JkZXItcmFkaXVzOiA1MCU7IGhlaWdodDoyMDBweDsiIHNyYz0iYXNzZXRzL2ltYWdlcy90Ny5qcGVnIiBhbHQ9IkNvdXJzZSBPbmUiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9InRleHQtY2VudGVyIiBzdHlsZT0icGFkZGluZy10b3A6IDE1cHghaW1wb3J0YW50OyI+U2NvdHQgSGVsZnN0ZWluIFNhYWQgPHNwYW4gY2xhc3M9Imljb25pZnkiIGRhdGEtaWNvbj0idHdlbW9qaTpmbGFnLWdlcm1hbnkiIGRhdGEtd2lkdGg9IjI1Ij48L3NwYW4+PC9oNj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj5Zb3UgbWFrZSBtb3N0IG9mIHlvdXIgbW9uZXkgaW4gYSBiZWFyIG1hcmtldCwgeW91IGp1c3QgZG9u4oCZdCByZWFsaXplIGl0IGF0IHRoZSB0aW1lLuKAnSBUaGUgYmVzdCB3YXkgdG8gbWVhc3VyZSB5b3VyIGludmVzdGluZyBzdWNjZXNzIGlzIG5vdCBieSB3aGV0aGVyIHlvdeKAmXJlIGJlYXRpbmcgdGhlIG1hcmtldCBidXQgYnkgd2hldGhlciB5b3XigJl2ZSBwdXQgaW4gcGxhY2UgYSBmaW5hbmNpYWwgcGxhbiBhbmQgYSBiZWhhdmlvcmFsIGRpc2NpcGxpbmUgdGhhdCBhcmUgbGlrZWx5IHRvIGdldCB5b3Ugd2hlcmUgeW91IHdhbnQgdG8gZ28uCkkgd2lsbCBzcHJlYWQgdGhlIEdvb2QgTmV3cyBmYXJvc3NvbiBHbG9iYWwgVHJhZGUuPC9wPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+PC9zZWN0aW9uPi0tPgoKICA8c2VjdGlvbj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmIWltcG9ydGFudDsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctNyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVldGluZy1pdGVtIj4KICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb3duLWNvbnRlbnQiIHN0eWxlPSJib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7Ij4gCiAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0ibWItNSIgc3R5bGU9ImNvbG9yOiAjMTQ5ZGVmOyI+SW4gcXVhbGl0eSBhc3N1cmFuY2UgYSBjb25zdGFudCBlZmZvcnQgaXMgbWFkZSB0byBlbmhhbmNlIHRoZSBxdWFsaXR5IHByYWN0aWNlcyBpbiB0aGUKICAgICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb24uPC9oMj4KICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMHB4OyI+IFRoZSBtb3N0IGltcG9ydGFudCBhc3BlY3Qgb2Ygb3VyIGludmVzdG1lbnRzLCB3aGljaCByYW5nZSBmcm9tIGxvdywgbWlkZGxlIGFuZCBoaWdoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNvbWUgYXJlIGJhc2VkIG9uIHRoZSBmYWN0IHRoYXQgb3VyIGNvcmUgaW52ZXN0bWVudCBpcyBhbHdheXMgZ3VhcmFudGVlZCwgYW5kIG5vdyB3ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VsY29tZSBldmVyeW9uZSB3aXRoIEludGVybmV0IGFjY2VzcyBhbmQgYW4gYWNjb3VudC48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTUiPiAKCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVldGluZy1pdGVtIj4KICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGh1bWIiPgogICAgICAgICAgICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgICAgICAgICAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDYwMHB4KXsKICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZW1pc3Npb257CiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDBweCFpbXBvcnRhbnQ7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAgICAgICAKICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy02IHZhbHVlbWlzc2lvbiIgc3R5bGU9Im1hcmdpbi10b3A6IDEwMHB4OyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJpY29uX3NpemUiIHN0eWxlPSJkaXNwbGF5OiBmbGV4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsiPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idmlzaW9uLWljb24iIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDIwcHg7IGZvbnQtc2l6ZTogMzBweDsgY29sb3I6ICMxNDlkZWY7Ij48aSBjbGFzcz0iZmEgZmEtZXllIj48L2k+VmlzaW9uPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InZhbHVlLWljb24iIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDIwcHg7IGZvbnQtc2l6ZTogMzBweDsgY29sb3I6ICMxNDlkZWY7Ij48aSBjbGFzcz0iZmEgZmEtbGluZS1jaGFydCI+PC9pPlZhbHVlczwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJtaXNzaW9uLWljb24iIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDIwcHg7IGZvbnQtc2l6ZTogMzBweDsgY29sb3I6ICMxNDlkZWY7Ij48aSBjbGFzcz0iZmEgZmEtcm9ja2V0Ij48L2k+IE1pc3Npb248L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgCiAgPC9zZWN0aW9uPgoKCiAgPHNlY3Rpb24gY2xhc3M9Im91ci1mYWN0cyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy02Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgPGgyPk91ciBTdGF0czwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb3VudC1hcmVhLWNvbnRlbnQgIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY291bnQtZGlnaXQiPjU3PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjpvcmFuZ2U7IGZvbnQtd2VpZ2h0OiA3MDA7Ij4sPC9zcGFuPjxzcGFuIGNsYXNzPSJjb3VudC1kaWdpdCI+NTA5PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50LXRpdGxlIj5SZWdpc3RlcmVkIFRyYWRlcnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50LWFyZWEtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50LWRpZ2l0Ij4yOTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6b3JhbmdlOyBmb250LXdlaWdodDogNzAwOyI+LDwvc3Bhbj48c3BhbiBjbGFzcz0iY291bnQtZGlnaXQiPjg3Mjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb3VudC10aXRsZSI+QWN0aXZlIFRyYWRlcnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+ICAKICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50LWFyZWEtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50LWRpZ2l0Ij40MDM8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOm9yYW5nZTsgZm9udC13ZWlnaHQ6IDcwMDsiPiw8L3NwYW4+PHNwYW4gY2xhc3M9ImNvdW50LWRpZ2l0Ij42ODk8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOm9yYW5nZTsgZm9udC13ZWlnaHQ6IDcwMDsiPiw8L3NwYW4+PHNwYW4gY2xhc3M9ImNvdW50LWRpZ2l0Ij41Njc8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY291bnQtdGl0bGUiPlRvdGFsIFBheW91dHM8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+ICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb3VudC1hcmVhLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudC1kaWdpdCI+MTc0PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjpvcmFuZ2U7IGZvbnQtd2VpZ2h0OiA3MDA7Ij4sPC9zcGFuPjxzcGFuIGNsYXNzPSJjb3VudC1kaWdpdCI+ODkzPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjpvcmFuZ2U7IGZvbnQtd2VpZ2h0OiA3MDA7Ij4sPC9zcGFuPjxzcGFuIGNsYXNzPSJjb3VudC1kaWdpdCI+NjcwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50LXRpdGxlIj5EZXBvc2l0cyBNYWRlPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PiAKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4gCiAgICAgICAKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgogCiAKCjwhLS0gR2V0QnV0dG9uLmlvIHdpZGdldCAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiAgCiAgICAoZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBvcHRpb25zID0gewogICAgICAgICAgCiAgICAgICAgICAgICAKICAgICAgICAgICAgd2hhdHNhcHA6ICIrNDQ3OTg4NTc1OTY5IiwgLy8gV2hhdHNBcHAgbnVtYmVyCiAgICAgICAgICAgIGNhbGxfdG9fYWN0aW9uOiAiTWVzc2FnZSB1cyIsIC8vIENhbGwgdG8gYWN0aW9uCiAgICAgICAgICAgIGJ1dHRvbl9jb2xvcjogIiNGRjY1NTAiLCAvLyBDb2xvciBvZiBidXR0b24KICAgICAgICAgICAgcG9zaXRpb246ICJsZWZ0IiwgLy8gUG9zaXRpb24gbWF5IGJlICdyaWdodCcgb3IgJ2xlZnQnCiAgICAgICAgICAgIG9yZGVyOiAid2hhdHNhcHAiLCAvLyBPcmRlciBvZiBidXR0b25zCiAgICAgICAgfTsKICAgICAgICB2YXIgcHJvdG8gPSAnaHR0cHM6JywgaG9zdCA9ICJnZXRidXR0b24uaW8iLCB1cmwgPSBwcm90byArICcvL3N0YXRpYy4nICsgaG9zdDsKICAgICAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyBzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0Jzsgcy5hc3luYyA9IHRydWU7IHMuc3JjID0gdXJsICsgJy93aWRnZXQtc2VuZC1idXR0b24vanMvaW5pdC5qcyc7CiAgICAgICAgcy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IFdoV2lkZ2V0U2VuZEJ1dHRvbi5pbml0KGhvc3QsIHByb3RvLCBvcHRpb25zKTsgfTsKICAgICAgICB2YXIgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsgeC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzLCB4KTsKICAgIH0pKCk7Cjwvc2NyaXB0Pgo8IS0tIC9HZXRCdXR0b24uaW8gd2lkZ2V0IC0tPgoKICAgIDxzZWN0aW9uIGNsYXNzPSJjb250YWN0LXVzIiBpZD0iY29udGFjdCI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTkiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgPGRpdiBjbGFzcz0icmlnaHQtaW5mbyI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4OyI+CgogICAgICAgICAgICAgIDxzcGFuPmZhcm9zc29uIEdsb2JhbCBUcmFkZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoNj4gT3VyIGNvbXBhbnkgLSB3d3cuaHR0cHM6Ly9mYXJvc3Nvbmdsb2JhbHRyYWRlLmx0ZCwgPGJyPmZvdW5kZWQgaW4gMjAwNDwvaDY+CgogICAgICAgICAgICAgICA8IS0tIDxoNj48c3ZnIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld2JveD0iMCAwIDMwIDMwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNSAzMEMyMy4yODQzIDMwIDMwIDIzLjI4NDMgMzAgMTVDMzAgNi43MTU3MyAyMy4yODQzIDAgMTUgMEM2LjcxNTczIDAgMCA2LjcxNTczIDAgMTVDMCAyMy4yODQzIDYuNzE1NzMgMzAgMTUgMzBaIiBmaWxsPSIjZWJlYmViIj48L3BhdGg+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS4zMTU4IDE0LjQyMTNDMTUuMzA1NiAxNS4yMzU5IDE2LjAzNTkgMTUuNjkwNSAxNi41ODYyIDE1Ljk2MDhDMTcuMTUxNSAxNi4yMzgxIDE3LjM0MTQgMTYuNDE1OSAxNy4zMzkyIDE2LjY2MzlDMTcuMzM0OSAxNy4wNDM1IDE2Ljg4ODIgMTcuMjEwOSAxNi40NzAyIDE3LjIxNzVDMTUuNzYwNiAxNy4yMjg2IDE1LjM0IDE3LjAzMDIgMTUuMDA3MyAxNi44NzMyTDE0Ljk3OTggMTYuODYwMkwxNC43MTcxIDE4LjA5OTVDMTUuMDU1MyAxOC4yNTY2IDE1LjY4MTUgMTguMzkzNyAxNi4zMzEgMTguMzk5N0MxNy44NTU0IDE4LjM5OTcgMTguODUyOCAxNy42NDExIDE4Ljg1ODIgMTYuNDY0OUMxOC44NjE4IDE1LjU3MTkgMTguMTI4IDE1LjE4MzUgMTcuNTQwOSAxNC44NzI4QzE3LjE0NjYgMTQuNjY0MSAxNi44MTg0IDE0LjQ5MDQgMTYuODI0IDE0LjIyMjNDMTYuODI4OSAxNC4wMiAxNy4wMjA0IDEzLjgwNDEgMTcuNDQwMSAxMy43NDkyQzE3LjY0NzcgMTMuNzIxNSAxOC4yMjEyIDEzLjcwMDMgMTguODcxMiAxNC4wMDIxTDE5LjEyNjMgMTIuODAzQzE4Ljc3NjggMTIuNjc0NyAxOC4zMjc0IDEyLjU1MTggMTcuNzY4IDEyLjU1MThDMTYuMzMzMiAxMi41NTE4IDE1LjMyMzkgMTMuMzIwNyAxNS4zMTU4IDE0LjQyMTNaTTIxLjU3OCAxMi42NTUxQzIxLjI5OTcgMTIuNjU1MSAyMS4wNjUgMTIuODE4OCAyMC45NjA0IDEzLjA3TDE4Ljc4MjcgMTguMzExNUgyMC4zMDZMMjAuNjA5MiAxNy40NjdMMjIuNDcwNyAxNy40NjdMMjIuNjQ2NiAxOC4zMTE1SDIzLjk4OTJMMjIuODE3NiAxMi42NTUxSDIxLjU3OFpNMjIuMjMwNyAxNi4zMDcxTDIxLjc5MTEgMTQuMTgzMUwyMS4wMjY3IDE2LjMwNzFIMjIuMjMwN1pNMTMuNDY4OCAxMi42NTUxTDEyLjI2ODEgMTguMzExNUgxMy43MTk3TDE0LjkxOTkgMTIuNjU1MUgxMy40Njg4Wk05LjgxMDQ0IDE2LjUwNTFMMTEuMzIxNCAxMi42NTUxSDEyLjg0NThMMTAuNDkzOSAxOC4zMTE1SDguOTU5NzdMNy44MDIxNiAxMy43OTc2QzcuNzMyMDQgMTMuNTE5NyA3LjY3MTA4IDEzLjQxNzUgNy40NTc0NyAxMy4zMDA2QzcuMTA4NDYgMTMuMTA5MiA2LjUzMjM2IDEyLjkzMDMgNi4wMjUzIDEyLjgxOTNMNi4wNTk4MiAxMi42NTUxSDguNTI5ODVDOC44NDQzMyAxMi42NTUxIDkuMTI3NTMgMTIuODY2MSA5LjE5OTI4IDEzLjIzMTVMOS44MTA0NCAxNi41MDUxWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSI+PC9wYXRoPjxkZWZzPjxsaW5lYXJncmFkaWVudCBpZD0icGFpbnQwX2xpbmVhciIgeDE9IjYuMDU2NjEiIHkxPSIxNC4zNTA0IiB4Mj0iMTEuMTM0MyIgeTI9IjcuMTk5MjciIGdyYWRpZW50dW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjMjIyMzU3Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMjU0QUE1Ij48L3N0b3A+PC9saW5lYXJncmFkaWVudD48L2RlZnM+PC9zdmc+CgoKPHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdib3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTUgMzBDMjMuMjg0MyAzMCAzMCAyMy4yODQzIDMwIDE1QzMwIDYuNzE1NzMgMjMuMjg0MyAwIDE1IDBDNi43MTU3MyAwIDAgNi43MTU3MyAwIDE1QzAgMjMuMjg0MyA2LjcxNTczIDMwIDE1IDMwWiIgZmlsbD0iI2ViZWJlYiI+PC9wYXRoPjxwYXRoIGQ9Ik0yMy45ODY4IDE1LjA3MjNDMjMuOTg2OCAxOC4xNDkxIDIxLjQ5NzMgMjAuNjQzNCAxOC40MjYzIDIwLjY0MzRDMTUuMzU1MiAyMC42NDM0IDEyLjg2NTcgMTguMTQ5MSAxMi44NjU3IDE1LjA3MjNDMTIuODY1NyAxMS45OTU1IDE1LjM1NTIgOS41MDEyMiAxOC40MjYzIDkuNTAxMjJDMjEuNDk3MyA5LjUwMTIyIDIzLjk4NjggMTEuOTk1NSAyMy45ODY4IDE1LjA3MjNWMTUuMDcyM1oiIGZpbGw9IiNGNzlGMUEiPjwvcGF0aD48cGF0aCBkPSJNMTcuMTI3IDE1LjA3MjNDMTcuMTI3IDE4LjE0OTEgMTQuNjM3NSAyMC42NDM0IDExLjU2NjQgMjAuNjQzNEM4LjQ5NTQ0IDIwLjY0MzQgNi4wMDU4OSAxOC4xNDkxIDYuMDA1ODkgMTUuMDcyM0M2LjAwNTg5IDExLjk5NTUgOC40OTU0NCA5LjUwMTIyIDExLjU2NjQgOS41MDEyMkMxNC42Mzc1IDkuNTAxMjIgMTcuMTI3IDExLjk5NTUgMTcuMTI3IDE1LjA3MjNWMTUuMDcyM1oiIGZpbGw9IiNFQTAwMUIiPjwvcGF0aD48cGF0aCBkPSJNMTQuOTk2NCAxMC42ODY2QzEzLjY5ODkgMTEuNzA2NSAxMi44NjYxIDEzLjI5MTQgMTIuODY2MSAxNS4wNzE3QzEyLjg2NjEgMTYuODUyMSAxMy42OTg5IDE4LjQzODEgMTQuOTk2NCAxOS40NThDMTYuMjkzOCAxOC40MzgxIDE3LjEyNjYgMTYuODUyMSAxNy4xMjY2IDE1LjA3MTdDMTcuMTI2NiAxMy4yOTE0IDE2LjI5MzggMTEuNzA2NSAxNC45OTY0IDEwLjY4NjZWMTAuNjg2NloiIGZpbGw9IiNGRjVGMDEiPjwvcGF0aD48L3N2Zz4KCgoKPHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdib3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAxNUMwIDYuNzE1NzMgNi43MTU3MyAwIDE1IDBDMjMuMjg0MyAwIDMwIDYuNzE1NzMgMzAgMTVDMzAgMjMuMjg0MyAyMy4yODQzIDMwIDE1IDMwQzYuNzE1NzMgMzAgMCAyMy4yODQzIDAgMTVaIiBmaWxsPSIjZWJlYmViIj48L3BhdGg+PHBhdGggZD0iTTEyLjYzMyAyMi41NzcxTDEyLjg5NDUgMjAuOTE2MUwxMi4zMTIgMjAuOTAyNkg5LjUzMDQ5TDExLjQ2MzUgOC42NDYwOEMxMS40Njk1IDguNjA5MDggMTEuNDg5IDguNTc0NTggMTEuNTE3NSA4LjU1MDA4QzExLjU0NiA4LjUyNTU4IDExLjU4MjUgOC41MTIwOCAxMS42MjA1IDguNTEyMDhIMTYuMzEwNUMxNy44Njc1IDguNTEyMDggMTguOTQyIDguODM2MDggMTkuNTAzIDkuNDc1NThDMTkuNzY2IDkuNzc1NTggMTkuOTMzNSAxMC4wODkxIDIwLjAxNDUgMTAuNDM0MUMyMC4wOTk1IDEwLjc5NjEgMjAuMTAxIDExLjIyODYgMjAuMDE4IDExLjc1NjFMMjAuMDEyIDExLjc5NDZWMTIuMTMyNkwyMC4yNzUgMTIuMjgxNkMyMC40OTY1IDEyLjM5OTEgMjAuNjcyNSAxMi41MzM2IDIwLjgwNzUgMTIuNjg3NkMyMS4wMzI1IDEyLjk0NDEgMjEuMTc4IDEzLjI3MDEgMjEuMjM5NSAxMy42NTY2QzIxLjMwMyAxNC4wNTQxIDIxLjI4MiAxNC41MjcxIDIxLjE3OCAxNS4wNjI2QzIxLjA1OCAxNS42Nzg2IDIwLjg2NCAxNi4yMTUxIDIwLjYwMiAxNi42NTQxQzIwLjM2MSAxNy4wNTg2IDIwLjA1NCAxNy4zOTQxIDE5LjY4OTUgMTcuNjU0MUMxOS4zNDE1IDE3LjkwMTEgMTguOTI4IDE4LjA4ODYgMTguNDYwNSAxOC4yMDg2QzE4LjAwNzUgMTguMzI2NiAxNy40OTEgMTguMzg2MSAxNi45MjQ1IDE4LjM4NjFIMTYuNTU5NUMxNi4yOTg1IDE4LjM4NjEgMTYuMDQ1IDE4LjQ4MDEgMTUuODQ2IDE4LjY0ODZDMTUuNjQ2NSAxOC44MjA2IDE1LjUxNDUgMTkuMDU1NiAxNS40NzQgMTkuMzEyNkwxNS40NDY1IDE5LjQ2MjFMMTQuOTg0NSAyMi4zODk2TDE0Ljk2MzUgMjIuNDk3MUMxNC45NTggMjIuNTMxMSAxNC45NDg1IDIyLjU0ODEgMTQuOTM0NSAyMi41NTk2QzE0LjkyMiAyMi41NzAxIDE0LjkwNCAyMi41NzcxIDE0Ljg4NjUgMjIuNTc3MUgxMi42MzNWMjIuNTc3MVoiIGZpbGw9IiMyNTNCODAiPjwvcGF0aD48cGF0aCBkPSJNMjAuNTI0IDExLjgzMzVWMTEuODMzNVYxMS44MzM1QzIwLjUxIDExLjkyMyAyMC40OTQgMTIuMDE0NSAyMC40NzYgMTIuMTA4NUMxOS44NTc1IDE1LjI4NCAxNy43NDE1IDE2LjM4MSAxNS4wMzkgMTYuMzgxSDEzLjY2M0MxMy4zMzI1IDE2LjM4MSAxMy4wNTQgMTYuNjIxIDEzLjAwMjUgMTYuOTQ3VjE2Ljk0N1YxNi45NDdMMTIuMjk4IDIxLjQxNUwxMi4wOTg1IDIyLjY4MTVDMTIuMDY1IDIyLjg5NTUgMTIuMjMgMjMuMDg4NSAxMi40NDYgMjMuMDg4NUgxNC44ODY1QzE1LjE3NTUgMjMuMDg4NSAxNS40MjEgMjIuODc4NSAxNS40NjY1IDIyLjU5MzVMMTUuNDkwNSAyMi40Njk1TDE1Ljk1IDE5LjU1MzVMMTUuOTc5NSAxOS4zOTM1QzE2LjAyNDUgMTkuMTA3NSAxNi4yNzA1IDE4Ljg5NzUgMTYuNTU5NSAxOC44OTc1SDE2LjkyNDVDMTkuMjg5IDE4Ljg5NzUgMjEuMTQgMTcuOTM3NSAyMS42ODEgMTUuMTU5NUMyMS45MDcgMTMuOTk5IDIxLjc5IDEzLjAzIDIxLjE5MiAxMi4zNDg1QzIxLjAxMSAxMi4xNDMgMjAuNzg2NSAxMS45NzI1IDIwLjUyNCAxMS44MzM1VjExLjgzMzVaIiBmaWxsPSIjMTc5QkQ3Ij48L3BhdGg+PHBhdGggZD0iTTE5Ljg3NyAxMS41NzU1QzE5Ljc4MjUgMTEuNTQ4IDE5LjY4NSAxMS41MjMgMTkuNTg1IDExLjUwMDVDMTkuNDg0NSAxMS40Nzg1IDE5LjM4MTUgMTEuNDU5IDE5LjI3NTUgMTEuNDQyQzE4LjkwNDUgMTEuMzgyIDE4LjQ5OCAxMS4zNTM1IDE4LjA2MjUgMTEuMzUzNUgxNC4zODY1QzE0LjI5NiAxMS4zNTM1IDE0LjIxIDExLjM3NCAxNC4xMzMgMTEuNDExQzEzLjk2MzUgMTEuNDkyNSAxMy44Mzc1IDExLjY1MyAxMy44MDcgMTEuODQ5NUwxMy4wMjUgMTYuODAyNUwxMy4wMDI1IDE2Ljk0N0MxMy4wNTQgMTYuNjIxIDEzLjMzMjUgMTYuMzgxIDEzLjY2MyAxNi4zODFIMTUuMDM5QzE3Ljc0MTUgMTYuMzgxIDE5Ljg1NzUgMTUuMjgzNSAyMC40NzYgMTIuMTA4NUMyMC40OTQ1IDEyLjAxNDUgMjAuNTEgMTEuOTIzIDIwLjUyNCAxMS44MzM1QzIwLjM2NzUgMTEuNzUwNSAyMC4xOTggMTEuNjc5NSAyMC4wMTU1IDExLjYxOUMxOS45NzA1IDExLjYwNCAxOS45MjQgMTEuNTg5NSAxOS44NzcgMTEuNTc1NVYxMS41NzU1WiIgZmlsbD0iIzIyMkQ2NSI+PC9wYXRoPjxwYXRoIGQ9Ik0xNC4xMzMgMTEuNDExNUMxNC4yMTA1IDExLjM3NDUgMTQuMjk2IDExLjM1NCAxNC4zODY1IDExLjM1NEgxOC4wNjI1QzE4LjQ5OCAxMS4zNTQgMTguOTA0NSAxMS4zODI1IDE5LjI3NTUgMTEuNDQyNUMxOS4zODE1IDExLjQ1OTUgMTkuNDg0NSAxMS40NzkgMTkuNTg1IDExLjUwMUMxOS42ODUgMTEuNTIzNSAxOS43ODI1IDExLjU0ODUgMTkuODc3IDExLjU3NkMxOS45MjQgMTEuNTkgMTkuOTcwNSAxMS42MDQ1IDIwLjAxNiAxMS42MTlDMjAuMTk4NSAxMS42Nzk1IDIwLjM2OCAxMS43NTEgMjAuNTI0NSAxMS44MzM1QzIwLjcwODUgMTAuNjYgMjAuNTIzIDkuODYxIDE5Ljg4ODUgOS4xMzc1QzE5LjE4OSA4LjM0MSAxNy45MjY1IDggMTYuMzExIDhIMTEuNjIxQzExLjI5MSA4IDExLjAwOTUgOC4yNCAxMC45NTg1IDguNTY2NUw5LjAwNDk5IDIwLjk0OUM4Ljk2NjQ5IDIxLjE5NCA5LjE1NTQ5IDIxLjQxNSA5LjQwMjQ5IDIxLjQxNUgxMi4yOThMMTMuMDI1IDE2LjgwMjVMMTMuODA3IDExLjg0OTVDMTMuODM3NSAxMS42NTMgMTMuOTYzNSAxMS40OTI1IDE0LjEzMyAxMS40MTE1WiIgZmlsbD0iIzI1M0I4MCI+PC9wYXRoPjwvc3ZnPgoKPHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdib3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTUgMzBDMjMuMjg0MyAzMCAzMCAyMy4yODQzIDMwIDE1QzMwIDYuNzE1NzMgMjMuMjg0MyAwIDE1IDBDNi43MTU3MyAwIDAgNi43MTU3MyAwIDE1QzAgMjMuMjg0MyA2LjcxNTczIDMwIDE1IDMwWiIgZmlsbD0iI2ViZWJlYiI+PC9wYXRoPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjEuMjM5OCAxMi42NjY0QzIxLjUzMzggMTAuNzAxMiAyMC4wMzc1IDkuNjQ0NjkgMTcuOTkxNSA4LjkzOTkyTDE4LjY1NTIgNi4yNzc3N0wxNy4wMzQ4IDUuODczOTJMMTYuMzg4NiA4LjQ2NTkyQzE1Ljk2MjYgOC4zNTk3NyAxNS41MjUxIDguMjU5NjEgMTUuMDkwMyA4LjE2MDM4TDE1Ljc0MTEgNS41NTEzMUwxNC4xMjE1IDUuMTQ3NDZMMTMuNDU3NCA3LjgwODY5QzEzLjEwNDggNy43MjgzOCAxMi43NTg2IDcuNjQ5IDEyLjQyMjYgNy41NjU0NkwxMi40MjQ1IDcuNTU3MTVMMTAuMTg5NyA2Ljk5OTE1TDkuNzU4NjIgOC43Mjk5MkM5Ljc1ODYyIDguNzI5OTIgMTAuOTYwOSA5LjAwNTQ2IDEwLjkzNTUgOS4wMjI1NEMxMS41OTE4IDkuMTg2MzggMTEuNzEwNSA5LjYyMDY5IDExLjY5MDYgOS45NjVMMTAuOTM0NiAxMi45OTc4QzEwLjk3OTggMTMuMDA5MyAxMS4wMzg1IDEzLjAyNTkgMTEuMTAzMSAxMy4wNTE4TDExLjA0ODIgMTMuMDM4MUMxMS4wMTA2IDEzLjAyODYgMTAuOTcxNiAxMy4wMTg5IDEwLjkzMTggMTMuMDA5M0w5Ljg3MjE2IDE3LjI1NzhDOS43OTE4NSAxNy40NTcyIDkuNTg4MzEgMTcuNzU2MiA5LjEyOTU0IDE3LjY0MjdDOS4xNDU2OSAxNy42NjYyIDcuOTUxNjkgMTcuMzQ4NyA3Ljk1MTY5IDE3LjM0ODdMNy4xNDcyMyAxOS4yMDM2TDkuMjU2IDE5LjcyOTNDOS40OTE0IDE5Ljc4ODMgOS43MjM5OCAxOS44NDg5IDkuOTU0MTMgMTkuOTA5TDkuOTU0NDIgMTkuOTA5TDkuOTU0NjQgMTkuOTA5MUMxMC4xMDc5IDE5Ljk0OTEgMTAuMjYgMTkuOTg4NyAxMC40MTEyIDIwLjAyNzVMOS43NDA2MiAyMi43MjAxTDExLjM1OTIgMjMuMTIzOUwxMi4wMjM0IDIwLjQ1OTlDMTIuNDY1NSAyMC41Nzk5IDEyLjg5NDggMjAuNjkwNyAxMy4zMTQ4IDIwLjc5NUwxMi42NTI5IDIzLjQ0NjVMMTQuMjczNCAyMy44NTA0TDE0Ljk0NCAyMS4xNjI4QzE3LjcwNzIgMjEuNjg1OCAxOS43ODUxIDIxLjQ3NDggMjAuNjU5NyAxOC45NzU2QzIxLjM2NDUgMTYuOTYzMyAyMC42MjQ2IDE1LjgwMjUgMTkuMTcwOCAxNS4wNDU2QzIwLjIyOTUgMTQuODAxNSAyMS4wMjcxIDE0LjEwNSAyMS4yMzk4IDEyLjY2NjRaTTE3LjUzNzQgMTcuODU4M0MxNy4wNzggMTkuNzA0NSAxNC4xODgxIDE4Ljk0MTIgMTIuODY1OSAxOC41OTJDMTIuNzQ2OSAxOC41NjA2IDEyLjY0MDcgMTguNTMyNSAxMi41NSAxOC41MUwxMy40Mzk4IDE0Ljk0MjhDMTMuNTUwMyAxNC45NzAzIDEzLjY4NTIgMTUuMDAwNiAxMy44MzggMTUuMDM0OUMxNS4yMDU1IDE1LjM0MTggMTguMDA4MiAxNS45NzA2IDE3LjUzNzQgMTcuODU4M1pNMTQuMTEyNyAxMy4zNzk0QzE1LjIxNTEgMTMuNjczNiAxNy42MTk4IDE0LjMxNTQgMTguMDM4NiAxMi42Mzc0QzE4LjQ2NjMgMTAuOTIxMSAxNi4xMjkyIDEwLjQwMzcgMTQuOTg3OCAxMC4xNTFDMTQuODU5NSAxMC4xMjI2IDE0Ljc0NjIgMTAuMDk3NSAxNC42NTM3IDEwLjA3NDVMMTMuODQ2OSAxMy4zMDk4QzEzLjkyMzEgMTMuMzI4OCAxNC4wMTI2IDEzLjM1MjcgMTQuMTEyNyAxMy4zNzk0WiIgZmlsbD0iI0Y3OTMxQSI+PC9wYXRoPjwvc3ZnPgogICAgICAgICAgICAgICAgPC9oNj4tLT4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxociBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CjxsaSBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsiPgoKICAgICAgICAgICAgCgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGhyIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij4KCgogICAgICAgICAgICAgIDxsaSBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsiPgogICAgICAgICAgICAgICAgPHNwYW4+Q09NUEFOWTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoNj48YSBzdHlsZT0iY29sb3I6ICNmZmY7IiBocmVmPSI/YT1hYm91dCI+LSBBYm91dCBVczwvYT48L2g2PgogICAgICAgICAgICAgICAgPGg2PjxhIHN0eWxlPSJjb2xvcjogI2ZmZjsiIGhyZWY9Ij9hPWZhcSI+LSBGQVE8L2E+PC9oNj4KICAgICAgICAgICAgICAgIDxoNj48YSBzdHlsZT0iY29sb3I6ICNmZmY7IiBocmVmPSJmYXJvc3NvbiBHbG9iYWwgVHJhZGUgTGltaXRlZCBXaGl0ZSBQYXBlci5wZGYiPi0gRG9jdW1lbnQ8L2E+PC9oNj4gCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAKICAgICAgICAgICAgICAKPGhyIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij4KCjxsaSBzdHlsZT0icGFkZGluZzogMHB4OyAiPgogICAgICAgICAgICAgICAgPHNwYW4+IEJVU0lORVNTIEFERFJFU1M8L3NwYW4+CiAgICAgICAgICAgICAgICA8aDY+IFVuaXQgOS0wMiwgU2Ftc3VuZyBIdWIsIDMgQ2h1cmNoIFN0LCBTaW5nYXBvcmUgMDQ5NDgzPC9zcGFuPiA8L2g2PgoKICAgIDxzcGFuPiBFTUFJTCBBRERSRVNTPC9zcGFuPgogICAgICAgICAgICAgICAgPGg2PnN1cHBvcnRAZmFyb3Nzb25nbG9iYWx0cmFkZS5sdGQgPC9oNj4KICAgICAgICAgICAgICA8L2xpPgoKCgogICAgICAgICAgICAgIAogICAgICAgICAgICAgIDxsaSBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsiPgogICAgICAgICAgICAgICAgPHNwYW4+QUNDT1VOVFM8L3NwYW4+CiAgICAgICAgICAgICAgICA8aDY+PGEgc3R5bGU9ImNvbG9yOiAjZmZmOyIgaHJlZj0iP2E9c2lnbnVwIj4tIENyZWF0ZSBBY2NvdW50PC9hPjwvaDY+CiAgICAgICAgICAgICAgICA8aDY+PGEgc3R5bGU9ImNvbG9yOiAjZmZmOyIgaHJlZj0iP2E9bG9naW4iPi0gU2lnbiBJbjwvYT48L2g2PgogICAgICAgICAgICAgICAgPGg2PjxhIHN0eWxlPSJjb2xvcjogI2ZmZjsiIGhyZWY9Ij9hPWZvcmdvdF9wYXNzd29yZCI+LSBGb3Jnb3QgUGFzc3dvcmQ/PC9hPjwvaDY+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICA8ZGl2IGNsYXNzPSJmb290ZXIiPgogICAgICA8cD5Db3B5cmlnaHQsIMKpIDIwMTEgLSAyMDIzIGZhcm9zc29uR2xvYmFsIFRyYWRlLCBMdGQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPC9wPgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgogIDwhLS0gU2NyaXB0cyAtLT4KICA8IS0tIEJvb3RzdHJhcCBjb3JlIEphdmFTY3JpcHQgLS0+CiAgICA8c2NyaXB0IHNyYz0idmVuZG9yL2pxdWVyeS9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJ2ZW5kb3IvYm9vdHN0cmFwL2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzIj48L3NjcmlwdD4KCiAgICA8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2lzb3RvcGUubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvanMvb3dsLWNhcm91c2VsLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvanMvbGlnaHRib3guanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy90YWJzLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvanMvdmlkZW8uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9zbGljay1zbGlkZXIuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9jdXN0b20uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdD4KICAgICAgICAvL2FjY29yZGluZyB0byBsb2Z0YmxvZyB0dXQKICAgICAgICAkKCcubmF2IGxpOmZpcnN0JykuYWRkQ2xhc3MoJ2FjdGl2ZScpOwoKICAgICAgICB2YXIgc2hvd1NlY3Rpb24gPSBmdW5jdGlvbiBzaG93U2VjdGlvbihzZWN0aW9uLCBpc0FuaW1hdGUpIHsKICAgICAgICAgIHZhcgogICAgICAgICAgZGlyZWN0aW9uID0gc2VjdGlvbi5yZXBsYWNlKC8jLywgJycpLAogICAgICAgICAgcmVxU2VjdGlvbiA9ICQoJy5zZWN0aW9uJykuZmlsdGVyKCdbZGF0YS1zZWN0aW9uPSInICsgZGlyZWN0aW9uICsgJyJdJyksCiAgICAgICAgICByZXFTZWN0aW9uUG9zID0gcmVxU2VjdGlvbi5vZmZzZXQoKS50b3AgLSAwOwoKICAgICAgICAgIGlmIChpc0FuaW1hdGUpIHsKICAgICAgICAgICAgJCgnYm9keSwgaHRtbCcpLmFuaW1hdGUoewogICAgICAgICAgICAgIHNjcm9sbFRvcDogcmVxU2VjdGlvblBvcyB9LAogICAgICAgICAgICA4MDApOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJCgnYm9keSwgaHRtbCcpLnNjcm9sbFRvcChyZXFTZWN0aW9uUG9zKTsKICAgICAgICAgIH0KCiAgICAgICAgfTsKCiAgICAgICAgdmFyIGNoZWNrU2VjdGlvbiA9IGZ1bmN0aW9uIGNoZWNrU2VjdGlvbigpIHsKICAgICAgICAgICQoJy5zZWN0aW9uJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhcgogICAgICAgICAgICAkdGhpcyA9ICQodGhpcyksCiAgICAgICAgICAgIHRvcEVkZ2UgPSAkdGhpcy5vZmZzZXQoKS50b3AgLSA4MCwKICAgICAgICAgICAgYm90dG9tRWRnZSA9IHRvcEVkZ2UgKyAkdGhpcy5oZWlnaHQoKSwKICAgICAgICAgICAgd1Njcm9sbCA9ICQod2luZG93KS5zY3JvbGxUb3AoKTsKICAgICAgICAgICAgaWYgKHRvcEVkZ2UgPCB3U2Nyb2xsICYmIGJvdHRvbUVkZ2UgPiB3U2Nyb2xsKSB7CiAgICAgICAgICAgICAgdmFyCiAgICAgICAgICAgICAgY3VycmVudElkID0gJHRoaXMuZGF0YSgnc2VjdGlvbicpLAogICAgICAgICAgICAgIHJlcUxpbmsgPSAkKCdhJykuZmlsdGVyKCdbaHJlZio9XFwjJyArIGN1cnJlbnRJZCArICddJyk7CiAgICAgICAgICAgICAgcmVxTGluay5jbG9zZXN0KCdsaScpLmFkZENsYXNzKCdhY3RpdmUnKS4KICAgICAgICAgICAgICBzaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgJCgnLm1haW4tbWVudSwgLnJlc3BvbnNpdmUtbWVudSwgLnNjcm9sbC10by1zZWN0aW9uJykub24oJ2NsaWNrJywgJ2EnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgc2hvd1NlY3Rpb24oJCh0aGlzKS5hdHRyKCdocmVmJyksIHRydWUpOwogICAgICAgIH0pOwoKICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGNoZWNrU2VjdGlvbigpOwogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IjFfMTQxXzAvc3RhdGljL2pzL3JlbmRlci4zMjZmZGY1MWE2OWM2MzQ0OGE3NS5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+IAoKICAgICA8c2NyaXB0IHNyYz0iMi8yLjIuMS9pY29uaWZ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZmFrZS5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9yZWNlbnRzLmpzIj48L3NjcmlwdD4KCgoKCjxzY3JpcHQ+CgkgIHZhciBjb3VudF9wYXJ0aWNsZXMsIHN0YXRzLCB1cGRhdGU7CgkgIHN0YXRzID0gbmV3IFN0YXRzOwoJICBzdGF0cy5zZXRNb2RlKDApOwoJICBzdGF0cy5kb21FbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKCSAgc3RhdHMuZG9tRWxlbWVudC5zdHlsZS5sZWZ0ID0gJzBweCc7CgkgIHN0YXRzLmRvbUVsZW1lbnQuc3R5bGUudG9wID0gJzBweCc7CgkgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3RhdHMuZG9tRWxlbWVudCk7CgkgIGNvdW50X3BhcnRpY2xlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy1jb3VudC1wYXJ0aWNsZXMnKTsKCSAgdXBkYXRlID0gZnVuY3Rpb24oKSB7CgkgICAgc3RhdHMuYmVnaW4oKTsKCSAgICBzdGF0cy5lbmQoKTsKCSAgICBpZiAod2luZG93LnBKU0RvbVswXS5wSlMucGFydGljbGVzICYmIHdpbmRvdy5wSlNEb21bMF0ucEpTLnBhcnRpY2xlcy5hcnJheSkgewoJICAgICAgY291bnRfcGFydGljbGVzLmlubmVyVGV4dCA9IHdpbmRvdy5wSlNEb21bMF0ucEpTLnBhcnRpY2xlcy5hcnJheS5sZW5ndGg7CgkgICAgfQoJICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGUpOwoJICB9OwoJICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodXBkYXRlKTsKCTwvc2NyaXB0PgogCgo8L2JvZHk+Cgo8IS0tIFNtYXJ0c3VwcCBMaXZlIENoYXQgc2NyaXB0IC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBfc21hcnRzdXBwID0gX3NtYXJ0c3VwcCB8fCB7fTsKX3NtYXJ0c3VwcC5rZXkgPSAnN2IzMGJlNTVhYzI4OTJmZTFkOGJmN2U2NjQ1OGFlN2YzMTllNjIyNSc7CndpbmRvdy5zbWFydHN1cHB8fChmdW5jdGlvbihkKSB7CiAgdmFyIHMsYyxvPXNtYXJ0c3VwcD1mdW5jdGlvbigpeyBvLl8ucHVzaChhcmd1bWVudHMpfTtvLl89W107CiAgcz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTtjPWQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgYy50eXBlPSd0ZXh0L2phdmFzY3JpcHQnO2MuY2hhcnNldD0ndXRmLTgnO2MuYXN5bmM9dHJ1ZTsKICBjLnNyYz0naHR0cHM6Ly93d3cuc21hcnRzdXBwY2hhdC5jb20vbG9hZGVyLmpzPyc7cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLHMpOwp9KShkb2N1bWVudCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+IFBvd2VyZWQgYnkgPGEgaHJlZj3igJxodHRwczovL3d3dy5zbWFydHN1cHAuY29t4oCdIHRhcmdldD3igJxfYmxhbmvigJ0+U21hcnRzdXBwPC9hPjwvbm9zY3JpcHQ+CjwvaHRtbD4="}},"time_used":470,"timings":{"blocked":-1,"dns":105,"connect":18,"send":0,"wait":323,"receive":0,"ssl":23},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/css/owl.css","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.045Z","timestamp":1785132838045,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/css/owl.css HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 03 Jan 2022 23:40:18 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 1244\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":4928,"size_decoded":1553,"mime_type":"text/css","magic":"ASCII text, with CRLF line terminators","md5":"ab8d33d83f5dafcaa8d387dc9f6f034a","sha1":"c6217b7bf5dcd693ef31d9aa83a3f2a9b263ca03","sha256":"f057d363c057ac93105ea8b114e0f1fcd9c316e9b945269d3a0b48dafa312369","sha512":"df37a873159cc3560c9ccdf7f2e2836930d3869addd078693aae687f0efc5d893b6003c18ce52067b081418ff0e86b7258ff8490e3c01cffc3bfb591b0e418af","ssdeep":"96:3QZSmmP+nX2an6jRAe2eq12JJUu8SK1ArzTLyi3FdpyZ5JFasJoxVt6T:iSmi+nX2NRpI2zqSK1ArzTGi30aseuT","tlshash":"b9a1eef22115110e283a93f0db9e9a1afd7d8463c8061058b6fb93094bade9c511ff6f","first_seen":"2023-04-07T13:28:52Z","last_seen":"2026-07-27T06:14:42.662979Z","times_seen":281,"resource_available":false,"data":"LyoqDQogKiBPd2wgQ2Fyb3VzZWwgdjIuMy40DQogKiBDb3B5cmlnaHQgMjAxMy0yMDE4IERhdmlkIERldXRzY2gNCiAqIExpY2Vuc2VkIHVuZGVyOiBTRUUgTElDRU5TRSBJTiBodHRwczovL2dpdGh1Yi5jb20vT3dsQ2Fyb3VzZWwyL093bENhcm91c2VsMi9ibG9iL21hc3Rlci9MSUNFTlNFDQogKi8NCi8qDQogKiAgT3dsIENhcm91c2VsIC0gQ29yZQ0KICovDQoub3dsLWNhcm91c2VsIHsNCiAgZGlzcGxheTogbm9uZTsNCiAgd2lkdGg6IDEwMCU7DQogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIC8qIHBvc2l0aW9uIHJlbGF0aXZlIGFuZCB6LWluZGV4IGZpeCB3ZWJraXQgcmVuZGVyaW5nIGZvbnRzIGlzc3VlICovDQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgei1pbmRleDogMTsgfQ0KICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Ugew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4tWTsNCiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsNCiAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAvKiBmaXggZmlyZWZveCBhbmltYXRpb24gZ2xpdGNoICovIH0NCiAgLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlOmFmdGVyIHsNCiAgICBjb250ZW50OiAiLiI7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgY2xlYXI6IGJvdGg7DQogICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIGxpbmUtaGVpZ2h0OiAwOw0KICAgIGhlaWdodDogMDsgfQ0KICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIgew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqLw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTsgfQ0KICAub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlciwNCiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gew0KICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfQ0KICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIG1pbi1oZWlnaHQ6IDFweDsNCiAgICBmbG9hdDogbGVmdDsNCiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfQ0KICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIHdpZHRoOiAxMDAlOyB9DQogIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYuZGlzYWJsZWQsDQogIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3RzLmRpc2FibGVkIHsNCiAgICBkaXNwbGF5OiBub25lOyB9DQogIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1wcmV2LA0KICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dCwNCiAgLm93bC1jYXJvdXNlbCAub3dsLWRvdCB7DQogICAgY3Vyc29yOiBwb2ludGVyOw0KICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lOw0KICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgLW1zLXVzZXItc2VsZWN0OiBub25lOw0KICAgIHVzZXItc2VsZWN0OiBub25lOyB9DQogIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgYnV0dG9uLm93bC1wcmV2LA0KICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCwNCiAgLm93bC1jYXJvdXNlbCBidXR0b24ub3dsLWRvdCB7DQogICAgYmFja2dyb3VuZDogbm9uZTsNCiAgICBjb2xvcjogaW5oZXJpdDsNCiAgICBib3JkZXI6IG5vbmU7DQogICAgcGFkZGluZzogMCAhaW1wb3J0YW50Ow0KICAgIGZvbnQ6IGluaGVyaXQ7IH0NCiAgLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHsNCiAgICBkaXNwbGF5OiBibG9jazsgfQ0KICAub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIGRpc3BsYXk6IGJsb2NrOyB9DQogIC5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7DQogICAgb3BhY2l0eTogMDsgfQ0KICAub3dsLWNhcm91c2VsLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7DQogICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9DQogIC5vd2wtY2Fyb3VzZWwub3dsLWRyYWcgLm93bC1pdGVtIHsNCiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTsNCiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTsNCiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOw0KICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgLW1zLXVzZXItc2VsZWN0OiBub25lOw0KICAgIHVzZXItc2VsZWN0OiBub25lOyB9DQogIC5vd2wtY2Fyb3VzZWwub3dsLWdyYWIgew0KICAgIGN1cnNvcjogbW92ZTsNCiAgICBjdXJzb3I6IGdyYWI7IH0NCiAgLm93bC1jYXJvdXNlbC5vd2wtcnRsIHsNCiAgICBkaXJlY3Rpb246IHJ0bDsgfQ0KICAub3dsLWNhcm91c2VsLm93bC1ydGwgLm93bC1pdGVtIHsNCiAgICBmbG9hdDogcmlnaHQ7IH0NCg0KLyogTm8gSnMgKi8NCi5uby1qcyAub3dsLWNhcm91c2VsIHsNCiAgZGlzcGxheTogYmxvY2s7IH0NCg0KLyoNCiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpbg0KICovDQoub3dsLWNhcm91c2VsIC5hbmltYXRlZCB7DQogIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zOw0KICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9DQoNCi5vd2wtY2Fyb3VzZWwgLm93bC1hbmltYXRlZC1pbiB7DQogIHotaW5kZXg6IDA7IH0NCg0KLm93bC1jYXJvdXNlbCAub3dsLWFuaW1hdGVkLW91dCB7DQogIHotaW5kZXg6IDE7IH0NCg0KLm93bC1jYXJvdXNlbCAuZmFkZU91dCB7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0OyB9DQoNCkBrZXlmcmFtZXMgZmFkZU91dCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAxOyB9DQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7IH0gfQ0KDQovKg0KICogCU93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpbg0KICovDQoub3dsLWhlaWdodCB7DQogIHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDsgfQ0KDQovKg0KICogCU93bCBDYXJvdXNlbCAtIExhenkgTG9hZCBQbHVnaW4NCiAqLw0KLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gew0KICAvKioNCgkJCVRoaXMgaXMgaW50cm9kdWNlZCBkdWUgdG8gYSBidWcgaW4gSUUxMSB3aGVyZSBsYXp5IGxvYWRpbmcgY29tYmluZWQgd2l0aCBhdXRvaGVpZ2h0IHBsdWdpbiBjYXVzZXMgYSB3cm9uZw0KCQkJY2FsY3VsYXRpb24gb2YgdGhlIGhlaWdodCBvZiB0aGUgb3dsLWl0ZW0gdGhhdCBicmVha3MgcGFnZSBsYXlvdXRzDQoJCSAqLyB9DQogIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5vd2wtbGF6eSB7DQogICAgb3BhY2l0eTogMDsNCiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7IH0NCiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5W3NyY149IiJdLCAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenk6bm90KFtzcmNdKSB7DQogICAgbWF4LWhlaWdodDogMDsgfQ0KICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcub3dsLWxhenkgew0KICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7IH0NCg0KLyoNCiAqIAlPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW4NCiAqLw0KLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGhlaWdodDogMTAwJTsNCiAgYmFja2dyb3VuZDogIzAwMDsgfQ0KDQoub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBoZWlnaHQ6IDgwcHg7DQogIHdpZHRoOiA4MHB4Ow0KICBsZWZ0OiA1MCU7DQogIHRvcDogNTAlOw0KICBtYXJnaW4tbGVmdDogLTQwcHg7DQogIG1hcmdpbi10b3A6IC00MHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIm93bC52aWRlby5wbGF5LnBuZyIpIG5vLXJlcGVhdDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB6LWluZGV4OiAxOw0KICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsNCiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2U7IH0NCg0KLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXktaWNvbjpob3ZlciB7DQogIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMywgMS4zKTsNCiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpOyB9DQoNCi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tdG4sDQoub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXBsYXktaWNvbiB7DQogIGRpc3BsYXk6IG5vbmU7IH0NCg0KLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXRuIHsNCiAgb3BhY2l0eTogMDsNCiAgaGVpZ2h0OiAxMDAlOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47DQogIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTsgfQ0KDQoub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tZnJhbWUgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIHotaW5kZXg6IDE7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDEwMCU7IH0="}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/tabs.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.346Z","timestamp":1785132838346,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/js/tabs.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 03 Jan 2022 23:41:00 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 112171\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":485937,"size_decoded":112410,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (547), with CRLF line terminators","md5":"656f554e6ade3508dba8e3dc00638e59","sha1":"1f82aafd53d5a63096ab97bccf19a2ef85f5361b","sha256":"d112fb312cf5c654ec6b1b2e2a4b716c73588053128290d406ad02c36cb0dbd6","sha512":"e3b05ba94adc324ef75449663314be1d2a819f49041932fd584437e604ae194115072df5f1320553b54ccaf953511d18c3f43b9e6cd70201c0fd3562bd09fcbf","ssdeep":"6144:gAA+ruQfLwxjnDnn5ZOlhgpdgkCb8wsucT0uuEiuGdTieCt5t5Ql8KystWLyRimW:HbpsucT0O5t568KcIrJXA828cpV","tlshash":"7ea4b8d5734f266f8aea3359583a9189ea3dc0b5d202407d789d58dc24a8c1843bbffd","first_seen":"2023-03-07T18:52:09Z","last_seen":"2026-07-27T06:14:42.664422Z","times_seen":230,"resource_available":true,"data":"LyohIGpRdWVyeSBVSSAtIHYxLjExLjIgLSAyMDE0LTEwLTE2DQoqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiogSW5jbHVkZXM6IGNvcmUuanMsIHdpZGdldC5qcywgbW91c2UuanMsIHBvc2l0aW9uLmpzLCBhY2NvcmRpb24uanMsIGF1dG9jb21wbGV0ZS5qcywgYnV0dG9uLmpzLCBkYXRlcGlja2VyLmpzLCBkaWFsb2cuanMsIGRyYWdnYWJsZS5qcywgZHJvcHBhYmxlLmpzLCBlZmZlY3QuanMsIGVmZmVjdC1ibGluZC5qcywgZWZmZWN0LWJvdW5jZS5qcywgZWZmZWN0LWNsaXAuanMsIGVmZmVjdC1kcm9wLmpzLCBlZmZlY3QtZXhwbG9kZS5qcywgZWZmZWN0LWZhZGUuanMsIGVmZmVjdC1mb2xkLmpzLCBlZmZlY3QtaGlnaGxpZ2h0LmpzLCBlZmZlY3QtcHVmZi5qcywgZWZmZWN0LXB1bHNhdGUuanMsIGVmZmVjdC1zY2FsZS5qcywgZWZmZWN0LXNoYWtlLmpzLCBlZmZlY3Qtc2l6ZS5qcywgZWZmZWN0LXNsaWRlLmpzLCBlZmZlY3QtdHJhbnNmZXIuanMsIG1lbnUuanMsIHByb2dyZXNzYmFyLmpzLCByZXNpemFibGUuanMsIHNlbGVjdGFibGUuanMsIHNlbGVjdG1lbnUuanMsIHNsaWRlci5qcywgc29ydGFibGUuanMsIHNwaW5uZXIuanMsIHRhYnMuanMsIHRvb2x0aXAuanMNCiogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yczsgTGljZW5zZWQgTUlUICovDQoNCihmdW5jdGlvbiggZmFjdG9yeSApIHsNCglpZiAoIHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCApIHsNCg0KCQkvLyBBTUQuIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBtb2R1bGUuDQoJCWRlZmluZShbICJqcXVlcnkiIF0sIGZhY3RvcnkgKTsNCgl9IGVsc2Ugew0KDQoJCS8vIEJyb3dzZXIgZ2xvYmFscw0KCQlmYWN0b3J5KCBqUXVlcnkgKTsNCgl9DQp9KGZ1bmN0aW9uKCAkICkgew0KLyohDQogKiBqUXVlcnkgVUkgQ29yZSAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vY2F0ZWdvcnkvdWktY29yZS8NCiAqLw0KDQoNCi8vICQudWkgbWlnaHQgZXhpc3QgZnJvbSBjb21wb25lbnRzIHdpdGggbm8gZGVwZW5kZW5jaWVzLCBlLmcuLCAkLnVpLnBvc2l0aW9uDQokLnVpID0gJC51aSB8fCB7fTsNCg0KJC5leHRlbmQoICQudWksIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCg0KCWtleUNvZGU6IHsNCgkJQkFDS1NQQUNFOiA4LA0KCQlDT01NQTogMTg4LA0KCQlERUxFVEU6IDQ2LA0KCQlET1dOOiA0MCwNCgkJRU5EOiAzNSwNCgkJRU5URVI6IDEzLA0KCQlFU0NBUEU6IDI3LA0KCQlIT01FOiAzNiwNCgkJTEVGVDogMzcsDQoJCVBBR0VfRE9XTjogMzQsDQoJCVBBR0VfVVA6IDMzLA0KCQlQRVJJT0Q6IDE5MCwNCgkJUklHSFQ6IDM5LA0KCQlTUEFDRTogMzIsDQoJCVRBQjogOSwNCgkJVVA6IDM4DQoJfQ0KfSk7DQoNCi8vIHBsdWdpbnMNCiQuZm4uZXh0ZW5kKHsNCglzY3JvbGxQYXJlbnQ6IGZ1bmN0aW9uKCBpbmNsdWRlSGlkZGVuICkgew0KCQl2YXIgcG9zaXRpb24gPSB0aGlzLmNzcyggInBvc2l0aW9uIiApLA0KCQkJZXhjbHVkZVN0YXRpY1BhcmVudCA9IHBvc2l0aW9uID09PSAiYWJzb2x1dGUiLA0KCQkJb3ZlcmZsb3dSZWdleCA9IGluY2x1ZGVIaWRkZW4gPyAvKGF1dG98c2Nyb2xsfGhpZGRlbikvIDogLyhhdXRvfHNjcm9sbCkvLA0KCQkJc2Nyb2xsUGFyZW50ID0gdGhpcy5wYXJlbnRzKCkuZmlsdGVyKCBmdW5jdGlvbigpIHsNCgkJCQl2YXIgcGFyZW50ID0gJCggdGhpcyApOw0KCQkJCWlmICggZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBwYXJlbnQuY3NzKCAicG9zaXRpb24iICkgPT09ICJzdGF0aWMiICkgew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJCXJldHVybiBvdmVyZmxvd1JlZ2V4LnRlc3QoIHBhcmVudC5jc3MoICJvdmVyZmxvdyIgKSArIHBhcmVudC5jc3MoICJvdmVyZmxvdy15IiApICsgcGFyZW50LmNzcyggIm92ZXJmbG93LXgiICkgKTsNCgkJCX0pLmVxKCAwICk7DQoNCgkJcmV0dXJuIHBvc2l0aW9uID09PSAiZml4ZWQiIHx8ICFzY3JvbGxQYXJlbnQubGVuZ3RoID8gJCggdGhpc1sgMCBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQgKSA6IHNjcm9sbFBhcmVudDsNCgl9LA0KDQoJdW5pcXVlSWQ6IChmdW5jdGlvbigpIHsNCgkJdmFyIHV1aWQgPSAwOw0KDQoJCXJldHVybiBmdW5jdGlvbigpIHsNCgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCAhdGhpcy5pZCApIHsNCgkJCQkJdGhpcy5pZCA9ICJ1aS1pZC0iICsgKCArK3V1aWQgKTsNCgkJCQl9DQoJCQl9KTsNCgkJfTsNCgl9KSgpLA0KDQoJcmVtb3ZlVW5pcXVlSWQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJaWYgKCAvXnVpLWlkLVxkKyQvLnRlc3QoIHRoaXMuaWQgKSApIHsNCgkJCQkkKCB0aGlzICkucmVtb3ZlQXR0ciggImlkIiApOw0KCQkJfQ0KCQl9KTsNCgl9DQp9KTsNCg0KLy8gc2VsZWN0b3JzDQpmdW5jdGlvbiBmb2N1c2FibGUoIGVsZW1lbnQsIGlzVGFiSW5kZXhOb3ROYU4gKSB7DQoJdmFyIG1hcCwgbWFwTmFtZSwgaW1nLA0KCQlub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsNCglpZiAoICJhcmVhIiA9PT0gbm9kZU5hbWUgKSB7DQoJCW1hcCA9IGVsZW1lbnQucGFyZW50Tm9kZTsNCgkJbWFwTmFtZSA9IG1hcC5uYW1lOw0KCQlpZiAoICFlbGVtZW50LmhyZWYgfHwgIW1hcE5hbWUgfHwgbWFwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJtYXAiICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCWltZyA9ICQoICJpbWdbdXNlbWFwPScjIiArIG1hcE5hbWUgKyAiJ10iIClbIDAgXTsNCgkJcmV0dXJuICEhaW1nICYmIHZpc2libGUoIGltZyApOw0KCX0NCglyZXR1cm4gKCAvaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbnxvYmplY3QvLnRlc3QoIG5vZGVOYW1lICkgPw0KCQkhZWxlbWVudC5kaXNhYmxlZCA6DQoJCSJhIiA9PT0gbm9kZU5hbWUgPw0KCQkJZWxlbWVudC5ocmVmIHx8IGlzVGFiSW5kZXhOb3ROYU4gOg0KCQkJaXNUYWJJbmRleE5vdE5hTikgJiYNCgkJLy8gdGhlIGVsZW1lbnQgYW5kIGFsbCBvZiBpdHMgYW5jZXN0b3JzIG11c3QgYmUgdmlzaWJsZQ0KCQl2aXNpYmxlKCBlbGVtZW50ICk7DQp9DQoNCmZ1bmN0aW9uIHZpc2libGUoIGVsZW1lbnQgKSB7DQoJcmV0dXJuICQuZXhwci5maWx0ZXJzLnZpc2libGUoIGVsZW1lbnQgKSAmJg0KCQkhJCggZWxlbWVudCApLnBhcmVudHMoKS5hZGRCYWNrKCkuZmlsdGVyKGZ1bmN0aW9uKCkgew0KCQkJcmV0dXJuICQuY3NzKCB0aGlzLCAidmlzaWJpbGl0eSIgKSA9PT0gImhpZGRlbiI7DQoJCX0pLmxlbmd0aDsNCn0NCg0KJC5leHRlbmQoICQuZXhwclsgIjoiIF0sIHsNCglkYXRhOiAkLmV4cHIuY3JlYXRlUHNldWRvID8NCgkJJC5leHByLmNyZWF0ZVBzZXVkbyhmdW5jdGlvbiggZGF0YU5hbWUgKSB7DQoJCQlyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7DQoJCQkJcmV0dXJuICEhJC5kYXRhKCBlbGVtLCBkYXRhTmFtZSApOw0KCQkJfTsNCgkJfSkgOg0KCQkvLyBzdXBwb3J0OiBqUXVlcnkgPDEuOA0KCQlmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2ggKSB7DQoJCQlyZXR1cm4gISEkLmRhdGEoIGVsZW0sIG1hdGNoWyAzIF0gKTsNCgkJfSwNCg0KCWZvY3VzYWJsZTogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXJldHVybiBmb2N1c2FibGUoIGVsZW1lbnQsICFpc05hTiggJC5hdHRyKCBlbGVtZW50LCAidGFiaW5kZXgiICkgKSApOw0KCX0sDQoNCgl0YWJiYWJsZTogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXZhciB0YWJJbmRleCA9ICQuYXR0ciggZWxlbWVudCwgInRhYmluZGV4IiApLA0KCQkJaXNUYWJJbmRleE5hTiA9IGlzTmFOKCB0YWJJbmRleCApOw0KCQlyZXR1cm4gKCBpc1RhYkluZGV4TmFOIHx8IHRhYkluZGV4ID49IDAgKSAmJiBmb2N1c2FibGUoIGVsZW1lbnQsICFpc1RhYkluZGV4TmFOICk7DQoJfQ0KfSk7DQoNCi8vIHN1cHBvcnQ6IGpRdWVyeSA8MS44DQppZiAoICEkKCAiPGE+IiApLm91dGVyV2lkdGgoIDEgKS5qcXVlcnkgKSB7DQoJJC5lYWNoKCBbICJXaWR0aCIsICJIZWlnaHQiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgew0KCQl2YXIgc2lkZSA9IG5hbWUgPT09ICJXaWR0aCIgPyBbICJMZWZ0IiwgIlJpZ2h0IiBdIDogWyAiVG9wIiwgIkJvdHRvbSIgXSwNCgkJCXR5cGUgPSBuYW1lLnRvTG93ZXJDYXNlKCksDQoJCQlvcmlnID0gew0KCQkJCWlubmVyV2lkdGg6ICQuZm4uaW5uZXJXaWR0aCwNCgkJCQlpbm5lckhlaWdodDogJC5mbi5pbm5lckhlaWdodCwNCgkJCQlvdXRlcldpZHRoOiAkLmZuLm91dGVyV2lkdGgsDQoJCQkJb3V0ZXJIZWlnaHQ6ICQuZm4ub3V0ZXJIZWlnaHQNCgkJCX07DQoNCgkJZnVuY3Rpb24gcmVkdWNlKCBlbGVtLCBzaXplLCBib3JkZXIsIG1hcmdpbiApIHsNCgkJCSQuZWFjaCggc2lkZSwgZnVuY3Rpb24oKSB7DQoJCQkJc2l6ZSAtPSBwYXJzZUZsb2F0KCAkLmNzcyggZWxlbSwgInBhZGRpbmciICsgdGhpcyApICkgfHwgMDsNCgkJCQlpZiAoIGJvcmRlciApIHsNCgkJCQkJc2l6ZSAtPSBwYXJzZUZsb2F0KCAkLmNzcyggZWxlbSwgImJvcmRlciIgKyB0aGlzICsgIldpZHRoIiApICkgfHwgMDsNCgkJCQl9DQoJCQkJaWYgKCBtYXJnaW4gKSB7DQoJCQkJCXNpemUgLT0gcGFyc2VGbG9hdCggJC5jc3MoIGVsZW0sICJtYXJnaW4iICsgdGhpcyApICkgfHwgMDsNCgkJCQl9DQoJCQl9KTsNCgkJCXJldHVybiBzaXplOw0KCQl9DQoNCgkJJC5mblsgImlubmVyIiArIG5hbWUgXSA9IGZ1bmN0aW9uKCBzaXplICkgew0KCQkJaWYgKCBzaXplID09PSB1bmRlZmluZWQgKSB7DQoJCQkJcmV0dXJuIG9yaWdbICJpbm5lciIgKyBuYW1lIF0uY2FsbCggdGhpcyApOw0KCQkJfQ0KDQoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCSQoIHRoaXMgKS5jc3MoIHR5cGUsIHJlZHVjZSggdGhpcywgc2l6ZSApICsgInB4IiApOw0KCQkJfSk7DQoJCX07DQoNCgkJJC5mblsgIm91dGVyIiArIG5hbWVdID0gZnVuY3Rpb24oIHNpemUsIG1hcmdpbiApIHsNCgkJCWlmICggdHlwZW9mIHNpemUgIT09ICJudW1iZXIiICkgew0KCQkJCXJldHVybiBvcmlnWyAib3V0ZXIiICsgbmFtZSBdLmNhbGwoIHRoaXMsIHNpemUgKTsNCgkJCX0NCg0KCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQkkKCB0aGlzKS5jc3MoIHR5cGUsIHJlZHVjZSggdGhpcywgc2l6ZSwgdHJ1ZSwgbWFyZ2luICkgKyAicHgiICk7DQoJCQl9KTsNCgkJfTsNCgl9KTsNCn0NCg0KLy8gc3VwcG9ydDogalF1ZXJ5IDwxLjgNCmlmICggISQuZm4uYWRkQmFjayApIHsNCgkkLmZuLmFkZEJhY2sgPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7DQoJCXJldHVybiB0aGlzLmFkZCggc2VsZWN0b3IgPT0gbnVsbCA/DQoJCQl0aGlzLnByZXZPYmplY3QgOiB0aGlzLnByZXZPYmplY3QuZmlsdGVyKCBzZWxlY3RvciApDQoJCSk7DQoJfTsNCn0NCg0KLy8gc3VwcG9ydDogalF1ZXJ5IDEuNi4xLCAxLjYuMiAoaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvOTQxMykNCmlmICggJCggIjxhPiIgKS5kYXRhKCAiYS1iIiwgImEiICkucmVtb3ZlRGF0YSggImEtYiIgKS5kYXRhKCAiYS1iIiApICkgew0KCSQuZm4ucmVtb3ZlRGF0YSA9IChmdW5jdGlvbiggcmVtb3ZlRGF0YSApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBrZXkgKSB7DQoJCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQkJcmV0dXJuIHJlbW92ZURhdGEuY2FsbCggdGhpcywgJC5jYW1lbENhc2UoIGtleSApICk7DQoJCQl9IGVsc2Ugew0KCQkJCXJldHVybiByZW1vdmVEYXRhLmNhbGwoIHRoaXMgKTsNCgkJCX0NCgkJfTsNCgl9KSggJC5mbi5yZW1vdmVEYXRhICk7DQp9DQoNCi8vIGRlcHJlY2F0ZWQNCiQudWkuaWUgPSAhIS9tc2llIFtcdy5dKy8uZXhlYyggbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpICk7DQoNCiQuZm4uZXh0ZW5kKHsNCglmb2N1czogKGZ1bmN0aW9uKCBvcmlnICkgew0KCQlyZXR1cm4gZnVuY3Rpb24oIGRlbGF5LCBmbiApIHsNCgkJCXJldHVybiB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8NCgkJCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJCXZhciBlbGVtID0gdGhpczsNCgkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCQkJCSQoIGVsZW0gKS5mb2N1cygpOw0KCQkJCQkJaWYgKCBmbiApIHsNCgkJCQkJCQlmbi5jYWxsKCBlbGVtICk7DQoJCQkJCQl9DQoJCQkJCX0sIGRlbGF5ICk7DQoJCQkJfSkgOg0KCQkJCW9yaWcuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQl9Ow0KCX0pKCAkLmZuLmZvY3VzICksDQoNCglkaXNhYmxlU2VsZWN0aW9uOiAoZnVuY3Rpb24oKSB7DQoJCXZhciBldmVudFR5cGUgPSAib25zZWxlY3RzdGFydCIgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImRpdiIgKSA/DQoJCQkic2VsZWN0c3RhcnQiIDoNCgkJCSJtb3VzZWRvd24iOw0KDQoJCXJldHVybiBmdW5jdGlvbigpIHsNCgkJCXJldHVybiB0aGlzLmJpbmQoIGV2ZW50VHlwZSArICIudWktZGlzYWJsZVNlbGVjdGlvbiIsIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJfSk7DQoJCX07DQoJfSkoKSwNCg0KCWVuYWJsZVNlbGVjdGlvbjogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLnVuYmluZCggIi51aS1kaXNhYmxlU2VsZWN0aW9uIiApOw0KCX0sDQoNCgl6SW5kZXg6IGZ1bmN0aW9uKCB6SW5kZXggKSB7DQoJCWlmICggekluZGV4ICE9PSB1bmRlZmluZWQgKSB7DQoJCQlyZXR1cm4gdGhpcy5jc3MoICJ6SW5kZXgiLCB6SW5kZXggKTsNCgkJfQ0KDQoJCWlmICggdGhpcy5sZW5ndGggKSB7DQoJCQl2YXIgZWxlbSA9ICQoIHRoaXNbIDAgXSApLCBwb3NpdGlvbiwgdmFsdWU7DQoJCQl3aGlsZSAoIGVsZW0ubGVuZ3RoICYmIGVsZW1bIDAgXSAhPT0gZG9jdW1lbnQgKSB7DQoJCQkJLy8gSWdub3JlIHotaW5kZXggaWYgcG9zaXRpb24gaXMgc2V0IHRvIGEgdmFsdWUgd2hlcmUgei1pbmRleCBpcyBpZ25vcmVkIGJ5IHRoZSBicm93c2VyDQoJCQkJLy8gVGhpcyBtYWtlcyBiZWhhdmlvciBvZiB0aGlzIGZ1bmN0aW9uIGNvbnNpc3RlbnQgYWNyb3NzIGJyb3dzZXJzDQoJCQkJLy8gV2ViS2l0IGFsd2F5cyByZXR1cm5zIGF1dG8gaWYgdGhlIGVsZW1lbnQgaXMgcG9zaXRpb25lZA0KCQkJCXBvc2l0aW9uID0gZWxlbS5jc3MoICJwb3NpdGlvbiIgKTsNCgkJCQlpZiAoIHBvc2l0aW9uID09PSAiYWJzb2x1dGUiIHx8IHBvc2l0aW9uID09PSAicmVsYXRpdmUiIHx8IHBvc2l0aW9uID09PSAiZml4ZWQiICkgew0KCQkJCQkvLyBJRSByZXR1cm5zIDAgd2hlbiB6SW5kZXggaXMgbm90IHNwZWNpZmllZA0KCQkJCQkvLyBvdGhlciBicm93c2VycyByZXR1cm4gYSBzdHJpbmcNCgkJCQkJLy8gd2UgaWdub3JlIHRoZSBjYXNlIG9mIG5lc3RlZCBlbGVtZW50cyB3aXRoIGFuIGV4cGxpY2l0IHZhbHVlIG9mIDANCgkJCQkJLy8gPGRpdiBzdHlsZT0iei1pbmRleDogLTEwOyI+PGRpdiBzdHlsZT0iei1pbmRleDogMDsiPjwvZGl2PjwvZGl2Pg0KCQkJCQl2YWx1ZSA9IHBhcnNlSW50KCBlbGVtLmNzcyggInpJbmRleCIgKSwgMTAgKTsNCgkJCQkJaWYgKCAhaXNOYU4oIHZhbHVlICkgJiYgdmFsdWUgIT09IDAgKSB7DQoJCQkJCQlyZXR1cm4gdmFsdWU7DQoJCQkJCX0NCgkJCQl9DQoJCQkJZWxlbSA9IGVsZW0ucGFyZW50KCk7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gMDsNCgl9DQp9KTsNCg0KLy8gJC51aS5wbHVnaW4gaXMgZGVwcmVjYXRlZC4gVXNlICQud2lkZ2V0KCkgZXh0ZW5zaW9ucyBpbnN0ZWFkLg0KJC51aS5wbHVnaW4gPSB7DQoJYWRkOiBmdW5jdGlvbiggbW9kdWxlLCBvcHRpb24sIHNldCApIHsNCgkJdmFyIGksDQoJCQlwcm90byA9ICQudWlbIG1vZHVsZSBdLnByb3RvdHlwZTsNCgkJZm9yICggaSBpbiBzZXQgKSB7DQoJCQlwcm90by5wbHVnaW5zWyBpIF0gPSBwcm90by5wbHVnaW5zWyBpIF0gfHwgW107DQoJCQlwcm90by5wbHVnaW5zWyBpIF0ucHVzaCggWyBvcHRpb24sIHNldFsgaSBdIF0gKTsNCgkJfQ0KCX0sDQoJY2FsbDogZnVuY3Rpb24oIGluc3RhbmNlLCBuYW1lLCBhcmdzLCBhbGxvd0Rpc2Nvbm5lY3RlZCApIHsNCgkJdmFyIGksDQoJCQlzZXQgPSBpbnN0YW5jZS5wbHVnaW5zWyBuYW1lIF07DQoNCgkJaWYgKCAhc2V0ICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCAhYWxsb3dEaXNjb25uZWN0ZWQgJiYgKCAhaW5zdGFuY2UuZWxlbWVudFsgMCBdLnBhcmVudE5vZGUgfHwgaW5zdGFuY2UuZWxlbWVudFsgMCBdLnBhcmVudE5vZGUubm9kZVR5cGUgPT09IDExICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlmb3IgKCBpID0gMDsgaSA8IHNldC5sZW5ndGg7IGkrKyApIHsNCgkJCWlmICggaW5zdGFuY2Uub3B0aW9uc1sgc2V0WyBpIF1bIDAgXSBdICkgew0KCQkJCXNldFsgaSBdWyAxIF0uYXBwbHkoIGluc3RhbmNlLmVsZW1lbnQsIGFyZ3MgKTsNCgkJCX0NCgkJfQ0KCX0NCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgV2lkZ2V0IDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9qUXVlcnkud2lkZ2V0Lw0KICovDQoNCg0KdmFyIHdpZGdldF91dWlkID0gMCwNCgl3aWRnZXRfc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7DQoNCiQuY2xlYW5EYXRhID0gKGZ1bmN0aW9uKCBvcmlnICkgew0KCXJldHVybiBmdW5jdGlvbiggZWxlbXMgKSB7DQoJCXZhciBldmVudHMsIGVsZW0sIGk7DQoJCWZvciAoIGkgPSAwOyAoZWxlbSA9IGVsZW1zW2ldKSAhPSBudWxsOyBpKysgKSB7DQoJCQl0cnkgew0KDQoJCQkJLy8gT25seSB0cmlnZ2VyIHJlbW92ZSB3aGVuIG5lY2Vzc2FyeSB0byBzYXZlIHRpbWUNCgkJCQlldmVudHMgPSAkLl9kYXRhKCBlbGVtLCAiZXZlbnRzIiApOw0KCQkJCWlmICggZXZlbnRzICYmIGV2ZW50cy5yZW1vdmUgKSB7DQoJCQkJCSQoIGVsZW0gKS50cmlnZ2VySGFuZGxlciggInJlbW92ZSIgKTsNCgkJCQl9DQoNCgkJCS8vIGh0dHA6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzgyMzUNCgkJCX0gY2F0Y2ggKCBlICkge30NCgkJfQ0KCQlvcmlnKCBlbGVtcyApOw0KCX07DQp9KSggJC5jbGVhbkRhdGEgKTsNCg0KJC53aWRnZXQgPSBmdW5jdGlvbiggbmFtZSwgYmFzZSwgcHJvdG90eXBlICkgew0KCXZhciBmdWxsTmFtZSwgZXhpc3RpbmdDb25zdHJ1Y3RvciwgY29uc3RydWN0b3IsIGJhc2VQcm90b3R5cGUsDQoJCS8vIHByb3hpZWRQcm90b3R5cGUgYWxsb3dzIHRoZSBwcm92aWRlZCBwcm90b3R5cGUgdG8gcmVtYWluIHVubW9kaWZpZWQNCgkJLy8gc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBhcyBhIG1peGluIGZvciBtdWx0aXBsZSB3aWRnZXRzICgjODg3NikNCgkJcHJveGllZFByb3RvdHlwZSA9IHt9LA0KCQluYW1lc3BhY2UgPSBuYW1lLnNwbGl0KCAiLiIgKVsgMCBdOw0KDQoJbmFtZSA9IG5hbWUuc3BsaXQoICIuIiApWyAxIF07DQoJZnVsbE5hbWUgPSBuYW1lc3BhY2UgKyAiLSIgKyBuYW1lOw0KDQoJaWYgKCAhcHJvdG90eXBlICkgew0KCQlwcm90b3R5cGUgPSBiYXNlOw0KCQliYXNlID0gJC5XaWRnZXQ7DQoJfQ0KDQoJLy8gY3JlYXRlIHNlbGVjdG9yIGZvciBwbHVnaW4NCgkkLmV4cHJbICI6IiBdWyBmdWxsTmFtZS50b0xvd2VyQ2FzZSgpIF0gPSBmdW5jdGlvbiggZWxlbSApIHsNCgkJcmV0dXJuICEhJC5kYXRhKCBlbGVtLCBmdWxsTmFtZSApOw0KCX07DQoNCgkkWyBuYW1lc3BhY2UgXSA9ICRbIG5hbWVzcGFjZSBdIHx8IHt9Ow0KCWV4aXN0aW5nQ29uc3RydWN0b3IgPSAkWyBuYW1lc3BhY2UgXVsgbmFtZSBdOw0KCWNvbnN0cnVjdG9yID0gJFsgbmFtZXNwYWNlIF1bIG5hbWUgXSA9IGZ1bmN0aW9uKCBvcHRpb25zLCBlbGVtZW50ICkgew0KCQkvLyBhbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgIm5ldyIga2V5d29yZA0KCQlpZiAoICF0aGlzLl9jcmVhdGVXaWRnZXQgKSB7DQoJCQlyZXR1cm4gbmV3IGNvbnN0cnVjdG9yKCBvcHRpb25zLCBlbGVtZW50ICk7DQoJCX0NCg0KCQkvLyBhbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgaW5pdGlhbGl6aW5nIGZvciBzaW1wbGUgaW5oZXJpdGFuY2UNCgkJLy8gbXVzdCB1c2UgIm5ldyIga2V5d29yZCAodGhlIGNvZGUgYWJvdmUgYWx3YXlzIHBhc3NlcyBhcmdzKQ0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQl0aGlzLl9jcmVhdGVXaWRnZXQoIG9wdGlvbnMsIGVsZW1lbnQgKTsNCgkJfQ0KCX07DQoJLy8gZXh0ZW5kIHdpdGggdGhlIGV4aXN0aW5nIGNvbnN0cnVjdG9yIHRvIGNhcnJ5IG92ZXIgYW55IHN0YXRpYyBwcm9wZXJ0aWVzDQoJJC5leHRlbmQoIGNvbnN0cnVjdG9yLCBleGlzdGluZ0NvbnN0cnVjdG9yLCB7DQoJCXZlcnNpb246IHByb3RvdHlwZS52ZXJzaW9uLA0KCQkvLyBjb3B5IHRoZSBvYmplY3QgdXNlZCB0byBjcmVhdGUgdGhlIHByb3RvdHlwZSBpbiBjYXNlIHdlIG5lZWQgdG8NCgkJLy8gcmVkZWZpbmUgdGhlIHdpZGdldCBsYXRlcg0KCQlfcHJvdG86ICQuZXh0ZW5kKCB7fSwgcHJvdG90eXBlICksDQoJCS8vIHRyYWNrIHdpZGdldHMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyB3aWRnZXQgaW4gY2FzZSB0aGlzIHdpZGdldCBpcw0KCQkvLyByZWRlZmluZWQgYWZ0ZXIgYSB3aWRnZXQgaW5oZXJpdHMgZnJvbSBpdA0KCQlfY2hpbGRDb25zdHJ1Y3RvcnM6IFtdDQoJfSk7DQoNCgliYXNlUHJvdG90eXBlID0gbmV3IGJhc2UoKTsNCgkvLyB3ZSBuZWVkIHRvIG1ha2UgdGhlIG9wdGlvbnMgaGFzaCBhIHByb3BlcnR5IGRpcmVjdGx5IG9uIHRoZSBuZXcgaW5zdGFuY2UNCgkvLyBvdGhlcndpc2Ugd2UnbGwgbW9kaWZ5IHRoZSBvcHRpb25zIGhhc2ggb24gdGhlIHByb3RvdHlwZSB0aGF0IHdlJ3JlDQoJLy8gaW5oZXJpdGluZyBmcm9tDQoJYmFzZVByb3RvdHlwZS5vcHRpb25zID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwgYmFzZVByb3RvdHlwZS5vcHRpb25zICk7DQoJJC5lYWNoKCBwcm90b3R5cGUsIGZ1bmN0aW9uKCBwcm9wLCB2YWx1ZSApIHsNCgkJaWYgKCAhJC5pc0Z1bmN0aW9uKCB2YWx1ZSApICkgew0KCQkJcHJveGllZFByb3RvdHlwZVsgcHJvcCBdID0gdmFsdWU7DQoJCQlyZXR1cm47DQoJCX0NCgkJcHJveGllZFByb3RvdHlwZVsgcHJvcCBdID0gKGZ1bmN0aW9uKCkgew0KCQkJdmFyIF9zdXBlciA9IGZ1bmN0aW9uKCkgew0KCQkJCQlyZXR1cm4gYmFzZS5wcm90b3R5cGVbIHByb3AgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkJfSwNCgkJCQlfc3VwZXJBcHBseSA9IGZ1bmN0aW9uKCBhcmdzICkgew0KCQkJCQlyZXR1cm4gYmFzZS5wcm90b3R5cGVbIHByb3AgXS5hcHBseSggdGhpcywgYXJncyApOw0KCQkJCX07DQoJCQlyZXR1cm4gZnVuY3Rpb24oKSB7DQoJCQkJdmFyIF9fc3VwZXIgPSB0aGlzLl9zdXBlciwNCgkJCQkJX19zdXBlckFwcGx5ID0gdGhpcy5fc3VwZXJBcHBseSwNCgkJCQkJcmV0dXJuVmFsdWU7DQoNCgkJCQl0aGlzLl9zdXBlciA9IF9zdXBlcjsNCgkJCQl0aGlzLl9zdXBlckFwcGx5ID0gX3N1cGVyQXBwbHk7DQoNCgkJCQlyZXR1cm5WYWx1ZSA9IHZhbHVlLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCg0KCQkJCXRoaXMuX3N1cGVyID0gX19zdXBlcjsNCgkJCQl0aGlzLl9zdXBlckFwcGx5ID0gX19zdXBlckFwcGx5Ow0KDQoJCQkJcmV0dXJuIHJldHVyblZhbHVlOw0KCQkJfTsNCgkJfSkoKTsNCgl9KTsNCgljb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSAkLndpZGdldC5leHRlbmQoIGJhc2VQcm90b3R5cGUsIHsNCgkJLy8gVE9ETzogcmVtb3ZlIHN1cHBvcnQgZm9yIHdpZGdldEV2ZW50UHJlZml4DQoJCS8vIGFsd2F5cyB1c2UgdGhlIG5hbWUgKyBhIGNvbG9uIGFzIHRoZSBwcmVmaXgsIGUuZy4sIGRyYWdnYWJsZTpzdGFydA0KCQkvLyBkb24ndCBwcmVmaXggZm9yIHdpZGdldHMgdGhhdCBhcmVuJ3QgRE9NLWJhc2VkDQoJCXdpZGdldEV2ZW50UHJlZml4OiBleGlzdGluZ0NvbnN0cnVjdG9yID8gKGJhc2VQcm90b3R5cGUud2lkZ2V0RXZlbnRQcmVmaXggfHwgbmFtZSkgOiBuYW1lDQoJfSwgcHJveGllZFByb3RvdHlwZSwgew0KCQljb25zdHJ1Y3RvcjogY29uc3RydWN0b3IsDQoJCW5hbWVzcGFjZTogbmFtZXNwYWNlLA0KCQl3aWRnZXROYW1lOiBuYW1lLA0KCQl3aWRnZXRGdWxsTmFtZTogZnVsbE5hbWUNCgl9KTsNCg0KCS8vIElmIHRoaXMgd2lkZ2V0IGlzIGJlaW5nIHJlZGVmaW5lZCB0aGVuIHdlIG5lZWQgdG8gZmluZCBhbGwgd2lkZ2V0cyB0aGF0DQoJLy8gYXJlIGluaGVyaXRpbmcgZnJvbSBpdCBhbmQgcmVkZWZpbmUgYWxsIG9mIHRoZW0gc28gdGhhdCB0aGV5IGluaGVyaXQgZnJvbQ0KCS8vIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGlzIHdpZGdldC4gV2UncmUgZXNzZW50aWFsbHkgdHJ5aW5nIHRvIHJlcGxhY2Ugb25lDQoJLy8gbGV2ZWwgaW4gdGhlIHByb3RvdHlwZSBjaGFpbi4NCglpZiAoIGV4aXN0aW5nQ29uc3RydWN0b3IgKSB7DQoJCSQuZWFjaCggZXhpc3RpbmdDb25zdHJ1Y3Rvci5fY2hpbGRDb25zdHJ1Y3RvcnMsIGZ1bmN0aW9uKCBpLCBjaGlsZCApIHsNCgkJCXZhciBjaGlsZFByb3RvdHlwZSA9IGNoaWxkLnByb3RvdHlwZTsNCg0KCQkJLy8gcmVkZWZpbmUgdGhlIGNoaWxkIHdpZGdldCB1c2luZyB0aGUgc2FtZSBwcm90b3R5cGUgdGhhdCB3YXMNCgkJCS8vIG9yaWdpbmFsbHkgdXNlZCwgYnV0IGluaGVyaXQgZnJvbSB0aGUgbmV3IHZlcnNpb24gb2YgdGhlIGJhc2UNCgkJCSQud2lkZ2V0KCBjaGlsZFByb3RvdHlwZS5uYW1lc3BhY2UgKyAiLiIgKyBjaGlsZFByb3RvdHlwZS53aWRnZXROYW1lLCBjb25zdHJ1Y3RvciwgY2hpbGQuX3Byb3RvICk7DQoJCX0pOw0KCQkvLyByZW1vdmUgdGhlIGxpc3Qgb2YgZXhpc3RpbmcgY2hpbGQgY29uc3RydWN0b3JzIGZyb20gdGhlIG9sZCBjb25zdHJ1Y3Rvcg0KCQkvLyBzbyB0aGUgb2xkIGNoaWxkIGNvbnN0cnVjdG9ycyBjYW4gYmUgZ2FyYmFnZSBjb2xsZWN0ZWQNCgkJZGVsZXRlIGV4aXN0aW5nQ29uc3RydWN0b3IuX2NoaWxkQ29uc3RydWN0b3JzOw0KCX0gZWxzZSB7DQoJCWJhc2UuX2NoaWxkQ29uc3RydWN0b3JzLnB1c2goIGNvbnN0cnVjdG9yICk7DQoJfQ0KDQoJJC53aWRnZXQuYnJpZGdlKCBuYW1lLCBjb25zdHJ1Y3RvciApOw0KDQoJcmV0dXJuIGNvbnN0cnVjdG9yOw0KfTsNCg0KJC53aWRnZXQuZXh0ZW5kID0gZnVuY3Rpb24oIHRhcmdldCApIHsNCgl2YXIgaW5wdXQgPSB3aWRnZXRfc2xpY2UuY2FsbCggYXJndW1lbnRzLCAxICksDQoJCWlucHV0SW5kZXggPSAwLA0KCQlpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aCwNCgkJa2V5LA0KCQl2YWx1ZTsNCglmb3IgKCA7IGlucHV0SW5kZXggPCBpbnB1dExlbmd0aDsgaW5wdXRJbmRleCsrICkgew0KCQlmb3IgKCBrZXkgaW4gaW5wdXRbIGlucHV0SW5kZXggXSApIHsNCgkJCXZhbHVlID0gaW5wdXRbIGlucHV0SW5kZXggXVsga2V5IF07DQoJCQlpZiAoIGlucHV0WyBpbnB1dEluZGV4IF0uaGFzT3duUHJvcGVydHkoIGtleSApICYmIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7DQoJCQkJLy8gQ2xvbmUgb2JqZWN0cw0KCQkJCWlmICggJC5pc1BsYWluT2JqZWN0KCB2YWx1ZSApICkgew0KCQkJCQl0YXJnZXRbIGtleSBdID0gJC5pc1BsYWluT2JqZWN0KCB0YXJnZXRbIGtleSBdICkgPw0KCQkJCQkJJC53aWRnZXQuZXh0ZW5kKCB7fSwgdGFyZ2V0WyBrZXkgXSwgdmFsdWUgKSA6DQoJCQkJCQkvLyBEb24ndCBleHRlbmQgc3RyaW5ncywgYXJyYXlzLCBldGMuIHdpdGggb2JqZWN0cw0KCQkJCQkJJC53aWRnZXQuZXh0ZW5kKCB7fSwgdmFsdWUgKTsNCgkJCQkvLyBDb3B5IGV2ZXJ5dGhpbmcgZWxzZSBieSByZWZlcmVuY2UNCgkJCQl9IGVsc2Ugew0KCQkJCQl0YXJnZXRbIGtleSBdID0gdmFsdWU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KCXJldHVybiB0YXJnZXQ7DQp9Ow0KDQokLndpZGdldC5icmlkZ2UgPSBmdW5jdGlvbiggbmFtZSwgb2JqZWN0ICkgew0KCXZhciBmdWxsTmFtZSA9IG9iamVjdC5wcm90b3R5cGUud2lkZ2V0RnVsbE5hbWUgfHwgbmFtZTsNCgkkLmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdmFyIGlzTWV0aG9kQ2FsbCA9IHR5cGVvZiBvcHRpb25zID09PSAic3RyaW5nIiwNCgkJCWFyZ3MgPSB3aWRnZXRfc2xpY2UuY2FsbCggYXJndW1lbnRzLCAxICksDQoJCQlyZXR1cm5WYWx1ZSA9IHRoaXM7DQoNCgkJLy8gYWxsb3cgbXVsdGlwbGUgaGFzaGVzIHRvIGJlIHBhc3NlZCBvbiBpbml0DQoJCW9wdGlvbnMgPSAhaXNNZXRob2RDYWxsICYmIGFyZ3MubGVuZ3RoID8NCgkJCSQud2lkZ2V0LmV4dGVuZC5hcHBseSggbnVsbCwgWyBvcHRpb25zIF0uY29uY2F0KGFyZ3MpICkgOg0KCQkJb3B0aW9uczsNCg0KCQlpZiAoIGlzTWV0aG9kQ2FsbCApIHsNCgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgbWV0aG9kVmFsdWUsDQoJCQkJCWluc3RhbmNlID0gJC5kYXRhKCB0aGlzLCBmdWxsTmFtZSApOw0KCQkJCWlmICggb3B0aW9ucyA9PT0gImluc3RhbmNlIiApIHsNCgkJCQkJcmV0dXJuVmFsdWUgPSBpbnN0YW5jZTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCQlpZiAoICFpbnN0YW5jZSApIHsNCgkJCQkJcmV0dXJuICQuZXJyb3IoICJjYW5ub3QgY2FsbCBtZXRob2RzIG9uICIgKyBuYW1lICsgIiBwcmlvciB0byBpbml0aWFsaXphdGlvbjsgIiArDQoJCQkJCQkiYXR0ZW1wdGVkIHRvIGNhbGwgbWV0aG9kICciICsgb3B0aW9ucyArICInIiApOw0KCQkJCX0NCgkJCQlpZiAoICEkLmlzRnVuY3Rpb24oIGluc3RhbmNlW29wdGlvbnNdICkgfHwgb3B0aW9ucy5jaGFyQXQoIDAgKSA9PT0gIl8iICkgew0KCQkJCQlyZXR1cm4gJC5lcnJvciggIm5vIHN1Y2ggbWV0aG9kICciICsgb3B0aW9ucyArICInIGZvciAiICsgbmFtZSArICIgd2lkZ2V0IGluc3RhbmNlIiApOw0KCQkJCX0NCgkJCQltZXRob2RWYWx1ZSA9IGluc3RhbmNlWyBvcHRpb25zIF0uYXBwbHkoIGluc3RhbmNlLCBhcmdzICk7DQoJCQkJaWYgKCBtZXRob2RWYWx1ZSAhPT0gaW5zdGFuY2UgJiYgbWV0aG9kVmFsdWUgIT09IHVuZGVmaW5lZCApIHsNCgkJCQkJcmV0dXJuVmFsdWUgPSBtZXRob2RWYWx1ZSAmJiBtZXRob2RWYWx1ZS5qcXVlcnkgPw0KCQkJCQkJcmV0dXJuVmFsdWUucHVzaFN0YWNrKCBtZXRob2RWYWx1ZS5nZXQoKSApIDoNCgkJCQkJCW1ldGhvZFZhbHVlOw0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJfSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJdmFyIGluc3RhbmNlID0gJC5kYXRhKCB0aGlzLCBmdWxsTmFtZSApOw0KCQkJCWlmICggaW5zdGFuY2UgKSB7DQoJCQkJCWluc3RhbmNlLm9wdGlvbiggb3B0aW9ucyB8fCB7fSApOw0KCQkJCQlpZiAoIGluc3RhbmNlLl9pbml0ICkgew0KCQkJCQkJaW5zdGFuY2UuX2luaXQoKTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSB7DQoJCQkJCSQuZGF0YSggdGhpcywgZnVsbE5hbWUsIG5ldyBvYmplY3QoIG9wdGlvbnMsIHRoaXMgKSApOw0KCQkJCX0NCgkJCX0pOw0KCQl9DQoNCgkJcmV0dXJuIHJldHVyblZhbHVlOw0KCX07DQp9Ow0KDQokLldpZGdldCA9IGZ1bmN0aW9uKCAvKiBvcHRpb25zLCBlbGVtZW50ICovICkge307DQokLldpZGdldC5fY2hpbGRDb25zdHJ1Y3RvcnMgPSBbXTsNCg0KJC5XaWRnZXQucHJvdG90eXBlID0gew0KCXdpZGdldE5hbWU6ICJ3aWRnZXQiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAiIiwNCglkZWZhdWx0RWxlbWVudDogIjxkaXY+IiwNCglvcHRpb25zOiB7DQoJCWRpc2FibGVkOiBmYWxzZSwNCg0KCQkvLyBjYWxsYmFja3MNCgkJY3JlYXRlOiBudWxsDQoJfSwNCglfY3JlYXRlV2lkZ2V0OiBmdW5jdGlvbiggb3B0aW9ucywgZWxlbWVudCApIHsNCgkJZWxlbWVudCA9ICQoIGVsZW1lbnQgfHwgdGhpcy5kZWZhdWx0RWxlbWVudCB8fCB0aGlzIClbIDAgXTsNCgkJdGhpcy5lbGVtZW50ID0gJCggZWxlbWVudCApOw0KCQl0aGlzLnV1aWQgPSB3aWRnZXRfdXVpZCsrOw0KCQl0aGlzLmV2ZW50TmFtZXNwYWNlID0gIi4iICsgdGhpcy53aWRnZXROYW1lICsgdGhpcy51dWlkOw0KDQoJCXRoaXMuYmluZGluZ3MgPSAkKCk7DQoJCXRoaXMuaG92ZXJhYmxlID0gJCgpOw0KCQl0aGlzLmZvY3VzYWJsZSA9ICQoKTsNCg0KCQlpZiAoIGVsZW1lbnQgIT09IHRoaXMgKSB7DQoJCQkkLmRhdGEoIGVsZW1lbnQsIHRoaXMud2lkZ2V0RnVsbE5hbWUsIHRoaXMgKTsNCgkJCXRoaXMuX29uKCB0cnVlLCB0aGlzLmVsZW1lbnQsIHsNCgkJCQlyZW1vdmU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkJaWYgKCBldmVudC50YXJnZXQgPT09IGVsZW1lbnQgKSB7DQoJCQkJCQl0aGlzLmRlc3Ryb3koKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0pOw0KCQkJdGhpcy5kb2N1bWVudCA9ICQoIGVsZW1lbnQuc3R5bGUgPw0KCQkJCS8vIGVsZW1lbnQgd2l0aGluIHRoZSBkb2N1bWVudA0KCQkJCWVsZW1lbnQub3duZXJEb2N1bWVudCA6DQoJCQkJLy8gZWxlbWVudCBpcyB3aW5kb3cgb3IgZG9jdW1lbnQNCgkJCQllbGVtZW50LmRvY3VtZW50IHx8IGVsZW1lbnQgKTsNCgkJCXRoaXMud2luZG93ID0gJCggdGhpcy5kb2N1bWVudFswXS5kZWZhdWx0VmlldyB8fCB0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdyApOw0KCQl9DQoNCgkJdGhpcy5vcHRpb25zID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwNCgkJCXRoaXMub3B0aW9ucywNCgkJCXRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSwNCgkJCW9wdGlvbnMgKTsNCg0KCQl0aGlzLl9jcmVhdGUoKTsNCgkJdGhpcy5fdHJpZ2dlciggImNyZWF0ZSIsIG51bGwsIHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpICk7DQoJCXRoaXMuX2luaXQoKTsNCgl9LA0KCV9nZXRDcmVhdGVPcHRpb25zOiAkLm5vb3AsDQoJX2dldENyZWF0ZUV2ZW50RGF0YTogJC5ub29wLA0KCV9jcmVhdGU6ICQubm9vcCwNCglfaW5pdDogJC5ub29wLA0KDQoJZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX2Rlc3Ryb3koKTsNCgkJLy8gd2UgY2FuIHByb2JhYmx5IHJlbW92ZSB0aGUgdW5iaW5kIGNhbGxzIGluIDIuMA0KCQkvLyBhbGwgZXZlbnQgYmluZGluZ3Mgc2hvdWxkIGdvIHRocm91Z2ggdGhpcy5fb24oKQ0KCQl0aGlzLmVsZW1lbnQNCgkJCS51bmJpbmQoIHRoaXMuZXZlbnROYW1lc3BhY2UgKQ0KCQkJLnJlbW92ZURhdGEoIHRoaXMud2lkZ2V0RnVsbE5hbWUgKQ0KCQkJLy8gc3VwcG9ydDoganF1ZXJ5IDwxLjYuMw0KCQkJLy8gaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvOTQxMw0KCQkJLnJlbW92ZURhdGEoICQuY2FtZWxDYXNlKCB0aGlzLndpZGdldEZ1bGxOYW1lICkgKTsNCgkJdGhpcy53aWRnZXQoKQ0KCQkJLnVuYmluZCggdGhpcy5ldmVudE5hbWVzcGFjZSApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtZGlzYWJsZWQiICkNCgkJCS5yZW1vdmVDbGFzcygNCgkJCQl0aGlzLndpZGdldEZ1bGxOYW1lICsgIi1kaXNhYmxlZCAiICsNCgkJCQkidWktc3RhdGUtZGlzYWJsZWQiICk7DQoNCgkJLy8gY2xlYW4gdXAgZXZlbnRzIGFuZCBzdGF0ZXMNCgkJdGhpcy5iaW5kaW5ncy51bmJpbmQoIHRoaXMuZXZlbnROYW1lc3BhY2UgKTsNCgkJdGhpcy5ob3ZlcmFibGUucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1ob3ZlciIgKTsNCgkJdGhpcy5mb2N1c2FibGUucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1mb2N1cyIgKTsNCgl9LA0KCV9kZXN0cm95OiAkLm5vb3AsDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5lbGVtZW50Ow0KCX0sDQoNCglvcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQl2YXIgb3B0aW9ucyA9IGtleSwNCgkJCXBhcnRzLA0KCQkJY3VyT3B0aW9uLA0KCQkJaTsNCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPT09IDAgKSB7DQoJCQkvLyBkb24ndCByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIGhhc2gNCgkJCXJldHVybiAkLndpZGdldC5leHRlbmQoIHt9LCB0aGlzLm9wdGlvbnMgKTsNCgkJfQ0KDQoJCWlmICggdHlwZW9mIGtleSA9PT0gInN0cmluZyIgKSB7DQoJCQkvLyBoYW5kbGUgbmVzdGVkIGtleXMsIGUuZy4sICJmb28uYmFyIiA9PiB7IGZvbzogeyBiYXI6IF9fXyB9IH0NCgkJCW9wdGlvbnMgPSB7fTsNCgkJCXBhcnRzID0ga2V5LnNwbGl0KCAiLiIgKTsNCgkJCWtleSA9IHBhcnRzLnNoaWZ0KCk7DQoJCQlpZiAoIHBhcnRzLmxlbmd0aCApIHsNCgkJCQljdXJPcHRpb24gPSBvcHRpb25zWyBrZXkgXSA9ICQud2lkZ2V0LmV4dGVuZCgge30sIHRoaXMub3B0aW9uc1sga2V5IF0gKTsNCgkJCQlmb3IgKCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aCAtIDE7IGkrKyApIHsNCgkJCQkJY3VyT3B0aW9uWyBwYXJ0c1sgaSBdIF0gPSBjdXJPcHRpb25bIHBhcnRzWyBpIF0gXSB8fCB7fTsNCgkJCQkJY3VyT3B0aW9uID0gY3VyT3B0aW9uWyBwYXJ0c1sgaSBdIF07DQoJCQkJfQ0KCQkJCWtleSA9IHBhcnRzLnBvcCgpOw0KCQkJCWlmICggYXJndW1lbnRzLmxlbmd0aCA9PT0gMSApIHsNCgkJCQkJcmV0dXJuIGN1ck9wdGlvblsga2V5IF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjdXJPcHRpb25bIGtleSBdOw0KCQkJCX0NCgkJCQljdXJPcHRpb25bIGtleSBdID0gdmFsdWU7DQoJCQl9IGVsc2Ugew0KCQkJCWlmICggYXJndW1lbnRzLmxlbmd0aCA9PT0gMSApIHsNCgkJCQkJcmV0dXJuIHRoaXMub3B0aW9uc1sga2V5IF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiB0aGlzLm9wdGlvbnNbIGtleSBdOw0KCQkJCX0NCgkJCQlvcHRpb25zWyBrZXkgXSA9IHZhbHVlOw0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5fc2V0T3B0aW9ucyggb3B0aW9ucyApOw0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoJX3NldE9wdGlvbnM6IGZ1bmN0aW9uKCBvcHRpb25zICkgew0KCQl2YXIga2V5Ow0KDQoJCWZvciAoIGtleSBpbiBvcHRpb25zICkgew0KCQkJdGhpcy5fc2V0T3B0aW9uKCBrZXksIG9wdGlvbnNbIGtleSBdICk7DQoJCX0NCg0KCQlyZXR1cm4gdGhpczsNCgl9LA0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQl0aGlzLm9wdGlvbnNbIGtleSBdID0gdmFsdWU7DQoNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLndpZGdldCgpDQoJCQkJLnRvZ2dsZUNsYXNzKCB0aGlzLndpZGdldEZ1bGxOYW1lICsgIi1kaXNhYmxlZCIsICEhdmFsdWUgKTsNCg0KCQkJLy8gSWYgdGhlIHdpZGdldCBpcyBiZWNvbWluZyBkaXNhYmxlZCwgdGhlbiBub3RoaW5nIGlzIGludGVyYWN0aXZlDQoJCQlpZiAoIHZhbHVlICkgew0KCQkJCXRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtaG92ZXIiICk7DQoJCQkJdGhpcy5mb2N1c2FibGUucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1mb2N1cyIgKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCgllbmFibGU6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7IGRpc2FibGVkOiBmYWxzZSB9KTsNCgl9LA0KCWRpc2FibGU6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7IGRpc2FibGVkOiB0cnVlIH0pOw0KCX0sDQoNCglfb246IGZ1bmN0aW9uKCBzdXBwcmVzc0Rpc2FibGVkQ2hlY2ssIGVsZW1lbnQsIGhhbmRsZXJzICkgew0KCQl2YXIgZGVsZWdhdGVFbGVtZW50LA0KCQkJaW5zdGFuY2UgPSB0aGlzOw0KDQoJCS8vIG5vIHN1cHByZXNzRGlzYWJsZWRDaGVjayBmbGFnLCBzaHVmZmxlIGFyZ3VtZW50cw0KCQlpZiAoIHR5cGVvZiBzdXBwcmVzc0Rpc2FibGVkQ2hlY2sgIT09ICJib29sZWFuIiApIHsNCgkJCWhhbmRsZXJzID0gZWxlbWVudDsNCgkJCWVsZW1lbnQgPSBzdXBwcmVzc0Rpc2FibGVkQ2hlY2s7DQoJCQlzdXBwcmVzc0Rpc2FibGVkQ2hlY2sgPSBmYWxzZTsNCgkJfQ0KDQoJCS8vIG5vIGVsZW1lbnQgYXJndW1lbnQsIHNodWZmbGUgYW5kIHVzZSB0aGlzLmVsZW1lbnQNCgkJaWYgKCAhaGFuZGxlcnMgKSB7DQoJCQloYW5kbGVycyA9IGVsZW1lbnQ7DQoJCQllbGVtZW50ID0gdGhpcy5lbGVtZW50Ow0KCQkJZGVsZWdhdGVFbGVtZW50ID0gdGhpcy53aWRnZXQoKTsNCgkJfSBlbHNlIHsNCgkJCWVsZW1lbnQgPSBkZWxlZ2F0ZUVsZW1lbnQgPSAkKCBlbGVtZW50ICk7DQoJCQl0aGlzLmJpbmRpbmdzID0gdGhpcy5iaW5kaW5ncy5hZGQoIGVsZW1lbnQgKTsNCgkJfQ0KDQoJCSQuZWFjaCggaGFuZGxlcnMsIGZ1bmN0aW9uKCBldmVudCwgaGFuZGxlciApIHsNCgkJCWZ1bmN0aW9uIGhhbmRsZXJQcm94eSgpIHsNCgkJCQkvLyBhbGxvdyB3aWRnZXRzIHRvIGN1c3RvbWl6ZSB0aGUgZGlzYWJsZWQgaGFuZGxpbmcNCgkJCQkvLyAtIGRpc2FibGVkIGFzIGFuIGFycmF5IGluc3RlYWQgb2YgYm9vbGVhbg0KCQkJCS8vIC0gZGlzYWJsZWQgY2xhc3MgYXMgbWV0aG9kIGZvciBkaXNhYmxpbmcgaW5kaXZpZHVhbCBwYXJ0cw0KCQkJCWlmICggIXN1cHByZXNzRGlzYWJsZWRDaGVjayAmJg0KCQkJCQkJKCBpbnN0YW5jZS5vcHRpb25zLmRpc2FibGVkID09PSB0cnVlIHx8DQoJCQkJCQkJJCggdGhpcyApLmhhc0NsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICkgKSApIHsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCgkJCQlyZXR1cm4gKCB0eXBlb2YgaGFuZGxlciA9PT0gInN0cmluZyIgPyBpbnN0YW5jZVsgaGFuZGxlciBdIDogaGFuZGxlciApDQoJCQkJCS5hcHBseSggaW5zdGFuY2UsIGFyZ3VtZW50cyApOw0KCQkJfQ0KDQoJCQkvLyBjb3B5IHRoZSBndWlkIHNvIGRpcmVjdCB1bmJpbmRpbmcgd29ya3MNCgkJCWlmICggdHlwZW9mIGhhbmRsZXIgIT09ICJzdHJpbmciICkgew0KCQkJCWhhbmRsZXJQcm94eS5ndWlkID0gaGFuZGxlci5ndWlkID0NCgkJCQkJaGFuZGxlci5ndWlkIHx8IGhhbmRsZXJQcm94eS5ndWlkIHx8ICQuZ3VpZCsrOw0KCQkJfQ0KDQoJCQl2YXIgbWF0Y2ggPSBldmVudC5tYXRjaCggL14oW1x3Oi1dKilccyooLiopJC8gKSwNCgkJCQlldmVudE5hbWUgPSBtYXRjaFsxXSArIGluc3RhbmNlLmV2ZW50TmFtZXNwYWNlLA0KCQkJCXNlbGVjdG9yID0gbWF0Y2hbMl07DQoJCQlpZiAoIHNlbGVjdG9yICkgew0KCQkJCWRlbGVnYXRlRWxlbWVudC5kZWxlZ2F0ZSggc2VsZWN0b3IsIGV2ZW50TmFtZSwgaGFuZGxlclByb3h5ICk7DQoJCQl9IGVsc2Ugew0KCQkJCWVsZW1lbnQuYmluZCggZXZlbnROYW1lLCBoYW5kbGVyUHJveHkgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9vZmY6IGZ1bmN0aW9uKCBlbGVtZW50LCBldmVudE5hbWUgKSB7DQoJCWV2ZW50TmFtZSA9IChldmVudE5hbWUgfHwgIiIpLnNwbGl0KCAiICIgKS5qb2luKCB0aGlzLmV2ZW50TmFtZXNwYWNlICsgIiAiICkgKw0KCQkJdGhpcy5ldmVudE5hbWVzcGFjZTsNCgkJZWxlbWVudC51bmJpbmQoIGV2ZW50TmFtZSApLnVuZGVsZWdhdGUoIGV2ZW50TmFtZSApOw0KDQoJCS8vIENsZWFyIHRoZSBzdGFjayB0byBhdm9pZCBtZW1vcnkgbGVha3MgKCMxMDA1NikNCgkJdGhpcy5iaW5kaW5ncyA9ICQoIHRoaXMuYmluZGluZ3Mubm90KCBlbGVtZW50ICkuZ2V0KCkgKTsNCgkJdGhpcy5mb2N1c2FibGUgPSAkKCB0aGlzLmZvY3VzYWJsZS5ub3QoIGVsZW1lbnQgKS5nZXQoKSApOw0KCQl0aGlzLmhvdmVyYWJsZSA9ICQoIHRoaXMuaG92ZXJhYmxlLm5vdCggZWxlbWVudCApLmdldCgpICk7DQoJfSwNCg0KCV9kZWxheTogZnVuY3Rpb24oIGhhbmRsZXIsIGRlbGF5ICkgew0KCQlmdW5jdGlvbiBoYW5kbGVyUHJveHkoKSB7DQoJCQlyZXR1cm4gKCB0eXBlb2YgaGFuZGxlciA9PT0gInN0cmluZyIgPyBpbnN0YW5jZVsgaGFuZGxlciBdIDogaGFuZGxlciApDQoJCQkJLmFwcGx5KCBpbnN0YW5jZSwgYXJndW1lbnRzICk7DQoJCX0NCgkJdmFyIGluc3RhbmNlID0gdGhpczsNCgkJcmV0dXJuIHNldFRpbWVvdXQoIGhhbmRsZXJQcm94eSwgZGVsYXkgfHwgMCApOw0KCX0sDQoNCglfaG92ZXJhYmxlOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJdGhpcy5ob3ZlcmFibGUgPSB0aGlzLmhvdmVyYWJsZS5hZGQoIGVsZW1lbnQgKTsNCgkJdGhpcy5fb24oIGVsZW1lbnQsIHsNCgkJCW1vdXNlZW50ZXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkkKCBldmVudC5jdXJyZW50VGFyZ2V0ICkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1ob3ZlciIgKTsNCgkJCX0sDQoJCQltb3VzZWxlYXZlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJJCggZXZlbnQuY3VycmVudFRhcmdldCApLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtaG92ZXIiICk7DQoJCQl9DQoJCX0pOw0KCX0sDQoNCglfZm9jdXNhYmxlOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJdGhpcy5mb2N1c2FibGUgPSB0aGlzLmZvY3VzYWJsZS5hZGQoIGVsZW1lbnQgKTsNCgkJdGhpcy5fb24oIGVsZW1lbnQsIHsNCgkJCWZvY3VzaW46IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkkKCBldmVudC5jdXJyZW50VGFyZ2V0ICkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1mb2N1cyIgKTsNCgkJCX0sDQoJCQlmb2N1c291dDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCSQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfQ0KCQl9KTsNCgl9LA0KDQoJX3RyaWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBldmVudCwgZGF0YSApIHsNCgkJdmFyIHByb3AsIG9yaWcsDQoJCQljYWxsYmFjayA9IHRoaXMub3B0aW9uc1sgdHlwZSBdOw0KDQoJCWRhdGEgPSBkYXRhIHx8IHt9Ow0KCQlldmVudCA9ICQuRXZlbnQoIGV2ZW50ICk7DQoJCWV2ZW50LnR5cGUgPSAoIHR5cGUgPT09IHRoaXMud2lkZ2V0RXZlbnRQcmVmaXggPw0KCQkJdHlwZSA6DQoJCQl0aGlzLndpZGdldEV2ZW50UHJlZml4ICsgdHlwZSApLnRvTG93ZXJDYXNlKCk7DQoJCS8vIHRoZSBvcmlnaW5hbCBldmVudCBtYXkgY29tZSBmcm9tIGFueSBlbGVtZW50DQoJCS8vIHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlIHRhcmdldCBvbiB0aGUgbmV3IGV2ZW50DQoJCWV2ZW50LnRhcmdldCA9IHRoaXMuZWxlbWVudFsgMCBdOw0KDQoJCS8vIGNvcHkgb3JpZ2luYWwgZXZlbnQgcHJvcGVydGllcyBvdmVyIHRvIHRoZSBuZXcgZXZlbnQNCgkJb3JpZyA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQ7DQoJCWlmICggb3JpZyApIHsNCgkJCWZvciAoIHByb3AgaW4gb3JpZyApIHsNCgkJCQlpZiAoICEoIHByb3AgaW4gZXZlbnQgKSApIHsNCgkJCQkJZXZlbnRbIHByb3AgXSA9IG9yaWdbIHByb3AgXTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQl0aGlzLmVsZW1lbnQudHJpZ2dlciggZXZlbnQsIGRhdGEgKTsNCgkJcmV0dXJuICEoICQuaXNGdW5jdGlvbiggY2FsbGJhY2sgKSAmJg0KCQkJY2FsbGJhY2suYXBwbHkoIHRoaXMuZWxlbWVudFswXSwgWyBldmVudCBdLmNvbmNhdCggZGF0YSApICkgPT09IGZhbHNlIHx8DQoJCQlldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSApOw0KCX0NCn07DQoNCiQuZWFjaCggeyBzaG93OiAiZmFkZUluIiwgaGlkZTogImZhZGVPdXQiIH0sIGZ1bmN0aW9uKCBtZXRob2QsIGRlZmF1bHRFZmZlY3QgKSB7DQoJJC5XaWRnZXQucHJvdG90eXBlWyAiXyIgKyBtZXRob2QgXSA9IGZ1bmN0aW9uKCBlbGVtZW50LCBvcHRpb25zLCBjYWxsYmFjayApIHsNCgkJaWYgKCB0eXBlb2Ygb3B0aW9ucyA9PT0gInN0cmluZyIgKSB7DQoJCQlvcHRpb25zID0geyBlZmZlY3Q6IG9wdGlvbnMgfTsNCgkJfQ0KCQl2YXIgaGFzT3B0aW9ucywNCgkJCWVmZmVjdE5hbWUgPSAhb3B0aW9ucyA/DQoJCQkJbWV0aG9kIDoNCgkJCQlvcHRpb25zID09PSB0cnVlIHx8IHR5cGVvZiBvcHRpb25zID09PSAibnVtYmVyIiA/DQoJCQkJCWRlZmF1bHRFZmZlY3QgOg0KCQkJCQlvcHRpb25zLmVmZmVjdCB8fCBkZWZhdWx0RWZmZWN0Ow0KCQlvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsNCgkJaWYgKCB0eXBlb2Ygb3B0aW9ucyA9PT0gIm51bWJlciIgKSB7DQoJCQlvcHRpb25zID0geyBkdXJhdGlvbjogb3B0aW9ucyB9Ow0KCQl9DQoJCWhhc09wdGlvbnMgPSAhJC5pc0VtcHR5T2JqZWN0KCBvcHRpb25zICk7DQoJCW9wdGlvbnMuY29tcGxldGUgPSBjYWxsYmFjazsNCgkJaWYgKCBvcHRpb25zLmRlbGF5ICkgew0KCQkJZWxlbWVudC5kZWxheSggb3B0aW9ucy5kZWxheSApOw0KCQl9DQoJCWlmICggaGFzT3B0aW9ucyAmJiAkLmVmZmVjdHMgJiYgJC5lZmZlY3RzLmVmZmVjdFsgZWZmZWN0TmFtZSBdICkgew0KCQkJZWxlbWVudFsgbWV0aG9kIF0oIG9wdGlvbnMgKTsNCgkJfSBlbHNlIGlmICggZWZmZWN0TmFtZSAhPT0gbWV0aG9kICYmIGVsZW1lbnRbIGVmZmVjdE5hbWUgXSApIHsNCgkJCWVsZW1lbnRbIGVmZmVjdE5hbWUgXSggb3B0aW9ucy5kdXJhdGlvbiwgb3B0aW9ucy5lYXNpbmcsIGNhbGxiYWNrICk7DQoJCX0gZWxzZSB7DQoJCQllbGVtZW50LnF1ZXVlKGZ1bmN0aW9uKCBuZXh0ICkgew0KCQkJCSQoIHRoaXMgKVsgbWV0aG9kIF0oKTsNCgkJCQlpZiAoIGNhbGxiYWNrICkgew0KCQkJCQljYWxsYmFjay5jYWxsKCBlbGVtZW50WyAwIF0gKTsNCgkJCQl9DQoJCQkJbmV4dCgpOw0KCQkJfSk7DQoJCX0NCgl9Ow0KfSk7DQoNCnZhciB3aWRnZXQgPSAkLndpZGdldDsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBNb3VzZSAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vbW91c2UvDQogKi8NCg0KDQp2YXIgbW91c2VIYW5kbGVkID0gZmFsc2U7DQokKCBkb2N1bWVudCApLm1vdXNldXAoIGZ1bmN0aW9uKCkgew0KCW1vdXNlSGFuZGxlZCA9IGZhbHNlOw0KfSk7DQoNCnZhciBtb3VzZSA9ICQud2lkZ2V0KCJ1aS5tb3VzZSIsIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCglvcHRpb25zOiB7DQoJCWNhbmNlbDogImlucHV0LHRleHRhcmVhLGJ1dHRvbixzZWxlY3Qsb3B0aW9uIiwNCgkJZGlzdGFuY2U6IDEsDQoJCWRlbGF5OiAwDQoJfSwNCglfbW91c2VJbml0OiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCXRoaXMuZWxlbWVudA0KCQkJLmJpbmQoIm1vdXNlZG93bi4iICsgdGhpcy53aWRnZXROYW1lLCBmdW5jdGlvbihldmVudCkgew0KCQkJCXJldHVybiB0aGF0Ll9tb3VzZURvd24oZXZlbnQpOw0KCQkJfSkNCgkJCS5iaW5kKCJjbGljay4iICsgdGhpcy53aWRnZXROYW1lLCBmdW5jdGlvbihldmVudCkgew0KCQkJCWlmICh0cnVlID09PSAkLmRhdGEoZXZlbnQudGFyZ2V0LCB0aGF0LndpZGdldE5hbWUgKyAiLnByZXZlbnRDbGlja0V2ZW50IikpIHsNCgkJCQkJJC5yZW1vdmVEYXRhKGV2ZW50LnRhcmdldCwgdGhhdC53aWRnZXROYW1lICsgIi5wcmV2ZW50Q2xpY2tFdmVudCIpOw0KCQkJCQlldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0pOw0KDQoJCXRoaXMuc3RhcnRlZCA9IGZhbHNlOw0KCX0sDQoNCgkvLyBUT0RPOiBtYWtlIHN1cmUgZGVzdHJveWluZyBvbmUgaW5zdGFuY2Ugb2YgbW91c2UgZG9lc24ndCBtZXNzIHdpdGgNCgkvLyBvdGhlciBpbnN0YW5jZXMgb2YgbW91c2UNCglfbW91c2VEZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5lbGVtZW50LnVuYmluZCgiLiIgKyB0aGlzLndpZGdldE5hbWUpOw0KCQlpZiAoIHRoaXMuX21vdXNlTW92ZURlbGVnYXRlICkgew0KCQkJdGhpcy5kb2N1bWVudA0KCQkJCS51bmJpbmQoIm1vdXNlbW92ZS4iICsgdGhpcy53aWRnZXROYW1lLCB0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkNCgkJCQkudW5iaW5kKCJtb3VzZXVwLiIgKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSk7DQoJCX0NCgl9LA0KDQoJX21vdXNlRG93bjogZnVuY3Rpb24oZXZlbnQpIHsNCgkJLy8gZG9uJ3QgbGV0IG1vcmUgdGhhbiBvbmUgd2lkZ2V0IGhhbmRsZSBtb3VzZVN0YXJ0DQoJCWlmICggbW91c2VIYW5kbGVkICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5fbW91c2VNb3ZlZCA9IGZhbHNlOw0KDQoJCS8vIHdlIG1heSBoYXZlIG1pc3NlZCBtb3VzZXVwIChvdXQgb2Ygd2luZG93KQ0KCQkodGhpcy5fbW91c2VTdGFydGVkICYmIHRoaXMuX21vdXNlVXAoZXZlbnQpKTsNCg0KCQl0aGlzLl9tb3VzZURvd25FdmVudCA9IGV2ZW50Ow0KDQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCWJ0bklzTGVmdCA9IChldmVudC53aGljaCA9PT0gMSksDQoJCQkvLyBldmVudC50YXJnZXQubm9kZU5hbWUgd29ya3MgYXJvdW5kIGEgYnVnIGluIElFIDggd2l0aA0KCQkJLy8gZGlzYWJsZWQgaW5wdXRzICgjNzYyMCkNCgkJCWVsSXNDYW5jZWwgPSAodHlwZW9mIHRoaXMub3B0aW9ucy5jYW5jZWwgPT09ICJzdHJpbmciICYmIGV2ZW50LnRhcmdldC5ub2RlTmFtZSA/ICQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aCA6IGZhbHNlKTsNCgkJaWYgKCFidG5Jc0xlZnQgfHwgZWxJc0NhbmNlbCB8fCAhdGhpcy5fbW91c2VDYXB0dXJlKGV2ZW50KSkgew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQl0aGlzLm1vdXNlRGVsYXlNZXQgPSAhdGhpcy5vcHRpb25zLmRlbGF5Ow0KCQlpZiAoIXRoaXMubW91c2VEZWxheU1ldCkgew0KCQkJdGhpcy5fbW91c2VEZWxheVRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCQl0aGF0Lm1vdXNlRGVsYXlNZXQgPSB0cnVlOw0KCQkJfSwgdGhpcy5vcHRpb25zLmRlbGF5KTsNCgkJfQ0KDQoJCWlmICh0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGV2ZW50KSAmJiB0aGlzLl9tb3VzZURlbGF5TWV0KGV2ZW50KSkgew0KCQkJdGhpcy5fbW91c2VTdGFydGVkID0gKHRoaXMuX21vdXNlU3RhcnQoZXZlbnQpICE9PSBmYWxzZSk7DQoJCQlpZiAoIXRoaXMuX21vdXNlU3RhcnRlZCkgew0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9DQoJCX0NCg0KCQkvLyBDbGljayBldmVudCBtYXkgbmV2ZXIgaGF2ZSBmaXJlZCAoR2Vja28gJiBPcGVyYSkNCgkJaWYgKHRydWUgPT09ICQuZGF0YShldmVudC50YXJnZXQsIHRoaXMud2lkZ2V0TmFtZSArICIucHJldmVudENsaWNrRXZlbnQiKSkgew0KCQkJJC5yZW1vdmVEYXRhKGV2ZW50LnRhcmdldCwgdGhpcy53aWRnZXROYW1lICsgIi5wcmV2ZW50Q2xpY2tFdmVudCIpOw0KCQl9DQoNCgkJLy8gdGhlc2UgZGVsZWdhdGVzIGFyZSByZXF1aXJlZCB0byBrZWVwIGNvbnRleHQNCgkJdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUgPSBmdW5jdGlvbihldmVudCkgew0KCQkJcmV0dXJuIHRoYXQuX21vdXNlTW92ZShldmVudCk7DQoJCX07DQoJCXRoaXMuX21vdXNlVXBEZWxlZ2F0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQlyZXR1cm4gdGhhdC5fbW91c2VVcChldmVudCk7DQoJCX07DQoNCgkJdGhpcy5kb2N1bWVudA0KCQkJLmJpbmQoICJtb3VzZW1vdmUuIiArIHRoaXMud2lkZ2V0TmFtZSwgdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUgKQ0KCQkJLmJpbmQoICJtb3VzZXVwLiIgKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSApOw0KDQoJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCgkJbW91c2VIYW5kbGVkID0gdHJ1ZTsNCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCV9tb3VzZU1vdmU6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCS8vIE9ubHkgY2hlY2sgZm9yIG1vdXNldXBzIG91dHNpZGUgdGhlIGRvY3VtZW50IGlmIHlvdSd2ZSBtb3ZlZCBpbnNpZGUgdGhlIGRvY3VtZW50DQoJCS8vIGF0IGxlYXN0IG9uY2UuIFRoaXMgcHJldmVudHMgdGhlIGZpcmluZyBvZiBtb3VzZXVwIGluIHRoZSBjYXNlIG9mIElFPDksIHdoaWNoIHdpbGwNCgkJLy8gZmlyZSBhIG1vdXNlbW92ZSBldmVudCBpZiBjb250ZW50IGlzIHBsYWNlZCB1bmRlciB0aGUgY3Vyc29yLiBTZWUgIzc3NzgNCgkJLy8gU3VwcG9ydDogSUUgPDkNCgkJaWYgKCB0aGlzLl9tb3VzZU1vdmVkICkgew0KCQkJLy8gSUUgbW91c2V1cCBjaGVjayAtIG1vdXNldXAgaGFwcGVuZWQgd2hlbiBtb3VzZSB3YXMgb3V0IG9mIHdpbmRvdw0KCQkJaWYgKCQudWkuaWUgJiYgKCAhZG9jdW1lbnQuZG9jdW1lbnRNb2RlIHx8IGRvY3VtZW50LmRvY3VtZW50TW9kZSA8IDkgKSAmJiAhZXZlbnQuYnV0dG9uKSB7DQoJCQkJcmV0dXJuIHRoaXMuX21vdXNlVXAoZXZlbnQpOw0KDQoJCQkvLyBJZnJhbWUgbW91c2V1cCBjaGVjayAtIG1vdXNldXAgb2NjdXJyZWQgaW4gYW5vdGhlciBkb2N1bWVudA0KCQkJfSBlbHNlIGlmICggIWV2ZW50LndoaWNoICkgew0KCQkJCXJldHVybiB0aGlzLl9tb3VzZVVwKCBldmVudCApOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBldmVudC53aGljaCB8fCBldmVudC5idXR0b24gKSB7DQoJCQl0aGlzLl9tb3VzZU1vdmVkID0gdHJ1ZTsNCgkJfQ0KDQoJCWlmICh0aGlzLl9tb3VzZVN0YXJ0ZWQpIHsNCgkJCXRoaXMuX21vdXNlRHJhZyhldmVudCk7DQoJCQlyZXR1cm4gZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJfQ0KDQoJCWlmICh0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGV2ZW50KSAmJiB0aGlzLl9tb3VzZURlbGF5TWV0KGV2ZW50KSkgew0KCQkJdGhpcy5fbW91c2VTdGFydGVkID0NCgkJCQkodGhpcy5fbW91c2VTdGFydCh0aGlzLl9tb3VzZURvd25FdmVudCwgZXZlbnQpICE9PSBmYWxzZSk7DQoJCQkodGhpcy5fbW91c2VTdGFydGVkID8gdGhpcy5fbW91c2VEcmFnKGV2ZW50KSA6IHRoaXMuX21vdXNlVXAoZXZlbnQpKTsNCgkJfQ0KDQoJCXJldHVybiAhdGhpcy5fbW91c2VTdGFydGVkOw0KCX0sDQoNCglfbW91c2VVcDogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdGhpcy5kb2N1bWVudA0KCQkJLnVuYmluZCggIm1vdXNlbW92ZS4iICsgdGhpcy53aWRnZXROYW1lLCB0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSApDQoJCQkudW5iaW5kKCAibW91c2V1cC4iICsgdGhpcy53aWRnZXROYW1lLCB0aGlzLl9tb3VzZVVwRGVsZWdhdGUgKTsNCg0KCQlpZiAodGhpcy5fbW91c2VTdGFydGVkKSB7DQoJCQl0aGlzLl9tb3VzZVN0YXJ0ZWQgPSBmYWxzZTsNCg0KCQkJaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0KSB7DQoJCQkJJC5kYXRhKGV2ZW50LnRhcmdldCwgdGhpcy53aWRnZXROYW1lICsgIi5wcmV2ZW50Q2xpY2tFdmVudCIsIHRydWUpOw0KCQkJfQ0KDQoJCQl0aGlzLl9tb3VzZVN0b3AoZXZlbnQpOw0KCQl9DQoNCgkJbW91c2VIYW5kbGVkID0gZmFsc2U7DQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJX21vdXNlRGlzdGFuY2VNZXQ6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXJldHVybiAoTWF0aC5tYXgoDQoJCQkJTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVggLSBldmVudC5wYWdlWCksDQoJCQkJTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVkgLSBldmVudC5wYWdlWSkNCgkJCSkgPj0gdGhpcy5vcHRpb25zLmRpc3RhbmNlDQoJCSk7DQoJfSwNCg0KCV9tb3VzZURlbGF5TWV0OiBmdW5jdGlvbigvKiBldmVudCAqLykgew0KCQlyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0Ow0KCX0sDQoNCgkvLyBUaGVzZSBhcmUgcGxhY2Vob2xkZXIgbWV0aG9kcywgdG8gYmUgb3ZlcnJpZGVuIGJ5IGV4dGVuZGluZyBwbHVnaW4NCglfbW91c2VTdGFydDogZnVuY3Rpb24oLyogZXZlbnQgKi8pIHt9LA0KCV9tb3VzZURyYWc6IGZ1bmN0aW9uKC8qIGV2ZW50ICovKSB7fSwNCglfbW91c2VTdG9wOiBmdW5jdGlvbigvKiBldmVudCAqLykge30sDQoJX21vdXNlQ2FwdHVyZTogZnVuY3Rpb24oLyogZXZlbnQgKi8pIHsgcmV0dXJuIHRydWU7IH0NCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFBvc2l0aW9uIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9wb3NpdGlvbi8NCiAqLw0KDQooZnVuY3Rpb24oKSB7DQoNCiQudWkgPSAkLnVpIHx8IHt9Ow0KDQp2YXIgY2FjaGVkU2Nyb2xsYmFyV2lkdGgsIHN1cHBvcnRzT2Zmc2V0RnJhY3Rpb25zLA0KCW1heCA9IE1hdGgubWF4LA0KCWFicyA9IE1hdGguYWJzLA0KCXJvdW5kID0gTWF0aC5yb3VuZCwNCglyaG9yaXpvbnRhbCA9IC9sZWZ0fGNlbnRlcnxyaWdodC8sDQoJcnZlcnRpY2FsID0gL3RvcHxjZW50ZXJ8Ym90dG9tLywNCglyb2Zmc2V0ID0gL1tcK1wtXVxkKyhcLltcZF0rKT8lPy8sDQoJcnBvc2l0aW9uID0gL15cdysvLA0KCXJwZXJjZW50ID0gLyUkLywNCglfcG9zaXRpb24gPSAkLmZuLnBvc2l0aW9uOw0KDQpmdW5jdGlvbiBnZXRPZmZzZXRzKCBvZmZzZXRzLCB3aWR0aCwgaGVpZ2h0ICkgew0KCXJldHVybiBbDQoJCXBhcnNlRmxvYXQoIG9mZnNldHNbIDAgXSApICogKCBycGVyY2VudC50ZXN0KCBvZmZzZXRzWyAwIF0gKSA/IHdpZHRoIC8gMTAwIDogMSApLA0KCQlwYXJzZUZsb2F0KCBvZmZzZXRzWyAxIF0gKSAqICggcnBlcmNlbnQudGVzdCggb2Zmc2V0c1sgMSBdICkgPyBoZWlnaHQgLyAxMDAgOiAxICkNCgldOw0KfQ0KDQpmdW5jdGlvbiBwYXJzZUNzcyggZWxlbWVudCwgcHJvcGVydHkgKSB7DQoJcmV0dXJuIHBhcnNlSW50KCAkLmNzcyggZWxlbWVudCwgcHJvcGVydHkgKSwgMTAgKSB8fCAwOw0KfQ0KDQpmdW5jdGlvbiBnZXREaW1lbnNpb25zKCBlbGVtICkgew0KCXZhciByYXcgPSBlbGVtWzBdOw0KCWlmICggcmF3Lm5vZGVUeXBlID09PSA5ICkgew0KCQlyZXR1cm4gew0KCQkJd2lkdGg6IGVsZW0ud2lkdGgoKSwNCgkJCWhlaWdodDogZWxlbS5oZWlnaHQoKSwNCgkJCW9mZnNldDogeyB0b3A6IDAsIGxlZnQ6IDAgfQ0KCQl9Ow0KCX0NCglpZiAoICQuaXNXaW5kb3coIHJhdyApICkgew0KCQlyZXR1cm4gew0KCQkJd2lkdGg6IGVsZW0ud2lkdGgoKSwNCgkJCWhlaWdodDogZWxlbS5oZWlnaHQoKSwNCgkJCW9mZnNldDogeyB0b3A6IGVsZW0uc2Nyb2xsVG9wKCksIGxlZnQ6IGVsZW0uc2Nyb2xsTGVmdCgpIH0NCgkJfTsNCgl9DQoJaWYgKCByYXcucHJldmVudERlZmF1bHQgKSB7DQoJCXJldHVybiB7DQoJCQl3aWR0aDogMCwNCgkJCWhlaWdodDogMCwNCgkJCW9mZnNldDogeyB0b3A6IHJhdy5wYWdlWSwgbGVmdDogcmF3LnBhZ2VYIH0NCgkJfTsNCgl9DQoJcmV0dXJuIHsNCgkJd2lkdGg6IGVsZW0ub3V0ZXJXaWR0aCgpLA0KCQloZWlnaHQ6IGVsZW0ub3V0ZXJIZWlnaHQoKSwNCgkJb2Zmc2V0OiBlbGVtLm9mZnNldCgpDQoJfTsNCn0NCg0KJC5wb3NpdGlvbiA9IHsNCglzY3JvbGxiYXJXaWR0aDogZnVuY3Rpb24oKSB7DQoJCWlmICggY2FjaGVkU2Nyb2xsYmFyV2lkdGggIT09IHVuZGVmaW5lZCApIHsNCgkJCXJldHVybiBjYWNoZWRTY3JvbGxiYXJXaWR0aDsNCgkJfQ0KCQl2YXIgdzEsIHcyLA0KCQkJZGl2ID0gJCggIjxkaXYgc3R5bGU9J2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtvdmVyZmxvdzpoaWRkZW47Jz48ZGl2IHN0eWxlPSdoZWlnaHQ6MTAwcHg7d2lkdGg6YXV0bzsnPjwvZGl2PjwvZGl2PiIgKSwNCgkJCWlubmVyRGl2ID0gZGl2LmNoaWxkcmVuKClbMF07DQoNCgkJJCggImJvZHkiICkuYXBwZW5kKCBkaXYgKTsNCgkJdzEgPSBpbm5lckRpdi5vZmZzZXRXaWR0aDsNCgkJZGl2LmNzcyggIm92ZXJmbG93IiwgInNjcm9sbCIgKTsNCg0KCQl3MiA9IGlubmVyRGl2Lm9mZnNldFdpZHRoOw0KDQoJCWlmICggdzEgPT09IHcyICkgew0KCQkJdzIgPSBkaXZbMF0uY2xpZW50V2lkdGg7DQoJCX0NCg0KCQlkaXYucmVtb3ZlKCk7DQoNCgkJcmV0dXJuIChjYWNoZWRTY3JvbGxiYXJXaWR0aCA9IHcxIC0gdzIpOw0KCX0sDQoJZ2V0U2Nyb2xsSW5mbzogZnVuY3Rpb24oIHdpdGhpbiApIHsNCgkJdmFyIG92ZXJmbG93WCA9IHdpdGhpbi5pc1dpbmRvdyB8fCB3aXRoaW4uaXNEb2N1bWVudCA/ICIiIDoNCgkJCQl3aXRoaW4uZWxlbWVudC5jc3MoICJvdmVyZmxvdy14IiApLA0KCQkJb3ZlcmZsb3dZID0gd2l0aGluLmlzV2luZG93IHx8IHdpdGhpbi5pc0RvY3VtZW50ID8gIiIgOg0KCQkJCXdpdGhpbi5lbGVtZW50LmNzcyggIm92ZXJmbG93LXkiICksDQoJCQloYXNPdmVyZmxvd1ggPSBvdmVyZmxvd1ggPT09ICJzY3JvbGwiIHx8DQoJCQkJKCBvdmVyZmxvd1ggPT09ICJhdXRvIiAmJiB3aXRoaW4ud2lkdGggPCB3aXRoaW4uZWxlbWVudFswXS5zY3JvbGxXaWR0aCApLA0KCQkJaGFzT3ZlcmZsb3dZID0gb3ZlcmZsb3dZID09PSAic2Nyb2xsIiB8fA0KCQkJCSggb3ZlcmZsb3dZID09PSAiYXV0byIgJiYgd2l0aGluLmhlaWdodCA8IHdpdGhpbi5lbGVtZW50WzBdLnNjcm9sbEhlaWdodCApOw0KCQlyZXR1cm4gew0KCQkJd2lkdGg6IGhhc092ZXJmbG93WSA/ICQucG9zaXRpb24uc2Nyb2xsYmFyV2lkdGgoKSA6IDAsDQoJCQloZWlnaHQ6IGhhc092ZXJmbG93WCA/ICQucG9zaXRpb24uc2Nyb2xsYmFyV2lkdGgoKSA6IDANCgkJfTsNCgl9LA0KCWdldFdpdGhpbkluZm86IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl2YXIgd2l0aGluRWxlbWVudCA9ICQoIGVsZW1lbnQgfHwgd2luZG93ICksDQoJCQlpc1dpbmRvdyA9ICQuaXNXaW5kb3coIHdpdGhpbkVsZW1lbnRbMF0gKSwNCgkJCWlzRG9jdW1lbnQgPSAhIXdpdGhpbkVsZW1lbnRbIDAgXSAmJiB3aXRoaW5FbGVtZW50WyAwIF0ubm9kZVR5cGUgPT09IDk7DQoJCXJldHVybiB7DQoJCQllbGVtZW50OiB3aXRoaW5FbGVtZW50LA0KCQkJaXNXaW5kb3c6IGlzV2luZG93LA0KCQkJaXNEb2N1bWVudDogaXNEb2N1bWVudCwNCgkJCW9mZnNldDogd2l0aGluRWxlbWVudC5vZmZzZXQoKSB8fCB7IGxlZnQ6IDAsIHRvcDogMCB9LA0KCQkJc2Nyb2xsTGVmdDogd2l0aGluRWxlbWVudC5zY3JvbGxMZWZ0KCksDQoJCQlzY3JvbGxUb3A6IHdpdGhpbkVsZW1lbnQuc2Nyb2xsVG9wKCksDQoNCgkJCS8vIHN1cHBvcnQ6IGpRdWVyeSAxLjYueA0KCQkJLy8galF1ZXJ5IDEuNiBkb2Vzbid0IHN1cHBvcnQgLm91dGVyV2lkdGgvSGVpZ2h0KCkgb24gZG9jdW1lbnRzIG9yIHdpbmRvd3MNCgkJCXdpZHRoOiBpc1dpbmRvdyB8fCBpc0RvY3VtZW50ID8gd2l0aGluRWxlbWVudC53aWR0aCgpIDogd2l0aGluRWxlbWVudC5vdXRlcldpZHRoKCksDQoJCQloZWlnaHQ6IGlzV2luZG93IHx8IGlzRG9jdW1lbnQgPyB3aXRoaW5FbGVtZW50LmhlaWdodCgpIDogd2l0aGluRWxlbWVudC5vdXRlckhlaWdodCgpDQoJCX07DQoJfQ0KfTsNCg0KJC5mbi5wb3NpdGlvbiA9IGZ1bmN0aW9uKCBvcHRpb25zICkgew0KCWlmICggIW9wdGlvbnMgfHwgIW9wdGlvbnMub2YgKSB7DQoJCXJldHVybiBfcG9zaXRpb24uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCX0NCg0KCS8vIG1ha2UgYSBjb3B5LCB3ZSBkb24ndCB3YW50IHRvIG1vZGlmeSBhcmd1bWVudHMNCglvcHRpb25zID0gJC5leHRlbmQoIHt9LCBvcHRpb25zICk7DQoNCgl2YXIgYXRPZmZzZXQsIHRhcmdldFdpZHRoLCB0YXJnZXRIZWlnaHQsIHRhcmdldE9mZnNldCwgYmFzZVBvc2l0aW9uLCBkaW1lbnNpb25zLA0KCQl0YXJnZXQgPSAkKCBvcHRpb25zLm9mICksDQoJCXdpdGhpbiA9ICQucG9zaXRpb24uZ2V0V2l0aGluSW5mbyggb3B0aW9ucy53aXRoaW4gKSwNCgkJc2Nyb2xsSW5mbyA9ICQucG9zaXRpb24uZ2V0U2Nyb2xsSW5mbyggd2l0aGluICksDQoJCWNvbGxpc2lvbiA9ICggb3B0aW9ucy5jb2xsaXNpb24gfHwgImZsaXAiICkuc3BsaXQoICIgIiApLA0KCQlvZmZzZXRzID0ge307DQoNCglkaW1lbnNpb25zID0gZ2V0RGltZW5zaW9ucyggdGFyZ2V0ICk7DQoJaWYgKCB0YXJnZXRbMF0ucHJldmVudERlZmF1bHQgKSB7DQoJCS8vIGZvcmNlIGxlZnQgdG9wIHRvIGFsbG93IGZsaXBwaW5nDQoJCW9wdGlvbnMuYXQgPSAibGVmdCB0b3AiOw0KCX0NCgl0YXJnZXRXaWR0aCA9IGRpbWVuc2lvbnMud2lkdGg7DQoJdGFyZ2V0SGVpZ2h0ID0gZGltZW5zaW9ucy5oZWlnaHQ7DQoJdGFyZ2V0T2Zmc2V0ID0gZGltZW5zaW9ucy5vZmZzZXQ7DQoJLy8gY2xvbmUgdG8gcmV1c2Ugb3JpZ2luYWwgdGFyZ2V0T2Zmc2V0IGxhdGVyDQoJYmFzZVBvc2l0aW9uID0gJC5leHRlbmQoIHt9LCB0YXJnZXRPZmZzZXQgKTsNCg0KCS8vIGZvcmNlIG15IGFuZCBhdCB0byBoYXZlIHZhbGlkIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIHBvc2l0aW9ucw0KCS8vIGlmIGEgdmFsdWUgaXMgbWlzc2luZyBvciBpbnZhbGlkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBjZW50ZXINCgkkLmVhY2goIFsgIm15IiwgImF0IiBdLCBmdW5jdGlvbigpIHsNCgkJdmFyIHBvcyA9ICggb3B0aW9uc1sgdGhpcyBdIHx8ICIiICkuc3BsaXQoICIgIiApLA0KCQkJaG9yaXpvbnRhbE9mZnNldCwNCgkJCXZlcnRpY2FsT2Zmc2V0Ow0KDQoJCWlmICggcG9zLmxlbmd0aCA9PT0gMSkgew0KCQkJcG9zID0gcmhvcml6b250YWwudGVzdCggcG9zWyAwIF0gKSA/DQoJCQkJcG9zLmNvbmNhdCggWyAiY2VudGVyIiBdICkgOg0KCQkJCXJ2ZXJ0aWNhbC50ZXN0KCBwb3NbIDAgXSApID8NCgkJCQkJWyAiY2VudGVyIiBdLmNvbmNhdCggcG9zICkgOg0KCQkJCQlbICJjZW50ZXIiLCAiY2VudGVyIiBdOw0KCQl9DQoJCXBvc1sgMCBdID0gcmhvcml6b250YWwudGVzdCggcG9zWyAwIF0gKSA/IHBvc1sgMCBdIDogImNlbnRlciI7DQoJCXBvc1sgMSBdID0gcnZlcnRpY2FsLnRlc3QoIHBvc1sgMSBdICkgPyBwb3NbIDEgXSA6ICJjZW50ZXIiOw0KDQoJCS8vIGNhbGN1bGF0ZSBvZmZzZXRzDQoJCWhvcml6b250YWxPZmZzZXQgPSByb2Zmc2V0LmV4ZWMoIHBvc1sgMCBdICk7DQoJCXZlcnRpY2FsT2Zmc2V0ID0gcm9mZnNldC5leGVjKCBwb3NbIDEgXSApOw0KCQlvZmZzZXRzWyB0aGlzIF0gPSBbDQoJCQlob3Jpem9udGFsT2Zmc2V0ID8gaG9yaXpvbnRhbE9mZnNldFsgMCBdIDogMCwNCgkJCXZlcnRpY2FsT2Zmc2V0ID8gdmVydGljYWxPZmZzZXRbIDAgXSA6IDANCgkJXTsNCg0KCQkvLyByZWR1Y2UgdG8ganVzdCB0aGUgcG9zaXRpb25zIHdpdGhvdXQgdGhlIG9mZnNldHMNCgkJb3B0aW9uc1sgdGhpcyBdID0gWw0KCQkJcnBvc2l0aW9uLmV4ZWMoIHBvc1sgMCBdIClbIDAgXSwNCgkJCXJwb3NpdGlvbi5leGVjKCBwb3NbIDEgXSApWyAwIF0NCgkJXTsNCgl9KTsNCg0KCS8vIG5vcm1hbGl6ZSBjb2xsaXNpb24gb3B0aW9uDQoJaWYgKCBjb2xsaXNpb24ubGVuZ3RoID09PSAxICkgew0KCQljb2xsaXNpb25bIDEgXSA9IGNvbGxpc2lvblsgMCBdOw0KCX0NCg0KCWlmICggb3B0aW9ucy5hdFsgMCBdID09PSAicmlnaHQiICkgew0KCQliYXNlUG9zaXRpb24ubGVmdCArPSB0YXJnZXRXaWR0aDsNCgl9IGVsc2UgaWYgKCBvcHRpb25zLmF0WyAwIF0gPT09ICJjZW50ZXIiICkgew0KCQliYXNlUG9zaXRpb24ubGVmdCArPSB0YXJnZXRXaWR0aCAvIDI7DQoJfQ0KDQoJaWYgKCBvcHRpb25zLmF0WyAxIF0gPT09ICJib3R0b20iICkgew0KCQliYXNlUG9zaXRpb24udG9wICs9IHRhcmdldEhlaWdodDsNCgl9IGVsc2UgaWYgKCBvcHRpb25zLmF0WyAxIF0gPT09ICJjZW50ZXIiICkgew0KCQliYXNlUG9zaXRpb24udG9wICs9IHRhcmdldEhlaWdodCAvIDI7DQoJfQ0KDQoJYXRPZmZzZXQgPSBnZXRPZmZzZXRzKCBvZmZzZXRzLmF0LCB0YXJnZXRXaWR0aCwgdGFyZ2V0SGVpZ2h0ICk7DQoJYmFzZVBvc2l0aW9uLmxlZnQgKz0gYXRPZmZzZXRbIDAgXTsNCgliYXNlUG9zaXRpb24udG9wICs9IGF0T2Zmc2V0WyAxIF07DQoNCglyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQl2YXIgY29sbGlzaW9uUG9zaXRpb24sIHVzaW5nLA0KCQkJZWxlbSA9ICQoIHRoaXMgKSwNCgkJCWVsZW1XaWR0aCA9IGVsZW0ub3V0ZXJXaWR0aCgpLA0KCQkJZWxlbUhlaWdodCA9IGVsZW0ub3V0ZXJIZWlnaHQoKSwNCgkJCW1hcmdpbkxlZnQgPSBwYXJzZUNzcyggdGhpcywgIm1hcmdpbkxlZnQiICksDQoJCQltYXJnaW5Ub3AgPSBwYXJzZUNzcyggdGhpcywgIm1hcmdpblRvcCIgKSwNCgkJCWNvbGxpc2lvbldpZHRoID0gZWxlbVdpZHRoICsgbWFyZ2luTGVmdCArIHBhcnNlQ3NzKCB0aGlzLCAibWFyZ2luUmlnaHQiICkgKyBzY3JvbGxJbmZvLndpZHRoLA0KCQkJY29sbGlzaW9uSGVpZ2h0ID0gZWxlbUhlaWdodCArIG1hcmdpblRvcCArIHBhcnNlQ3NzKCB0aGlzLCAibWFyZ2luQm90dG9tIiApICsgc2Nyb2xsSW5mby5oZWlnaHQsDQoJCQlwb3NpdGlvbiA9ICQuZXh0ZW5kKCB7fSwgYmFzZVBvc2l0aW9uICksDQoJCQlteU9mZnNldCA9IGdldE9mZnNldHMoIG9mZnNldHMubXksIGVsZW0ub3V0ZXJXaWR0aCgpLCBlbGVtLm91dGVySGVpZ2h0KCkgKTsNCg0KCQlpZiAoIG9wdGlvbnMubXlbIDAgXSA9PT0gInJpZ2h0IiApIHsNCgkJCXBvc2l0aW9uLmxlZnQgLT0gZWxlbVdpZHRoOw0KCQl9IGVsc2UgaWYgKCBvcHRpb25zLm15WyAwIF0gPT09ICJjZW50ZXIiICkgew0KCQkJcG9zaXRpb24ubGVmdCAtPSBlbGVtV2lkdGggLyAyOw0KCQl9DQoNCgkJaWYgKCBvcHRpb25zLm15WyAxIF0gPT09ICJib3R0b20iICkgew0KCQkJcG9zaXRpb24udG9wIC09IGVsZW1IZWlnaHQ7DQoJCX0gZWxzZSBpZiAoIG9wdGlvbnMubXlbIDEgXSA9PT0gImNlbnRlciIgKSB7DQoJCQlwb3NpdGlvbi50b3AgLT0gZWxlbUhlaWdodCAvIDI7DQoJCX0NCg0KCQlwb3NpdGlvbi5sZWZ0ICs9IG15T2Zmc2V0WyAwIF07DQoJCXBvc2l0aW9uLnRvcCArPSBteU9mZnNldFsgMSBdOw0KDQoJCS8vIGlmIHRoZSBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBmcmFjdGlvbnMsIHRoZW4gcm91bmQgZm9yIGNvbnNpc3RlbnQgcmVzdWx0cw0KCQlpZiAoICFzdXBwb3J0c09mZnNldEZyYWN0aW9ucyApIHsNCgkJCXBvc2l0aW9uLmxlZnQgPSByb3VuZCggcG9zaXRpb24ubGVmdCApOw0KCQkJcG9zaXRpb24udG9wID0gcm91bmQoIHBvc2l0aW9uLnRvcCApOw0KCQl9DQoNCgkJY29sbGlzaW9uUG9zaXRpb24gPSB7DQoJCQltYXJnaW5MZWZ0OiBtYXJnaW5MZWZ0LA0KCQkJbWFyZ2luVG9wOiBtYXJnaW5Ub3ANCgkJfTsNCg0KCQkkLmVhY2goIFsgImxlZnQiLCAidG9wIiBdLCBmdW5jdGlvbiggaSwgZGlyICkgew0KCQkJaWYgKCAkLnVpLnBvc2l0aW9uWyBjb2xsaXNpb25bIGkgXSBdICkgew0KCQkJCSQudWkucG9zaXRpb25bIGNvbGxpc2lvblsgaSBdIF1bIGRpciBdKCBwb3NpdGlvbiwgew0KCQkJCQl0YXJnZXRXaWR0aDogdGFyZ2V0V2lkdGgsDQoJCQkJCXRhcmdldEhlaWdodDogdGFyZ2V0SGVpZ2h0LA0KCQkJCQllbGVtV2lkdGg6IGVsZW1XaWR0aCwNCgkJCQkJZWxlbUhlaWdodDogZWxlbUhlaWdodCwNCgkJCQkJY29sbGlzaW9uUG9zaXRpb246IGNvbGxpc2lvblBvc2l0aW9uLA0KCQkJCQljb2xsaXNpb25XaWR0aDogY29sbGlzaW9uV2lkdGgsDQoJCQkJCWNvbGxpc2lvbkhlaWdodDogY29sbGlzaW9uSGVpZ2h0LA0KCQkJCQlvZmZzZXQ6IFsgYXRPZmZzZXRbIDAgXSArIG15T2Zmc2V0WyAwIF0sIGF0T2Zmc2V0IFsgMSBdICsgbXlPZmZzZXRbIDEgXSBdLA0KCQkJCQlteTogb3B0aW9ucy5teSwNCgkJCQkJYXQ6IG9wdGlvbnMuYXQsDQoJCQkJCXdpdGhpbjogd2l0aGluLA0KCQkJCQllbGVtOiBlbGVtDQoJCQkJfSk7DQoJCQl9DQoJCX0pOw0KDQoJCWlmICggb3B0aW9ucy51c2luZyApIHsNCgkJCS8vIGFkZHMgZmVlZGJhY2sgYXMgc2Vjb25kIGFyZ3VtZW50IHRvIHVzaW5nIGNhbGxiYWNrLCBpZiBwcmVzZW50DQoJCQl1c2luZyA9IGZ1bmN0aW9uKCBwcm9wcyApIHsNCgkJCQl2YXIgbGVmdCA9IHRhcmdldE9mZnNldC5sZWZ0IC0gcG9zaXRpb24ubGVmdCwNCgkJCQkJcmlnaHQgPSBsZWZ0ICsgdGFyZ2V0V2lkdGggLSBlbGVtV2lkdGgsDQoJCQkJCXRvcCA9IHRhcmdldE9mZnNldC50b3AgLSBwb3NpdGlvbi50b3AsDQoJCQkJCWJvdHRvbSA9IHRvcCArIHRhcmdldEhlaWdodCAtIGVsZW1IZWlnaHQsDQoJCQkJCWZlZWRiYWNrID0gew0KCQkJCQkJdGFyZ2V0OiB7DQoJCQkJCQkJZWxlbWVudDogdGFyZ2V0LA0KCQkJCQkJCWxlZnQ6IHRhcmdldE9mZnNldC5sZWZ0LA0KCQkJCQkJCXRvcDogdGFyZ2V0T2Zmc2V0LnRvcCwNCgkJCQkJCQl3aWR0aDogdGFyZ2V0V2lkdGgsDQoJCQkJCQkJaGVpZ2h0OiB0YXJnZXRIZWlnaHQNCgkJCQkJCX0sDQoJCQkJCQllbGVtZW50OiB7DQoJCQkJCQkJZWxlbWVudDogZWxlbSwNCgkJCQkJCQlsZWZ0OiBwb3NpdGlvbi5sZWZ0LA0KCQkJCQkJCXRvcDogcG9zaXRpb24udG9wLA0KCQkJCQkJCXdpZHRoOiBlbGVtV2lkdGgsDQoJCQkJCQkJaGVpZ2h0OiBlbGVtSGVpZ2h0DQoJCQkJCQl9LA0KCQkJCQkJaG9yaXpvbnRhbDogcmlnaHQgPCAwID8gImxlZnQiIDogbGVmdCA+IDAgPyAicmlnaHQiIDogImNlbnRlciIsDQoJCQkJCQl2ZXJ0aWNhbDogYm90dG9tIDwgMCA/ICJ0b3AiIDogdG9wID4gMCA/ICJib3R0b20iIDogIm1pZGRsZSINCgkJCQkJfTsNCgkJCQlpZiAoIHRhcmdldFdpZHRoIDwgZWxlbVdpZHRoICYmIGFicyggbGVmdCArIHJpZ2h0ICkgPCB0YXJnZXRXaWR0aCApIHsNCgkJCQkJZmVlZGJhY2suaG9yaXpvbnRhbCA9ICJjZW50ZXIiOw0KCQkJCX0NCgkJCQlpZiAoIHRhcmdldEhlaWdodCA8IGVsZW1IZWlnaHQgJiYgYWJzKCB0b3AgKyBib3R0b20gKSA8IHRhcmdldEhlaWdodCApIHsNCgkJCQkJZmVlZGJhY2sudmVydGljYWwgPSAibWlkZGxlIjsNCgkJCQl9DQoJCQkJaWYgKCBtYXgoIGFicyggbGVmdCApLCBhYnMoIHJpZ2h0ICkgKSA+IG1heCggYWJzKCB0b3AgKSwgYWJzKCBib3R0b20gKSApICkgew0KCQkJCQlmZWVkYmFjay5pbXBvcnRhbnQgPSAiaG9yaXpvbnRhbCI7DQoJCQkJfSBlbHNlIHsNCgkJCQkJZmVlZGJhY2suaW1wb3J0YW50ID0gInZlcnRpY2FsIjsNCgkJCQl9DQoJCQkJb3B0aW9ucy51c2luZy5jYWxsKCB0aGlzLCBwcm9wcywgZmVlZGJhY2sgKTsNCgkJCX07DQoJCX0NCg0KCQllbGVtLm9mZnNldCggJC5leHRlbmQoIHBvc2l0aW9uLCB7IHVzaW5nOiB1c2luZyB9ICkgKTsNCgl9KTsNCn07DQoNCiQudWkucG9zaXRpb24gPSB7DQoJZml0OiB7DQoJCWxlZnQ6IGZ1bmN0aW9uKCBwb3NpdGlvbiwgZGF0YSApIHsNCgkJCXZhciB3aXRoaW4gPSBkYXRhLndpdGhpbiwNCgkJCQl3aXRoaW5PZmZzZXQgPSB3aXRoaW4uaXNXaW5kb3cgPyB3aXRoaW4uc2Nyb2xsTGVmdCA6IHdpdGhpbi5vZmZzZXQubGVmdCwNCgkJCQlvdXRlcldpZHRoID0gd2l0aGluLndpZHRoLA0KCQkJCWNvbGxpc2lvblBvc0xlZnQgPSBwb3NpdGlvbi5sZWZ0IC0gZGF0YS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LA0KCQkJCW92ZXJMZWZ0ID0gd2l0aGluT2Zmc2V0IC0gY29sbGlzaW9uUG9zTGVmdCwNCgkJCQlvdmVyUmlnaHQgPSBjb2xsaXNpb25Qb3NMZWZ0ICsgZGF0YS5jb2xsaXNpb25XaWR0aCAtIG91dGVyV2lkdGggLSB3aXRoaW5PZmZzZXQsDQoJCQkJbmV3T3ZlclJpZ2h0Ow0KDQoJCQkvLyBlbGVtZW50IGlzIHdpZGVyIHRoYW4gd2l0aGluDQoJCQlpZiAoIGRhdGEuY29sbGlzaW9uV2lkdGggPiBvdXRlcldpZHRoICkgew0KCQkJCS8vIGVsZW1lbnQgaXMgaW5pdGlhbGx5IG92ZXIgdGhlIGxlZnQgc2lkZSBvZiB3aXRoaW4NCgkJCQlpZiAoIG92ZXJMZWZ0ID4gMCAmJiBvdmVyUmlnaHQgPD0gMCApIHsNCgkJCQkJbmV3T3ZlclJpZ2h0ID0gcG9zaXRpb24ubGVmdCArIG92ZXJMZWZ0ICsgZGF0YS5jb2xsaXNpb25XaWR0aCAtIG91dGVyV2lkdGggLSB3aXRoaW5PZmZzZXQ7DQoJCQkJCXBvc2l0aW9uLmxlZnQgKz0gb3ZlckxlZnQgLSBuZXdPdmVyUmlnaHQ7DQoJCQkJLy8gZWxlbWVudCBpcyBpbml0aWFsbHkgb3ZlciByaWdodCBzaWRlIG9mIHdpdGhpbg0KCQkJCX0gZWxzZSBpZiAoIG92ZXJSaWdodCA+IDAgJiYgb3ZlckxlZnQgPD0gMCApIHsNCgkJCQkJcG9zaXRpb24ubGVmdCA9IHdpdGhpbk9mZnNldDsNCgkJCQkvLyBlbGVtZW50IGlzIGluaXRpYWxseSBvdmVyIGJvdGggbGVmdCBhbmQgcmlnaHQgc2lkZXMgb2Ygd2l0aGluDQoJCQkJfSBlbHNlIHsNCgkJCQkJaWYgKCBvdmVyTGVmdCA+IG92ZXJSaWdodCApIHsNCgkJCQkJCXBvc2l0aW9uLmxlZnQgPSB3aXRoaW5PZmZzZXQgKyBvdXRlcldpZHRoIC0gZGF0YS5jb2xsaXNpb25XaWR0aDsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCXBvc2l0aW9uLmxlZnQgPSB3aXRoaW5PZmZzZXQ7DQoJCQkJCX0NCgkJCQl9DQoJCQkvLyB0b28gZmFyIGxlZnQgLT4gYWxpZ24gd2l0aCBsZWZ0IGVkZ2UNCgkJCX0gZWxzZSBpZiAoIG92ZXJMZWZ0ID4gMCApIHsNCgkJCQlwb3NpdGlvbi5sZWZ0ICs9IG92ZXJMZWZ0Ow0KCQkJLy8gdG9vIGZhciByaWdodCAtPiBhbGlnbiB3aXRoIHJpZ2h0IGVkZ2UNCgkJCX0gZWxzZSBpZiAoIG92ZXJSaWdodCA+IDAgKSB7DQoJCQkJcG9zaXRpb24ubGVmdCAtPSBvdmVyUmlnaHQ7DQoJCQkvLyBhZGp1c3QgYmFzZWQgb24gcG9zaXRpb24gYW5kIG1hcmdpbg0KCQkJfSBlbHNlIHsNCgkJCQlwb3NpdGlvbi5sZWZ0ID0gbWF4KCBwb3NpdGlvbi5sZWZ0IC0gY29sbGlzaW9uUG9zTGVmdCwgcG9zaXRpb24ubGVmdCApOw0KCQkJfQ0KCQl9LA0KCQl0b3A6IGZ1bmN0aW9uKCBwb3NpdGlvbiwgZGF0YSApIHsNCgkJCXZhciB3aXRoaW4gPSBkYXRhLndpdGhpbiwNCgkJCQl3aXRoaW5PZmZzZXQgPSB3aXRoaW4uaXNXaW5kb3cgPyB3aXRoaW4uc2Nyb2xsVG9wIDogd2l0aGluLm9mZnNldC50b3AsDQoJCQkJb3V0ZXJIZWlnaHQgPSBkYXRhLndpdGhpbi5oZWlnaHQsDQoJCQkJY29sbGlzaW9uUG9zVG9wID0gcG9zaXRpb24udG9wIC0gZGF0YS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3AsDQoJCQkJb3ZlclRvcCA9IHdpdGhpbk9mZnNldCAtIGNvbGxpc2lvblBvc1RvcCwNCgkJCQlvdmVyQm90dG9tID0gY29sbGlzaW9uUG9zVG9wICsgZGF0YS5jb2xsaXNpb25IZWlnaHQgLSBvdXRlckhlaWdodCAtIHdpdGhpbk9mZnNldCwNCgkJCQluZXdPdmVyQm90dG9tOw0KDQoJCQkvLyBlbGVtZW50IGlzIHRhbGxlciB0aGFuIHdpdGhpbg0KCQkJaWYgKCBkYXRhLmNvbGxpc2lvbkhlaWdodCA+IG91dGVySGVpZ2h0ICkgew0KCQkJCS8vIGVsZW1lbnQgaXMgaW5pdGlhbGx5IG92ZXIgdGhlIHRvcCBvZiB3aXRoaW4NCgkJCQlpZiAoIG92ZXJUb3AgPiAwICYmIG92ZXJCb3R0b20gPD0gMCApIHsNCgkJCQkJbmV3T3ZlckJvdHRvbSA9IHBvc2l0aW9uLnRvcCArIG92ZXJUb3AgKyBkYXRhLmNvbGxpc2lvbkhlaWdodCAtIG91dGVySGVpZ2h0IC0gd2l0aGluT2Zmc2V0Ow0KCQkJCQlwb3NpdGlvbi50b3AgKz0gb3ZlclRvcCAtIG5ld092ZXJCb3R0b207DQoJCQkJLy8gZWxlbWVudCBpcyBpbml0aWFsbHkgb3ZlciBib3R0b20gb2Ygd2l0aGluDQoJCQkJfSBlbHNlIGlmICggb3ZlckJvdHRvbSA+IDAgJiYgb3ZlclRvcCA8PSAwICkgew0KCQkJCQlwb3NpdGlvbi50b3AgPSB3aXRoaW5PZmZzZXQ7DQoJCQkJLy8gZWxlbWVudCBpcyBpbml0aWFsbHkgb3ZlciBib3RoIHRvcCBhbmQgYm90dG9tIG9mIHdpdGhpbg0KCQkJCX0gZWxzZSB7DQoJCQkJCWlmICggb3ZlclRvcCA+IG92ZXJCb3R0b20gKSB7DQoJCQkJCQlwb3NpdGlvbi50b3AgPSB3aXRoaW5PZmZzZXQgKyBvdXRlckhlaWdodCAtIGRhdGEuY29sbGlzaW9uSGVpZ2h0Ow0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJcG9zaXRpb24udG9wID0gd2l0aGluT2Zmc2V0Ow0KCQkJCQl9DQoJCQkJfQ0KCQkJLy8gdG9vIGZhciB1cCAtPiBhbGlnbiB3aXRoIHRvcA0KCQkJfSBlbHNlIGlmICggb3ZlclRvcCA+IDAgKSB7DQoJCQkJcG9zaXRpb24udG9wICs9IG92ZXJUb3A7DQoJCQkvLyB0b28gZmFyIGRvd24gLT4gYWxpZ24gd2l0aCBib3R0b20gZWRnZQ0KCQkJfSBlbHNlIGlmICggb3ZlckJvdHRvbSA+IDAgKSB7DQoJCQkJcG9zaXRpb24udG9wIC09IG92ZXJCb3R0b207DQoJCQkvLyBhZGp1c3QgYmFzZWQgb24gcG9zaXRpb24gYW5kIG1hcmdpbg0KCQkJfSBlbHNlIHsNCgkJCQlwb3NpdGlvbi50b3AgPSBtYXgoIHBvc2l0aW9uLnRvcCAtIGNvbGxpc2lvblBvc1RvcCwgcG9zaXRpb24udG9wICk7DQoJCQl9DQoJCX0NCgl9LA0KCWZsaXA6IHsNCgkJbGVmdDogZnVuY3Rpb24oIHBvc2l0aW9uLCBkYXRhICkgew0KCQkJdmFyIHdpdGhpbiA9IGRhdGEud2l0aGluLA0KCQkJCXdpdGhpbk9mZnNldCA9IHdpdGhpbi5vZmZzZXQubGVmdCArIHdpdGhpbi5zY3JvbGxMZWZ0LA0KCQkJCW91dGVyV2lkdGggPSB3aXRoaW4ud2lkdGgsDQoJCQkJb2Zmc2V0TGVmdCA9IHdpdGhpbi5pc1dpbmRvdyA/IHdpdGhpbi5zY3JvbGxMZWZ0IDogd2l0aGluLm9mZnNldC5sZWZ0LA0KCQkJCWNvbGxpc2lvblBvc0xlZnQgPSBwb3NpdGlvbi5sZWZ0IC0gZGF0YS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LA0KCQkJCW92ZXJMZWZ0ID0gY29sbGlzaW9uUG9zTGVmdCAtIG9mZnNldExlZnQsDQoJCQkJb3ZlclJpZ2h0ID0gY29sbGlzaW9uUG9zTGVmdCArIGRhdGEuY29sbGlzaW9uV2lkdGggLSBvdXRlcldpZHRoIC0gb2Zmc2V0TGVmdCwNCgkJCQlteU9mZnNldCA9IGRhdGEubXlbIDAgXSA9PT0gImxlZnQiID8NCgkJCQkJLWRhdGEuZWxlbVdpZHRoIDoNCgkJCQkJZGF0YS5teVsgMCBdID09PSAicmlnaHQiID8NCgkJCQkJCWRhdGEuZWxlbVdpZHRoIDoNCgkJCQkJCTAsDQoJCQkJYXRPZmZzZXQgPSBkYXRhLmF0WyAwIF0gPT09ICJsZWZ0IiA/DQoJCQkJCWRhdGEudGFyZ2V0V2lkdGggOg0KCQkJCQlkYXRhLmF0WyAwIF0gPT09ICJyaWdodCIgPw0KCQkJCQkJLWRhdGEudGFyZ2V0V2lkdGggOg0KCQkJCQkJMCwNCgkJCQlvZmZzZXQgPSAtMiAqIGRhdGEub2Zmc2V0WyAwIF0sDQoJCQkJbmV3T3ZlclJpZ2h0LA0KCQkJCW5ld092ZXJMZWZ0Ow0KDQoJCQlpZiAoIG92ZXJMZWZ0IDwgMCApIHsNCgkJCQluZXdPdmVyUmlnaHQgPSBwb3NpdGlvbi5sZWZ0ICsgbXlPZmZzZXQgKyBhdE9mZnNldCArIG9mZnNldCArIGRhdGEuY29sbGlzaW9uV2lkdGggLSBvdXRlcldpZHRoIC0gd2l0aGluT2Zmc2V0Ow0KCQkJCWlmICggbmV3T3ZlclJpZ2h0IDwgMCB8fCBuZXdPdmVyUmlnaHQgPCBhYnMoIG92ZXJMZWZ0ICkgKSB7DQoJCQkJCXBvc2l0aW9uLmxlZnQgKz0gbXlPZmZzZXQgKyBhdE9mZnNldCArIG9mZnNldDsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCBvdmVyUmlnaHQgPiAwICkgew0KCQkJCW5ld092ZXJMZWZ0ID0gcG9zaXRpb24ubGVmdCAtIGRhdGEuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luTGVmdCArIG15T2Zmc2V0ICsgYXRPZmZzZXQgKyBvZmZzZXQgLSBvZmZzZXRMZWZ0Ow0KCQkJCWlmICggbmV3T3ZlckxlZnQgPiAwIHx8IGFicyggbmV3T3ZlckxlZnQgKSA8IG92ZXJSaWdodCApIHsNCgkJCQkJcG9zaXRpb24ubGVmdCArPSBteU9mZnNldCArIGF0T2Zmc2V0ICsgb2Zmc2V0Ow0KCQkJCX0NCgkJCX0NCgkJfSwNCgkJdG9wOiBmdW5jdGlvbiggcG9zaXRpb24sIGRhdGEgKSB7DQoJCQl2YXIgd2l0aGluID0gZGF0YS53aXRoaW4sDQoJCQkJd2l0aGluT2Zmc2V0ID0gd2l0aGluLm9mZnNldC50b3AgKyB3aXRoaW4uc2Nyb2xsVG9wLA0KCQkJCW91dGVySGVpZ2h0ID0gd2l0aGluLmhlaWdodCwNCgkJCQlvZmZzZXRUb3AgPSB3aXRoaW4uaXNXaW5kb3cgPyB3aXRoaW4uc2Nyb2xsVG9wIDogd2l0aGluLm9mZnNldC50b3AsDQoJCQkJY29sbGlzaW9uUG9zVG9wID0gcG9zaXRpb24udG9wIC0gZGF0YS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3AsDQoJCQkJb3ZlclRvcCA9IGNvbGxpc2lvblBvc1RvcCAtIG9mZnNldFRvcCwNCgkJCQlvdmVyQm90dG9tID0gY29sbGlzaW9uUG9zVG9wICsgZGF0YS5jb2xsaXNpb25IZWlnaHQgLSBvdXRlckhlaWdodCAtIG9mZnNldFRvcCwNCgkJCQl0b3AgPSBkYXRhLm15WyAxIF0gPT09ICJ0b3AiLA0KCQkJCW15T2Zmc2V0ID0gdG9wID8NCgkJCQkJLWRhdGEuZWxlbUhlaWdodCA6DQoJCQkJCWRhdGEubXlbIDEgXSA9PT0gImJvdHRvbSIgPw0KCQkJCQkJZGF0YS5lbGVtSGVpZ2h0IDoNCgkJCQkJCTAsDQoJCQkJYXRPZmZzZXQgPSBkYXRhLmF0WyAxIF0gPT09ICJ0b3AiID8NCgkJCQkJZGF0YS50YXJnZXRIZWlnaHQgOg0KCQkJCQlkYXRhLmF0WyAxIF0gPT09ICJib3R0b20iID8NCgkJCQkJCS1kYXRhLnRhcmdldEhlaWdodCA6DQoJCQkJCQkwLA0KCQkJCW9mZnNldCA9IC0yICogZGF0YS5vZmZzZXRbIDEgXSwNCgkJCQluZXdPdmVyVG9wLA0KCQkJCW5ld092ZXJCb3R0b207DQoJCQlpZiAoIG92ZXJUb3AgPCAwICkgew0KCQkJCW5ld092ZXJCb3R0b20gPSBwb3NpdGlvbi50b3AgKyBteU9mZnNldCArIGF0T2Zmc2V0ICsgb2Zmc2V0ICsgZGF0YS5jb2xsaXNpb25IZWlnaHQgLSBvdXRlckhlaWdodCAtIHdpdGhpbk9mZnNldDsNCgkJCQlpZiAoICggcG9zaXRpb24udG9wICsgbXlPZmZzZXQgKyBhdE9mZnNldCArIG9mZnNldCkgPiBvdmVyVG9wICYmICggbmV3T3ZlckJvdHRvbSA8IDAgfHwgbmV3T3ZlckJvdHRvbSA8IGFicyggb3ZlclRvcCApICkgKSB7DQoJCQkJCXBvc2l0aW9uLnRvcCArPSBteU9mZnNldCArIGF0T2Zmc2V0ICsgb2Zmc2V0Ow0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoIG92ZXJCb3R0b20gPiAwICkgew0KCQkJCW5ld092ZXJUb3AgPSBwb3NpdGlvbi50b3AgLSBkYXRhLmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpblRvcCArIG15T2Zmc2V0ICsgYXRPZmZzZXQgKyBvZmZzZXQgLSBvZmZzZXRUb3A7DQoJCQkJaWYgKCAoIHBvc2l0aW9uLnRvcCArIG15T2Zmc2V0ICsgYXRPZmZzZXQgKyBvZmZzZXQpID4gb3ZlckJvdHRvbSAmJiAoIG5ld092ZXJUb3AgPiAwIHx8IGFicyggbmV3T3ZlclRvcCApIDwgb3ZlckJvdHRvbSApICkgew0KCQkJCQlwb3NpdGlvbi50b3AgKz0gbXlPZmZzZXQgKyBhdE9mZnNldCArIG9mZnNldDsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9LA0KCWZsaXBmaXQ6IHsNCgkJbGVmdDogZnVuY3Rpb24oKSB7DQoJCQkkLnVpLnBvc2l0aW9uLmZsaXAubGVmdC5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkkLnVpLnBvc2l0aW9uLmZpdC5sZWZ0LmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfSwNCgkJdG9wOiBmdW5jdGlvbigpIHsNCgkJCSQudWkucG9zaXRpb24uZmxpcC50b3AuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJJC51aS5wb3NpdGlvbi5maXQudG9wLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfQ0KCX0NCn07DQoNCi8vIGZyYWN0aW9uIHN1cHBvcnQgdGVzdA0KKGZ1bmN0aW9uKCkgew0KCXZhciB0ZXN0RWxlbWVudCwgdGVzdEVsZW1lbnRQYXJlbnQsIHRlc3RFbGVtZW50U3R5bGUsIG9mZnNldExlZnQsIGksDQoJCWJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSggImJvZHkiIClbIDAgXSwNCgkJZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImRpdiIgKTsNCg0KCS8vQ3JlYXRlIGEgImZha2UgYm9keSIgZm9yIHRlc3RpbmcgYmFzZWQgb24gbWV0aG9kIHVzZWQgaW4galF1ZXJ5LnN1cHBvcnQNCgl0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIGJvZHkgPyAiZGl2IiA6ICJib2R5IiApOw0KCXRlc3RFbGVtZW50U3R5bGUgPSB7DQoJCXZpc2liaWxpdHk6ICJoaWRkZW4iLA0KCQl3aWR0aDogMCwNCgkJaGVpZ2h0OiAwLA0KCQlib3JkZXI6IDAsDQoJCW1hcmdpbjogMCwNCgkJYmFja2dyb3VuZDogIm5vbmUiDQoJfTsNCglpZiAoIGJvZHkgKSB7DQoJCSQuZXh0ZW5kKCB0ZXN0RWxlbWVudFN0eWxlLCB7DQoJCQlwb3NpdGlvbjogImFic29sdXRlIiwNCgkJCWxlZnQ6ICItMTAwMHB4IiwNCgkJCXRvcDogIi0xMDAwcHgiDQoJCX0pOw0KCX0NCglmb3IgKCBpIGluIHRlc3RFbGVtZW50U3R5bGUgKSB7DQoJCXRlc3RFbGVtZW50LnN0eWxlWyBpIF0gPSB0ZXN0RWxlbWVudFN0eWxlWyBpIF07DQoJfQ0KCXRlc3RFbGVtZW50LmFwcGVuZENoaWxkKCBkaXYgKTsNCgl0ZXN0RWxlbWVudFBhcmVudCA9IGJvZHkgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Ow0KCXRlc3RFbGVtZW50UGFyZW50Lmluc2VydEJlZm9yZSggdGVzdEVsZW1lbnQsIHRlc3RFbGVtZW50UGFyZW50LmZpcnN0Q2hpbGQgKTsNCg0KCWRpdi5zdHlsZS5jc3NUZXh0ID0gInBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTAuNzQzMjIyMnB4OyI7DQoNCglvZmZzZXRMZWZ0ID0gJCggZGl2ICkub2Zmc2V0KCkubGVmdDsNCglzdXBwb3J0c09mZnNldEZyYWN0aW9ucyA9IG9mZnNldExlZnQgPiAxMCAmJiBvZmZzZXRMZWZ0IDwgMTE7DQoNCgl0ZXN0RWxlbWVudC5pbm5lckhUTUwgPSAiIjsNCgl0ZXN0RWxlbWVudFBhcmVudC5yZW1vdmVDaGlsZCggdGVzdEVsZW1lbnQgKTsNCn0pKCk7DQoNCn0pKCk7DQoNCnZhciBwb3NpdGlvbiA9ICQudWkucG9zaXRpb247DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgQWNjb3JkaW9uIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9hY2NvcmRpb24vDQogKi8NCg0KDQp2YXIgYWNjb3JkaW9uID0gJC53aWRnZXQoICJ1aS5hY2NvcmRpb24iLCB7DQoJdmVyc2lvbjogIjEuMTEuMiIsDQoJb3B0aW9uczogew0KCQlhY3RpdmU6IDAsDQoJCWFuaW1hdGU6IHt9LA0KCQljb2xsYXBzaWJsZTogZmFsc2UsDQoJCWV2ZW50OiAiY2xpY2siLA0KCQloZWFkZXI6ICI+IGxpID4gOmZpcnN0LWNoaWxkLD4gOm5vdChsaSk6ZXZlbiIsDQoJCWhlaWdodFN0eWxlOiAiYXV0byIsDQoJCWljb25zOiB7DQoJCQlhY3RpdmVIZWFkZXI6ICJ1aS1pY29uLXRyaWFuZ2xlLTEtcyIsDQoJCQloZWFkZXI6ICJ1aS1pY29uLXRyaWFuZ2xlLTEtZSINCgkJfSwNCg0KCQkvLyBjYWxsYmFja3MNCgkJYWN0aXZhdGU6IG51bGwsDQoJCWJlZm9yZUFjdGl2YXRlOiBudWxsDQoJfSwNCg0KCWhpZGVQcm9wczogew0KCQlib3JkZXJUb3BXaWR0aDogImhpZGUiLA0KCQlib3JkZXJCb3R0b21XaWR0aDogImhpZGUiLA0KCQlwYWRkaW5nVG9wOiAiaGlkZSIsDQoJCXBhZGRpbmdCb3R0b206ICJoaWRlIiwNCgkJaGVpZ2h0OiAiaGlkZSINCgl9LA0KDQoJc2hvd1Byb3BzOiB7DQoJCWJvcmRlclRvcFdpZHRoOiAic2hvdyIsDQoJCWJvcmRlckJvdHRvbVdpZHRoOiAic2hvdyIsDQoJCXBhZGRpbmdUb3A6ICJzaG93IiwNCgkJcGFkZGluZ0JvdHRvbTogInNob3ciLA0KCQloZWlnaHQ6ICJzaG93Ig0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoJCXRoaXMucHJldlNob3cgPSB0aGlzLnByZXZIaWRlID0gJCgpOw0KCQl0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIgKQ0KCQkJLy8gQVJJQQ0KCQkJLmF0dHIoICJyb2xlIiwgInRhYmxpc3QiICk7DQoNCgkJLy8gZG9uJ3QgYWxsb3cgY29sbGFwc2libGU6IGZhbHNlIGFuZCBhY3RpdmU6IGZhbHNlIC8gbnVsbA0KCQlpZiAoICFvcHRpb25zLmNvbGxhcHNpYmxlICYmIChvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgfHwgb3B0aW9ucy5hY3RpdmUgPT0gbnVsbCkgKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSA9IDA7DQoJCX0NCg0KCQl0aGlzLl9wcm9jZXNzUGFuZWxzKCk7DQoJCS8vIGhhbmRsZSBuZWdhdGl2ZSB2YWx1ZXMNCgkJaWYgKCBvcHRpb25zLmFjdGl2ZSA8IDAgKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSArPSB0aGlzLmhlYWRlcnMubGVuZ3RoOw0KCQl9DQoJCXRoaXMuX3JlZnJlc2goKTsNCgl9LA0KDQoJX2dldENyZWF0ZUV2ZW50RGF0YTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB7DQoJCQloZWFkZXI6IHRoaXMuYWN0aXZlLA0KCQkJcGFuZWw6ICF0aGlzLmFjdGl2ZS5sZW5ndGggPyAkKCkgOiB0aGlzLmFjdGl2ZS5uZXh0KCkNCgkJfTsNCgl9LA0KDQoJX2NyZWF0ZUljb25zOiBmdW5jdGlvbigpIHsNCgkJdmFyIGljb25zID0gdGhpcy5vcHRpb25zLmljb25zOw0KCQlpZiAoIGljb25zICkgew0KCQkJJCggIjxzcGFuPiIgKQ0KCQkJCS5hZGRDbGFzcyggInVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiB1aS1pY29uICIgKyBpY29ucy5oZWFkZXIgKQ0KCQkJCS5wcmVwZW5kVG8oIHRoaXMuaGVhZGVycyApOw0KCQkJdGhpcy5hY3RpdmUuY2hpbGRyZW4oICIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiApDQoJCQkJLnJlbW92ZUNsYXNzKCBpY29ucy5oZWFkZXIgKQ0KCQkJCS5hZGRDbGFzcyggaWNvbnMuYWN0aXZlSGVhZGVyICk7DQoJCQl0aGlzLmhlYWRlcnMuYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24taWNvbnMiICk7DQoJCX0NCgl9LA0KDQoJX2Rlc3Ryb3lJY29uczogZnVuY3Rpb24oKSB7DQoJCXRoaXMuaGVhZGVycw0KCQkJLnJlbW92ZUNsYXNzKCAidWktYWNjb3JkaW9uLWljb25zIiApDQoJCQkuY2hpbGRyZW4oICIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiApDQoJCQkJLnJlbW92ZSgpOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXZhciBjb250ZW50czsNCg0KCQkvLyBjbGVhbiB1cCBtYWluIGVsZW1lbnQNCgkJdGhpcy5lbGVtZW50DQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIgKQ0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApOw0KDQoJCS8vIGNsZWFuIHVwIGhlYWRlcnMNCgkJdGhpcy5oZWFkZXJzDQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWRlZmF1bHQgIiArDQoJCQkJInVpLWNvcm5lci1hbGwgdWktc3RhdGUtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIHVpLWNvcm5lci10b3AiICkNCgkJCS5yZW1vdmVBdHRyKCAicm9sZSIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWV4cGFuZGVkIiApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtc2VsZWN0ZWQiICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1jb250cm9scyIgKQ0KCQkJLnJlbW92ZUF0dHIoICJ0YWJJbmRleCIgKQ0KCQkJLnJlbW92ZVVuaXF1ZUlkKCk7DQoNCgkJdGhpcy5fZGVzdHJveUljb25zKCk7DQoNCgkJLy8gY2xlYW4gdXAgY29udGVudCBwYW5lbHMNCgkJY29udGVudHMgPSB0aGlzLmhlYWRlcnMubmV4dCgpDQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSAiICsNCgkJCQkidWktYWNjb3JkaW9uLWNvbnRlbnQgdWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIiApDQoJCQkuY3NzKCAiZGlzcGxheSIsICIiICkNCgkJCS5yZW1vdmVBdHRyKCAicm9sZSIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWhpZGRlbiIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWxhYmVsbGVkYnkiICkNCgkJCS5yZW1vdmVVbmlxdWVJZCgpOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmhlaWdodFN0eWxlICE9PSAiY29udGVudCIgKSB7DQoJCQljb250ZW50cy5jc3MoICJoZWlnaHQiLCAiIiApOw0KCQl9DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gImFjdGl2ZSIgKSB7DQoJCQkvLyBfYWN0aXZhdGUoKSB3aWxsIGhhbmRsZSBpbnZhbGlkIHZhbHVlcyBhbmQgdXBkYXRlIHRoaXMub3B0aW9ucw0KCQkJdGhpcy5fYWN0aXZhdGUoIHZhbHVlICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImV2ZW50IiApIHsNCgkJCWlmICggdGhpcy5vcHRpb25zLmV2ZW50ICkgew0KCQkJCXRoaXMuX29mZiggdGhpcy5oZWFkZXJzLCB0aGlzLm9wdGlvbnMuZXZlbnQgKTsNCgkJCX0NCgkJCXRoaXMuX3NldHVwRXZlbnRzKCB2YWx1ZSApOw0KCQl9DQoNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCg0KCQkvLyBzZXR0aW5nIGNvbGxhcHNpYmxlOiBmYWxzZSB3aGlsZSBjb2xsYXBzZWQ7IG9wZW4gZmlyc3QgcGFuZWwNCgkJaWYgKCBrZXkgPT09ICJjb2xsYXBzaWJsZSIgJiYgIXZhbHVlICYmIHRoaXMub3B0aW9ucy5hY3RpdmUgPT09IGZhbHNlICkgew0KCQkJdGhpcy5fYWN0aXZhdGUoIDAgKTsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiaWNvbnMiICkgew0KCQkJdGhpcy5fZGVzdHJveUljb25zKCk7DQoJCQlpZiAoIHZhbHVlICkgew0KCQkJCXRoaXMuX2NyZWF0ZUljb25zKCk7DQoJCQl9DQoJCX0NCg0KCQkvLyAjNTMzMiAtIG9wYWNpdHkgZG9lc24ndCBjYXNjYWRlIHRvIHBvc2l0aW9uZWQgZWxlbWVudHMgaW4gSUUNCgkJLy8gc28gd2UgbmVlZCB0byBhZGQgdGhlIGRpc2FibGVkIGNsYXNzIHRvIHRoZSBoZWFkZXJzIGFuZCBwYW5lbHMNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLmVsZW1lbnQNCgkJCQkudG9nZ2xlQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIsICEhdmFsdWUgKQ0KCQkJCS5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsIHZhbHVlICk7DQoJCQl0aGlzLmhlYWRlcnMuYWRkKCB0aGlzLmhlYWRlcnMubmV4dCgpICkNCgkJCQkudG9nZ2xlQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIsICEhdmFsdWUgKTsNCgkJfQ0KCX0sDQoNCglfa2V5ZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5ICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdmFyIGtleUNvZGUgPSAkLnVpLmtleUNvZGUsDQoJCQlsZW5ndGggPSB0aGlzLmhlYWRlcnMubGVuZ3RoLA0KCQkJY3VycmVudEluZGV4ID0gdGhpcy5oZWFkZXJzLmluZGV4KCBldmVudC50YXJnZXQgKSwNCgkJCXRvRm9jdXMgPSBmYWxzZTsNCg0KCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQkJY2FzZSBrZXlDb2RlLlJJR0hUOg0KCQkJY2FzZSBrZXlDb2RlLkRPV046DQoJCQkJdG9Gb2N1cyA9IHRoaXMuaGVhZGVyc1sgKCBjdXJyZW50SW5kZXggKyAxICkgJSBsZW5ndGggXTsNCgkJCQlicmVhazsNCgkJCWNhc2Uga2V5Q29kZS5MRUZUOg0KCQkJY2FzZSBrZXlDb2RlLlVQOg0KCQkJCXRvRm9jdXMgPSB0aGlzLmhlYWRlcnNbICggY3VycmVudEluZGV4IC0gMSArIGxlbmd0aCApICUgbGVuZ3RoIF07DQoJCQkJYnJlYWs7DQoJCQljYXNlIGtleUNvZGUuU1BBQ0U6DQoJCQljYXNlIGtleUNvZGUuRU5URVI6DQoJCQkJdGhpcy5fZXZlbnRIYW5kbGVyKCBldmVudCApOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSBrZXlDb2RlLkhPTUU6DQoJCQkJdG9Gb2N1cyA9IHRoaXMuaGVhZGVyc1sgMCBdOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSBrZXlDb2RlLkVORDoNCgkJCQl0b0ZvY3VzID0gdGhpcy5oZWFkZXJzWyBsZW5ndGggLSAxIF07DQoJCQkJYnJlYWs7DQoJCX0NCg0KCQlpZiAoIHRvRm9jdXMgKSB7DQoJCQkkKCBldmVudC50YXJnZXQgKS5hdHRyKCAidGFiSW5kZXgiLCAtMSApOw0KCQkJJCggdG9Gb2N1cyApLmF0dHIoICJ0YWJJbmRleCIsIDAgKTsNCgkJCXRvRm9jdXMuZm9jdXMoKTsNCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCX0NCgl9LA0KDQoJX3BhbmVsS2V5RG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIGV2ZW50LmtleUNvZGUgPT09ICQudWkua2V5Q29kZS5VUCAmJiBldmVudC5jdHJsS2V5ICkgew0KCQkJJCggZXZlbnQuY3VycmVudFRhcmdldCApLnByZXYoKS5mb2N1cygpOw0KCQl9DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCgkJdGhpcy5fcHJvY2Vzc1BhbmVscygpOw0KDQoJCS8vIHdhcyBjb2xsYXBzZWQgb3Igbm8gcGFuZWwNCgkJaWYgKCAoIG9wdGlvbnMuYWN0aXZlID09PSBmYWxzZSAmJiBvcHRpb25zLmNvbGxhcHNpYmxlID09PSB0cnVlICkgfHwgIXRoaXMuaGVhZGVycy5sZW5ndGggKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSA9IGZhbHNlOw0KCQkJdGhpcy5hY3RpdmUgPSAkKCk7DQoJCS8vIGFjdGl2ZSBmYWxzZSBvbmx5IHdoZW4gY29sbGFwc2libGUgaXMgdHJ1ZQ0KCQl9IGVsc2UgaWYgKCBvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgKSB7DQoJCQl0aGlzLl9hY3RpdmF0ZSggMCApOw0KCQkvLyB3YXMgYWN0aXZlLCBidXQgYWN0aXZlIHBhbmVsIGlzIGdvbmUNCgkJfSBlbHNlIGlmICggdGhpcy5hY3RpdmUubGVuZ3RoICYmICEkLmNvbnRhaW5zKCB0aGlzLmVsZW1lbnRbIDAgXSwgdGhpcy5hY3RpdmVbIDAgXSApICkgew0KCQkJLy8gYWxsIHJlbWFpbmluZyBwYW5lbCBhcmUgZGlzYWJsZWQNCgkJCWlmICggdGhpcy5oZWFkZXJzLmxlbmd0aCA9PT0gdGhpcy5oZWFkZXJzLmZpbmQoIi51aS1zdGF0ZS1kaXNhYmxlZCIpLmxlbmd0aCApIHsNCgkJCQlvcHRpb25zLmFjdGl2ZSA9IGZhbHNlOw0KCQkJCXRoaXMuYWN0aXZlID0gJCgpOw0KCQkJLy8gYWN0aXZhdGUgcHJldmlvdXMgcGFuZWwNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5fYWN0aXZhdGUoIE1hdGgubWF4KCAwLCBvcHRpb25zLmFjdGl2ZSAtIDEgKSApOw0KCQkJfQ0KCQkvLyB3YXMgYWN0aXZlLCBhY3RpdmUgcGFuZWwgc3RpbGwgZXhpc3RzDQoJCX0gZWxzZSB7DQoJCQkvLyBtYWtlIHN1cmUgYWN0aXZlIGluZGV4IGlzIGNvcnJlY3QNCgkJCW9wdGlvbnMuYWN0aXZlID0gdGhpcy5oZWFkZXJzLmluZGV4KCB0aGlzLmFjdGl2ZSApOw0KCQl9DQoNCgkJdGhpcy5fZGVzdHJveUljb25zKCk7DQoNCgkJdGhpcy5fcmVmcmVzaCgpOw0KCX0sDQoNCglfcHJvY2Vzc1BhbmVsczogZnVuY3Rpb24oKSB7DQoJCXZhciBwcmV2SGVhZGVycyA9IHRoaXMuaGVhZGVycywNCgkJCXByZXZQYW5lbHMgPSB0aGlzLnBhbmVsczsNCg0KCQl0aGlzLmhlYWRlcnMgPSB0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5vcHRpb25zLmhlYWRlciApDQoJCQkuYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIgKTsNCg0KCQl0aGlzLnBhbmVscyA9IHRoaXMuaGVhZGVycy5uZXh0KCkNCgkJCS5hZGRDbGFzcyggInVpLWFjY29yZGlvbi1jb250ZW50IHVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIiApDQoJCQkuZmlsdGVyKCAiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKSIgKQ0KCQkJLmhpZGUoKTsNCg0KCQkvLyBBdm9pZCBtZW1vcnkgbGVha3MgKCMxMDA1NikNCgkJaWYgKCBwcmV2UGFuZWxzICkgew0KCQkJdGhpcy5fb2ZmKCBwcmV2SGVhZGVycy5ub3QoIHRoaXMuaGVhZGVycyApICk7DQoJCQl0aGlzLl9vZmYoIHByZXZQYW5lbHMubm90KCB0aGlzLnBhbmVscyApICk7DQoJCX0NCgl9LA0KDQoJX3JlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgbWF4SGVpZ2h0LA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCWhlaWdodFN0eWxlID0gb3B0aW9ucy5oZWlnaHRTdHlsZSwNCgkJCXBhcmVudCA9IHRoaXMuZWxlbWVudC5wYXJlbnQoKTsNCg0KCQl0aGlzLmFjdGl2ZSA9IHRoaXMuX2ZpbmRBY3RpdmUoIG9wdGlvbnMuYWN0aXZlICkNCgkJCS5hZGRDbGFzcyggInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIiApDQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1jb3JuZXItYWxsIiApOw0KCQl0aGlzLmFjdGl2ZS5uZXh0KCkNCgkJCS5hZGRDbGFzcyggInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIgKQ0KCQkJLnNob3coKTsNCg0KCQl0aGlzLmhlYWRlcnMNCgkJCS5hdHRyKCAicm9sZSIsICJ0YWIiICkNCgkJCS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCXZhciBoZWFkZXIgPSAkKCB0aGlzICksDQoJCQkJCWhlYWRlcklkID0gaGVhZGVyLnVuaXF1ZUlkKCkuYXR0ciggImlkIiApLA0KCQkJCQlwYW5lbCA9IGhlYWRlci5uZXh0KCksDQoJCQkJCXBhbmVsSWQgPSBwYW5lbC51bmlxdWVJZCgpLmF0dHIoICJpZCIgKTsNCgkJCQloZWFkZXIuYXR0ciggImFyaWEtY29udHJvbHMiLCBwYW5lbElkICk7DQoJCQkJcGFuZWwuYXR0ciggImFyaWEtbGFiZWxsZWRieSIsIGhlYWRlcklkICk7DQoJCQl9KQ0KCQkJLm5leHQoKQ0KCQkJCS5hdHRyKCAicm9sZSIsICJ0YWJwYW5lbCIgKTsNCg0KCQl0aGlzLmhlYWRlcnMNCgkJCS5ub3QoIHRoaXMuYWN0aXZlICkNCgkJCS5hdHRyKHsNCgkJCQkiYXJpYS1zZWxlY3RlZCI6ICJmYWxzZSIsDQoJCQkJImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiLA0KCQkJCXRhYkluZGV4OiAtMQ0KCQkJfSkNCgkJCS5uZXh0KCkNCgkJCQkuYXR0cih7DQoJCQkJCSJhcmlhLWhpZGRlbiI6ICJ0cnVlIg0KCQkJCX0pDQoJCQkJLmhpZGUoKTsNCg0KCQkvLyBtYWtlIHN1cmUgYXQgbGVhc3Qgb25lIGhlYWRlciBpcyBpbiB0aGUgdGFiIG9yZGVyDQoJCWlmICggIXRoaXMuYWN0aXZlLmxlbmd0aCApIHsNCgkJCXRoaXMuaGVhZGVycy5lcSggMCApLmF0dHIoICJ0YWJJbmRleCIsIDAgKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYWN0aXZlLmF0dHIoew0KCQkJCSJhcmlhLXNlbGVjdGVkIjogInRydWUiLA0KCQkJCSJhcmlhLWV4cGFuZGVkIjogInRydWUiLA0KCQkJCXRhYkluZGV4OiAwDQoJCQl9KQ0KCQkJLm5leHQoKQ0KCQkJCS5hdHRyKHsNCgkJCQkJImFyaWEtaGlkZGVuIjogImZhbHNlIg0KCQkJCX0pOw0KCQl9DQoNCgkJdGhpcy5fY3JlYXRlSWNvbnMoKTsNCg0KCQl0aGlzLl9zZXR1cEV2ZW50cyggb3B0aW9ucy5ldmVudCApOw0KDQoJCWlmICggaGVpZ2h0U3R5bGUgPT09ICJmaWxsIiApIHsNCgkJCW1heEhlaWdodCA9IHBhcmVudC5oZWlnaHQoKTsNCgkJCXRoaXMuZWxlbWVudC5zaWJsaW5ncyggIjp2aXNpYmxlIiApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCQkJCXBvc2l0aW9uID0gZWxlbS5jc3MoICJwb3NpdGlvbiIgKTsNCg0KCQkJCWlmICggcG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgfHwgcG9zaXRpb24gPT09ICJmaXhlZCIgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQkJbWF4SGVpZ2h0IC09IGVsZW0ub3V0ZXJIZWlnaHQoIHRydWUgKTsNCgkJCX0pOw0KDQoJCQl0aGlzLmhlYWRlcnMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQltYXhIZWlnaHQgLT0gJCggdGhpcyApLm91dGVySGVpZ2h0KCB0cnVlICk7DQoJCQl9KTsNCg0KCQkJdGhpcy5oZWFkZXJzLm5leHQoKQ0KCQkJCS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCQkkKCB0aGlzICkuaGVpZ2h0KCBNYXRoLm1heCggMCwgbWF4SGVpZ2h0IC0NCgkJCQkJCSQoIHRoaXMgKS5pbm5lckhlaWdodCgpICsgJCggdGhpcyApLmhlaWdodCgpICkgKTsNCgkJCQl9KQ0KCQkJCS5jc3MoICJvdmVyZmxvdyIsICJhdXRvIiApOw0KCQl9IGVsc2UgaWYgKCBoZWlnaHRTdHlsZSA9PT0gImF1dG8iICkgew0KCQkJbWF4SGVpZ2h0ID0gMDsNCgkJCXRoaXMuaGVhZGVycy5uZXh0KCkNCgkJCQkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQkJbWF4SGVpZ2h0ID0gTWF0aC5tYXgoIG1heEhlaWdodCwgJCggdGhpcyApLmNzcyggImhlaWdodCIsICIiICkuaGVpZ2h0KCkgKTsNCgkJCQl9KQ0KCQkJCS5oZWlnaHQoIG1heEhlaWdodCApOw0KCQl9DQoJfSwNCg0KCV9hY3RpdmF0ZTogZnVuY3Rpb24oIGluZGV4ICkgew0KCQl2YXIgYWN0aXZlID0gdGhpcy5fZmluZEFjdGl2ZSggaW5kZXggKVsgMCBdOw0KDQoJCS8vIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgYWxyZWFkeSBhY3RpdmUgcGFuZWwNCgkJaWYgKCBhY3RpdmUgPT09IHRoaXMuYWN0aXZlWyAwIF0gKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyB0cnlpbmcgdG8gY29sbGFwc2UsIHNpbXVsYXRlIGEgY2xpY2sgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgaGVhZGVyDQoJCWFjdGl2ZSA9IGFjdGl2ZSB8fCB0aGlzLmFjdGl2ZVsgMCBdOw0KDQoJCXRoaXMuX2V2ZW50SGFuZGxlcih7DQoJCQl0YXJnZXQ6IGFjdGl2ZSwNCgkJCWN1cnJlbnRUYXJnZXQ6IGFjdGl2ZSwNCgkJCXByZXZlbnREZWZhdWx0OiAkLm5vb3ANCgkJfSk7DQoJfSwNCg0KCV9maW5kQWN0aXZlOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7DQoJCXJldHVybiB0eXBlb2Ygc2VsZWN0b3IgPT09ICJudW1iZXIiID8gdGhpcy5oZWFkZXJzLmVxKCBzZWxlY3RvciApIDogJCgpOw0KCX0sDQoNCglfc2V0dXBFdmVudHM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGV2ZW50cyA9IHsNCgkJCWtleWRvd246ICJfa2V5ZG93biINCgkJfTsNCgkJaWYgKCBldmVudCApIHsNCgkJCSQuZWFjaCggZXZlbnQuc3BsaXQoICIgIiApLCBmdW5jdGlvbiggaW5kZXgsIGV2ZW50TmFtZSApIHsNCgkJCQlldmVudHNbIGV2ZW50TmFtZSBdID0gIl9ldmVudEhhbmRsZXIiOw0KCQkJfSk7DQoJCX0NCg0KCQl0aGlzLl9vZmYoIHRoaXMuaGVhZGVycy5hZGQoIHRoaXMuaGVhZGVycy5uZXh0KCkgKSApOw0KCQl0aGlzLl9vbiggdGhpcy5oZWFkZXJzLCBldmVudHMgKTsNCgkJdGhpcy5fb24oIHRoaXMuaGVhZGVycy5uZXh0KCksIHsga2V5ZG93bjogIl9wYW5lbEtleURvd24iIH0pOw0KCQl0aGlzLl9ob3ZlcmFibGUoIHRoaXMuaGVhZGVycyApOw0KCQl0aGlzLl9mb2N1c2FibGUoIHRoaXMuaGVhZGVycyApOw0KCX0sDQoNCglfZXZlbnRIYW5kbGVyOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJYWN0aXZlID0gdGhpcy5hY3RpdmUsDQoJCQljbGlja2VkID0gJCggZXZlbnQuY3VycmVudFRhcmdldCApLA0KCQkJY2xpY2tlZElzQWN0aXZlID0gY2xpY2tlZFsgMCBdID09PSBhY3RpdmVbIDAgXSwNCgkJCWNvbGxhcHNpbmcgPSBjbGlja2VkSXNBY3RpdmUgJiYgb3B0aW9ucy5jb2xsYXBzaWJsZSwNCgkJCXRvU2hvdyA9IGNvbGxhcHNpbmcgPyAkKCkgOiBjbGlja2VkLm5leHQoKSwNCgkJCXRvSGlkZSA9IGFjdGl2ZS5uZXh0KCksDQoJCQlldmVudERhdGEgPSB7DQoJCQkJb2xkSGVhZGVyOiBhY3RpdmUsDQoJCQkJb2xkUGFuZWw6IHRvSGlkZSwNCgkJCQluZXdIZWFkZXI6IGNvbGxhcHNpbmcgPyAkKCkgOiBjbGlja2VkLA0KCQkJCW5ld1BhbmVsOiB0b1Nob3cNCgkJCX07DQoNCgkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCg0KCQlpZiAoDQoJCQkJLy8gY2xpY2sgb24gYWN0aXZlIGhlYWRlciwgYnV0IG5vdCBjb2xsYXBzaWJsZQ0KCQkJCSggY2xpY2tlZElzQWN0aXZlICYmICFvcHRpb25zLmNvbGxhcHNpYmxlICkgfHwNCgkJCQkvLyBhbGxvdyBjYW5jZWxpbmcgYWN0aXZhdGlvbg0KCQkJCSggdGhpcy5fdHJpZ2dlciggImJlZm9yZUFjdGl2YXRlIiwgZXZlbnQsIGV2ZW50RGF0YSApID09PSBmYWxzZSApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJb3B0aW9ucy5hY3RpdmUgPSBjb2xsYXBzaW5nID8gZmFsc2UgOiB0aGlzLmhlYWRlcnMuaW5kZXgoIGNsaWNrZWQgKTsNCg0KCQkvLyB3aGVuIHRoZSBjYWxsIHRvIC5fdG9nZ2xlKCkgY29tZXMgYWZ0ZXIgdGhlIGNsYXNzIGNoYW5nZXMNCgkJLy8gaXQgY2F1c2VzIGEgdmVyeSBvZGQgYnVnIGluIElFIDggKHNlZSAjNjcyMCkNCgkJdGhpcy5hY3RpdmUgPSBjbGlja2VkSXNBY3RpdmUgPyAkKCkgOiBjbGlja2VkOw0KCQl0aGlzLl90b2dnbGUoIGV2ZW50RGF0YSApOw0KDQoJCS8vIHN3aXRjaCBjbGFzc2VzDQoJCS8vIGNvcm5lciBjbGFzc2VzIG9uIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBoZWFkZXIgc3RheSBhZnRlciB0aGUgYW5pbWF0aW9uDQoJCWFjdGl2ZS5yZW1vdmVDbGFzcyggInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJaWYgKCBvcHRpb25zLmljb25zICkgew0KCQkJYWN0aXZlLmNoaWxkcmVuKCAiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIgKQ0KCQkJCS5yZW1vdmVDbGFzcyggb3B0aW9ucy5pY29ucy5hY3RpdmVIZWFkZXIgKQ0KCQkJCS5hZGRDbGFzcyggb3B0aW9ucy5pY29ucy5oZWFkZXIgKTsNCgkJfQ0KDQoJCWlmICggIWNsaWNrZWRJc0FjdGl2ZSApIHsNCgkJCWNsaWNrZWQNCgkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1jb3JuZXItYWxsIiApDQoJCQkJLmFkZENsYXNzKCAidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIHVpLWNvcm5lci10b3AiICk7DQoJCQlpZiAoIG9wdGlvbnMuaWNvbnMgKSB7DQoJCQkJY2xpY2tlZC5jaGlsZHJlbiggIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iICkNCgkJCQkJLnJlbW92ZUNsYXNzKCBvcHRpb25zLmljb25zLmhlYWRlciApDQoJCQkJCS5hZGRDbGFzcyggb3B0aW9ucy5pY29ucy5hY3RpdmVIZWFkZXIgKTsNCgkJCX0NCg0KCQkJY2xpY2tlZA0KCQkJCS5uZXh0KCkNCgkJCQkuYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiICk7DQoJCX0NCgl9LA0KDQoJX3RvZ2dsZTogZnVuY3Rpb24oIGRhdGEgKSB7DQoJCXZhciB0b1Nob3cgPSBkYXRhLm5ld1BhbmVsLA0KCQkJdG9IaWRlID0gdGhpcy5wcmV2U2hvdy5sZW5ndGggPyB0aGlzLnByZXZTaG93IDogZGF0YS5vbGRQYW5lbDsNCg0KCQkvLyBoYW5kbGUgYWN0aXZhdGluZyBhIHBhbmVsIGR1cmluZyB0aGUgYW5pbWF0aW9uIGZvciBhbm90aGVyIGFjdGl2YXRpb24NCgkJdGhpcy5wcmV2U2hvdy5hZGQoIHRoaXMucHJldkhpZGUgKS5zdG9wKCB0cnVlLCB0cnVlICk7DQoJCXRoaXMucHJldlNob3cgPSB0b1Nob3c7DQoJCXRoaXMucHJldkhpZGUgPSB0b0hpZGU7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuYW5pbWF0ZSApIHsNCgkJCXRoaXMuX2FuaW1hdGUoIHRvU2hvdywgdG9IaWRlLCBkYXRhICk7DQoJCX0gZWxzZSB7DQoJCQl0b0hpZGUuaGlkZSgpOw0KCQkJdG9TaG93LnNob3coKTsNCgkJCXRoaXMuX3RvZ2dsZUNvbXBsZXRlKCBkYXRhICk7DQoJCX0NCg0KCQl0b0hpZGUuYXR0cih7DQoJCQkiYXJpYS1oaWRkZW4iOiAidHJ1ZSINCgkJfSk7DQoJCXRvSGlkZS5wcmV2KCkuYXR0ciggImFyaWEtc2VsZWN0ZWQiLCAiZmFsc2UiICk7DQoJCS8vIGlmIHdlJ3JlIHN3aXRjaGluZyBwYW5lbHMsIHJlbW92ZSB0aGUgb2xkIGhlYWRlciBmcm9tIHRoZSB0YWIgb3JkZXINCgkJLy8gaWYgd2UncmUgb3BlbmluZyBmcm9tIGNvbGxhcHNlZCBzdGF0ZSwgcmVtb3ZlIHRoZSBwcmV2aW91cyBoZWFkZXIgZnJvbSB0aGUgdGFiIG9yZGVyDQoJCS8vIGlmIHdlJ3JlIGNvbGxhcHNpbmcsIHRoZW4ga2VlcCB0aGUgY29sbGFwc2luZyBoZWFkZXIgaW4gdGhlIHRhYiBvcmRlcg0KCQlpZiAoIHRvU2hvdy5sZW5ndGggJiYgdG9IaWRlLmxlbmd0aCApIHsNCgkJCXRvSGlkZS5wcmV2KCkuYXR0cih7DQoJCQkJInRhYkluZGV4IjogLTEsDQoJCQkJImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiDQoJCQl9KTsNCgkJfSBlbHNlIGlmICggdG9TaG93Lmxlbmd0aCApIHsNCgkJCXRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuICQoIHRoaXMgKS5hdHRyKCAidGFiSW5kZXgiICkgPT09IDA7DQoJCQl9KQ0KCQkJLmF0dHIoICJ0YWJJbmRleCIsIC0xICk7DQoJCX0NCg0KCQl0b1Nob3cNCgkJCS5hdHRyKCAiYXJpYS1oaWRkZW4iLCAiZmFsc2UiICkNCgkJCS5wcmV2KCkNCgkJCQkuYXR0cih7DQoJCQkJCSJhcmlhLXNlbGVjdGVkIjogInRydWUiLA0KCQkJCQl0YWJJbmRleDogMCwNCgkJCQkJImFyaWEtZXhwYW5kZWQiOiAidHJ1ZSINCgkJCQl9KTsNCgl9LA0KDQoJX2FuaW1hdGU6IGZ1bmN0aW9uKCB0b1Nob3csIHRvSGlkZSwgZGF0YSApIHsNCgkJdmFyIHRvdGFsLCBlYXNpbmcsIGR1cmF0aW9uLA0KCQkJdGhhdCA9IHRoaXMsDQoJCQlhZGp1c3QgPSAwLA0KCQkJZG93biA9IHRvU2hvdy5sZW5ndGggJiYNCgkJCQkoICF0b0hpZGUubGVuZ3RoIHx8ICggdG9TaG93LmluZGV4KCkgPCB0b0hpZGUuaW5kZXgoKSApICksDQoJCQlhbmltYXRlID0gdGhpcy5vcHRpb25zLmFuaW1hdGUgfHwge30sDQoJCQlvcHRpb25zID0gZG93biAmJiBhbmltYXRlLmRvd24gfHwgYW5pbWF0ZSwNCgkJCWNvbXBsZXRlID0gZnVuY3Rpb24oKSB7DQoJCQkJdGhhdC5fdG9nZ2xlQ29tcGxldGUoIGRhdGEgKTsNCgkJCX07DQoNCgkJaWYgKCB0eXBlb2Ygb3B0aW9ucyA9PT0gIm51bWJlciIgKSB7DQoJCQlkdXJhdGlvbiA9IG9wdGlvbnM7DQoJCX0NCgkJaWYgKCB0eXBlb2Ygb3B0aW9ucyA9PT0gInN0cmluZyIgKSB7DQoJCQllYXNpbmcgPSBvcHRpb25zOw0KCQl9DQoJCS8vIGZhbGwgYmFjayBmcm9tIG9wdGlvbnMgdG8gYW5pbWF0aW9uIGluIGNhc2Ugb2YgcGFydGlhbCBkb3duIHNldHRpbmdzDQoJCWVhc2luZyA9IGVhc2luZyB8fCBvcHRpb25zLmVhc2luZyB8fCBhbmltYXRlLmVhc2luZzsNCgkJZHVyYXRpb24gPSBkdXJhdGlvbiB8fCBvcHRpb25zLmR1cmF0aW9uIHx8IGFuaW1hdGUuZHVyYXRpb247DQoNCgkJaWYgKCAhdG9IaWRlLmxlbmd0aCApIHsNCgkJCXJldHVybiB0b1Nob3cuYW5pbWF0ZSggdGhpcy5zaG93UHJvcHMsIGR1cmF0aW9uLCBlYXNpbmcsIGNvbXBsZXRlICk7DQoJCX0NCgkJaWYgKCAhdG9TaG93Lmxlbmd0aCApIHsNCgkJCXJldHVybiB0b0hpZGUuYW5pbWF0ZSggdGhpcy5oaWRlUHJvcHMsIGR1cmF0aW9uLCBlYXNpbmcsIGNvbXBsZXRlICk7DQoJCX0NCg0KCQl0b3RhbCA9IHRvU2hvdy5zaG93KCkub3V0ZXJIZWlnaHQoKTsNCgkJdG9IaWRlLmFuaW1hdGUoIHRoaXMuaGlkZVByb3BzLCB7DQoJCQlkdXJhdGlvbjogZHVyYXRpb24sDQoJCQllYXNpbmc6IGVhc2luZywNCgkJCXN0ZXA6IGZ1bmN0aW9uKCBub3csIGZ4ICkgew0KCQkJCWZ4Lm5vdyA9IE1hdGgucm91bmQoIG5vdyApOw0KCQkJfQ0KCQl9KTsNCgkJdG9TaG93DQoJCQkuaGlkZSgpDQoJCQkuYW5pbWF0ZSggdGhpcy5zaG93UHJvcHMsIHsNCgkJCQlkdXJhdGlvbjogZHVyYXRpb24sDQoJCQkJZWFzaW5nOiBlYXNpbmcsDQoJCQkJY29tcGxldGU6IGNvbXBsZXRlLA0KCQkJCXN0ZXA6IGZ1bmN0aW9uKCBub3csIGZ4ICkgew0KCQkJCQlmeC5ub3cgPSBNYXRoLnJvdW5kKCBub3cgKTsNCgkJCQkJaWYgKCBmeC5wcm9wICE9PSAiaGVpZ2h0IiApIHsNCgkJCQkJCWFkanVzdCArPSBmeC5ub3c7DQoJCQkJCX0gZWxzZSBpZiAoIHRoYXQub3B0aW9ucy5oZWlnaHRTdHlsZSAhPT0gImNvbnRlbnQiICkgew0KCQkJCQkJZngubm93ID0gTWF0aC5yb3VuZCggdG90YWwgLSB0b0hpZGUub3V0ZXJIZWlnaHQoKSAtIGFkanVzdCApOw0KCQkJCQkJYWRqdXN0ID0gMDsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0pOw0KCX0sDQoNCglfdG9nZ2xlQ29tcGxldGU6IGZ1bmN0aW9uKCBkYXRhICkgew0KCQl2YXIgdG9IaWRlID0gZGF0YS5vbGRQYW5lbDsNCg0KCQl0b0hpZGUNCgkJCS5yZW1vdmVDbGFzcyggInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIgKQ0KCQkJLnByZXYoKQ0KCQkJCS5yZW1vdmVDbGFzcyggInVpLWNvcm5lci10b3AiICkNCgkJCQkuYWRkQ2xhc3MoICJ1aS1jb3JuZXItYWxsIiApOw0KDQoJCS8vIFdvcmsgYXJvdW5kIGZvciByZW5kZXJpbmcgYnVnIGluIElFICgjNTQyMSkNCgkJaWYgKCB0b0hpZGUubGVuZ3RoICkgew0KCQkJdG9IaWRlLnBhcmVudCgpWyAwIF0uY2xhc3NOYW1lID0gdG9IaWRlLnBhcmVudCgpWyAwIF0uY2xhc3NOYW1lOw0KCQl9DQoJCXRoaXMuX3RyaWdnZXIoICJhY3RpdmF0ZSIsIG51bGwsIGRhdGEgKTsNCgl9DQp9KTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBNZW51IDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9tZW51Lw0KICovDQoNCg0KdmFyIG1lbnUgPSAkLndpZGdldCggInVpLm1lbnUiLCB7DQoJdmVyc2lvbjogIjEuMTEuMiIsDQoJZGVmYXVsdEVsZW1lbnQ6ICI8dWw+IiwNCglkZWxheTogMzAwLA0KCW9wdGlvbnM6IHsNCgkJaWNvbnM6IHsNCgkJCXN1Ym1lbnU6ICJ1aS1pY29uLWNhcmF0LTEtZSINCgkJfSwNCgkJaXRlbXM6ICI+ICoiLA0KCQltZW51czogInVsIiwNCgkJcG9zaXRpb246IHsNCgkJCW15OiAibGVmdC0xIHRvcCIsDQoJCQlhdDogInJpZ2h0IHRvcCINCgkJfSwNCgkJcm9sZTogIm1lbnUiLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQlibHVyOiBudWxsLA0KCQlmb2N1czogbnVsbCwNCgkJc2VsZWN0OiBudWxsDQoJfSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmFjdGl2ZU1lbnUgPSB0aGlzLmVsZW1lbnQ7DQoNCgkJLy8gRmxhZyB1c2VkIHRvIHByZXZlbnQgZmlyaW5nIG9mIHRoZSBjbGljayBoYW5kbGVyDQoJCS8vIGFzIHRoZSBldmVudCBidWJibGVzIHVwIHRocm91Z2ggbmVzdGVkIG1lbnVzDQoJCXRoaXMubW91c2VIYW5kbGVkID0gZmFsc2U7DQoJCXRoaXMuZWxlbWVudA0KCQkJLnVuaXF1ZUlkKCkNCgkJCS5hZGRDbGFzcyggInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IiApDQoJCQkudG9nZ2xlQ2xhc3MoICJ1aS1tZW51LWljb25zIiwgISF0aGlzLmVsZW1lbnQuZmluZCggIi51aS1pY29uIiApLmxlbmd0aCApDQoJCQkuYXR0cih7DQoJCQkJcm9sZTogdGhpcy5vcHRpb25zLnJvbGUsDQoJCQkJdGFiSW5kZXg6IDANCgkJCX0pOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5lbGVtZW50DQoJCQkJLmFkZENsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICkNCgkJCQkuYXR0ciggImFyaWEtZGlzYWJsZWQiLCAidHJ1ZSIgKTsNCgkJfQ0KDQoJCXRoaXMuX29uKHsNCgkJCS8vIFByZXZlbnQgZm9jdXMgZnJvbSBzdGlja2luZyB0byBsaW5rcyBpbnNpZGUgbWVudSBhZnRlciBjbGlja2luZw0KCQkJLy8gdGhlbSAoZm9jdXMgc2hvdWxkIGFsd2F5cyBzdGF5IG9uIFVMIGR1cmluZyBuYXZpZ2F0aW9uKS4NCgkJCSJtb3VzZWRvd24gLnVpLW1lbnUtaXRlbSI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJfSwNCgkJCSJjbGljayAudWktbWVudS1pdGVtIjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCXZhciB0YXJnZXQgPSAkKCBldmVudC50YXJnZXQgKTsNCgkJCQlpZiAoICF0aGlzLm1vdXNlSGFuZGxlZCAmJiB0YXJnZXQubm90KCAiLnVpLXN0YXRlLWRpc2FibGVkIiApLmxlbmd0aCApIHsNCgkJCQkJdGhpcy5zZWxlY3QoIGV2ZW50ICk7DQoNCgkJCQkJLy8gT25seSBzZXQgdGhlIG1vdXNlSGFuZGxlZCBmbGFnIGlmIHRoZSBldmVudCB3aWxsIGJ1YmJsZSwgc2VlICM5NDY5Lg0KCQkJCQlpZiAoICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkgew0KCQkJCQkJdGhpcy5tb3VzZUhhbmRsZWQgPSB0cnVlOw0KCQkJCQl9DQoNCgkJCQkJLy8gT3BlbiBzdWJtZW51IG9uIGNsaWNrDQoJCQkJCWlmICggdGFyZ2V0LmhhcyggIi51aS1tZW51IiApLmxlbmd0aCApIHsNCgkJCQkJCXRoaXMuZXhwYW5kKCBldmVudCApOw0KCQkJCQl9IGVsc2UgaWYgKCAhdGhpcy5lbGVtZW50LmlzKCAiOmZvY3VzIiApICYmICQoIHRoaXMuZG9jdW1lbnRbIDAgXS5hY3RpdmVFbGVtZW50ICkuY2xvc2VzdCggIi51aS1tZW51IiApLmxlbmd0aCApIHsNCg0KCQkJCQkJLy8gUmVkaXJlY3QgZm9jdXMgdG8gdGhlIG1lbnUNCgkJCQkJCXRoaXMuZWxlbWVudC50cmlnZ2VyKCAiZm9jdXMiLCBbIHRydWUgXSApOw0KDQoJCQkJCQkvLyBJZiB0aGUgYWN0aXZlIGl0ZW0gaXMgb24gdGhlIHRvcCBsZXZlbCwgbGV0IGl0IHN0YXkgYWN0aXZlLg0KCQkJCQkJLy8gT3RoZXJ3aXNlLCBibHVyIHRoZSBhY3RpdmUgaXRlbSBzaW5jZSBpdCBpcyBubyBsb25nZXIgdmlzaWJsZS4NCgkJCQkJCWlmICggdGhpcy5hY3RpdmUgJiYgdGhpcy5hY3RpdmUucGFyZW50cyggIi51aS1tZW51IiApLmxlbmd0aCA9PT0gMSApIHsNCgkJCQkJCQljbGVhclRpbWVvdXQoIHRoaXMudGltZXIgKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCX0sDQoJCQkibW91c2VlbnRlciAudWktbWVudS1pdGVtIjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCS8vIElnbm9yZSBtb3VzZSBldmVudHMgd2hpbGUgdHlwZWFoZWFkIGlzIGFjdGl2ZSwgc2VlICMxMDQ1OC4NCgkJCQkvLyBQcmV2ZW50cyBmb2N1c2luZyB0aGUgd3JvbmcgaXRlbSB3aGVuIHR5cGVhaGVhZCBjYXVzZXMgYSBzY3JvbGwgd2hpbGUgdGhlIG1vdXNlDQoJCQkJLy8gaXMgb3ZlciBhbiBpdGVtIGluIHRoZSBtZW51DQoJCQkJaWYgKCB0aGlzLnByZXZpb3VzRmlsdGVyICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCXZhciB0YXJnZXQgPSAkKCBldmVudC5jdXJyZW50VGFyZ2V0ICk7DQoJCQkJLy8gUmVtb3ZlIHVpLXN0YXRlLWFjdGl2ZSBjbGFzcyBmcm9tIHNpYmxpbmdzIG9mIHRoZSBuZXdseSBmb2N1c2VkIG1lbnUgaXRlbQ0KCQkJCS8vIHRvIGF2b2lkIGEganVtcCBjYXVzZWQgYnkgYWRqYWNlbnQgZWxlbWVudHMgYm90aCBoYXZpbmcgYSBjbGFzcyB3aXRoIGEgYm9yZGVyDQoJCQkJdGFyZ2V0LnNpYmxpbmdzKCAiLnVpLXN0YXRlLWFjdGl2ZSIgKS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQl0aGlzLmZvY3VzKCBldmVudCwgdGFyZ2V0ICk7DQoJCQl9LA0KCQkJbW91c2VsZWF2ZTogImNvbGxhcHNlQWxsIiwNCgkJCSJtb3VzZWxlYXZlIC51aS1tZW51IjogImNvbGxhcHNlQWxsIiwNCgkJCWZvY3VzOiBmdW5jdGlvbiggZXZlbnQsIGtlZXBBY3RpdmVJdGVtICkgew0KCQkJCS8vIElmIHRoZXJlJ3MgYWxyZWFkeSBhbiBhY3RpdmUgaXRlbSwga2VlcCBpdCBhY3RpdmUNCgkJCQkvLyBJZiBub3QsIGFjdGl2YXRlIHRoZSBmaXJzdCBpdGVtDQoJCQkJdmFyIGl0ZW0gPSB0aGlzLmFjdGl2ZSB8fCB0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5vcHRpb25zLml0ZW1zICkuZXEoIDAgKTsNCg0KCQkJCWlmICggIWtlZXBBY3RpdmVJdGVtICkgew0KCQkJCQl0aGlzLmZvY3VzKCBldmVudCwgaXRlbSApOw0KCQkJCX0NCgkJCX0sDQoJCQlibHVyOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJCWlmICggISQuY29udGFpbnMoIHRoaXMuZWxlbWVudFswXSwgdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50ICkgKSB7DQoJCQkJCQl0aGlzLmNvbGxhcHNlQWxsKCBldmVudCApOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9LA0KCQkJa2V5ZG93bjogIl9rZXlkb3duIg0KCQl9KTsNCg0KCQl0aGlzLnJlZnJlc2goKTsNCg0KCQkvLyBDbGlja3Mgb3V0c2lkZSBvZiBhIG1lbnUgY29sbGFwc2UgYW55IG9wZW4gbWVudXMNCgkJdGhpcy5fb24oIHRoaXMuZG9jdW1lbnQsIHsNCgkJCWNsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCB0aGlzLl9jbG9zZU9uRG9jdW1lbnRDbGljayggZXZlbnQgKSApIHsNCgkJCQkJdGhpcy5jb2xsYXBzZUFsbCggZXZlbnQgKTsNCgkJCQl9DQoNCgkJCQkvLyBSZXNldCB0aGUgbW91c2VIYW5kbGVkIGZsYWcNCgkJCQl0aGlzLm1vdXNlSGFuZGxlZCA9IGZhbHNlOw0KCQkJfQ0KCQl9KTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQkvLyBEZXN0cm95IChzdWIpbWVudXMNCgkJdGhpcy5lbGVtZW50DQoJCQkucmVtb3ZlQXR0ciggImFyaWEtYWN0aXZlZGVzY2VuZGFudCIgKQ0KCQkJLmZpbmQoICIudWktbWVudSIgKS5hZGRCYWNrKCkNCgkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1tZW51IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1tZW51LWljb25zIHVpLWZyb250IiApDQoJCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApDQoJCQkJLnJlbW92ZUF0dHIoICJ0YWJJbmRleCIgKQ0KCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1sYWJlbGxlZGJ5IiApDQoJCQkJLnJlbW92ZUF0dHIoICJhcmlhLWV4cGFuZGVkIiApDQoJCQkJLnJlbW92ZUF0dHIoICJhcmlhLWhpZGRlbiIgKQ0KCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1kaXNhYmxlZCIgKQ0KCQkJCS5yZW1vdmVVbmlxdWVJZCgpDQoJCQkJLnNob3coKTsNCg0KCQkvLyBEZXN0cm95IG1lbnUgaXRlbXMNCgkJdGhpcy5lbGVtZW50LmZpbmQoICIudWktbWVudS1pdGVtIiApDQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1tZW51LWl0ZW0iICkNCgkJCS5yZW1vdmVBdHRyKCAicm9sZSIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWRpc2FibGVkIiApDQoJCQkucmVtb3ZlVW5pcXVlSWQoKQ0KCQkJLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtaG92ZXIiICkNCgkJCS5yZW1vdmVBdHRyKCAidGFiSW5kZXgiICkNCgkJCS5yZW1vdmVBdHRyKCAicm9sZSIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWhhc3BvcHVwIiApDQoJCQkuY2hpbGRyZW4oKS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCQl2YXIgZWxlbSA9ICQoIHRoaXMgKTsNCgkJCQlpZiAoIGVsZW0uZGF0YSggInVpLW1lbnUtc3VibWVudS1jYXJhdCIgKSApIHsNCgkJCQkJZWxlbS5yZW1vdmUoKTsNCgkJCQl9DQoJCQl9KTsNCg0KCQkvLyBEZXN0cm95IG1lbnUgZGl2aWRlcnMNCgkJdGhpcy5lbGVtZW50LmZpbmQoICIudWktbWVudS1kaXZpZGVyIiApLnJlbW92ZUNsYXNzKCAidWktbWVudS1kaXZpZGVyIHVpLXdpZGdldC1jb250ZW50IiApOw0KCX0sDQoNCglfa2V5ZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgbWF0Y2gsIHByZXYsIGNoYXJhY3Rlciwgc2tpcCwNCgkJCXByZXZlbnREZWZhdWx0ID0gdHJ1ZTsNCg0KCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQljYXNlICQudWkua2V5Q29kZS5QQUdFX1VQOg0KCQkJdGhpcy5wcmV2aW91c1BhZ2UoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOOg0KCQkJdGhpcy5uZXh0UGFnZSggZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5IT01FOg0KCQkJdGhpcy5fbW92ZSggImZpcnN0IiwgImZpcnN0IiwgZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5FTkQ6DQoJCQl0aGlzLl9tb3ZlKCAibGFzdCIsICJsYXN0IiwgZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5VUDoNCgkJCXRoaXMucHJldmlvdXMoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuRE9XTjoNCgkJCXRoaXMubmV4dCggZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5MRUZUOg0KCQkJdGhpcy5jb2xsYXBzZSggZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5SSUdIVDoNCgkJCWlmICggdGhpcy5hY3RpdmUgJiYgIXRoaXMuYWN0aXZlLmlzKCAiLnVpLXN0YXRlLWRpc2FibGVkIiApICkgew0KCQkJCXRoaXMuZXhwYW5kKCBldmVudCApOw0KCQkJfQ0KCQkJYnJlYWs7DQoJCWNhc2UgJC51aS5rZXlDb2RlLkVOVEVSOg0KCQljYXNlICQudWkua2V5Q29kZS5TUEFDRToNCgkJCXRoaXMuX2FjdGl2YXRlKCBldmVudCApOw0KCQkJYnJlYWs7DQoJCWNhc2UgJC51aS5rZXlDb2RlLkVTQ0FQRToNCgkJCXRoaXMuY29sbGFwc2UoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJZGVmYXVsdDoNCgkJCXByZXZlbnREZWZhdWx0ID0gZmFsc2U7DQoJCQlwcmV2ID0gdGhpcy5wcmV2aW91c0ZpbHRlciB8fCAiIjsNCgkJCWNoYXJhY3RlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoIGV2ZW50LmtleUNvZGUgKTsNCgkJCXNraXAgPSBmYWxzZTsNCg0KCQkJY2xlYXJUaW1lb3V0KCB0aGlzLmZpbHRlclRpbWVyICk7DQoNCgkJCWlmICggY2hhcmFjdGVyID09PSBwcmV2ICkgew0KCQkJCXNraXAgPSB0cnVlOw0KCQkJfSBlbHNlIHsNCgkJCQljaGFyYWN0ZXIgPSBwcmV2ICsgY2hhcmFjdGVyOw0KCQkJfQ0KDQoJCQltYXRjaCA9IHRoaXMuX2ZpbHRlck1lbnVJdGVtcyggY2hhcmFjdGVyICk7DQoJCQltYXRjaCA9IHNraXAgJiYgbWF0Y2guaW5kZXgoIHRoaXMuYWN0aXZlLm5leHQoKSApICE9PSAtMSA/DQoJCQkJdGhpcy5hY3RpdmUubmV4dEFsbCggIi51aS1tZW51LWl0ZW0iICkgOg0KCQkJCW1hdGNoOw0KDQoJCQkvLyBJZiBubyBtYXRjaGVzIG9uIHRoZSBjdXJyZW50IGZpbHRlciwgcmVzZXQgdG8gdGhlIGxhc3QgY2hhcmFjdGVyIHByZXNzZWQNCgkJCS8vIHRvIG1vdmUgZG93biB0aGUgbWVudSB0byB0aGUgZmlyc3QgaXRlbSB0aGF0IHN0YXJ0cyB3aXRoIHRoYXQgY2hhcmFjdGVyDQoJCQlpZiAoICFtYXRjaC5sZW5ndGggKSB7DQoJCQkJY2hhcmFjdGVyID0gU3RyaW5nLmZyb21DaGFyQ29kZSggZXZlbnQua2V5Q29kZSApOw0KCQkJCW1hdGNoID0gdGhpcy5fZmlsdGVyTWVudUl0ZW1zKCBjaGFyYWN0ZXIgKTsNCgkJCX0NCg0KCQkJaWYgKCBtYXRjaC5sZW5ndGggKSB7DQoJCQkJdGhpcy5mb2N1cyggZXZlbnQsIG1hdGNoICk7DQoJCQkJdGhpcy5wcmV2aW91c0ZpbHRlciA9IGNoYXJhY3RlcjsNCgkJCQl0aGlzLmZpbHRlclRpbWVyID0gdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJCWRlbGV0ZSB0aGlzLnByZXZpb3VzRmlsdGVyOw0KCQkJCX0sIDEwMDAgKTsNCgkJCX0gZWxzZSB7DQoJCQkJZGVsZXRlIHRoaXMucHJldmlvdXNGaWx0ZXI7DQoJCQl9DQoJCX0NCg0KCQlpZiAoIHByZXZlbnREZWZhdWx0ICkgew0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJfQ0KCX0sDQoNCglfYWN0aXZhdGU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCAhdGhpcy5hY3RpdmUuaXMoICIudWktc3RhdGUtZGlzYWJsZWQiICkgKSB7DQoJCQlpZiAoIHRoaXMuYWN0aXZlLmlzKCAiW2FyaWEtaGFzcG9wdXA9J3RydWUnXSIgKSApIHsNCgkJCQl0aGlzLmV4cGFuZCggZXZlbnQgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5zZWxlY3QoIGV2ZW50ICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXZhciBtZW51cywgaXRlbXMsDQoJCQl0aGF0ID0gdGhpcywNCgkJCWljb24gPSB0aGlzLm9wdGlvbnMuaWNvbnMuc3VibWVudSwNCgkJCXN1Ym1lbnVzID0gdGhpcy5lbGVtZW50LmZpbmQoIHRoaXMub3B0aW9ucy5tZW51cyApOw0KDQoJCXRoaXMuZWxlbWVudC50b2dnbGVDbGFzcyggInVpLW1lbnUtaWNvbnMiLCAhIXRoaXMuZWxlbWVudC5maW5kKCAiLnVpLWljb24iICkubGVuZ3RoICk7DQoNCgkJLy8gSW5pdGlhbGl6ZSBuZXN0ZWQgbWVudXMNCgkJc3VibWVudXMuZmlsdGVyKCAiOm5vdCgudWktbWVudSkiICkNCgkJCS5hZGRDbGFzcyggInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWZyb250IiApDQoJCQkuaGlkZSgpDQoJCQkuYXR0cih7DQoJCQkJcm9sZTogdGhpcy5vcHRpb25zLnJvbGUsDQoJCQkJImFyaWEtaGlkZGVuIjogInRydWUiLA0KCQkJCSJhcmlhLWV4cGFuZGVkIjogImZhbHNlIg0KCQkJfSkNCgkJCS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCXZhciBtZW51ID0gJCggdGhpcyApLA0KCQkJCQlpdGVtID0gbWVudS5wYXJlbnQoKSwNCgkJCQkJc3VibWVudUNhcmF0ID0gJCggIjxzcGFuPiIgKQ0KCQkJCQkJLmFkZENsYXNzKCAidWktbWVudS1pY29uIHVpLWljb24gIiArIGljb24gKQ0KCQkJCQkJLmRhdGEoICJ1aS1tZW51LXN1Ym1lbnUtY2FyYXQiLCB0cnVlICk7DQoNCgkJCQlpdGVtDQoJCQkJCS5hdHRyKCAiYXJpYS1oYXNwb3B1cCIsICJ0cnVlIiApDQoJCQkJCS5wcmVwZW5kKCBzdWJtZW51Q2FyYXQgKTsNCgkJCQltZW51LmF0dHIoICJhcmlhLWxhYmVsbGVkYnkiLCBpdGVtLmF0dHIoICJpZCIgKSApOw0KCQkJfSk7DQoNCgkJbWVudXMgPSBzdWJtZW51cy5hZGQoIHRoaXMuZWxlbWVudCApOw0KCQlpdGVtcyA9IG1lbnVzLmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApOw0KDQoJCS8vIEluaXRpYWxpemUgbWVudS1pdGVtcyBjb250YWluaW5nIHNwYWNlcyBhbmQvb3IgZGFzaGVzIG9ubHkgYXMgZGl2aWRlcnMNCgkJaXRlbXMubm90KCAiLnVpLW1lbnUtaXRlbSIgKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIGl0ZW0gPSAkKCB0aGlzICk7DQoJCQlpZiAoIHRoYXQuX2lzRGl2aWRlciggaXRlbSApICkgew0KCQkJCWl0ZW0uYWRkQ2xhc3MoICJ1aS13aWRnZXQtY29udGVudCB1aS1tZW51LWRpdmlkZXIiICk7DQoJCQl9DQoJCX0pOw0KDQoJCS8vIERvbid0IHJlZnJlc2ggbGlzdCBpdGVtcyB0aGF0IGFyZSBhbHJlYWR5IGFkYXB0ZWQNCgkJaXRlbXMubm90KCAiLnVpLW1lbnUtaXRlbSwgLnVpLW1lbnUtZGl2aWRlciIgKQ0KCQkJLmFkZENsYXNzKCAidWktbWVudS1pdGVtIiApDQoJCQkudW5pcXVlSWQoKQ0KCQkJLmF0dHIoew0KCQkJCXRhYkluZGV4OiAtMSwNCgkJCQlyb2xlOiB0aGlzLl9pdGVtUm9sZSgpDQoJCQl9KTsNCg0KCQkvLyBBZGQgYXJpYS1kaXNhYmxlZCBhdHRyaWJ1dGUgdG8gYW55IGRpc2FibGVkIG1lbnUgaXRlbQ0KCQlpdGVtcy5maWx0ZXIoICIudWktc3RhdGUtZGlzYWJsZWQiICkuYXR0ciggImFyaWEtZGlzYWJsZWQiLCAidHJ1ZSIgKTsNCg0KCQkvLyBJZiB0aGUgYWN0aXZlIGl0ZW0gaGFzIGJlZW4gcmVtb3ZlZCwgYmx1ciB0aGUgbWVudQ0KCQlpZiAoIHRoaXMuYWN0aXZlICYmICEkLmNvbnRhaW5zKCB0aGlzLmVsZW1lbnRbIDAgXSwgdGhpcy5hY3RpdmVbIDAgXSApICkgew0KCQkJdGhpcy5ibHVyKCk7DQoJCX0NCgl9LA0KDQoJX2l0ZW1Sb2xlOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHsNCgkJCW1lbnU6ICJtZW51aXRlbSIsDQoJCQlsaXN0Ym94OiAib3B0aW9uIg0KCQl9WyB0aGlzLm9wdGlvbnMucm9sZSBdOw0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJaWYgKCBrZXkgPT09ICJpY29ucyIgKSB7DQoJCQl0aGlzLmVsZW1lbnQuZmluZCggIi51aS1tZW51LWljb24iICkNCgkJCQkucmVtb3ZlQ2xhc3MoIHRoaXMub3B0aW9ucy5pY29ucy5zdWJtZW51ICkNCgkJCQkuYWRkQ2xhc3MoIHZhbHVlLnN1Ym1lbnUgKTsNCgkJfQ0KCQlpZiAoIGtleSA9PT0gImRpc2FibGVkIiApIHsNCgkJCXRoaXMuZWxlbWVudA0KCQkJCS50b2dnbGVDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiwgISF2YWx1ZSApDQoJCQkJLmF0dHIoICJhcmlhLWRpc2FibGVkIiwgdmFsdWUgKTsNCgkJfQ0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KCX0sDQoNCglmb2N1czogZnVuY3Rpb24oIGV2ZW50LCBpdGVtICkgew0KCQl2YXIgbmVzdGVkLCBmb2N1c2VkOw0KCQl0aGlzLmJsdXIoIGV2ZW50LCBldmVudCAmJiBldmVudC50eXBlID09PSAiZm9jdXMiICk7DQoNCgkJdGhpcy5fc2Nyb2xsSW50b1ZpZXcoIGl0ZW0gKTsNCg0KCQl0aGlzLmFjdGl2ZSA9IGl0ZW0uZmlyc3QoKTsNCgkJZm9jdXNlZCA9IHRoaXMuYWN0aXZlLmFkZENsYXNzKCAidWktc3RhdGUtZm9jdXMiICkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCS8vIE9ubHkgdXBkYXRlIGFyaWEtYWN0aXZlZGVzY2VuZGFudCBpZiB0aGVyZSdzIGEgcm9sZQ0KCQkvLyBvdGhlcndpc2Ugd2UgYXNzdW1lIGZvY3VzIGlzIG1hbmFnZWQgZWxzZXdoZXJlDQoJCWlmICggdGhpcy5vcHRpb25zLnJvbGUgKSB7DQoJCQl0aGlzLmVsZW1lbnQuYXR0ciggImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsIGZvY3VzZWQuYXR0ciggImlkIiApICk7DQoJCX0NCg0KCQkvLyBIaWdobGlnaHQgYWN0aXZlIHBhcmVudCBtZW51IGl0ZW0sIGlmIGFueQ0KCQl0aGlzLmFjdGl2ZQ0KCQkJLnBhcmVudCgpDQoJCQkuY2xvc2VzdCggIi51aS1tZW51LWl0ZW0iICkNCgkJCS5hZGRDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCg0KCQlpZiAoIGV2ZW50ICYmIGV2ZW50LnR5cGUgPT09ICJrZXlkb3duIiApIHsNCgkJCXRoaXMuX2Nsb3NlKCk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLnRpbWVyID0gdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5fY2xvc2UoKTsNCgkJCX0sIHRoaXMuZGVsYXkgKTsNCgkJfQ0KDQoJCW5lc3RlZCA9IGl0ZW0uY2hpbGRyZW4oICIudWktbWVudSIgKTsNCgkJaWYgKCBuZXN0ZWQubGVuZ3RoICYmIGV2ZW50ICYmICggL15tb3VzZS8udGVzdCggZXZlbnQudHlwZSApICkgKSB7DQoJCQl0aGlzLl9zdGFydE9wZW5pbmcobmVzdGVkKTsNCgkJfQ0KCQl0aGlzLmFjdGl2ZU1lbnUgPSBpdGVtLnBhcmVudCgpOw0KDQoJCXRoaXMuX3RyaWdnZXIoICJmb2N1cyIsIGV2ZW50LCB7IGl0ZW06IGl0ZW0gfSApOw0KCX0sDQoNCglfc2Nyb2xsSW50b1ZpZXc6IGZ1bmN0aW9uKCBpdGVtICkgew0KCQl2YXIgYm9yZGVyVG9wLCBwYWRkaW5nVG9wLCBvZmZzZXQsIHNjcm9sbCwgZWxlbWVudEhlaWdodCwgaXRlbUhlaWdodDsNCgkJaWYgKCB0aGlzLl9oYXNTY3JvbGwoKSApIHsNCgkJCWJvcmRlclRvcCA9IHBhcnNlRmxvYXQoICQuY3NzKCB0aGlzLmFjdGl2ZU1lbnVbMF0sICJib3JkZXJUb3BXaWR0aCIgKSApIHx8IDA7DQoJCQlwYWRkaW5nVG9wID0gcGFyc2VGbG9hdCggJC5jc3MoIHRoaXMuYWN0aXZlTWVudVswXSwgInBhZGRpbmdUb3AiICkgKSB8fCAwOw0KCQkJb2Zmc2V0ID0gaXRlbS5vZmZzZXQoKS50b3AgLSB0aGlzLmFjdGl2ZU1lbnUub2Zmc2V0KCkudG9wIC0gYm9yZGVyVG9wIC0gcGFkZGluZ1RvcDsNCgkJCXNjcm9sbCA9IHRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoKTsNCgkJCWVsZW1lbnRIZWlnaHQgPSB0aGlzLmFjdGl2ZU1lbnUuaGVpZ2h0KCk7DQoJCQlpdGVtSGVpZ2h0ID0gaXRlbS5vdXRlckhlaWdodCgpOw0KDQoJCQlpZiAoIG9mZnNldCA8IDAgKSB7DQoJCQkJdGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcCggc2Nyb2xsICsgb2Zmc2V0ICk7DQoJCQl9IGVsc2UgaWYgKCBvZmZzZXQgKyBpdGVtSGVpZ2h0ID4gZWxlbWVudEhlaWdodCApIHsNCgkJCQl0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKCBzY3JvbGwgKyBvZmZzZXQgLSBlbGVtZW50SGVpZ2h0ICsgaXRlbUhlaWdodCApOw0KCQkJfQ0KCQl9DQoJfSwNCg0KCWJsdXI6IGZ1bmN0aW9uKCBldmVudCwgZnJvbUZvY3VzICkgew0KCQlpZiAoICFmcm9tRm9jdXMgKSB7DQoJCQljbGVhclRpbWVvdXQoIHRoaXMudGltZXIgKTsNCgkJfQ0KDQoJCWlmICggIXRoaXMuYWN0aXZlICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5hY3RpdmUucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1mb2N1cyIgKTsNCgkJdGhpcy5hY3RpdmUgPSBudWxsOw0KDQoJCXRoaXMuX3RyaWdnZXIoICJibHVyIiwgZXZlbnQsIHsgaXRlbTogdGhpcy5hY3RpdmUgfSApOw0KCX0sDQoNCglfc3RhcnRPcGVuaW5nOiBmdW5jdGlvbiggc3VibWVudSApIHsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoNCgkJLy8gRG9uJ3Qgb3BlbiBpZiBhbHJlYWR5IG9wZW4gZml4ZXMgYSBGaXJlZm94IGJ1ZyB0aGF0IGNhdXNlZCBhIC41IHBpeGVsDQoJCS8vIHNoaWZ0IGluIHRoZSBzdWJtZW51IHBvc2l0aW9uIHdoZW4gbW91c2luZyBvdmVyIHRoZSBjYXJhdCBpY29uDQoJCWlmICggc3VibWVudS5hdHRyKCAiYXJpYS1oaWRkZW4iICkgIT09ICJ0cnVlIiApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMudGltZXIgPSB0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCXRoaXMuX2Nsb3NlKCk7DQoJCQl0aGlzLl9vcGVuKCBzdWJtZW51ICk7DQoJCX0sIHRoaXMuZGVsYXkgKTsNCgl9LA0KDQoJX29wZW46IGZ1bmN0aW9uKCBzdWJtZW51ICkgew0KCQl2YXIgcG9zaXRpb24gPSAkLmV4dGVuZCh7DQoJCQlvZjogdGhpcy5hY3RpdmUNCgkJfSwgdGhpcy5vcHRpb25zLnBvc2l0aW9uICk7DQoNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoJCXRoaXMuZWxlbWVudC5maW5kKCAiLnVpLW1lbnUiICkubm90KCBzdWJtZW51LnBhcmVudHMoICIudWktbWVudSIgKSApDQoJCQkuaGlkZSgpDQoJCQkuYXR0ciggImFyaWEtaGlkZGVuIiwgInRydWUiICk7DQoNCgkJc3VibWVudQ0KCQkJLnNob3coKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWhpZGRlbiIgKQ0KCQkJLmF0dHIoICJhcmlhLWV4cGFuZGVkIiwgInRydWUiICkNCgkJCS5wb3NpdGlvbiggcG9zaXRpb24gKTsNCgl9LA0KDQoJY29sbGFwc2VBbGw6IGZ1bmN0aW9uKCBldmVudCwgYWxsICkgew0KCQljbGVhclRpbWVvdXQoIHRoaXMudGltZXIgKTsNCgkJdGhpcy50aW1lciA9IHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJLy8gSWYgd2Ugd2VyZSBwYXNzZWQgYW4gZXZlbnQsIGxvb2sgZm9yIHRoZSBzdWJtZW51IHRoYXQgY29udGFpbnMgdGhlIGV2ZW50DQoJCQl2YXIgY3VycmVudE1lbnUgPSBhbGwgPyB0aGlzLmVsZW1lbnQgOg0KCQkJCSQoIGV2ZW50ICYmIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoIHRoaXMuZWxlbWVudC5maW5kKCAiLnVpLW1lbnUiICkgKTsNCg0KCQkJLy8gSWYgd2UgZm91bmQgbm8gdmFsaWQgc3VibWVudSBhbmNlc3RvciwgdXNlIHRoZSBtYWluIG1lbnUgdG8gY2xvc2UgYWxsIHN1YiBtZW51cyBhbnl3YXkNCgkJCWlmICggIWN1cnJlbnRNZW51Lmxlbmd0aCApIHsNCgkJCQljdXJyZW50TWVudSA9IHRoaXMuZWxlbWVudDsNCgkJCX0NCg0KCQkJdGhpcy5fY2xvc2UoIGN1cnJlbnRNZW51ICk7DQoNCgkJCXRoaXMuYmx1ciggZXZlbnQgKTsNCgkJCXRoaXMuYWN0aXZlTWVudSA9IGN1cnJlbnRNZW51Ow0KCQl9LCB0aGlzLmRlbGF5ICk7DQoJfSwNCg0KCS8vIFdpdGggbm8gYXJndW1lbnRzLCBjbG9zZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgbWVudSAtIGlmIG5vdGhpbmcgaXMgYWN0aXZlDQoJLy8gaXQgY2xvc2VzIGFsbCBtZW51cy4gIElmIHBhc3NlZCBhbiBhcmd1bWVudCwgaXQgd2lsbCBzZWFyY2ggZm9yIG1lbnVzIEJFTE9XDQoJX2Nsb3NlOiBmdW5jdGlvbiggc3RhcnRNZW51ICkgew0KCQlpZiAoICFzdGFydE1lbnUgKSB7DQoJCQlzdGFydE1lbnUgPSB0aGlzLmFjdGl2ZSA/IHRoaXMuYWN0aXZlLnBhcmVudCgpIDogdGhpcy5lbGVtZW50Ow0KCQl9DQoNCgkJc3RhcnRNZW51DQoJCQkuZmluZCggIi51aS1tZW51IiApDQoJCQkJLmhpZGUoKQ0KCQkJCS5hdHRyKCAiYXJpYS1oaWRkZW4iLCAidHJ1ZSIgKQ0KCQkJCS5hdHRyKCAiYXJpYS1leHBhbmRlZCIsICJmYWxzZSIgKQ0KCQkJLmVuZCgpDQoJCQkuZmluZCggIi51aS1zdGF0ZS1hY3RpdmUiICkubm90KCAiLnVpLXN0YXRlLWZvY3VzIiApDQoJCQkJLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCX0sDQoNCglfY2xvc2VPbkRvY3VtZW50Q2xpY2s6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJcmV0dXJuICEkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCAiLnVpLW1lbnUiICkubGVuZ3RoOw0KCX0sDQoNCglfaXNEaXZpZGVyOiBmdW5jdGlvbiggaXRlbSApIHsNCg0KCQkvLyBNYXRjaCBoeXBoZW4sIGVtIGRhc2gsIGVuIGRhc2gNCgkJcmV0dXJuICEvW15cLVx1MjAxNFx1MjAxM1xzXS8udGVzdCggaXRlbS50ZXh0KCkgKTsNCgl9LA0KDQoJY29sbGFwc2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIG5ld0l0ZW0gPSB0aGlzLmFjdGl2ZSAmJg0KCQkJdGhpcy5hY3RpdmUucGFyZW50KCkuY2xvc2VzdCggIi51aS1tZW51LWl0ZW0iLCB0aGlzLmVsZW1lbnQgKTsNCgkJaWYgKCBuZXdJdGVtICYmIG5ld0l0ZW0ubGVuZ3RoICkgew0KCQkJdGhpcy5fY2xvc2UoKTsNCgkJCXRoaXMuZm9jdXMoIGV2ZW50LCBuZXdJdGVtICk7DQoJCX0NCgl9LA0KDQoJZXhwYW5kOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBuZXdJdGVtID0gdGhpcy5hY3RpdmUgJiYNCgkJCXRoaXMuYWN0aXZlDQoJCQkJLmNoaWxkcmVuKCAiLnVpLW1lbnUgIiApDQoJCQkJLmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApDQoJCQkJLmZpcnN0KCk7DQoNCgkJaWYgKCBuZXdJdGVtICYmIG5ld0l0ZW0ubGVuZ3RoICkgew0KCQkJdGhpcy5fb3BlbiggbmV3SXRlbS5wYXJlbnQoKSApOw0KDQoJCQkvLyBEZWxheSBzbyBGaXJlZm94IHdpbGwgbm90IGhpZGUgYWN0aXZlZGVzY2VuZGFudCBjaGFuZ2UgaW4gZXhwYW5kaW5nIHN1Ym1lbnUgZnJvbSBBVA0KCQkJdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5mb2N1cyggZXZlbnQsIG5ld0l0ZW0gKTsNCgkJCX0pOw0KCQl9DQoJfSwNCg0KCW5leHQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdGhpcy5fbW92ZSggIm5leHQiLCAiZmlyc3QiLCBldmVudCApOw0KCX0sDQoNCglwcmV2aW91czogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzLl9tb3ZlKCAicHJldiIsICJsYXN0IiwgZXZlbnQgKTsNCgl9LA0KDQoJaXNGaXJzdEl0ZW06IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5hY3RpdmUgJiYgIXRoaXMuYWN0aXZlLnByZXZBbGwoICIudWktbWVudS1pdGVtIiApLmxlbmd0aDsNCgl9LA0KDQoJaXNMYXN0SXRlbTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmFjdGl2ZSAmJiAhdGhpcy5hY3RpdmUubmV4dEFsbCggIi51aS1tZW51LWl0ZW0iICkubGVuZ3RoOw0KCX0sDQoNCglfbW92ZTogZnVuY3Rpb24oIGRpcmVjdGlvbiwgZmlsdGVyLCBldmVudCApIHsNCgkJdmFyIG5leHQ7DQoJCWlmICggdGhpcy5hY3RpdmUgKSB7DQoJCQlpZiAoIGRpcmVjdGlvbiA9PT0gImZpcnN0IiB8fCBkaXJlY3Rpb24gPT09ICJsYXN0IiApIHsNCgkJCQluZXh0ID0gdGhpcy5hY3RpdmUNCgkJCQkJWyBkaXJlY3Rpb24gPT09ICJmaXJzdCIgPyAicHJldkFsbCIgOiAibmV4dEFsbCIgXSggIi51aS1tZW51LWl0ZW0iICkNCgkJCQkJLmVxKCAtMSApOw0KCQkJfSBlbHNlIHsNCgkJCQluZXh0ID0gdGhpcy5hY3RpdmUNCgkJCQkJWyBkaXJlY3Rpb24gKyAiQWxsIiBdKCAiLnVpLW1lbnUtaXRlbSIgKQ0KCQkJCQkuZXEoIDAgKTsNCgkJCX0NCgkJfQ0KCQlpZiAoICFuZXh0IHx8ICFuZXh0Lmxlbmd0aCB8fCAhdGhpcy5hY3RpdmUgKSB7DQoJCQluZXh0ID0gdGhpcy5hY3RpdmVNZW51LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApWyBmaWx0ZXIgXSgpOw0KCQl9DQoNCgkJdGhpcy5mb2N1cyggZXZlbnQsIG5leHQgKTsNCgl9LA0KDQoJbmV4dFBhZ2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGl0ZW0sIGJhc2UsIGhlaWdodDsNCg0KCQlpZiAoICF0aGlzLmFjdGl2ZSApIHsNCgkJCXRoaXMubmV4dCggZXZlbnQgKTsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIHRoaXMuaXNMYXN0SXRlbSgpICkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCWlmICggdGhpcy5faGFzU2Nyb2xsKCkgKSB7DQoJCQliYXNlID0gdGhpcy5hY3RpdmUub2Zmc2V0KCkudG9wOw0KCQkJaGVpZ2h0ID0gdGhpcy5lbGVtZW50LmhlaWdodCgpOw0KCQkJdGhpcy5hY3RpdmUubmV4dEFsbCggIi51aS1tZW51LWl0ZW0iICkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQlpdGVtID0gJCggdGhpcyApOw0KCQkJCXJldHVybiBpdGVtLm9mZnNldCgpLnRvcCAtIGJhc2UgLSBoZWlnaHQgPCAwOw0KCQkJfSk7DQoNCgkJCXRoaXMuZm9jdXMoIGV2ZW50LCBpdGVtICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmZvY3VzKCBldmVudCwgdGhpcy5hY3RpdmVNZW51LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApDQoJCQkJWyAhdGhpcy5hY3RpdmUgPyAiZmlyc3QiIDogImxhc3QiIF0oKSApOw0KCQl9DQoJfSwNCg0KCXByZXZpb3VzUGFnZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgaXRlbSwgYmFzZSwgaGVpZ2h0Ow0KCQlpZiAoICF0aGlzLmFjdGl2ZSApIHsNCgkJCXRoaXMubmV4dCggZXZlbnQgKTsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIHRoaXMuaXNGaXJzdEl0ZW0oKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIHRoaXMuX2hhc1Njcm9sbCgpICkgew0KCQkJYmFzZSA9IHRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcDsNCgkJCWhlaWdodCA9IHRoaXMuZWxlbWVudC5oZWlnaHQoKTsNCgkJCXRoaXMuYWN0aXZlLnByZXZBbGwoICIudWktbWVudS1pdGVtIiApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJaXRlbSA9ICQoIHRoaXMgKTsNCgkJCQlyZXR1cm4gaXRlbS5vZmZzZXQoKS50b3AgLSBiYXNlICsgaGVpZ2h0ID4gMDsNCgkJCX0pOw0KDQoJCQl0aGlzLmZvY3VzKCBldmVudCwgaXRlbSApOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5mb2N1cyggZXZlbnQsIHRoaXMuYWN0aXZlTWVudS5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKS5maXJzdCgpICk7DQoJCX0NCgl9LA0KDQoJX2hhc1Njcm9sbDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSA8IHRoaXMuZWxlbWVudC5wcm9wKCAic2Nyb2xsSGVpZ2h0IiApOw0KCX0sDQoNCglzZWxlY3Q6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJLy8gVE9ETzogSXQgc2hvdWxkIG5ldmVyIGJlIHBvc3NpYmxlIHRvIG5vdCBoYXZlIGFuIGFjdGl2ZSBpdGVtIGF0IHRoaXMNCgkJLy8gcG9pbnQsIGJ1dCB0aGUgdGVzdHMgZG9uJ3QgdHJpZ2dlciBtb3VzZWVudGVyIGJlZm9yZSBjbGljay4NCgkJdGhpcy5hY3RpdmUgPSB0aGlzLmFjdGl2ZSB8fCAkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCAiLnVpLW1lbnUtaXRlbSIgKTsNCgkJdmFyIHVpID0geyBpdGVtOiB0aGlzLmFjdGl2ZSB9Ow0KCQlpZiAoICF0aGlzLmFjdGl2ZS5oYXMoICIudWktbWVudSIgKS5sZW5ndGggKSB7DQoJCQl0aGlzLmNvbGxhcHNlQWxsKCBldmVudCwgdHJ1ZSApOw0KCQl9DQoJCXRoaXMuX3RyaWdnZXIoICJzZWxlY3QiLCBldmVudCwgdWkgKTsNCgl9LA0KDQoJX2ZpbHRlck1lbnVJdGVtczogZnVuY3Rpb24oY2hhcmFjdGVyKSB7DQoJCXZhciBlc2NhcGVkQ2hhcmFjdGVyID0gY2hhcmFjdGVyLnJlcGxhY2UoIC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCAiXFwkJiIgKSwNCgkJCXJlZ2V4ID0gbmV3IFJlZ0V4cCggIl4iICsgZXNjYXBlZENoYXJhY3RlciwgImkiICk7DQoNCgkJcmV0dXJuIHRoaXMuYWN0aXZlTWVudQ0KCQkJLmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApDQoNCgkJCS8vIE9ubHkgbWF0Y2ggb24gaXRlbXMsIG5vdCBkaXZpZGVycyBvciBvdGhlciBjb250ZW50ICgjMTA1NzEpDQoJCQkuZmlsdGVyKCAiLnVpLW1lbnUtaXRlbSIgKQ0KCQkJLmZpbHRlcihmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gcmVnZXgudGVzdCggJC50cmltKCAkKCB0aGlzICkudGV4dCgpICkgKTsNCgkJCX0pOw0KCX0NCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEF1dG9jb21wbGV0ZSAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vYXV0b2NvbXBsZXRlLw0KICovDQoNCg0KJC53aWRnZXQoICJ1aS5hdXRvY29tcGxldGUiLCB7DQoJdmVyc2lvbjogIjEuMTEuMiIsDQoJZGVmYXVsdEVsZW1lbnQ6ICI8aW5wdXQ+IiwNCglvcHRpb25zOiB7DQoJCWFwcGVuZFRvOiBudWxsLA0KCQlhdXRvRm9jdXM6IGZhbHNlLA0KCQlkZWxheTogMzAwLA0KCQltaW5MZW5ndGg6IDEsDQoJCXBvc2l0aW9uOiB7DQoJCQlteTogImxlZnQgdG9wIiwNCgkJCWF0OiAibGVmdCBib3R0b20iLA0KCQkJY29sbGlzaW9uOiAibm9uZSINCgkJfSwNCgkJc291cmNlOiBudWxsLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQljaGFuZ2U6IG51bGwsDQoJCWNsb3NlOiBudWxsLA0KCQlmb2N1czogbnVsbCwNCgkJb3BlbjogbnVsbCwNCgkJcmVzcG9uc2U6IG51bGwsDQoJCXNlYXJjaDogbnVsbCwNCgkJc2VsZWN0OiBudWxsDQoJfSwNCg0KCXJlcXVlc3RJbmRleDogMCwNCglwZW5kaW5nOiAwLA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCS8vIFNvbWUgYnJvd3NlcnMgb25seSByZXBlYXQga2V5ZG93biBldmVudHMsIG5vdCBrZXlwcmVzcyBldmVudHMsDQoJCS8vIHNvIHdlIHVzZSB0aGUgc3VwcHJlc3NLZXlQcmVzcyBmbGFnIHRvIGRldGVybWluZSBpZiB3ZSd2ZSBhbHJlYWR5DQoJCS8vIGhhbmRsZWQgdGhlIGtleWRvd24gZXZlbnQuICM3MjY5DQoJCS8vIFVuZm9ydHVuYXRlbHkgdGhlIGNvZGUgZm9yICYgaW4ga2V5cHJlc3MgaXMgdGhlIHNhbWUgYXMgdGhlIHVwIGFycm93LA0KCQkvLyBzbyB3ZSB1c2UgdGhlIHN1cHByZXNzS2V5UHJlc3NSZXBlYXQgZmxhZyB0byBhdm9pZCBoYW5kbGluZyBrZXlwcmVzcw0KCQkvLyBldmVudHMgd2hlbiB3ZSBrbm93IHRoZSBrZXlkb3duIGV2ZW50IHdhcyB1c2VkIHRvIG1vZGlmeSB0aGUNCgkJLy8gc2VhcmNoIHRlcm0uICM3Nzk5DQoJCXZhciBzdXBwcmVzc0tleVByZXNzLCBzdXBwcmVzc0tleVByZXNzUmVwZWF0LCBzdXBwcmVzc0lucHV0LA0KCQkJbm9kZU5hbWUgPSB0aGlzLmVsZW1lbnRbIDAgXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLA0KCQkJaXNUZXh0YXJlYSA9IG5vZGVOYW1lID09PSAidGV4dGFyZWEiLA0KCQkJaXNJbnB1dCA9IG5vZGVOYW1lID09PSAiaW5wdXQiOw0KDQoJCXRoaXMuaXNNdWx0aUxpbmUgPQ0KCQkJLy8gVGV4dGFyZWFzIGFyZSBhbHdheXMgbXVsdGktbGluZQ0KCQkJaXNUZXh0YXJlYSA/IHRydWUgOg0KCQkJLy8gSW5wdXRzIGFyZSBhbHdheXMgc2luZ2xlLWxpbmUsIGV2ZW4gaWYgaW5zaWRlIGEgY29udGVudEVkaXRhYmxlIGVsZW1lbnQNCgkJCS8vIElFIGFsc28gdHJlYXRzIGlucHV0cyBhcyBjb250ZW50RWRpdGFibGUNCgkJCWlzSW5wdXQgPyBmYWxzZSA6DQoJCQkvLyBBbGwgb3RoZXIgZWxlbWVudCB0eXBlcyBhcmUgZGV0ZXJtaW5lZCBieSB3aGV0aGVyIG9yIG5vdCB0aGV5J3JlIGNvbnRlbnRFZGl0YWJsZQ0KCQkJdGhpcy5lbGVtZW50LnByb3AoICJpc0NvbnRlbnRFZGl0YWJsZSIgKTsNCg0KCQl0aGlzLnZhbHVlTWV0aG9kID0gdGhpcy5lbGVtZW50WyBpc1RleHRhcmVhIHx8IGlzSW5wdXQgPyAidmFsIiA6ICJ0ZXh0IiBdOw0KCQl0aGlzLmlzTmV3TWVudSA9IHRydWU7DQoNCgkJdGhpcy5lbGVtZW50DQoJCQkuYWRkQ2xhc3MoICJ1aS1hdXRvY29tcGxldGUtaW5wdXQiICkNCgkJCS5hdHRyKCAiYXV0b2NvbXBsZXRlIiwgIm9mZiIgKTsNCg0KCQl0aGlzLl9vbiggdGhpcy5lbGVtZW50LCB7DQoJCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCB0aGlzLmVsZW1lbnQucHJvcCggInJlYWRPbmx5IiApICkgew0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJc3VwcHJlc3NJbnB1dCA9IHRydWU7DQoJCQkJCXN1cHByZXNzS2V5UHJlc3NSZXBlYXQgPSB0cnVlOw0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJc3VwcHJlc3NLZXlQcmVzcyA9IGZhbHNlOw0KCQkJCXN1cHByZXNzSW5wdXQgPSBmYWxzZTsNCgkJCQlzdXBwcmVzc0tleVByZXNzUmVwZWF0ID0gZmFsc2U7DQoJCQkJdmFyIGtleUNvZGUgPSAkLnVpLmtleUNvZGU7DQoJCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlIGtleUNvZGUuUEFHRV9VUDoNCgkJCQkJc3VwcHJlc3NLZXlQcmVzcyA9IHRydWU7DQoJCQkJCXRoaXMuX21vdmUoICJwcmV2aW91c1BhZ2UiLCBldmVudCApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlIGtleUNvZGUuUEFHRV9ET1dOOg0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJdGhpcy5fbW92ZSggIm5leHRQYWdlIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLlVQOg0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJdGhpcy5fa2V5RXZlbnQoICJwcmV2aW91cyIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Uga2V5Q29kZS5ET1dOOg0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJdGhpcy5fa2V5RXZlbnQoICJuZXh0IiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLkVOVEVSOg0KCQkJCQkvLyB3aGVuIG1lbnUgaXMgb3BlbiBhbmQgaGFzIGZvY3VzDQoJCQkJCWlmICggdGhpcy5tZW51LmFjdGl2ZSApIHsNCgkJCQkJCS8vICM2MDU1IC0gT3BlcmEgc3RpbGwgYWxsb3dzIHRoZSBrZXlwcmVzcyB0byBvY2N1cg0KCQkJCQkJLy8gd2hpY2ggY2F1c2VzIGZvcm1zIHRvIHN1Ym1pdA0KCQkJCQkJc3VwcHJlc3NLZXlQcmVzcyA9IHRydWU7DQoJCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQkJdGhpcy5tZW51LnNlbGVjdCggZXZlbnQgKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQljYXNlIGtleUNvZGUuVEFCOg0KCQkJCQlpZiAoIHRoaXMubWVudS5hY3RpdmUgKSB7DQoJCQkJCQl0aGlzLm1lbnUuc2VsZWN0KCBldmVudCApOw0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Uga2V5Q29kZS5FU0NBUEU6DQoJCQkJCWlmICggdGhpcy5tZW51LmVsZW1lbnQuaXMoICI6dmlzaWJsZSIgKSApIHsNCgkJCQkJCWlmICggIXRoaXMuaXNNdWx0aUxpbmUgKSB7DQoJCQkJCQkJdGhpcy5fdmFsdWUoIHRoaXMudGVybSApOw0KCQkJCQkJfQ0KCQkJCQkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJCQkJCS8vIERpZmZlcmVudCBicm93c2VycyBoYXZlIGRpZmZlcmVudCBkZWZhdWx0IGJlaGF2aW9yIGZvciBlc2NhcGUNCgkJCQkJCS8vIFNpbmdsZSBwcmVzcyBjYW4gbWVhbiB1bmRvIG9yIGNsZWFyDQoJCQkJCQkvLyBEb3VibGUgcHJlc3MgaW4gSUUgbWVhbnMgY2xlYXIgdGhlIHdob2xlIGZvcm0NCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCX0NCgkJCQkJYnJlYWs7DQoJCQkJZGVmYXVsdDoNCgkJCQkJc3VwcHJlc3NLZXlQcmVzc1JlcGVhdCA9IHRydWU7DQoJCQkJCS8vIHNlYXJjaCB0aW1lb3V0IHNob3VsZCBiZSB0cmlnZ2VyZWQgYmVmb3JlIHRoZSBpbnB1dCB2YWx1ZSBpcyBjaGFuZ2VkDQoJCQkJCXRoaXMuX3NlYXJjaFRpbWVvdXQoIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCX0NCgkJCX0sDQoJCQlrZXlwcmVzczogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggc3VwcHJlc3NLZXlQcmVzcyApIHsNCgkJCQkJc3VwcHJlc3NLZXlQcmVzcyA9IGZhbHNlOw0KCQkJCQlpZiAoICF0aGlzLmlzTXVsdGlMaW5lIHx8IHRoaXMubWVudS5lbGVtZW50LmlzKCAiOnZpc2libGUiICkgKSB7DQoJCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQl9DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQkJaWYgKCBzdXBwcmVzc0tleVByZXNzUmVwZWF0ICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJLy8gcmVwbGljYXRlIHNvbWUga2V5IGhhbmRsZXJzIHRvIGFsbG93IHRoZW0gdG8gcmVwZWF0IGluIEZpcmVmb3ggYW5kIE9wZXJhDQoJCQkJdmFyIGtleUNvZGUgPSAkLnVpLmtleUNvZGU7DQoJCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlIGtleUNvZGUuUEFHRV9VUDoNCgkJCQkJdGhpcy5fbW92ZSggInByZXZpb3VzUGFnZSIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Uga2V5Q29kZS5QQUdFX0RPV046DQoJCQkJCXRoaXMuX21vdmUoICJuZXh0UGFnZSIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Uga2V5Q29kZS5VUDoNCgkJCQkJdGhpcy5fa2V5RXZlbnQoICJwcmV2aW91cyIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Uga2V5Q29kZS5ET1dOOg0KCQkJCQl0aGlzLl9rZXlFdmVudCggIm5leHQiLCBldmVudCApOw0KCQkJCQlicmVhazsNCgkJCQl9DQoJCQl9LA0KCQkJaW5wdXQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoIHN1cHByZXNzSW5wdXQgKSB7DQoJCQkJCXN1cHByZXNzSW5wdXQgPSBmYWxzZTsNCgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCgkJCQl0aGlzLl9zZWFyY2hUaW1lb3V0KCBldmVudCApOw0KCQkJfSwNCgkJCWZvY3VzOiBmdW5jdGlvbigpIHsNCgkJCQl0aGlzLnNlbGVjdGVkSXRlbSA9IG51bGw7DQoJCQkJdGhpcy5wcmV2aW91cyA9IHRoaXMuX3ZhbHVlKCk7DQoJCQl9LA0KCQkJYmx1cjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggdGhpcy5jYW5jZWxCbHVyICkgew0KCQkJCQlkZWxldGUgdGhpcy5jYW5jZWxCbHVyOw0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJY2xlYXJUaW1lb3V0KCB0aGlzLnNlYXJjaGluZyApOw0KCQkJCXRoaXMuY2xvc2UoIGV2ZW50ICk7DQoJCQkJdGhpcy5fY2hhbmdlKCBldmVudCApOw0KCQkJfQ0KCQl9KTsNCg0KCQl0aGlzLl9pbml0U291cmNlKCk7DQoJCXRoaXMubWVudSA9ICQoICI8dWw+IiApDQoJCQkuYWRkQ2xhc3MoICJ1aS1hdXRvY29tcGxldGUgdWktZnJvbnQiICkNCgkJCS5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApDQoJCQkubWVudSh7DQoJCQkJLy8gZGlzYWJsZSBBUklBIHN1cHBvcnQsIHRoZSBsaXZlIHJlZ2lvbiB0YWtlcyBjYXJlIG9mIHRoYXQNCgkJCQlyb2xlOiBudWxsDQoJCQl9KQ0KCQkJLmhpZGUoKQ0KCQkJLm1lbnUoICJpbnN0YW5jZSIgKTsNCg0KCQl0aGlzLl9vbiggdGhpcy5tZW51LmVsZW1lbnQsIHsNCgkJCW1vdXNlZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCS8vIHByZXZlbnQgbW92aW5nIGZvY3VzIG91dCBvZiB0aGUgdGV4dCBmaWVsZA0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCgkJCQkvLyBJRSBkb2Vzbid0IHByZXZlbnQgbW92aW5nIGZvY3VzIGV2ZW4gd2l0aCBldmVudC5wcmV2ZW50RGVmYXVsdCgpDQoJCQkJLy8gc28gd2Ugc2V0IGEgZmxhZyB0byBrbm93IHdoZW4gd2Ugc2hvdWxkIGlnbm9yZSB0aGUgYmx1ciBldmVudA0KCQkJCXRoaXMuY2FuY2VsQmx1ciA9IHRydWU7DQoJCQkJdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJCWRlbGV0ZSB0aGlzLmNhbmNlbEJsdXI7DQoJCQkJfSk7DQoNCgkJCQkvLyBjbGlja2luZyBvbiB0aGUgc2Nyb2xsYmFyIGNhdXNlcyBmb2N1cyB0byBzaGlmdCB0byB0aGUgYm9keQ0KCQkJCS8vIGJ1dCB3ZSBjYW4ndCBkZXRlY3QgYSBtb3VzZXVwIG9yIGEgY2xpY2sgaW1tZWRpYXRlbHkgYWZ0ZXJ3YXJkDQoJCQkJLy8gc28gd2UgaGF2ZSB0byB0cmFjayB0aGUgbmV4dCBtb3VzZWRvd24gYW5kIGNsb3NlIHRoZSBtZW51IGlmDQoJCQkJLy8gdGhlIHVzZXIgY2xpY2tzIHNvbWV3aGVyZSBvdXRzaWRlIG9mIHRoZSBhdXRvY29tcGxldGUNCgkJCQl2YXIgbWVudUVsZW1lbnQgPSB0aGlzLm1lbnUuZWxlbWVudFsgMCBdOw0KCQkJCWlmICggISQoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoICIudWktbWVudS1pdGVtIiApLmxlbmd0aCApIHsNCgkJCQkJdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJCQl2YXIgdGhhdCA9IHRoaXM7DQoJCQkJCQl0aGlzLmRvY3VtZW50Lm9uZSggIm1vdXNlZG93biIsIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkJCQlpZiAoIGV2ZW50LnRhcmdldCAhPT0gdGhhdC5lbGVtZW50WyAwIF0gJiYNCgkJCQkJCQkJCWV2ZW50LnRhcmdldCAhPT0gbWVudUVsZW1lbnQgJiYNCgkJCQkJCQkJCSEkLmNvbnRhaW5zKCBtZW51RWxlbWVudCwgZXZlbnQudGFyZ2V0ICkgKSB7DQoJCQkJCQkJCXRoYXQuY2xvc2UoKTsNCgkJCQkJCQl9DQoJCQkJCQl9KTsNCgkJCQkJfSk7DQoJCQkJfQ0KCQkJfSwNCgkJCW1lbnVmb2N1czogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsNCgkJCQl2YXIgbGFiZWwsIGl0ZW07DQoJCQkJLy8gc3VwcG9ydDogRmlyZWZveA0KCQkJCS8vIFByZXZlbnQgYWNjaWRlbnRhbCBhY3RpdmF0aW9uIG9mIG1lbnUgaXRlbXMgaW4gRmlyZWZveCAoIzcwMjQgIzkxMTgpDQoJCQkJaWYgKCB0aGlzLmlzTmV3TWVudSApIHsNCgkJCQkJdGhpcy5pc05ld01lbnUgPSBmYWxzZTsNCgkJCQkJaWYgKCBldmVudC5vcmlnaW5hbEV2ZW50ICYmIC9ebW91c2UvLnRlc3QoIGV2ZW50Lm9yaWdpbmFsRXZlbnQudHlwZSApICkgew0KCQkJCQkJdGhpcy5tZW51LmJsdXIoKTsNCg0KCQkJCQkJdGhpcy5kb2N1bWVudC5vbmUoICJtb3VzZW1vdmUiLCBmdW5jdGlvbigpIHsNCgkJCQkJCQkkKCBldmVudC50YXJnZXQgKS50cmlnZ2VyKCBldmVudC5vcmlnaW5hbEV2ZW50ICk7DQoJCQkJCQl9KTsNCg0KCQkJCQkJcmV0dXJuOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJaXRlbSA9IHVpLml0ZW0uZGF0YSggInVpLWF1dG9jb21wbGV0ZS1pdGVtIiApOw0KCQkJCWlmICggZmFsc2UgIT09IHRoaXMuX3RyaWdnZXIoICJmb2N1cyIsIGV2ZW50LCB7IGl0ZW06IGl0ZW0gfSApICkgew0KCQkJCQkvLyB1c2UgdmFsdWUgdG8gbWF0Y2ggd2hhdCB3aWxsIGVuZCB1cCBpbiB0aGUgaW5wdXQsIGlmIGl0IHdhcyBhIGtleSBldmVudA0KCQkJCQlpZiAoIGV2ZW50Lm9yaWdpbmFsRXZlbnQgJiYgL15rZXkvLnRlc3QoIGV2ZW50Lm9yaWdpbmFsRXZlbnQudHlwZSApICkgew0KCQkJCQkJdGhpcy5fdmFsdWUoIGl0ZW0udmFsdWUgKTsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCS8vIEFubm91bmNlIHRoZSB2YWx1ZSBpbiB0aGUgbGl2ZVJlZ2lvbg0KCQkJCWxhYmVsID0gdWkuaXRlbS5hdHRyKCAiYXJpYS1sYWJlbCIgKSB8fCBpdGVtLnZhbHVlOw0KCQkJCWlmICggbGFiZWwgJiYgJC50cmltKCBsYWJlbCApLmxlbmd0aCApIHsNCgkJCQkJdGhpcy5saXZlUmVnaW9uLmNoaWxkcmVuKCkuaGlkZSgpOw0KCQkJCQkkKCAiPGRpdj4iICkudGV4dCggbGFiZWwgKS5hcHBlbmRUbyggdGhpcy5saXZlUmVnaW9uICk7DQoJCQkJfQ0KCQkJfSwNCgkJCW1lbnVzZWxlY3Q6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7DQoJCQkJdmFyIGl0ZW0gPSB1aS5pdGVtLmRhdGEoICJ1aS1hdXRvY29tcGxldGUtaXRlbSIgKSwNCgkJCQkJcHJldmlvdXMgPSB0aGlzLnByZXZpb3VzOw0KDQoJCQkJLy8gb25seSB0cmlnZ2VyIHdoZW4gZm9jdXMgd2FzIGxvc3QgKGNsaWNrIG9uIG1lbnUpDQoJCQkJaWYgKCB0aGlzLmVsZW1lbnRbIDAgXSAhPT0gdGhpcy5kb2N1bWVudFsgMCBdLmFjdGl2ZUVsZW1lbnQgKSB7DQoJCQkJCXRoaXMuZWxlbWVudC5mb2N1cygpOw0KCQkJCQl0aGlzLnByZXZpb3VzID0gcHJldmlvdXM7DQoJCQkJCS8vICM2MTA5IC0gSUUgdHJpZ2dlcnMgdHdvIGZvY3VzIGV2ZW50cyBhbmQgdGhlIHNlY29uZA0KCQkJCQkvLyBpcyBhc3luY2hyb25vdXMsIHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlIHByZXZpb3VzDQoJCQkJCS8vIHRlcm0gc3luY2hyb25vdXNseSBhbmQgYXN5bmNocm9ub3VzbHkgOi0oDQoJCQkJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCQkJdGhpcy5wcmV2aW91cyA9IHByZXZpb3VzOw0KCQkJCQkJdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtOw0KCQkJCQl9KTsNCgkJCQl9DQoNCgkJCQlpZiAoIGZhbHNlICE9PSB0aGlzLl90cmlnZ2VyKCAic2VsZWN0IiwgZXZlbnQsIHsgaXRlbTogaXRlbSB9ICkgKSB7DQoJCQkJCXRoaXMuX3ZhbHVlKCBpdGVtLnZhbHVlICk7DQoJCQkJfQ0KCQkJCS8vIHJlc2V0IHRoZSB0ZXJtIGFmdGVyIHRoZSBzZWxlY3QgZXZlbnQNCgkJCQkvLyB0aGlzIGFsbG93cyBjdXN0b20gc2VsZWN0IGhhbmRsaW5nIHRvIHdvcmsgcHJvcGVybHkNCgkJCQl0aGlzLnRlcm0gPSB0aGlzLl92YWx1ZSgpOw0KDQoJCQkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJCQl0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07DQoJCQl9DQoJCX0pOw0KDQoJCXRoaXMubGl2ZVJlZ2lvbiA9ICQoICI8c3Bhbj4iLCB7DQoJCQkJcm9sZTogInN0YXR1cyIsDQoJCQkJImFyaWEtbGl2ZSI6ICJhc3NlcnRpdmUiLA0KCQkJCSJhcmlhLXJlbGV2YW50IjogImFkZGl0aW9ucyINCgkJCX0pDQoJCQkuYWRkQ2xhc3MoICJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiICkNCgkJCS5hcHBlbmRUbyggdGhpcy5kb2N1bWVudFsgMCBdLmJvZHkgKTsNCg0KCQkvLyB0dXJuaW5nIG9mZiBhdXRvY29tcGxldGUgcHJldmVudHMgdGhlIGJyb3dzZXIgZnJvbSByZW1lbWJlcmluZyB0aGUNCgkJLy8gdmFsdWUgd2hlbiBuYXZpZ2F0aW5nIHRocm91Z2ggaGlzdG9yeSwgc28gd2UgcmUtZW5hYmxlIGF1dG9jb21wbGV0ZQ0KCQkvLyBpZiB0aGUgcGFnZSBpcyB1bmxvYWRlZCBiZWZvcmUgdGhlIHdpZGdldCBpcyBkZXN0cm95ZWQuICM3NzkwDQoJCXRoaXMuX29uKCB0aGlzLndpbmRvdywgew0KCQkJYmVmb3JldW5sb2FkOiBmdW5jdGlvbigpIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQXR0ciggImF1dG9jb21wbGV0ZSIgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnNlYXJjaGluZyApOw0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcyggInVpLWF1dG9jb21wbGV0ZS1pbnB1dCIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhdXRvY29tcGxldGUiICk7DQoJCXRoaXMubWVudS5lbGVtZW50LnJlbW92ZSgpOw0KCQl0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KCQlpZiAoIGtleSA9PT0gInNvdXJjZSIgKSB7DQoJCQl0aGlzLl9pbml0U291cmNlKCk7DQoJCX0NCgkJaWYgKCBrZXkgPT09ICJhcHBlbmRUbyIgKSB7DQoJCQl0aGlzLm1lbnUuZWxlbWVudC5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KCQl9DQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICYmIHZhbHVlICYmIHRoaXMueGhyICkgew0KCQkJdGhpcy54aHIuYWJvcnQoKTsNCgkJfQ0KCX0sDQoNCglfYXBwZW5kVG86IGZ1bmN0aW9uKCkgew0KCQl2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5hcHBlbmRUbzsNCg0KCQlpZiAoIGVsZW1lbnQgKSB7DQoJCQllbGVtZW50ID0gZWxlbWVudC5qcXVlcnkgfHwgZWxlbWVudC5ub2RlVHlwZSA/DQoJCQkJJCggZWxlbWVudCApIDoNCgkJCQl0aGlzLmRvY3VtZW50LmZpbmQoIGVsZW1lbnQgKS5lcSggMCApOw0KCQl9DQoNCgkJaWYgKCAhZWxlbWVudCB8fCAhZWxlbWVudFsgMCBdICkgew0KCQkJZWxlbWVudCA9IHRoaXMuZWxlbWVudC5jbG9zZXN0KCAiLnVpLWZyb250IiApOw0KCQl9DQoNCgkJaWYgKCAhZWxlbWVudC5sZW5ndGggKSB7DQoJCQllbGVtZW50ID0gdGhpcy5kb2N1bWVudFsgMCBdLmJvZHk7DQoJCX0NCg0KCQlyZXR1cm4gZWxlbWVudDsNCgl9LA0KDQoJX2luaXRTb3VyY2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgYXJyYXksIHVybCwNCgkJCXRoYXQgPSB0aGlzOw0KCQlpZiAoICQuaXNBcnJheSggdGhpcy5vcHRpb25zLnNvdXJjZSApICkgew0KCQkJYXJyYXkgPSB0aGlzLm9wdGlvbnMuc291cmNlOw0KCQkJdGhpcy5zb3VyY2UgPSBmdW5jdGlvbiggcmVxdWVzdCwgcmVzcG9uc2UgKSB7DQoJCQkJcmVzcG9uc2UoICQudWkuYXV0b2NvbXBsZXRlLmZpbHRlciggYXJyYXksIHJlcXVlc3QudGVybSApICk7DQoJCQl9Ow0KCQl9IGVsc2UgaWYgKCB0eXBlb2YgdGhpcy5vcHRpb25zLnNvdXJjZSA9PT0gInN0cmluZyIgKSB7DQoJCQl1cmwgPSB0aGlzLm9wdGlvbnMuc291cmNlOw0KCQkJdGhpcy5zb3VyY2UgPSBmdW5jdGlvbiggcmVxdWVzdCwgcmVzcG9uc2UgKSB7DQoJCQkJaWYgKCB0aGF0LnhociApIHsNCgkJCQkJdGhhdC54aHIuYWJvcnQoKTsNCgkJCQl9DQoJCQkJdGhhdC54aHIgPSAkLmFqYXgoew0KCQkJCQl1cmw6IHVybCwNCgkJCQkJZGF0YTogcmVxdWVzdCwNCgkJCQkJZGF0YVR5cGU6ICJqc29uIiwNCgkJCQkJc3VjY2VzczogZnVuY3Rpb24oIGRhdGEgKSB7DQoJCQkJCQlyZXNwb25zZSggZGF0YSApOw0KCQkJCQl9LA0KCQkJCQllcnJvcjogZnVuY3Rpb24oKSB7DQoJCQkJCQlyZXNwb25zZShbXSk7DQoJCQkJCX0NCgkJCQl9KTsNCgkJCX07DQoJCX0gZWxzZSB7DQoJCQl0aGlzLnNvdXJjZSA9IHRoaXMub3B0aW9ucy5zb3VyY2U7DQoJCX0NCgl9LA0KDQoJX3NlYXJjaFRpbWVvdXQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnNlYXJjaGluZyApOw0KCQl0aGlzLnNlYXJjaGluZyA9IHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KDQoJCQkvLyBTZWFyY2ggaWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLCBvciBpZiB0aGUgdXNlciByZXR5cGVzIHRoZSBzYW1lIHZhbHVlIChzZWUgIzc0MzQpDQoJCQl2YXIgZXF1YWxWYWx1ZXMgPSB0aGlzLnRlcm0gPT09IHRoaXMuX3ZhbHVlKCksDQoJCQkJbWVudVZpc2libGUgPSB0aGlzLm1lbnUuZWxlbWVudC5pcyggIjp2aXNpYmxlIiApLA0KCQkJCW1vZGlmaWVyS2V5ID0gZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5zaGlmdEtleTsNCg0KCQkJaWYgKCAhZXF1YWxWYWx1ZXMgfHwgKCBlcXVhbFZhbHVlcyAmJiAhbWVudVZpc2libGUgJiYgIW1vZGlmaWVyS2V5ICkgKSB7DQoJCQkJdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsOw0KCQkJCXRoaXMuc2VhcmNoKCBudWxsLCBldmVudCApOw0KCQkJfQ0KCQl9LCB0aGlzLm9wdGlvbnMuZGVsYXkgKTsNCgl9LA0KDQoJc2VhcmNoOiBmdW5jdGlvbiggdmFsdWUsIGV2ZW50ICkgew0KCQl2YWx1ZSA9IHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IHRoaXMuX3ZhbHVlKCk7DQoNCgkJLy8gYWx3YXlzIHNhdmUgdGhlIGFjdHVhbCB2YWx1ZSwgbm90IHRoZSBvbmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50DQoJCXRoaXMudGVybSA9IHRoaXMuX3ZhbHVlKCk7DQoNCgkJaWYgKCB2YWx1ZS5sZW5ndGggPCB0aGlzLm9wdGlvbnMubWluTGVuZ3RoICkgew0KCQkJcmV0dXJuIHRoaXMuY2xvc2UoIGV2ZW50ICk7DQoJCX0NCg0KCQlpZiAoIHRoaXMuX3RyaWdnZXIoICJzZWFyY2giLCBldmVudCApID09PSBmYWxzZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXJldHVybiB0aGlzLl9zZWFyY2goIHZhbHVlICk7DQoJfSwNCg0KCV9zZWFyY2g6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJdGhpcy5wZW5kaW5nKys7DQoJCXRoaXMuZWxlbWVudC5hZGRDbGFzcyggInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIiApOw0KCQl0aGlzLmNhbmNlbFNlYXJjaCA9IGZhbHNlOw0KDQoJCXRoaXMuc291cmNlKCB7IHRlcm06IHZhbHVlIH0sIHRoaXMuX3Jlc3BvbnNlKCkgKTsNCgl9LA0KDQoJX3Jlc3BvbnNlOiBmdW5jdGlvbigpIHsNCgkJdmFyIGluZGV4ID0gKyt0aGlzLnJlcXVlc3RJbmRleDsNCg0KCQlyZXR1cm4gJC5wcm94eShmdW5jdGlvbiggY29udGVudCApIHsNCgkJCWlmICggaW5kZXggPT09IHRoaXMucmVxdWVzdEluZGV4ICkgew0KCQkJCXRoaXMuX19yZXNwb25zZSggY29udGVudCApOw0KCQkJfQ0KDQoJCQl0aGlzLnBlbmRpbmctLTsNCgkJCWlmICggIXRoaXMucGVuZGluZyApIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoICJ1aS1hdXRvY29tcGxldGUtbG9hZGluZyIgKTsNCgkJCX0NCgkJfSwgdGhpcyApOw0KCX0sDQoNCglfX3Jlc3BvbnNlOiBmdW5jdGlvbiggY29udGVudCApIHsNCgkJaWYgKCBjb250ZW50ICkgew0KCQkJY29udGVudCA9IHRoaXMuX25vcm1hbGl6ZSggY29udGVudCApOw0KCQl9DQoJCXRoaXMuX3RyaWdnZXIoICJyZXNwb25zZSIsIG51bGwsIHsgY29udGVudDogY29udGVudCB9ICk7DQoJCWlmICggIXRoaXMub3B0aW9ucy5kaXNhYmxlZCAmJiBjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoICYmICF0aGlzLmNhbmNlbFNlYXJjaCApIHsNCgkJCXRoaXMuX3N1Z2dlc3QoIGNvbnRlbnQgKTsNCgkJCXRoaXMuX3RyaWdnZXIoICJvcGVuIiApOw0KCQl9IGVsc2Ugew0KCQkJLy8gdXNlIC5fY2xvc2UoKSBpbnN0ZWFkIG9mIC5jbG9zZSgpIHNvIHdlIGRvbid0IGNhbmNlbCBmdXR1cmUgc2VhcmNoZXMNCgkJCXRoaXMuX2Nsb3NlKCk7DQoJCX0NCgl9LA0KDQoJY2xvc2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdGhpcy5jYW5jZWxTZWFyY2ggPSB0cnVlOw0KCQl0aGlzLl9jbG9zZSggZXZlbnQgKTsNCgl9LA0KDQoJX2Nsb3NlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggdGhpcy5tZW51LmVsZW1lbnQuaXMoICI6dmlzaWJsZSIgKSApIHsNCgkJCXRoaXMubWVudS5lbGVtZW50LmhpZGUoKTsNCgkJCXRoaXMubWVudS5ibHVyKCk7DQoJCQl0aGlzLmlzTmV3TWVudSA9IHRydWU7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2xvc2UiLCBldmVudCApOw0KCQl9DQoJfSwNCg0KCV9jaGFuZ2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCB0aGlzLnByZXZpb3VzICE9PSB0aGlzLl92YWx1ZSgpICkgew0KCQkJdGhpcy5fdHJpZ2dlciggImNoYW5nZSIsIGV2ZW50LCB7IGl0ZW06IHRoaXMuc2VsZWN0ZWRJdGVtIH0gKTsNCgkJfQ0KCX0sDQoNCglfbm9ybWFsaXplOiBmdW5jdGlvbiggaXRlbXMgKSB7DQoJCS8vIGFzc3VtZSBhbGwgaXRlbXMgaGF2ZSB0aGUgcmlnaHQgZm9ybWF0IHdoZW4gdGhlIGZpcnN0IGl0ZW0gaXMgY29tcGxldGUNCgkJaWYgKCBpdGVtcy5sZW5ndGggJiYgaXRlbXNbIDAgXS5sYWJlbCAmJiBpdGVtc1sgMCBdLnZhbHVlICkgew0KCQkJcmV0dXJuIGl0ZW1zOw0KCQl9DQoJCXJldHVybiAkLm1hcCggaXRlbXMsIGZ1bmN0aW9uKCBpdGVtICkgew0KCQkJaWYgKCB0eXBlb2YgaXRlbSA9PT0gInN0cmluZyIgKSB7DQoJCQkJcmV0dXJuIHsNCgkJCQkJbGFiZWw6IGl0ZW0sDQoJCQkJCXZhbHVlOiBpdGVtDQoJCQkJfTsNCgkJCX0NCgkJCXJldHVybiAkLmV4dGVuZCgge30sIGl0ZW0sIHsNCgkJCQlsYWJlbDogaXRlbS5sYWJlbCB8fCBpdGVtLnZhbHVlLA0KCQkJCXZhbHVlOiBpdGVtLnZhbHVlIHx8IGl0ZW0ubGFiZWwNCgkJCX0pOw0KCQl9KTsNCgl9LA0KDQoJX3N1Z2dlc3Q6IGZ1bmN0aW9uKCBpdGVtcyApIHsNCgkJdmFyIHVsID0gdGhpcy5tZW51LmVsZW1lbnQuZW1wdHkoKTsNCgkJdGhpcy5fcmVuZGVyTWVudSggdWwsIGl0ZW1zICk7DQoJCXRoaXMuaXNOZXdNZW51ID0gdHJ1ZTsNCgkJdGhpcy5tZW51LnJlZnJlc2goKTsNCg0KCQkvLyBzaXplIGFuZCBwb3NpdGlvbiBtZW51DQoJCXVsLnNob3coKTsNCgkJdGhpcy5fcmVzaXplTWVudSgpOw0KCQl1bC5wb3NpdGlvbiggJC5leHRlbmQoew0KCQkJb2Y6IHRoaXMuZWxlbWVudA0KCQl9LCB0aGlzLm9wdGlvbnMucG9zaXRpb24gKSApOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmF1dG9Gb2N1cyApIHsNCgkJCXRoaXMubWVudS5uZXh0KCk7DQoJCX0NCgl9LA0KDQoJX3Jlc2l6ZU1lbnU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdWwgPSB0aGlzLm1lbnUuZWxlbWVudDsNCgkJdWwub3V0ZXJXaWR0aCggTWF0aC5tYXgoDQoJCQkvLyBGaXJlZm94IHdyYXBzIGxvbmcgdGV4dCAocG9zc2libHkgYSByb3VuZGluZyBidWcpDQoJCQkvLyBzbyB3ZSBhZGQgMXB4IHRvIGF2b2lkIHRoZSB3cmFwcGluZyAoIzc1MTMpDQoJCQl1bC53aWR0aCggIiIgKS5vdXRlcldpZHRoKCkgKyAxLA0KCQkJdGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKQ0KCQkpICk7DQoJfSwNCg0KCV9yZW5kZXJNZW51OiBmdW5jdGlvbiggdWwsIGl0ZW1zICkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoJCSQuZWFjaCggaXRlbXMsIGZ1bmN0aW9uKCBpbmRleCwgaXRlbSApIHsNCgkJCXRoYXQuX3JlbmRlckl0ZW1EYXRhKCB1bCwgaXRlbSApOw0KCQl9KTsNCgl9LA0KDQoJX3JlbmRlckl0ZW1EYXRhOiBmdW5jdGlvbiggdWwsIGl0ZW0gKSB7DQoJCXJldHVybiB0aGlzLl9yZW5kZXJJdGVtKCB1bCwgaXRlbSApLmRhdGEoICJ1aS1hdXRvY29tcGxldGUtaXRlbSIsIGl0ZW0gKTsNCgl9LA0KDQoJX3JlbmRlckl0ZW06IGZ1bmN0aW9uKCB1bCwgaXRlbSApIHsNCgkJcmV0dXJuICQoICI8bGk+IiApLnRleHQoIGl0ZW0ubGFiZWwgKS5hcHBlbmRUbyggdWwgKTsNCgl9LA0KDQoJX21vdmU6IGZ1bmN0aW9uKCBkaXJlY3Rpb24sIGV2ZW50ICkgew0KCQlpZiAoICF0aGlzLm1lbnUuZWxlbWVudC5pcyggIjp2aXNpYmxlIiApICkgew0KCQkJdGhpcy5zZWFyY2goIG51bGwsIGV2ZW50ICk7DQoJCQlyZXR1cm47DQoJCX0NCgkJaWYgKCB0aGlzLm1lbnUuaXNGaXJzdEl0ZW0oKSAmJiAvXnByZXZpb3VzLy50ZXN0KCBkaXJlY3Rpb24gKSB8fA0KCQkJCXRoaXMubWVudS5pc0xhc3RJdGVtKCkgJiYgL15uZXh0Ly50ZXN0KCBkaXJlY3Rpb24gKSApIHsNCg0KCQkJaWYgKCAhdGhpcy5pc011bHRpTGluZSApIHsNCgkJCQl0aGlzLl92YWx1ZSggdGhpcy50ZXJtICk7DQoJCQl9DQoNCgkJCXRoaXMubWVudS5ibHVyKCk7DQoJCQlyZXR1cm47DQoJCX0NCgkJdGhpcy5tZW51WyBkaXJlY3Rpb24gXSggZXZlbnQgKTsNCgl9LA0KDQoJd2lkZ2V0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMubWVudS5lbGVtZW50Ow0KCX0sDQoNCglfdmFsdWU6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy52YWx1ZU1ldGhvZC5hcHBseSggdGhpcy5lbGVtZW50LCBhcmd1bWVudHMgKTsNCgl9LA0KDQoJX2tleUV2ZW50OiBmdW5jdGlvbigga2V5RXZlbnQsIGV2ZW50ICkgew0KCQlpZiAoICF0aGlzLmlzTXVsdGlMaW5lIHx8IHRoaXMubWVudS5lbGVtZW50LmlzKCAiOnZpc2libGUiICkgKSB7DQoJCQl0aGlzLl9tb3ZlKCBrZXlFdmVudCwgZXZlbnQgKTsNCg0KCQkJLy8gcHJldmVudHMgbW92aW5nIGN1cnNvciB0byBiZWdpbm5pbmcvZW5kIG9mIHRoZSB0ZXh0IGZpZWxkIGluIHNvbWUgYnJvd3NlcnMNCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCX0NCgl9DQp9KTsNCg0KJC5leHRlbmQoICQudWkuYXV0b2NvbXBsZXRlLCB7DQoJZXNjYXBlUmVnZXg6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJcmV0dXJuIHZhbHVlLnJlcGxhY2UoIC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCAiXFwkJiIgKTsNCgl9LA0KCWZpbHRlcjogZnVuY3Rpb24oIGFycmF5LCB0ZXJtICkgew0KCQl2YXIgbWF0Y2hlciA9IG5ldyBSZWdFeHAoICQudWkuYXV0b2NvbXBsZXRlLmVzY2FwZVJlZ2V4KCB0ZXJtICksICJpIiApOw0KCQlyZXR1cm4gJC5ncmVwKCBhcnJheSwgZnVuY3Rpb24oIHZhbHVlICkgew0KCQkJcmV0dXJuIG1hdGNoZXIudGVzdCggdmFsdWUubGFiZWwgfHwgdmFsdWUudmFsdWUgfHwgdmFsdWUgKTsNCgkJfSk7DQoJfQ0KfSk7DQoNCi8vIGxpdmUgcmVnaW9uIGV4dGVuc2lvbiwgYWRkaW5nIGEgYG1lc3NhZ2VzYCBvcHRpb24NCi8vIE5PVEU6IFRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIEFQSS4gV2UgYXJlIHN0aWxsIGludmVzdGlnYXRpbmcNCi8vIGEgZnVsbCBzb2x1dGlvbiBmb3Igc3RyaW5nIG1hbmlwdWxhdGlvbiBhbmQgaW50ZXJuYXRpb25hbGl6YXRpb24uDQokLndpZGdldCggInVpLmF1dG9jb21wbGV0ZSIsICQudWkuYXV0b2NvbXBsZXRlLCB7DQoJb3B0aW9uczogew0KCQltZXNzYWdlczogew0KCQkJbm9SZXN1bHRzOiAiTm8gc2VhcmNoIHJlc3VsdHMuIiwNCgkJCXJlc3VsdHM6IGZ1bmN0aW9uKCBhbW91bnQgKSB7DQoJCQkJcmV0dXJuIGFtb3VudCArICggYW1vdW50ID4gMSA/ICIgcmVzdWx0cyBhcmUiIDogIiByZXN1bHQgaXMiICkgKw0KCQkJCQkiIGF2YWlsYWJsZSwgdXNlIHVwIGFuZCBkb3duIGFycm93IGtleXMgdG8gbmF2aWdhdGUuIjsNCgkJCX0NCgkJfQ0KCX0sDQoNCglfX3Jlc3BvbnNlOiBmdW5jdGlvbiggY29udGVudCApIHsNCgkJdmFyIG1lc3NhZ2U7DQoJCXRoaXMuX3N1cGVyQXBwbHkoIGFyZ3VtZW50cyApOw0KCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCB8fCB0aGlzLmNhbmNlbFNlYXJjaCApIHsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggKSB7DQoJCQltZXNzYWdlID0gdGhpcy5vcHRpb25zLm1lc3NhZ2VzLnJlc3VsdHMoIGNvbnRlbnQubGVuZ3RoICk7DQoJCX0gZWxzZSB7DQoJCQltZXNzYWdlID0gdGhpcy5vcHRpb25zLm1lc3NhZ2VzLm5vUmVzdWx0czsNCgkJfQ0KCQl0aGlzLmxpdmVSZWdpb24uY2hpbGRyZW4oKS5oaWRlKCk7DQoJCSQoICI8ZGl2PiIgKS50ZXh0KCBtZXNzYWdlICkuYXBwZW5kVG8oIHRoaXMubGl2ZVJlZ2lvbiApOw0KCX0NCn0pOw0KDQp2YXIgYXV0b2NvbXBsZXRlID0gJC51aS5hdXRvY29tcGxldGU7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgQnV0dG9uIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9idXR0b24vDQogKi8NCg0KDQp2YXIgbGFzdEFjdGl2ZSwNCgliYXNlQ2xhc3NlcyA9ICJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIsDQoJdHlwZUNsYXNzZXMgPSAidWktYnV0dG9uLWljb25zLW9ubHkgdWktYnV0dG9uLWljb24tb25seSB1aS1idXR0b24tdGV4dC1pY29ucyB1aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkgdWktYnV0dG9uLXRleHQtaWNvbi1zZWNvbmRhcnkgdWktYnV0dG9uLXRleHQtb25seSIsDQoJZm9ybVJlc2V0SGFuZGxlciA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgZm9ybSA9ICQoIHRoaXMgKTsNCgkJc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCWZvcm0uZmluZCggIjp1aS1idXR0b24iICkuYnV0dG9uKCAicmVmcmVzaCIgKTsNCgkJfSwgMSApOw0KCX0sDQoJcmFkaW9Hcm91cCA9IGZ1bmN0aW9uKCByYWRpbyApIHsNCgkJdmFyIG5hbWUgPSByYWRpby5uYW1lLA0KCQkJZm9ybSA9IHJhZGlvLmZvcm0sDQoJCQlyYWRpb3MgPSAkKCBbXSApOw0KCQlpZiAoIG5hbWUgKSB7DQoJCQluYW1lID0gbmFtZS5yZXBsYWNlKCAvJy9nLCAiXFwnIiApOw0KCQkJaWYgKCBmb3JtICkgew0KCQkJCXJhZGlvcyA9ICQoIGZvcm0gKS5maW5kKCAiW25hbWU9JyIgKyBuYW1lICsgIiddW3R5cGU9cmFkaW9dIiApOw0KCQkJfSBlbHNlIHsNCgkJCQlyYWRpb3MgPSAkKCAiW25hbWU9JyIgKyBuYW1lICsgIiddW3R5cGU9cmFkaW9dIiwgcmFkaW8ub3duZXJEb2N1bWVudCApDQoJCQkJCS5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQkJCQlyZXR1cm4gIXRoaXMuZm9ybTsNCgkJCQkJfSk7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHJhZGlvczsNCgl9Ow0KDQokLndpZGdldCggInVpLmJ1dHRvbiIsIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCglkZWZhdWx0RWxlbWVudDogIjxidXR0b24+IiwNCglvcHRpb25zOiB7DQoJCWRpc2FibGVkOiBudWxsLA0KCQl0ZXh0OiB0cnVlLA0KCQlsYWJlbDogbnVsbCwNCgkJaWNvbnM6IHsNCgkJCXByaW1hcnk6IG51bGwsDQoJCQlzZWNvbmRhcnk6IG51bGwNCgkJfQ0KCX0sDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5jbG9zZXN0KCAiZm9ybSIgKQ0KCQkJLnVuYmluZCggInJlc2V0IiArIHRoaXMuZXZlbnROYW1lc3BhY2UgKQ0KCQkJLmJpbmQoICJyZXNldCIgKyB0aGlzLmV2ZW50TmFtZXNwYWNlLCBmb3JtUmVzZXRIYW5kbGVyICk7DQoNCgkJaWYgKCB0eXBlb2YgdGhpcy5vcHRpb25zLmRpc2FibGVkICE9PSAiYm9vbGVhbiIgKSB7DQoJCQl0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSAhIXRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmVsZW1lbnQucHJvcCggImRpc2FibGVkIiwgdGhpcy5vcHRpb25zLmRpc2FibGVkICk7DQoJCX0NCg0KCQl0aGlzLl9kZXRlcm1pbmVCdXR0b25UeXBlKCk7DQoJCXRoaXMuaGFzVGl0bGUgPSAhIXRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCAidGl0bGUiICk7DQoNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCXRvZ2dsZUJ1dHRvbiA9IHRoaXMudHlwZSA9PT0gImNoZWNrYm94IiB8fCB0aGlzLnR5cGUgPT09ICJyYWRpbyIsDQoJCQlhY3RpdmVDbGFzcyA9ICF0b2dnbGVCdXR0b24gPyAidWktc3RhdGUtYWN0aXZlIiA6ICIiOw0KDQoJCWlmICggb3B0aW9ucy5sYWJlbCA9PT0gbnVsbCApIHsNCgkJCW9wdGlvbnMubGFiZWwgPSAodGhpcy50eXBlID09PSAiaW5wdXQiID8gdGhpcy5idXR0b25FbGVtZW50LnZhbCgpIDogdGhpcy5idXR0b25FbGVtZW50Lmh0bWwoKSk7DQoJCX0NCg0KCQl0aGlzLl9ob3ZlcmFibGUoIHRoaXMuYnV0dG9uRWxlbWVudCApOw0KDQoJCXRoaXMuYnV0dG9uRWxlbWVudA0KCQkJLmFkZENsYXNzKCBiYXNlQ2xhc3NlcyApDQoJCQkuYXR0ciggInJvbGUiLCAiYnV0dG9uIiApDQoJCQkuYmluZCggIm1vdXNlZW50ZXIiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCWlmICggdGhpcyA9PT0gbGFzdEFjdGl2ZSApIHsNCgkJCQkJJCggdGhpcyApLmFkZENsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJCX0NCgkJCX0pDQoJCQkuYmluZCggIm1vdXNlbGVhdmUiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCSQoIHRoaXMgKS5yZW1vdmVDbGFzcyggYWN0aXZlQ2xhc3MgKTsNCgkJCX0pDQoJCQkuYmluZCggImNsaWNrIiArIHRoaXMuZXZlbnROYW1lc3BhY2UsIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoIG9wdGlvbnMuZGlzYWJsZWQgKSB7DQoJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCWV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCS8vIENhbid0IHVzZSBfZm9jdXNhYmxlKCkgYmVjYXVzZSB0aGUgZWxlbWVudCB0aGF0IHJlY2VpdmVzIGZvY3VzDQoJCS8vIGFuZCB0aGUgZWxlbWVudCB0aGF0IGdldHMgdGhlIHVpLXN0YXRlLWZvY3VzIGNsYXNzIGFyZSBkaWZmZXJlbnQNCgkJdGhpcy5fb24oew0KCQkJZm9jdXM6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuYnV0dG9uRWxlbWVudC5hZGRDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfSwNCgkJCWJsdXI6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfQ0KCQl9KTsNCg0KCQlpZiAoIHRvZ2dsZUJ1dHRvbiApIHsNCgkJCXRoaXMuZWxlbWVudC5iaW5kKCAiY2hhbmdlIiArIHRoaXMuZXZlbnROYW1lc3BhY2UsIGZ1bmN0aW9uKCkgew0KCQkJCXRoYXQucmVmcmVzaCgpOw0KCQkJfSk7DQoJCX0NCg0KCQlpZiAoIHRoaXMudHlwZSA9PT0gImNoZWNrYm94IiApIHsNCgkJCXRoaXMuYnV0dG9uRWxlbWVudC5iaW5kKCAiY2xpY2siICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJfSk7DQoJCX0gZWxzZSBpZiAoIHRoaXMudHlwZSA9PT0gInJhZGlvIiApIHsNCgkJCXRoaXMuYnV0dG9uRWxlbWVudC5iaW5kKCAiY2xpY2siICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJCSQoIHRoaXMgKS5hZGRDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQl0aGF0LmJ1dHRvbkVsZW1lbnQuYXR0ciggImFyaWEtcHJlc3NlZCIsICJ0cnVlIiApOw0KDQoJCQkJdmFyIHJhZGlvID0gdGhhdC5lbGVtZW50WyAwIF07DQoJCQkJcmFkaW9Hcm91cCggcmFkaW8gKQ0KCQkJCQkubm90KCByYWRpbyApDQoJCQkJCS5tYXAoZnVuY3Rpb24oKSB7DQoJCQkJCQlyZXR1cm4gJCggdGhpcyApLmJ1dHRvbiggIndpZGdldCIgKVsgMCBdOw0KCQkJCQl9KQ0KCQkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICkNCgkJCQkJLmF0dHIoICJhcmlhLXByZXNzZWQiLCAiZmFsc2UiICk7DQoJCQl9KTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYnV0dG9uRWxlbWVudA0KCQkJCS5iaW5kKCAibW91c2Vkb3duIiArIHRoaXMuZXZlbnROYW1lc3BhY2UsIGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoIG9wdGlvbnMuZGlzYWJsZWQgKSB7DQoJCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJCX0NCgkJCQkJJCggdGhpcyApLmFkZENsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJCQlsYXN0QWN0aXZlID0gdGhpczsNCgkJCQkJdGhhdC5kb2N1bWVudC5vbmUoICJtb3VzZXVwIiwgZnVuY3Rpb24oKSB7DQoJCQkJCQlsYXN0QWN0aXZlID0gbnVsbDsNCgkJCQkJfSk7DQoJCQkJfSkNCgkJCQkuYmluZCggIm1vdXNldXAiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJCWlmICggb3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfQ0KCQkJCQkkKCB0aGlzICkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCQkJfSkNCgkJCQkuYmluZCggImtleWRvd24iICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoJCQkJCWlmICggZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLlNQQUNFIHx8IGV2ZW50LmtleUNvZGUgPT09ICQudWkua2V5Q29kZS5FTlRFUiApIHsNCgkJCQkJCSQoIHRoaXMgKS5hZGRDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQkJfQ0KCQkJCX0pDQoJCQkJLy8gc2VlICM4NTU5LCB3ZSBiaW5kIHRvIGJsdXIgaGVyZSBpbiBjYXNlIHRoZSBidXR0b24gZWxlbWVudCBsb3Nlcw0KCQkJCS8vIGZvY3VzIGJldHdlZW4ga2V5ZG93biBhbmQga2V5dXAsIGl0IHdvdWxkIGJlIGxlZnQgaW4gYW4gImFjdGl2ZSIgc3RhdGUNCgkJCQkuYmluZCggImtleXVwIiArIHRoaXMuZXZlbnROYW1lc3BhY2UgKyAiIGJsdXIiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJCSQoIHRoaXMgKS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQl9KTsNCg0KCQkJaWYgKCB0aGlzLmJ1dHRvbkVsZW1lbnQuaXMoImEiKSApIHsNCgkJCQl0aGlzLmJ1dHRvbkVsZW1lbnQua2V5dXAoZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJaWYgKCBldmVudC5rZXlDb2RlID09PSAkLnVpLmtleUNvZGUuU1BBQ0UgKSB7DQoJCQkJCQkvLyBUT0RPIHBhc3MgdGhyb3VnaCBvcmlnaW5hbCBldmVudCBjb3JyZWN0bHkgKGp1c3QgYXMgMm5kIGFyZ3VtZW50IGRvZXNuJ3Qgd29yaykNCgkJCQkJCSQoIHRoaXMgKS5jbGljaygpOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLl9zZXRPcHRpb24oICJkaXNhYmxlZCIsIG9wdGlvbnMuZGlzYWJsZWQgKTsNCgkJdGhpcy5fcmVzZXRCdXR0b24oKTsNCgl9LA0KDQoJX2RldGVybWluZUJ1dHRvblR5cGU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgYW5jZXN0b3IsIGxhYmVsU2VsZWN0b3IsIGNoZWNrZWQ7DQoNCgkJaWYgKCB0aGlzLmVsZW1lbnQuaXMoIlt0eXBlPWNoZWNrYm94XSIpICkgew0KCQkJdGhpcy50eXBlID0gImNoZWNrYm94IjsNCgkJfSBlbHNlIGlmICggdGhpcy5lbGVtZW50LmlzKCJbdHlwZT1yYWRpb10iKSApIHsNCgkJCXRoaXMudHlwZSA9ICJyYWRpbyI7DQoJCX0gZWxzZSBpZiAoIHRoaXMuZWxlbWVudC5pcygiaW5wdXQiKSApIHsNCgkJCXRoaXMudHlwZSA9ICJpbnB1dCI7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLnR5cGUgPSAiYnV0dG9uIjsNCgkJfQ0KDQoJCWlmICggdGhpcy50eXBlID09PSAiY2hlY2tib3giIHx8IHRoaXMudHlwZSA9PT0gInJhZGlvIiApIHsNCgkJCS8vIHdlIGRvbid0IHNlYXJjaCBhZ2FpbnN0IHRoZSBkb2N1bWVudCBpbiBjYXNlIHRoZSBlbGVtZW50DQoJCQkvLyBpcyBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgRE9NDQoJCQlhbmNlc3RvciA9IHRoaXMuZWxlbWVudC5wYXJlbnRzKCkubGFzdCgpOw0KCQkJbGFiZWxTZWxlY3RvciA9ICJsYWJlbFtmb3I9JyIgKyB0aGlzLmVsZW1lbnQuYXR0cigiaWQiKSArICInXSI7DQoJCQl0aGlzLmJ1dHRvbkVsZW1lbnQgPSBhbmNlc3Rvci5maW5kKCBsYWJlbFNlbGVjdG9yICk7DQoJCQlpZiAoICF0aGlzLmJ1dHRvbkVsZW1lbnQubGVuZ3RoICkgew0KCQkJCWFuY2VzdG9yID0gYW5jZXN0b3IubGVuZ3RoID8gYW5jZXN0b3Iuc2libGluZ3MoKSA6IHRoaXMuZWxlbWVudC5zaWJsaW5ncygpOw0KCQkJCXRoaXMuYnV0dG9uRWxlbWVudCA9IGFuY2VzdG9yLmZpbHRlciggbGFiZWxTZWxlY3RvciApOw0KCQkJCWlmICggIXRoaXMuYnV0dG9uRWxlbWVudC5sZW5ndGggKSB7DQoJCQkJCXRoaXMuYnV0dG9uRWxlbWVudCA9IGFuY2VzdG9yLmZpbmQoIGxhYmVsU2VsZWN0b3IgKTsNCgkJCQl9DQoJCQl9DQoJCQl0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoICJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiICk7DQoNCgkJCWNoZWNrZWQgPSB0aGlzLmVsZW1lbnQuaXMoICI6Y2hlY2tlZCIgKTsNCgkJCWlmICggY2hlY2tlZCApIHsNCgkJCQl0aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCQl9DQoJCQl0aGlzLmJ1dHRvbkVsZW1lbnQucHJvcCggImFyaWEtcHJlc3NlZCIsIGNoZWNrZWQgKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYnV0dG9uRWxlbWVudCA9IHRoaXMuZWxlbWVudDsNCgkJfQ0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5idXR0b25FbGVtZW50Ow0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudA0KCQkJLnJlbW92ZUNsYXNzKCAidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiApOw0KCQl0aGlzLmJ1dHRvbkVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcyggYmFzZUNsYXNzZXMgKyAiIHVpLXN0YXRlLWFjdGl2ZSAiICsgdHlwZUNsYXNzZXMgKQ0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtcHJlc3NlZCIgKQ0KCQkJLmh0bWwoIHRoaXMuYnV0dG9uRWxlbWVudC5maW5kKCIudWktYnV0dG9uLXRleHQiKS5odG1sKCkgKTsNCg0KCQlpZiAoICF0aGlzLmhhc1RpdGxlICkgew0KCQkJdGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUF0dHIoICJ0aXRsZSIgKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLndpZGdldCgpLnRvZ2dsZUNsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiLCAhIXZhbHVlICk7DQoJCQl0aGlzLmVsZW1lbnQucHJvcCggImRpc2FibGVkIiwgISF2YWx1ZSApOw0KCQkJaWYgKCB2YWx1ZSApIHsNCgkJCQlpZiAoIHRoaXMudHlwZSA9PT0gImNoZWNrYm94IiB8fCB0aGlzLnR5cGUgPT09ICJyYWRpbyIgKSB7DQoJCQkJCXRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJCX0gZWxzZSB7DQoJCQkJCXRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIHVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm47DQoJCX0NCgkJdGhpcy5fcmVzZXRCdXR0b24oKTsNCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCS8vU2VlICM4MjM3ICYgIzg4MjgNCgkJdmFyIGlzRGlzYWJsZWQgPSB0aGlzLmVsZW1lbnQuaXMoICJpbnB1dCwgYnV0dG9uIiApID8gdGhpcy5lbGVtZW50LmlzKCAiOmRpc2FibGVkIiApIDogdGhpcy5lbGVtZW50Lmhhc0NsYXNzKCAidWktYnV0dG9uLWRpc2FibGVkIiApOw0KDQoJCWlmICggaXNEaXNhYmxlZCAhPT0gdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5fc2V0T3B0aW9uKCAiZGlzYWJsZWQiLCBpc0Rpc2FibGVkICk7DQoJCX0NCgkJaWYgKCB0aGlzLnR5cGUgPT09ICJyYWRpbyIgKSB7DQoJCQlyYWRpb0dyb3VwKCB0aGlzLmVsZW1lbnRbMF0gKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCWlmICggJCggdGhpcyApLmlzKCAiOmNoZWNrZWQiICkgKSB7DQoJCQkJCSQoIHRoaXMgKS5idXR0b24oICJ3aWRnZXQiICkNCgkJCQkJCS5hZGRDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKQ0KCQkJCQkJLmF0dHIoICJhcmlhLXByZXNzZWQiLCAidHJ1ZSIgKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkKCB0aGlzICkuYnV0dG9uKCAid2lkZ2V0IiApDQoJCQkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICkNCgkJCQkJCS5hdHRyKCAiYXJpYS1wcmVzc2VkIiwgImZhbHNlIiApOw0KCQkJCX0NCgkJCX0pOw0KCQl9IGVsc2UgaWYgKCB0aGlzLnR5cGUgPT09ICJjaGVja2JveCIgKSB7DQoJCQlpZiAoIHRoaXMuZWxlbWVudC5pcyggIjpjaGVja2VkIiApICkgew0KCQkJCXRoaXMuYnV0dG9uRWxlbWVudA0KCQkJCQkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICkNCgkJCQkJLmF0dHIoICJhcmlhLXByZXNzZWQiLCAidHJ1ZSIgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5idXR0b25FbGVtZW50DQoJCQkJCS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKQ0KCQkJCQkuYXR0ciggImFyaWEtcHJlc3NlZCIsICJmYWxzZSIgKTsNCgkJCX0NCgkJfQ0KCX0sDQoNCglfcmVzZXRCdXR0b246IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMudHlwZSA9PT0gImlucHV0IiApIHsNCgkJCWlmICggdGhpcy5vcHRpb25zLmxhYmVsICkgew0KCQkJCXRoaXMuZWxlbWVudC52YWwoIHRoaXMub3B0aW9ucy5sYWJlbCApOw0KCQkJfQ0KCQkJcmV0dXJuOw0KCQl9DQoJCXZhciBidXR0b25FbGVtZW50ID0gdGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCB0eXBlQ2xhc3NlcyApLA0KCQkJYnV0dG9uVGV4dCA9ICQoICI8c3Bhbj48L3NwYW4+IiwgdGhpcy5kb2N1bWVudFswXSApDQoJCQkJLmFkZENsYXNzKCAidWktYnV0dG9uLXRleHQiICkNCgkJCQkuaHRtbCggdGhpcy5vcHRpb25zLmxhYmVsICkNCgkJCQkuYXBwZW5kVG8oIGJ1dHRvbkVsZW1lbnQuZW1wdHkoKSApDQoJCQkJLnRleHQoKSwNCgkJCWljb25zID0gdGhpcy5vcHRpb25zLmljb25zLA0KCQkJbXVsdGlwbGVJY29ucyA9IGljb25zLnByaW1hcnkgJiYgaWNvbnMuc2Vjb25kYXJ5LA0KCQkJYnV0dG9uQ2xhc3NlcyA9IFtdOw0KDQoJCWlmICggaWNvbnMucHJpbWFyeSB8fCBpY29ucy5zZWNvbmRhcnkgKSB7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy50ZXh0ICkgew0KCQkJCWJ1dHRvbkNsYXNzZXMucHVzaCggInVpLWJ1dHRvbi10ZXh0LWljb24iICsgKCBtdWx0aXBsZUljb25zID8gInMiIDogKCBpY29ucy5wcmltYXJ5ID8gIi1wcmltYXJ5IiA6ICItc2Vjb25kYXJ5IiApICkgKTsNCgkJCX0NCg0KCQkJaWYgKCBpY29ucy5wcmltYXJ5ICkgew0KCQkJCWJ1dHRvbkVsZW1lbnQucHJlcGVuZCggIjxzcGFuIGNsYXNzPSd1aS1idXR0b24taWNvbi1wcmltYXJ5IHVpLWljb24gIiArIGljb25zLnByaW1hcnkgKyAiJz48L3NwYW4+IiApOw0KCQkJfQ0KDQoJCQlpZiAoIGljb25zLnNlY29uZGFyeSApIHsNCgkJCQlidXR0b25FbGVtZW50LmFwcGVuZCggIjxzcGFuIGNsYXNzPSd1aS1idXR0b24taWNvbi1zZWNvbmRhcnkgdWktaWNvbiAiICsgaWNvbnMuc2Vjb25kYXJ5ICsgIic+PC9zcGFuPiIgKTsNCgkJCX0NCg0KCQkJaWYgKCAhdGhpcy5vcHRpb25zLnRleHQgKSB7DQoJCQkJYnV0dG9uQ2xhc3Nlcy5wdXNoKCBtdWx0aXBsZUljb25zID8gInVpLWJ1dHRvbi1pY29ucy1vbmx5IiA6ICJ1aS1idXR0b24taWNvbi1vbmx5IiApOw0KDQoJCQkJaWYgKCAhdGhpcy5oYXNUaXRsZSApIHsNCgkJCQkJYnV0dG9uRWxlbWVudC5hdHRyKCAidGl0bGUiLCAkLnRyaW0oIGJ1dHRvblRleHQgKSApOw0KCQkJCX0NCgkJCX0NCgkJfSBlbHNlIHsNCgkJCWJ1dHRvbkNsYXNzZXMucHVzaCggInVpLWJ1dHRvbi10ZXh0LW9ubHkiICk7DQoJCX0NCgkJYnV0dG9uRWxlbWVudC5hZGRDbGFzcyggYnV0dG9uQ2xhc3Nlcy5qb2luKCAiICIgKSApOw0KCX0NCn0pOw0KDQokLndpZGdldCggInVpLmJ1dHRvbnNldCIsIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCglvcHRpb25zOiB7DQoJCWl0ZW1zOiAiYnV0dG9uLCBpbnB1dFt0eXBlPWJ1dHRvbl0sIGlucHV0W3R5cGU9c3VibWl0XSwgaW5wdXRbdHlwZT1yZXNldF0sIGlucHV0W3R5cGU9Y2hlY2tib3hdLCBpbnB1dFt0eXBlPXJhZGlvXSwgYSwgOmRhdGEodWktYnV0dG9uKSINCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5hZGRDbGFzcyggInVpLWJ1dHRvbnNldCIgKTsNCgl9LA0KDQoJX2luaXQ6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLnJlZnJlc2goKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy5idXR0b25zLmJ1dHRvbiggIm9wdGlvbiIsIGtleSwgdmFsdWUgKTsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgcnRsID0gdGhpcy5lbGVtZW50LmNzcyggImRpcmVjdGlvbiIgKSA9PT0gInJ0bCIsDQoJCQlhbGxCdXR0b25zID0gdGhpcy5lbGVtZW50LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApLA0KCQkJZXhpc3RpbmdCdXR0b25zID0gYWxsQnV0dG9ucy5maWx0ZXIoICI6dWktYnV0dG9uIiApOw0KDQoJCS8vIEluaXRpYWxpemUgbmV3IGJ1dHRvbnMNCgkJYWxsQnV0dG9ucy5ub3QoICI6dWktYnV0dG9uIiApLmJ1dHRvbigpOw0KDQoJCS8vIFJlZnJlc2ggZXhpc3RpbmcgYnV0dG9ucw0KCQlleGlzdGluZ0J1dHRvbnMuYnV0dG9uKCAicmVmcmVzaCIgKTsNCg0KCQl0aGlzLmJ1dHRvbnMgPSBhbGxCdXR0b25zDQoJCQkubWFwKGZ1bmN0aW9uKCkgew0KCQkJCXJldHVybiAkKCB0aGlzICkuYnV0dG9uKCAid2lkZ2V0IiApWyAwIF07DQoJCQl9KQ0KCQkJCS5yZW1vdmVDbGFzcyggInVpLWNvcm5lci1hbGwgdWktY29ybmVyLWxlZnQgdWktY29ybmVyLXJpZ2h0IiApDQoJCQkJLmZpbHRlciggIjpmaXJzdCIgKQ0KCQkJCQkuYWRkQ2xhc3MoIHJ0bCA/ICJ1aS1jb3JuZXItcmlnaHQiIDogInVpLWNvcm5lci1sZWZ0IiApDQoJCQkJLmVuZCgpDQoJCQkJLmZpbHRlciggIjpsYXN0IiApDQoJCQkJCS5hZGRDbGFzcyggcnRsID8gInVpLWNvcm5lci1sZWZ0IiA6ICJ1aS1jb3JuZXItcmlnaHQiICkNCgkJCQkuZW5kKCkNCgkJCS5lbmQoKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoICJ1aS1idXR0b25zZXQiICk7DQoJCXRoaXMuYnV0dG9ucw0KCQkJLm1hcChmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gJCggdGhpcyApLmJ1dHRvbiggIndpZGdldCIgKVsgMCBdOw0KCQkJfSkNCgkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiICkNCgkJCS5lbmQoKQ0KCQkJLmJ1dHRvbiggImRlc3Ryb3kiICk7DQoJfQ0KfSk7DQoNCnZhciBidXR0b24gPSAkLnVpLmJ1dHRvbjsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBEYXRlcGlja2VyIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9kYXRlcGlja2VyLw0KICovDQoNCg0KJC5leHRlbmQoJC51aSwgeyBkYXRlcGlja2VyOiB7IHZlcnNpb246ICIxLjExLjIiIH0gfSk7DQoNCnZhciBkYXRlcGlja2VyX2luc3RBY3RpdmU7DQoNCmZ1bmN0aW9uIGRhdGVwaWNrZXJfZ2V0WmluZGV4KCBlbGVtICkgew0KCXZhciBwb3NpdGlvbiwgdmFsdWU7DQoJd2hpbGUgKCBlbGVtLmxlbmd0aCAmJiBlbGVtWyAwIF0gIT09IGRvY3VtZW50ICkgew0KCQkvLyBJZ25vcmUgei1pbmRleCBpZiBwb3NpdGlvbiBpcyBzZXQgdG8gYSB2YWx1ZSB3aGVyZSB6LWluZGV4IGlzIGlnbm9yZWQgYnkgdGhlIGJyb3dzZXINCgkJLy8gVGhpcyBtYWtlcyBiZWhhdmlvciBvZiB0aGlzIGZ1bmN0aW9uIGNvbnNpc3RlbnQgYWNyb3NzIGJyb3dzZXJzDQoJCS8vIFdlYktpdCBhbHdheXMgcmV0dXJucyBhdXRvIGlmIHRoZSBlbGVtZW50IGlzIHBvc2l0aW9uZWQNCgkJcG9zaXRpb24gPSBlbGVtLmNzcyggInBvc2l0aW9uIiApOw0KCQlpZiAoIHBvc2l0aW9uID09PSAiYWJzb2x1dGUiIHx8IHBvc2l0aW9uID09PSAicmVsYXRpdmUiIHx8IHBvc2l0aW9uID09PSAiZml4ZWQiICkgew0KCQkJLy8gSUUgcmV0dXJucyAwIHdoZW4gekluZGV4IGlzIG5vdCBzcGVjaWZpZWQNCgkJCS8vIG90aGVyIGJyb3dzZXJzIHJldHVybiBhIHN0cmluZw0KCQkJLy8gd2UgaWdub3JlIHRoZSBjYXNlIG9mIG5lc3RlZCBlbGVtZW50cyB3aXRoIGFuIGV4cGxpY2l0IHZhbHVlIG9mIDANCgkJCS8vIDxkaXYgc3R5bGU9InotaW5kZXg6IC0xMDsiPjxkaXYgc3R5bGU9InotaW5kZXg6IDA7Ij48L2Rpdj48L2Rpdj4NCgkJCXZhbHVlID0gcGFyc2VJbnQoIGVsZW0uY3NzKCAiekluZGV4IiApLCAxMCApOw0KCQkJaWYgKCAhaXNOYU4oIHZhbHVlICkgJiYgdmFsdWUgIT09IDAgKSB7DQoJCQkJcmV0dXJuIHZhbHVlOw0KCQkJfQ0KCQl9DQoJCWVsZW0gPSBlbGVtLnBhcmVudCgpOw0KCX0NCg0KCXJldHVybiAwOw0KfQ0KLyogRGF0ZSBwaWNrZXIgbWFuYWdlci4NCiAgIFVzZSB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MsICQuZGF0ZXBpY2tlciwgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZGF0ZSBwaWNrZXIuDQogICBTZXR0aW5ncyBmb3IgKGdyb3VwcyBvZikgZGF0ZSBwaWNrZXJzIGFyZSBtYWludGFpbmVkIGluIGFuIGluc3RhbmNlIG9iamVjdCwNCiAgIGFsbG93aW5nIG11bHRpcGxlIGRpZmZlcmVudCBzZXR0aW5ncyBvbiB0aGUgc2FtZSBwYWdlLiAqLw0KDQpmdW5jdGlvbiBEYXRlcGlja2VyKCkgew0KCXRoaXMuX2N1ckluc3QgPSBudWxsOyAvLyBUaGUgY3VycmVudCBpbnN0YW5jZSBpbiB1c2UNCgl0aGlzLl9rZXlFdmVudCA9IGZhbHNlOyAvLyBJZiB0aGUgbGFzdCBldmVudCB3YXMgYSBrZXkgZXZlbnQNCgl0aGlzLl9kaXNhYmxlZElucHV0cyA9IFtdOyAvLyBMaXN0IG9mIGRhdGUgcGlja2VyIGlucHV0cyB0aGF0IGhhdmUgYmVlbiBkaXNhYmxlZA0KCXRoaXMuX2RhdGVwaWNrZXJTaG93aW5nID0gZmFsc2U7IC8vIFRydWUgaWYgdGhlIHBvcHVwIHBpY2tlciBpcyBzaG93aW5nICwgZmFsc2UgaWYgbm90DQoJdGhpcy5faW5EaWFsb2cgPSBmYWxzZTsgLy8gVHJ1ZSBpZiBzaG93aW5nIHdpdGhpbiBhICJkaWFsb2ciLCBmYWxzZSBpZiBub3QNCgl0aGlzLl9tYWluRGl2SWQgPSAidWktZGF0ZXBpY2tlci1kaXYiOyAvLyBUaGUgSUQgb2YgdGhlIG1haW4gZGF0ZXBpY2tlciBkaXZpc2lvbg0KCXRoaXMuX2lubGluZUNsYXNzID0gInVpLWRhdGVwaWNrZXItaW5saW5lIjsgLy8gVGhlIG5hbWUgb2YgdGhlIGlubGluZSBtYXJrZXIgY2xhc3MNCgl0aGlzLl9hcHBlbmRDbGFzcyA9ICJ1aS1kYXRlcGlja2VyLWFwcGVuZCI7IC8vIFRoZSBuYW1lIG9mIHRoZSBhcHBlbmQgbWFya2VyIGNsYXNzDQoJdGhpcy5fdHJpZ2dlckNsYXNzID0gInVpLWRhdGVwaWNrZXItdHJpZ2dlciI7IC8vIFRoZSBuYW1lIG9mIHRoZSB0cmlnZ2VyIG1hcmtlciBjbGFzcw0KCXRoaXMuX2RpYWxvZ0NsYXNzID0gInVpLWRhdGVwaWNrZXItZGlhbG9nIjsgLy8gVGhlIG5hbWUgb2YgdGhlIGRpYWxvZyBtYXJrZXIgY2xhc3MNCgl0aGlzLl9kaXNhYmxlQ2xhc3MgPSAidWktZGF0ZXBpY2tlci1kaXNhYmxlZCI7IC8vIFRoZSBuYW1lIG9mIHRoZSBkaXNhYmxlZCBjb3ZlcmluZyBtYXJrZXIgY2xhc3MNCgl0aGlzLl91bnNlbGVjdGFibGVDbGFzcyA9ICJ1aS1kYXRlcGlja2VyLXVuc2VsZWN0YWJsZSI7IC8vIFRoZSBuYW1lIG9mIHRoZSB1bnNlbGVjdGFibGUgY2VsbCBtYXJrZXIgY2xhc3MNCgl0aGlzLl9jdXJyZW50Q2xhc3MgPSAidWktZGF0ZXBpY2tlci1jdXJyZW50LWRheSI7IC8vIFRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGRheSBtYXJrZXIgY2xhc3MNCgl0aGlzLl9kYXlPdmVyQ2xhc3MgPSAidWktZGF0ZXBpY2tlci1kYXlzLWNlbGwtb3ZlciI7IC8vIFRoZSBuYW1lIG9mIHRoZSBkYXkgaG92ZXIgbWFya2VyIGNsYXNzDQoJdGhpcy5yZWdpb25hbCA9IFtdOyAvLyBBdmFpbGFibGUgcmVnaW9uYWwgc2V0dGluZ3MsIGluZGV4ZWQgYnkgbGFuZ3VhZ2UgY29kZQ0KCXRoaXMucmVnaW9uYWxbIiJdID0geyAvLyBEZWZhdWx0IHJlZ2lvbmFsIHNldHRpbmdzDQoJCWNsb3NlVGV4dDogIkRvbmUiLCAvLyBEaXNwbGF5IHRleHQgZm9yIGNsb3NlIGxpbmsNCgkJcHJldlRleHQ6ICJQcmV2IiwgLy8gRGlzcGxheSB0ZXh0IGZvciBwcmV2aW91cyBtb250aCBsaW5rDQoJCW5leHRUZXh0OiAiTmV4dCIsIC8vIERpc3BsYXkgdGV4dCBmb3IgbmV4dCBtb250aCBsaW5rDQoJCWN1cnJlbnRUZXh0OiAiVG9kYXkiLCAvLyBEaXNwbGF5IHRleHQgZm9yIGN1cnJlbnQgbW9udGggbGluaw0KCQltb250aE5hbWVzOiBbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwNCgkJCSJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSwgLy8gTmFtZXMgb2YgbW9udGhzIGZvciBkcm9wLWRvd24gYW5kIGZvcm1hdHRpbmcNCgkJbW9udGhOYW1lc1Nob3J0OiBbIkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAiRGVjIl0sIC8vIEZvciBmb3JtYXR0aW5nDQoJCWRheU5hbWVzOiBbIlN1bmRheSIsICJNb25kYXkiLCAiVHVlc2RheSIsICJXZWRuZXNkYXkiLCAiVGh1cnNkYXkiLCAiRnJpZGF5IiwgIlNhdHVyZGF5Il0sIC8vIEZvciBmb3JtYXR0aW5nDQoJCWRheU5hbWVzU2hvcnQ6IFsiU3VuIiwgIk1vbiIsICJUdWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0Il0sIC8vIEZvciBmb3JtYXR0aW5nDQoJCWRheU5hbWVzTWluOiBbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sIC8vIENvbHVtbiBoZWFkaW5ncyBmb3IgZGF5cyBzdGFydGluZyBhdCBTdW5kYXkNCgkJd2Vla0hlYWRlcjogIldrIiwgLy8gQ29sdW1uIGhlYWRlciBmb3Igd2VlayBvZiB0aGUgeWVhcg0KCQlkYXRlRm9ybWF0OiAibW0vZGQveXkiLCAvLyBTZWUgZm9ybWF0IG9wdGlvbnMgb24gcGFyc2VEYXRlDQoJCWZpcnN0RGF5OiAwLCAvLyBUaGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLCBTdW4gPSAwLCBNb24gPSAxLCAuLi4NCgkJaXNSVEw6IGZhbHNlLCAvLyBUcnVlIGlmIHJpZ2h0LXRvLWxlZnQgbGFuZ3VhZ2UsIGZhbHNlIGlmIGxlZnQtdG8tcmlnaHQNCgkJc2hvd01vbnRoQWZ0ZXJZZWFyOiBmYWxzZSwgLy8gVHJ1ZSBpZiB0aGUgeWVhciBzZWxlY3QgcHJlY2VkZXMgbW9udGgsIGZhbHNlIGZvciBtb250aCB0aGVuIHllYXINCgkJeWVhclN1ZmZpeDogIiIgLy8gQWRkaXRpb25hbCB0ZXh0IHRvIGFwcGVuZCB0byB0aGUgeWVhciBpbiB0aGUgbW9udGggaGVhZGVycw0KCX07DQoJdGhpcy5fZGVmYXVsdHMgPSB7IC8vIEdsb2JhbCBkZWZhdWx0cyBmb3IgYWxsIHRoZSBkYXRlIHBpY2tlciBpbnN0YW5jZXMNCgkJc2hvd09uOiAiZm9jdXMiLCAvLyAiZm9jdXMiIGZvciBwb3B1cCBvbiBmb2N1cywNCgkJCS8vICJidXR0b24iIGZvciB0cmlnZ2VyIGJ1dHRvbiwgb3IgImJvdGgiIGZvciBlaXRoZXINCgkJc2hvd0FuaW06ICJmYWRlSW4iLCAvLyBOYW1lIG9mIGpRdWVyeSBhbmltYXRpb24gZm9yIHBvcHVwDQoJCXNob3dPcHRpb25zOiB7fSwgLy8gT3B0aW9ucyBmb3IgZW5oYW5jZWQgYW5pbWF0aW9ucw0KCQlkZWZhdWx0RGF0ZTogbnVsbCwgLy8gVXNlZCB3aGVuIGZpZWxkIGlzIGJsYW5rOiBhY3R1YWwgZGF0ZSwNCgkJCS8vICsvLW51bWJlciBmb3Igb2Zmc2V0IGZyb20gdG9kYXksIG51bGwgZm9yIHRvZGF5DQoJCWFwcGVuZFRleHQ6ICIiLCAvLyBEaXNwbGF5IHRleHQgZm9sbG93aW5nIHRoZSBpbnB1dCBib3gsIGUuZy4gc2hvd2luZyB0aGUgZm9ybWF0DQoJCWJ1dHRvblRleHQ6ICIuLi4iLCAvLyBUZXh0IGZvciB0cmlnZ2VyIGJ1dHRvbg0KCQlidXR0b25JbWFnZTogIiIsIC8vIFVSTCBmb3IgdHJpZ2dlciBidXR0b24gaW1hZ2UNCgkJYnV0dG9uSW1hZ2VPbmx5OiBmYWxzZSwgLy8gVHJ1ZSBpZiB0aGUgaW1hZ2UgYXBwZWFycyBhbG9uZSwgZmFsc2UgaWYgaXQgYXBwZWFycyBvbiBhIGJ1dHRvbg0KCQloaWRlSWZOb1ByZXZOZXh0OiBmYWxzZSwgLy8gVHJ1ZSB0byBoaWRlIG5leHQvcHJldmlvdXMgbW9udGggbGlua3MNCgkJCS8vIGlmIG5vdCBhcHBsaWNhYmxlLCBmYWxzZSB0byBqdXN0IGRpc2FibGUgdGhlbQ0KCQluYXZpZ2F0aW9uQXNEYXRlRm9ybWF0OiBmYWxzZSwgLy8gVHJ1ZSBpZiBkYXRlIGZvcm1hdHRpbmcgYXBwbGllZCB0byBwcmV2L3RvZGF5L25leHQgbGlua3MNCgkJZ290b0N1cnJlbnQ6IGZhbHNlLCAvLyBUcnVlIGlmIHRvZGF5IGxpbmsgZ29lcyBiYWNrIHRvIGN1cnJlbnQgc2VsZWN0aW9uIGluc3RlYWQNCgkJY2hhbmdlTW9udGg6IGZhbHNlLCAvLyBUcnVlIGlmIG1vbnRoIGNhbiBiZSBzZWxlY3RlZCBkaXJlY3RseSwgZmFsc2UgaWYgb25seSBwcmV2L25leHQNCgkJY2hhbmdlWWVhcjogZmFsc2UsIC8vIFRydWUgaWYgeWVhciBjYW4gYmUgc2VsZWN0ZWQgZGlyZWN0bHksIGZhbHNlIGlmIG9ubHkgcHJldi9uZXh0DQoJCXllYXJSYW5nZTogImMtMTA6YysxMCIsIC8vIFJhbmdlIG9mIHllYXJzIHRvIGRpc3BsYXkgaW4gZHJvcC1kb3duLA0KCQkJLy8gZWl0aGVyIHJlbGF0aXZlIHRvIHRvZGF5J3MgeWVhciAoLW5uOitubiksIHJlbGF0aXZlIHRvIGN1cnJlbnRseSBkaXNwbGF5ZWQgeWVhcg0KCQkJLy8gKGMtbm46YytubiksIGFic29sdXRlIChubm5uOm5ubm4pLCBvciBhIGNvbWJpbmF0aW9uIG9mIHRoZSBhYm92ZSAobm5ubjotbikNCgkJc2hvd090aGVyTW9udGhzOiBmYWxzZSwgLy8gVHJ1ZSB0byBzaG93IGRhdGVzIGluIG90aGVyIG1vbnRocywgZmFsc2UgdG8gbGVhdmUgYmxhbmsNCgkJc2VsZWN0T3RoZXJNb250aHM6IGZhbHNlLCAvLyBUcnVlIHRvIGFsbG93IHNlbGVjdGlvbiBvZiBkYXRlcyBpbiBvdGhlciBtb250aHMsIGZhbHNlIGZvciB1bnNlbGVjdGFibGUNCgkJc2hvd1dlZWs6IGZhbHNlLCAvLyBUcnVlIHRvIHNob3cgd2VlayBvZiB0aGUgeWVhciwgZmFsc2UgdG8gbm90IHNob3cgaXQNCgkJY2FsY3VsYXRlV2VlazogdGhpcy5pc284NjAxV2VlaywgLy8gSG93IHRvIGNhbGN1bGF0ZSB0aGUgd2VlayBvZiB0aGUgeWVhciwNCgkJCS8vIHRha2VzIGEgRGF0ZSBhbmQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSB3ZWVrIGZvciBpdA0KCQlzaG9ydFllYXJDdXRvZmY6ICIrMTAiLCAvLyBTaG9ydCB5ZWFyIHZhbHVlcyA8IHRoaXMgYXJlIGluIHRoZSBjdXJyZW50IGNlbnR1cnksDQoJCQkvLyA+IHRoaXMgYXJlIGluIHRoZSBwcmV2aW91cyBjZW50dXJ5LA0KCQkJLy8gc3RyaW5nIHZhbHVlIHN0YXJ0aW5nIHdpdGggIisiIGZvciBjdXJyZW50IHllYXIgKyB2YWx1ZQ0KCQltaW5EYXRlOiBudWxsLCAvLyBUaGUgZWFybGllc3Qgc2VsZWN0YWJsZSBkYXRlLCBvciBudWxsIGZvciBubyBsaW1pdA0KCQltYXhEYXRlOiBudWxsLCAvLyBUaGUgbGF0ZXN0IHNlbGVjdGFibGUgZGF0ZSwgb3IgbnVsbCBmb3Igbm8gbGltaXQNCgkJZHVyYXRpb246ICJmYXN0IiwgLy8gRHVyYXRpb24gb2YgZGlzcGxheS9jbG9zdXJlDQoJCWJlZm9yZVNob3dEYXk6IG51bGwsIC8vIEZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBkYXRlIGFuZCByZXR1cm5zIGFuIGFycmF5IHdpdGgNCgkJCS8vIFswXSA9IHRydWUgaWYgc2VsZWN0YWJsZSwgZmFsc2UgaWYgbm90LCBbMV0gPSBjdXN0b20gQ1NTIGNsYXNzIG5hbWUocykgb3IgIiIsDQoJCQkvLyBbMl0gPSBjZWxsIHRpdGxlIChvcHRpb25hbCksIGUuZy4gJC5kYXRlcGlja2VyLm5vV2Vla2VuZHMNCgkJYmVmb3JlU2hvdzogbnVsbCwgLy8gRnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBpbnB1dCBmaWVsZCBhbmQNCgkJCS8vIHJldHVybnMgYSBzZXQgb2YgY3VzdG9tIHNldHRpbmdzIGZvciB0aGUgZGF0ZSBwaWNrZXINCgkJb25TZWxlY3Q6IG51bGwsIC8vIERlZmluZSBhIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gYSBkYXRlIGlzIHNlbGVjdGVkDQoJCW9uQ2hhbmdlTW9udGhZZWFyOiBudWxsLCAvLyBEZWZpbmUgYSBjYWxsYmFjayBmdW5jdGlvbiB3aGVuIHRoZSBtb250aCBvciB5ZWFyIGlzIGNoYW5nZWQNCgkJb25DbG9zZTogbnVsbCwgLy8gRGVmaW5lIGEgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGUgZGF0ZXBpY2tlciBpcyBjbG9zZWQNCgkJbnVtYmVyT2ZNb250aHM6IDEsIC8vIE51bWJlciBvZiBtb250aHMgdG8gc2hvdyBhdCBhIHRpbWUNCgkJc2hvd0N1cnJlbnRBdFBvczogMCwgLy8gVGhlIHBvc2l0aW9uIGluIG11bHRpcGUgbW9udGhzIGF0IHdoaWNoIHRvIHNob3cgdGhlIGN1cnJlbnQgbW9udGggKHN0YXJ0aW5nIGF0IDApDQoJCXN0ZXBNb250aHM6IDEsIC8vIE51bWJlciBvZiBtb250aHMgdG8gc3RlcCBiYWNrL2ZvcndhcmQNCgkJc3RlcEJpZ01vbnRoczogMTIsIC8vIE51bWJlciBvZiBtb250aHMgdG8gc3RlcCBiYWNrL2ZvcndhcmQgZm9yIHRoZSBiaWcgbGlua3MNCgkJYWx0RmllbGQ6ICIiLCAvLyBTZWxlY3RvciBmb3IgYW4gYWx0ZXJuYXRlIGZpZWxkIHRvIHN0b3JlIHNlbGVjdGVkIGRhdGVzIGludG8NCgkJYWx0Rm9ybWF0OiAiIiwgLy8gVGhlIGRhdGUgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIGFsdGVybmF0ZSBmaWVsZA0KCQljb25zdHJhaW5JbnB1dDogdHJ1ZSwgLy8gVGhlIGlucHV0IGlzIGNvbnN0cmFpbmVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgZm9ybWF0DQoJCXNob3dCdXR0b25QYW5lbDogZmFsc2UsIC8vIFRydWUgdG8gc2hvdyBidXR0b24gcGFuZWwsIGZhbHNlIHRvIG5vdCBzaG93IGl0DQoJCWF1dG9TaXplOiBmYWxzZSwgLy8gVHJ1ZSB0byBzaXplIHRoZSBpbnB1dCBmb3IgdGhlIGRhdGUgZm9ybWF0LCBmYWxzZSB0byBsZWF2ZSBhcyBpcw0KCQlkaXNhYmxlZDogZmFsc2UgLy8gVGhlIGluaXRpYWwgZGlzYWJsZWQgc3RhdGUNCgl9Ow0KCSQuZXh0ZW5kKHRoaXMuX2RlZmF1bHRzLCB0aGlzLnJlZ2lvbmFsWyIiXSk7DQoJdGhpcy5yZWdpb25hbC5lbiA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgdGhpcy5yZWdpb25hbFsgIiIgXSk7DQoJdGhpcy5yZWdpb25hbFsgImVuLVVTIiBdID0gJC5leHRlbmQoIHRydWUsIHt9LCB0aGlzLnJlZ2lvbmFsLmVuICk7DQoJdGhpcy5kcERpdiA9IGRhdGVwaWNrZXJfYmluZEhvdmVyKCQoIjxkaXYgaWQ9JyIgKyB0aGlzLl9tYWluRGl2SWQgKyAiJyBjbGFzcz0ndWktZGF0ZXBpY2tlciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci1hbGwnPjwvZGl2PiIpKTsNCn0NCg0KJC5leHRlbmQoRGF0ZXBpY2tlci5wcm90b3R5cGUsIHsNCgkvKiBDbGFzcyBuYW1lIGFkZGVkIHRvIGVsZW1lbnRzIHRvIGluZGljYXRlIGFscmVhZHkgY29uZmlndXJlZCB3aXRoIGEgZGF0ZSBwaWNrZXIuICovDQoJbWFya2VyQ2xhc3NOYW1lOiAiaGFzRGF0ZXBpY2tlciIsDQoNCgkvL0tlZXAgdHJhY2sgb2YgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJvd3MgZGlzcGxheWVkIChzZWUgIzcwNDMpDQoJbWF4Um93czogNCwNCg0KCS8vIFRPRE8gcmVuYW1lIHRvICJ3aWRnZXQiIHdoZW4gc3dpdGNoaW5nIHRvIHdpZGdldCBmYWN0b3J5DQoJX3dpZGdldERhdGVwaWNrZXI6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5kcERpdjsNCgl9LA0KDQoJLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGRhdGUgcGlja2VyLg0KCSAqIEBwYXJhbSAgc2V0dGluZ3MgIG9iamVjdCAtIHRoZSBuZXcgc2V0dGluZ3MgdG8gdXNlIGFzIGRlZmF1bHRzIChhbm9ueW1vdXMgb2JqZWN0KQ0KCSAqIEByZXR1cm4gdGhlIG1hbmFnZXIgb2JqZWN0DQoJICovDQoJc2V0RGVmYXVsdHM6IGZ1bmN0aW9uKHNldHRpbmdzKSB7DQoJCWRhdGVwaWNrZXJfZXh0ZW5kUmVtb3ZlKHRoaXMuX2RlZmF1bHRzLCBzZXR0aW5ncyB8fCB7fSk7DQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCgkvKiBBdHRhY2ggdGhlIGRhdGUgcGlja2VyIHRvIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldAllbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICogQHBhcmFtICBzZXR0aW5ncyAgb2JqZWN0IC0gdGhlIG5ldyBzZXR0aW5ncyB0byB1c2UgZm9yIHRoaXMgZGF0ZSBwaWNrZXIgaW5zdGFuY2UgKGFub255bW91cykNCgkgKi8NCglfYXR0YWNoRGF0ZXBpY2tlcjogZnVuY3Rpb24odGFyZ2V0LCBzZXR0aW5ncykgew0KCQl2YXIgbm9kZU5hbWUsIGlubGluZSwgaW5zdDsNCgkJbm9kZU5hbWUgPSB0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsNCgkJaW5saW5lID0gKG5vZGVOYW1lID09PSAiZGl2IiB8fCBub2RlTmFtZSA9PT0gInNwYW4iKTsNCgkJaWYgKCF0YXJnZXQuaWQpIHsNCgkJCXRoaXMudXVpZCArPSAxOw0KCQkJdGFyZ2V0LmlkID0gImRwIiArIHRoaXMudXVpZDsNCgkJfQ0KCQlpbnN0ID0gdGhpcy5fbmV3SW5zdCgkKHRhcmdldCksIGlubGluZSk7DQoJCWluc3Quc2V0dGluZ3MgPSAkLmV4dGVuZCh7fSwgc2V0dGluZ3MgfHwge30pOw0KCQlpZiAobm9kZU5hbWUgPT09ICJpbnB1dCIpIHsNCgkJCXRoaXMuX2Nvbm5lY3REYXRlcGlja2VyKHRhcmdldCwgaW5zdCk7DQoJCX0gZWxzZSBpZiAoaW5saW5lKSB7DQoJCQl0aGlzLl9pbmxpbmVEYXRlcGlja2VyKHRhcmdldCwgaW5zdCk7DQoJCX0NCgl9LA0KDQoJLyogQ3JlYXRlIGEgbmV3IGluc3RhbmNlIG9iamVjdC4gKi8NCglfbmV3SW5zdDogZnVuY3Rpb24odGFyZ2V0LCBpbmxpbmUpIHsNCgkJdmFyIGlkID0gdGFyZ2V0WzBdLmlkLnJlcGxhY2UoLyhbXkEtWmEtejAtOV9cLV0pL2csICJcXFxcJDEiKTsgLy8gZXNjYXBlIGpRdWVyeSBtZXRhIGNoYXJzDQoJCXJldHVybiB7aWQ6IGlkLCBpbnB1dDogdGFyZ2V0LCAvLyBhc3NvY2lhdGVkIHRhcmdldA0KCQkJc2VsZWN0ZWREYXk6IDAsIHNlbGVjdGVkTW9udGg6IDAsIHNlbGVjdGVkWWVhcjogMCwgLy8gY3VycmVudCBzZWxlY3Rpb24NCgkJCWRyYXdNb250aDogMCwgZHJhd1llYXI6IDAsIC8vIG1vbnRoIGJlaW5nIGRyYXduDQoJCQlpbmxpbmU6IGlubGluZSwgLy8gaXMgZGF0ZXBpY2tlciBpbmxpbmUgb3Igbm90DQoJCQlkcERpdjogKCFpbmxpbmUgPyB0aGlzLmRwRGl2IDogLy8gcHJlc2VudGF0aW9uIGRpdg0KCQkJZGF0ZXBpY2tlcl9iaW5kSG92ZXIoJCgiPGRpdiBjbGFzcz0nIiArIHRoaXMuX2lubGluZUNsYXNzICsgIiB1aS1kYXRlcGlja2VyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLWFsbCc+PC9kaXY+IikpKX07DQoJfSwNCg0KCS8qIEF0dGFjaCB0aGUgZGF0ZSBwaWNrZXIgdG8gYW4gaW5wdXQgZmllbGQuICovDQoJX2Nvbm5lY3REYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQsIGluc3QpIHsNCgkJdmFyIGlucHV0ID0gJCh0YXJnZXQpOw0KCQlpbnN0LmFwcGVuZCA9ICQoW10pOw0KCQlpbnN0LnRyaWdnZXIgPSAkKFtdKTsNCgkJaWYgKGlucHV0Lmhhc0NsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKSkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCXRoaXMuX2F0dGFjaG1lbnRzKGlucHV0LCBpbnN0KTsNCgkJaW5wdXQuYWRkQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpLmtleWRvd24odGhpcy5fZG9LZXlEb3duKS4NCgkJCWtleXByZXNzKHRoaXMuX2RvS2V5UHJlc3MpLmtleXVwKHRoaXMuX2RvS2V5VXApOw0KCQl0aGlzLl9hdXRvU2l6ZShpbnN0KTsNCgkJJC5kYXRhKHRhcmdldCwgImRhdGVwaWNrZXIiLCBpbnN0KTsNCgkJLy9JZiBkaXNhYmxlZCBvcHRpb24gaXMgdHJ1ZSwgZGlzYWJsZSB0aGUgZGF0ZXBpY2tlciBvbmNlIGl0IGhhcyBiZWVuIGF0dGFjaGVkIHRvIHRoZSBpbnB1dCAoc2VlIHRpY2tldCAjNTY2NSkNCgkJaWYoIGluc3Quc2V0dGluZ3MuZGlzYWJsZWQgKSB7DQoJCQl0aGlzLl9kaXNhYmxlRGF0ZXBpY2tlciggdGFyZ2V0ICk7DQoJCX0NCgl9LA0KDQoJLyogTWFrZSBhdHRhY2htZW50cyBiYXNlZCBvbiBzZXR0aW5ncy4gKi8NCglfYXR0YWNobWVudHM6IGZ1bmN0aW9uKGlucHV0LCBpbnN0KSB7DQoJCXZhciBzaG93T24sIGJ1dHRvblRleHQsIGJ1dHRvbkltYWdlLA0KCQkJYXBwZW5kVGV4dCA9IHRoaXMuX2dldChpbnN0LCAiYXBwZW5kVGV4dCIpLA0KCQkJaXNSVEwgPSB0aGlzLl9nZXQoaW5zdCwgImlzUlRMIik7DQoNCgkJaWYgKGluc3QuYXBwZW5kKSB7DQoJCQlpbnN0LmFwcGVuZC5yZW1vdmUoKTsNCgkJfQ0KCQlpZiAoYXBwZW5kVGV4dCkgew0KCQkJaW5zdC5hcHBlbmQgPSAkKCI8c3BhbiBjbGFzcz0nIiArIHRoaXMuX2FwcGVuZENsYXNzICsgIic+IiArIGFwcGVuZFRleHQgKyAiPC9zcGFuPiIpOw0KCQkJaW5wdXRbaXNSVEwgPyAiYmVmb3JlIiA6ICJhZnRlciJdKGluc3QuYXBwZW5kKTsNCgkJfQ0KDQoJCWlucHV0LnVuYmluZCgiZm9jdXMiLCB0aGlzLl9zaG93RGF0ZXBpY2tlcik7DQoNCgkJaWYgKGluc3QudHJpZ2dlcikgew0KCQkJaW5zdC50cmlnZ2VyLnJlbW92ZSgpOw0KCQl9DQoNCgkJc2hvd09uID0gdGhpcy5fZ2V0KGluc3QsICJzaG93T24iKTsNCgkJaWYgKHNob3dPbiA9PT0gImZvY3VzIiB8fCBzaG93T24gPT09ICJib3RoIikgeyAvLyBwb3AtdXAgZGF0ZSBwaWNrZXIgd2hlbiBpbiB0aGUgbWFya2VkIGZpZWxkDQoJCQlpbnB1dC5mb2N1cyh0aGlzLl9zaG93RGF0ZXBpY2tlcik7DQoJCX0NCgkJaWYgKHNob3dPbiA9PT0gImJ1dHRvbiIgfHwgc2hvd09uID09PSAiYm90aCIpIHsgLy8gcG9wLXVwIGRhdGUgcGlja2VyIHdoZW4gYnV0dG9uIGNsaWNrZWQNCgkJCWJ1dHRvblRleHQgPSB0aGlzLl9nZXQoaW5zdCwgImJ1dHRvblRleHQiKTsNCgkJCWJ1dHRvbkltYWdlID0gdGhpcy5fZ2V0KGluc3QsICJidXR0b25JbWFnZSIpOw0KCQkJaW5zdC50cmlnZ2VyID0gJCh0aGlzLl9nZXQoaW5zdCwgImJ1dHRvbkltYWdlT25seSIpID8NCgkJCQkkKCI8aW1nLz4iKS5hZGRDbGFzcyh0aGlzLl90cmlnZ2VyQ2xhc3MpLg0KCQkJCQlhdHRyKHsgc3JjOiBidXR0b25JbWFnZSwgYWx0OiBidXR0b25UZXh0LCB0aXRsZTogYnV0dG9uVGV4dCB9KSA6DQoJCQkJJCgiPGJ1dHRvbiB0eXBlPSdidXR0b24nPjwvYnV0dG9uPiIpLmFkZENsYXNzKHRoaXMuX3RyaWdnZXJDbGFzcykuDQoJCQkJCWh0bWwoIWJ1dHRvbkltYWdlID8gYnV0dG9uVGV4dCA6ICQoIjxpbWcvPiIpLmF0dHIoDQoJCQkJCXsgc3JjOmJ1dHRvbkltYWdlLCBhbHQ6YnV0dG9uVGV4dCwgdGl0bGU6YnV0dG9uVGV4dCB9KSkpOw0KCQkJaW5wdXRbaXNSVEwgPyAiYmVmb3JlIiA6ICJhZnRlciJdKGluc3QudHJpZ2dlcik7DQoJCQlpbnN0LnRyaWdnZXIuY2xpY2soZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcgJiYgJC5kYXRlcGlja2VyLl9sYXN0SW5wdXQgPT09IGlucHV0WzBdKSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTsNCgkJCQl9IGVsc2UgaWYgKCQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcgJiYgJC5kYXRlcGlja2VyLl9sYXN0SW5wdXQgIT09IGlucHV0WzBdKSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTsNCgkJCQkJJC5kYXRlcGlja2VyLl9zaG93RGF0ZXBpY2tlcihpbnB1dFswXSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9zaG93RGF0ZXBpY2tlcihpbnB1dFswXSk7DQoJCQkJfQ0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0pOw0KCQl9DQoJfSwNCg0KCS8qIEFwcGx5IHRoZSBtYXhpbXVtIGxlbmd0aCBmb3IgdGhlIGRhdGUgZm9ybWF0LiAqLw0KCV9hdXRvU2l6ZTogZnVuY3Rpb24oaW5zdCkgew0KCQlpZiAodGhpcy5fZ2V0KGluc3QsICJhdXRvU2l6ZSIpICYmICFpbnN0LmlubGluZSkgew0KCQkJdmFyIGZpbmRNYXgsIG1heCwgbWF4SSwgaSwNCgkJCQlkYXRlID0gbmV3IERhdGUoMjAwOSwgMTIgLSAxLCAyMCksIC8vIEVuc3VyZSBkb3VibGUgZGlnaXRzDQoJCQkJZGF0ZUZvcm1hdCA9IHRoaXMuX2dldChpbnN0LCAiZGF0ZUZvcm1hdCIpOw0KDQoJCQlpZiAoZGF0ZUZvcm1hdC5tYXRjaCgvW0RNXS8pKSB7DQoJCQkJZmluZE1heCA9IGZ1bmN0aW9uKG5hbWVzKSB7DQoJCQkJCW1heCA9IDA7DQoJCQkJCW1heEkgPSAwOw0KCQkJCQlmb3IgKGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsNCgkJCQkJCWlmIChuYW1lc1tpXS5sZW5ndGggPiBtYXgpIHsNCgkJCQkJCQltYXggPSBuYW1lc1tpXS5sZW5ndGg7DQoJCQkJCQkJbWF4SSA9IGk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJcmV0dXJuIG1heEk7DQoJCQkJfTsNCgkJCQlkYXRlLnNldE1vbnRoKGZpbmRNYXgodGhpcy5fZ2V0KGluc3QsIChkYXRlRm9ybWF0Lm1hdGNoKC9NTS8pID8NCgkJCQkJIm1vbnRoTmFtZXMiIDogIm1vbnRoTmFtZXNTaG9ydCIpKSkpOw0KCQkJCWRhdGUuc2V0RGF0ZShmaW5kTWF4KHRoaXMuX2dldChpbnN0LCAoZGF0ZUZvcm1hdC5tYXRjaCgvREQvKSA/DQoJCQkJCSJkYXlOYW1lcyIgOiAiZGF5TmFtZXNTaG9ydCIpKSkgKyAyMCAtIGRhdGUuZ2V0RGF5KCkpOw0KCQkJfQ0KCQkJaW5zdC5pbnB1dC5hdHRyKCJzaXplIiwgdGhpcy5fZm9ybWF0RGF0ZShpbnN0LCBkYXRlKS5sZW5ndGgpOw0KCQl9DQoJfSwNCg0KCS8qIEF0dGFjaCBhbiBpbmxpbmUgZGF0ZSBwaWNrZXIgdG8gYSBkaXYuICovDQoJX2lubGluZURhdGVwaWNrZXI6IGZ1bmN0aW9uKHRhcmdldCwgaW5zdCkgew0KCQl2YXIgZGl2U3BhbiA9ICQodGFyZ2V0KTsNCgkJaWYgKGRpdlNwYW4uaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpKSB7DQoJCQlyZXR1cm47DQoJCX0NCgkJZGl2U3Bhbi5hZGRDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkuYXBwZW5kKGluc3QuZHBEaXYpOw0KCQkkLmRhdGEodGFyZ2V0LCAiZGF0ZXBpY2tlciIsIGluc3QpOw0KCQl0aGlzLl9zZXREYXRlKGluc3QsIHRoaXMuX2dldERlZmF1bHREYXRlKGluc3QpLCB0cnVlKTsNCgkJdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihpbnN0KTsNCgkJdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKGluc3QpOw0KCQkvL0lmIGRpc2FibGVkIG9wdGlvbiBpcyB0cnVlLCBkaXNhYmxlIHRoZSBkYXRlcGlja2VyIGJlZm9yZSBzaG93aW5nIGl0IChzZWUgdGlja2V0ICM1NjY1KQ0KCQlpZiggaW5zdC5zZXR0aW5ncy5kaXNhYmxlZCApIHsNCgkJCXRoaXMuX2Rpc2FibGVEYXRlcGlja2VyKCB0YXJnZXQgKTsNCgkJfQ0KCQkvLyBTZXQgZGlzcGxheTpibG9jayBpbiBwbGFjZSBvZiBpbnN0LmRwRGl2LnNob3coKSB3aGljaCB3b24ndCB3b3JrIG9uIGRpc2Nvbm5lY3RlZCBlbGVtZW50cw0KCQkvLyBodHRwOi8vYnVncy5qcXVlcnl1aS5jb20vdGlja2V0Lzc1NTIgLSBBIERhdGVwaWNrZXIgY3JlYXRlZCBvbiBhIGRldGFjaGVkIGRpdiBoYXMgemVybyBoZWlnaHQNCgkJaW5zdC5kcERpdi5jc3MoICJkaXNwbGF5IiwgImJsb2NrIiApOw0KCX0sDQoNCgkvKiBQb3AtdXAgdGhlIGRhdGUgcGlja2VyIGluIGEgImRpYWxvZyIgYm94Lg0KCSAqIEBwYXJhbSAgaW5wdXQgZWxlbWVudCAtIGlnbm9yZWQNCgkgKiBAcGFyYW0gIGRhdGUJc3RyaW5nIG9yIERhdGUgLSB0aGUgaW5pdGlhbCBkYXRlIHRvIGRpc3BsYXkNCgkgKiBAcGFyYW0gIG9uU2VsZWN0ICBmdW5jdGlvbiAtIHRoZSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gYSBkYXRlIGlzIHNlbGVjdGVkDQoJICogQHBhcmFtICBzZXR0aW5ncyAgb2JqZWN0IC0gdXBkYXRlIHRoZSBkaWFsb2cgZGF0ZSBwaWNrZXIgaW5zdGFuY2UncyBzZXR0aW5ncyAoYW5vbnltb3VzIG9iamVjdCkNCgkgKiBAcGFyYW0gIHBvcyBpbnRbMl0gLSBjb29yZGluYXRlcyBmb3IgdGhlIGRpYWxvZydzIHBvc2l0aW9uIHdpdGhpbiB0aGUgc2NyZWVuIG9yDQoJICoJCQkJCWV2ZW50IC0gd2l0aCB4L3kgY29vcmRpbmF0ZXMgb3INCgkgKgkJCQkJbGVhdmUgZW1wdHkgZm9yIGRlZmF1bHQgKHNjcmVlbiBjZW50cmUpDQoJICogQHJldHVybiB0aGUgbWFuYWdlciBvYmplY3QNCgkgKi8NCglfZGlhbG9nRGF0ZXBpY2tlcjogZnVuY3Rpb24oaW5wdXQsIGRhdGUsIG9uU2VsZWN0LCBzZXR0aW5ncywgcG9zKSB7DQoJCXZhciBpZCwgYnJvd3NlcldpZHRoLCBicm93c2VySGVpZ2h0LCBzY3JvbGxYLCBzY3JvbGxZLA0KCQkJaW5zdCA9IHRoaXMuX2RpYWxvZ0luc3Q7IC8vIGludGVybmFsIGluc3RhbmNlDQoNCgkJaWYgKCFpbnN0KSB7DQoJCQl0aGlzLnV1aWQgKz0gMTsNCgkJCWlkID0gImRwIiArIHRoaXMudXVpZDsNCgkJCXRoaXMuX2RpYWxvZ0lucHV0ID0gJCgiPGlucHV0IHR5cGU9J3RleHQnIGlkPSciICsgaWQgKw0KCQkJCSInIHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTEwMHB4OyB3aWR0aDogMHB4OycvPiIpOw0KCQkJdGhpcy5fZGlhbG9nSW5wdXQua2V5ZG93bih0aGlzLl9kb0tleURvd24pOw0KCQkJJCgiYm9keSIpLmFwcGVuZCh0aGlzLl9kaWFsb2dJbnB1dCk7DQoJCQlpbnN0ID0gdGhpcy5fZGlhbG9nSW5zdCA9IHRoaXMuX25ld0luc3QodGhpcy5fZGlhbG9nSW5wdXQsIGZhbHNlKTsNCgkJCWluc3Quc2V0dGluZ3MgPSB7fTsNCgkJCSQuZGF0YSh0aGlzLl9kaWFsb2dJbnB1dFswXSwgImRhdGVwaWNrZXIiLCBpbnN0KTsNCgkJfQ0KCQlkYXRlcGlja2VyX2V4dGVuZFJlbW92ZShpbnN0LnNldHRpbmdzLCBzZXR0aW5ncyB8fCB7fSk7DQoJCWRhdGUgPSAoZGF0ZSAmJiBkYXRlLmNvbnN0cnVjdG9yID09PSBEYXRlID8gdGhpcy5fZm9ybWF0RGF0ZShpbnN0LCBkYXRlKSA6IGRhdGUpOw0KCQl0aGlzLl9kaWFsb2dJbnB1dC52YWwoZGF0ZSk7DQoNCgkJdGhpcy5fcG9zID0gKHBvcyA/IChwb3MubGVuZ3RoID8gcG9zIDogW3Bvcy5wYWdlWCwgcG9zLnBhZ2VZXSkgOiBudWxsKTsNCgkJaWYgKCF0aGlzLl9wb3MpIHsNCgkJCWJyb3dzZXJXaWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsNCgkJCWJyb3dzZXJIZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0Ow0KCQkJc2Nyb2xsWCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdDsNCgkJCXNjcm9sbFkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOw0KCQkJdGhpcy5fcG9zID0gLy8gc2hvdWxkIHVzZSBhY3R1YWwgd2lkdGgvaGVpZ2h0IGJlbG93DQoJCQkJWyhicm93c2VyV2lkdGggLyAyKSAtIDEwMCArIHNjcm9sbFgsIChicm93c2VySGVpZ2h0IC8gMikgLSAxNTAgKyBzY3JvbGxZXTsNCgkJfQ0KDQoJCS8vIG1vdmUgaW5wdXQgb24gc2NyZWVuIGZvciBmb2N1cywgYnV0IGhpZGRlbiBiZWhpbmQgZGlhbG9nDQoJCXRoaXMuX2RpYWxvZ0lucHV0LmNzcygibGVmdCIsICh0aGlzLl9wb3NbMF0gKyAyMCkgKyAicHgiKS5jc3MoInRvcCIsIHRoaXMuX3Bvc1sxXSArICJweCIpOw0KCQlpbnN0LnNldHRpbmdzLm9uU2VsZWN0ID0gb25TZWxlY3Q7DQoJCXRoaXMuX2luRGlhbG9nID0gdHJ1ZTsNCgkJdGhpcy5kcERpdi5hZGRDbGFzcyh0aGlzLl9kaWFsb2dDbGFzcyk7DQoJCXRoaXMuX3Nob3dEYXRlcGlja2VyKHRoaXMuX2RpYWxvZ0lucHV0WzBdKTsNCgkJaWYgKCQuYmxvY2tVSSkgew0KCQkJJC5ibG9ja1VJKHRoaXMuZHBEaXYpOw0KCQl9DQoJCSQuZGF0YSh0aGlzLl9kaWFsb2dJbnB1dFswXSwgImRhdGVwaWNrZXIiLCBpbnN0KTsNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCg0KCS8qIERldGFjaCBhIGRhdGVwaWNrZXIgZnJvbSBpdHMgY29udHJvbC4NCgkgKiBAcGFyYW0gIHRhcmdldAllbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICovDQoJX2Rlc3Ryb3lEYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQpIHsNCgkJdmFyIG5vZGVOYW1lLA0KCQkJJHRhcmdldCA9ICQodGFyZ2V0KSwNCgkJCWluc3QgPSAkLmRhdGEodGFyZ2V0LCAiZGF0ZXBpY2tlciIpOw0KDQoJCWlmICghJHRhcmdldC5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCW5vZGVOYW1lID0gdGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7DQoJCSQucmVtb3ZlRGF0YSh0YXJnZXQsICJkYXRlcGlja2VyIik7DQoJCWlmIChub2RlTmFtZSA9PT0gImlucHV0Iikgew0KCQkJaW5zdC5hcHBlbmQucmVtb3ZlKCk7DQoJCQlpbnN0LnRyaWdnZXIucmVtb3ZlKCk7DQoJCQkkdGFyZ2V0LnJlbW92ZUNsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKS4NCgkJCQl1bmJpbmQoImZvY3VzIiwgdGhpcy5fc2hvd0RhdGVwaWNrZXIpLg0KCQkJCXVuYmluZCgia2V5ZG93biIsIHRoaXMuX2RvS2V5RG93bikuDQoJCQkJdW5iaW5kKCJrZXlwcmVzcyIsIHRoaXMuX2RvS2V5UHJlc3MpLg0KCQkJCXVuYmluZCgia2V5dXAiLCB0aGlzLl9kb0tleVVwKTsNCgkJfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gImRpdiIgfHwgbm9kZU5hbWUgPT09ICJzcGFuIikgew0KCQkJJHRhcmdldC5yZW1vdmVDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkuZW1wdHkoKTsNCgkJfQ0KCX0sDQoNCgkvKiBFbmFibGUgdGhlIGRhdGUgcGlja2VyIHRvIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldAllbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICovDQoJX2VuYWJsZURhdGVwaWNrZXI6IGZ1bmN0aW9uKHRhcmdldCkgew0KCQl2YXIgbm9kZU5hbWUsIGlubGluZSwNCgkJCSR0YXJnZXQgPSAkKHRhcmdldCksDQoJCQlpbnN0ID0gJC5kYXRhKHRhcmdldCwgImRhdGVwaWNrZXIiKTsNCg0KCQlpZiAoISR0YXJnZXQuaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlub2RlTmFtZSA9IHRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOw0KCQlpZiAobm9kZU5hbWUgPT09ICJpbnB1dCIpIHsNCgkJCXRhcmdldC5kaXNhYmxlZCA9IGZhbHNlOw0KCQkJaW5zdC50cmlnZ2VyLmZpbHRlcigiYnV0dG9uIikuDQoJCQkJZWFjaChmdW5jdGlvbigpIHsgdGhpcy5kaXNhYmxlZCA9IGZhbHNlOyB9KS5lbmQoKS4NCgkJCQlmaWx0ZXIoImltZyIpLmNzcyh7b3BhY2l0eTogIjEuMCIsIGN1cnNvcjogIiJ9KTsNCgkJfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gImRpdiIgfHwgbm9kZU5hbWUgPT09ICJzcGFuIikgew0KCQkJaW5saW5lID0gJHRhcmdldC5jaGlsZHJlbigiLiIgKyB0aGlzLl9pbmxpbmVDbGFzcyk7DQoJCQlpbmxpbmUuY2hpbGRyZW4oKS5yZW1vdmVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKTsNCgkJCWlubGluZS5maW5kKCJzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCwgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhciIpLg0KCQkJCXByb3AoImRpc2FibGVkIiwgZmFsc2UpOw0KCQl9DQoJCXRoaXMuX2Rpc2FibGVkSW5wdXRzID0gJC5tYXAodGhpcy5fZGlzYWJsZWRJbnB1dHMsDQoJCQlmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gKHZhbHVlID09PSB0YXJnZXQgPyBudWxsIDogdmFsdWUpOyB9KTsgLy8gZGVsZXRlIGVudHJ5DQoJfSwNCg0KCS8qIERpc2FibGUgdGhlIGRhdGUgcGlja2VyIHRvIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldAllbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICovDQoJX2Rpc2FibGVEYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQpIHsNCgkJdmFyIG5vZGVOYW1lLCBpbmxpbmUsDQoJCQkkdGFyZ2V0ID0gJCh0YXJnZXQpLA0KCQkJaW5zdCA9ICQuZGF0YSh0YXJnZXQsICJkYXRlcGlja2VyIik7DQoNCgkJaWYgKCEkdGFyZ2V0Lmhhc0NsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKSkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJbm9kZU5hbWUgPSB0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsNCgkJaWYgKG5vZGVOYW1lID09PSAiaW5wdXQiKSB7DQoJCQl0YXJnZXQuZGlzYWJsZWQgPSB0cnVlOw0KCQkJaW5zdC50cmlnZ2VyLmZpbHRlcigiYnV0dG9uIikuDQoJCQkJZWFjaChmdW5jdGlvbigpIHsgdGhpcy5kaXNhYmxlZCA9IHRydWU7IH0pLmVuZCgpLg0KCQkJCWZpbHRlcigiaW1nIikuY3NzKHtvcGFjaXR5OiAiMC41IiwgY3Vyc29yOiAiZGVmYXVsdCJ9KTsNCgkJfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gImRpdiIgfHwgbm9kZU5hbWUgPT09ICJzcGFuIikgew0KCQkJaW5saW5lID0gJHRhcmdldC5jaGlsZHJlbigiLiIgKyB0aGlzLl9pbmxpbmVDbGFzcyk7DQoJCQlpbmxpbmUuY2hpbGRyZW4oKS5hZGRDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKTsNCgkJCWlubGluZS5maW5kKCJzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCwgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhciIpLg0KCQkJCXByb3AoImRpc2FibGVkIiwgdHJ1ZSk7DQoJCX0NCgkJdGhpcy5fZGlzYWJsZWRJbnB1dHMgPSAkLm1hcCh0aGlzLl9kaXNhYmxlZElucHV0cywNCgkJCWZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiAodmFsdWUgPT09IHRhcmdldCA/IG51bGwgOiB2YWx1ZSk7IH0pOyAvLyBkZWxldGUgZW50cnkNCgkJdGhpcy5fZGlzYWJsZWRJbnB1dHNbdGhpcy5fZGlzYWJsZWRJbnB1dHMubGVuZ3RoXSA9IHRhcmdldDsNCgl9LA0KDQoJLyogSXMgdGhlIGZpcnN0IGZpZWxkIGluIGEgalF1ZXJ5IGNvbGxlY3Rpb24gZGlzYWJsZWQgYXMgYSBkYXRlcGlja2VyPw0KCSAqIEBwYXJhbSAgdGFyZ2V0CWVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKiBAcmV0dXJuIGJvb2xlYW4gLSB0cnVlIGlmIGRpc2FibGVkLCBmYWxzZSBpZiBlbmFibGVkDQoJICovDQoJX2lzRGlzYWJsZWREYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQpIHsNCgkJaWYgKCF0YXJnZXQpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQlmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2Rpc2FibGVkSW5wdXRzLmxlbmd0aDsgaSsrKSB7DQoJCQlpZiAodGhpcy5fZGlzYWJsZWRJbnB1dHNbaV0gPT09IHRhcmdldCkgew0KCQkJCXJldHVybiB0cnVlOw0KCQkJfQ0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJLyogUmV0cmlldmUgdGhlIGluc3RhbmNlIGRhdGEgZm9yIHRoZSB0YXJnZXQgY29udHJvbC4NCgkgKiBAcGFyYW0gIHRhcmdldCAgZWxlbWVudCAtIHRoZSB0YXJnZXQgaW5wdXQgZmllbGQgb3IgZGl2aXNpb24gb3Igc3Bhbg0KCSAqIEByZXR1cm4gIG9iamVjdCAtIHRoZSBhc3NvY2lhdGVkIGluc3RhbmNlIGRhdGENCgkgKiBAdGhyb3dzICBlcnJvciBpZiBhIGpRdWVyeSBwcm9ibGVtIGdldHRpbmcgZGF0YQ0KCSAqLw0KCV9nZXRJbnN0OiBmdW5jdGlvbih0YXJnZXQpIHsNCgkJdHJ5IHsNCgkJCXJldHVybiAkLmRhdGEodGFyZ2V0LCAiZGF0ZXBpY2tlciIpOw0KCQl9DQoJCWNhdGNoIChlcnIpIHsNCgkJCXRocm93ICJNaXNzaW5nIGluc3RhbmNlIGRhdGEgZm9yIHRoaXMgZGF0ZXBpY2tlciI7DQoJCX0NCgl9LA0KDQoJLyogVXBkYXRlIG9yIHJldHJpZXZlIHRoZSBzZXR0aW5ncyBmb3IgYSBkYXRlIHBpY2tlciBhdHRhY2hlZCB0byBhbiBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbi4NCgkgKiBAcGFyYW0gIHRhcmdldCAgZWxlbWVudCAtIHRoZSB0YXJnZXQgaW5wdXQgZmllbGQgb3IgZGl2aXNpb24gb3Igc3Bhbg0KCSAqIEBwYXJhbSAgbmFtZQlvYmplY3QgLSB0aGUgbmV3IHNldHRpbmdzIHRvIHVwZGF0ZSBvcg0KCSAqCQkJCXN0cmluZyAtIHRoZSBuYW1lIG9mIHRoZSBzZXR0aW5nIHRvIGNoYW5nZSBvciByZXRyaWV2ZSwNCgkgKgkJCQl3aGVuIHJldHJpZXZpbmcgYWxzbyAiYWxsIiBmb3IgYWxsIGluc3RhbmNlIHNldHRpbmdzIG9yDQoJICoJCQkJImRlZmF1bHRzIiBmb3IgYWxsIGdsb2JhbCBkZWZhdWx0cw0KCSAqIEBwYXJhbSAgdmFsdWUgICBhbnkgLSB0aGUgbmV3IHZhbHVlIGZvciB0aGUgc2V0dGluZw0KCSAqCQkJCShvbWl0IGlmIGFib3ZlIGlzIGFuIG9iamVjdCBvciB0byByZXRyaWV2ZSBhIHZhbHVlKQ0KCSAqLw0KCV9vcHRpb25EYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQsIG5hbWUsIHZhbHVlKSB7DQoJCXZhciBzZXR0aW5ncywgZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSwNCgkJCWluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCk7DQoNCgkJaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIgJiYgdHlwZW9mIG5hbWUgPT09ICJzdHJpbmciKSB7DQoJCQlyZXR1cm4gKG5hbWUgPT09ICJkZWZhdWx0cyIgPyAkLmV4dGVuZCh7fSwgJC5kYXRlcGlja2VyLl9kZWZhdWx0cykgOg0KCQkJCShpbnN0ID8gKG5hbWUgPT09ICJhbGwiID8gJC5leHRlbmQoe30sIGluc3Quc2V0dGluZ3MpIDoNCgkJCQl0aGlzLl9nZXQoaW5zdCwgbmFtZSkpIDogbnVsbCkpOw0KCQl9DQoNCgkJc2V0dGluZ3MgPSBuYW1lIHx8IHt9Ow0KCQlpZiAodHlwZW9mIG5hbWUgPT09ICJzdHJpbmciKSB7DQoJCQlzZXR0aW5ncyA9IHt9Ow0KCQkJc2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCgkJfQ0KDQoJCWlmIChpbnN0KSB7DQoJCQlpZiAodGhpcy5fY3VySW5zdCA9PT0gaW5zdCkgew0KCQkJCXRoaXMuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQl9DQoNCgkJCWRhdGUgPSB0aGlzLl9nZXREYXRlRGF0ZXBpY2tlcih0YXJnZXQsIHRydWUpOw0KCQkJbWluRGF0ZSA9IHRoaXMuX2dldE1pbk1heERhdGUoaW5zdCwgIm1pbiIpOw0KCQkJbWF4RGF0ZSA9IHRoaXMuX2dldE1pbk1heERhdGUoaW5zdCwgIm1heCIpOw0KCQkJZGF0ZXBpY2tlcl9leHRlbmRSZW1vdmUoaW5zdC5zZXR0aW5ncywgc2V0dGluZ3MpOw0KCQkJLy8gcmVmb3JtYXQgdGhlIG9sZCBtaW5EYXRlL21heERhdGUgdmFsdWVzIGlmIGRhdGVGb3JtYXQgY2hhbmdlcyBhbmQgYSBuZXcgbWluRGF0ZS9tYXhEYXRlIGlzbid0IHByb3ZpZGVkDQoJCQlpZiAobWluRGF0ZSAhPT0gbnVsbCAmJiBzZXR0aW5ncy5kYXRlRm9ybWF0ICE9PSB1bmRlZmluZWQgJiYgc2V0dGluZ3MubWluRGF0ZSA9PT0gdW5kZWZpbmVkKSB7DQoJCQkJaW5zdC5zZXR0aW5ncy5taW5EYXRlID0gdGhpcy5fZm9ybWF0RGF0ZShpbnN0LCBtaW5EYXRlKTsNCgkJCX0NCgkJCWlmIChtYXhEYXRlICE9PSBudWxsICYmIHNldHRpbmdzLmRhdGVGb3JtYXQgIT09IHVuZGVmaW5lZCAmJiBzZXR0aW5ncy5tYXhEYXRlID09PSB1bmRlZmluZWQpIHsNCgkJCQlpbnN0LnNldHRpbmdzLm1heERhdGUgPSB0aGlzLl9mb3JtYXREYXRlKGluc3QsIG1heERhdGUpOw0KCQkJfQ0KCQkJaWYgKCAiZGlzYWJsZWQiIGluIHNldHRpbmdzICkgew0KCQkJCWlmICggc2V0dGluZ3MuZGlzYWJsZWQgKSB7DQoJCQkJCXRoaXMuX2Rpc2FibGVEYXRlcGlja2VyKHRhcmdldCk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJdGhpcy5fZW5hYmxlRGF0ZXBpY2tlcih0YXJnZXQpOw0KCQkJCX0NCgkJCX0NCgkJCXRoaXMuX2F0dGFjaG1lbnRzKCQodGFyZ2V0KSwgaW5zdCk7DQoJCQl0aGlzLl9hdXRvU2l6ZShpbnN0KTsNCgkJCXRoaXMuX3NldERhdGUoaW5zdCwgZGF0ZSk7DQoJCQl0aGlzLl91cGRhdGVBbHRlcm5hdGUoaW5zdCk7DQoJCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOw0KCQl9DQoJfSwNCg0KCS8vIGNoYW5nZSBtZXRob2QgZGVwcmVjYXRlZA0KCV9jaGFuZ2VEYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQsIG5hbWUsIHZhbHVlKSB7DQoJCXRoaXMuX29wdGlvbkRhdGVwaWNrZXIodGFyZ2V0LCBuYW1lLCB2YWx1ZSk7DQoJfSwNCg0KCS8qIFJlZHJhdyB0aGUgZGF0ZSBwaWNrZXIgYXR0YWNoZWQgdG8gYW4gaW5wdXQgZmllbGQgb3IgZGl2aXNpb24uDQoJICogQHBhcmFtICB0YXJnZXQgIGVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKi8NCglfcmVmcmVzaERhdGVwaWNrZXI6IGZ1bmN0aW9uKHRhcmdldCkgew0KCQl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0KTsNCgkJaWYgKGluc3QpIHsNCgkJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJCX0NCgl9LA0KDQoJLyogU2V0IHRoZSBkYXRlcyBmb3IgYSBqUXVlcnkgc2VsZWN0aW9uLg0KCSAqIEBwYXJhbSAgdGFyZ2V0IGVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKiBAcGFyYW0gIGRhdGUJRGF0ZSAtIHRoZSBuZXcgZGF0ZQ0KCSAqLw0KCV9zZXREYXRlRGF0ZXBpY2tlcjogZnVuY3Rpb24odGFyZ2V0LCBkYXRlKSB7DQoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpOw0KCQlpZiAoaW5zdCkgew0KCQkJdGhpcy5fc2V0RGF0ZShpbnN0LCBkYXRlKTsNCgkJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJCQl0aGlzLl91cGRhdGVBbHRlcm5hdGUoaW5zdCk7DQoJCX0NCgl9LA0KDQoJLyogR2V0IHRoZSBkYXRlKHMpIGZvciB0aGUgZmlyc3QgZW50cnkgaW4gYSBqUXVlcnkgc2VsZWN0aW9uLg0KCSAqIEBwYXJhbSAgdGFyZ2V0IGVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKiBAcGFyYW0gIG5vRGVmYXVsdCBib29sZWFuIC0gdHJ1ZSBpZiBubyBkZWZhdWx0IGRhdGUgaXMgdG8gYmUgdXNlZA0KCSAqIEByZXR1cm4gRGF0ZSAtIHRoZSBjdXJyZW50IGRhdGUNCgkgKi8NCglfZ2V0RGF0ZURhdGVwaWNrZXI6IGZ1bmN0aW9uKHRhcmdldCwgbm9EZWZhdWx0KSB7DQoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpOw0KCQlpZiAoaW5zdCAmJiAhaW5zdC5pbmxpbmUpIHsNCgkJCXRoaXMuX3NldERhdGVGcm9tRmllbGQoaW5zdCwgbm9EZWZhdWx0KTsNCgkJfQ0KCQlyZXR1cm4gKGluc3QgPyB0aGlzLl9nZXREYXRlKGluc3QpIDogbnVsbCk7DQoJfSwNCg0KCS8qIEhhbmRsZSBrZXlzdHJva2VzLiAqLw0KCV9kb0tleURvd246IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciBvblNlbGVjdCwgZGF0ZVN0ciwgc2VsLA0KCQkJaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdChldmVudC50YXJnZXQpLA0KCQkJaGFuZGxlZCA9IHRydWUsDQoJCQlpc1JUTCA9IGluc3QuZHBEaXYuaXMoIi51aS1kYXRlcGlja2VyLXJ0bCIpOw0KDQoJCWluc3QuX2tleUV2ZW50ID0gdHJ1ZTsNCgkJaWYgKCQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcpIHsNCgkJCXN3aXRjaCAoZXZlbnQua2V5Q29kZSkgew0KCQkJCWNhc2UgOTogJC5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpOw0KCQkJCQkJaGFuZGxlZCA9IGZhbHNlOw0KCQkJCQkJYnJlYWs7IC8vIGhpZGUgb24gdGFiIG91dA0KCQkJCWNhc2UgMTM6IHNlbCA9ICQoInRkLiIgKyAkLmRhdGVwaWNrZXIuX2RheU92ZXJDbGFzcyArICI6bm90KC4iICsNCgkJCQkJCQkJCSQuZGF0ZXBpY2tlci5fY3VycmVudENsYXNzICsgIikiLCBpbnN0LmRwRGl2KTsNCgkJCQkJCWlmIChzZWxbMF0pIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX3NlbGVjdERheShldmVudC50YXJnZXQsIGluc3Quc2VsZWN0ZWRNb250aCwgaW5zdC5zZWxlY3RlZFllYXIsIHNlbFswXSk7DQoJCQkJCQl9DQoNCgkJCQkJCW9uU2VsZWN0ID0gJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgIm9uU2VsZWN0Iik7DQoJCQkJCQlpZiAob25TZWxlY3QpIHsNCgkJCQkJCQlkYXRlU3RyID0gJC5kYXRlcGlja2VyLl9mb3JtYXREYXRlKGluc3QpOw0KDQoJCQkJCQkJLy8gdHJpZ2dlciBjdXN0b20gY2FsbGJhY2sNCgkJCQkJCQlvblNlbGVjdC5hcHBseSgoaW5zdC5pbnB1dCA/IGluc3QuaW5wdXRbMF0gOiBudWxsKSwgW2RhdGVTdHIsIGluc3RdKTsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpOw0KCQkJCQkJfQ0KDQoJCQkJCQlyZXR1cm4gZmFsc2U7IC8vIGRvbid0IHN1Ym1pdCB0aGUgZm9ybQ0KCQkJCWNhc2UgMjc6ICQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTsNCgkJCQkJCWJyZWFrOyAvLyBoaWRlIG9uIGVzY2FwZQ0KCQkJCWNhc2UgMzM6ICQuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZShldmVudC50YXJnZXQsIChldmVudC5jdHJsS2V5ID8NCgkJCQkJCQktJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgInN0ZXBCaWdNb250aHMiKSA6DQoJCQkJCQkJLSQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJzdGVwTW9udGhzIikpLCAiTSIpOw0KCQkJCQkJYnJlYWs7IC8vIHByZXZpb3VzIG1vbnRoL3llYXIgb24gcGFnZSB1cC8rIGN0cmwNCgkJCQljYXNlIDM0OiAkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoZXZlbnQudGFyZ2V0LCAoZXZlbnQuY3RybEtleSA/DQoJCQkJCQkJKyQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJzdGVwQmlnTW9udGhzIikgOg0KCQkJCQkJCSskLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic3RlcE1vbnRocyIpKSwgIk0iKTsNCgkJCQkJCWJyZWFrOyAvLyBuZXh0IG1vbnRoL3llYXIgb24gcGFnZSBkb3duLysgY3RybA0KCQkJCWNhc2UgMzU6IGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2NsZWFyRGF0ZShldmVudC50YXJnZXQpOw0KCQkJCQkJfQ0KCQkJCQkJaGFuZGxlZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTsNCgkJCQkJCWJyZWFrOyAvLyBjbGVhciBvbiBjdHJsIG9yIGNvbW1hbmQgK2VuZA0KCQkJCWNhc2UgMzY6IGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2dvdG9Ub2RheShldmVudC50YXJnZXQpOw0KCQkJCQkJfQ0KCQkJCQkJaGFuZGxlZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTsNCgkJCQkJCWJyZWFrOyAvLyBjdXJyZW50IG9uIGN0cmwgb3IgY29tbWFuZCAraG9tZQ0KCQkJCWNhc2UgMzc6IGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoZXZlbnQudGFyZ2V0LCAoaXNSVEwgPyArMSA6IC0xKSwgIkQiKTsNCgkJCQkJCX0NCgkJCQkJCWhhbmRsZWQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7DQoJCQkJCQkvLyAtMSBkYXkgb24gY3RybCBvciBjb21tYW5kICtsZWZ0DQoJCQkJCQlpZiAoZXZlbnQub3JpZ2luYWxFdmVudC5hbHRLZXkpIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoZXZlbnQudGFyZ2V0LCAoZXZlbnQuY3RybEtleSA/DQoJCQkJCQkJCS0kLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic3RlcEJpZ01vbnRocyIpIDoNCgkJCQkJCQkJLSQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJzdGVwTW9udGhzIikpLCAiTSIpOw0KCQkJCQkJfQ0KCQkJCQkJLy8gbmV4dCBtb250aC95ZWFyIG9uIGFsdCArbGVmdCBvbiBNYWMNCgkJCQkJCWJyZWFrOw0KCQkJCWNhc2UgMzg6IGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoZXZlbnQudGFyZ2V0LCAtNywgIkQiKTsNCgkJCQkJCX0NCgkJCQkJCWhhbmRsZWQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7DQoJCQkJCQlicmVhazsgLy8gLTEgd2VlayBvbiBjdHJsIG9yIGNvbW1hbmQgK3VwDQoJCQkJY2FzZSAzOTogaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkgew0KCQkJCQkJCSQuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZShldmVudC50YXJnZXQsIChpc1JUTCA/IC0xIDogKzEpLCAiRCIpOw0KCQkJCQkJfQ0KCQkJCQkJaGFuZGxlZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTsNCgkJCQkJCS8vICsxIGRheSBvbiBjdHJsIG9yIGNvbW1hbmQgK3JpZ2h0DQoJCQkJCQlpZiAoZXZlbnQub3JpZ2luYWxFdmVudC5hbHRLZXkpIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoZXZlbnQudGFyZ2V0LCAoZXZlbnQuY3RybEtleSA/DQoJCQkJCQkJCSskLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic3RlcEJpZ01vbnRocyIpIDoNCgkJCQkJCQkJKyQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJzdGVwTW9udGhzIikpLCAiTSIpOw0KCQkJCQkJfQ0KCQkJCQkJLy8gbmV4dCBtb250aC95ZWFyIG9uIGFsdCArcmlnaHQNCgkJCQkJCWJyZWFrOw0KCQkJCWNhc2UgNDA6IGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoZXZlbnQudGFyZ2V0LCArNywgIkQiKTsNCgkJCQkJCX0NCgkJCQkJCWhhbmRsZWQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7DQoJCQkJCQlicmVhazsgLy8gKzEgd2VlayBvbiBjdHJsIG9yIGNvbW1hbmQgK2Rvd24NCgkJCQlkZWZhdWx0OiBoYW5kbGVkID0gZmFsc2U7DQoJCQl9DQoJCX0gZWxzZSBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzYgJiYgZXZlbnQuY3RybEtleSkgeyAvLyBkaXNwbGF5IHRoZSBkYXRlIHBpY2tlciBvbiBjdHJsK2hvbWUNCgkJCSQuZGF0ZXBpY2tlci5fc2hvd0RhdGVwaWNrZXIodGhpcyk7DQoJCX0gZWxzZSB7DQoJCQloYW5kbGVkID0gZmFsc2U7DQoJCX0NCg0KCQlpZiAoaGFuZGxlZCkgew0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCWV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KCQl9DQoJfSwNCg0KCS8qIEZpbHRlciBlbnRlcmVkIGNoYXJhY3RlcnMgLSBiYXNlZCBvbiBkYXRlIGZvcm1hdC4gKi8NCglfZG9LZXlQcmVzczogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIGNoYXJzLCBjaHIsDQoJCQlpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KGV2ZW50LnRhcmdldCk7DQoNCgkJaWYgKCQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJjb25zdHJhaW5JbnB1dCIpKSB7DQoJCQljaGFycyA9ICQuZGF0ZXBpY2tlci5fcG9zc2libGVDaGFycygkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAiZGF0ZUZvcm1hdCIpKTsNCgkJCWNociA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUgPT0gbnVsbCA/IGV2ZW50LmtleUNvZGUgOiBldmVudC5jaGFyQ29kZSk7DQoJCQlyZXR1cm4gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IChjaHIgPCAiICIgfHwgIWNoYXJzIHx8IGNoYXJzLmluZGV4T2YoY2hyKSA+IC0xKTsNCgkJfQ0KCX0sDQoNCgkvKiBTeW5jaHJvbmlzZSBtYW51YWwgZW50cnkgYW5kIGZpZWxkL2FsdGVybmF0ZSBmaWVsZC4gKi8NCglfZG9LZXlVcDogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIGRhdGUsDQoJCQlpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KGV2ZW50LnRhcmdldCk7DQoNCgkJaWYgKGluc3QuaW5wdXQudmFsKCkgIT09IGluc3QubGFzdFZhbCkgew0KCQkJdHJ5IHsNCgkJCQlkYXRlID0gJC5kYXRlcGlja2VyLnBhcnNlRGF0ZSgkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAiZGF0ZUZvcm1hdCIpLA0KCQkJCQkoaW5zdC5pbnB1dCA/IGluc3QuaW5wdXQudmFsKCkgOiBudWxsKSwNCgkJCQkJJC5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoaW5zdCkpOw0KDQoJCQkJaWYgKGRhdGUpIHsgLy8gb25seSBpZiB2YWxpZA0KCQkJCQkkLmRhdGVwaWNrZXIuX3NldERhdGVGcm9tRmllbGQoaW5zdCk7DQoJCQkJCSQuZGF0ZXBpY2tlci5fdXBkYXRlQWx0ZXJuYXRlKGluc3QpOw0KCQkJCQkkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJCQkJfQ0KCQkJfQ0KCQkJY2F0Y2ggKGVycikgew0KCQkJfQ0KCQl9DQoJCXJldHVybiB0cnVlOw0KCX0sDQoNCgkvKiBQb3AtdXAgdGhlIGRhdGUgcGlja2VyIGZvciBhIGdpdmVuIGlucHV0IGZpZWxkLg0KCSAqIElmIGZhbHNlIHJldHVybmVkIGZyb20gYmVmb3JlU2hvdyBldmVudCBoYW5kbGVyIGRvIG5vdCBzaG93Lg0KCSAqIEBwYXJhbSAgaW5wdXQgIGVsZW1lbnQgLSB0aGUgaW5wdXQgZmllbGQgYXR0YWNoZWQgdG8gdGhlIGRhdGUgcGlja2VyIG9yDQoJICoJCQkJCWV2ZW50IC0gaWYgdHJpZ2dlcmVkIGJ5IGZvY3VzDQoJICovDQoJX3Nob3dEYXRlcGlja2VyOiBmdW5jdGlvbihpbnB1dCkgew0KCQlpbnB1dCA9IGlucHV0LnRhcmdldCB8fCBpbnB1dDsNCgkJaWYgKGlucHV0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJpbnB1dCIpIHsgLy8gZmluZCBmcm9tIGJ1dHRvbi9pbWFnZSB0cmlnZ2VyDQoJCQlpbnB1dCA9ICQoImlucHV0IiwgaW5wdXQucGFyZW50Tm9kZSlbMF07DQoJCX0NCg0KCQlpZiAoJC5kYXRlcGlja2VyLl9pc0Rpc2FibGVkRGF0ZXBpY2tlcihpbnB1dCkgfHwgJC5kYXRlcGlja2VyLl9sYXN0SW5wdXQgPT09IGlucHV0KSB7IC8vIGFscmVhZHkgaGVyZQ0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdmFyIGluc3QsIGJlZm9yZVNob3csIGJlZm9yZVNob3dTZXR0aW5ncywgaXNGaXhlZCwNCgkJCW9mZnNldCwgc2hvd0FuaW0sIGR1cmF0aW9uOw0KDQoJCWluc3QgPSAkLmRhdGVwaWNrZXIuX2dldEluc3QoaW5wdXQpOw0KCQlpZiAoJC5kYXRlcGlja2VyLl9jdXJJbnN0ICYmICQuZGF0ZXBpY2tlci5fY3VySW5zdCAhPT0gaW5zdCkgew0KCQkJJC5kYXRlcGlja2VyLl9jdXJJbnN0LmRwRGl2LnN0b3AodHJ1ZSwgdHJ1ZSk7DQoJCQlpZiAoIGluc3QgJiYgJC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZyApIHsNCgkJCQkkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCAkLmRhdGVwaWNrZXIuX2N1ckluc3QuaW5wdXRbMF0gKTsNCgkJCX0NCgkJfQ0KDQoJCWJlZm9yZVNob3cgPSAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAiYmVmb3JlU2hvdyIpOw0KCQliZWZvcmVTaG93U2V0dGluZ3MgPSBiZWZvcmVTaG93ID8gYmVmb3JlU2hvdy5hcHBseShpbnB1dCwgW2lucHV0LCBpbnN0XSkgOiB7fTsNCgkJaWYoYmVmb3JlU2hvd1NldHRpbmdzID09PSBmYWxzZSl7DQoJCQlyZXR1cm47DQoJCX0NCgkJZGF0ZXBpY2tlcl9leHRlbmRSZW1vdmUoaW5zdC5zZXR0aW5ncywgYmVmb3JlU2hvd1NldHRpbmdzKTsNCg0KCQlpbnN0Lmxhc3RWYWwgPSBudWxsOw0KCQkkLmRhdGVwaWNrZXIuX2xhc3RJbnB1dCA9IGlucHV0Ow0KCQkkLmRhdGVwaWNrZXIuX3NldERhdGVGcm9tRmllbGQoaW5zdCk7DQoNCgkJaWYgKCQuZGF0ZXBpY2tlci5faW5EaWFsb2cpIHsgLy8gaGlkZSBjdXJzb3INCgkJCWlucHV0LnZhbHVlID0gIiI7DQoJCX0NCgkJaWYgKCEkLmRhdGVwaWNrZXIuX3BvcykgeyAvLyBwb3NpdGlvbiBiZWxvdyBpbnB1dA0KCQkJJC5kYXRlcGlja2VyLl9wb3MgPSAkLmRhdGVwaWNrZXIuX2ZpbmRQb3MoaW5wdXQpOw0KCQkJJC5kYXRlcGlja2VyLl9wb3NbMV0gKz0gaW5wdXQub2Zmc2V0SGVpZ2h0OyAvLyBhZGQgdGhlIGhlaWdodA0KCQl9DQoNCgkJaXNGaXhlZCA9IGZhbHNlOw0KCQkkKGlucHV0KS5wYXJlbnRzKCkuZWFjaChmdW5jdGlvbigpIHsNCgkJCWlzRml4ZWQgfD0gJCh0aGlzKS5jc3MoInBvc2l0aW9uIikgPT09ICJmaXhlZCI7DQoJCQlyZXR1cm4gIWlzRml4ZWQ7DQoJCX0pOw0KDQoJCW9mZnNldCA9IHtsZWZ0OiAkLmRhdGVwaWNrZXIuX3Bvc1swXSwgdG9wOiAkLmRhdGVwaWNrZXIuX3Bvc1sxXX07DQoJCSQuZGF0ZXBpY2tlci5fcG9zID0gbnVsbDsNCgkJLy90byBhdm9pZCBmbGFzaGVzIG9uIEZpcmVmb3gNCgkJaW5zdC5kcERpdi5lbXB0eSgpOw0KCQkvLyBkZXRlcm1pbmUgc2l6aW5nIG9mZnNjcmVlbg0KCQlpbnN0LmRwRGl2LmNzcyh7cG9zaXRpb246ICJhYnNvbHV0ZSIsIGRpc3BsYXk6ICJibG9jayIsIHRvcDogIi0xMDAwcHgifSk7DQoJCSQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcihpbnN0KTsNCgkJLy8gZml4IHdpZHRoIGZvciBkeW5hbWljIG51bWJlciBvZiBkYXRlIHBpY2tlcnMNCgkJLy8gYW5kIGFkanVzdCBwb3NpdGlvbiBiZWZvcmUgc2hvd2luZw0KCQlvZmZzZXQgPSAkLmRhdGVwaWNrZXIuX2NoZWNrT2Zmc2V0KGluc3QsIG9mZnNldCwgaXNGaXhlZCk7DQoJCWluc3QuZHBEaXYuY3NzKHtwb3NpdGlvbjogKCQuZGF0ZXBpY2tlci5faW5EaWFsb2cgJiYgJC5ibG9ja1VJID8NCgkJCSJzdGF0aWMiIDogKGlzRml4ZWQgPyAiZml4ZWQiIDogImFic29sdXRlIikpLCBkaXNwbGF5OiAibm9uZSIsDQoJCQlsZWZ0OiBvZmZzZXQubGVmdCArICJweCIsIHRvcDogb2Zmc2V0LnRvcCArICJweCJ9KTsNCg0KCQlpZiAoIWluc3QuaW5saW5lKSB7DQoJCQlzaG93QW5pbSA9ICQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJzaG93QW5pbSIpOw0KCQkJZHVyYXRpb24gPSAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAiZHVyYXRpb24iKTsNCgkJCWluc3QuZHBEaXYuY3NzKCAiei1pbmRleCIsIGRhdGVwaWNrZXJfZ2V0WmluZGV4KCAkKCBpbnB1dCApICkgKyAxICk7DQoJCQkkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nID0gdHJ1ZTsNCg0KCQkJaWYgKCAkLmVmZmVjdHMgJiYgJC5lZmZlY3RzLmVmZmVjdFsgc2hvd0FuaW0gXSApIHsNCgkJCQlpbnN0LmRwRGl2LnNob3coc2hvd0FuaW0sICQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJzaG93T3B0aW9ucyIpLCBkdXJhdGlvbik7DQoJCQl9IGVsc2Ugew0KCQkJCWluc3QuZHBEaXZbc2hvd0FuaW0gfHwgInNob3ciXShzaG93QW5pbSA/IGR1cmF0aW9uIDogbnVsbCk7DQoJCQl9DQoNCgkJCWlmICggJC5kYXRlcGlja2VyLl9zaG91bGRGb2N1c0lucHV0KCBpbnN0ICkgKSB7DQoJCQkJaW5zdC5pbnB1dC5mb2N1cygpOw0KCQkJfQ0KDQoJCQkkLmRhdGVwaWNrZXIuX2N1ckluc3QgPSBpbnN0Ow0KCQl9DQoJfSwNCg0KCS8qIEdlbmVyYXRlIHRoZSBkYXRlIHBpY2tlciBjb250ZW50LiAqLw0KCV91cGRhdGVEYXRlcGlja2VyOiBmdW5jdGlvbihpbnN0KSB7DQoJCXRoaXMubWF4Um93cyA9IDQ7IC8vUmVzZXQgdGhlIG1heCBudW1iZXIgb2Ygcm93cyBiZWluZyBkaXNwbGF5ZWQgKHNlZSAjNzA0MykNCgkJZGF0ZXBpY2tlcl9pbnN0QWN0aXZlID0gaW5zdDsgLy8gZm9yIGRlbGVnYXRlIGhvdmVyIGV2ZW50cw0KCQlpbnN0LmRwRGl2LmVtcHR5KCkuYXBwZW5kKHRoaXMuX2dlbmVyYXRlSFRNTChpbnN0KSk7DQoJCXRoaXMuX2F0dGFjaEhhbmRsZXJzKGluc3QpOw0KDQoJCXZhciBvcmlneWVhcnNodG1sLA0KCQkJbnVtTW9udGhzID0gdGhpcy5fZ2V0TnVtYmVyT2ZNb250aHMoaW5zdCksDQoJCQljb2xzID0gbnVtTW9udGhzWzFdLA0KCQkJd2lkdGggPSAxNywNCgkJCWFjdGl2ZUNlbGwgPSBpbnN0LmRwRGl2LmZpbmQoICIuIiArIHRoaXMuX2RheU92ZXJDbGFzcyArICIgYSIgKTsNCg0KCQlpZiAoIGFjdGl2ZUNlbGwubGVuZ3RoID4gMCApIHsNCgkJCWRhdGVwaWNrZXJfaGFuZGxlTW91c2VvdmVyLmFwcGx5KCBhY3RpdmVDZWxsLmdldCggMCApICk7DQoJCX0NCg0KCQlpbnN0LmRwRGl2LnJlbW92ZUNsYXNzKCJ1aS1kYXRlcGlja2VyLW11bHRpLTIgdWktZGF0ZXBpY2tlci1tdWx0aS0zIHVpLWRhdGVwaWNrZXItbXVsdGktNCIpLndpZHRoKCIiKTsNCgkJaWYgKGNvbHMgPiAxKSB7DQoJCQlpbnN0LmRwRGl2LmFkZENsYXNzKCJ1aS1kYXRlcGlja2VyLW11bHRpLSIgKyBjb2xzKS5jc3MoIndpZHRoIiwgKHdpZHRoICogY29scykgKyAiZW0iKTsNCgkJfQ0KCQlpbnN0LmRwRGl2WyhudW1Nb250aHNbMF0gIT09IDEgfHwgbnVtTW9udGhzWzFdICE9PSAxID8gImFkZCIgOiAicmVtb3ZlIikgKw0KCQkJIkNsYXNzIl0oInVpLWRhdGVwaWNrZXItbXVsdGkiKTsNCgkJaW5zdC5kcERpdlsodGhpcy5fZ2V0KGluc3QsICJpc1JUTCIpID8gImFkZCIgOiAicmVtb3ZlIikgKw0KCQkJIkNsYXNzIl0oInVpLWRhdGVwaWNrZXItcnRsIik7DQoNCgkJaWYgKGluc3QgPT09ICQuZGF0ZXBpY2tlci5fY3VySW5zdCAmJiAkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nICYmICQuZGF0ZXBpY2tlci5fc2hvdWxkRm9jdXNJbnB1dCggaW5zdCApICkgew0KCQkJaW5zdC5pbnB1dC5mb2N1cygpOw0KCQl9DQoNCgkJLy8gZGVmZmVyZWQgcmVuZGVyIG9mIHRoZSB5ZWFycyBzZWxlY3QgKHRvIGF2b2lkIGZsYXNoZXMgb24gRmlyZWZveCkNCgkJaWYoIGluc3QueWVhcnNodG1sICl7DQoJCQlvcmlneWVhcnNodG1sID0gaW5zdC55ZWFyc2h0bWw7DQoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQoJCQkJLy9hc3N1cmUgdGhhdCBpbnN0LnllYXJzaHRtbCBkaWRuJ3QgY2hhbmdlLg0KCQkJCWlmKCBvcmlneWVhcnNodG1sID09PSBpbnN0LnllYXJzaHRtbCAmJiBpbnN0LnllYXJzaHRtbCApew0KCQkJCQlpbnN0LmRwRGl2LmZpbmQoInNlbGVjdC51aS1kYXRlcGlja2VyLXllYXI6Zmlyc3QiKS5yZXBsYWNlV2l0aChpbnN0LnllYXJzaHRtbCk7DQoJCQkJfQ0KCQkJCW9yaWd5ZWFyc2h0bWwgPSBpbnN0LnllYXJzaHRtbCA9IG51bGw7DQoJCQl9LCAwKTsNCgkJfQ0KCX0sDQoNCgkvLyAjNjY5NCAtIGRvbid0IGZvY3VzIHRoZSBpbnB1dCBpZiBpdCdzIGFscmVhZHkgZm9jdXNlZA0KCS8vIHRoaXMgYnJlYWtzIHRoZSBjaGFuZ2UgZXZlbnQgaW4gSUUNCgkvLyBTdXBwb3J0OiBJRSBhbmQgalF1ZXJ5IDwxLjkNCglfc2hvdWxkRm9jdXNJbnB1dDogZnVuY3Rpb24oIGluc3QgKSB7DQoJCXJldHVybiBpbnN0LmlucHV0ICYmIGluc3QuaW5wdXQuaXMoICI6dmlzaWJsZSIgKSAmJiAhaW5zdC5pbnB1dC5pcyggIjpkaXNhYmxlZCIgKSAmJiAhaW5zdC5pbnB1dC5pcyggIjpmb2N1cyIgKTsNCgl9LA0KDQoJLyogQ2hlY2sgcG9zaXRpb25pbmcgdG8gcmVtYWluIG9uIHNjcmVlbi4gKi8NCglfY2hlY2tPZmZzZXQ6IGZ1bmN0aW9uKGluc3QsIG9mZnNldCwgaXNGaXhlZCkgew0KCQl2YXIgZHBXaWR0aCA9IGluc3QuZHBEaXYub3V0ZXJXaWR0aCgpLA0KCQkJZHBIZWlnaHQgPSBpbnN0LmRwRGl2Lm91dGVySGVpZ2h0KCksDQoJCQlpbnB1dFdpZHRoID0gaW5zdC5pbnB1dCA/IGluc3QuaW5wdXQub3V0ZXJXaWR0aCgpIDogMCwNCgkJCWlucHV0SGVpZ2h0ID0gaW5zdC5pbnB1dCA/IGluc3QuaW5wdXQub3V0ZXJIZWlnaHQoKSA6IDAsDQoJCQl2aWV3V2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggKyAoaXNGaXhlZCA/IDAgOiAkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkpLA0KCQkJdmlld0hlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgKyAoaXNGaXhlZCA/IDAgOiAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSk7DQoNCgkJb2Zmc2V0LmxlZnQgLT0gKHRoaXMuX2dldChpbnN0LCAiaXNSVEwiKSA/IChkcFdpZHRoIC0gaW5wdXRXaWR0aCkgOiAwKTsNCgkJb2Zmc2V0LmxlZnQgLT0gKGlzRml4ZWQgJiYgb2Zmc2V0LmxlZnQgPT09IGluc3QuaW5wdXQub2Zmc2V0KCkubGVmdCkgPyAkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkgOiAwOw0KCQlvZmZzZXQudG9wIC09IChpc0ZpeGVkICYmIG9mZnNldC50b3AgPT09IChpbnN0LmlucHV0Lm9mZnNldCgpLnRvcCArIGlucHV0SGVpZ2h0KSkgPyAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSA6IDA7DQoNCgkJLy8gbm93IGNoZWNrIGlmIGRhdGVwaWNrZXIgaXMgc2hvd2luZyBvdXRzaWRlIHdpbmRvdyB2aWV3cG9ydCAtIG1vdmUgdG8gYSBiZXR0ZXIgcGxhY2UgaWYgc28uDQoJCW9mZnNldC5sZWZ0IC09IE1hdGgubWluKG9mZnNldC5sZWZ0LCAob2Zmc2V0LmxlZnQgKyBkcFdpZHRoID4gdmlld1dpZHRoICYmIHZpZXdXaWR0aCA+IGRwV2lkdGgpID8NCgkJCU1hdGguYWJzKG9mZnNldC5sZWZ0ICsgZHBXaWR0aCAtIHZpZXdXaWR0aCkgOiAwKTsNCgkJb2Zmc2V0LnRvcCAtPSBNYXRoLm1pbihvZmZzZXQudG9wLCAob2Zmc2V0LnRvcCArIGRwSGVpZ2h0ID4gdmlld0hlaWdodCAmJiB2aWV3SGVpZ2h0ID4gZHBIZWlnaHQpID8NCgkJCU1hdGguYWJzKGRwSGVpZ2h0ICsgaW5wdXRIZWlnaHQpIDogMCk7DQoNCgkJcmV0dXJuIG9mZnNldDsNCgl9LA0KDQoJLyogRmluZCBhbiBvYmplY3QncyBwb3NpdGlvbiBvbiB0aGUgc2NyZWVuLiAqLw0KCV9maW5kUG9zOiBmdW5jdGlvbihvYmopIHsNCgkJdmFyIHBvc2l0aW9uLA0KCQkJaW5zdCA9IHRoaXMuX2dldEluc3Qob2JqKSwNCgkJCWlzUlRMID0gdGhpcy5fZ2V0KGluc3QsICJpc1JUTCIpOw0KDQoJCXdoaWxlIChvYmogJiYgKG9iai50eXBlID09PSAiaGlkZGVuIiB8fCBvYmoubm9kZVR5cGUgIT09IDEgfHwgJC5leHByLmZpbHRlcnMuaGlkZGVuKG9iaikpKSB7DQoJCQlvYmogPSBvYmpbaXNSVEwgPyAicHJldmlvdXNTaWJsaW5nIiA6ICJuZXh0U2libGluZyJdOw0KCQl9DQoNCgkJcG9zaXRpb24gPSAkKG9iaikub2Zmc2V0KCk7DQoJCXJldHVybiBbcG9zaXRpb24ubGVmdCwgcG9zaXRpb24udG9wXTsNCgl9LA0KDQoJLyogSGlkZSB0aGUgZGF0ZSBwaWNrZXIgZnJvbSB2aWV3Lg0KCSAqIEBwYXJhbSAgaW5wdXQgIGVsZW1lbnQgLSB0aGUgaW5wdXQgZmllbGQgYXR0YWNoZWQgdG8gdGhlIGRhdGUgcGlja2VyDQoJICovDQoJX2hpZGVEYXRlcGlja2VyOiBmdW5jdGlvbihpbnB1dCkgew0KCQl2YXIgc2hvd0FuaW0sIGR1cmF0aW9uLCBwb3N0UHJvY2Vzcywgb25DbG9zZSwNCgkJCWluc3QgPSB0aGlzLl9jdXJJbnN0Ow0KDQoJCWlmICghaW5zdCB8fCAoaW5wdXQgJiYgaW5zdCAhPT0gJC5kYXRhKGlucHV0LCAiZGF0ZXBpY2tlciIpKSkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKHRoaXMuX2RhdGVwaWNrZXJTaG93aW5nKSB7DQoJCQlzaG93QW5pbSA9IHRoaXMuX2dldChpbnN0LCAic2hvd0FuaW0iKTsNCgkJCWR1cmF0aW9uID0gdGhpcy5fZ2V0KGluc3QsICJkdXJhdGlvbiIpOw0KCQkJcG9zdFByb2Nlc3MgPSBmdW5jdGlvbigpIHsNCgkJCQkkLmRhdGVwaWNrZXIuX3RpZHlEaWFsb2coaW5zdCk7DQoJCQl9Ow0KDQoJCQkvLyBERVBSRUNBVEVEOiBhZnRlciBCQyBmb3IgMS44LnggJC5lZmZlY3RzWyBzaG93QW5pbSBdIGlzIG5vdCBuZWVkZWQNCgkJCWlmICggJC5lZmZlY3RzICYmICggJC5lZmZlY3RzLmVmZmVjdFsgc2hvd0FuaW0gXSB8fCAkLmVmZmVjdHNbIHNob3dBbmltIF0gKSApIHsNCgkJCQlpbnN0LmRwRGl2LmhpZGUoc2hvd0FuaW0sICQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJzaG93T3B0aW9ucyIpLCBkdXJhdGlvbiwgcG9zdFByb2Nlc3MpOw0KCQkJfSBlbHNlIHsNCgkJCQlpbnN0LmRwRGl2WyhzaG93QW5pbSA9PT0gInNsaWRlRG93biIgPyAic2xpZGVVcCIgOg0KCQkJCQkoc2hvd0FuaW0gPT09ICJmYWRlSW4iID8gImZhZGVPdXQiIDogImhpZGUiKSldKChzaG93QW5pbSA/IGR1cmF0aW9uIDogbnVsbCksIHBvc3RQcm9jZXNzKTsNCgkJCX0NCg0KCQkJaWYgKCFzaG93QW5pbSkgew0KCQkJCXBvc3RQcm9jZXNzKCk7DQoJCQl9DQoJCQl0aGlzLl9kYXRlcGlja2VyU2hvd2luZyA9IGZhbHNlOw0KDQoJCQlvbkNsb3NlID0gdGhpcy5fZ2V0KGluc3QsICJvbkNsb3NlIik7DQoJCQlpZiAob25DbG9zZSkgew0KCQkJCW9uQ2xvc2UuYXBwbHkoKGluc3QuaW5wdXQgPyBpbnN0LmlucHV0WzBdIDogbnVsbCksIFsoaW5zdC5pbnB1dCA/IGluc3QuaW5wdXQudmFsKCkgOiAiIiksIGluc3RdKTsNCgkJCX0NCg0KCQkJdGhpcy5fbGFzdElucHV0ID0gbnVsbDsNCgkJCWlmICh0aGlzLl9pbkRpYWxvZykgew0KCQkJCXRoaXMuX2RpYWxvZ0lucHV0LmNzcyh7IHBvc2l0aW9uOiAiYWJzb2x1dGUiLCBsZWZ0OiAiMCIsIHRvcDogIi0xMDBweCIgfSk7DQoJCQkJaWYgKCQuYmxvY2tVSSkgew0KCQkJCQkkLnVuYmxvY2tVSSgpOw0KCQkJCQkkKCJib2R5IikuYXBwZW5kKHRoaXMuZHBEaXYpOw0KCQkJCX0NCgkJCX0NCgkJCXRoaXMuX2luRGlhbG9nID0gZmFsc2U7DQoJCX0NCgl9LA0KDQoJLyogVGlkeSB1cCBhZnRlciBhIGRpYWxvZyBkaXNwbGF5LiAqLw0KCV90aWR5RGlhbG9nOiBmdW5jdGlvbihpbnN0KSB7DQoJCWluc3QuZHBEaXYucmVtb3ZlQ2xhc3ModGhpcy5fZGlhbG9nQ2xhc3MpLnVuYmluZCgiLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIiKTsNCgl9LA0KDQoJLyogQ2xvc2UgZGF0ZSBwaWNrZXIgaWYgY2xpY2tlZCBlbHNld2hlcmUuICovDQoJX2NoZWNrRXh0ZXJuYWxDbGljazogZnVuY3Rpb24oZXZlbnQpIHsNCgkJaWYgKCEkLmRhdGVwaWNrZXIuX2N1ckluc3QpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXZhciAkdGFyZ2V0ID0gJChldmVudC50YXJnZXQpLA0KCQkJaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdCgkdGFyZ2V0WzBdKTsNCg0KCQlpZiAoICggKCAkdGFyZ2V0WzBdLmlkICE9PSAkLmRhdGVwaWNrZXIuX21haW5EaXZJZCAmJg0KCQkJCSR0YXJnZXQucGFyZW50cygiIyIgKyAkLmRhdGVwaWNrZXIuX21haW5EaXZJZCkubGVuZ3RoID09PSAwICYmDQoJCQkJISR0YXJnZXQuaGFzQ2xhc3MoJC5kYXRlcGlja2VyLm1hcmtlckNsYXNzTmFtZSkgJiYNCgkJCQkhJHRhcmdldC5jbG9zZXN0KCIuIiArICQuZGF0ZXBpY2tlci5fdHJpZ2dlckNsYXNzKS5sZW5ndGggJiYNCgkJCQkkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nICYmICEoJC5kYXRlcGlja2VyLl9pbkRpYWxvZyAmJiAkLmJsb2NrVUkpICkgKSB8fA0KCQkJKCAkdGFyZ2V0Lmhhc0NsYXNzKCQuZGF0ZXBpY2tlci5tYXJrZXJDbGFzc05hbWUpICYmICQuZGF0ZXBpY2tlci5fY3VySW5zdCAhPT0gaW5zdCApICkgew0KCQkJCSQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTsNCgkJfQ0KCX0sDQoNCgkvKiBBZGp1c3Qgb25lIG9mIHRoZSBkYXRlIHN1Yi1maWVsZHMuICovDQoJX2FkanVzdERhdGU6IGZ1bmN0aW9uKGlkLCBvZmZzZXQsIHBlcmlvZCkgew0KCQl2YXIgdGFyZ2V0ID0gJChpZCksDQoJCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXRbMF0pOw0KDQoJCWlmICh0aGlzLl9pc0Rpc2FibGVkRGF0ZXBpY2tlcih0YXJnZXRbMF0pKSB7DQoJCQlyZXR1cm47DQoJCX0NCgkJdGhpcy5fYWRqdXN0SW5zdERhdGUoaW5zdCwgb2Zmc2V0ICsNCgkJCShwZXJpb2QgPT09ICJNIiA/IHRoaXMuX2dldChpbnN0LCAic2hvd0N1cnJlbnRBdFBvcyIpIDogMCksIC8vIHVuZG8gcG9zaXRpb25pbmcNCgkJCXBlcmlvZCk7DQoJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJfSwNCg0KCS8qIEFjdGlvbiBmb3IgY3VycmVudCBsaW5rLiAqLw0KCV9nb3RvVG9kYXk6IGZ1bmN0aW9uKGlkKSB7DQoJCXZhciBkYXRlLA0KCQkJdGFyZ2V0ID0gJChpZCksDQoJCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXRbMF0pOw0KDQoJCWlmICh0aGlzLl9nZXQoaW5zdCwgImdvdG9DdXJyZW50IikgJiYgaW5zdC5jdXJyZW50RGF5KSB7DQoJCQlpbnN0LnNlbGVjdGVkRGF5ID0gaW5zdC5jdXJyZW50RGF5Ow0KCQkJaW5zdC5kcmF3TW9udGggPSBpbnN0LnNlbGVjdGVkTW9udGggPSBpbnN0LmN1cnJlbnRNb250aDsNCgkJCWluc3QuZHJhd1llYXIgPSBpbnN0LnNlbGVjdGVkWWVhciA9IGluc3QuY3VycmVudFllYXI7DQoJCX0gZWxzZSB7DQoJCQlkYXRlID0gbmV3IERhdGUoKTsNCgkJCWluc3Quc2VsZWN0ZWREYXkgPSBkYXRlLmdldERhdGUoKTsNCgkJCWluc3QuZHJhd01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoID0gZGF0ZS5nZXRNb250aCgpOw0KCQkJaW5zdC5kcmF3WWVhciA9IGluc3Quc2VsZWN0ZWRZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOw0KCQl9DQoJCXRoaXMuX25vdGlmeUNoYW5nZShpbnN0KTsNCgkJdGhpcy5fYWRqdXN0RGF0ZSh0YXJnZXQpOw0KCX0sDQoNCgkvKiBBY3Rpb24gZm9yIHNlbGVjdGluZyBhIG5ldyBtb250aC95ZWFyLiAqLw0KCV9zZWxlY3RNb250aFllYXI6IGZ1bmN0aW9uKGlkLCBzZWxlY3QsIHBlcmlvZCkgew0KCQl2YXIgdGFyZ2V0ID0gJChpZCksDQoJCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXRbMF0pOw0KDQoJCWluc3RbInNlbGVjdGVkIiArIChwZXJpb2QgPT09ICJNIiA/ICJNb250aCIgOiAiWWVhciIpXSA9DQoJCWluc3RbImRyYXciICsgKHBlcmlvZCA9PT0gIk0iID8gIk1vbnRoIiA6ICJZZWFyIildID0NCgkJCXBhcnNlSW50KHNlbGVjdC5vcHRpb25zW3NlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZSwxMCk7DQoNCgkJdGhpcy5fbm90aWZ5Q2hhbmdlKGluc3QpOw0KCQl0aGlzLl9hZGp1c3REYXRlKHRhcmdldCk7DQoJfSwNCg0KCS8qIEFjdGlvbiBmb3Igc2VsZWN0aW5nIGEgZGF5LiAqLw0KCV9zZWxlY3REYXk6IGZ1bmN0aW9uKGlkLCBtb250aCwgeWVhciwgdGQpIHsNCgkJdmFyIGluc3QsDQoJCQl0YXJnZXQgPSAkKGlkKTsNCg0KCQlpZiAoJCh0ZCkuaGFzQ2xhc3ModGhpcy5fdW5zZWxlY3RhYmxlQ2xhc3MpIHx8IHRoaXMuX2lzRGlzYWJsZWREYXRlcGlja2VyKHRhcmdldFswXSkpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldFswXSk7DQoJCWluc3Quc2VsZWN0ZWREYXkgPSBpbnN0LmN1cnJlbnREYXkgPSAkKCJhIiwgdGQpLmh0bWwoKTsNCgkJaW5zdC5zZWxlY3RlZE1vbnRoID0gaW5zdC5jdXJyZW50TW9udGggPSBtb250aDsNCgkJaW5zdC5zZWxlY3RlZFllYXIgPSBpbnN0LmN1cnJlbnRZZWFyID0geWVhcjsNCgkJdGhpcy5fc2VsZWN0RGF0ZShpZCwgdGhpcy5fZm9ybWF0RGF0ZShpbnN0LA0KCQkJaW5zdC5jdXJyZW50RGF5LCBpbnN0LmN1cnJlbnRNb250aCwgaW5zdC5jdXJyZW50WWVhcikpOw0KCX0sDQoNCgkvKiBFcmFzZSB0aGUgaW5wdXQgZmllbGQgYW5kIGhpZGUgdGhlIGRhdGUgcGlja2VyLiAqLw0KCV9jbGVhckRhdGU6IGZ1bmN0aW9uKGlkKSB7DQoJCXZhciB0YXJnZXQgPSAkKGlkKTsNCgkJdGhpcy5fc2VsZWN0RGF0ZSh0YXJnZXQsICIiKTsNCgl9LA0KDQoJLyogVXBkYXRlIHRoZSBpbnB1dCBmaWVsZCB3aXRoIHRoZSBzZWxlY3RlZCBkYXRlLiAqLw0KCV9zZWxlY3REYXRlOiBmdW5jdGlvbihpZCwgZGF0ZVN0cikgew0KCQl2YXIgb25TZWxlY3QsDQoJCQl0YXJnZXQgPSAkKGlkKSwNCgkJCWluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldFswXSk7DQoNCgkJZGF0ZVN0ciA9IChkYXRlU3RyICE9IG51bGwgPyBkYXRlU3RyIDogdGhpcy5fZm9ybWF0RGF0ZShpbnN0KSk7DQoJCWlmIChpbnN0LmlucHV0KSB7DQoJCQlpbnN0LmlucHV0LnZhbChkYXRlU3RyKTsNCgkJfQ0KCQl0aGlzLl91cGRhdGVBbHRlcm5hdGUoaW5zdCk7DQoNCgkJb25TZWxlY3QgPSB0aGlzLl9nZXQoaW5zdCwgIm9uU2VsZWN0Iik7DQoJCWlmIChvblNlbGVjdCkgew0KCQkJb25TZWxlY3QuYXBwbHkoKGluc3QuaW5wdXQgPyBpbnN0LmlucHV0WzBdIDogbnVsbCksIFtkYXRlU3RyLCBpbnN0XSk7ICAvLyB0cmlnZ2VyIGN1c3RvbSBjYWxsYmFjaw0KCQl9IGVsc2UgaWYgKGluc3QuaW5wdXQpIHsNCgkJCWluc3QuaW5wdXQudHJpZ2dlcigiY2hhbmdlIik7IC8vIGZpcmUgdGhlIGNoYW5nZSBldmVudA0KCQl9DQoNCgkJaWYgKGluc3QuaW5saW5lKXsNCgkJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLl9oaWRlRGF0ZXBpY2tlcigpOw0KCQkJdGhpcy5fbGFzdElucHV0ID0gaW5zdC5pbnB1dFswXTsNCgkJCWlmICh0eXBlb2YoaW5zdC5pbnB1dFswXSkgIT09ICJvYmplY3QiKSB7DQoJCQkJaW5zdC5pbnB1dC5mb2N1cygpOyAvLyByZXN0b3JlIGZvY3VzDQoJCQl9DQoJCQl0aGlzLl9sYXN0SW5wdXQgPSBudWxsOw0KCQl9DQoJfSwNCg0KCS8qIFVwZGF0ZSBhbnkgYWx0ZXJuYXRlIGZpZWxkIHRvIHN5bmNocm9uaXNlIHdpdGggdGhlIG1haW4gZmllbGQuICovDQoJX3VwZGF0ZUFsdGVybmF0ZTogZnVuY3Rpb24oaW5zdCkgew0KCQl2YXIgYWx0Rm9ybWF0LCBkYXRlLCBkYXRlU3RyLA0KCQkJYWx0RmllbGQgPSB0aGlzLl9nZXQoaW5zdCwgImFsdEZpZWxkIik7DQoNCgkJaWYgKGFsdEZpZWxkKSB7IC8vIHVwZGF0ZSBhbHRlcm5hdGUgZmllbGQgdG9vDQoJCQlhbHRGb3JtYXQgPSB0aGlzLl9nZXQoaW5zdCwgImFsdEZvcm1hdCIpIHx8IHRoaXMuX2dldChpbnN0LCAiZGF0ZUZvcm1hdCIpOw0KCQkJZGF0ZSA9IHRoaXMuX2dldERhdGUoaW5zdCk7DQoJCQlkYXRlU3RyID0gdGhpcy5mb3JtYXREYXRlKGFsdEZvcm1hdCwgZGF0ZSwgdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKGluc3QpKTsNCgkJCSQoYWx0RmllbGQpLmVhY2goZnVuY3Rpb24oKSB7ICQodGhpcykudmFsKGRhdGVTdHIpOyB9KTsNCgkJfQ0KCX0sDQoNCgkvKiBTZXQgYXMgYmVmb3JlU2hvd0RheSBmdW5jdGlvbiB0byBwcmV2ZW50IHNlbGVjdGlvbiBvZiB3ZWVrZW5kcy4NCgkgKiBAcGFyYW0gIGRhdGUgIERhdGUgLSB0aGUgZGF0ZSB0byBjdXN0b21pc2UNCgkgKiBAcmV0dXJuIFtib29sZWFuLCBzdHJpbmddIC0gaXMgdGhpcyBkYXRlIHNlbGVjdGFibGU/LCB3aGF0IGlzIGl0cyBDU1MgY2xhc3M/DQoJICovDQoJbm9XZWVrZW5kczogZnVuY3Rpb24oZGF0ZSkgew0KCQl2YXIgZGF5ID0gZGF0ZS5nZXREYXkoKTsNCgkJcmV0dXJuIFsoZGF5ID4gMCAmJiBkYXkgPCA2KSwgIiJdOw0KCX0sDQoNCgkvKiBTZXQgYXMgY2FsY3VsYXRlV2VlayB0byBkZXRlcm1pbmUgdGhlIHdlZWsgb2YgdGhlIHllYXIgYmFzZWQgb24gdGhlIElTTyA4NjAxIGRlZmluaXRpb24uDQoJICogQHBhcmFtICBkYXRlICBEYXRlIC0gdGhlIGRhdGUgdG8gZ2V0IHRoZSB3ZWVrIGZvcg0KCSAqIEByZXR1cm4gIG51bWJlciAtIHRoZSBudW1iZXIgb2YgdGhlIHdlZWsgd2l0aGluIHRoZSB5ZWFyIHRoYXQgY29udGFpbnMgdGhpcyBkYXRlDQoJICovDQoJaXNvODYwMVdlZWs6IGZ1bmN0aW9uKGRhdGUpIHsNCgkJdmFyIHRpbWUsDQoJCQljaGVja0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7DQoNCgkJLy8gRmluZCBUaHVyc2RheSBvZiB0aGlzIHdlZWsgc3RhcnRpbmcgb24gTW9uZGF5DQoJCWNoZWNrRGF0ZS5zZXREYXRlKGNoZWNrRGF0ZS5nZXREYXRlKCkgKyA0IC0gKGNoZWNrRGF0ZS5nZXREYXkoKSB8fCA3KSk7DQoNCgkJdGltZSA9IGNoZWNrRGF0ZS5nZXRUaW1lKCk7DQoJCWNoZWNrRGF0ZS5zZXRNb250aCgwKTsgLy8gQ29tcGFyZSB3aXRoIEphbiAxDQoJCWNoZWNrRGF0ZS5zZXREYXRlKDEpOw0KCQlyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJvdW5kKCh0aW1lIC0gY2hlY2tEYXRlKSAvIDg2NDAwMDAwKSAvIDcpICsgMTsNCgl9LA0KDQoJLyogUGFyc2UgYSBzdHJpbmcgdmFsdWUgaW50byBhIGRhdGUgb2JqZWN0Lg0KCSAqIFNlZSBmb3JtYXREYXRlIGJlbG93IGZvciB0aGUgcG9zc2libGUgZm9ybWF0cy4NCgkgKg0KCSAqIEBwYXJhbSAgZm9ybWF0IHN0cmluZyAtIHRoZSBleHBlY3RlZCBmb3JtYXQgb2YgdGhlIGRhdGUNCgkgKiBAcGFyYW0gIHZhbHVlIHN0cmluZyAtIHRoZSBkYXRlIGluIHRoZSBhYm92ZSBmb3JtYXQNCgkgKiBAcGFyYW0gIHNldHRpbmdzIE9iamVjdCAtIGF0dHJpYnV0ZXMgaW5jbHVkZToNCgkgKgkJCQkJc2hvcnRZZWFyQ3V0b2ZmICBudW1iZXIgLSB0aGUgY3V0b2ZmIHllYXIgZm9yIGRldGVybWluaW5nIHRoZSBjZW50dXJ5IChvcHRpb25hbCkNCgkgKgkJCQkJZGF5TmFtZXNTaG9ydAlzdHJpbmdbN10gLSBhYmJyZXZpYXRlZCBuYW1lcyBvZiB0aGUgZGF5cyBmcm9tIFN1bmRheSAob3B0aW9uYWwpDQoJICoJCQkJCWRheU5hbWVzCQlzdHJpbmdbN10gLSBuYW1lcyBvZiB0aGUgZGF5cyBmcm9tIFN1bmRheSAob3B0aW9uYWwpDQoJICoJCQkJCW1vbnRoTmFtZXNTaG9ydCBzdHJpbmdbMTJdIC0gYWJicmV2aWF0ZWQgbmFtZXMgb2YgdGhlIG1vbnRocyAob3B0aW9uYWwpDQoJICoJCQkJCW1vbnRoTmFtZXMJCXN0cmluZ1sxMl0gLSBuYW1lcyBvZiB0aGUgbW9udGhzIChvcHRpb25hbCkNCgkgKiBAcmV0dXJuICBEYXRlIC0gdGhlIGV4dHJhY3RlZCBkYXRlIHZhbHVlIG9yIG51bGwgaWYgdmFsdWUgaXMgYmxhbmsNCgkgKi8NCglwYXJzZURhdGU6IGZ1bmN0aW9uIChmb3JtYXQsIHZhbHVlLCBzZXR0aW5ncykgew0KCQlpZiAoZm9ybWF0ID09IG51bGwgfHwgdmFsdWUgPT0gbnVsbCkgew0KCQkJdGhyb3cgIkludmFsaWQgYXJndW1lbnRzIjsNCgkJfQ0KDQoJCXZhbHVlID0gKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgPyB2YWx1ZS50b1N0cmluZygpIDogdmFsdWUgKyAiIik7DQoJCWlmICh2YWx1ZSA9PT0gIiIpIHsNCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJdmFyIGlGb3JtYXQsIGRpbSwgZXh0cmEsDQoJCQlpVmFsdWUgPSAwLA0KCQkJc2hvcnRZZWFyQ3V0b2ZmVGVtcCA9IChzZXR0aW5ncyA/IHNldHRpbmdzLnNob3J0WWVhckN1dG9mZiA6IG51bGwpIHx8IHRoaXMuX2RlZmF1bHRzLnNob3J0WWVhckN1dG9mZiwNCgkJCXNob3J0WWVhckN1dG9mZiA9ICh0eXBlb2Ygc2hvcnRZZWFyQ3V0b2ZmVGVtcCAhPT0gInN0cmluZyIgPyBzaG9ydFllYXJDdXRvZmZUZW1wIDoNCgkJCQluZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgJSAxMDAgKyBwYXJzZUludChzaG9ydFllYXJDdXRvZmZUZW1wLCAxMCkpLA0KCQkJZGF5TmFtZXNTaG9ydCA9IChzZXR0aW5ncyA/IHNldHRpbmdzLmRheU5hbWVzU2hvcnQgOiBudWxsKSB8fCB0aGlzLl9kZWZhdWx0cy5kYXlOYW1lc1Nob3J0LA0KCQkJZGF5TmFtZXMgPSAoc2V0dGluZ3MgPyBzZXR0aW5ncy5kYXlOYW1lcyA6IG51bGwpIHx8IHRoaXMuX2RlZmF1bHRzLmRheU5hbWVzLA0KCQkJbW9udGhOYW1lc1Nob3J0ID0gKHNldHRpbmdzID8gc2V0dGluZ3MubW9udGhOYW1lc1Nob3J0IDogbnVsbCkgfHwgdGhpcy5fZGVmYXVsdHMubW9udGhOYW1lc1Nob3J0LA0KCQkJbW9udGhOYW1lcyA9IChzZXR0aW5ncyA/IHNldHRpbmdzLm1vbnRoTmFtZXMgOiBudWxsKSB8fCB0aGlzLl9kZWZhdWx0cy5tb250aE5hbWVzLA0KCQkJeWVhciA9IC0xLA0KCQkJbW9udGggPSAtMSwNCgkJCWRheSA9IC0xLA0KCQkJZG95ID0gLTEsDQoJCQlsaXRlcmFsID0gZmFsc2UsDQoJCQlkYXRlLA0KCQkJLy8gQ2hlY2sgd2hldGhlciBhIGZvcm1hdCBjaGFyYWN0ZXIgaXMgZG91YmxlZA0KCQkJbG9va0FoZWFkID0gZnVuY3Rpb24obWF0Y2gpIHsNCgkJCQl2YXIgbWF0Y2hlcyA9IChpRm9ybWF0ICsgMSA8IGZvcm1hdC5sZW5ndGggJiYgZm9ybWF0LmNoYXJBdChpRm9ybWF0ICsgMSkgPT09IG1hdGNoKTsNCgkJCQlpZiAobWF0Y2hlcykgew0KCQkJCQlpRm9ybWF0Kys7DQoJCQkJfQ0KCQkJCXJldHVybiBtYXRjaGVzOw0KCQkJfSwNCgkJCS8vIEV4dHJhY3QgYSBudW1iZXIgZnJvbSB0aGUgc3RyaW5nIHZhbHVlDQoJCQlnZXROdW1iZXIgPSBmdW5jdGlvbihtYXRjaCkgew0KCQkJCXZhciBpc0RvdWJsZWQgPSBsb29rQWhlYWQobWF0Y2gpLA0KCQkJCQlzaXplID0gKG1hdGNoID09PSAiQCIgPyAxNCA6IChtYXRjaCA9PT0gIiEiID8gMjAgOg0KCQkJCQkobWF0Y2ggPT09ICJ5IiAmJiBpc0RvdWJsZWQgPyA0IDogKG1hdGNoID09PSAibyIgPyAzIDogMikpKSksDQoJCQkJCW1pblNpemUgPSAobWF0Y2ggPT09ICJ5IiA/IHNpemUgOiAxKSwNCgkJCQkJZGlnaXRzID0gbmV3IFJlZ0V4cCgiXlxcZHsiICsgbWluU2l6ZSArICIsIiArIHNpemUgKyAifSIpLA0KCQkJCQludW0gPSB2YWx1ZS5zdWJzdHJpbmcoaVZhbHVlKS5tYXRjaChkaWdpdHMpOw0KCQkJCWlmICghbnVtKSB7DQoJCQkJCXRocm93ICJNaXNzaW5nIG51bWJlciBhdCBwb3NpdGlvbiAiICsgaVZhbHVlOw0KCQkJCX0NCgkJCQlpVmFsdWUgKz0gbnVtWzBdLmxlbmd0aDsNCgkJCQlyZXR1cm4gcGFyc2VJbnQobnVtWzBdLCAxMCk7DQoJCQl9LA0KCQkJLy8gRXh0cmFjdCBhIG5hbWUgZnJvbSB0aGUgc3RyaW5nIHZhbHVlIGFuZCBjb252ZXJ0IHRvIGFuIGluZGV4DQoJCQlnZXROYW1lID0gZnVuY3Rpb24obWF0Y2gsIHNob3J0TmFtZXMsIGxvbmdOYW1lcykgew0KCQkJCXZhciBpbmRleCA9IC0xLA0KCQkJCQluYW1lcyA9ICQubWFwKGxvb2tBaGVhZChtYXRjaCkgPyBsb25nTmFtZXMgOiBzaG9ydE5hbWVzLCBmdW5jdGlvbiAodiwgaykgew0KCQkJCQkJcmV0dXJuIFsgW2ssIHZdIF07DQoJCQkJCX0pLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsNCgkJCQkJCXJldHVybiAtKGFbMV0ubGVuZ3RoIC0gYlsxXS5sZW5ndGgpOw0KCQkJCQl9KTsNCg0KCQkJCSQuZWFjaChuYW1lcywgZnVuY3Rpb24gKGksIHBhaXIpIHsNCgkJCQkJdmFyIG5hbWUgPSBwYWlyWzFdOw0KCQkJCQlpZiAodmFsdWUuc3Vic3RyKGlWYWx1ZSwgbmFtZS5sZW5ndGgpLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUudG9Mb3dlckNhc2UoKSkgew0KCQkJCQkJaW5kZXggPSBwYWlyWzBdOw0KCQkJCQkJaVZhbHVlICs9IG5hbWUubGVuZ3RoOw0KCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQkJaWYgKGluZGV4ICE9PSAtMSkgew0KCQkJCQlyZXR1cm4gaW5kZXggKyAxOw0KCQkJCX0gZWxzZSB7DQoJCQkJCXRocm93ICJVbmtub3duIG5hbWUgYXQgcG9zaXRpb24gIiArIGlWYWx1ZTsNCgkJCQl9DQoJCQl9LA0KCQkJLy8gQ29uZmlybSB0aGF0IGEgbGl0ZXJhbCBjaGFyYWN0ZXIgbWF0Y2hlcyB0aGUgc3RyaW5nIHZhbHVlDQoJCQljaGVja0xpdGVyYWwgPSBmdW5jdGlvbigpIHsNCgkJCQlpZiAodmFsdWUuY2hhckF0KGlWYWx1ZSkgIT09IGZvcm1hdC5jaGFyQXQoaUZvcm1hdCkpIHsNCgkJCQkJdGhyb3cgIlVuZXhwZWN0ZWQgbGl0ZXJhbCBhdCBwb3NpdGlvbiAiICsgaVZhbHVlOw0KCQkJCX0NCgkJCQlpVmFsdWUrKzsNCgkJCX07DQoNCgkJZm9yIChpRm9ybWF0ID0gMDsgaUZvcm1hdCA8IGZvcm1hdC5sZW5ndGg7IGlGb3JtYXQrKykgew0KCQkJaWYgKGxpdGVyYWwpIHsNCgkJCQlpZiAoZm9ybWF0LmNoYXJBdChpRm9ybWF0KSA9PT0gIiciICYmICFsb29rQWhlYWQoIiciKSkgew0KCQkJCQlsaXRlcmFsID0gZmFsc2U7DQoJCQkJfSBlbHNlIHsNCgkJCQkJY2hlY2tMaXRlcmFsKCk7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQlzd2l0Y2ggKGZvcm1hdC5jaGFyQXQoaUZvcm1hdCkpIHsNCgkJCQkJY2FzZSAiZCI6DQoJCQkJCQlkYXkgPSBnZXROdW1iZXIoImQiKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJEIjoNCgkJCQkJCWdldE5hbWUoIkQiLCBkYXlOYW1lc1Nob3J0LCBkYXlOYW1lcyk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAibyI6DQoJCQkJCQlkb3kgPSBnZXROdW1iZXIoIm8iKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJtIjoNCgkJCQkJCW1vbnRoID0gZ2V0TnVtYmVyKCJtIik7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiTSI6DQoJCQkJCQltb250aCA9IGdldE5hbWUoIk0iLCBtb250aE5hbWVzU2hvcnQsIG1vbnRoTmFtZXMpOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgInkiOg0KCQkJCQkJeWVhciA9IGdldE51bWJlcigieSIpOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgIkAiOg0KCQkJCQkJZGF0ZSA9IG5ldyBEYXRlKGdldE51bWJlcigiQCIpKTsNCgkJCQkJCXllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7DQoJCQkJCQltb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7DQoJCQkJCQlkYXkgPSBkYXRlLmdldERhdGUoKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICIhIjoNCgkJCQkJCWRhdGUgPSBuZXcgRGF0ZSgoZ2V0TnVtYmVyKCIhIikgLSB0aGlzLl90aWNrc1RvMTk3MCkgLyAxMDAwMCk7DQoJCQkJCQl5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOw0KCQkJCQkJbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxOw0KCQkJCQkJZGF5ID0gZGF0ZS5nZXREYXRlKCk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiJyI6DQoJCQkJCQlpZiAobG9va0FoZWFkKCInIikpew0KCQkJCQkJCWNoZWNrTGl0ZXJhbCgpOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQlsaXRlcmFsID0gdHJ1ZTsNCgkJCQkJCX0NCgkJCQkJCWJyZWFrOw0KCQkJCQlkZWZhdWx0Og0KCQkJCQkJY2hlY2tMaXRlcmFsKCk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJaWYgKGlWYWx1ZSA8IHZhbHVlLmxlbmd0aCl7DQoJCQlleHRyYSA9IHZhbHVlLnN1YnN0cihpVmFsdWUpOw0KCQkJaWYgKCEvXlxzKy8udGVzdChleHRyYSkpIHsNCgkJCQl0aHJvdyAiRXh0cmEvdW5wYXJzZWQgY2hhcmFjdGVycyBmb3VuZCBpbiBkYXRlOiAiICsgZXh0cmE7DQoJCQl9DQoJCX0NCg0KCQlpZiAoeWVhciA9PT0gLTEpIHsNCgkJCXllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7DQoJCX0gZWxzZSBpZiAoeWVhciA8IDEwMCkgew0KCQkJeWVhciArPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgJSAxMDAgKw0KCQkJCSh5ZWFyIDw9IHNob3J0WWVhckN1dG9mZiA/IDAgOiAtMTAwKTsNCgkJfQ0KDQoJCWlmIChkb3kgPiAtMSkgew0KCQkJbW9udGggPSAxOw0KCQkJZGF5ID0gZG95Ow0KCQkJZG8gew0KCQkJCWRpbSA9IHRoaXMuX2dldERheXNJbk1vbnRoKHllYXIsIG1vbnRoIC0gMSk7DQoJCQkJaWYgKGRheSA8PSBkaW0pIHsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJCW1vbnRoKys7DQoJCQkJZGF5IC09IGRpbTsNCgkJCX0gd2hpbGUgKHRydWUpOw0KCQl9DQoNCgkJZGF0ZSA9IHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KSk7DQoJCWlmIChkYXRlLmdldEZ1bGxZZWFyKCkgIT09IHllYXIgfHwgZGF0ZS5nZXRNb250aCgpICsgMSAhPT0gbW9udGggfHwgZGF0ZS5nZXREYXRlKCkgIT09IGRheSkgew0KCQkJdGhyb3cgIkludmFsaWQgZGF0ZSI7IC8vIEUuZy4gMzEvMDIvMDANCgkJfQ0KCQlyZXR1cm4gZGF0ZTsNCgl9LA0KDQoJLyogU3RhbmRhcmQgZGF0ZSBmb3JtYXRzLiAqLw0KCUFUT006ICJ5eS1tbS1kZCIsIC8vIFJGQyAzMzM5IChJU08gODYwMSkNCglDT09LSUU6ICJELCBkZCBNIHl5IiwNCglJU09fODYwMTogInl5LW1tLWRkIiwNCglSRkNfODIyOiAiRCwgZCBNIHkiLA0KCVJGQ184NTA6ICJERCwgZGQtTS15IiwNCglSRkNfMTAzNjogIkQsIGQgTSB5IiwNCglSRkNfMTEyMzogIkQsIGQgTSB5eSIsDQoJUkZDXzI4MjI6ICJELCBkIE0geXkiLA0KCVJTUzogIkQsIGQgTSB5IiwgLy8gUkZDIDgyMg0KCVRJQ0tTOiAiISIsDQoJVElNRVNUQU1QOiAiQCIsDQoJVzNDOiAieXktbW0tZGQiLCAvLyBJU08gODYwMQ0KDQoJX3RpY2tzVG8xOTcwOiAoKCgxOTcwIC0gMSkgKiAzNjUgKyBNYXRoLmZsb29yKDE5NzAgLyA0KSAtIE1hdGguZmxvb3IoMTk3MCAvIDEwMCkgKw0KCQlNYXRoLmZsb29yKDE5NzAgLyA0MDApKSAqIDI0ICogNjAgKiA2MCAqIDEwMDAwMDAwKSwNCg0KCS8qIEZvcm1hdCBhIGRhdGUgb2JqZWN0IGludG8gYSBzdHJpbmcgdmFsdWUuDQoJICogVGhlIGZvcm1hdCBjYW4gYmUgY29tYmluYXRpb25zIG9mIHRoZSBmb2xsb3dpbmc6DQoJICogZCAgLSBkYXkgb2YgbW9udGggKG5vIGxlYWRpbmcgemVybykNCgkgKiBkZCAtIGRheSBvZiBtb250aCAodHdvIGRpZ2l0KQ0KCSAqIG8gIC0gZGF5IG9mIHllYXIgKG5vIGxlYWRpbmcgemVyb3MpDQoJICogb28gLSBkYXkgb2YgeWVhciAodGhyZWUgZGlnaXQpDQoJICogRCAgLSBkYXkgbmFtZSBzaG9ydA0KCSAqIEREIC0gZGF5IG5hbWUgbG9uZw0KCSAqIG0gIC0gbW9udGggb2YgeWVhciAobm8gbGVhZGluZyB6ZXJvKQ0KCSAqIG1tIC0gbW9udGggb2YgeWVhciAodHdvIGRpZ2l0KQ0KCSAqIE0gIC0gbW9udGggbmFtZSBzaG9ydA0KCSAqIE1NIC0gbW9udGggbmFtZSBsb25nDQoJICogeSAgLSB5ZWFyICh0d28gZGlnaXQpDQoJICogeXkgLSB5ZWFyIChmb3VyIGRpZ2l0KQ0KCSAqIEAgLSBVbml4IHRpbWVzdGFtcCAobXMgc2luY2UgMDEvMDEvMTk3MCkNCgkgKiAhIC0gV2luZG93cyB0aWNrcyAoMTAwbnMgc2luY2UgMDEvMDEvMDAwMSkNCgkgKiAiLi4uIiAtIGxpdGVyYWwgdGV4dA0KCSAqICcnIC0gc2luZ2xlIHF1b3RlDQoJICoNCgkgKiBAcGFyYW0gIGZvcm1hdCBzdHJpbmcgLSB0aGUgZGVzaXJlZCBmb3JtYXQgb2YgdGhlIGRhdGUNCgkgKiBAcGFyYW0gIGRhdGUgRGF0ZSAtIHRoZSBkYXRlIHZhbHVlIHRvIGZvcm1hdA0KCSAqIEBwYXJhbSAgc2V0dGluZ3MgT2JqZWN0IC0gYXR0cmlidXRlcyBpbmNsdWRlOg0KCSAqCQkJCQlkYXlOYW1lc1Nob3J0CXN0cmluZ1s3XSAtIGFiYnJldmlhdGVkIG5hbWVzIG9mIHRoZSBkYXlzIGZyb20gU3VuZGF5IChvcHRpb25hbCkNCgkgKgkJCQkJZGF5TmFtZXMJCXN0cmluZ1s3XSAtIG5hbWVzIG9mIHRoZSBkYXlzIGZyb20gU3VuZGF5IChvcHRpb25hbCkNCgkgKgkJCQkJbW9udGhOYW1lc1Nob3J0IHN0cmluZ1sxMl0gLSBhYmJyZXZpYXRlZCBuYW1lcyBvZiB0aGUgbW9udGhzIChvcHRpb25hbCkNCgkgKgkJCQkJbW9udGhOYW1lcwkJc3RyaW5nWzEyXSAtIG5hbWVzIG9mIHRoZSBtb250aHMgKG9wdGlvbmFsKQ0KCSAqIEByZXR1cm4gIHN0cmluZyAtIHRoZSBkYXRlIGluIHRoZSBhYm92ZSBmb3JtYXQNCgkgKi8NCglmb3JtYXREYXRlOiBmdW5jdGlvbiAoZm9ybWF0LCBkYXRlLCBzZXR0aW5ncykgew0KCQlpZiAoIWRhdGUpIHsNCgkJCXJldHVybiAiIjsNCgkJfQ0KDQoJCXZhciBpRm9ybWF0LA0KCQkJZGF5TmFtZXNTaG9ydCA9IChzZXR0aW5ncyA/IHNldHRpbmdzLmRheU5hbWVzU2hvcnQgOiBudWxsKSB8fCB0aGlzLl9kZWZhdWx0cy5kYXlOYW1lc1Nob3J0LA0KCQkJZGF5TmFtZXMgPSAoc2V0dGluZ3MgPyBzZXR0aW5ncy5kYXlOYW1lcyA6IG51bGwpIHx8IHRoaXMuX2RlZmF1bHRzLmRheU5hbWVzLA0KCQkJbW9udGhOYW1lc1Nob3J0ID0gKHNldHRpbmdzID8gc2V0dGluZ3MubW9udGhOYW1lc1Nob3J0IDogbnVsbCkgfHwgdGhpcy5fZGVmYXVsdHMubW9udGhOYW1lc1Nob3J0LA0KCQkJbW9udGhOYW1lcyA9IChzZXR0aW5ncyA/IHNldHRpbmdzLm1vbnRoTmFtZXMgOiBudWxsKSB8fCB0aGlzLl9kZWZhdWx0cy5tb250aE5hbWVzLA0KCQkJLy8gQ2hlY2sgd2hldGhlciBhIGZvcm1hdCBjaGFyYWN0ZXIgaXMgZG91YmxlZA0KCQkJbG9va0FoZWFkID0gZnVuY3Rpb24obWF0Y2gpIHsNCgkJCQl2YXIgbWF0Y2hlcyA9IChpRm9ybWF0ICsgMSA8IGZvcm1hdC5sZW5ndGggJiYgZm9ybWF0LmNoYXJBdChpRm9ybWF0ICsgMSkgPT09IG1hdGNoKTsNCgkJCQlpZiAobWF0Y2hlcykgew0KCQkJCQlpRm9ybWF0Kys7DQoJCQkJfQ0KCQkJCXJldHVybiBtYXRjaGVzOw0KCQkJfSwNCgkJCS8vIEZvcm1hdCBhIG51bWJlciwgd2l0aCBsZWFkaW5nIHplcm8gaWYgbmVjZXNzYXJ5DQoJCQlmb3JtYXROdW1iZXIgPSBmdW5jdGlvbihtYXRjaCwgdmFsdWUsIGxlbikgew0KCQkJCXZhciBudW0gPSAiIiArIHZhbHVlOw0KCQkJCWlmIChsb29rQWhlYWQobWF0Y2gpKSB7DQoJCQkJCXdoaWxlIChudW0ubGVuZ3RoIDwgbGVuKSB7DQoJCQkJCQludW0gPSAiMCIgKyBudW07DQoJCQkJCX0NCgkJCQl9DQoJCQkJcmV0dXJuIG51bTsNCgkJCX0sDQoJCQkvLyBGb3JtYXQgYSBuYW1lLCBzaG9ydCBvciBsb25nIGFzIHJlcXVlc3RlZA0KCQkJZm9ybWF0TmFtZSA9IGZ1bmN0aW9uKG1hdGNoLCB2YWx1ZSwgc2hvcnROYW1lcywgbG9uZ05hbWVzKSB7DQoJCQkJcmV0dXJuIChsb29rQWhlYWQobWF0Y2gpID8gbG9uZ05hbWVzW3ZhbHVlXSA6IHNob3J0TmFtZXNbdmFsdWVdKTsNCgkJCX0sDQoJCQlvdXRwdXQgPSAiIiwNCgkJCWxpdGVyYWwgPSBmYWxzZTsNCg0KCQlpZiAoZGF0ZSkgew0KCQkJZm9yIChpRm9ybWF0ID0gMDsgaUZvcm1hdCA8IGZvcm1hdC5sZW5ndGg7IGlGb3JtYXQrKykgew0KCQkJCWlmIChsaXRlcmFsKSB7DQoJCQkJCWlmIChmb3JtYXQuY2hhckF0KGlGb3JtYXQpID09PSAiJyIgJiYgIWxvb2tBaGVhZCgiJyIpKSB7DQoJCQkJCQlsaXRlcmFsID0gZmFsc2U7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlvdXRwdXQgKz0gZm9ybWF0LmNoYXJBdChpRm9ybWF0KTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSB7DQoJCQkJCXN3aXRjaCAoZm9ybWF0LmNoYXJBdChpRm9ybWF0KSkgew0KCQkJCQkJY2FzZSAiZCI6DQoJCQkJCQkJb3V0cHV0ICs9IGZvcm1hdE51bWJlcigiZCIsIGRhdGUuZ2V0RGF0ZSgpLCAyKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIkQiOg0KCQkJCQkJCW91dHB1dCArPSBmb3JtYXROYW1lKCJEIiwgZGF0ZS5nZXREYXkoKSwgZGF5TmFtZXNTaG9ydCwgZGF5TmFtZXMpOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJY2FzZSAibyI6DQoJCQkJCQkJb3V0cHV0ICs9IGZvcm1hdE51bWJlcigibyIsDQoJCQkJCQkJCU1hdGgucm91bmQoKG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSkuZ2V0VGltZSgpIC0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAwKS5nZXRUaW1lKCkpIC8gODY0MDAwMDApLCAzKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIm0iOg0KCQkJCQkJCW91dHB1dCArPSBmb3JtYXROdW1iZXIoIm0iLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAyKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIk0iOg0KCQkJCQkJCW91dHB1dCArPSBmb3JtYXROYW1lKCJNIiwgZGF0ZS5nZXRNb250aCgpLCBtb250aE5hbWVzU2hvcnQsIG1vbnRoTmFtZXMpOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJY2FzZSAieSI6DQoJCQkJCQkJb3V0cHV0ICs9IChsb29rQWhlYWQoInkiKSA/IGRhdGUuZ2V0RnVsbFllYXIoKSA6DQoJCQkJCQkJCShkYXRlLmdldFllYXIoKSAlIDEwMCA8IDEwID8gIjAiIDogIiIpICsgZGF0ZS5nZXRZZWFyKCkgJSAxMDApOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJY2FzZSAiQCI6DQoJCQkJCQkJb3V0cHV0ICs9IGRhdGUuZ2V0VGltZSgpOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJY2FzZSAiISI6DQoJCQkJCQkJb3V0cHV0ICs9IGRhdGUuZ2V0VGltZSgpICogMTAwMDAgKyB0aGlzLl90aWNrc1RvMTk3MDsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIiciOg0KCQkJCQkJCWlmIChsb29rQWhlYWQoIiciKSkgew0KCQkJCQkJCQlvdXRwdXQgKz0gIiciOw0KCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCWxpdGVyYWwgPSB0cnVlOw0KCQkJCQkJCX0NCgkJCQkJCQlicmVhazsNCgkJCQkJCWRlZmF1bHQ6DQoJCQkJCQkJb3V0cHV0ICs9IGZvcm1hdC5jaGFyQXQoaUZvcm1hdCk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgkJcmV0dXJuIG91dHB1dDsNCgl9LA0KDQoJLyogRXh0cmFjdCBhbGwgcG9zc2libGUgY2hhcmFjdGVycyBmcm9tIHRoZSBkYXRlIGZvcm1hdC4gKi8NCglfcG9zc2libGVDaGFyczogZnVuY3Rpb24gKGZvcm1hdCkgew0KCQl2YXIgaUZvcm1hdCwNCgkJCWNoYXJzID0gIiIsDQoJCQlsaXRlcmFsID0gZmFsc2UsDQoJCQkvLyBDaGVjayB3aGV0aGVyIGEgZm9ybWF0IGNoYXJhY3RlciBpcyBkb3VibGVkDQoJCQlsb29rQWhlYWQgPSBmdW5jdGlvbihtYXRjaCkgew0KCQkJCXZhciBtYXRjaGVzID0gKGlGb3JtYXQgKyAxIDwgZm9ybWF0Lmxlbmd0aCAmJiBmb3JtYXQuY2hhckF0KGlGb3JtYXQgKyAxKSA9PT0gbWF0Y2gpOw0KCQkJCWlmIChtYXRjaGVzKSB7DQoJCQkJCWlGb3JtYXQrKzsNCgkJCQl9DQoJCQkJcmV0dXJuIG1hdGNoZXM7DQoJCQl9Ow0KDQoJCWZvciAoaUZvcm1hdCA9IDA7IGlGb3JtYXQgPCBmb3JtYXQubGVuZ3RoOyBpRm9ybWF0KyspIHsNCgkJCWlmIChsaXRlcmFsKSB7DQoJCQkJaWYgKGZvcm1hdC5jaGFyQXQoaUZvcm1hdCkgPT09ICInIiAmJiAhbG9va0FoZWFkKCInIikpIHsNCgkJCQkJbGl0ZXJhbCA9IGZhbHNlOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWNoYXJzICs9IGZvcm1hdC5jaGFyQXQoaUZvcm1hdCk7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQlzd2l0Y2ggKGZvcm1hdC5jaGFyQXQoaUZvcm1hdCkpIHsNCgkJCQkJY2FzZSAiZCI6IGNhc2UgIm0iOiBjYXNlICJ5IjogY2FzZSAiQCI6DQoJCQkJCQljaGFycyArPSAiMDEyMzQ1Njc4OSI7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiRCI6IGNhc2UgIk0iOg0KCQkJCQkJcmV0dXJuIG51bGw7IC8vIEFjY2VwdCBhbnl0aGluZw0KCQkJCQljYXNlICInIjoNCgkJCQkJCWlmIChsb29rQWhlYWQoIiciKSkgew0KCQkJCQkJCWNoYXJzICs9ICInIjsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJbGl0ZXJhbCA9IHRydWU7DQoJCQkJCQl9DQoJCQkJCQlicmVhazsNCgkJCQkJZGVmYXVsdDoNCgkJCQkJCWNoYXJzICs9IGZvcm1hdC5jaGFyQXQoaUZvcm1hdCk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCXJldHVybiBjaGFyczsNCgl9LA0KDQoJLyogR2V0IGEgc2V0dGluZyB2YWx1ZSwgZGVmYXVsdGluZyBpZiBuZWNlc3NhcnkuICovDQoJX2dldDogZnVuY3Rpb24oaW5zdCwgbmFtZSkgew0KCQlyZXR1cm4gaW5zdC5zZXR0aW5nc1tuYW1lXSAhPT0gdW5kZWZpbmVkID8NCgkJCWluc3Quc2V0dGluZ3NbbmFtZV0gOiB0aGlzLl9kZWZhdWx0c1tuYW1lXTsNCgl9LA0KDQoJLyogUGFyc2UgZXhpc3RpbmcgZGF0ZSBhbmQgaW5pdGlhbGlzZSBkYXRlIHBpY2tlci4gKi8NCglfc2V0RGF0ZUZyb21GaWVsZDogZnVuY3Rpb24oaW5zdCwgbm9EZWZhdWx0KSB7DQoJCWlmIChpbnN0LmlucHV0LnZhbCgpID09PSBpbnN0Lmxhc3RWYWwpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXZhciBkYXRlRm9ybWF0ID0gdGhpcy5fZ2V0KGluc3QsICJkYXRlRm9ybWF0IiksDQoJCQlkYXRlcyA9IGluc3QubGFzdFZhbCA9IGluc3QuaW5wdXQgPyBpbnN0LmlucHV0LnZhbCgpIDogbnVsbCwNCgkJCWRlZmF1bHREYXRlID0gdGhpcy5fZ2V0RGVmYXVsdERhdGUoaW5zdCksDQoJCQlkYXRlID0gZGVmYXVsdERhdGUsDQoJCQlzZXR0aW5ncyA9IHRoaXMuX2dldEZvcm1hdENvbmZpZyhpbnN0KTsNCg0KCQl0cnkgew0KCQkJZGF0ZSA9IHRoaXMucGFyc2VEYXRlKGRhdGVGb3JtYXQsIGRhdGVzLCBzZXR0aW5ncykgfHwgZGVmYXVsdERhdGU7DQoJCX0gY2F0Y2ggKGV2ZW50KSB7DQoJCQlkYXRlcyA9IChub0RlZmF1bHQgPyAiIiA6IGRhdGVzKTsNCgkJfQ0KCQlpbnN0LnNlbGVjdGVkRGF5ID0gZGF0ZS5nZXREYXRlKCk7DQoJCWluc3QuZHJhd01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoID0gZGF0ZS5nZXRNb250aCgpOw0KCQlpbnN0LmRyYXdZZWFyID0gaW5zdC5zZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7DQoJCWluc3QuY3VycmVudERheSA9IChkYXRlcyA/IGRhdGUuZ2V0RGF0ZSgpIDogMCk7DQoJCWluc3QuY3VycmVudE1vbnRoID0gKGRhdGVzID8gZGF0ZS5nZXRNb250aCgpIDogMCk7DQoJCWluc3QuY3VycmVudFllYXIgPSAoZGF0ZXMgPyBkYXRlLmdldEZ1bGxZZWFyKCkgOiAwKTsNCgkJdGhpcy5fYWRqdXN0SW5zdERhdGUoaW5zdCk7DQoJfSwNCg0KCS8qIFJldHJpZXZlIHRoZSBkZWZhdWx0IGRhdGUgc2hvd24gb24gb3BlbmluZy4gKi8NCglfZ2V0RGVmYXVsdERhdGU6IGZ1bmN0aW9uKGluc3QpIHsNCgkJcmV0dXJuIHRoaXMuX3Jlc3RyaWN0TWluTWF4KGluc3QsDQoJCQl0aGlzLl9kZXRlcm1pbmVEYXRlKGluc3QsIHRoaXMuX2dldChpbnN0LCAiZGVmYXVsdERhdGUiKSwgbmV3IERhdGUoKSkpOw0KCX0sDQoNCgkvKiBBIGRhdGUgbWF5IGJlIHNwZWNpZmllZCBhcyBhbiBleGFjdCB2YWx1ZSBvciBhIHJlbGF0aXZlIG9uZS4gKi8NCglfZGV0ZXJtaW5lRGF0ZTogZnVuY3Rpb24oaW5zdCwgZGF0ZSwgZGVmYXVsdERhdGUpIHsNCgkJdmFyIG9mZnNldE51bWVyaWMgPSBmdW5jdGlvbihvZmZzZXQpIHsNCgkJCQl2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7DQoJCQkJZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgb2Zmc2V0KTsNCgkJCQlyZXR1cm4gZGF0ZTsNCgkJCX0sDQoJCQlvZmZzZXRTdHJpbmcgPSBmdW5jdGlvbihvZmZzZXQpIHsNCgkJCQl0cnkgew0KCQkJCQlyZXR1cm4gJC5kYXRlcGlja2VyLnBhcnNlRGF0ZSgkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAiZGF0ZUZvcm1hdCIpLA0KCQkJCQkJb2Zmc2V0LCAkLmRhdGVwaWNrZXIuX2dldEZvcm1hdENvbmZpZyhpbnN0KSk7DQoJCQkJfQ0KCQkJCWNhdGNoIChlKSB7DQoJCQkJCS8vIElnbm9yZQ0KCQkJCX0NCg0KCQkJCXZhciBkYXRlID0gKG9mZnNldC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9eYy8pID8NCgkJCQkJJC5kYXRlcGlja2VyLl9nZXREYXRlKGluc3QpIDogbnVsbCkgfHwgbmV3IERhdGUoKSwNCgkJCQkJeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKSwNCgkJCQkJbW9udGggPSBkYXRlLmdldE1vbnRoKCksDQoJCQkJCWRheSA9IGRhdGUuZ2V0RGF0ZSgpLA0KCQkJCQlwYXR0ZXJuID0gLyhbK1wtXT9bMC05XSspXHMqKGR8RHx3fFd8bXxNfHl8WSk/L2csDQoJCQkJCW1hdGNoZXMgPSBwYXR0ZXJuLmV4ZWMob2Zmc2V0KTsNCg0KCQkJCXdoaWxlIChtYXRjaGVzKSB7DQoJCQkJCXN3aXRjaCAobWF0Y2hlc1syXSB8fCAiZCIpIHsNCgkJCQkJCWNhc2UgImQiIDogY2FzZSAiRCIgOg0KCQkJCQkJCWRheSArPSBwYXJzZUludChtYXRjaGVzWzFdLDEwKTsgYnJlYWs7DQoJCQkJCQljYXNlICJ3IiA6IGNhc2UgIlciIDoNCgkJCQkJCQlkYXkgKz0gcGFyc2VJbnQobWF0Y2hlc1sxXSwxMCkgKiA3OyBicmVhazsNCgkJCQkJCWNhc2UgIm0iIDogY2FzZSAiTSIgOg0KCQkJCQkJCW1vbnRoICs9IHBhcnNlSW50KG1hdGNoZXNbMV0sMTApOw0KCQkJCQkJCWRheSA9IE1hdGgubWluKGRheSwgJC5kYXRlcGlja2VyLl9nZXREYXlzSW5Nb250aCh5ZWFyLCBtb250aCkpOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJY2FzZSAieSI6IGNhc2UgIlkiIDoNCgkJCQkJCQl5ZWFyICs9IHBhcnNlSW50KG1hdGNoZXNbMV0sMTApOw0KCQkJCQkJCWRheSA9IE1hdGgubWluKGRheSwgJC5kYXRlcGlja2VyLl9nZXREYXlzSW5Nb250aCh5ZWFyLCBtb250aCkpOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJCW1hdGNoZXMgPSBwYXR0ZXJuLmV4ZWMob2Zmc2V0KTsNCgkJCQl9DQoJCQkJcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpOw0KCQkJfSwNCgkJCW5ld0RhdGUgPSAoZGF0ZSA9PSBudWxsIHx8IGRhdGUgPT09ICIiID8gZGVmYXVsdERhdGUgOiAodHlwZW9mIGRhdGUgPT09ICJzdHJpbmciID8gb2Zmc2V0U3RyaW5nKGRhdGUpIDoNCgkJCQkodHlwZW9mIGRhdGUgPT09ICJudW1iZXIiID8gKGlzTmFOKGRhdGUpID8gZGVmYXVsdERhdGUgOiBvZmZzZXROdW1lcmljKGRhdGUpKSA6IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKSkpKTsNCg0KCQluZXdEYXRlID0gKG5ld0RhdGUgJiYgbmV3RGF0ZS50b1N0cmluZygpID09PSAiSW52YWxpZCBEYXRlIiA/IGRlZmF1bHREYXRlIDogbmV3RGF0ZSk7DQoJCWlmIChuZXdEYXRlKSB7DQoJCQluZXdEYXRlLnNldEhvdXJzKDApOw0KCQkJbmV3RGF0ZS5zZXRNaW51dGVzKDApOw0KCQkJbmV3RGF0ZS5zZXRTZWNvbmRzKDApOw0KCQkJbmV3RGF0ZS5zZXRNaWxsaXNlY29uZHMoMCk7DQoJCX0NCgkJcmV0dXJuIHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ld0RhdGUpOw0KCX0sDQoNCgkvKiBIYW5kbGUgc3dpdGNoIHRvL2Zyb20gZGF5bGlnaHQgc2F2aW5nLg0KCSAqIEhvdXJzIG1heSBiZSBub24temVybyBvbiBkYXlsaWdodCBzYXZpbmcgY3V0LW92ZXI6DQoJICogPiAxMiB3aGVuIG1pZG5pZ2h0IGNoYW5nZW92ZXIsIGJ1dCB0aGVuIGNhbm5vdCBnZW5lcmF0ZQ0KCSAqIG1pZG5pZ2h0IGRhdGV0aW1lLCBzbyBqdW1wIHRvIDFBTSwgb3RoZXJ3aXNlIHJlc2V0Lg0KCSAqIEBwYXJhbSAgZGF0ZSAgKERhdGUpIHRoZSBkYXRlIHRvIGNoZWNrDQoJICogQHJldHVybiAgKERhdGUpIHRoZSBjb3JyZWN0ZWQgZGF0ZQ0KCSAqLw0KCV9kYXlsaWdodFNhdmluZ0FkanVzdDogZnVuY3Rpb24oZGF0ZSkgew0KCQlpZiAoIWRhdGUpIHsNCgkJCXJldHVybiBudWxsOw0KCQl9DQoJCWRhdGUuc2V0SG91cnMoZGF0ZS5nZXRIb3VycygpID4gMTIgPyBkYXRlLmdldEhvdXJzKCkgKyAyIDogMCk7DQoJCXJldHVybiBkYXRlOw0KCX0sDQoNCgkvKiBTZXQgdGhlIGRhdGUocykgZGlyZWN0bHkuICovDQoJX3NldERhdGU6IGZ1bmN0aW9uKGluc3QsIGRhdGUsIG5vQ2hhbmdlKSB7DQoJCXZhciBjbGVhciA9ICFkYXRlLA0KCQkJb3JpZ01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoLA0KCQkJb3JpZ1llYXIgPSBpbnN0LnNlbGVjdGVkWWVhciwNCgkJCW5ld0RhdGUgPSB0aGlzLl9yZXN0cmljdE1pbk1heChpbnN0LCB0aGlzLl9kZXRlcm1pbmVEYXRlKGluc3QsIGRhdGUsIG5ldyBEYXRlKCkpKTsNCg0KCQlpbnN0LnNlbGVjdGVkRGF5ID0gaW5zdC5jdXJyZW50RGF5ID0gbmV3RGF0ZS5nZXREYXRlKCk7DQoJCWluc3QuZHJhd01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoID0gaW5zdC5jdXJyZW50TW9udGggPSBuZXdEYXRlLmdldE1vbnRoKCk7DQoJCWluc3QuZHJhd1llYXIgPSBpbnN0LnNlbGVjdGVkWWVhciA9IGluc3QuY3VycmVudFllYXIgPSBuZXdEYXRlLmdldEZ1bGxZZWFyKCk7DQoJCWlmICgob3JpZ01vbnRoICE9PSBpbnN0LnNlbGVjdGVkTW9udGggfHwgb3JpZ1llYXIgIT09IGluc3Quc2VsZWN0ZWRZZWFyKSAmJiAhbm9DaGFuZ2UpIHsNCgkJCXRoaXMuX25vdGlmeUNoYW5nZShpbnN0KTsNCgkJfQ0KCQl0aGlzLl9hZGp1c3RJbnN0RGF0ZShpbnN0KTsNCgkJaWYgKGluc3QuaW5wdXQpIHsNCgkJCWluc3QuaW5wdXQudmFsKGNsZWFyID8gIiIgOiB0aGlzLl9mb3JtYXREYXRlKGluc3QpKTsNCgkJfQ0KCX0sDQoNCgkvKiBSZXRyaWV2ZSB0aGUgZGF0ZShzKSBkaXJlY3RseS4gKi8NCglfZ2V0RGF0ZTogZnVuY3Rpb24oaW5zdCkgew0KCQl2YXIgc3RhcnREYXRlID0gKCFpbnN0LmN1cnJlbnRZZWFyIHx8IChpbnN0LmlucHV0ICYmIGluc3QuaW5wdXQudmFsKCkgPT09ICIiKSA/IG51bGwgOg0KCQkJdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoDQoJCQlpbnN0LmN1cnJlbnRZZWFyLCBpbnN0LmN1cnJlbnRNb250aCwgaW5zdC5jdXJyZW50RGF5KSkpOw0KCQkJcmV0dXJuIHN0YXJ0RGF0ZTsNCgl9LA0KDQoJLyogQXR0YWNoIHRoZSBvbnh4eCBoYW5kbGVycy4gIFRoZXNlIGFyZSBkZWNsYXJlZCBzdGF0aWNhbGx5IHNvDQoJICogdGhleSB3b3JrIHdpdGggc3RhdGljIGNvZGUgdHJhbnNmb3JtZXJzIGxpa2UgQ2FqYS4NCgkgKi8NCglfYXR0YWNoSGFuZGxlcnM6IGZ1bmN0aW9uKGluc3QpIHsNCgkJdmFyIHN0ZXBNb250aHMgPSB0aGlzLl9nZXQoaW5zdCwgInN0ZXBNb250aHMiKSwNCgkJCWlkID0gIiMiICsgaW5zdC5pZC5yZXBsYWNlKCAvXFxcXC9nLCAiXFwiICk7DQoJCWluc3QuZHBEaXYuZmluZCgiW2RhdGEtaGFuZGxlcl0iKS5tYXAoZnVuY3Rpb24gKCkgew0KCQkJdmFyIGhhbmRsZXIgPSB7DQoJCQkJcHJldjogZnVuY3Rpb24gKCkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoaWQsIC1zdGVwTW9udGhzLCAiTSIpOw0KCQkJCX0sDQoJCQkJbmV4dDogZnVuY3Rpb24gKCkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoaWQsICtzdGVwTW9udGhzLCAiTSIpOw0KCQkJCX0sDQoJCQkJaGlkZTogZnVuY3Rpb24gKCkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQkJfSwNCgkJCQl0b2RheTogZnVuY3Rpb24gKCkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX2dvdG9Ub2RheShpZCk7DQoJCQkJfSwNCgkJCQlzZWxlY3REYXk6IGZ1bmN0aW9uICgpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9zZWxlY3REYXkoaWQsICt0aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1tb250aCIpLCArdGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEteWVhciIpLCB0aGlzKTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0sDQoJCQkJc2VsZWN0TW9udGg6IGZ1bmN0aW9uICgpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9zZWxlY3RNb250aFllYXIoaWQsIHRoaXMsICJNIik7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9LA0KCQkJCXNlbGVjdFllYXI6IGZ1bmN0aW9uICgpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9zZWxlY3RNb250aFllYXIoaWQsIHRoaXMsICJZIik7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9Ow0KCQkJJCh0aGlzKS5iaW5kKHRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLWV2ZW50IiksIGhhbmRsZXJbdGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtaGFuZGxlciIpXSk7DQoJCX0pOw0KCX0sDQoNCgkvKiBHZW5lcmF0ZSB0aGUgSFRNTCBmb3IgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGRhdGUgcGlja2VyLiAqLw0KCV9nZW5lcmF0ZUhUTUw6IGZ1bmN0aW9uKGluc3QpIHsNCgkJdmFyIG1heERyYXcsIHByZXZUZXh0LCBwcmV2LCBuZXh0VGV4dCwgbmV4dCwgY3VycmVudFRleHQsIGdvdG9EYXRlLA0KCQkJY29udHJvbHMsIGJ1dHRvblBhbmVsLCBmaXJzdERheSwgc2hvd1dlZWssIGRheU5hbWVzLCBkYXlOYW1lc01pbiwNCgkJCW1vbnRoTmFtZXMsIG1vbnRoTmFtZXNTaG9ydCwgYmVmb3JlU2hvd0RheSwgc2hvd090aGVyTW9udGhzLA0KCQkJc2VsZWN0T3RoZXJNb250aHMsIGRlZmF1bHREYXRlLCBodG1sLCBkb3csIHJvdywgZ3JvdXAsIGNvbCwgc2VsZWN0ZWREYXRlLA0KCQkJY29ybmVyQ2xhc3MsIGNhbGVuZGVyLCB0aGVhZCwgZGF5LCBkYXlzSW5Nb250aCwgbGVhZERheXMsIGN1clJvd3MsIG51bVJvd3MsDQoJCQlwcmludERhdGUsIGRSb3csIHRib2R5LCBkYXlTZXR0aW5ncywgb3RoZXJNb250aCwgdW5zZWxlY3RhYmxlLA0KCQkJdGVtcERhdGUgPSBuZXcgRGF0ZSgpLA0KCQkJdG9kYXkgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCgNCgkJCQluZXcgRGF0ZSh0ZW1wRGF0ZS5nZXRGdWxsWWVhcigpLCB0ZW1wRGF0ZS5nZXRNb250aCgpLCB0ZW1wRGF0ZS5nZXREYXRlKCkpKSwgLy8gY2xlYXIgdGltZQ0KCQkJaXNSVEwgPSB0aGlzLl9nZXQoaW5zdCwgImlzUlRMIiksDQoJCQlzaG93QnV0dG9uUGFuZWwgPSB0aGlzLl9nZXQoaW5zdCwgInNob3dCdXR0b25QYW5lbCIpLA0KCQkJaGlkZUlmTm9QcmV2TmV4dCA9IHRoaXMuX2dldChpbnN0LCAiaGlkZUlmTm9QcmV2TmV4dCIpLA0KCQkJbmF2aWdhdGlvbkFzRGF0ZUZvcm1hdCA9IHRoaXMuX2dldChpbnN0LCAibmF2aWdhdGlvbkFzRGF0ZUZvcm1hdCIpLA0KCQkJbnVtTW9udGhzID0gdGhpcy5fZ2V0TnVtYmVyT2ZNb250aHMoaW5zdCksDQoJCQlzaG93Q3VycmVudEF0UG9zID0gdGhpcy5fZ2V0KGluc3QsICJzaG93Q3VycmVudEF0UG9zIiksDQoJCQlzdGVwTW9udGhzID0gdGhpcy5fZ2V0KGluc3QsICJzdGVwTW9udGhzIiksDQoJCQlpc011bHRpTW9udGggPSAobnVtTW9udGhzWzBdICE9PSAxIHx8IG51bU1vbnRoc1sxXSAhPT0gMSksDQoJCQljdXJyZW50RGF0ZSA9IHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KCghaW5zdC5jdXJyZW50RGF5ID8gbmV3IERhdGUoOTk5OSwgOSwgOSkgOg0KCQkJCW5ldyBEYXRlKGluc3QuY3VycmVudFllYXIsIGluc3QuY3VycmVudE1vbnRoLCBpbnN0LmN1cnJlbnREYXkpKSksDQoJCQltaW5EYXRlID0gdGhpcy5fZ2V0TWluTWF4RGF0ZShpbnN0LCAibWluIiksDQoJCQltYXhEYXRlID0gdGhpcy5fZ2V0TWluTWF4RGF0ZShpbnN0LCAibWF4IiksDQoJCQlkcmF3TW9udGggPSBpbnN0LmRyYXdNb250aCAtIHNob3dDdXJyZW50QXRQb3MsDQoJCQlkcmF3WWVhciA9IGluc3QuZHJhd1llYXI7DQoNCgkJaWYgKGRyYXdNb250aCA8IDApIHsNCgkJCWRyYXdNb250aCArPSAxMjsNCgkJCWRyYXdZZWFyLS07DQoJCX0NCgkJaWYgKG1heERhdGUpIHsNCgkJCW1heERyYXcgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShtYXhEYXRlLmdldEZ1bGxZZWFyKCksDQoJCQkJbWF4RGF0ZS5nZXRNb250aCgpIC0gKG51bU1vbnRoc1swXSAqIG51bU1vbnRoc1sxXSkgKyAxLCBtYXhEYXRlLmdldERhdGUoKSkpOw0KCQkJbWF4RHJhdyA9IChtaW5EYXRlICYmIG1heERyYXcgPCBtaW5EYXRlID8gbWluRGF0ZSA6IG1heERyYXcpOw0KCQkJd2hpbGUgKHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGRyYXdZZWFyLCBkcmF3TW9udGgsIDEpKSA+IG1heERyYXcpIHsNCgkJCQlkcmF3TW9udGgtLTsNCgkJCQlpZiAoZHJhd01vbnRoIDwgMCkgew0KCQkJCQlkcmF3TW9udGggPSAxMTsNCgkJCQkJZHJhd1llYXItLTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJaW5zdC5kcmF3TW9udGggPSBkcmF3TW9udGg7DQoJCWluc3QuZHJhd1llYXIgPSBkcmF3WWVhcjsNCg0KCQlwcmV2VGV4dCA9IHRoaXMuX2dldChpbnN0LCAicHJldlRleHQiKTsNCgkJcHJldlRleHQgPSAoIW5hdmlnYXRpb25Bc0RhdGVGb3JtYXQgPyBwcmV2VGV4dCA6IHRoaXMuZm9ybWF0RGF0ZShwcmV2VGV4dCwNCgkJCXRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGRyYXdZZWFyLCBkcmF3TW9udGggLSBzdGVwTW9udGhzLCAxKSksDQoJCQl0aGlzLl9nZXRGb3JtYXRDb25maWcoaW5zdCkpKTsNCg0KCQlwcmV2ID0gKHRoaXMuX2NhbkFkanVzdE1vbnRoKGluc3QsIC0xLCBkcmF3WWVhciwgZHJhd01vbnRoKSA/DQoJCQkiPGEgY2xhc3M9J3VpLWRhdGVwaWNrZXItcHJldiB1aS1jb3JuZXItYWxsJyBkYXRhLWhhbmRsZXI9J3ByZXYnIGRhdGEtZXZlbnQ9J2NsaWNrJyIgKw0KCQkJIiB0aXRsZT0nIiArIHByZXZUZXh0ICsgIic+PHNwYW4gY2xhc3M9J3VpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtIiArICggaXNSVEwgPyAiZSIgOiAidyIpICsgIic+IiArIHByZXZUZXh0ICsgIjwvc3Bhbj48L2E+IiA6DQoJCQkoaGlkZUlmTm9QcmV2TmV4dCA/ICIiIDogIjxhIGNsYXNzPSd1aS1kYXRlcGlja2VyLXByZXYgdWktY29ybmVyLWFsbCB1aS1zdGF0ZS1kaXNhYmxlZCcgdGl0bGU9JyIrIHByZXZUZXh0ICsiJz48c3BhbiBjbGFzcz0ndWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0iICsgKCBpc1JUTCA/ICJlIiA6ICJ3IikgKyAiJz4iICsgcHJldlRleHQgKyAiPC9zcGFuPjwvYT4iKSk7DQoNCgkJbmV4dFRleHQgPSB0aGlzLl9nZXQoaW5zdCwgIm5leHRUZXh0Iik7DQoJCW5leHRUZXh0ID0gKCFuYXZpZ2F0aW9uQXNEYXRlRm9ybWF0ID8gbmV4dFRleHQgOiB0aGlzLmZvcm1hdERhdGUobmV4dFRleHQsDQoJCQl0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShkcmF3WWVhciwgZHJhd01vbnRoICsgc3RlcE1vbnRocywgMSkpLA0KCQkJdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKGluc3QpKSk7DQoNCgkJbmV4dCA9ICh0aGlzLl9jYW5BZGp1c3RNb250aChpbnN0LCArMSwgZHJhd1llYXIsIGRyYXdNb250aCkgPw0KCQkJIjxhIGNsYXNzPSd1aS1kYXRlcGlja2VyLW5leHQgdWktY29ybmVyLWFsbCcgZGF0YS1oYW5kbGVyPSduZXh0JyBkYXRhLWV2ZW50PSdjbGljayciICsNCgkJCSIgdGl0bGU9JyIgKyBuZXh0VGV4dCArICInPjxzcGFuIGNsYXNzPSd1aS1pY29uIHVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLSIgKyAoIGlzUlRMID8gInciIDogImUiKSArICInPiIgKyBuZXh0VGV4dCArICI8L3NwYW4+PC9hPiIgOg0KCQkJKGhpZGVJZk5vUHJldk5leHQgPyAiIiA6ICI8YSBjbGFzcz0ndWktZGF0ZXBpY2tlci1uZXh0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGlzYWJsZWQnIHRpdGxlPSciKyBuZXh0VGV4dCArICInPjxzcGFuIGNsYXNzPSd1aS1pY29uIHVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLSIgKyAoIGlzUlRMID8gInciIDogImUiKSArICInPiIgKyBuZXh0VGV4dCArICI8L3NwYW4+PC9hPiIpKTsNCg0KCQljdXJyZW50VGV4dCA9IHRoaXMuX2dldChpbnN0LCAiY3VycmVudFRleHQiKTsNCgkJZ290b0RhdGUgPSAodGhpcy5fZ2V0KGluc3QsICJnb3RvQ3VycmVudCIpICYmIGluc3QuY3VycmVudERheSA/IGN1cnJlbnREYXRlIDogdG9kYXkpOw0KCQljdXJyZW50VGV4dCA9ICghbmF2aWdhdGlvbkFzRGF0ZUZvcm1hdCA/IGN1cnJlbnRUZXh0IDoNCgkJCXRoaXMuZm9ybWF0RGF0ZShjdXJyZW50VGV4dCwgZ290b0RhdGUsIHRoaXMuX2dldEZvcm1hdENvbmZpZyhpbnN0KSkpOw0KDQoJCWNvbnRyb2xzID0gKCFpbnN0LmlubGluZSA/ICI8YnV0dG9uIHR5cGU9J2J1dHRvbicgY2xhc3M9J3VpLWRhdGVwaWNrZXItY2xvc2UgdWktc3RhdGUtZGVmYXVsdCB1aS1wcmlvcml0eS1wcmltYXJ5IHVpLWNvcm5lci1hbGwnIGRhdGEtaGFuZGxlcj0naGlkZScgZGF0YS1ldmVudD0nY2xpY2snPiIgKw0KCQkJdGhpcy5fZ2V0KGluc3QsICJjbG9zZVRleHQiKSArICI8L2J1dHRvbj4iIDogIiIpOw0KDQoJCWJ1dHRvblBhbmVsID0gKHNob3dCdXR0b25QYW5lbCkgPyAiPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHVpLXdpZGdldC1jb250ZW50Jz4iICsgKGlzUlRMID8gY29udHJvbHMgOiAiIikgKw0KCQkJKHRoaXMuX2lzSW5SYW5nZShpbnN0LCBnb3RvRGF0ZSkgPyAiPGJ1dHRvbiB0eXBlPSdidXR0b24nIGNsYXNzPSd1aS1kYXRlcGlja2VyLWN1cnJlbnQgdWktc3RhdGUtZGVmYXVsdCB1aS1wcmlvcml0eS1zZWNvbmRhcnkgdWktY29ybmVyLWFsbCcgZGF0YS1oYW5kbGVyPSd0b2RheScgZGF0YS1ldmVudD0nY2xpY2snIiArDQoJCQkiPiIgKyBjdXJyZW50VGV4dCArICI8L2J1dHRvbj4iIDogIiIpICsgKGlzUlRMID8gIiIgOiBjb250cm9scykgKyAiPC9kaXY+IiA6ICIiOw0KDQoJCWZpcnN0RGF5ID0gcGFyc2VJbnQodGhpcy5fZ2V0KGluc3QsICJmaXJzdERheSIpLDEwKTsNCgkJZmlyc3REYXkgPSAoaXNOYU4oZmlyc3REYXkpID8gMCA6IGZpcnN0RGF5KTsNCg0KCQlzaG93V2VlayA9IHRoaXMuX2dldChpbnN0LCAic2hvd1dlZWsiKTsNCgkJZGF5TmFtZXMgPSB0aGlzLl9nZXQoaW5zdCwgImRheU5hbWVzIik7DQoJCWRheU5hbWVzTWluID0gdGhpcy5fZ2V0KGluc3QsICJkYXlOYW1lc01pbiIpOw0KCQltb250aE5hbWVzID0gdGhpcy5fZ2V0KGluc3QsICJtb250aE5hbWVzIik7DQoJCW1vbnRoTmFtZXNTaG9ydCA9IHRoaXMuX2dldChpbnN0LCAibW9udGhOYW1lc1Nob3J0Iik7DQoJCWJlZm9yZVNob3dEYXkgPSB0aGlzLl9nZXQoaW5zdCwgImJlZm9yZVNob3dEYXkiKTsNCgkJc2hvd090aGVyTW9udGhzID0gdGhpcy5fZ2V0KGluc3QsICJzaG93T3RoZXJNb250aHMiKTsNCgkJc2VsZWN0T3RoZXJNb250aHMgPSB0aGlzLl9nZXQoaW5zdCwgInNlbGVjdE90aGVyTW9udGhzIik7DQoJCWRlZmF1bHREYXRlID0gdGhpcy5fZ2V0RGVmYXVsdERhdGUoaW5zdCk7DQoJCWh0bWwgPSAiIjsNCgkJZG93Ow0KCQlmb3IgKHJvdyA9IDA7IHJvdyA8IG51bU1vbnRoc1swXTsgcm93KyspIHsNCgkJCWdyb3VwID0gIiI7DQoJCQl0aGlzLm1heFJvd3MgPSA0Ow0KCQkJZm9yIChjb2wgPSAwOyBjb2wgPCBudW1Nb250aHNbMV07IGNvbCsrKSB7DQoJCQkJc2VsZWN0ZWREYXRlID0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZHJhd1llYXIsIGRyYXdNb250aCwgaW5zdC5zZWxlY3RlZERheSkpOw0KCQkJCWNvcm5lckNsYXNzID0gIiB1aS1jb3JuZXItYWxsIjsNCgkJCQljYWxlbmRlciA9ICIiOw0KCQkJCWlmIChpc011bHRpTW9udGgpIHsNCgkJCQkJY2FsZW5kZXIgKz0gIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItZ3JvdXAiOw0KCQkJCQlpZiAobnVtTW9udGhzWzFdID4gMSkgew0KCQkJCQkJc3dpdGNoIChjb2wpIHsNCgkJCQkJCQljYXNlIDA6IGNhbGVuZGVyICs9ICIgdWktZGF0ZXBpY2tlci1ncm91cC1maXJzdCI7DQoJCQkJCQkJCWNvcm5lckNsYXNzID0gIiB1aS1jb3JuZXItIiArIChpc1JUTCA/ICJyaWdodCIgOiAibGVmdCIpOyBicmVhazsNCgkJCQkJCQljYXNlIG51bU1vbnRoc1sxXS0xOiBjYWxlbmRlciArPSAiIHVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCI7DQoJCQkJCQkJCWNvcm5lckNsYXNzID0gIiB1aS1jb3JuZXItIiArIChpc1JUTCA/ICJsZWZ0IiA6ICJyaWdodCIpOyBicmVhazsNCgkJCQkJCQlkZWZhdWx0OiBjYWxlbmRlciArPSAiIHVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIjsgY29ybmVyQ2xhc3MgPSAiIjsgYnJlYWs7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJY2FsZW5kZXIgKz0gIic+IjsNCgkJCQl9DQoJCQkJY2FsZW5kZXIgKz0gIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItaGVhZGVyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IiArIGNvcm5lckNsYXNzICsgIic+IiArDQoJCQkJCSgvYWxsfGxlZnQvLnRlc3QoY29ybmVyQ2xhc3MpICYmIHJvdyA9PT0gMCA/IChpc1JUTCA/IG5leHQgOiBwcmV2KSA6ICIiKSArDQoJCQkJCSgvYWxsfHJpZ2h0Ly50ZXN0KGNvcm5lckNsYXNzKSAmJiByb3cgPT09IDAgPyAoaXNSVEwgPyBwcmV2IDogbmV4dCkgOiAiIikgKw0KCQkJCQl0aGlzLl9nZW5lcmF0ZU1vbnRoWWVhckhlYWRlcihpbnN0LCBkcmF3TW9udGgsIGRyYXdZZWFyLCBtaW5EYXRlLCBtYXhEYXRlLA0KCQkJCQlyb3cgPiAwIHx8IGNvbCA+IDAsIG1vbnRoTmFtZXMsIG1vbnRoTmFtZXNTaG9ydCkgKyAvLyBkcmF3IG1vbnRoIGhlYWRlcnMNCgkJCQkJIjwvZGl2Pjx0YWJsZSBjbGFzcz0ndWktZGF0ZXBpY2tlci1jYWxlbmRhcic+PHRoZWFkPiIgKw0KCQkJCQkiPHRyPiI7DQoJCQkJdGhlYWQgPSAoc2hvd1dlZWsgPyAiPHRoIGNsYXNzPSd1aS1kYXRlcGlja2VyLXdlZWstY29sJz4iICsgdGhpcy5fZ2V0KGluc3QsICJ3ZWVrSGVhZGVyIikgKyAiPC90aD4iIDogIiIpOw0KCQkJCWZvciAoZG93ID0gMDsgZG93IDwgNzsgZG93KyspIHsgLy8gZGF5cyBvZiB0aGUgd2Vlaw0KCQkJCQlkYXkgPSAoZG93ICsgZmlyc3REYXkpICUgNzsNCgkJCQkJdGhlYWQgKz0gIjx0aCBzY29wZT0nY29sJyIgKyAoKGRvdyArIGZpcnN0RGF5ICsgNikgJSA3ID49IDUgPyAiIGNsYXNzPSd1aS1kYXRlcGlja2VyLXdlZWstZW5kJyIgOiAiIikgKyAiPiIgKw0KCQkJCQkJIjxzcGFuIHRpdGxlPSciICsgZGF5TmFtZXNbZGF5XSArICInPiIgKyBkYXlOYW1lc01pbltkYXldICsgIjwvc3Bhbj48L3RoPiI7DQoJCQkJfQ0KCQkJCWNhbGVuZGVyICs9IHRoZWFkICsgIjwvdHI+PC90aGVhZD48dGJvZHk+IjsNCgkJCQlkYXlzSW5Nb250aCA9IHRoaXMuX2dldERheXNJbk1vbnRoKGRyYXdZZWFyLCBkcmF3TW9udGgpOw0KCQkJCWlmIChkcmF3WWVhciA9PT0gaW5zdC5zZWxlY3RlZFllYXIgJiYgZHJhd01vbnRoID09PSBpbnN0LnNlbGVjdGVkTW9udGgpIHsNCgkJCQkJaW5zdC5zZWxlY3RlZERheSA9IE1hdGgubWluKGluc3Quc2VsZWN0ZWREYXksIGRheXNJbk1vbnRoKTsNCgkJCQl9DQoJCQkJbGVhZERheXMgPSAodGhpcy5fZ2V0Rmlyc3REYXlPZk1vbnRoKGRyYXdZZWFyLCBkcmF3TW9udGgpIC0gZmlyc3REYXkgKyA3KSAlIDc7DQoJCQkJY3VyUm93cyA9IE1hdGguY2VpbCgobGVhZERheXMgKyBkYXlzSW5Nb250aCkgLyA3KTsgLy8gY2FsY3VsYXRlIHRoZSBudW1iZXIgb2Ygcm93cyB0byBnZW5lcmF0ZQ0KCQkJCW51bVJvd3MgPSAoaXNNdWx0aU1vbnRoID8gdGhpcy5tYXhSb3dzID4gY3VyUm93cyA/IHRoaXMubWF4Um93cyA6IGN1clJvd3MgOiBjdXJSb3dzKTsgLy9JZiBtdWx0aXBsZSBtb250aHMsIHVzZSB0aGUgaGlnaGVyIG51bWJlciBvZiByb3dzIChzZWUgIzcwNDMpDQoJCQkJdGhpcy5tYXhSb3dzID0gbnVtUm93czsNCgkJCQlwcmludERhdGUgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShkcmF3WWVhciwgZHJhd01vbnRoLCAxIC0gbGVhZERheXMpKTsNCgkJCQlmb3IgKGRSb3cgPSAwOyBkUm93IDwgbnVtUm93czsgZFJvdysrKSB7IC8vIGNyZWF0ZSBkYXRlIHBpY2tlciByb3dzDQoJCQkJCWNhbGVuZGVyICs9ICI8dHI+IjsNCgkJCQkJdGJvZHkgPSAoIXNob3dXZWVrID8gIiIgOiAiPHRkIGNsYXNzPSd1aS1kYXRlcGlja2VyLXdlZWstY29sJz4iICsNCgkJCQkJCXRoaXMuX2dldChpbnN0LCAiY2FsY3VsYXRlV2VlayIpKHByaW50RGF0ZSkgKyAiPC90ZD4iKTsNCgkJCQkJZm9yIChkb3cgPSAwOyBkb3cgPCA3OyBkb3crKykgeyAvLyBjcmVhdGUgZGF0ZSBwaWNrZXIgZGF5cw0KCQkJCQkJZGF5U2V0dGluZ3MgPSAoYmVmb3JlU2hvd0RheSA/DQoJCQkJCQkJYmVmb3JlU2hvd0RheS5hcHBseSgoaW5zdC5pbnB1dCA/IGluc3QuaW5wdXRbMF0gOiBudWxsKSwgW3ByaW50RGF0ZV0pIDogW3RydWUsICIiXSk7DQoJCQkJCQlvdGhlck1vbnRoID0gKHByaW50RGF0ZS5nZXRNb250aCgpICE9PSBkcmF3TW9udGgpOw0KCQkJCQkJdW5zZWxlY3RhYmxlID0gKG90aGVyTW9udGggJiYgIXNlbGVjdE90aGVyTW9udGhzKSB8fCAhZGF5U2V0dGluZ3NbMF0gfHwNCgkJCQkJCQkobWluRGF0ZSAmJiBwcmludERhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBwcmludERhdGUgPiBtYXhEYXRlKTsNCgkJCQkJCXRib2R5ICs9ICI8dGQgY2xhc3M9JyIgKw0KCQkJCQkJCSgoZG93ICsgZmlyc3REYXkgKyA2KSAlIDcgPj0gNSA/ICIgdWktZGF0ZXBpY2tlci13ZWVrLWVuZCIgOiAiIikgKyAvLyBoaWdobGlnaHQgd2Vla2VuZHMNCgkJCQkJCQkob3RoZXJNb250aCA/ICIgdWktZGF0ZXBpY2tlci1vdGhlci1tb250aCIgOiAiIikgKyAvLyBoaWdobGlnaHQgZGF5cyBmcm9tIG90aGVyIG1vbnRocw0KCQkJCQkJCSgocHJpbnREYXRlLmdldFRpbWUoKSA9PT0gc2VsZWN0ZWREYXRlLmdldFRpbWUoKSAmJiBkcmF3TW9udGggPT09IGluc3Quc2VsZWN0ZWRNb250aCAmJiBpbnN0Ll9rZXlFdmVudCkgfHwgLy8gdXNlciBwcmVzc2VkIGtleQ0KCQkJCQkJCShkZWZhdWx0RGF0ZS5nZXRUaW1lKCkgPT09IHByaW50RGF0ZS5nZXRUaW1lKCkgJiYgZGVmYXVsdERhdGUuZ2V0VGltZSgpID09PSBzZWxlY3RlZERhdGUuZ2V0VGltZSgpKSA/DQoJCQkJCQkJLy8gb3IgZGVmYXVsdERhdGUgaXMgY3VycmVudCBwcmludGVkRGF0ZSBhbmQgZGVmYXVsdERhdGUgaXMgc2VsZWN0ZWREYXRlDQoJCQkJCQkJIiAiICsgdGhpcy5fZGF5T3ZlckNsYXNzIDogIiIpICsgLy8gaGlnaGxpZ2h0IHNlbGVjdGVkIGRheQ0KCQkJCQkJCSh1bnNlbGVjdGFibGUgPyAiICIgKyB0aGlzLl91bnNlbGVjdGFibGVDbGFzcyArICIgdWktc3RhdGUtZGlzYWJsZWQiOiAiIikgKyAgLy8gaGlnaGxpZ2h0IHVuc2VsZWN0YWJsZSBkYXlzDQoJCQkJCQkJKG90aGVyTW9udGggJiYgIXNob3dPdGhlck1vbnRocyA/ICIiIDogIiAiICsgZGF5U2V0dGluZ3NbMV0gKyAvLyBoaWdobGlnaHQgY3VzdG9tIGRhdGVzDQoJCQkJCQkJKHByaW50RGF0ZS5nZXRUaW1lKCkgPT09IGN1cnJlbnREYXRlLmdldFRpbWUoKSA/ICIgIiArIHRoaXMuX2N1cnJlbnRDbGFzcyA6ICIiKSArIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBkYXkNCgkJCQkJCQkocHJpbnREYXRlLmdldFRpbWUoKSA9PT0gdG9kYXkuZ2V0VGltZSgpID8gIiB1aS1kYXRlcGlja2VyLXRvZGF5IiA6ICIiKSkgKyAiJyIgKyAvLyBoaWdobGlnaHQgdG9kYXkgKGlmIGRpZmZlcmVudCkNCgkJCQkJCQkoKCFvdGhlck1vbnRoIHx8IHNob3dPdGhlck1vbnRocykgJiYgZGF5U2V0dGluZ3NbMl0gPyAiIHRpdGxlPSciICsgZGF5U2V0dGluZ3NbMl0ucmVwbGFjZSgvJy9nLCAiJiMzOTsiKSArICInIiA6ICIiKSArIC8vIGNlbGwgdGl0bGUNCgkJCQkJCQkodW5zZWxlY3RhYmxlID8gIiIgOiAiIGRhdGEtaGFuZGxlcj0nc2VsZWN0RGF5JyBkYXRhLWV2ZW50PSdjbGljaycgZGF0YS1tb250aD0nIiArIHByaW50RGF0ZS5nZXRNb250aCgpICsgIicgZGF0YS15ZWFyPSciICsgcHJpbnREYXRlLmdldEZ1bGxZZWFyKCkgKyAiJyIpICsgIj4iICsgLy8gYWN0aW9ucw0KCQkJCQkJCShvdGhlck1vbnRoICYmICFzaG93T3RoZXJNb250aHMgPyAiJiN4YTA7IiA6IC8vIGRpc3BsYXkgZm9yIG90aGVyIG1vbnRocw0KCQkJCQkJCSh1bnNlbGVjdGFibGUgPyAiPHNwYW4gY2xhc3M9J3VpLXN0YXRlLWRlZmF1bHQnPiIgKyBwcmludERhdGUuZ2V0RGF0ZSgpICsgIjwvc3Bhbj4iIDogIjxhIGNsYXNzPSd1aS1zdGF0ZS1kZWZhdWx0IiArDQoJCQkJCQkJKHByaW50RGF0ZS5nZXRUaW1lKCkgPT09IHRvZGF5LmdldFRpbWUoKSA/ICIgdWktc3RhdGUtaGlnaGxpZ2h0IiA6ICIiKSArDQoJCQkJCQkJKHByaW50RGF0ZS5nZXRUaW1lKCkgPT09IGN1cnJlbnREYXRlLmdldFRpbWUoKSA/ICIgdWktc3RhdGUtYWN0aXZlIiA6ICIiKSArIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBkYXkNCgkJCQkJCQkob3RoZXJNb250aCA/ICIgdWktcHJpb3JpdHktc2Vjb25kYXJ5IiA6ICIiKSArIC8vIGRpc3Rpbmd1aXNoIGRhdGVzIGZyb20gb3RoZXIgbW9udGhzDQoJCQkJCQkJIicgaHJlZj0nIyc+IiArIHByaW50RGF0ZS5nZXREYXRlKCkgKyAiPC9hPiIpKSArICI8L3RkPiI7IC8vIGRpc3BsYXkgc2VsZWN0YWJsZSBkYXRlDQoJCQkJCQlwcmludERhdGUuc2V0RGF0ZShwcmludERhdGUuZ2V0RGF0ZSgpICsgMSk7DQoJCQkJCQlwcmludERhdGUgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChwcmludERhdGUpOw0KCQkJCQl9DQoJCQkJCWNhbGVuZGVyICs9IHRib2R5ICsgIjwvdHI+IjsNCgkJCQl9DQoJCQkJZHJhd01vbnRoKys7DQoJCQkJaWYgKGRyYXdNb250aCA+IDExKSB7DQoJCQkJCWRyYXdNb250aCA9IDA7DQoJCQkJCWRyYXdZZWFyKys7DQoJCQkJfQ0KCQkJCWNhbGVuZGVyICs9ICI8L3Rib2R5PjwvdGFibGU+IiArIChpc011bHRpTW9udGggPyAiPC9kaXY+IiArDQoJCQkJCQkJKChudW1Nb250aHNbMF0gPiAwICYmIGNvbCA9PT0gbnVtTW9udGhzWzFdLTEpID8gIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItcm93LWJyZWFrJz48L2Rpdj4iIDogIiIpIDogIiIpOw0KCQkJCWdyb3VwICs9IGNhbGVuZGVyOw0KCQkJfQ0KCQkJaHRtbCArPSBncm91cDsNCgkJfQ0KCQlodG1sICs9IGJ1dHRvblBhbmVsOw0KCQlpbnN0Ll9rZXlFdmVudCA9IGZhbHNlOw0KCQlyZXR1cm4gaHRtbDsNCgl9LA0KDQoJLyogR2VuZXJhdGUgdGhlIG1vbnRoIGFuZCB5ZWFyIGhlYWRlci4gKi8NCglfZ2VuZXJhdGVNb250aFllYXJIZWFkZXI6IGZ1bmN0aW9uKGluc3QsIGRyYXdNb250aCwgZHJhd1llYXIsIG1pbkRhdGUsIG1heERhdGUsDQoJCQlzZWNvbmRhcnksIG1vbnRoTmFtZXMsIG1vbnRoTmFtZXNTaG9ydCkgew0KDQoJCXZhciBpbk1pblllYXIsIGluTWF4WWVhciwgbW9udGgsIHllYXJzLCB0aGlzWWVhciwgZGV0ZXJtaW5lWWVhciwgeWVhciwgZW5kWWVhciwNCgkJCWNoYW5nZU1vbnRoID0gdGhpcy5fZ2V0KGluc3QsICJjaGFuZ2VNb250aCIpLA0KCQkJY2hhbmdlWWVhciA9IHRoaXMuX2dldChpbnN0LCAiY2hhbmdlWWVhciIpLA0KCQkJc2hvd01vbnRoQWZ0ZXJZZWFyID0gdGhpcy5fZ2V0KGluc3QsICJzaG93TW9udGhBZnRlclllYXIiKSwNCgkJCWh0bWwgPSAiPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci10aXRsZSc+IiwNCgkJCW1vbnRoSHRtbCA9ICIiOw0KDQoJCS8vIG1vbnRoIHNlbGVjdGlvbg0KCQlpZiAoc2Vjb25kYXJ5IHx8ICFjaGFuZ2VNb250aCkgew0KCQkJbW9udGhIdG1sICs9ICI8c3BhbiBjbGFzcz0ndWktZGF0ZXBpY2tlci1tb250aCc+IiArIG1vbnRoTmFtZXNbZHJhd01vbnRoXSArICI8L3NwYW4+IjsNCgkJfSBlbHNlIHsNCgkJCWluTWluWWVhciA9IChtaW5EYXRlICYmIG1pbkRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gZHJhd1llYXIpOw0KCQkJaW5NYXhZZWFyID0gKG1heERhdGUgJiYgbWF4RGF0ZS5nZXRGdWxsWWVhcigpID09PSBkcmF3WWVhcik7DQoJCQltb250aEh0bWwgKz0gIjxzZWxlY3QgY2xhc3M9J3VpLWRhdGVwaWNrZXItbW9udGgnIGRhdGEtaGFuZGxlcj0nc2VsZWN0TW9udGgnIGRhdGEtZXZlbnQ9J2NoYW5nZSc+IjsNCgkJCWZvciAoIG1vbnRoID0gMDsgbW9udGggPCAxMjsgbW9udGgrKykgew0KCQkJCWlmICgoIWluTWluWWVhciB8fCBtb250aCA+PSBtaW5EYXRlLmdldE1vbnRoKCkpICYmICghaW5NYXhZZWFyIHx8IG1vbnRoIDw9IG1heERhdGUuZ2V0TW9udGgoKSkpIHsNCgkJCQkJbW9udGhIdG1sICs9ICI8b3B0aW9uIHZhbHVlPSciICsgbW9udGggKyAiJyIgKw0KCQkJCQkJKG1vbnRoID09PSBkcmF3TW9udGggPyAiIHNlbGVjdGVkPSdzZWxlY3RlZCciIDogIiIpICsNCgkJCQkJCSI+IiArIG1vbnRoTmFtZXNTaG9ydFttb250aF0gKyAiPC9vcHRpb24+IjsNCgkJCQl9DQoJCQl9DQoJCQltb250aEh0bWwgKz0gIjwvc2VsZWN0PiI7DQoJCX0NCg0KCQlpZiAoIXNob3dNb250aEFmdGVyWWVhcikgew0KCQkJaHRtbCArPSBtb250aEh0bWwgKyAoc2Vjb25kYXJ5IHx8ICEoY2hhbmdlTW9udGggJiYgY2hhbmdlWWVhcikgPyAiJiN4YTA7IiA6ICIiKTsNCgkJfQ0KDQoJCS8vIHllYXIgc2VsZWN0aW9uDQoJCWlmICggIWluc3QueWVhcnNodG1sICkgew0KCQkJaW5zdC55ZWFyc2h0bWwgPSAiIjsNCgkJCWlmIChzZWNvbmRhcnkgfHwgIWNoYW5nZVllYXIpIHsNCgkJCQlodG1sICs9ICI8c3BhbiBjbGFzcz0ndWktZGF0ZXBpY2tlci15ZWFyJz4iICsgZHJhd1llYXIgKyAiPC9zcGFuPiI7DQoJCQl9IGVsc2Ugew0KCQkJCS8vIGRldGVybWluZSByYW5nZSBvZiB5ZWFycyB0byBkaXNwbGF5DQoJCQkJeWVhcnMgPSB0aGlzLl9nZXQoaW5zdCwgInllYXJSYW5nZSIpLnNwbGl0KCI6Iik7DQoJCQkJdGhpc1llYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7DQoJCQkJZGV0ZXJtaW5lWWVhciA9IGZ1bmN0aW9uKHZhbHVlKSB7DQoJCQkJCXZhciB5ZWFyID0gKHZhbHVlLm1hdGNoKC9jWytcLV0uKi8pID8gZHJhd1llYXIgKyBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMSksIDEwKSA6DQoJCQkJCQkodmFsdWUubWF0Y2goL1srXC1dLiovKSA/IHRoaXNZZWFyICsgcGFyc2VJbnQodmFsdWUsIDEwKSA6DQoJCQkJCQlwYXJzZUludCh2YWx1ZSwgMTApKSk7DQoJCQkJCXJldHVybiAoaXNOYU4oeWVhcikgPyB0aGlzWWVhciA6IHllYXIpOw0KCQkJCX07DQoJCQkJeWVhciA9IGRldGVybWluZVllYXIoeWVhcnNbMF0pOw0KCQkJCWVuZFllYXIgPSBNYXRoLm1heCh5ZWFyLCBkZXRlcm1pbmVZZWFyKHllYXJzWzFdIHx8ICIiKSk7DQoJCQkJeWVhciA9IChtaW5EYXRlID8gTWF0aC5tYXgoeWVhciwgbWluRGF0ZS5nZXRGdWxsWWVhcigpKSA6IHllYXIpOw0KCQkJCWVuZFllYXIgPSAobWF4RGF0ZSA/IE1hdGgubWluKGVuZFllYXIsIG1heERhdGUuZ2V0RnVsbFllYXIoKSkgOiBlbmRZZWFyKTsNCgkJCQlpbnN0LnllYXJzaHRtbCArPSAiPHNlbGVjdCBjbGFzcz0ndWktZGF0ZXBpY2tlci15ZWFyJyBkYXRhLWhhbmRsZXI9J3NlbGVjdFllYXInIGRhdGEtZXZlbnQ9J2NoYW5nZSc+IjsNCgkJCQlmb3IgKDsgeWVhciA8PSBlbmRZZWFyOyB5ZWFyKyspIHsNCgkJCQkJaW5zdC55ZWFyc2h0bWwgKz0gIjxvcHRpb24gdmFsdWU9JyIgKyB5ZWFyICsgIiciICsNCgkJCQkJCSh5ZWFyID09PSBkcmF3WWVhciA/ICIgc2VsZWN0ZWQ9J3NlbGVjdGVkJyIgOiAiIikgKw0KCQkJCQkJIj4iICsgeWVhciArICI8L29wdGlvbj4iOw0KCQkJCX0NCgkJCQlpbnN0LnllYXJzaHRtbCArPSAiPC9zZWxlY3Q+IjsNCg0KCQkJCWh0bWwgKz0gaW5zdC55ZWFyc2h0bWw7DQoJCQkJaW5zdC55ZWFyc2h0bWwgPSBudWxsOw0KCQkJfQ0KCQl9DQoNCgkJaHRtbCArPSB0aGlzLl9nZXQoaW5zdCwgInllYXJTdWZmaXgiKTsNCgkJaWYgKHNob3dNb250aEFmdGVyWWVhcikgew0KCQkJaHRtbCArPSAoc2Vjb25kYXJ5IHx8ICEoY2hhbmdlTW9udGggJiYgY2hhbmdlWWVhcikgPyAiJiN4YTA7IiA6ICIiKSArIG1vbnRoSHRtbDsNCgkJfQ0KCQlodG1sICs9ICI8L2Rpdj4iOyAvLyBDbG9zZSBkYXRlcGlja2VyX2hlYWRlcg0KCQlyZXR1cm4gaHRtbDsNCgl9LA0KDQoJLyogQWRqdXN0IG9uZSBvZiB0aGUgZGF0ZSBzdWItZmllbGRzLiAqLw0KCV9hZGp1c3RJbnN0RGF0ZTogZnVuY3Rpb24oaW5zdCwgb2Zmc2V0LCBwZXJpb2QpIHsNCgkJdmFyIHllYXIgPSBpbnN0LmRyYXdZZWFyICsgKHBlcmlvZCA9PT0gIlkiID8gb2Zmc2V0IDogMCksDQoJCQltb250aCA9IGluc3QuZHJhd01vbnRoICsgKHBlcmlvZCA9PT0gIk0iID8gb2Zmc2V0IDogMCksDQoJCQlkYXkgPSBNYXRoLm1pbihpbnN0LnNlbGVjdGVkRGF5LCB0aGlzLl9nZXREYXlzSW5Nb250aCh5ZWFyLCBtb250aCkpICsgKHBlcmlvZCA9PT0gIkQiID8gb2Zmc2V0IDogMCksDQoJCQlkYXRlID0gdGhpcy5fcmVzdHJpY3RNaW5NYXgoaW5zdCwgdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoeWVhciwgbW9udGgsIGRheSkpKTsNCg0KCQlpbnN0LnNlbGVjdGVkRGF5ID0gZGF0ZS5nZXREYXRlKCk7DQoJCWluc3QuZHJhd01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoID0gZGF0ZS5nZXRNb250aCgpOw0KCQlpbnN0LmRyYXdZZWFyID0gaW5zdC5zZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7DQoJCWlmIChwZXJpb2QgPT09ICJNIiB8fCBwZXJpb2QgPT09ICJZIikgew0KCQkJdGhpcy5fbm90aWZ5Q2hhbmdlKGluc3QpOw0KCQl9DQoJfSwNCg0KCS8qIEVuc3VyZSBhIGRhdGUgaXMgd2l0aGluIGFueSBtaW4vbWF4IGJvdW5kcy4gKi8NCglfcmVzdHJpY3RNaW5NYXg6IGZ1bmN0aW9uKGluc3QsIGRhdGUpIHsNCgkJdmFyIG1pbkRhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKGluc3QsICJtaW4iKSwNCgkJCW1heERhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKGluc3QsICJtYXgiKSwNCgkJCW5ld0RhdGUgPSAobWluRGF0ZSAmJiBkYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiBkYXRlKTsNCgkJcmV0dXJuIChtYXhEYXRlICYmIG5ld0RhdGUgPiBtYXhEYXRlID8gbWF4RGF0ZSA6IG5ld0RhdGUpOw0KCX0sDQoNCgkvKiBOb3RpZnkgY2hhbmdlIG9mIG1vbnRoL3llYXIuICovDQoJX25vdGlmeUNoYW5nZTogZnVuY3Rpb24oaW5zdCkgew0KCQl2YXIgb25DaGFuZ2UgPSB0aGlzLl9nZXQoaW5zdCwgIm9uQ2hhbmdlTW9udGhZZWFyIik7DQoJCWlmIChvbkNoYW5nZSkgew0KCQkJb25DaGFuZ2UuYXBwbHkoKGluc3QuaW5wdXQgPyBpbnN0LmlucHV0WzBdIDogbnVsbCksDQoJCQkJW2luc3Quc2VsZWN0ZWRZZWFyLCBpbnN0LnNlbGVjdGVkTW9udGggKyAxLCBpbnN0XSk7DQoJCX0NCgl9LA0KDQoJLyogRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgbW9udGhzIHRvIHNob3cuICovDQoJX2dldE51bWJlck9mTW9udGhzOiBmdW5jdGlvbihpbnN0KSB7DQoJCXZhciBudW1Nb250aHMgPSB0aGlzLl9nZXQoaW5zdCwgIm51bWJlck9mTW9udGhzIik7DQoJCXJldHVybiAobnVtTW9udGhzID09IG51bGwgPyBbMSwgMV0gOiAodHlwZW9mIG51bU1vbnRocyA9PT0gIm51bWJlciIgPyBbMSwgbnVtTW9udGhzXSA6IG51bU1vbnRocykpOw0KCX0sDQoNCgkvKiBEZXRlcm1pbmUgdGhlIGN1cnJlbnQgbWF4aW11bSBkYXRlIC0gZW5zdXJlIG5vIHRpbWUgY29tcG9uZW50cyBhcmUgc2V0LiAqLw0KCV9nZXRNaW5NYXhEYXRlOiBmdW5jdGlvbihpbnN0LCBtaW5NYXgpIHsNCgkJcmV0dXJuIHRoaXMuX2RldGVybWluZURhdGUoaW5zdCwgdGhpcy5fZ2V0KGluc3QsIG1pbk1heCArICJEYXRlIiksIG51bGwpOw0KCX0sDQoNCgkvKiBGaW5kIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIGdpdmVuIG1vbnRoLiAqLw0KCV9nZXREYXlzSW5Nb250aDogZnVuY3Rpb24oeWVhciwgbW9udGgpIHsNCgkJcmV0dXJuIDMyIC0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoeWVhciwgbW9udGgsIDMyKSkuZ2V0RGF0ZSgpOw0KCX0sDQoNCgkvKiBGaW5kIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGZpcnN0IG9mIGEgbW9udGguICovDQoJX2dldEZpcnN0RGF5T2ZNb250aDogZnVuY3Rpb24oeWVhciwgbW9udGgpIHsNCgkJcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKS5nZXREYXkoKTsNCgl9LA0KDQoJLyogRGV0ZXJtaW5lcyBpZiB3ZSBzaG91bGQgYWxsb3cgYSAibmV4dC9wcmV2IiBtb250aCBkaXNwbGF5IGNoYW5nZS4gKi8NCglfY2FuQWRqdXN0TW9udGg6IGZ1bmN0aW9uKGluc3QsIG9mZnNldCwgY3VyWWVhciwgY3VyTW9udGgpIHsNCgkJdmFyIG51bU1vbnRocyA9IHRoaXMuX2dldE51bWJlck9mTW9udGhzKGluc3QpLA0KCQkJZGF0ZSA9IHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGN1clllYXIsDQoJCQljdXJNb250aCArIChvZmZzZXQgPCAwID8gb2Zmc2V0IDogbnVtTW9udGhzWzBdICogbnVtTW9udGhzWzFdKSwgMSkpOw0KDQoJCWlmIChvZmZzZXQgPCAwKSB7DQoJCQlkYXRlLnNldERhdGUodGhpcy5fZ2V0RGF5c0luTW9udGgoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkpKTsNCgkJfQ0KCQlyZXR1cm4gdGhpcy5faXNJblJhbmdlKGluc3QsIGRhdGUpOw0KCX0sDQoNCgkvKiBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgYWNjZXB0ZWQgcmFuZ2U/ICovDQoJX2lzSW5SYW5nZTogZnVuY3Rpb24oaW5zdCwgZGF0ZSkgew0KCQl2YXIgeWVhclNwbGl0LCBjdXJyZW50WWVhciwNCgkJCW1pbkRhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKGluc3QsICJtaW4iKSwNCgkJCW1heERhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKGluc3QsICJtYXgiKSwNCgkJCW1pblllYXIgPSBudWxsLA0KCQkJbWF4WWVhciA9IG51bGwsDQoJCQl5ZWFycyA9IHRoaXMuX2dldChpbnN0LCAieWVhclJhbmdlIik7DQoJCQlpZiAoeWVhcnMpew0KCQkJCXllYXJTcGxpdCA9IHllYXJzLnNwbGl0KCI6Iik7DQoJCQkJY3VycmVudFllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7DQoJCQkJbWluWWVhciA9IHBhcnNlSW50KHllYXJTcGxpdFswXSwgMTApOw0KCQkJCW1heFllYXIgPSBwYXJzZUludCh5ZWFyU3BsaXRbMV0sIDEwKTsNCgkJCQlpZiAoIHllYXJTcGxpdFswXS5tYXRjaCgvWytcLV0uKi8pICkgew0KCQkJCQltaW5ZZWFyICs9IGN1cnJlbnRZZWFyOw0KCQkJCX0NCgkJCQlpZiAoIHllYXJTcGxpdFsxXS5tYXRjaCgvWytcLV0uKi8pICkgew0KCQkJCQltYXhZZWFyICs9IGN1cnJlbnRZZWFyOw0KCQkJCX0NCgkJCX0NCg0KCQlyZXR1cm4gKCghbWluRGF0ZSB8fCBkYXRlLmdldFRpbWUoKSA+PSBtaW5EYXRlLmdldFRpbWUoKSkgJiYNCgkJCSghbWF4RGF0ZSB8fCBkYXRlLmdldFRpbWUoKSA8PSBtYXhEYXRlLmdldFRpbWUoKSkgJiYNCgkJCSghbWluWWVhciB8fCBkYXRlLmdldEZ1bGxZZWFyKCkgPj0gbWluWWVhcikgJiYNCgkJCSghbWF4WWVhciB8fCBkYXRlLmdldEZ1bGxZZWFyKCkgPD0gbWF4WWVhcikpOw0KCX0sDQoNCgkvKiBQcm92aWRlIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBmb3JtYXR0aW5nL3BhcnNpbmcuICovDQoJX2dldEZvcm1hdENvbmZpZzogZnVuY3Rpb24oaW5zdCkgew0KCQl2YXIgc2hvcnRZZWFyQ3V0b2ZmID0gdGhpcy5fZ2V0KGluc3QsICJzaG9ydFllYXJDdXRvZmYiKTsNCgkJc2hvcnRZZWFyQ3V0b2ZmID0gKHR5cGVvZiBzaG9ydFllYXJDdXRvZmYgIT09ICJzdHJpbmciID8gc2hvcnRZZWFyQ3V0b2ZmIDoNCgkJCW5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAlIDEwMCArIHBhcnNlSW50KHNob3J0WWVhckN1dG9mZiwgMTApKTsNCgkJcmV0dXJuIHtzaG9ydFllYXJDdXRvZmY6IHNob3J0WWVhckN1dG9mZiwNCgkJCWRheU5hbWVzU2hvcnQ6IHRoaXMuX2dldChpbnN0LCAiZGF5TmFtZXNTaG9ydCIpLCBkYXlOYW1lczogdGhpcy5fZ2V0KGluc3QsICJkYXlOYW1lcyIpLA0KCQkJbW9udGhOYW1lc1Nob3J0OiB0aGlzLl9nZXQoaW5zdCwgIm1vbnRoTmFtZXNTaG9ydCIpLCBtb250aE5hbWVzOiB0aGlzLl9nZXQoaW5zdCwgIm1vbnRoTmFtZXMiKX07DQoJfSwNCg0KCS8qIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBmb3IgZGlzcGxheS4gKi8NCglfZm9ybWF0RGF0ZTogZnVuY3Rpb24oaW5zdCwgZGF5LCBtb250aCwgeWVhcikgew0KCQlpZiAoIWRheSkgew0KCQkJaW5zdC5jdXJyZW50RGF5ID0gaW5zdC5zZWxlY3RlZERheTsNCgkJCWluc3QuY3VycmVudE1vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoOw0KCQkJaW5zdC5jdXJyZW50WWVhciA9IGluc3Quc2VsZWN0ZWRZZWFyOw0KCQl9DQoJCXZhciBkYXRlID0gKGRheSA/ICh0eXBlb2YgZGF5ID09PSAib2JqZWN0IiA/IGRheSA6DQoJCQl0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5KSkpIDoNCgkJCXRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGluc3QuY3VycmVudFllYXIsIGluc3QuY3VycmVudE1vbnRoLCBpbnN0LmN1cnJlbnREYXkpKSk7DQoJCXJldHVybiB0aGlzLmZvcm1hdERhdGUodGhpcy5fZ2V0KGluc3QsICJkYXRlRm9ybWF0IiksIGRhdGUsIHRoaXMuX2dldEZvcm1hdENvbmZpZyhpbnN0KSk7DQoJfQ0KfSk7DQoNCi8qDQogKiBCaW5kIGhvdmVyIGV2ZW50cyBmb3IgZGF0ZXBpY2tlciBlbGVtZW50cy4NCiAqIERvbmUgdmlhIGRlbGVnYXRlIHNvIHRoZSBiaW5kaW5nIG9ubHkgb2NjdXJzIG9uY2UgaW4gdGhlIGxpZmV0aW1lIG9mIHRoZSBwYXJlbnQgZGl2Lg0KICogR2xvYmFsIGRhdGVwaWNrZXJfaW5zdEFjdGl2ZSwgc2V0IGJ5IF91cGRhdGVEYXRlcGlja2VyIGFsbG93cyB0aGUgaGFuZGxlcnMgdG8gZmluZCB0aGVpciB3YXkgYmFjayB0byB0aGUgYWN0aXZlIHBpY2tlci4NCiAqLw0KZnVuY3Rpb24gZGF0ZXBpY2tlcl9iaW5kSG92ZXIoZHBEaXYpIHsNCgl2YXIgc2VsZWN0b3IgPSAiYnV0dG9uLCAudWktZGF0ZXBpY2tlci1wcmV2LCAudWktZGF0ZXBpY2tlci1uZXh0LCAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCBhIjsNCglyZXR1cm4gZHBEaXYuZGVsZWdhdGUoc2VsZWN0b3IsICJtb3VzZW91dCIsIGZ1bmN0aW9uKCkgew0KCQkJJCh0aGlzKS5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKTsNCgkJCWlmICh0aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1kYXRlcGlja2VyLXByZXYiKSAhPT0gLTEpIHsNCgkJCQkkKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1kYXRlcGlja2VyLXByZXYtaG92ZXIiKTsNCgkJCX0NCgkJCWlmICh0aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1kYXRlcGlja2VyLW5leHQiKSAhPT0gLTEpIHsNCgkJCQkkKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1kYXRlcGlja2VyLW5leHQtaG92ZXIiKTsNCgkJCX0NCgkJfSkNCgkJLmRlbGVnYXRlKCBzZWxlY3RvciwgIm1vdXNlb3ZlciIsIGRhdGVwaWNrZXJfaGFuZGxlTW91c2VvdmVyICk7DQp9DQoNCmZ1bmN0aW9uIGRhdGVwaWNrZXJfaGFuZGxlTW91c2VvdmVyKCkgew0KCWlmICghJC5kYXRlcGlja2VyLl9pc0Rpc2FibGVkRGF0ZXBpY2tlciggZGF0ZXBpY2tlcl9pbnN0QWN0aXZlLmlubGluZT8gZGF0ZXBpY2tlcl9pbnN0QWN0aXZlLmRwRGl2LnBhcmVudCgpWzBdIDogZGF0ZXBpY2tlcl9pbnN0QWN0aXZlLmlucHV0WzBdKSkgew0KCQkkKHRoaXMpLnBhcmVudHMoIi51aS1kYXRlcGlja2VyLWNhbGVuZGFyIikuZmluZCgiYSIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpOw0KCQkkKHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpOw0KCQlpZiAodGhpcy5jbGFzc05hbWUuaW5kZXhPZigidWktZGF0ZXBpY2tlci1wcmV2IikgIT09IC0xKSB7DQoJCQkkKHRoaXMpLmFkZENsYXNzKCJ1aS1kYXRlcGlja2VyLXByZXYtaG92ZXIiKTsNCgkJfQ0KCQlpZiAodGhpcy5jbGFzc05hbWUuaW5kZXhPZigidWktZGF0ZXBpY2tlci1uZXh0IikgIT09IC0xKSB7DQoJCQkkKHRoaXMpLmFkZENsYXNzKCJ1aS1kYXRlcGlja2VyLW5leHQtaG92ZXIiKTsNCgkJfQ0KCX0NCn0NCg0KLyogalF1ZXJ5IGV4dGVuZCBub3cgaWdub3JlcyBudWxscyEgKi8NCmZ1bmN0aW9uIGRhdGVwaWNrZXJfZXh0ZW5kUmVtb3ZlKHRhcmdldCwgcHJvcHMpIHsNCgkkLmV4dGVuZCh0YXJnZXQsIHByb3BzKTsNCglmb3IgKHZhciBuYW1lIGluIHByb3BzKSB7DQoJCWlmIChwcm9wc1tuYW1lXSA9PSBudWxsKSB7DQoJCQl0YXJnZXRbbmFtZV0gPSBwcm9wc1tuYW1lXTsNCgkJfQ0KCX0NCglyZXR1cm4gdGFyZ2V0Ow0KfQ0KDQovKiBJbnZva2UgdGhlIGRhdGVwaWNrZXIgZnVuY3Rpb25hbGl0eS4NCiAgIEBwYXJhbSAgb3B0aW9ucyAgc3RyaW5nIC0gYSBjb21tYW5kLCBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5IGFkZGl0aW9uYWwgcGFyYW1ldGVycyBvcg0KCQkJCQlPYmplY3QgLSBzZXR0aW5ncyBmb3IgYXR0YWNoaW5nIG5ldyBkYXRlcGlja2VyIGZ1bmN0aW9uYWxpdHkNCiAgIEByZXR1cm4gIGpRdWVyeSBvYmplY3QgKi8NCiQuZm4uZGF0ZXBpY2tlciA9IGZ1bmN0aW9uKG9wdGlvbnMpew0KDQoJLyogVmVyaWZ5IGFuIGVtcHR5IGNvbGxlY3Rpb24gd2Fzbid0IHBhc3NlZCAtIEZpeGVzICM2OTc2ICovDQoJaWYgKCAhdGhpcy5sZW5ndGggKSB7DQoJCXJldHVybiB0aGlzOw0KCX0NCg0KCS8qIEluaXRpYWxpc2UgdGhlIGRhdGUgcGlja2VyLiAqLw0KCWlmICghJC5kYXRlcGlja2VyLmluaXRpYWxpemVkKSB7DQoJCSQoZG9jdW1lbnQpLm1vdXNlZG93bigkLmRhdGVwaWNrZXIuX2NoZWNrRXh0ZXJuYWxDbGljayk7DQoJCSQuZGF0ZXBpY2tlci5pbml0aWFsaXplZCA9IHRydWU7DQoJfQ0KDQoJLyogQXBwZW5kIGRhdGVwaWNrZXIgbWFpbiBjb250YWluZXIgdG8gYm9keSBpZiBub3QgZXhpc3QuICovDQoJaWYgKCQoIiMiKyQuZGF0ZXBpY2tlci5fbWFpbkRpdklkKS5sZW5ndGggPT09IDApIHsNCgkJJCgiYm9keSIpLmFwcGVuZCgkLmRhdGVwaWNrZXIuZHBEaXYpOw0KCX0NCg0KCXZhciBvdGhlckFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpOw0KCWlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gInN0cmluZyIgJiYgKG9wdGlvbnMgPT09ICJpc0Rpc2FibGVkIiB8fCBvcHRpb25zID09PSAiZ2V0RGF0ZSIgfHwgb3B0aW9ucyA9PT0gIndpZGdldCIpKSB7DQoJCXJldHVybiAkLmRhdGVwaWNrZXJbIl8iICsgb3B0aW9ucyArICJEYXRlcGlja2VyIl0uDQoJCQlhcHBseSgkLmRhdGVwaWNrZXIsIFt0aGlzWzBdXS5jb25jYXQob3RoZXJBcmdzKSk7DQoJfQ0KCWlmIChvcHRpb25zID09PSAib3B0aW9uIiAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIHR5cGVvZiBhcmd1bWVudHNbMV0gPT09ICJzdHJpbmciKSB7DQoJCXJldHVybiAkLmRhdGVwaWNrZXJbIl8iICsgb3B0aW9ucyArICJEYXRlcGlja2VyIl0uDQoJCQlhcHBseSgkLmRhdGVwaWNrZXIsIFt0aGlzWzBdXS5jb25jYXQob3RoZXJBcmdzKSk7DQoJfQ0KCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7DQoJCXR5cGVvZiBvcHRpb25zID09PSAic3RyaW5nIiA/DQoJCQkkLmRhdGVwaWNrZXJbIl8iICsgb3B0aW9ucyArICJEYXRlcGlja2VyIl0uDQoJCQkJYXBwbHkoJC5kYXRlcGlja2VyLCBbdGhpc10uY29uY2F0KG90aGVyQXJncykpIDoNCgkJCSQuZGF0ZXBpY2tlci5fYXR0YWNoRGF0ZXBpY2tlcih0aGlzLCBvcHRpb25zKTsNCgl9KTsNCn07DQoNCiQuZGF0ZXBpY2tlciA9IG5ldyBEYXRlcGlja2VyKCk7IC8vIHNpbmdsZXRvbiBpbnN0YW5jZQ0KJC5kYXRlcGlja2VyLmluaXRpYWxpemVkID0gZmFsc2U7DQokLmRhdGVwaWNrZXIudXVpZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KJC5kYXRlcGlja2VyLnZlcnNpb24gPSAiMS4xMS4yIjsNCg0KdmFyIGRhdGVwaWNrZXIgPSAkLmRhdGVwaWNrZXI7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRHJhZ2dhYmxlIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9kcmFnZ2FibGUvDQogKi8NCg0KDQokLndpZGdldCgidWkuZHJhZ2dhYmxlIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjExLjIiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAiZHJhZyIsDQoJb3B0aW9uczogew0KCQlhZGRDbGFzc2VzOiB0cnVlLA0KCQlhcHBlbmRUbzogInBhcmVudCIsDQoJCWF4aXM6IGZhbHNlLA0KCQljb25uZWN0VG9Tb3J0YWJsZTogZmFsc2UsDQoJCWNvbnRhaW5tZW50OiBmYWxzZSwNCgkJY3Vyc29yOiAiYXV0byIsDQoJCWN1cnNvckF0OiBmYWxzZSwNCgkJZ3JpZDogZmFsc2UsDQoJCWhhbmRsZTogZmFsc2UsDQoJCWhlbHBlcjogIm9yaWdpbmFsIiwNCgkJaWZyYW1lRml4OiBmYWxzZSwNCgkJb3BhY2l0eTogZmFsc2UsDQoJCXJlZnJlc2hQb3NpdGlvbnM6IGZhbHNlLA0KCQlyZXZlcnQ6IGZhbHNlLA0KCQlyZXZlcnREdXJhdGlvbjogNTAwLA0KCQlzY29wZTogImRlZmF1bHQiLA0KCQlzY3JvbGw6IHRydWUsDQoJCXNjcm9sbFNlbnNpdGl2aXR5OiAyMCwNCgkJc2Nyb2xsU3BlZWQ6IDIwLA0KCQlzbmFwOiBmYWxzZSwNCgkJc25hcE1vZGU6ICJib3RoIiwNCgkJc25hcFRvbGVyYW5jZTogMjAsDQoJCXN0YWNrOiBmYWxzZSwNCgkJekluZGV4OiBmYWxzZSwNCg0KCQkvLyBjYWxsYmFja3MNCgkJZHJhZzogbnVsbCwNCgkJc3RhcnQ6IG51bGwsDQoJCXN0b3A6IG51bGwNCgl9LA0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KDQoJCWlmICggdGhpcy5vcHRpb25zLmhlbHBlciA9PT0gIm9yaWdpbmFsIiApIHsNCgkJCXRoaXMuX3NldFBvc2l0aW9uUmVsYXRpdmUoKTsNCgkJfQ0KCQlpZiAodGhpcy5vcHRpb25zLmFkZENsYXNzZXMpew0KCQkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUiKTsNCgkJfQ0KCQlpZiAodGhpcy5vcHRpb25zLmRpc2FibGVkKXsNCgkJCXRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRpc2FibGVkIik7DQoJCX0NCgkJdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCk7DQoNCgkJdGhpcy5fbW91c2VJbml0KCk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KCQlpZiAoIGtleSA9PT0gImhhbmRsZSIgKSB7DQoJCQl0aGlzLl9yZW1vdmVIYW5kbGVDbGFzc05hbWUoKTsNCgkJCXRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpOw0KCQl9DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJaWYgKCAoIHRoaXMuaGVscGVyIHx8IHRoaXMuZWxlbWVudCApLmlzKCAiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIgKSApIHsNCgkJCXRoaXMuZGVzdHJveU9uQ2xlYXIgPSB0cnVlOw0KCQkJcmV0dXJuOw0KCQl9DQoJCXRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyggInVpLWRyYWdnYWJsZSB1aS1kcmFnZ2FibGUtZHJhZ2dpbmcgdWktZHJhZ2dhYmxlLWRpc2FibGVkIiApOw0KCQl0aGlzLl9yZW1vdmVIYW5kbGVDbGFzc05hbWUoKTsNCgkJdGhpcy5fbW91c2VEZXN0cm95KCk7DQoJfSwNCg0KCV9tb3VzZUNhcHR1cmU6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciBvID0gdGhpcy5vcHRpb25zOw0KDQoJCXRoaXMuX2JsdXJBY3RpdmVFbGVtZW50KCBldmVudCApOw0KDQoJCS8vIGFtb25nIG90aGVycywgcHJldmVudCBhIGRyYWcgb24gYSByZXNpemFibGUtaGFuZGxlDQoJCWlmICh0aGlzLmhlbHBlciB8fCBvLmRpc2FibGVkIHx8ICQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCIudWktcmVzaXphYmxlLWhhbmRsZSIpLmxlbmd0aCA+IDApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vUXVpdCBpZiB3ZSdyZSBub3Qgb24gYSB2YWxpZCBoYW5kbGUNCgkJdGhpcy5oYW5kbGUgPSB0aGlzLl9nZXRIYW5kbGUoZXZlbnQpOw0KCQlpZiAoIXRoaXMuaGFuZGxlKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl0aGlzLl9ibG9ja0ZyYW1lcyggby5pZnJhbWVGaXggPT09IHRydWUgPyAiaWZyYW1lIiA6IG8uaWZyYW1lRml4ICk7DQoNCgkJcmV0dXJuIHRydWU7DQoNCgl9LA0KDQoJX2Jsb2NrRnJhbWVzOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7DQoJCXRoaXMuaWZyYW1lQmxvY2tzID0gdGhpcy5kb2N1bWVudC5maW5kKCBzZWxlY3RvciApLm1hcChmdW5jdGlvbigpIHsNCgkJCXZhciBpZnJhbWUgPSAkKCB0aGlzICk7DQoNCgkJCXJldHVybiAkKCAiPGRpdj4iICkNCgkJCQkuY3NzKCAicG9zaXRpb24iLCAiYWJzb2x1dGUiICkNCgkJCQkuYXBwZW5kVG8oIGlmcmFtZS5wYXJlbnQoKSApDQoJCQkJLm91dGVyV2lkdGgoIGlmcmFtZS5vdXRlcldpZHRoKCkgKQ0KCQkJCS5vdXRlckhlaWdodCggaWZyYW1lLm91dGVySGVpZ2h0KCkgKQ0KCQkJCS5vZmZzZXQoIGlmcmFtZS5vZmZzZXQoKSApWyAwIF07DQoJCX0pOw0KCX0sDQoNCglfdW5ibG9ja0ZyYW1lczogZnVuY3Rpb24oKSB7DQoJCWlmICggdGhpcy5pZnJhbWVCbG9ja3MgKSB7DQoJCQl0aGlzLmlmcmFtZUJsb2Nrcy5yZW1vdmUoKTsNCgkJCWRlbGV0ZSB0aGlzLmlmcmFtZUJsb2NrczsNCgkJfQ0KCX0sDQoNCglfYmx1ckFjdGl2ZUVsZW1lbnQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGRvY3VtZW50ID0gdGhpcy5kb2N1bWVudFsgMCBdOw0KDQoJCS8vIE9ubHkgbmVlZCB0byBibHVyIGlmIHRoZSBldmVudCBvY2N1cnJlZCBvbiB0aGUgZHJhZ2dhYmxlIGl0c2VsZiwgc2VlICMxMDUyNw0KCQlpZiAoICF0aGlzLmhhbmRsZUVsZW1lbnQuaXMoIGV2ZW50LnRhcmdldCApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gc3VwcG9ydDogSUU5DQoJCS8vIElFOSB0aHJvd3MgYW4gIlVuc3BlY2lmaWVkIGVycm9yIiBhY2Nlc3NpbmcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBmcm9tIGFuIDxpZnJhbWU+DQoJCXRyeSB7DQoNCgkJCS8vIFN1cHBvcnQ6IElFOSwgSUUxMA0KCQkJLy8gSWYgdGhlIDxib2R5PiBpcyBibHVycmVkLCBJRSB3aWxsIHN3aXRjaCB3aW5kb3dzLCBzZWUgIzk1MjANCgkJCWlmICggZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJib2R5IiApIHsNCg0KCQkJCS8vIEJsdXIgYW55IGVsZW1lbnQgdGhhdCBjdXJyZW50bHkgaGFzIGZvY3VzLCBzZWUgIzQyNjENCgkJCQkkKCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICkuYmx1cigpOw0KCQkJfQ0KCQl9IGNhdGNoICggZXJyb3IgKSB7fQ0KCX0sDQoNCglfbW91c2VTdGFydDogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl2YXIgbyA9IHRoaXMub3B0aW9uczsNCg0KCQkvL0NyZWF0ZSBhbmQgYXBwZW5kIHRoZSB2aXNpYmxlIGhlbHBlcg0KCQl0aGlzLmhlbHBlciA9IHRoaXMuX2NyZWF0ZUhlbHBlcihldmVudCk7DQoNCgkJdGhpcy5oZWxwZXIuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpOw0KDQoJCS8vQ2FjaGUgdGhlIGhlbHBlciBzaXplDQoJCXRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKTsNCg0KCQkvL0lmIGRkbWFuYWdlciBpcyB1c2VkIGZvciBkcm9wcGFibGVzLCBzZXQgdGhlIGdsb2JhbCBkcmFnZ2FibGUNCgkJaWYgKCQudWkuZGRtYW5hZ2VyKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5jdXJyZW50ID0gdGhpczsNCgkJfQ0KDQoJCS8qDQoJCSAqIC0gUG9zaXRpb24gZ2VuZXJhdGlvbiAtDQoJCSAqIFRoaXMgYmxvY2sgZ2VuZXJhdGVzIGV2ZXJ5dGhpbmcgcG9zaXRpb24gcmVsYXRlZCAtIGl0J3MgdGhlIGNvcmUgb2YgZHJhZ2dhYmxlcy4NCgkJICovDQoNCgkJLy9DYWNoZSB0aGUgbWFyZ2lucyBvZiB0aGUgb3JpZ2luYWwgZWxlbWVudA0KCQl0aGlzLl9jYWNoZU1hcmdpbnMoKTsNCg0KCQkvL1N0b3JlIHRoZSBoZWxwZXIncyBjc3MgcG9zaXRpb24NCgkJdGhpcy5jc3NQb3NpdGlvbiA9IHRoaXMuaGVscGVyLmNzcyggInBvc2l0aW9uIiApOw0KCQl0aGlzLnNjcm9sbFBhcmVudCA9IHRoaXMuaGVscGVyLnNjcm9sbFBhcmVudCggdHJ1ZSApOw0KCQl0aGlzLm9mZnNldFBhcmVudCA9IHRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpOw0KCQl0aGlzLmhhc0ZpeGVkQW5jZXN0b3IgPSB0aGlzLmhlbHBlci5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCkgew0KCQkJCXJldHVybiAkKCB0aGlzICkuY3NzKCAicG9zaXRpb24iICkgPT09ICJmaXhlZCI7DQoJCQl9KS5sZW5ndGggPiAwOw0KDQoJCS8vVGhlIGVsZW1lbnQncyBhYnNvbHV0ZSBwb3NpdGlvbiBvbiB0aGUgcGFnZSBtaW51cyBtYXJnaW5zDQoJCXRoaXMucG9zaXRpb25BYnMgPSB0aGlzLmVsZW1lbnQub2Zmc2V0KCk7DQoJCXRoaXMuX3JlZnJlc2hPZmZzZXRzKCBldmVudCApOw0KDQoJCS8vR2VuZXJhdGUgdGhlIG9yaWdpbmFsIHBvc2l0aW9uDQoJCXRoaXMub3JpZ2luYWxQb3NpdGlvbiA9IHRoaXMucG9zaXRpb24gPSB0aGlzLl9nZW5lcmF0ZVBvc2l0aW9uKCBldmVudCwgZmFsc2UgKTsNCgkJdGhpcy5vcmlnaW5hbFBhZ2VYID0gZXZlbnQucGFnZVg7DQoJCXRoaXMub3JpZ2luYWxQYWdlWSA9IGV2ZW50LnBhZ2VZOw0KDQoJCS8vQWRqdXN0IHRoZSBtb3VzZSBvZmZzZXQgcmVsYXRpdmUgdG8gdGhlIGhlbHBlciBpZiAiY3Vyc29yQXQiIGlzIHN1cHBsaWVkDQoJCShvLmN1cnNvckF0ICYmIHRoaXMuX2FkanVzdE9mZnNldEZyb21IZWxwZXIoby5jdXJzb3JBdCkpOw0KDQoJCS8vU2V0IGEgY29udGFpbm1lbnQgaWYgZ2l2ZW4gaW4gdGhlIG9wdGlvbnMNCgkJdGhpcy5fc2V0Q29udGFpbm1lbnQoKTsNCg0KCQkvL1RyaWdnZXIgZXZlbnQgKyBjYWxsYmFja3MNCgkJaWYgKHRoaXMuX3RyaWdnZXIoInN0YXJ0IiwgZXZlbnQpID09PSBmYWxzZSkgew0KCQkJdGhpcy5fY2xlYXIoKTsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vUmVjYWNoZSB0aGUgaGVscGVyIHNpemUNCgkJdGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpOw0KDQoJCS8vUHJlcGFyZSB0aGUgZHJvcHBhYmxlIG9mZnNldHMNCgkJaWYgKCQudWkuZGRtYW5hZ2VyICYmICFvLmRyb3BCZWhhdmlvdXIpIHsNCgkJCSQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsIGV2ZW50KTsNCgkJfQ0KDQoJCS8vIFJlc2V0IGhlbHBlcidzIHJpZ2h0L2JvdHRvbSBjc3MgaWYgdGhleSdyZSBzZXQgYW5kIHNldCBleHBsaWNpdCB3aWR0aC9oZWlnaHQgaW5zdGVhZA0KCQkvLyBhcyB0aGlzIHByZXZlbnRzIHJlc2l6aW5nIG9mIGVsZW1lbnRzIHdpdGggcmlnaHQvYm90dG9tIHNldCAoc2VlICM3NzcyKQ0KCQl0aGlzLl9ub3JtYWxpemVSaWdodEJvdHRvbSgpOw0KDQoJCXRoaXMuX21vdXNlRHJhZyhldmVudCwgdHJ1ZSk7IC8vRXhlY3V0ZSB0aGUgZHJhZyBvbmNlIC0gdGhpcyBjYXVzZXMgdGhlIGhlbHBlciBub3QgdG8gYmUgdmlzaWJsZSBiZWZvcmUgZ2V0dGluZyBpdHMgY29ycmVjdCBwb3NpdGlvbg0KDQoJCS8vSWYgdGhlIGRkbWFuYWdlciBpcyB1c2VkIGZvciBkcm9wcGFibGVzLCBpbmZvcm0gdGhlIG1hbmFnZXIgdGhhdCBkcmFnZ2luZyBoYXMgc3RhcnRlZCAoc2VlICM1MDAzKQ0KCQlpZiAoICQudWkuZGRtYW5hZ2VyICkgew0KCQkJJC51aS5kZG1hbmFnZXIuZHJhZ1N0YXJ0KHRoaXMsIGV2ZW50KTsNCgkJfQ0KDQoJCXJldHVybiB0cnVlOw0KCX0sDQoNCglfcmVmcmVzaE9mZnNldHM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdGhpcy5vZmZzZXQgPSB7DQoJCQl0b3A6IHRoaXMucG9zaXRpb25BYnMudG9wIC0gdGhpcy5tYXJnaW5zLnRvcCwNCgkJCWxlZnQ6IHRoaXMucG9zaXRpb25BYnMubGVmdCAtIHRoaXMubWFyZ2lucy5sZWZ0LA0KCQkJc2Nyb2xsOiBmYWxzZSwNCgkJCXBhcmVudDogdGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCksDQoJCQlyZWxhdGl2ZTogdGhpcy5fZ2V0UmVsYXRpdmVPZmZzZXQoKQ0KCQl9Ow0KDQoJCXRoaXMub2Zmc2V0LmNsaWNrID0gew0KCQkJbGVmdDogZXZlbnQucGFnZVggLSB0aGlzLm9mZnNldC5sZWZ0LA0KCQkJdG9wOiBldmVudC5wYWdlWSAtIHRoaXMub2Zmc2V0LnRvcA0KCQl9Ow0KCX0sDQoNCglfbW91c2VEcmFnOiBmdW5jdGlvbihldmVudCwgbm9Qcm9wYWdhdGlvbikgew0KCQkvLyByZXNldCBhbnkgbmVjZXNzYXJ5IGNhY2hlZCBwcm9wZXJ0aWVzIChzZWUgIzUwMDkpDQoJCWlmICggdGhpcy5oYXNGaXhlZEFuY2VzdG9yICkgew0KCQkJdGhpcy5vZmZzZXQucGFyZW50ID0gdGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCk7DQoJCX0NCg0KCQkvL0NvbXB1dGUgdGhlIGhlbHBlcnMgcG9zaXRpb24NCgkJdGhpcy5wb3NpdGlvbiA9IHRoaXMuX2dlbmVyYXRlUG9zaXRpb24oIGV2ZW50LCB0cnVlICk7DQoJCXRoaXMucG9zaXRpb25BYnMgPSB0aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKTsNCg0KCQkvL0NhbGwgcGx1Z2lucyBhbmQgY2FsbGJhY2tzIGFuZCB1c2UgdGhlIHJlc3VsdGluZyBwb3NpdGlvbiBpZiBzb21ldGhpbmcgaXMgcmV0dXJuZWQNCgkJaWYgKCFub1Byb3BhZ2F0aW9uKSB7DQoJCQl2YXIgdWkgPSB0aGlzLl91aUhhc2goKTsNCgkJCWlmICh0aGlzLl90cmlnZ2VyKCJkcmFnIiwgZXZlbnQsIHVpKSA9PT0gZmFsc2UpIHsNCgkJCQl0aGlzLl9tb3VzZVVwKHt9KTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQl0aGlzLnBvc2l0aW9uID0gdWkucG9zaXRpb247DQoJCX0NCg0KCQl0aGlzLmhlbHBlclsgMCBdLnN0eWxlLmxlZnQgPSB0aGlzLnBvc2l0aW9uLmxlZnQgKyAicHgiOw0KCQl0aGlzLmhlbHBlclsgMCBdLnN0eWxlLnRvcCA9IHRoaXMucG9zaXRpb24udG9wICsgInB4IjsNCg0KCQlpZiAoJC51aS5kZG1hbmFnZXIpIHsNCgkJCSQudWkuZGRtYW5hZ2VyLmRyYWcodGhpcywgZXZlbnQpOw0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfbW91c2VTdG9wOiBmdW5jdGlvbihldmVudCkgew0KDQoJCS8vSWYgd2UgYXJlIHVzaW5nIGRyb3BwYWJsZXMsIGluZm9ybSB0aGUgbWFuYWdlciBhYm91dCB0aGUgZHJvcA0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQlkcm9wcGVkID0gZmFsc2U7DQoJCWlmICgkLnVpLmRkbWFuYWdlciAmJiAhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXIpIHsNCgkJCWRyb3BwZWQgPSAkLnVpLmRkbWFuYWdlci5kcm9wKHRoaXMsIGV2ZW50KTsNCgkJfQ0KDQoJCS8vaWYgYSBkcm9wIGNvbWVzIGZyb20gb3V0c2lkZSAoYSBzb3J0YWJsZSkNCgkJaWYgKHRoaXMuZHJvcHBlZCkgew0KCQkJZHJvcHBlZCA9IHRoaXMuZHJvcHBlZDsNCgkJCXRoaXMuZHJvcHBlZCA9IGZhbHNlOw0KCQl9DQoNCgkJaWYgKCh0aGlzLm9wdGlvbnMucmV2ZXJ0ID09PSAiaW52YWxpZCIgJiYgIWRyb3BwZWQpIHx8ICh0aGlzLm9wdGlvbnMucmV2ZXJ0ID09PSAidmFsaWQiICYmIGRyb3BwZWQpIHx8IHRoaXMub3B0aW9ucy5yZXZlcnQgPT09IHRydWUgfHwgKCQuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMucmV2ZXJ0KSAmJiB0aGlzLm9wdGlvbnMucmV2ZXJ0LmNhbGwodGhpcy5lbGVtZW50LCBkcm9wcGVkKSkpIHsNCgkJCSQodGhpcy5oZWxwZXIpLmFuaW1hdGUodGhpcy5vcmlnaW5hbFBvc2l0aW9uLCBwYXJzZUludCh0aGlzLm9wdGlvbnMucmV2ZXJ0RHVyYXRpb24sIDEwKSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKHRoYXQuX3RyaWdnZXIoInN0b3AiLCBldmVudCkgIT09IGZhbHNlKSB7DQoJCQkJCXRoYXQuX2NsZWFyKCk7DQoJCQkJfQ0KCQkJfSk7DQoJCX0gZWxzZSB7DQoJCQlpZiAodGhpcy5fdHJpZ2dlcigic3RvcCIsIGV2ZW50KSAhPT0gZmFsc2UpIHsNCgkJCQl0aGlzLl9jbGVhcigpOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfbW91c2VVcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzLl91bmJsb2NrRnJhbWVzKCk7DQoNCgkJLy9JZiB0aGUgZGRtYW5hZ2VyIGlzIHVzZWQgZm9yIGRyb3BwYWJsZXMsIGluZm9ybSB0aGUgbWFuYWdlciB0aGF0IGRyYWdnaW5nIGhhcyBzdG9wcGVkIChzZWUgIzUwMDMpDQoJCWlmICggJC51aS5kZG1hbmFnZXIgKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5kcmFnU3RvcCh0aGlzLCBldmVudCk7DQoJCX0NCg0KCQkvLyBPbmx5IG5lZWQgdG8gZm9jdXMgaWYgdGhlIGV2ZW50IG9jY3VycmVkIG9uIHRoZSBkcmFnZ2FibGUgaXRzZWxmLCBzZWUgIzEwNTI3DQoJCWlmICggdGhpcy5oYW5kbGVFbGVtZW50LmlzKCBldmVudC50YXJnZXQgKSApIHsNCgkJCS8vIFRoZSBpbnRlcmFjdGlvbiBpcyBvdmVyOyB3aGV0aGVyIG9yIG5vdCB0aGUgY2xpY2sgcmVzdWx0ZWQgaW4gYSBkcmFnLCBmb2N1cyB0aGUgZWxlbWVudA0KCQkJdGhpcy5lbGVtZW50LmZvY3VzKCk7DQoJCX0NCg0KCQlyZXR1cm4gJC51aS5tb3VzZS5wcm90b3R5cGUuX21vdXNlVXAuY2FsbCh0aGlzLCBldmVudCk7DQoJfSwNCg0KCWNhbmNlbDogZnVuY3Rpb24oKSB7DQoNCgkJaWYgKHRoaXMuaGVscGVyLmlzKCIudWktZHJhZ2dhYmxlLWRyYWdnaW5nIikpIHsNCgkJCXRoaXMuX21vdXNlVXAoe30pOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5fY2xlYXIoKTsNCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KDQoJfSwNCg0KCV9nZXRIYW5kbGU6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXJldHVybiB0aGlzLm9wdGlvbnMuaGFuZGxlID8NCgkJCSEhJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggdGhpcy5lbGVtZW50LmZpbmQoIHRoaXMub3B0aW9ucy5oYW5kbGUgKSApLmxlbmd0aCA6DQoJCQl0cnVlOw0KCX0sDQoNCglfc2V0SGFuZGxlQ2xhc3NOYW1lOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5oYW5kbGVFbGVtZW50ID0gdGhpcy5vcHRpb25zLmhhbmRsZSA/DQoJCQl0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5vcHRpb25zLmhhbmRsZSApIDogdGhpcy5lbGVtZW50Ow0KCQl0aGlzLmhhbmRsZUVsZW1lbnQuYWRkQ2xhc3MoICJ1aS1kcmFnZ2FibGUtaGFuZGxlIiApOw0KCX0sDQoNCglfcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5oYW5kbGVFbGVtZW50LnJlbW92ZUNsYXNzKCAidWktZHJhZ2dhYmxlLWhhbmRsZSIgKTsNCgl9LA0KDQoJX2NyZWF0ZUhlbHBlcjogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl2YXIgbyA9IHRoaXMub3B0aW9ucywNCgkJCWhlbHBlcklzRnVuY3Rpb24gPSAkLmlzRnVuY3Rpb24oIG8uaGVscGVyICksDQoJCQloZWxwZXIgPSBoZWxwZXJJc0Z1bmN0aW9uID8NCgkJCQkkKCBvLmhlbHBlci5hcHBseSggdGhpcy5lbGVtZW50WyAwIF0sIFsgZXZlbnQgXSApICkgOg0KCQkJCSggby5oZWxwZXIgPT09ICJjbG9uZSIgPw0KCQkJCQl0aGlzLmVsZW1lbnQuY2xvbmUoKS5yZW1vdmVBdHRyKCAiaWQiICkgOg0KCQkJCQl0aGlzLmVsZW1lbnQgKTsNCg0KCQlpZiAoIWhlbHBlci5wYXJlbnRzKCJib2R5IikubGVuZ3RoKSB7DQoJCQloZWxwZXIuYXBwZW5kVG8oKG8uYXBwZW5kVG8gPT09ICJwYXJlbnQiID8gdGhpcy5lbGVtZW50WzBdLnBhcmVudE5vZGUgOiBvLmFwcGVuZFRvKSk7DQoJCX0NCg0KCQkvLyBodHRwOi8vYnVncy5qcXVlcnl1aS5jb20vdGlja2V0Lzk0NDYNCgkJLy8gYSBoZWxwZXIgZnVuY3Rpb24gY2FuIHJldHVybiB0aGUgb3JpZ2luYWwgZWxlbWVudA0KCQkvLyB3aGljaCB3b3VsZG4ndCBoYXZlIGJlZW4gc2V0IHRvIHJlbGF0aXZlIGluIF9jcmVhdGUNCgkJaWYgKCBoZWxwZXJJc0Z1bmN0aW9uICYmIGhlbHBlclsgMCBdID09PSB0aGlzLmVsZW1lbnRbIDAgXSApIHsNCgkJCXRoaXMuX3NldFBvc2l0aW9uUmVsYXRpdmUoKTsNCgkJfQ0KDQoJCWlmIChoZWxwZXJbMF0gIT09IHRoaXMuZWxlbWVudFswXSAmJiAhKC8oZml4ZWR8YWJzb2x1dGUpLykudGVzdChoZWxwZXIuY3NzKCJwb3NpdGlvbiIpKSkgew0KCQkJaGVscGVyLmNzcygicG9zaXRpb24iLCAiYWJzb2x1dGUiKTsNCgkJfQ0KDQoJCXJldHVybiBoZWxwZXI7DQoNCgl9LA0KDQoJX3NldFBvc2l0aW9uUmVsYXRpdmU6IGZ1bmN0aW9uKCkgew0KCQlpZiAoICEoIC9eKD86cnxhfGYpLyApLnRlc3QoIHRoaXMuZWxlbWVudC5jc3MoICJwb3NpdGlvbiIgKSApICkgew0KCQkJdGhpcy5lbGVtZW50WyAwIF0uc3R5bGUucG9zaXRpb24gPSAicmVsYXRpdmUiOw0KCQl9DQoJfSwNCg0KCV9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOiBmdW5jdGlvbihvYmopIHsNCgkJaWYgKHR5cGVvZiBvYmogPT09ICJzdHJpbmciKSB7DQoJCQlvYmogPSBvYmouc3BsaXQoIiAiKTsNCgkJfQ0KCQlpZiAoJC5pc0FycmF5KG9iaikpIHsNCgkJCW9iaiA9IHsgbGVmdDogK29ialswXSwgdG9wOiArb2JqWzFdIHx8IDAgfTsNCgkJfQ0KCQlpZiAoImxlZnQiIGluIG9iaikgew0KCQkJdGhpcy5vZmZzZXQuY2xpY2subGVmdCA9IG9iai5sZWZ0ICsgdGhpcy5tYXJnaW5zLmxlZnQ7DQoJCX0NCgkJaWYgKCJyaWdodCIgaW4gb2JqKSB7DQoJCQl0aGlzLm9mZnNldC5jbGljay5sZWZ0ID0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCAtIG9iai5yaWdodCArIHRoaXMubWFyZ2lucy5sZWZ0Ow0KCQl9DQoJCWlmICgidG9wIiBpbiBvYmopIHsNCgkJCXRoaXMub2Zmc2V0LmNsaWNrLnRvcCA9IG9iai50b3AgKyB0aGlzLm1hcmdpbnMudG9wOw0KCQl9DQoJCWlmICgiYm90dG9tIiBpbiBvYmopIHsNCgkJCXRoaXMub2Zmc2V0LmNsaWNrLnRvcCA9IHRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC0gb2JqLmJvdHRvbSArIHRoaXMubWFyZ2lucy50b3A7DQoJCX0NCgl9LA0KDQoJX2lzUm9vdE5vZGU6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQlyZXR1cm4gKCAvKGh0bWx8Ym9keSkvaSApLnRlc3QoIGVsZW1lbnQudGFnTmFtZSApIHx8IGVsZW1lbnQgPT09IHRoaXMuZG9jdW1lbnRbIDAgXTsNCgl9LA0KDQoJX2dldFBhcmVudE9mZnNldDogZnVuY3Rpb24oKSB7DQoNCgkJLy9HZXQgdGhlIG9mZnNldFBhcmVudCBhbmQgY2FjaGUgaXRzIHBvc2l0aW9uDQoJCXZhciBwbyA9IHRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpLA0KCQkJZG9jdW1lbnQgPSB0aGlzLmRvY3VtZW50WyAwIF07DQoNCgkJLy8gVGhpcyBpcyBhIHNwZWNpYWwgY2FzZSB3aGVyZSB3ZSBuZWVkIHRvIG1vZGlmeSBhIG9mZnNldCBjYWxjdWxhdGVkIG9uIHN0YXJ0LCBzaW5jZSB0aGUgZm9sbG93aW5nIGhhcHBlbmVkOg0KCQkvLyAxLiBUaGUgcG9zaXRpb24gb2YgdGhlIGhlbHBlciBpcyBhYnNvbHV0ZSwgc28gaXQncyBwb3NpdGlvbiBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBuZXh0IHBvc2l0aW9uZWQgcGFyZW50DQoJCS8vIDIuIFRoZSBhY3R1YWwgb2Zmc2V0IHBhcmVudCBpcyBhIGNoaWxkIG9mIHRoZSBzY3JvbGwgcGFyZW50LCBhbmQgdGhlIHNjcm9sbCBwYXJlbnQgaXNuJ3QgdGhlIGRvY3VtZW50LCB3aGljaCBtZWFucyB0aGF0DQoJCS8vICAgIHRoZSBzY3JvbGwgaXMgaW5jbHVkZWQgaW4gdGhlIGluaXRpYWwgY2FsY3VsYXRpb24gb2YgdGhlIG9mZnNldCBvZiB0aGUgcGFyZW50LCBhbmQgbmV2ZXIgcmVjYWxjdWxhdGVkIHVwb24gZHJhZw0KCQlpZiAodGhpcy5jc3NQb3NpdGlvbiA9PT0gImFic29sdXRlIiAmJiB0aGlzLnNjcm9sbFBhcmVudFswXSAhPT0gZG9jdW1lbnQgJiYgJC5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSwgdGhpcy5vZmZzZXRQYXJlbnRbMF0pKSB7DQoJCQlwby5sZWZ0ICs9IHRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKTsNCgkJCXBvLnRvcCArPSB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKTsNCgkJfQ0KDQoJCWlmICggdGhpcy5faXNSb290Tm9kZSggdGhpcy5vZmZzZXRQYXJlbnRbIDAgXSApICkgew0KCQkJcG8gPSB7IHRvcDogMCwgbGVmdDogMCB9Ow0KCQl9DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogcG8udG9wICsgKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyVG9wV2lkdGgiKSwgMTApIHx8IDApLA0KCQkJbGVmdDogcG8ubGVmdCArIChwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlckxlZnRXaWR0aCIpLCAxMCkgfHwgMCkNCgkJfTsNCg0KCX0sDQoNCglfZ2V0UmVsYXRpdmVPZmZzZXQ6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMuY3NzUG9zaXRpb24gIT09ICJyZWxhdGl2ZSIgKSB7DQoJCQlyZXR1cm4geyB0b3A6IDAsIGxlZnQ6IDAgfTsNCgkJfQ0KDQoJCXZhciBwID0gdGhpcy5lbGVtZW50LnBvc2l0aW9uKCksDQoJCQlzY3JvbGxJc1Jvb3ROb2RlID0gdGhpcy5faXNSb290Tm9kZSggdGhpcy5zY3JvbGxQYXJlbnRbIDAgXSApOw0KDQoJCXJldHVybiB7DQoJCQl0b3A6IHAudG9wIC0gKCBwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoICJ0b3AiICksIDEwKSB8fCAwICkgKyAoICFzY3JvbGxJc1Jvb3ROb2RlID8gdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCkgOiAwICksDQoJCQlsZWZ0OiBwLmxlZnQgLSAoIHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcyggImxlZnQiICksIDEwKSB8fCAwICkgKyAoICFzY3JvbGxJc1Jvb3ROb2RlID8gdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpIDogMCApDQoJCX07DQoNCgl9LA0KDQoJX2NhY2hlTWFyZ2luczogZnVuY3Rpb24oKSB7DQoJCXRoaXMubWFyZ2lucyA9IHsNCgkJCWxlZnQ6IChwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5MZWZ0IiksIDEwKSB8fCAwKSwNCgkJCXRvcDogKHBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpblRvcCIpLCAxMCkgfHwgMCksDQoJCQlyaWdodDogKHBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpblJpZ2h0IiksIDEwKSB8fCAwKSwNCgkJCWJvdHRvbTogKHBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkJvdHRvbSIpLCAxMCkgfHwgMCkNCgkJfTsNCgl9LA0KDQoJX2NhY2hlSGVscGVyUHJvcG9ydGlvbnM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmhlbHBlclByb3BvcnRpb25zID0gew0KCQkJd2lkdGg6IHRoaXMuaGVscGVyLm91dGVyV2lkdGgoKSwNCgkJCWhlaWdodDogdGhpcy5oZWxwZXIub3V0ZXJIZWlnaHQoKQ0KCQl9Ow0KCX0sDQoNCglfc2V0Q29udGFpbm1lbnQ6IGZ1bmN0aW9uKCkgew0KDQoJCXZhciBpc1VzZXJTY3JvbGxhYmxlLCBjLCBjZSwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQlkb2N1bWVudCA9IHRoaXMuZG9jdW1lbnRbIDAgXTsNCg0KCQl0aGlzLnJlbGF0aXZlQ29udGFpbmVyID0gbnVsbDsNCg0KCQlpZiAoICFvLmNvbnRhaW5tZW50ICkgew0KCQkJdGhpcy5jb250YWlubWVudCA9IG51bGw7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIG8uY29udGFpbm1lbnQgPT09ICJ3aW5kb3ciICkgew0KCQkJdGhpcy5jb250YWlubWVudCA9IFsNCgkJCQkkKCB3aW5kb3cgKS5zY3JvbGxMZWZ0KCkgLSB0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0IC0gdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsDQoJCQkJJCggd2luZG93ICkuc2Nyb2xsVG9wKCkgLSB0aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AgLSB0aGlzLm9mZnNldC5wYXJlbnQudG9wLA0KCQkJCSQoIHdpbmRvdyApLnNjcm9sbExlZnQoKSArICQoIHdpbmRvdyApLndpZHRoKCkgLSB0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC0gdGhpcy5tYXJnaW5zLmxlZnQsDQoJCQkJJCggd2luZG93ICkuc2Nyb2xsVG9wKCkgKyAoICQoIHdpbmRvdyApLmhlaWdodCgpIHx8IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQgKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC0gdGhpcy5tYXJnaW5zLnRvcA0KCQkJXTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggby5jb250YWlubWVudCA9PT0gImRvY3VtZW50Iikgew0KCQkJdGhpcy5jb250YWlubWVudCA9IFsNCgkJCQkwLA0KCQkJCTAsDQoJCQkJJCggZG9jdW1lbnQgKS53aWR0aCgpIC0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCAtIHRoaXMubWFyZ2lucy5sZWZ0LA0KCQkJCSggJCggZG9jdW1lbnQgKS5oZWlnaHQoKSB8fCBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0ICkgLSB0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAtIHRoaXMubWFyZ2lucy50b3ANCgkJCV07DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIG8uY29udGFpbm1lbnQuY29uc3RydWN0b3IgPT09IEFycmF5ICkgew0KCQkJdGhpcy5jb250YWlubWVudCA9IG8uY29udGFpbm1lbnQ7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIG8uY29udGFpbm1lbnQgPT09ICJwYXJlbnQiICkgew0KCQkJby5jb250YWlubWVudCA9IHRoaXMuaGVscGVyWyAwIF0ucGFyZW50Tm9kZTsNCgkJfQ0KDQoJCWMgPSAkKCBvLmNvbnRhaW5tZW50ICk7DQoJCWNlID0gY1sgMCBdOw0KDQoJCWlmICggIWNlICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaXNVc2VyU2Nyb2xsYWJsZSA9IC8oc2Nyb2xsfGF1dG8pLy50ZXN0KCBjLmNzcyggIm92ZXJmbG93IiApICk7DQoNCgkJdGhpcy5jb250YWlubWVudCA9IFsNCgkJCSggcGFyc2VJbnQoIGMuY3NzKCAiYm9yZGVyTGVmdFdpZHRoIiApLCAxMCApIHx8IDAgKSArICggcGFyc2VJbnQoIGMuY3NzKCAicGFkZGluZ0xlZnQiICksIDEwICkgfHwgMCApLA0KCQkJKCBwYXJzZUludCggYy5jc3MoICJib3JkZXJUb3BXaWR0aCIgKSwgMTAgKSB8fCAwICkgKyAoIHBhcnNlSW50KCBjLmNzcyggInBhZGRpbmdUb3AiICksIDEwICkgfHwgMCApLA0KCQkJKCBpc1VzZXJTY3JvbGxhYmxlID8gTWF0aC5tYXgoIGNlLnNjcm9sbFdpZHRoLCBjZS5vZmZzZXRXaWR0aCApIDogY2Uub2Zmc2V0V2lkdGggKSAtDQoJCQkJKCBwYXJzZUludCggYy5jc3MoICJib3JkZXJSaWdodFdpZHRoIiApLCAxMCApIHx8IDAgKSAtDQoJCQkJKCBwYXJzZUludCggYy5jc3MoICJwYWRkaW5nUmlnaHQiICksIDEwICkgfHwgMCApIC0NCgkJCQl0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC0NCgkJCQl0aGlzLm1hcmdpbnMubGVmdCAtDQoJCQkJdGhpcy5tYXJnaW5zLnJpZ2h0LA0KCQkJKCBpc1VzZXJTY3JvbGxhYmxlID8gTWF0aC5tYXgoIGNlLnNjcm9sbEhlaWdodCwgY2Uub2Zmc2V0SGVpZ2h0ICkgOiBjZS5vZmZzZXRIZWlnaHQgKSAtDQoJCQkJKCBwYXJzZUludCggYy5jc3MoICJib3JkZXJCb3R0b21XaWR0aCIgKSwgMTAgKSB8fCAwICkgLQ0KCQkJCSggcGFyc2VJbnQoIGMuY3NzKCAicGFkZGluZ0JvdHRvbSIgKSwgMTAgKSB8fCAwICkgLQ0KCQkJCXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC0NCgkJCQl0aGlzLm1hcmdpbnMudG9wIC0NCgkJCQl0aGlzLm1hcmdpbnMuYm90dG9tDQoJCV07DQoJCXRoaXMucmVsYXRpdmVDb250YWluZXIgPSBjOw0KCX0sDQoNCglfY29udmVydFBvc2l0aW9uVG86IGZ1bmN0aW9uKGQsIHBvcykgew0KDQoJCWlmICghcG9zKSB7DQoJCQlwb3MgPSB0aGlzLnBvc2l0aW9uOw0KCQl9DQoNCgkJdmFyIG1vZCA9IGQgPT09ICJhYnNvbHV0ZSIgPyAxIDogLTEsDQoJCQlzY3JvbGxJc1Jvb3ROb2RlID0gdGhpcy5faXNSb290Tm9kZSggdGhpcy5zY3JvbGxQYXJlbnRbIDAgXSApOw0KDQoJCXJldHVybiB7DQoJCQl0b3A6ICgNCgkJCQlwb3MudG9wCSsJCQkJCQkJCQkJCQkJCQkJLy8gVGhlIGFic29sdXRlIG1vdXNlIHBvc2l0aW9uDQoJCQkJdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wICogbW9kICsJCQkJCQkJCQkJLy8gT25seSBmb3IgcmVsYXRpdmUgcG9zaXRpb25lZCBub2RlczogUmVsYXRpdmUgb2Zmc2V0IGZyb20gZWxlbWVudCB0byBvZmZzZXQgcGFyZW50DQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LnRvcCAqIG1vZCAtCQkJCQkJCQkJCS8vIFRoZSBvZmZzZXRQYXJlbnQncyBvZmZzZXQgd2l0aG91dCBib3JkZXJzIChvZmZzZXQgKyBib3JkZXIpDQoJCQkJKCAoIHRoaXMuY3NzUG9zaXRpb24gPT09ICJmaXhlZCIgPyAtdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCA6ICggc2Nyb2xsSXNSb290Tm9kZSA/IDAgOiB0aGlzLm9mZnNldC5zY3JvbGwudG9wICkgKSAqIG1vZCkNCgkJCSksDQoJCQlsZWZ0OiAoDQoJCQkJcG9zLmxlZnQgKwkJCQkJCQkJCQkJCQkJCQkvLyBUaGUgYWJzb2x1dGUgbW91c2UgcG9zaXRpb24NCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0ICogbW9kICsJCQkJCQkJCQkJLy8gT25seSBmb3IgcmVsYXRpdmUgcG9zaXRpb25lZCBub2RlczogUmVsYXRpdmUgb2Zmc2V0IGZyb20gZWxlbWVudCB0byBvZmZzZXQgcGFyZW50DQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LmxlZnQgKiBtb2QJLQkJCQkJCQkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCSggKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8gLXRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0IDogKCBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0ICkgKSAqIG1vZCkNCgkJCSkNCgkJfTsNCg0KCX0sDQoNCglfZ2VuZXJhdGVQb3NpdGlvbjogZnVuY3Rpb24oIGV2ZW50LCBjb25zdHJhaW5Qb3NpdGlvbiApIHsNCg0KCQl2YXIgY29udGFpbm1lbnQsIGNvLCB0b3AsIGxlZnQsDQoJCQlvID0gdGhpcy5vcHRpb25zLA0KCQkJc2Nyb2xsSXNSb290Tm9kZSA9IHRoaXMuX2lzUm9vdE5vZGUoIHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0gKSwNCgkJCXBhZ2VYID0gZXZlbnQucGFnZVgsDQoJCQlwYWdlWSA9IGV2ZW50LnBhZ2VZOw0KDQoJCS8vIENhY2hlIHRoZSBzY3JvbGwNCgkJaWYgKCAhc2Nyb2xsSXNSb290Tm9kZSB8fCAhdGhpcy5vZmZzZXQuc2Nyb2xsICkgew0KCQkJdGhpcy5vZmZzZXQuc2Nyb2xsID0gew0KCQkJCXRvcDogdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCksDQoJCQkJbGVmdDogdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpDQoJCQl9Ow0KCQl9DQoNCgkJLyoNCgkJICogLSBQb3NpdGlvbiBjb25zdHJhaW5pbmcgLQ0KCQkgKiBDb25zdHJhaW4gdGhlIHBvc2l0aW9uIHRvIGEgbWl4IG9mIGdyaWQsIGNvbnRhaW5tZW50Lg0KCQkgKi8NCg0KCQkvLyBJZiB3ZSBhcmUgbm90IGRyYWdnaW5nIHlldCwgd2Ugd29uJ3QgY2hlY2sgZm9yIG9wdGlvbnMNCgkJaWYgKCBjb25zdHJhaW5Qb3NpdGlvbiApIHsNCgkJCWlmICggdGhpcy5jb250YWlubWVudCApIHsNCgkJCQlpZiAoIHRoaXMucmVsYXRpdmVDb250YWluZXIgKXsNCgkJCQkJY28gPSB0aGlzLnJlbGF0aXZlQ29udGFpbmVyLm9mZnNldCgpOw0KCQkJCQljb250YWlubWVudCA9IFsNCgkJCQkJCXRoaXMuY29udGFpbm1lbnRbIDAgXSArIGNvLmxlZnQsDQoJCQkJCQl0aGlzLmNvbnRhaW5tZW50WyAxIF0gKyBjby50b3AsDQoJCQkJCQl0aGlzLmNvbnRhaW5tZW50WyAyIF0gKyBjby5sZWZ0LA0KCQkJCQkJdGhpcy5jb250YWlubWVudFsgMyBdICsgY28udG9wDQoJCQkJCV07DQoJCQkJfSBlbHNlIHsNCgkJCQkJY29udGFpbm1lbnQgPSB0aGlzLmNvbnRhaW5tZW50Ow0KCQkJCX0NCg0KCQkJCWlmIChldmVudC5wYWdlWCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPCBjb250YWlubWVudFswXSkgew0KCQkJCQlwYWdlWCA9IGNvbnRhaW5tZW50WzBdICsgdGhpcy5vZmZzZXQuY2xpY2subGVmdDsNCgkJCQl9DQoJCQkJaWYgKGV2ZW50LnBhZ2VZIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wIDwgY29udGFpbm1lbnRbMV0pIHsNCgkJCQkJcGFnZVkgPSBjb250YWlubWVudFsxXSArIHRoaXMub2Zmc2V0LmNsaWNrLnRvcDsNCgkJCQl9DQoJCQkJaWYgKGV2ZW50LnBhZ2VYIC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA+IGNvbnRhaW5tZW50WzJdKSB7DQoJCQkJCXBhZ2VYID0gY29udGFpbm1lbnRbMl0gKyB0aGlzLm9mZnNldC5jbGljay5sZWZ0Ow0KCQkJCX0NCgkJCQlpZiAoZXZlbnQucGFnZVkgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPiBjb250YWlubWVudFszXSkgew0KCQkJCQlwYWdlWSA9IGNvbnRhaW5tZW50WzNdICsgdGhpcy5vZmZzZXQuY2xpY2sudG9wOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKG8uZ3JpZCkgew0KCQkJCS8vQ2hlY2sgZm9yIGdyaWQgZWxlbWVudHMgc2V0IHRvIDAgdG8gcHJldmVudCBkaXZpZGUgYnkgMCBlcnJvciBjYXVzaW5nIGludmFsaWQgYXJndW1lbnQgZXJyb3JzIGluIElFIChzZWUgdGlja2V0ICM2OTUwKQ0KCQkJCXRvcCA9IG8uZ3JpZFsxXSA/IHRoaXMub3JpZ2luYWxQYWdlWSArIE1hdGgucm91bmQoKHBhZ2VZIC0gdGhpcy5vcmlnaW5hbFBhZ2VZKSAvIG8uZ3JpZFsxXSkgKiBvLmdyaWRbMV0gOiB0aGlzLm9yaWdpbmFsUGFnZVk7DQoJCQkJcGFnZVkgPSBjb250YWlubWVudCA/ICgodG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID49IGNvbnRhaW5tZW50WzFdIHx8IHRvcCAtIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCA+IGNvbnRhaW5tZW50WzNdKSA/IHRvcCA6ICgodG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID49IGNvbnRhaW5tZW50WzFdKSA/IHRvcCAtIG8uZ3JpZFsxXSA6IHRvcCArIG8uZ3JpZFsxXSkpIDogdG9wOw0KDQoJCQkJbGVmdCA9IG8uZ3JpZFswXSA/IHRoaXMub3JpZ2luYWxQYWdlWCArIE1hdGgucm91bmQoKHBhZ2VYIC0gdGhpcy5vcmlnaW5hbFBhZ2VYKSAvIG8uZ3JpZFswXSkgKiBvLmdyaWRbMF0gOiB0aGlzLm9yaWdpbmFsUGFnZVg7DQoJCQkJcGFnZVggPSBjb250YWlubWVudCA/ICgobGVmdCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPj0gY29udGFpbm1lbnRbMF0gfHwgbGVmdCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPiBjb250YWlubWVudFsyXSkgPyBsZWZ0IDogKChsZWZ0IC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA+PSBjb250YWlubWVudFswXSkgPyBsZWZ0IC0gby5ncmlkWzBdIDogbGVmdCArIG8uZ3JpZFswXSkpIDogbGVmdDsNCgkJCX0NCg0KCQkJaWYgKCBvLmF4aXMgPT09ICJ5IiApIHsNCgkJCQlwYWdlWCA9IHRoaXMub3JpZ2luYWxQYWdlWDsNCgkJCX0NCg0KCQkJaWYgKCBvLmF4aXMgPT09ICJ4IiApIHsNCgkJCQlwYWdlWSA9IHRoaXMub3JpZ2luYWxQYWdlWTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB7DQoJCQl0b3A6ICgNCgkJCQlwYWdlWSAtCQkJCQkJCQkJCQkJCQkJCQkvLyBUaGUgYWJzb2x1dGUgbW91c2UgcG9zaXRpb24NCgkJCQl0aGlzLm9mZnNldC5jbGljay50b3AJLQkJCQkJCQkJCQkJCS8vIENsaWNrIG9mZnNldCAocmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQpDQoJCQkJdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wIC0JCQkJCQkJCQkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQudG9wICsJCQkJCQkJCQkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCSggdGhpcy5jc3NQb3NpdGlvbiA9PT0gImZpeGVkIiA/IC10aGlzLm9mZnNldC5zY3JvbGwudG9wIDogKCBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHRoaXMub2Zmc2V0LnNjcm9sbC50b3AgKSApDQoJCQkpLA0KCQkJbGVmdDogKA0KCQkJCXBhZ2VYIC0JCQkJCQkJCQkJCQkJCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgLQkJCQkJCQkJCQkJCS8vIENsaWNrIG9mZnNldCAocmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQpDQoJCQkJdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCAtCQkJCQkJCQkJCQkJLy8gT25seSBmb3IgcmVsYXRpdmUgcG9zaXRpb25lZCBub2RlczogUmVsYXRpdmUgb2Zmc2V0IGZyb20gZWxlbWVudCB0byBvZmZzZXQgcGFyZW50DQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LmxlZnQgKwkJCQkJCQkJCQkJCS8vIFRoZSBvZmZzZXRQYXJlbnQncyBvZmZzZXQgd2l0aG91dCBib3JkZXJzIChvZmZzZXQgKyBib3JkZXIpDQoJCQkJKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8gLXRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0IDogKCBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0ICkgKQ0KCQkJKQ0KCQl9Ow0KDQoJfSwNCg0KCV9jbGVhcjogZnVuY3Rpb24oKSB7DQoJCXRoaXMuaGVscGVyLnJlbW92ZUNsYXNzKCJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciKTsNCgkJaWYgKHRoaXMuaGVscGVyWzBdICE9PSB0aGlzLmVsZW1lbnRbMF0gJiYgIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbCkgew0KCQkJdGhpcy5oZWxwZXIucmVtb3ZlKCk7DQoJCX0NCgkJdGhpcy5oZWxwZXIgPSBudWxsOw0KCQl0aGlzLmNhbmNlbEhlbHBlclJlbW92YWwgPSBmYWxzZTsNCgkJaWYgKCB0aGlzLmRlc3Ryb3lPbkNsZWFyICkgew0KCQkJdGhpcy5kZXN0cm95KCk7DQoJCX0NCgl9LA0KDQoJX25vcm1hbGl6ZVJpZ2h0Qm90dG9tOiBmdW5jdGlvbigpIHsNCgkJaWYgKCB0aGlzLm9wdGlvbnMuYXhpcyAhPT0gInkiICYmIHRoaXMuaGVscGVyLmNzcyggInJpZ2h0IiApICE9PSAiYXV0byIgKSB7DQoJCQl0aGlzLmhlbHBlci53aWR0aCggdGhpcy5oZWxwZXIud2lkdGgoKSApOw0KCQkJdGhpcy5oZWxwZXIuY3NzKCAicmlnaHQiLCAiYXV0byIgKTsNCgkJfQ0KCQlpZiAoIHRoaXMub3B0aW9ucy5heGlzICE9PSAieCIgJiYgdGhpcy5oZWxwZXIuY3NzKCAiYm90dG9tIiApICE9PSAiYXV0byIgKSB7DQoJCQl0aGlzLmhlbHBlci5oZWlnaHQoIHRoaXMuaGVscGVyLmhlaWdodCgpICk7DQoJCQl0aGlzLmhlbHBlci5jc3MoICJib3R0b20iLCAiYXV0byIgKTsNCgkJfQ0KCX0sDQoNCgkvLyBGcm9tIG5vdyBvbiBidWxrIHN0dWZmIC0gbWFpbmx5IGhlbHBlcnMNCg0KCV90cmlnZ2VyOiBmdW5jdGlvbiggdHlwZSwgZXZlbnQsIHVpICkgew0KCQl1aSA9IHVpIHx8IHRoaXMuX3VpSGFzaCgpOw0KCQkkLnVpLnBsdWdpbi5jYWxsKCB0aGlzLCB0eXBlLCBbIGV2ZW50LCB1aSwgdGhpcyBdLCB0cnVlICk7DQoNCgkJLy8gQWJzb2x1dGUgcG9zaXRpb24gYW5kIG9mZnNldCAoc2VlICM2ODg0ICkgaGF2ZSB0byBiZSByZWNhbGN1bGF0ZWQgYWZ0ZXIgcGx1Z2lucw0KCQlpZiAoIC9eKGRyYWd8c3RhcnR8c3RvcCkvLnRlc3QoIHR5cGUgKSApIHsNCgkJCXRoaXMucG9zaXRpb25BYnMgPSB0aGlzLl9jb252ZXJ0UG9zaXRpb25UbyggImFic29sdXRlIiApOw0KCQkJdWkub2Zmc2V0ID0gdGhpcy5wb3NpdGlvbkFiczsNCgkJfQ0KCQlyZXR1cm4gJC5XaWRnZXQucHJvdG90eXBlLl90cmlnZ2VyLmNhbGwoIHRoaXMsIHR5cGUsIGV2ZW50LCB1aSApOw0KCX0sDQoNCglwbHVnaW5zOiB7fSwNCg0KCV91aUhhc2g6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gew0KCQkJaGVscGVyOiB0aGlzLmhlbHBlciwNCgkJCXBvc2l0aW9uOiB0aGlzLnBvc2l0aW9uLA0KCQkJb3JpZ2luYWxQb3NpdGlvbjogdGhpcy5vcmlnaW5hbFBvc2l0aW9uLA0KCQkJb2Zmc2V0OiB0aGlzLnBvc2l0aW9uQWJzDQoJCX07DQoJfQ0KDQp9KTsNCg0KJC51aS5wbHVnaW4uYWRkKCAiZHJhZ2dhYmxlIiwgImNvbm5lY3RUb1NvcnRhYmxlIiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBkcmFnZ2FibGUgKSB7DQoJCXZhciB1aVNvcnRhYmxlID0gJC5leHRlbmQoIHt9LCB1aSwgew0KCQkJaXRlbTogZHJhZ2dhYmxlLmVsZW1lbnQNCgkJfSk7DQoNCgkJZHJhZ2dhYmxlLnNvcnRhYmxlcyA9IFtdOw0KCQkkKCBkcmFnZ2FibGUub3B0aW9ucy5jb25uZWN0VG9Tb3J0YWJsZSApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQl2YXIgc29ydGFibGUgPSAkKCB0aGlzICkuc29ydGFibGUoICJpbnN0YW5jZSIgKTsNCg0KCQkJaWYgKCBzb3J0YWJsZSAmJiAhc29ydGFibGUub3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCQlkcmFnZ2FibGUuc29ydGFibGVzLnB1c2goIHNvcnRhYmxlICk7DQoNCgkJCQkvLyByZWZyZXNoUG9zaXRpb25zIGlzIGNhbGxlZCBhdCBkcmFnIHN0YXJ0IHRvIHJlZnJlc2ggdGhlIGNvbnRhaW5lckNhY2hlDQoJCQkJLy8gd2hpY2ggaXMgdXNlZCBpbiBkcmFnLiBUaGlzIGVuc3VyZXMgaXQncyBpbml0aWFsaXplZCBhbmQgc3luY2hyb25pemVkDQoJCQkJLy8gd2l0aCBhbnkgY2hhbmdlcyB0aGF0IG1pZ2h0IGhhdmUgaGFwcGVuZWQgb24gdGhlIHBhZ2Ugc2luY2UgaW5pdGlhbGl6YXRpb24uDQoJCQkJc29ydGFibGUucmVmcmVzaFBvc2l0aW9ucygpOw0KCQkJCXNvcnRhYmxlLl90cmlnZ2VyKCJhY3RpdmF0ZSIsIGV2ZW50LCB1aVNvcnRhYmxlKTsNCgkJCX0NCgkJfSk7DQoJfSwNCglzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBkcmFnZ2FibGUgKSB7DQoJCXZhciB1aVNvcnRhYmxlID0gJC5leHRlbmQoIHt9LCB1aSwgew0KCQkJaXRlbTogZHJhZ2dhYmxlLmVsZW1lbnQNCgkJfSk7DQoNCgkJZHJhZ2dhYmxlLmNhbmNlbEhlbHBlclJlbW92YWwgPSBmYWxzZTsNCg0KCQkkLmVhY2goIGRyYWdnYWJsZS5zb3J0YWJsZXMsIGZ1bmN0aW9uKCkgew0KCQkJdmFyIHNvcnRhYmxlID0gdGhpczsNCg0KCQkJaWYgKCBzb3J0YWJsZS5pc092ZXIgKSB7DQoJCQkJc29ydGFibGUuaXNPdmVyID0gMDsNCg0KCQkJCS8vIEFsbG93IHRoaXMgc29ydGFibGUgdG8gaGFuZGxlIHJlbW92aW5nIHRoZSBoZWxwZXINCgkJCQlkcmFnZ2FibGUuY2FuY2VsSGVscGVyUmVtb3ZhbCA9IHRydWU7DQoJCQkJc29ydGFibGUuY2FuY2VsSGVscGVyUmVtb3ZhbCA9IGZhbHNlOw0KDQoJCQkJLy8gVXNlIF9zdG9yZWRDU1MgVG8gcmVzdG9yZSBwcm9wZXJ0aWVzIGluIHRoZSBzb3J0YWJsZSwNCgkJCQkvLyBhcyB0aGlzIGFsc28gaGFuZGxlcyByZXZlcnQgKCM5Njc1KSBzaW5jZSB0aGUgZHJhZ2dhYmxlDQoJCQkJLy8gbWF5IGhhdmUgbW9kaWZpZWQgdGhlbSBpbiB1bmV4cGVjdGVkIHdheXMgKCM4ODA5KQ0KCQkJCXNvcnRhYmxlLl9zdG9yZWRDU1MgPSB7DQoJCQkJCXBvc2l0aW9uOiBzb3J0YWJsZS5wbGFjZWhvbGRlci5jc3MoICJwb3NpdGlvbiIgKSwNCgkJCQkJdG9wOiBzb3J0YWJsZS5wbGFjZWhvbGRlci5jc3MoICJ0b3AiICksDQoJCQkJCWxlZnQ6IHNvcnRhYmxlLnBsYWNlaG9sZGVyLmNzcyggImxlZnQiICkNCgkJCQl9Ow0KDQoJCQkJc29ydGFibGUuX21vdXNlU3RvcChldmVudCk7DQoNCgkJCQkvLyBPbmNlIGRyYWcgaGFzIGVuZGVkLCB0aGUgc29ydGFibGUgc2hvdWxkIHJldHVybiB0byB1c2luZw0KCQkJCS8vIGl0cyBvcmlnaW5hbCBoZWxwZXIsIG5vdCB0aGUgc2hhcmVkIGhlbHBlciBmcm9tIGRyYWdnYWJsZQ0KCQkJCXNvcnRhYmxlLm9wdGlvbnMuaGVscGVyID0gc29ydGFibGUub3B0aW9ucy5faGVscGVyOw0KCQkJfSBlbHNlIHsNCgkJCQkvLyBQcmV2ZW50IHRoaXMgU29ydGFibGUgZnJvbSByZW1vdmluZyB0aGUgaGVscGVyLg0KCQkJCS8vIEhvd2V2ZXIsIGRvbid0IHNldCB0aGUgZHJhZ2dhYmxlIHRvIHJlbW92ZSB0aGUgaGVscGVyDQoJCQkJLy8gZWl0aGVyIGFzIGFub3RoZXIgY29ubmVjdGVkIFNvcnRhYmxlIG1heSB5ZXQgaGFuZGxlIHRoZSByZW1vdmFsLg0KCQkJCXNvcnRhYmxlLmNhbmNlbEhlbHBlclJlbW92YWwgPSB0cnVlOw0KDQoJCQkJc29ydGFibGUuX3RyaWdnZXIoICJkZWFjdGl2YXRlIiwgZXZlbnQsIHVpU29ydGFibGUgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCglkcmFnOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBkcmFnZ2FibGUgKSB7DQoJCSQuZWFjaCggZHJhZ2dhYmxlLnNvcnRhYmxlcywgZnVuY3Rpb24oKSB7DQoJCQl2YXIgaW5uZXJtb3N0SW50ZXJzZWN0aW5nID0gZmFsc2UsDQoJCQkJc29ydGFibGUgPSB0aGlzOw0KDQoJCQkvLyBDb3B5IG92ZXIgdmFyaWFibGVzIHRoYXQgc29ydGFibGUncyBfaW50ZXJzZWN0c1dpdGggdXNlcw0KCQkJc29ydGFibGUucG9zaXRpb25BYnMgPSBkcmFnZ2FibGUucG9zaXRpb25BYnM7DQoJCQlzb3J0YWJsZS5oZWxwZXJQcm9wb3J0aW9ucyA9IGRyYWdnYWJsZS5oZWxwZXJQcm9wb3J0aW9uczsNCgkJCXNvcnRhYmxlLm9mZnNldC5jbGljayA9IGRyYWdnYWJsZS5vZmZzZXQuY2xpY2s7DQoNCgkJCWlmICggc29ydGFibGUuX2ludGVyc2VjdHNXaXRoKCBzb3J0YWJsZS5jb250YWluZXJDYWNoZSApICkgew0KCQkJCWlubmVybW9zdEludGVyc2VjdGluZyA9IHRydWU7DQoNCgkJCQkkLmVhY2goIGRyYWdnYWJsZS5zb3J0YWJsZXMsIGZ1bmN0aW9uKCkgew0KCQkJCQkvLyBDb3B5IG92ZXIgdmFyaWFibGVzIHRoYXQgc29ydGFibGUncyBfaW50ZXJzZWN0c1dpdGggdXNlcw0KCQkJCQl0aGlzLnBvc2l0aW9uQWJzID0gZHJhZ2dhYmxlLnBvc2l0aW9uQWJzOw0KCQkJCQl0aGlzLmhlbHBlclByb3BvcnRpb25zID0gZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zOw0KCQkJCQl0aGlzLm9mZnNldC5jbGljayA9IGRyYWdnYWJsZS5vZmZzZXQuY2xpY2s7DQoNCgkJCQkJaWYgKCB0aGlzICE9PSBzb3J0YWJsZSAmJg0KCQkJCQkJCXRoaXMuX2ludGVyc2VjdHNXaXRoKCB0aGlzLmNvbnRhaW5lckNhY2hlICkgJiYNCgkJCQkJCQkkLmNvbnRhaW5zKCBzb3J0YWJsZS5lbGVtZW50WyAwIF0sIHRoaXMuZWxlbWVudFsgMCBdICkgKSB7DQoJCQkJCQlpbm5lcm1vc3RJbnRlcnNlY3RpbmcgPSBmYWxzZTsNCgkJCQkJfQ0KDQoJCQkJCXJldHVybiBpbm5lcm1vc3RJbnRlcnNlY3Rpbmc7DQoJCQkJfSk7DQoJCQl9DQoNCgkJCWlmICggaW5uZXJtb3N0SW50ZXJzZWN0aW5nICkgew0KCQkJCS8vIElmIGl0IGludGVyc2VjdHMsIHdlIHVzZSBhIGxpdHRsZSBpc092ZXIgdmFyaWFibGUgYW5kIHNldCBpdCBvbmNlLA0KCQkJCS8vIHNvIHRoYXQgdGhlIG1vdmUtaW4gc3R1ZmYgZ2V0cyBmaXJlZCBvbmx5IG9uY2UuDQoJCQkJaWYgKCAhc29ydGFibGUuaXNPdmVyICkgew0KCQkJCQlzb3J0YWJsZS5pc092ZXIgPSAxOw0KDQoJCQkJCXNvcnRhYmxlLmN1cnJlbnRJdGVtID0gdWkuaGVscGVyDQoJCQkJCQkuYXBwZW5kVG8oIHNvcnRhYmxlLmVsZW1lbnQgKQ0KCQkJCQkJLmRhdGEoICJ1aS1zb3J0YWJsZS1pdGVtIiwgdHJ1ZSApOw0KDQoJCQkJCS8vIFN0b3JlIGhlbHBlciBvcHRpb24gdG8gbGF0ZXIgcmVzdG9yZSBpdA0KCQkJCQlzb3J0YWJsZS5vcHRpb25zLl9oZWxwZXIgPSBzb3J0YWJsZS5vcHRpb25zLmhlbHBlcjsNCg0KCQkJCQlzb3J0YWJsZS5vcHRpb25zLmhlbHBlciA9IGZ1bmN0aW9uKCkgew0KCQkJCQkJcmV0dXJuIHVpLmhlbHBlclsgMCBdOw0KCQkJCQl9Ow0KDQoJCQkJCS8vIEZpcmUgdGhlIHN0YXJ0IGV2ZW50cyBvZiB0aGUgc29ydGFibGUgd2l0aCBvdXIgcGFzc2VkIGJyb3dzZXIgZXZlbnQsDQoJCQkJCS8vIGFuZCBvdXIgb3duIGhlbHBlciAoc28gaXQgZG9lc24ndCBjcmVhdGUgYSBuZXcgb25lKQ0KCQkJCQlldmVudC50YXJnZXQgPSBzb3J0YWJsZS5jdXJyZW50SXRlbVsgMCBdOw0KCQkJCQlzb3J0YWJsZS5fbW91c2VDYXB0dXJlKCBldmVudCwgdHJ1ZSApOw0KCQkJCQlzb3J0YWJsZS5fbW91c2VTdGFydCggZXZlbnQsIHRydWUsIHRydWUgKTsNCg0KCQkJCQkvLyBCZWNhdXNlIHRoZSBicm93c2VyIGV2ZW50IGlzIHdheSBvZmYgdGhlIG5ldyBhcHBlbmRlZCBwb3J0bGV0LA0KCQkJCQkvLyBtb2RpZnkgbmVjZXNzYXJ5IHZhcmlhYmxlcyB0byByZWZsZWN0IHRoZSBjaGFuZ2VzDQoJCQkJCXNvcnRhYmxlLm9mZnNldC5jbGljay50b3AgPSBkcmFnZ2FibGUub2Zmc2V0LmNsaWNrLnRvcDsNCgkJCQkJc29ydGFibGUub2Zmc2V0LmNsaWNrLmxlZnQgPSBkcmFnZ2FibGUub2Zmc2V0LmNsaWNrLmxlZnQ7DQoJCQkJCXNvcnRhYmxlLm9mZnNldC5wYXJlbnQubGVmdCAtPSBkcmFnZ2FibGUub2Zmc2V0LnBhcmVudC5sZWZ0IC0NCgkJCQkJCXNvcnRhYmxlLm9mZnNldC5wYXJlbnQubGVmdDsNCgkJCQkJc29ydGFibGUub2Zmc2V0LnBhcmVudC50b3AgLT0gZHJhZ2dhYmxlLm9mZnNldC5wYXJlbnQudG9wIC0NCgkJCQkJCXNvcnRhYmxlLm9mZnNldC5wYXJlbnQudG9wOw0KDQoJCQkJCWRyYWdnYWJsZS5fdHJpZ2dlciggInRvU29ydGFibGUiLCBldmVudCApOw0KDQoJCQkJCS8vIEluZm9ybSBkcmFnZ2FibGUgdGhhdCB0aGUgaGVscGVyIGlzIGluIGEgdmFsaWQgZHJvcCB6b25lLA0KCQkJCQkvLyB1c2VkIHNvbGVseSBpbiB0aGUgcmV2ZXJ0IG9wdGlvbiB0byBoYW5kbGUgInZhbGlkL2ludmFsaWQiLg0KCQkJCQlkcmFnZ2FibGUuZHJvcHBlZCA9IHNvcnRhYmxlLmVsZW1lbnQ7DQoNCgkJCQkJLy8gTmVlZCB0byByZWZyZXNoUG9zaXRpb25zIG9mIGFsbCBzb3J0YWJsZXMgaW4gdGhlIGNhc2UgdGhhdA0KCQkJCQkvLyBhZGRpbmcgdG8gb25lIHNvcnRhYmxlIGNoYW5nZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBvdGhlciBzb3J0YWJsZXMgKCM5Njc1KQ0KCQkJCQkkLmVhY2goIGRyYWdnYWJsZS5zb3J0YWJsZXMsIGZ1bmN0aW9uKCkgew0KCQkJCQkJdGhpcy5yZWZyZXNoUG9zaXRpb25zKCk7DQoJCQkJCX0pOw0KDQoJCQkJCS8vIGhhY2sgc28gcmVjZWl2ZS91cGRhdGUgY2FsbGJhY2tzIHdvcmsgKG1vc3RseSkNCgkJCQkJZHJhZ2dhYmxlLmN1cnJlbnRJdGVtID0gZHJhZ2dhYmxlLmVsZW1lbnQ7DQoJCQkJCXNvcnRhYmxlLmZyb21PdXRzaWRlID0gZHJhZ2dhYmxlOw0KCQkJCX0NCg0KCQkJCWlmICggc29ydGFibGUuY3VycmVudEl0ZW0gKSB7DQoJCQkJCXNvcnRhYmxlLl9tb3VzZURyYWcoIGV2ZW50ICk7DQoJCQkJCS8vIENvcHkgdGhlIHNvcnRhYmxlJ3MgcG9zaXRpb24gYmVjYXVzZSB0aGUgZHJhZ2dhYmxlJ3MgY2FuIHBvdGVudGlhbGx5IHJlZmxlY3QNCgkJCQkJLy8gYSByZWxhdGl2ZSBwb3NpdGlvbiwgd2hpbGUgc29ydGFibGUgaXMgYWx3YXlzIGFic29sdXRlLCB3aGljaCB0aGUgZHJhZ2dlZA0KCQkJCQkvLyBlbGVtZW50IGhhcyBub3cgYmVjb21lLiAoIzg4MDkpDQoJCQkJCXVpLnBvc2l0aW9uID0gc29ydGFibGUucG9zaXRpb247DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQkvLyBJZiBpdCBkb2Vzbid0IGludGVyc2VjdCB3aXRoIHRoZSBzb3J0YWJsZSwgYW5kIGl0IGludGVyc2VjdGVkIGJlZm9yZSwNCgkJCQkvLyB3ZSBmYWtlIHRoZSBkcmFnIHN0b3Agb2YgdGhlIHNvcnRhYmxlLCBidXQgbWFrZSBzdXJlIGl0IGRvZXNuJ3QgcmVtb3ZlDQoJCQkJLy8gdGhlIGhlbHBlciBieSB1c2luZyBjYW5jZWxIZWxwZXJSZW1vdmFsLg0KCQkJCWlmICggc29ydGFibGUuaXNPdmVyICkgew0KDQoJCQkJCXNvcnRhYmxlLmlzT3ZlciA9IDA7DQoJCQkJCXNvcnRhYmxlLmNhbmNlbEhlbHBlclJlbW92YWwgPSB0cnVlOw0KDQoJCQkJCS8vIENhbGxpbmcgc29ydGFibGUncyBtb3VzZVN0b3Agd291bGQgdHJpZ2dlciBhIHJldmVydCwNCgkJCQkJLy8gc28gcmV2ZXJ0IG11c3QgYmUgdGVtcG9yYXJpbHkgZmFsc2UgdW50aWwgYWZ0ZXIgbW91c2VTdG9wIGlzIGNhbGxlZC4NCgkJCQkJc29ydGFibGUub3B0aW9ucy5fcmV2ZXJ0ID0gc29ydGFibGUub3B0aW9ucy5yZXZlcnQ7DQoJCQkJCXNvcnRhYmxlLm9wdGlvbnMucmV2ZXJ0ID0gZmFsc2U7DQoNCgkJCQkJc29ydGFibGUuX3RyaWdnZXIoICJvdXQiLCBldmVudCwgc29ydGFibGUuX3VpSGFzaCggc29ydGFibGUgKSApOw0KCQkJCQlzb3J0YWJsZS5fbW91c2VTdG9wKCBldmVudCwgdHJ1ZSApOw0KDQoJCQkJCS8vIHJlc3RvcmUgc29ydGFibGUgYmVoYXZpb3JzIHRoYXQgd2VyZSBtb2RmaWVkDQoJCQkJCS8vIHdoZW4gdGhlIGRyYWdnYWJsZSBlbnRlcmVkIHRoZSBzb3J0YWJsZSBhcmVhICgjOTQ4MSkNCgkJCQkJc29ydGFibGUub3B0aW9ucy5yZXZlcnQgPSBzb3J0YWJsZS5vcHRpb25zLl9yZXZlcnQ7DQoJCQkJCXNvcnRhYmxlLm9wdGlvbnMuaGVscGVyID0gc29ydGFibGUub3B0aW9ucy5faGVscGVyOw0KDQoJCQkJCWlmICggc29ydGFibGUucGxhY2Vob2xkZXIgKSB7DQoJCQkJCQlzb3J0YWJsZS5wbGFjZWhvbGRlci5yZW1vdmUoKTsNCgkJCQkJfQ0KDQoJCQkJCS8vIFJlY2FsY3VsYXRlIHRoZSBkcmFnZ2FibGUncyBvZmZzZXQgY29uc2lkZXJpbmcgdGhlIHNvcnRhYmxlDQoJCQkJCS8vIG1heSBoYXZlIG1vZGlmaWVkIHRoZW0gaW4gdW5leHBlY3RlZCB3YXlzICgjODgwOSkNCgkJCQkJZHJhZ2dhYmxlLl9yZWZyZXNoT2Zmc2V0cyggZXZlbnQgKTsNCgkJCQkJdWkucG9zaXRpb24gPSBkcmFnZ2FibGUuX2dlbmVyYXRlUG9zaXRpb24oIGV2ZW50LCB0cnVlICk7DQoNCgkJCQkJZHJhZ2dhYmxlLl90cmlnZ2VyKCAiZnJvbVNvcnRhYmxlIiwgZXZlbnQgKTsNCg0KCQkJCQkvLyBJbmZvcm0gZHJhZ2dhYmxlIHRoYXQgdGhlIGhlbHBlciBpcyBubyBsb25nZXIgaW4gYSB2YWxpZCBkcm9wIHpvbmUNCgkJCQkJZHJhZ2dhYmxlLmRyb3BwZWQgPSBmYWxzZTsNCg0KCQkJCQkvLyBOZWVkIHRvIHJlZnJlc2hQb3NpdGlvbnMgb2YgYWxsIHNvcnRhYmxlcyBqdXN0IGluIGNhc2UgcmVtb3ZpbmcNCgkJCQkJLy8gZnJvbSBvbmUgc29ydGFibGUgY2hhbmdlcyB0aGUgbG9jYXRpb24gb2Ygb3RoZXIgc29ydGFibGVzICgjOTY3NSkNCgkJCQkJJC5lYWNoKCBkcmFnZ2FibGUuc29ydGFibGVzLCBmdW5jdGlvbigpIHsNCgkJCQkJCXRoaXMucmVmcmVzaFBvc2l0aW9ucygpOw0KCQkJCQl9KTsNCgkJCQl9DQoJCQl9DQoJCX0pOw0KCX0NCn0pOw0KDQokLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsICJjdXJzb3IiLCB7DQoJc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCwgdWksIGluc3RhbmNlICkgew0KCQl2YXIgdCA9ICQoICJib2R5IiApLA0KCQkJbyA9IGluc3RhbmNlLm9wdGlvbnM7DQoNCgkJaWYgKHQuY3NzKCJjdXJzb3IiKSkgew0KCQkJby5fY3Vyc29yID0gdC5jc3MoImN1cnNvciIpOw0KCQl9DQoJCXQuY3NzKCJjdXJzb3IiLCBvLmN1cnNvcik7DQoJfSwNCglzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIG8gPSBpbnN0YW5jZS5vcHRpb25zOw0KCQlpZiAoby5fY3Vyc29yKSB7DQoJCQkkKCJib2R5IikuY3NzKCJjdXJzb3IiLCBvLl9jdXJzb3IpOw0KCQl9DQoJfQ0KfSk7DQoNCiQudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwgIm9wYWNpdHkiLCB7DQoJc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCwgdWksIGluc3RhbmNlICkgew0KCQl2YXIgdCA9ICQoIHVpLmhlbHBlciApLA0KCQkJbyA9IGluc3RhbmNlLm9wdGlvbnM7DQoJCWlmICh0LmNzcygib3BhY2l0eSIpKSB7DQoJCQlvLl9vcGFjaXR5ID0gdC5jc3MoIm9wYWNpdHkiKTsNCgkJfQ0KCQl0LmNzcygib3BhY2l0eSIsIG8ub3BhY2l0eSk7DQoJfSwNCglzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIG8gPSBpbnN0YW5jZS5vcHRpb25zOw0KCQlpZiAoby5fb3BhY2l0eSkgew0KCQkJJCh1aS5oZWxwZXIpLmNzcygib3BhY2l0eSIsIG8uX29wYWNpdHkpOw0KCQl9DQoJfQ0KfSk7DQoNCiQudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwgInNjcm9sbCIsIHsNCglzdGFydDogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaSApIHsNCgkJaWYgKCAhaS5zY3JvbGxQYXJlbnROb3RIaWRkZW4gKSB7DQoJCQlpLnNjcm9sbFBhcmVudE5vdEhpZGRlbiA9IGkuaGVscGVyLnNjcm9sbFBhcmVudCggZmFsc2UgKTsNCgkJfQ0KDQoJCWlmICggaS5zY3JvbGxQYXJlbnROb3RIaWRkZW5bIDAgXSAhPT0gaS5kb2N1bWVudFsgMCBdICYmIGkuc2Nyb2xsUGFyZW50Tm90SGlkZGVuWyAwIF0udGFnTmFtZSAhPT0gIkhUTUwiICkgew0KCQkJaS5vdmVyZmxvd09mZnNldCA9IGkuc2Nyb2xsUGFyZW50Tm90SGlkZGVuLm9mZnNldCgpOw0KCQl9DQoJfSwNCglkcmFnOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpICApIHsNCg0KCQl2YXIgbyA9IGkub3B0aW9ucywNCgkJCXNjcm9sbGVkID0gZmFsc2UsDQoJCQlzY3JvbGxQYXJlbnQgPSBpLnNjcm9sbFBhcmVudE5vdEhpZGRlblsgMCBdLA0KCQkJZG9jdW1lbnQgPSBpLmRvY3VtZW50WyAwIF07DQoNCgkJaWYgKCBzY3JvbGxQYXJlbnQgIT09IGRvY3VtZW50ICYmIHNjcm9sbFBhcmVudC50YWdOYW1lICE9PSAiSFRNTCIgKSB7DQoJCQlpZiAoICFvLmF4aXMgfHwgby5heGlzICE9PSAieCIgKSB7DQoJCQkJaWYgKCAoIGkub3ZlcmZsb3dPZmZzZXQudG9wICsgc2Nyb2xsUGFyZW50Lm9mZnNldEhlaWdodCApIC0gZXZlbnQucGFnZVkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQlzY3JvbGxQYXJlbnQuc2Nyb2xsVG9wID0gc2Nyb2xsZWQgPSBzY3JvbGxQYXJlbnQuc2Nyb2xsVG9wICsgby5zY3JvbGxTcGVlZDsNCgkJCQl9IGVsc2UgaWYgKCBldmVudC5wYWdlWSAtIGkub3ZlcmZsb3dPZmZzZXQudG9wIDwgby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCA9IHNjcm9sbGVkID0gc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCAtIG8uc2Nyb2xsU3BlZWQ7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlpZiAoICFvLmF4aXMgfHwgby5heGlzICE9PSAieSIgKSB7DQoJCQkJaWYgKCAoIGkub3ZlcmZsb3dPZmZzZXQubGVmdCArIHNjcm9sbFBhcmVudC5vZmZzZXRXaWR0aCApIC0gZXZlbnQucGFnZVggPCBvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQlzY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCA9IHNjcm9sbGVkID0gc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQgKyBvLnNjcm9sbFNwZWVkOw0KCQkJCX0gZWxzZSBpZiAoIGV2ZW50LnBhZ2VYIC0gaS5vdmVyZmxvd09mZnNldC5sZWZ0IDwgby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQgPSBzY3JvbGxlZCA9IHNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0IC0gby5zY3JvbGxTcGVlZDsNCgkJCQl9DQoJCQl9DQoNCgkJfSBlbHNlIHsNCg0KCQkJaWYgKCFvLmF4aXMgfHwgby5heGlzICE9PSAieCIpIHsNCgkJCQlpZiAoZXZlbnQucGFnZVkgLSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkpIHsNCgkJCQkJc2Nyb2xsZWQgPSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgLSBvLnNjcm9sbFNwZWVkKTsNCgkJCQl9IGVsc2UgaWYgKCQod2luZG93KS5oZWlnaHQoKSAtIChldmVudC5wYWdlWSAtICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpKSA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkpIHsNCgkJCQkJc2Nyb2xsZWQgPSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgKyBvLnNjcm9sbFNwZWVkKTsNCgkJCQl9DQoJCQl9DQoNCgkJCWlmICghby5heGlzIHx8IG8uYXhpcyAhPT0gInkiKSB7DQoJCQkJaWYgKGV2ZW50LnBhZ2VYIC0gJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpIDwgby5zY3JvbGxTZW5zaXRpdml0eSkgew0KCQkJCQlzY3JvbGxlZCA9ICQoZG9jdW1lbnQpLnNjcm9sbExlZnQoJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpIC0gby5zY3JvbGxTcGVlZCk7DQoJCQkJfSBlbHNlIGlmICgkKHdpbmRvdykud2lkdGgoKSAtIChldmVudC5wYWdlWCAtICQoZG9jdW1lbnQpLnNjcm9sbExlZnQoKSkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXNjcm9sbGVkID0gJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkgKyBvLnNjcm9sbFNwZWVkKTsNCgkJCQl9DQoJCQl9DQoNCgkJfQ0KDQoJCWlmIChzY3JvbGxlZCAhPT0gZmFsc2UgJiYgJC51aS5kZG1hbmFnZXIgJiYgIW8uZHJvcEJlaGF2aW91cikgew0KCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoaSwgZXZlbnQpOw0KCQl9DQoNCgl9DQp9KTsNCg0KJC51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCAic25hcCIsIHsNCglzdGFydDogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaSApIHsNCg0KCQl2YXIgbyA9IGkub3B0aW9uczsNCg0KCQlpLnNuYXBFbGVtZW50cyA9IFtdOw0KDQoJCSQoby5zbmFwLmNvbnN0cnVjdG9yICE9PSBTdHJpbmcgPyAoIG8uc25hcC5pdGVtcyB8fCAiOmRhdGEodWktZHJhZ2dhYmxlKSIgKSA6IG8uc25hcCkuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciAkdCA9ICQodGhpcyksDQoJCQkJJG8gPSAkdC5vZmZzZXQoKTsNCgkJCWlmICh0aGlzICE9PSBpLmVsZW1lbnRbMF0pIHsNCgkJCQlpLnNuYXBFbGVtZW50cy5wdXNoKHsNCgkJCQkJaXRlbTogdGhpcywNCgkJCQkJd2lkdGg6ICR0Lm91dGVyV2lkdGgoKSwgaGVpZ2h0OiAkdC5vdXRlckhlaWdodCgpLA0KCQkJCQl0b3A6ICRvLnRvcCwgbGVmdDogJG8ubGVmdA0KCQkJCX0pOw0KCQkJfQ0KCQl9KTsNCg0KCX0sDQoJZHJhZzogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaW5zdCApIHsNCg0KCQl2YXIgdHMsIGJzLCBscywgcnMsIGwsIHIsIHQsIGIsIGksIGZpcnN0LA0KCQkJbyA9IGluc3Qub3B0aW9ucywNCgkJCWQgPSBvLnNuYXBUb2xlcmFuY2UsDQoJCQl4MSA9IHVpLm9mZnNldC5sZWZ0LCB4MiA9IHgxICsgaW5zdC5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCwNCgkJCXkxID0gdWkub2Zmc2V0LnRvcCwgeTIgPSB5MSArIGluc3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0Ow0KDQoJCWZvciAoaSA9IGluc3Quc25hcEVsZW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKXsNCg0KCQkJbCA9IGluc3Quc25hcEVsZW1lbnRzW2ldLmxlZnQgLSBpbnN0Lm1hcmdpbnMubGVmdDsNCgkJCXIgPSBsICsgaW5zdC5zbmFwRWxlbWVudHNbaV0ud2lkdGg7DQoJCQl0ID0gaW5zdC5zbmFwRWxlbWVudHNbaV0udG9wIC0gaW5zdC5tYXJnaW5zLnRvcDsNCgkJCWIgPSB0ICsgaW5zdC5zbmFwRWxlbWVudHNbaV0uaGVpZ2h0Ow0KDQoJCQlpZiAoIHgyIDwgbCAtIGQgfHwgeDEgPiByICsgZCB8fCB5MiA8IHQgLSBkIHx8IHkxID4gYiArIGQgfHwgISQuY29udGFpbnMoIGluc3Quc25hcEVsZW1lbnRzWyBpIF0uaXRlbS5vd25lckRvY3VtZW50LCBpbnN0LnNuYXBFbGVtZW50c1sgaSBdLml0ZW0gKSApIHsNCgkJCQlpZiAoaW5zdC5zbmFwRWxlbWVudHNbaV0uc25hcHBpbmcpIHsNCgkJCQkJKGluc3Qub3B0aW9ucy5zbmFwLnJlbGVhc2UgJiYgaW5zdC5vcHRpb25zLnNuYXAucmVsZWFzZS5jYWxsKGluc3QuZWxlbWVudCwgZXZlbnQsICQuZXh0ZW5kKGluc3QuX3VpSGFzaCgpLCB7IHNuYXBJdGVtOiBpbnN0LnNuYXBFbGVtZW50c1tpXS5pdGVtIH0pKSk7DQoJCQkJfQ0KCQkJCWluc3Quc25hcEVsZW1lbnRzW2ldLnNuYXBwaW5nID0gZmFsc2U7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCWlmIChvLnNuYXBNb2RlICE9PSAiaW5uZXIiKSB7DQoJCQkJdHMgPSBNYXRoLmFicyh0IC0geTIpIDw9IGQ7DQoJCQkJYnMgPSBNYXRoLmFicyhiIC0geTEpIDw9IGQ7DQoJCQkJbHMgPSBNYXRoLmFicyhsIC0geDIpIDw9IGQ7DQoJCQkJcnMgPSBNYXRoLmFicyhyIC0geDEpIDw9IGQ7DQoJCQkJaWYgKHRzKSB7DQoJCQkJCXVpLnBvc2l0aW9uLnRvcCA9IGluc3QuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsIHsgdG9wOiB0IC0gaW5zdC5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsIGxlZnQ6IDAgfSkudG9wOw0KCQkJCX0NCgkJCQlpZiAoYnMpIHsNCgkJCQkJdWkucG9zaXRpb24udG9wID0gaW5zdC5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIiwgeyB0b3A6IGIsIGxlZnQ6IDAgfSkudG9wOw0KCQkJCX0NCgkJCQlpZiAobHMpIHsNCgkJCQkJdWkucG9zaXRpb24ubGVmdCA9IGluc3QuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsIHsgdG9wOiAwLCBsZWZ0OiBsIC0gaW5zdC5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCB9KS5sZWZ0Ow0KCQkJCX0NCgkJCQlpZiAocnMpIHsNCgkJCQkJdWkucG9zaXRpb24ubGVmdCA9IGluc3QuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsIHsgdG9wOiAwLCBsZWZ0OiByIH0pLmxlZnQ7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlmaXJzdCA9ICh0cyB8fCBicyB8fCBscyB8fCBycyk7DQoNCgkJCWlmIChvLnNuYXBNb2RlICE9PSAib3V0ZXIiKSB7DQoJCQkJdHMgPSBNYXRoLmFicyh0IC0geTEpIDw9IGQ7DQoJCQkJYnMgPSBNYXRoLmFicyhiIC0geTIpIDw9IGQ7DQoJCQkJbHMgPSBNYXRoLmFicyhsIC0geDEpIDw9IGQ7DQoJCQkJcnMgPSBNYXRoLmFicyhyIC0geDIpIDw9IGQ7DQoJCQkJaWYgKHRzKSB7DQoJCQkJCXVpLnBvc2l0aW9uLnRvcCA9IGluc3QuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsIHsgdG9wOiB0LCBsZWZ0OiAwIH0pLnRvcDsNCgkJCQl9DQoJCQkJaWYgKGJzKSB7DQoJCQkJCXVpLnBvc2l0aW9uLnRvcCA9IGluc3QuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsIHsgdG9wOiBiIC0gaW5zdC5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsIGxlZnQ6IDAgfSkudG9wOw0KCQkJCX0NCgkJCQlpZiAobHMpIHsNCgkJCQkJdWkucG9zaXRpb24ubGVmdCA9IGluc3QuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsIHsgdG9wOiAwLCBsZWZ0OiBsIH0pLmxlZnQ7DQoJCQkJfQ0KCQkJCWlmIChycykgew0KCQkJCQl1aS5wb3NpdGlvbi5sZWZ0ID0gaW5zdC5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIiwgeyB0b3A6IDAsIGxlZnQ6IHIgLSBpbnN0LmhlbHBlclByb3BvcnRpb25zLndpZHRoIH0pLmxlZnQ7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlpZiAoIWluc3Quc25hcEVsZW1lbnRzW2ldLnNuYXBwaW5nICYmICh0cyB8fCBicyB8fCBscyB8fCBycyB8fCBmaXJzdCkpIHsNCgkJCQkoaW5zdC5vcHRpb25zLnNuYXAuc25hcCAmJiBpbnN0Lm9wdGlvbnMuc25hcC5zbmFwLmNhbGwoaW5zdC5lbGVtZW50LCBldmVudCwgJC5leHRlbmQoaW5zdC5fdWlIYXNoKCksIHsgc25hcEl0ZW06IGluc3Quc25hcEVsZW1lbnRzW2ldLml0ZW0gfSkpKTsNCgkJCX0NCgkJCWluc3Quc25hcEVsZW1lbnRzW2ldLnNuYXBwaW5nID0gKHRzIHx8IGJzIHx8IGxzIHx8IHJzIHx8IGZpcnN0KTsNCg0KCQl9DQoNCgl9DQp9KTsNCg0KJC51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCAic3RhY2siLCB7DQoJc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCwgdWksIGluc3RhbmNlICkgew0KCQl2YXIgbWluLA0KCQkJbyA9IGluc3RhbmNlLm9wdGlvbnMsDQoJCQlncm91cCA9ICQubWFrZUFycmF5KCQoby5zdGFjaykpLnNvcnQoZnVuY3Rpb24oYSwgYikgew0KCQkJCXJldHVybiAocGFyc2VJbnQoJChhKS5jc3MoInpJbmRleCIpLCAxMCkgfHwgMCkgLSAocGFyc2VJbnQoJChiKS5jc3MoInpJbmRleCIpLCAxMCkgfHwgMCk7DQoJCQl9KTsNCg0KCQlpZiAoIWdyb3VwLmxlbmd0aCkgeyByZXR1cm47IH0NCg0KCQltaW4gPSBwYXJzZUludCgkKGdyb3VwWzBdKS5jc3MoInpJbmRleCIpLCAxMCkgfHwgMDsNCgkJJChncm91cCkuZWFjaChmdW5jdGlvbihpKSB7DQoJCQkkKHRoaXMpLmNzcygiekluZGV4IiwgbWluICsgaSk7DQoJCX0pOw0KCQl0aGlzLmNzcygiekluZGV4IiwgKG1pbiArIGdyb3VwLmxlbmd0aCkpOw0KCX0NCn0pOw0KDQokLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsICJ6SW5kZXgiLCB7DQoJc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCwgdWksIGluc3RhbmNlICkgew0KCQl2YXIgdCA9ICQoIHVpLmhlbHBlciApLA0KCQkJbyA9IGluc3RhbmNlLm9wdGlvbnM7DQoNCgkJaWYgKHQuY3NzKCJ6SW5kZXgiKSkgew0KCQkJby5fekluZGV4ID0gdC5jc3MoInpJbmRleCIpOw0KCQl9DQoJCXQuY3NzKCJ6SW5kZXgiLCBvLnpJbmRleCk7DQoJfSwNCglzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIG8gPSBpbnN0YW5jZS5vcHRpb25zOw0KDQoJCWlmIChvLl96SW5kZXgpIHsNCgkJCSQodWkuaGVscGVyKS5jc3MoInpJbmRleCIsIG8uX3pJbmRleCk7DQoJCX0NCgl9DQp9KTsNCg0KdmFyIGRyYWdnYWJsZSA9ICQudWkuZHJhZ2dhYmxlOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFJlc2l6YWJsZSAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vcmVzaXphYmxlLw0KICovDQoNCg0KJC53aWRnZXQoInVpLnJlc2l6YWJsZSIsICQudWkubW91c2UsIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCgl3aWRnZXRFdmVudFByZWZpeDogInJlc2l6ZSIsDQoJb3B0aW9uczogew0KCQlhbHNvUmVzaXplOiBmYWxzZSwNCgkJYW5pbWF0ZTogZmFsc2UsDQoJCWFuaW1hdGVEdXJhdGlvbjogInNsb3ciLA0KCQlhbmltYXRlRWFzaW5nOiAic3dpbmciLA0KCQlhc3BlY3RSYXRpbzogZmFsc2UsDQoJCWF1dG9IaWRlOiBmYWxzZSwNCgkJY29udGFpbm1lbnQ6IGZhbHNlLA0KCQlnaG9zdDogZmFsc2UsDQoJCWdyaWQ6IGZhbHNlLA0KCQloYW5kbGVzOiAiZSxzLHNlIiwNCgkJaGVscGVyOiBmYWxzZSwNCgkJbWF4SGVpZ2h0OiBudWxsLA0KCQltYXhXaWR0aDogbnVsbCwNCgkJbWluSGVpZ2h0OiAxMCwNCgkJbWluV2lkdGg6IDEwLA0KCQkvLyBTZWUgIzc5NjANCgkJekluZGV4OiA5MCwNCg0KCQkvLyBjYWxsYmFja3MNCgkJcmVzaXplOiBudWxsLA0KCQlzdGFydDogbnVsbCwNCgkJc3RvcDogbnVsbA0KCX0sDQoNCglfbnVtOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXJldHVybiBwYXJzZUludCggdmFsdWUsIDEwICkgfHwgMDsNCgl9LA0KDQoJX2lzTnVtYmVyOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXJldHVybiAhaXNOYU4oIHBhcnNlSW50KCB2YWx1ZSwgMTAgKSApOw0KCX0sDQoNCglfaGFzU2Nyb2xsOiBmdW5jdGlvbiggZWwsIGEgKSB7DQoNCgkJaWYgKCAkKCBlbCApLmNzcyggIm92ZXJmbG93IiApID09PSAiaGlkZGVuIikgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJdmFyIHNjcm9sbCA9ICggYSAmJiBhID09PSAibGVmdCIgKSA/ICJzY3JvbGxMZWZ0IiA6ICJzY3JvbGxUb3AiLA0KCQkJaGFzID0gZmFsc2U7DQoNCgkJaWYgKCBlbFsgc2Nyb2xsIF0gPiAwICkgew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQkvLyBUT0RPOiBkZXRlcm1pbmUgd2hpY2ggY2FzZXMgYWN0dWFsbHkgY2F1c2UgdGhpcyB0byBoYXBwZW4NCgkJLy8gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIHRoZSBzY3JvbGwgc2V0LCBzZWUgaWYgaXQncyBwb3NzaWJsZSB0bw0KCQkvLyBzZXQgdGhlIHNjcm9sbA0KCQllbFsgc2Nyb2xsIF0gPSAxOw0KCQloYXMgPSAoIGVsWyBzY3JvbGwgXSA+IDAgKTsNCgkJZWxbIHNjcm9sbCBdID0gMDsNCgkJcmV0dXJuIGhhczsNCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoNCgkJdmFyIG4sIGksIGhhbmRsZSwgYXhpcywgaG5hbWUsDQoJCQl0aGF0ID0gdGhpcywNCgkJCW8gPSB0aGlzLm9wdGlvbnM7DQoJCXRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktcmVzaXphYmxlIik7DQoNCgkJJC5leHRlbmQodGhpcywgew0KCQkJX2FzcGVjdFJhdGlvOiAhIShvLmFzcGVjdFJhdGlvKSwNCgkJCWFzcGVjdFJhdGlvOiBvLmFzcGVjdFJhdGlvLA0KCQkJb3JpZ2luYWxFbGVtZW50OiB0aGlzLmVsZW1lbnQsDQoJCQlfcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50czogW10sDQoJCQlfaGVscGVyOiBvLmhlbHBlciB8fCBvLmdob3N0IHx8IG8uYW5pbWF0ZSA/IG8uaGVscGVyIHx8ICJ1aS1yZXNpemFibGUtaGVscGVyIiA6IG51bGwNCgkJfSk7DQoNCgkJLy8gV3JhcCB0aGUgZWxlbWVudCBpZiBpdCBjYW5ub3QgaG9sZCBjaGlsZCBub2Rlcw0KCQlpZiAodGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLm1hdGNoKC9jYW52YXN8dGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbnxpbWcvaSkpIHsNCg0KCQkJdGhpcy5lbGVtZW50LndyYXAoDQoJCQkJJCgiPGRpdiBjbGFzcz0ndWktd3JhcHBlcicgc3R5bGU9J292ZXJmbG93OiBoaWRkZW47Jz48L2Rpdj4iKS5jc3Moew0KCQkJCQlwb3NpdGlvbjogdGhpcy5lbGVtZW50LmNzcygicG9zaXRpb24iKSwNCgkJCQkJd2lkdGg6IHRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksDQoJCQkJCWhlaWdodDogdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCksDQoJCQkJCXRvcDogdGhpcy5lbGVtZW50LmNzcygidG9wIiksDQoJCQkJCWxlZnQ6IHRoaXMuZWxlbWVudC5jc3MoImxlZnQiKQ0KCQkJCX0pDQoJCQkpOw0KDQoJCQl0aGlzLmVsZW1lbnQgPSB0aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YSgNCgkJCQkidWktcmVzaXphYmxlIiwgdGhpcy5lbGVtZW50LnJlc2l6YWJsZSggImluc3RhbmNlIiApDQoJCQkpOw0KDQoJCQl0aGlzLmVsZW1lbnRJc1dyYXBwZXIgPSB0cnVlOw0KDQoJCQl0aGlzLmVsZW1lbnQuY3NzKHsNCgkJCQltYXJnaW5MZWZ0OiB0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSwNCgkJCQltYXJnaW5Ub3A6IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luVG9wIiksDQoJCQkJbWFyZ2luUmlnaHQ6IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luUmlnaHQiKSwNCgkJCQltYXJnaW5Cb3R0b206IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luQm90dG9tIikNCgkJCX0pOw0KCQkJdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHsNCgkJCQltYXJnaW5MZWZ0OiAwLA0KCQkJCW1hcmdpblRvcDogMCwNCgkJCQltYXJnaW5SaWdodDogMCwNCgkJCQltYXJnaW5Cb3R0b206IDANCgkJCX0pOw0KCQkJLy8gc3VwcG9ydDogU2FmYXJpDQoJCQkvLyBQcmV2ZW50IFNhZmFyaSB0ZXh0YXJlYSByZXNpemUNCgkJCXRoaXMub3JpZ2luYWxSZXNpemVTdHlsZSA9IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIik7DQoJCQl0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsICJub25lIik7DQoNCgkJCXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMucHVzaCggdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHsNCgkJCQlwb3NpdGlvbjogInN0YXRpYyIsDQoJCQkJem9vbTogMSwNCgkJCQlkaXNwbGF5OiAiYmxvY2siDQoJCQl9KSApOw0KDQoJCQkvLyBzdXBwb3J0OiBJRTkNCgkJCS8vIGF2b2lkIElFIGp1bXAgKGhhcmQgc2V0IHRoZSBtYXJnaW4pDQoJCQl0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoeyBtYXJnaW46IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luIikgfSk7DQoNCgkJCXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCk7DQoJCX0NCg0KCQl0aGlzLmhhbmRsZXMgPSBvLmhhbmRsZXMgfHwNCgkJCSggISQoIi51aS1yZXNpemFibGUtaGFuZGxlIiwgdGhpcy5lbGVtZW50KS5sZW5ndGggPw0KCQkJCSJlLHMsc2UiIDogew0KCQkJCQluOiAiLnVpLXJlc2l6YWJsZS1uIiwNCgkJCQkJZTogIi51aS1yZXNpemFibGUtZSIsDQoJCQkJCXM6ICIudWktcmVzaXphYmxlLXMiLA0KCQkJCQl3OiAiLnVpLXJlc2l6YWJsZS13IiwNCgkJCQkJc2U6ICIudWktcmVzaXphYmxlLXNlIiwNCgkJCQkJc3c6ICIudWktcmVzaXphYmxlLXN3IiwNCgkJCQkJbmU6ICIudWktcmVzaXphYmxlLW5lIiwNCgkJCQkJbnc6ICIudWktcmVzaXphYmxlLW53Ig0KCQkJCX0gKTsNCg0KCQlpZiAodGhpcy5oYW5kbGVzLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHsNCg0KCQkJaWYgKCB0aGlzLmhhbmRsZXMgPT09ICJhbGwiKSB7DQoJCQkJdGhpcy5oYW5kbGVzID0gIm4sZSxzLHcsc2Usc3csbmUsbnciOw0KCQkJfQ0KDQoJCQluID0gdGhpcy5oYW5kbGVzLnNwbGl0KCIsIik7DQoJCQl0aGlzLmhhbmRsZXMgPSB7fTsNCg0KCQkJZm9yIChpID0gMDsgaSA8IG4ubGVuZ3RoOyBpKyspIHsNCg0KCQkJCWhhbmRsZSA9ICQudHJpbShuW2ldKTsNCgkJCQlobmFtZSA9ICJ1aS1yZXNpemFibGUtIiArIGhhbmRsZTsNCgkJCQlheGlzID0gJCgiPGRpdiBjbGFzcz0ndWktcmVzaXphYmxlLWhhbmRsZSAiICsgaG5hbWUgKyAiJz48L2Rpdj4iKTsNCg0KCQkJCWF4aXMuY3NzKHsgekluZGV4OiBvLnpJbmRleCB9KTsNCg0KCQkJCS8vIFRPRE8gOiBXaGF0J3MgZ29pbmcgb24gaGVyZT8NCgkJCQlpZiAoInNlIiA9PT0gaGFuZGxlKSB7DQoJCQkJCWF4aXMuYWRkQ2xhc3MoInVpLWljb24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiKTsNCgkJCQl9DQoNCgkJCQl0aGlzLmhhbmRsZXNbaGFuZGxlXSA9ICIudWktcmVzaXphYmxlLSIgKyBoYW5kbGU7DQoJCQkJdGhpcy5lbGVtZW50LmFwcGVuZChheGlzKTsNCgkJCX0NCg0KCQl9DQoNCgkJdGhpcy5fcmVuZGVyQXhpcyA9IGZ1bmN0aW9uKHRhcmdldCkgew0KDQoJCQl2YXIgaSwgYXhpcywgcGFkUG9zLCBwYWRXcmFwcGVyOw0KDQoJCQl0YXJnZXQgPSB0YXJnZXQgfHwgdGhpcy5lbGVtZW50Ow0KDQoJCQlmb3IgKGkgaW4gdGhpcy5oYW5kbGVzKSB7DQoNCgkJCQlpZiAodGhpcy5oYW5kbGVzW2ldLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHsNCgkJCQkJdGhpcy5oYW5kbGVzW2ldID0gdGhpcy5lbGVtZW50LmNoaWxkcmVuKCB0aGlzLmhhbmRsZXNbIGkgXSApLmZpcnN0KCkuc2hvdygpOw0KCQkJCX0NCg0KCQkJCWlmICh0aGlzLmVsZW1lbnRJc1dyYXBwZXIgJiYgdGhpcy5vcmlnaW5hbEVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL3RleHRhcmVhfGlucHV0fHNlbGVjdHxidXR0b24vaSkpIHsNCg0KCQkJCQlheGlzID0gJCh0aGlzLmhhbmRsZXNbaV0sIHRoaXMuZWxlbWVudCk7DQoNCgkJCQkJcGFkV3JhcHBlciA9IC9zd3xuZXxud3xzZXxufHMvLnRlc3QoaSkgPyBheGlzLm91dGVySGVpZ2h0KCkgOiBheGlzLm91dGVyV2lkdGgoKTsNCg0KCQkJCQlwYWRQb3MgPSBbICJwYWRkaW5nIiwNCgkJCQkJCS9uZXxud3xuLy50ZXN0KGkpID8gIlRvcCIgOg0KCQkJCQkJL3NlfHN3fHMvLnRlc3QoaSkgPyAiQm90dG9tIiA6DQoJCQkJCQkvXmUkLy50ZXN0KGkpID8gIlJpZ2h0IiA6ICJMZWZ0IiBdLmpvaW4oIiIpOw0KDQoJCQkJCXRhcmdldC5jc3MocGFkUG9zLCBwYWRXcmFwcGVyKTsNCg0KCQkJCQl0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpOw0KDQoJCQkJfQ0KDQoJCQkJLy8gVE9ETzogV2hhdCdzIHRoYXQgZ29vZCBmb3I/IFRoZXJlJ3Mgbm90IGFueXRoaW5nIHRvIGJlIGV4ZWN1dGVkIGxlZnQNCgkJCQlpZiAoISQodGhpcy5oYW5kbGVzW2ldKS5sZW5ndGgpIHsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KCQkJfQ0KCQl9Ow0KDQoJCS8vIFRPRE86IG1ha2UgcmVuZGVyQXhpcyBhIHByb3RvdHlwZSBmdW5jdGlvbg0KCQl0aGlzLl9yZW5kZXJBeGlzKHRoaXMuZWxlbWVudCk7DQoNCgkJdGhpcy5faGFuZGxlcyA9ICQoIi51aS1yZXNpemFibGUtaGFuZGxlIiwgdGhpcy5lbGVtZW50KQ0KCQkJLmRpc2FibGVTZWxlY3Rpb24oKTsNCg0KCQl0aGlzLl9oYW5kbGVzLm1vdXNlb3ZlcihmdW5jdGlvbigpIHsNCgkJCWlmICghdGhhdC5yZXNpemluZykgew0KCQkJCWlmICh0aGlzLmNsYXNzTmFtZSkgew0KCQkJCQlheGlzID0gdGhpcy5jbGFzc05hbWUubWF0Y2goL3VpLXJlc2l6YWJsZS0oc2V8c3d8bmV8bnd8bnxlfHN8dykvaSk7DQoJCQkJfQ0KCQkJCXRoYXQuYXhpcyA9IGF4aXMgJiYgYXhpc1sxXSA/IGF4aXNbMV0gOiAic2UiOw0KCQkJfQ0KCQl9KTsNCg0KCQlpZiAoby5hdXRvSGlkZSkgew0KCQkJdGhpcy5faGFuZGxlcy5oaWRlKCk7DQoJCQkkKHRoaXMuZWxlbWVudCkNCgkJCQkuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpDQoJCQkJLm1vdXNlZW50ZXIoZnVuY3Rpb24oKSB7DQoJCQkJCWlmIChvLmRpc2FibGVkKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCgkJCQkJJCh0aGlzKS5yZW1vdmVDbGFzcygidWktcmVzaXphYmxlLWF1dG9oaWRlIik7DQoJCQkJCXRoYXQuX2hhbmRsZXMuc2hvdygpOw0KCQkJCX0pDQoJCQkJLm1vdXNlbGVhdmUoZnVuY3Rpb24oKSB7DQoJCQkJCWlmIChvLmRpc2FibGVkKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCgkJCQkJaWYgKCF0aGF0LnJlc2l6aW5nKSB7DQoJCQkJCQkkKHRoaXMpLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKTsNCgkJCQkJCXRoYXQuX2hhbmRsZXMuaGlkZSgpOw0KCQkJCQl9DQoJCQkJfSk7DQoJCX0NCg0KCQl0aGlzLl9tb3VzZUluaXQoKTsNCg0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoNCgkJdGhpcy5fbW91c2VEZXN0cm95KCk7DQoNCgkJdmFyIHdyYXBwZXIsDQoJCQlfZGVzdHJveSA9IGZ1bmN0aW9uKGV4cCkgew0KCQkJCSQoZXhwKQ0KCQkJCQkucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZSB1aS1yZXNpemFibGUtZGlzYWJsZWQgdWktcmVzaXphYmxlLXJlc2l6aW5nIikNCgkJCQkJLnJlbW92ZURhdGEoInJlc2l6YWJsZSIpDQoJCQkJCS5yZW1vdmVEYXRhKCJ1aS1yZXNpemFibGUiKQ0KCQkJCQkudW5iaW5kKCIucmVzaXphYmxlIikNCgkJCQkJLmZpbmQoIi51aS1yZXNpemFibGUtaGFuZGxlIikNCgkJCQkJCS5yZW1vdmUoKTsNCgkJCX07DQoNCgkJLy8gVE9ETzogVW53cmFwIGF0IHNhbWUgRE9NIHBvc2l0aW9uDQoJCWlmICh0aGlzLmVsZW1lbnRJc1dyYXBwZXIpIHsNCgkJCV9kZXN0cm95KHRoaXMuZWxlbWVudCk7DQoJCQl3cmFwcGVyID0gdGhpcy5lbGVtZW50Ow0KCQkJdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHsNCgkJCQlwb3NpdGlvbjogd3JhcHBlci5jc3MoInBvc2l0aW9uIiksDQoJCQkJd2lkdGg6IHdyYXBwZXIub3V0ZXJXaWR0aCgpLA0KCQkJCWhlaWdodDogd3JhcHBlci5vdXRlckhlaWdodCgpLA0KCQkJCXRvcDogd3JhcHBlci5jc3MoInRvcCIpLA0KCQkJCWxlZnQ6IHdyYXBwZXIuY3NzKCJsZWZ0IikNCgkJCX0pLmluc2VydEFmdGVyKCB3cmFwcGVyICk7DQoJCQl3cmFwcGVyLnJlbW92ZSgpOw0KCQl9DQoNCgkJdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJyZXNpemUiLCB0aGlzLm9yaWdpbmFsUmVzaXplU3R5bGUpOw0KCQlfZGVzdHJveSh0aGlzLm9yaWdpbmFsRWxlbWVudCk7DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCg0KCV9tb3VzZUNhcHR1cmU6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciBpLCBoYW5kbGUsDQoJCQljYXB0dXJlID0gZmFsc2U7DQoNCgkJZm9yIChpIGluIHRoaXMuaGFuZGxlcykgew0KCQkJaGFuZGxlID0gJCh0aGlzLmhhbmRsZXNbaV0pWzBdOw0KCQkJaWYgKGhhbmRsZSA9PT0gZXZlbnQudGFyZ2V0IHx8ICQuY29udGFpbnMoaGFuZGxlLCBldmVudC50YXJnZXQpKSB7DQoJCQkJY2FwdHVyZSA9IHRydWU7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gIXRoaXMub3B0aW9ucy5kaXNhYmxlZCAmJiBjYXB0dXJlOw0KCX0sDQoNCglfbW91c2VTdGFydDogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl2YXIgY3VybGVmdCwgY3VydG9wLCBjdXJzb3IsDQoJCQlvID0gdGhpcy5vcHRpb25zLA0KCQkJZWwgPSB0aGlzLmVsZW1lbnQ7DQoNCgkJdGhpcy5yZXNpemluZyA9IHRydWU7DQoNCgkJdGhpcy5fcmVuZGVyUHJveHkoKTsNCg0KCQljdXJsZWZ0ID0gdGhpcy5fbnVtKHRoaXMuaGVscGVyLmNzcygibGVmdCIpKTsNCgkJY3VydG9wID0gdGhpcy5fbnVtKHRoaXMuaGVscGVyLmNzcygidG9wIikpOw0KDQoJCWlmIChvLmNvbnRhaW5tZW50KSB7DQoJCQljdXJsZWZ0ICs9ICQoby5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpIHx8IDA7DQoJCQljdXJ0b3AgKz0gJChvLmNvbnRhaW5tZW50KS5zY3JvbGxUb3AoKSB8fCAwOw0KCQl9DQoNCgkJdGhpcy5vZmZzZXQgPSB0aGlzLmhlbHBlci5vZmZzZXQoKTsNCgkJdGhpcy5wb3NpdGlvbiA9IHsgbGVmdDogY3VybGVmdCwgdG9wOiBjdXJ0b3AgfTsNCg0KCQl0aGlzLnNpemUgPSB0aGlzLl9oZWxwZXIgPyB7DQoJCQkJd2lkdGg6IHRoaXMuaGVscGVyLndpZHRoKCksDQoJCQkJaGVpZ2h0OiB0aGlzLmhlbHBlci5oZWlnaHQoKQ0KCQkJfSA6IHsNCgkJCQl3aWR0aDogZWwud2lkdGgoKSwNCgkJCQloZWlnaHQ6IGVsLmhlaWdodCgpDQoJCQl9Ow0KDQoJCXRoaXMub3JpZ2luYWxTaXplID0gdGhpcy5faGVscGVyID8gew0KCQkJCXdpZHRoOiBlbC5vdXRlcldpZHRoKCksDQoJCQkJaGVpZ2h0OiBlbC5vdXRlckhlaWdodCgpDQoJCQl9IDogew0KCQkJCXdpZHRoOiBlbC53aWR0aCgpLA0KCQkJCWhlaWdodDogZWwuaGVpZ2h0KCkNCgkJCX07DQoNCgkJdGhpcy5zaXplRGlmZiA9IHsNCgkJCXdpZHRoOiBlbC5vdXRlcldpZHRoKCkgLSBlbC53aWR0aCgpLA0KCQkJaGVpZ2h0OiBlbC5vdXRlckhlaWdodCgpIC0gZWwuaGVpZ2h0KCkNCgkJfTsNCg0KCQl0aGlzLm9yaWdpbmFsUG9zaXRpb24gPSB7IGxlZnQ6IGN1cmxlZnQsIHRvcDogY3VydG9wIH07DQoJCXRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uID0geyBsZWZ0OiBldmVudC5wYWdlWCwgdG9wOiBldmVudC5wYWdlWSB9Ow0KDQoJCXRoaXMuYXNwZWN0UmF0aW8gPSAodHlwZW9mIG8uYXNwZWN0UmF0aW8gPT09ICJudW1iZXIiKSA/DQoJCQlvLmFzcGVjdFJhdGlvIDoNCgkJCSgodGhpcy5vcmlnaW5hbFNpemUud2lkdGggLyB0aGlzLm9yaWdpbmFsU2l6ZS5oZWlnaHQpIHx8IDEpOw0KDQoJCWN1cnNvciA9ICQoIi51aS1yZXNpemFibGUtIiArIHRoaXMuYXhpcykuY3NzKCJjdXJzb3IiKTsNCgkJJCgiYm9keSIpLmNzcygiY3Vyc29yIiwgY3Vyc29yID09PSAiYXV0byIgPyB0aGlzLmF4aXMgKyAiLXJlc2l6ZSIgOiBjdXJzb3IpOw0KDQoJCWVsLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKTsNCgkJdGhpcy5fcHJvcGFnYXRlKCJzdGFydCIsIGV2ZW50KTsNCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCV9tb3VzZURyYWc6IGZ1bmN0aW9uKGV2ZW50KSB7DQoNCgkJdmFyIGRhdGEsIHByb3BzLA0KCQkJc21wID0gdGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb24sDQoJCQlhID0gdGhpcy5heGlzLA0KCQkJZHggPSAoZXZlbnQucGFnZVggLSBzbXAubGVmdCkgfHwgMCwNCgkJCWR5ID0gKGV2ZW50LnBhZ2VZIC0gc21wLnRvcCkgfHwgMCwNCgkJCXRyaWdnZXIgPSB0aGlzLl9jaGFuZ2VbYV07DQoNCgkJdGhpcy5fdXBkYXRlUHJldlByb3BlcnRpZXMoKTsNCg0KCQlpZiAoIXRyaWdnZXIpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWRhdGEgPSB0cmlnZ2VyLmFwcGx5KHRoaXMsIFsgZXZlbnQsIGR4LCBkeSBdKTsNCg0KCQl0aGlzLl91cGRhdGVWaXJ0dWFsQm91bmRhcmllcyhldmVudC5zaGlmdEtleSk7DQoJCWlmICh0aGlzLl9hc3BlY3RSYXRpbyB8fCBldmVudC5zaGlmdEtleSkgew0KCQkJZGF0YSA9IHRoaXMuX3VwZGF0ZVJhdGlvKGRhdGEsIGV2ZW50KTsNCgkJfQ0KDQoJCWRhdGEgPSB0aGlzLl9yZXNwZWN0U2l6ZShkYXRhLCBldmVudCk7DQoNCgkJdGhpcy5fdXBkYXRlQ2FjaGUoZGF0YSk7DQoNCgkJdGhpcy5fcHJvcGFnYXRlKCJyZXNpemUiLCBldmVudCk7DQoNCgkJcHJvcHMgPSB0aGlzLl9hcHBseUNoYW5nZXMoKTsNCg0KCQlpZiAoICF0aGlzLl9oZWxwZXIgJiYgdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5sZW5ndGggKSB7DQoJCQl0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpOw0KCQl9DQoNCgkJaWYgKCAhJC5pc0VtcHR5T2JqZWN0KCBwcm9wcyApICkgew0KCQkJdGhpcy5fdXBkYXRlUHJldlByb3BlcnRpZXMoKTsNCgkJCXRoaXMuX3RyaWdnZXIoICJyZXNpemUiLCBldmVudCwgdGhpcy51aSgpICk7DQoJCQl0aGlzLl9hcHBseUNoYW5nZXMoKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJX21vdXNlU3RvcDogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl0aGlzLnJlc2l6aW5nID0gZmFsc2U7DQoJCXZhciBwciwgaXN0YSwgc29mZnNldGgsIHNvZmZzZXR3LCBzLCBsZWZ0LCB0b3AsDQoJCQlvID0gdGhpcy5vcHRpb25zLCB0aGF0ID0gdGhpczsNCg0KCQlpZiAodGhpcy5faGVscGVyKSB7DQoNCgkJCXByID0gdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50czsNCgkJCWlzdGEgPSBwci5sZW5ndGggJiYgKC90ZXh0YXJlYS9pKS50ZXN0KHByWzBdLm5vZGVOYW1lKTsNCgkJCXNvZmZzZXRoID0gaXN0YSAmJiB0aGlzLl9oYXNTY3JvbGwocHJbMF0sICJsZWZ0IikgPyAwIDogdGhhdC5zaXplRGlmZi5oZWlnaHQ7DQoJCQlzb2Zmc2V0dyA9IGlzdGEgPyAwIDogdGhhdC5zaXplRGlmZi53aWR0aDsNCg0KCQkJcyA9IHsNCgkJCQl3aWR0aDogKHRoYXQuaGVscGVyLndpZHRoKCkgIC0gc29mZnNldHcpLA0KCQkJCWhlaWdodDogKHRoYXQuaGVscGVyLmhlaWdodCgpIC0gc29mZnNldGgpDQoJCQl9Ow0KCQkJbGVmdCA9IChwYXJzZUludCh0aGF0LmVsZW1lbnQuY3NzKCJsZWZ0IiksIDEwKSArDQoJCQkJKHRoYXQucG9zaXRpb24ubGVmdCAtIHRoYXQub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KSkgfHwgbnVsbDsNCgkJCXRvcCA9IChwYXJzZUludCh0aGF0LmVsZW1lbnQuY3NzKCJ0b3AiKSwgMTApICsNCgkJCQkodGhhdC5wb3NpdGlvbi50b3AgLSB0aGF0Lm9yaWdpbmFsUG9zaXRpb24udG9wKSkgfHwgbnVsbDsNCg0KCQkJaWYgKCFvLmFuaW1hdGUpIHsNCgkJCQl0aGlzLmVsZW1lbnQuY3NzKCQuZXh0ZW5kKHMsIHsgdG9wOiB0b3AsIGxlZnQ6IGxlZnQgfSkpOw0KCQkJfQ0KDQoJCQl0aGF0LmhlbHBlci5oZWlnaHQodGhhdC5zaXplLmhlaWdodCk7DQoJCQl0aGF0LmhlbHBlci53aWR0aCh0aGF0LnNpemUud2lkdGgpOw0KDQoJCQlpZiAodGhpcy5faGVscGVyICYmICFvLmFuaW1hdGUpIHsNCgkJCQl0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpOw0KCQkJfQ0KCQl9DQoNCgkJJCgiYm9keSIpLmNzcygiY3Vyc29yIiwgImF1dG8iKTsNCg0KCQl0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1yZXNpemluZyIpOw0KDQoJCXRoaXMuX3Byb3BhZ2F0ZSgic3RvcCIsIGV2ZW50KTsNCg0KCQlpZiAodGhpcy5faGVscGVyKSB7DQoJCQl0aGlzLmhlbHBlci5yZW1vdmUoKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCg0KCX0sDQoNCglfdXBkYXRlUHJldlByb3BlcnRpZXM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLnByZXZQb3NpdGlvbiA9IHsNCgkJCXRvcDogdGhpcy5wb3NpdGlvbi50b3AsDQoJCQlsZWZ0OiB0aGlzLnBvc2l0aW9uLmxlZnQNCgkJfTsNCgkJdGhpcy5wcmV2U2l6ZSA9IHsNCgkJCXdpZHRoOiB0aGlzLnNpemUud2lkdGgsDQoJCQloZWlnaHQ6IHRoaXMuc2l6ZS5oZWlnaHQNCgkJfTsNCgl9LA0KDQoJX2FwcGx5Q2hhbmdlczogZnVuY3Rpb24oKSB7DQoJCXZhciBwcm9wcyA9IHt9Ow0KDQoJCWlmICggdGhpcy5wb3NpdGlvbi50b3AgIT09IHRoaXMucHJldlBvc2l0aW9uLnRvcCApIHsNCgkJCXByb3BzLnRvcCA9IHRoaXMucG9zaXRpb24udG9wICsgInB4IjsNCgkJfQ0KCQlpZiAoIHRoaXMucG9zaXRpb24ubGVmdCAhPT0gdGhpcy5wcmV2UG9zaXRpb24ubGVmdCApIHsNCgkJCXByb3BzLmxlZnQgPSB0aGlzLnBvc2l0aW9uLmxlZnQgKyAicHgiOw0KCQl9DQoJCWlmICggdGhpcy5zaXplLndpZHRoICE9PSB0aGlzLnByZXZTaXplLndpZHRoICkgew0KCQkJcHJvcHMud2lkdGggPSB0aGlzLnNpemUud2lkdGggKyAicHgiOw0KCQl9DQoJCWlmICggdGhpcy5zaXplLmhlaWdodCAhPT0gdGhpcy5wcmV2U2l6ZS5oZWlnaHQgKSB7DQoJCQlwcm9wcy5oZWlnaHQgPSB0aGlzLnNpemUuaGVpZ2h0ICsgInB4IjsNCgkJfQ0KDQoJCXRoaXMuaGVscGVyLmNzcyggcHJvcHMgKTsNCg0KCQlyZXR1cm4gcHJvcHM7DQoJfSwNCg0KCV91cGRhdGVWaXJ0dWFsQm91bmRhcmllczogZnVuY3Rpb24oZm9yY2VBc3BlY3RSYXRpbykgew0KCQl2YXIgcE1pbldpZHRoLCBwTWF4V2lkdGgsIHBNaW5IZWlnaHQsIHBNYXhIZWlnaHQsIGIsDQoJCQlvID0gdGhpcy5vcHRpb25zOw0KDQoJCWIgPSB7DQoJCQltaW5XaWR0aDogdGhpcy5faXNOdW1iZXIoby5taW5XaWR0aCkgPyBvLm1pbldpZHRoIDogMCwNCgkJCW1heFdpZHRoOiB0aGlzLl9pc051bWJlcihvLm1heFdpZHRoKSA/IG8ubWF4V2lkdGggOiBJbmZpbml0eSwNCgkJCW1pbkhlaWdodDogdGhpcy5faXNOdW1iZXIoby5taW5IZWlnaHQpID8gby5taW5IZWlnaHQgOiAwLA0KCQkJbWF4SGVpZ2h0OiB0aGlzLl9pc051bWJlcihvLm1heEhlaWdodCkgPyBvLm1heEhlaWdodCA6IEluZmluaXR5DQoJCX07DQoNCgkJaWYgKHRoaXMuX2FzcGVjdFJhdGlvIHx8IGZvcmNlQXNwZWN0UmF0aW8pIHsNCgkJCXBNaW5XaWR0aCA9IGIubWluSGVpZ2h0ICogdGhpcy5hc3BlY3RSYXRpbzsNCgkJCXBNaW5IZWlnaHQgPSBiLm1pbldpZHRoIC8gdGhpcy5hc3BlY3RSYXRpbzsNCgkJCXBNYXhXaWR0aCA9IGIubWF4SGVpZ2h0ICogdGhpcy5hc3BlY3RSYXRpbzsNCgkJCXBNYXhIZWlnaHQgPSBiLm1heFdpZHRoIC8gdGhpcy5hc3BlY3RSYXRpbzsNCg0KCQkJaWYgKHBNaW5XaWR0aCA+IGIubWluV2lkdGgpIHsNCgkJCQliLm1pbldpZHRoID0gcE1pbldpZHRoOw0KCQkJfQ0KCQkJaWYgKHBNaW5IZWlnaHQgPiBiLm1pbkhlaWdodCkgew0KCQkJCWIubWluSGVpZ2h0ID0gcE1pbkhlaWdodDsNCgkJCX0NCgkJCWlmIChwTWF4V2lkdGggPCBiLm1heFdpZHRoKSB7DQoJCQkJYi5tYXhXaWR0aCA9IHBNYXhXaWR0aDsNCgkJCX0NCgkJCWlmIChwTWF4SGVpZ2h0IDwgYi5tYXhIZWlnaHQpIHsNCgkJCQliLm1heEhlaWdodCA9IHBNYXhIZWlnaHQ7DQoJCQl9DQoJCX0NCgkJdGhpcy5fdkJvdW5kYXJpZXMgPSBiOw0KCX0sDQoNCglfdXBkYXRlQ2FjaGU6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJdGhpcy5vZmZzZXQgPSB0aGlzLmhlbHBlci5vZmZzZXQoKTsNCgkJaWYgKHRoaXMuX2lzTnVtYmVyKGRhdGEubGVmdCkpIHsNCgkJCXRoaXMucG9zaXRpb24ubGVmdCA9IGRhdGEubGVmdDsNCgkJfQ0KCQlpZiAodGhpcy5faXNOdW1iZXIoZGF0YS50b3ApKSB7DQoJCQl0aGlzLnBvc2l0aW9uLnRvcCA9IGRhdGEudG9wOw0KCQl9DQoJCWlmICh0aGlzLl9pc051bWJlcihkYXRhLmhlaWdodCkpIHsNCgkJCXRoaXMuc2l6ZS5oZWlnaHQgPSBkYXRhLmhlaWdodDsNCgkJfQ0KCQlpZiAodGhpcy5faXNOdW1iZXIoZGF0YS53aWR0aCkpIHsNCgkJCXRoaXMuc2l6ZS53aWR0aCA9IGRhdGEud2lkdGg7DQoJCX0NCgl9LA0KDQoJX3VwZGF0ZVJhdGlvOiBmdW5jdGlvbiggZGF0YSApIHsNCg0KCQl2YXIgY3BvcyA9IHRoaXMucG9zaXRpb24sDQoJCQljc2l6ZSA9IHRoaXMuc2l6ZSwNCgkJCWEgPSB0aGlzLmF4aXM7DQoNCgkJaWYgKHRoaXMuX2lzTnVtYmVyKGRhdGEuaGVpZ2h0KSkgew0KCQkJZGF0YS53aWR0aCA9IChkYXRhLmhlaWdodCAqIHRoaXMuYXNwZWN0UmF0aW8pOw0KCQl9IGVsc2UgaWYgKHRoaXMuX2lzTnVtYmVyKGRhdGEud2lkdGgpKSB7DQoJCQlkYXRhLmhlaWdodCA9IChkYXRhLndpZHRoIC8gdGhpcy5hc3BlY3RSYXRpbyk7DQoJCX0NCg0KCQlpZiAoYSA9PT0gInN3Iikgew0KCQkJZGF0YS5sZWZ0ID0gY3Bvcy5sZWZ0ICsgKGNzaXplLndpZHRoIC0gZGF0YS53aWR0aCk7DQoJCQlkYXRhLnRvcCA9IG51bGw7DQoJCX0NCgkJaWYgKGEgPT09ICJudyIpIHsNCgkJCWRhdGEudG9wID0gY3Bvcy50b3AgKyAoY3NpemUuaGVpZ2h0IC0gZGF0YS5oZWlnaHQpOw0KCQkJZGF0YS5sZWZ0ID0gY3Bvcy5sZWZ0ICsgKGNzaXplLndpZHRoIC0gZGF0YS53aWR0aCk7DQoJCX0NCg0KCQlyZXR1cm4gZGF0YTsNCgl9LA0KDQoJX3Jlc3BlY3RTaXplOiBmdW5jdGlvbiggZGF0YSApIHsNCg0KCQl2YXIgbyA9IHRoaXMuX3ZCb3VuZGFyaWVzLA0KCQkJYSA9IHRoaXMuYXhpcywNCgkJCWlzbWF4dyA9IHRoaXMuX2lzTnVtYmVyKGRhdGEud2lkdGgpICYmIG8ubWF4V2lkdGggJiYgKG8ubWF4V2lkdGggPCBkYXRhLndpZHRoKSwNCgkJCWlzbWF4aCA9IHRoaXMuX2lzTnVtYmVyKGRhdGEuaGVpZ2h0KSAmJiBvLm1heEhlaWdodCAmJiAoby5tYXhIZWlnaHQgPCBkYXRhLmhlaWdodCksDQoJCQlpc21pbncgPSB0aGlzLl9pc051bWJlcihkYXRhLndpZHRoKSAmJiBvLm1pbldpZHRoICYmIChvLm1pbldpZHRoID4gZGF0YS53aWR0aCksDQoJCQlpc21pbmggPSB0aGlzLl9pc051bWJlcihkYXRhLmhlaWdodCkgJiYgby5taW5IZWlnaHQgJiYgKG8ubWluSGVpZ2h0ID4gZGF0YS5oZWlnaHQpLA0KCQkJZHcgPSB0aGlzLm9yaWdpbmFsUG9zaXRpb24ubGVmdCArIHRoaXMub3JpZ2luYWxTaXplLndpZHRoLA0KCQkJZGggPSB0aGlzLnBvc2l0aW9uLnRvcCArIHRoaXMuc2l6ZS5oZWlnaHQsDQoJCQljdyA9IC9zd3xud3x3Ly50ZXN0KGEpLCBjaCA9IC9ud3xuZXxuLy50ZXN0KGEpOw0KCQlpZiAoaXNtaW53KSB7DQoJCQlkYXRhLndpZHRoID0gby5taW5XaWR0aDsNCgkJfQ0KCQlpZiAoaXNtaW5oKSB7DQoJCQlkYXRhLmhlaWdodCA9IG8ubWluSGVpZ2h0Ow0KCQl9DQoJCWlmIChpc21heHcpIHsNCgkJCWRhdGEud2lkdGggPSBvLm1heFdpZHRoOw0KCQl9DQoJCWlmIChpc21heGgpIHsNCgkJCWRhdGEuaGVpZ2h0ID0gby5tYXhIZWlnaHQ7DQoJCX0NCg0KCQlpZiAoaXNtaW53ICYmIGN3KSB7DQoJCQlkYXRhLmxlZnQgPSBkdyAtIG8ubWluV2lkdGg7DQoJCX0NCgkJaWYgKGlzbWF4dyAmJiBjdykgew0KCQkJZGF0YS5sZWZ0ID0gZHcgLSBvLm1heFdpZHRoOw0KCQl9DQoJCWlmIChpc21pbmggJiYgY2gpIHsNCgkJCWRhdGEudG9wID0gZGggLSBvLm1pbkhlaWdodDsNCgkJfQ0KCQlpZiAoaXNtYXhoICYmIGNoKSB7DQoJCQlkYXRhLnRvcCA9IGRoIC0gby5tYXhIZWlnaHQ7DQoJCX0NCg0KCQkvLyBGaXhpbmcganVtcCBlcnJvciBvbiB0b3AvbGVmdCAtIGJ1ZyAjMjMzMA0KCQlpZiAoIWRhdGEud2lkdGggJiYgIWRhdGEuaGVpZ2h0ICYmICFkYXRhLmxlZnQgJiYgZGF0YS50b3ApIHsNCgkJCWRhdGEudG9wID0gbnVsbDsNCgkJfSBlbHNlIGlmICghZGF0YS53aWR0aCAmJiAhZGF0YS5oZWlnaHQgJiYgIWRhdGEudG9wICYmIGRhdGEubGVmdCkgew0KCQkJZGF0YS5sZWZ0ID0gbnVsbDsNCgkJfQ0KDQoJCXJldHVybiBkYXRhOw0KCX0sDQoNCglfZ2V0UGFkZGluZ1BsdXNCb3JkZXJEaW1lbnNpb25zOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJdmFyIGkgPSAwLA0KCQkJd2lkdGhzID0gW10sDQoJCQlib3JkZXJzID0gWw0KCQkJCWVsZW1lbnQuY3NzKCAiYm9yZGVyVG9wV2lkdGgiICksDQoJCQkJZWxlbWVudC5jc3MoICJib3JkZXJSaWdodFdpZHRoIiApLA0KCQkJCWVsZW1lbnQuY3NzKCAiYm9yZGVyQm90dG9tV2lkdGgiICksDQoJCQkJZWxlbWVudC5jc3MoICJib3JkZXJMZWZ0V2lkdGgiICkNCgkJCV0sDQoJCQlwYWRkaW5ncyA9IFsNCgkJCQllbGVtZW50LmNzcyggInBhZGRpbmdUb3AiICksDQoJCQkJZWxlbWVudC5jc3MoICJwYWRkaW5nUmlnaHQiICksDQoJCQkJZWxlbWVudC5jc3MoICJwYWRkaW5nQm90dG9tIiApLA0KCQkJCWVsZW1lbnQuY3NzKCAicGFkZGluZ0xlZnQiICkNCgkJCV07DQoNCgkJZm9yICggOyBpIDwgNDsgaSsrICkgew0KCQkJd2lkdGhzWyBpIF0gPSAoIHBhcnNlSW50KCBib3JkZXJzWyBpIF0sIDEwICkgfHwgMCApOw0KCQkJd2lkdGhzWyBpIF0gKz0gKCBwYXJzZUludCggcGFkZGluZ3NbIGkgXSwgMTAgKSB8fCAwICk7DQoJCX0NCg0KCQlyZXR1cm4gew0KCQkJaGVpZ2h0OiB3aWR0aHNbIDAgXSArIHdpZHRoc1sgMiBdLA0KCQkJd2lkdGg6IHdpZHRoc1sgMSBdICsgd2lkdGhzWyAzIF0NCgkJfTsNCgl9LA0KDQoJX3Byb3BvcnRpb25hbGx5UmVzaXplOiBmdW5jdGlvbigpIHsNCg0KCQlpZiAoIXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgcHJlbCwNCgkJCWkgPSAwLA0KCQkJZWxlbWVudCA9IHRoaXMuaGVscGVyIHx8IHRoaXMuZWxlbWVudDsNCg0KCQlmb3IgKCA7IGkgPCB0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7DQoNCgkJCXByZWwgPSB0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzW2ldOw0KDQoJCQkvLyBUT0RPOiBTZWVtcyBsaWtlIGEgYnVnIHRvIGNhY2hlIHRoaXMub3V0ZXJEaW1lbnNpb25zDQoJCQkvLyBjb25zaWRlcmluZyB0aGF0IHdlIGFyZSBpbiBhIGxvb3AuDQoJCQlpZiAoIXRoaXMub3V0ZXJEaW1lbnNpb25zKSB7DQoJCQkJdGhpcy5vdXRlckRpbWVuc2lvbnMgPSB0aGlzLl9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnMoIHByZWwgKTsNCgkJCX0NCg0KCQkJcHJlbC5jc3Moew0KCQkJCWhlaWdodDogKGVsZW1lbnQuaGVpZ2h0KCkgLSB0aGlzLm91dGVyRGltZW5zaW9ucy5oZWlnaHQpIHx8IDAsDQoJCQkJd2lkdGg6IChlbGVtZW50LndpZHRoKCkgLSB0aGlzLm91dGVyRGltZW5zaW9ucy53aWR0aCkgfHwgMA0KCQkJfSk7DQoNCgkJfQ0KDQoJfSwNCg0KCV9yZW5kZXJQcm94eTogZnVuY3Rpb24oKSB7DQoNCgkJdmFyIGVsID0gdGhpcy5lbGVtZW50LCBvID0gdGhpcy5vcHRpb25zOw0KCQl0aGlzLmVsZW1lbnRPZmZzZXQgPSBlbC5vZmZzZXQoKTsNCg0KCQlpZiAodGhpcy5faGVscGVyKSB7DQoNCgkJCXRoaXMuaGVscGVyID0gdGhpcy5oZWxwZXIgfHwgJCgiPGRpdiBzdHlsZT0nb3ZlcmZsb3c6aGlkZGVuOyc+PC9kaXY+Iik7DQoNCgkJCXRoaXMuaGVscGVyLmFkZENsYXNzKHRoaXMuX2hlbHBlcikuY3NzKHsNCgkJCQl3aWR0aDogdGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSAtIDEsDQoJCQkJaGVpZ2h0OiB0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSAtIDEsDQoJCQkJcG9zaXRpb246ICJhYnNvbHV0ZSIsDQoJCQkJbGVmdDogdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQgKyAicHgiLA0KCQkJCXRvcDogdGhpcy5lbGVtZW50T2Zmc2V0LnRvcCArICJweCIsDQoJCQkJekluZGV4OiArK28uekluZGV4IC8vVE9ETzogRG9uJ3QgbW9kaWZ5IG9wdGlvbg0KCQkJfSk7DQoNCgkJCXRoaXMuaGVscGVyDQoJCQkJLmFwcGVuZFRvKCJib2R5IikNCgkJCQkuZGlzYWJsZVNlbGVjdGlvbigpOw0KDQoJCX0gZWxzZSB7DQoJCQl0aGlzLmhlbHBlciA9IHRoaXMuZWxlbWVudDsNCgkJfQ0KDQoJfSwNCg0KCV9jaGFuZ2U6IHsNCgkJZTogZnVuY3Rpb24oZXZlbnQsIGR4KSB7DQoJCQlyZXR1cm4geyB3aWR0aDogdGhpcy5vcmlnaW5hbFNpemUud2lkdGggKyBkeCB9Ow0KCQl9LA0KCQl3OiBmdW5jdGlvbihldmVudCwgZHgpIHsNCgkJCXZhciBjcyA9IHRoaXMub3JpZ2luYWxTaXplLCBzcCA9IHRoaXMub3JpZ2luYWxQb3NpdGlvbjsNCgkJCXJldHVybiB7IGxlZnQ6IHNwLmxlZnQgKyBkeCwgd2lkdGg6IGNzLndpZHRoIC0gZHggfTsNCgkJfSwNCgkJbjogZnVuY3Rpb24oZXZlbnQsIGR4LCBkeSkgew0KCQkJdmFyIGNzID0gdGhpcy5vcmlnaW5hbFNpemUsIHNwID0gdGhpcy5vcmlnaW5hbFBvc2l0aW9uOw0KCQkJcmV0dXJuIHsgdG9wOiBzcC50b3AgKyBkeSwgaGVpZ2h0OiBjcy5oZWlnaHQgLSBkeSB9Ow0KCQl9LA0KCQlzOiBmdW5jdGlvbihldmVudCwgZHgsIGR5KSB7DQoJCQlyZXR1cm4geyBoZWlnaHQ6IHRoaXMub3JpZ2luYWxTaXplLmhlaWdodCArIGR5IH07DQoJCX0sDQoJCXNlOiBmdW5jdGlvbihldmVudCwgZHgsIGR5KSB7DQoJCQlyZXR1cm4gJC5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwNCgkJCQl0aGlzLl9jaGFuZ2UuZS5hcHBseSh0aGlzLCBbIGV2ZW50LCBkeCwgZHkgXSkpOw0KCQl9LA0KCQlzdzogZnVuY3Rpb24oZXZlbnQsIGR4LCBkeSkgew0KCQkJcmV0dXJuICQuZXh0ZW5kKHRoaXMuX2NoYW5nZS5zLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksDQoJCQkJdGhpcy5fY2hhbmdlLncuYXBwbHkodGhpcywgWyBldmVudCwgZHgsIGR5IF0pKTsNCgkJfSwNCgkJbmU6IGZ1bmN0aW9uKGV2ZW50LCBkeCwgZHkpIHsNCgkJCXJldHVybiAkLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLCBhcmd1bWVudHMpLA0KCQkJCXRoaXMuX2NoYW5nZS5lLmFwcGx5KHRoaXMsIFsgZXZlbnQsIGR4LCBkeSBdKSk7DQoJCX0sDQoJCW53OiBmdW5jdGlvbihldmVudCwgZHgsIGR5KSB7DQoJCQlyZXR1cm4gJC5leHRlbmQodGhpcy5fY2hhbmdlLm4uYXBwbHkodGhpcywgYXJndW1lbnRzKSwNCgkJCQl0aGlzLl9jaGFuZ2Uudy5hcHBseSh0aGlzLCBbIGV2ZW50LCBkeCwgZHkgXSkpOw0KCQl9DQoJfSwNCg0KCV9wcm9wYWdhdGU6IGZ1bmN0aW9uKG4sIGV2ZW50KSB7DQoJCSQudWkucGx1Z2luLmNhbGwodGhpcywgbiwgWyBldmVudCwgdGhpcy51aSgpIF0pOw0KCQkobiAhPT0gInJlc2l6ZSIgJiYgdGhpcy5fdHJpZ2dlcihuLCBldmVudCwgdGhpcy51aSgpKSk7DQoJfSwNCg0KCXBsdWdpbnM6IHt9LA0KDQoJdWk6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gew0KCQkJb3JpZ2luYWxFbGVtZW50OiB0aGlzLm9yaWdpbmFsRWxlbWVudCwNCgkJCWVsZW1lbnQ6IHRoaXMuZWxlbWVudCwNCgkJCWhlbHBlcjogdGhpcy5oZWxwZXIsDQoJCQlwb3NpdGlvbjogdGhpcy5wb3NpdGlvbiwNCgkJCXNpemU6IHRoaXMuc2l6ZSwNCgkJCW9yaWdpbmFsU2l6ZTogdGhpcy5vcmlnaW5hbFNpemUsDQoJCQlvcmlnaW5hbFBvc2l0aW9uOiB0aGlzLm9yaWdpbmFsUG9zaXRpb24NCgkJfTsNCgl9DQoNCn0pOw0KDQovKg0KICogUmVzaXphYmxlIEV4dGVuc2lvbnMNCiAqLw0KDQokLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsICJhbmltYXRlIiwgew0KDQoJc3RvcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgdGhhdCA9ICQodGhpcykucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zLA0KCQkJcHIgPSB0aGF0Ll9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLA0KCQkJaXN0YSA9IHByLmxlbmd0aCAmJiAoL3RleHRhcmVhL2kpLnRlc3QocHJbMF0ubm9kZU5hbWUpLA0KCQkJc29mZnNldGggPSBpc3RhICYmIHRoYXQuX2hhc1Njcm9sbChwclswXSwgImxlZnQiKSA/IDAgOiB0aGF0LnNpemVEaWZmLmhlaWdodCwNCgkJCXNvZmZzZXR3ID0gaXN0YSA/IDAgOiB0aGF0LnNpemVEaWZmLndpZHRoLA0KCQkJc3R5bGUgPSB7IHdpZHRoOiAodGhhdC5zaXplLndpZHRoIC0gc29mZnNldHcpLCBoZWlnaHQ6ICh0aGF0LnNpemUuaGVpZ2h0IC0gc29mZnNldGgpIH0sDQoJCQlsZWZ0ID0gKHBhcnNlSW50KHRoYXQuZWxlbWVudC5jc3MoImxlZnQiKSwgMTApICsNCgkJCQkodGhhdC5wb3NpdGlvbi5sZWZ0IC0gdGhhdC5vcmlnaW5hbFBvc2l0aW9uLmxlZnQpKSB8fCBudWxsLA0KCQkJdG9wID0gKHBhcnNlSW50KHRoYXQuZWxlbWVudC5jc3MoInRvcCIpLCAxMCkgKw0KCQkJCSh0aGF0LnBvc2l0aW9uLnRvcCAtIHRoYXQub3JpZ2luYWxQb3NpdGlvbi50b3ApKSB8fCBudWxsOw0KDQoJCXRoYXQuZWxlbWVudC5hbmltYXRlKA0KCQkJJC5leHRlbmQoc3R5bGUsIHRvcCAmJiBsZWZ0ID8geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9IDoge30pLCB7DQoJCQkJZHVyYXRpb246IG8uYW5pbWF0ZUR1cmF0aW9uLA0KCQkJCWVhc2luZzogby5hbmltYXRlRWFzaW5nLA0KCQkJCXN0ZXA6IGZ1bmN0aW9uKCkgew0KDQoJCQkJCXZhciBkYXRhID0gew0KCQkJCQkJd2lkdGg6IHBhcnNlSW50KHRoYXQuZWxlbWVudC5jc3MoIndpZHRoIiksIDEwKSwNCgkJCQkJCWhlaWdodDogcGFyc2VJbnQodGhhdC5lbGVtZW50LmNzcygiaGVpZ2h0IiksIDEwKSwNCgkJCQkJCXRvcDogcGFyc2VJbnQodGhhdC5lbGVtZW50LmNzcygidG9wIiksIDEwKSwNCgkJCQkJCWxlZnQ6IHBhcnNlSW50KHRoYXQuZWxlbWVudC5jc3MoImxlZnQiKSwgMTApDQoJCQkJCX07DQoNCgkJCQkJaWYgKHByICYmIHByLmxlbmd0aCkgew0KCQkJCQkJJChwclswXSkuY3NzKHsgd2lkdGg6IGRhdGEud2lkdGgsIGhlaWdodDogZGF0YS5oZWlnaHQgfSk7DQoJCQkJCX0NCg0KCQkJCQkvLyBwcm9wYWdhdGluZyByZXNpemUsIGFuZCB1cGRhdGluZyB2YWx1ZXMgZm9yIGVhY2ggYW5pbWF0aW9uIHN0ZXANCgkJCQkJdGhhdC5fdXBkYXRlQ2FjaGUoZGF0YSk7DQoJCQkJCXRoYXQuX3Byb3BhZ2F0ZSgicmVzaXplIiwgZXZlbnQpOw0KDQoJCQkJfQ0KCQkJfQ0KCQkpOw0KCX0NCg0KfSk7DQoNCiQudWkucGx1Z2luLmFkZCggInJlc2l6YWJsZSIsICJjb250YWlubWVudCIsIHsNCg0KCXN0YXJ0OiBmdW5jdGlvbigpIHsNCgkJdmFyIGVsZW1lbnQsIHAsIGNvLCBjaCwgY3csIHdpZHRoLCBoZWlnaHQsDQoJCQl0aGF0ID0gJCggdGhpcyApLnJlc2l6YWJsZSggImluc3RhbmNlIiApLA0KCQkJbyA9IHRoYXQub3B0aW9ucywNCgkJCWVsID0gdGhhdC5lbGVtZW50LA0KCQkJb2MgPSBvLmNvbnRhaW5tZW50LA0KCQkJY2UgPSAoIG9jIGluc3RhbmNlb2YgJCApID8gb2MuZ2V0KCAwICkgOiAoIC9wYXJlbnQvLnRlc3QoIG9jICkgKSA/IGVsLnBhcmVudCgpLmdldCggMCApIDogb2M7DQoNCgkJaWYgKCAhY2UgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGF0LmNvbnRhaW5lckVsZW1lbnQgPSAkKCBjZSApOw0KDQoJCWlmICggL2RvY3VtZW50Ly50ZXN0KCBvYyApIHx8IG9jID09PSBkb2N1bWVudCApIHsNCgkJCXRoYXQuY29udGFpbmVyT2Zmc2V0ID0gew0KCQkJCWxlZnQ6IDAsDQoJCQkJdG9wOiAwDQoJCQl9Ow0KCQkJdGhhdC5jb250YWluZXJQb3NpdGlvbiA9IHsNCgkJCQlsZWZ0OiAwLA0KCQkJCXRvcDogMA0KCQkJfTsNCg0KCQkJdGhhdC5wYXJlbnREYXRhID0gew0KCQkJCWVsZW1lbnQ6ICQoIGRvY3VtZW50ICksDQoJCQkJbGVmdDogMCwNCgkJCQl0b3A6IDAsDQoJCQkJd2lkdGg6ICQoIGRvY3VtZW50ICkud2lkdGgoKSwNCgkJCQloZWlnaHQ6ICQoIGRvY3VtZW50ICkuaGVpZ2h0KCkgfHwgZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodA0KCQkJfTsNCgkJfSBlbHNlIHsNCgkJCWVsZW1lbnQgPSAkKCBjZSApOw0KCQkJcCA9IFtdOw0KCQkJJChbICJUb3AiLCAiUmlnaHQiLCAiTGVmdCIsICJCb3R0b20iIF0pLmVhY2goZnVuY3Rpb24oIGksIG5hbWUgKSB7DQoJCQkJcFsgaSBdID0gdGhhdC5fbnVtKCBlbGVtZW50LmNzcyggInBhZGRpbmciICsgbmFtZSApICk7DQoJCQl9KTsNCg0KCQkJdGhhdC5jb250YWluZXJPZmZzZXQgPSBlbGVtZW50Lm9mZnNldCgpOw0KCQkJdGhhdC5jb250YWluZXJQb3NpdGlvbiA9IGVsZW1lbnQucG9zaXRpb24oKTsNCgkJCXRoYXQuY29udGFpbmVyU2l6ZSA9IHsNCgkJCQloZWlnaHQ6ICggZWxlbWVudC5pbm5lckhlaWdodCgpIC0gcFsgMyBdICksDQoJCQkJd2lkdGg6ICggZWxlbWVudC5pbm5lcldpZHRoKCkgLSBwWyAxIF0gKQ0KCQkJfTsNCg0KCQkJY28gPSB0aGF0LmNvbnRhaW5lck9mZnNldDsNCgkJCWNoID0gdGhhdC5jb250YWluZXJTaXplLmhlaWdodDsNCgkJCWN3ID0gdGhhdC5jb250YWluZXJTaXplLndpZHRoOw0KCQkJd2lkdGggPSAoIHRoYXQuX2hhc1Njcm9sbCAoIGNlLCAibGVmdCIgKSA/IGNlLnNjcm9sbFdpZHRoIDogY3cgKTsNCgkJCWhlaWdodCA9ICggdGhhdC5faGFzU2Nyb2xsICggY2UgKSA/IGNlLnNjcm9sbEhlaWdodCA6IGNoICkgOw0KDQoJCQl0aGF0LnBhcmVudERhdGEgPSB7DQoJCQkJZWxlbWVudDogY2UsDQoJCQkJbGVmdDogY28ubGVmdCwNCgkJCQl0b3A6IGNvLnRvcCwNCgkJCQl3aWR0aDogd2lkdGgsDQoJCQkJaGVpZ2h0OiBoZWlnaHQNCgkJCX07DQoJCX0NCgl9LA0KDQoJcmVzaXplOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciB3b3NldCwgaG9zZXQsIGlzUGFyZW50LCBpc09mZnNldFJlbGF0aXZlLA0KCQkJdGhhdCA9ICQoIHRoaXMgKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnMsDQoJCQljbyA9IHRoYXQuY29udGFpbmVyT2Zmc2V0LA0KCQkJY3AgPSB0aGF0LnBvc2l0aW9uLA0KCQkJcFJhdGlvID0gdGhhdC5fYXNwZWN0UmF0aW8gfHwgZXZlbnQuc2hpZnRLZXksDQoJCQljb3AgPSB7DQoJCQkJdG9wOiAwLA0KCQkJCWxlZnQ6IDANCgkJCX0sDQoJCQljZSA9IHRoYXQuY29udGFpbmVyRWxlbWVudCwNCgkJCWNvbnRpbnVlUmVzaXplID0gdHJ1ZTsNCg0KCQlpZiAoIGNlWyAwIF0gIT09IGRvY3VtZW50ICYmICggL3N0YXRpYy8gKS50ZXN0KCBjZS5jc3MoICJwb3NpdGlvbiIgKSApICkgew0KCQkJY29wID0gY287DQoJCX0NCg0KCQlpZiAoIGNwLmxlZnQgPCAoIHRoYXQuX2hlbHBlciA/IGNvLmxlZnQgOiAwICkgKSB7DQoJCQl0aGF0LnNpemUud2lkdGggPSB0aGF0LnNpemUud2lkdGggKw0KCQkJCSggdGhhdC5faGVscGVyID8NCgkJCQkJKCB0aGF0LnBvc2l0aW9uLmxlZnQgLSBjby5sZWZ0ICkgOg0KCQkJCQkoIHRoYXQucG9zaXRpb24ubGVmdCAtIGNvcC5sZWZ0ICkgKTsNCg0KCQkJaWYgKCBwUmF0aW8gKSB7DQoJCQkJdGhhdC5zaXplLmhlaWdodCA9IHRoYXQuc2l6ZS53aWR0aCAvIHRoYXQuYXNwZWN0UmF0aW87DQoJCQkJY29udGludWVSZXNpemUgPSBmYWxzZTsNCgkJCX0NCgkJCXRoYXQucG9zaXRpb24ubGVmdCA9IG8uaGVscGVyID8gY28ubGVmdCA6IDA7DQoJCX0NCg0KCQlpZiAoIGNwLnRvcCA8ICggdGhhdC5faGVscGVyID8gY28udG9wIDogMCApICkgew0KCQkJdGhhdC5zaXplLmhlaWdodCA9IHRoYXQuc2l6ZS5oZWlnaHQgKw0KCQkJCSggdGhhdC5faGVscGVyID8NCgkJCQkJKCB0aGF0LnBvc2l0aW9uLnRvcCAtIGNvLnRvcCApIDoNCgkJCQkJdGhhdC5wb3NpdGlvbi50b3AgKTsNCg0KCQkJaWYgKCBwUmF0aW8gKSB7DQoJCQkJdGhhdC5zaXplLndpZHRoID0gdGhhdC5zaXplLmhlaWdodCAqIHRoYXQuYXNwZWN0UmF0aW87DQoJCQkJY29udGludWVSZXNpemUgPSBmYWxzZTsNCgkJCX0NCgkJCXRoYXQucG9zaXRpb24udG9wID0gdGhhdC5faGVscGVyID8gY28udG9wIDogMDsNCgkJfQ0KDQoJCWlzUGFyZW50ID0gdGhhdC5jb250YWluZXJFbGVtZW50LmdldCggMCApID09PSB0aGF0LmVsZW1lbnQucGFyZW50KCkuZ2V0KCAwICk7DQoJCWlzT2Zmc2V0UmVsYXRpdmUgPSAvcmVsYXRpdmV8YWJzb2x1dGUvLnRlc3QoIHRoYXQuY29udGFpbmVyRWxlbWVudC5jc3MoICJwb3NpdGlvbiIgKSApOw0KDQoJCWlmICggaXNQYXJlbnQgJiYgaXNPZmZzZXRSZWxhdGl2ZSApIHsNCgkJCXRoYXQub2Zmc2V0LmxlZnQgPSB0aGF0LnBhcmVudERhdGEubGVmdCArIHRoYXQucG9zaXRpb24ubGVmdDsNCgkJCXRoYXQub2Zmc2V0LnRvcCA9IHRoYXQucGFyZW50RGF0YS50b3AgKyB0aGF0LnBvc2l0aW9uLnRvcDsNCgkJfSBlbHNlIHsNCgkJCXRoYXQub2Zmc2V0LmxlZnQgPSB0aGF0LmVsZW1lbnQub2Zmc2V0KCkubGVmdDsNCgkJCXRoYXQub2Zmc2V0LnRvcCA9IHRoYXQuZWxlbWVudC5vZmZzZXQoKS50b3A7DQoJCX0NCg0KCQl3b3NldCA9IE1hdGguYWJzKCB0aGF0LnNpemVEaWZmLndpZHRoICsNCgkJCSh0aGF0Ll9oZWxwZXIgPw0KCQkJCXRoYXQub2Zmc2V0LmxlZnQgLSBjb3AubGVmdCA6DQoJCQkJKHRoYXQub2Zmc2V0LmxlZnQgLSBjby5sZWZ0KSkgKTsNCg0KCQlob3NldCA9IE1hdGguYWJzKCB0aGF0LnNpemVEaWZmLmhlaWdodCArDQoJCQkodGhhdC5faGVscGVyID8NCgkJCQl0aGF0Lm9mZnNldC50b3AgLSBjb3AudG9wIDoNCgkJCQkodGhhdC5vZmZzZXQudG9wIC0gY28udG9wKSkgKTsNCg0KCQlpZiAoIHdvc2V0ICsgdGhhdC5zaXplLndpZHRoID49IHRoYXQucGFyZW50RGF0YS53aWR0aCApIHsNCgkJCXRoYXQuc2l6ZS53aWR0aCA9IHRoYXQucGFyZW50RGF0YS53aWR0aCAtIHdvc2V0Ow0KCQkJaWYgKCBwUmF0aW8gKSB7DQoJCQkJdGhhdC5zaXplLmhlaWdodCA9IHRoYXQuc2l6ZS53aWR0aCAvIHRoYXQuYXNwZWN0UmF0aW87DQoJCQkJY29udGludWVSZXNpemUgPSBmYWxzZTsNCgkJCX0NCgkJfQ0KDQoJCWlmICggaG9zZXQgKyB0aGF0LnNpemUuaGVpZ2h0ID49IHRoYXQucGFyZW50RGF0YS5oZWlnaHQgKSB7DQoJCQl0aGF0LnNpemUuaGVpZ2h0ID0gdGhhdC5wYXJlbnREYXRhLmhlaWdodCAtIGhvc2V0Ow0KCQkJaWYgKCBwUmF0aW8gKSB7DQoJCQkJdGhhdC5zaXplLndpZHRoID0gdGhhdC5zaXplLmhlaWdodCAqIHRoYXQuYXNwZWN0UmF0aW87DQoJCQkJY29udGludWVSZXNpemUgPSBmYWxzZTsNCgkJCX0NCgkJfQ0KDQoJCWlmICggIWNvbnRpbnVlUmVzaXplICl7DQoJCQl0aGF0LnBvc2l0aW9uLmxlZnQgPSB0aGF0LnByZXZQb3NpdGlvbi5sZWZ0Ow0KCQkJdGhhdC5wb3NpdGlvbi50b3AgPSB0aGF0LnByZXZQb3NpdGlvbi50b3A7DQoJCQl0aGF0LnNpemUud2lkdGggPSB0aGF0LnByZXZTaXplLndpZHRoOw0KCQkJdGhhdC5zaXplLmhlaWdodCA9IHRoYXQucHJldlNpemUuaGVpZ2h0Ow0KCQl9DQoJfSwNCg0KCXN0b3A6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9ICQoIHRoaXMgKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnMsDQoJCQljbyA9IHRoYXQuY29udGFpbmVyT2Zmc2V0LA0KCQkJY29wID0gdGhhdC5jb250YWluZXJQb3NpdGlvbiwNCgkJCWNlID0gdGhhdC5jb250YWluZXJFbGVtZW50LA0KCQkJaGVscGVyID0gJCggdGhhdC5oZWxwZXIgKSwNCgkJCWhvID0gaGVscGVyLm9mZnNldCgpLA0KCQkJdyA9IGhlbHBlci5vdXRlcldpZHRoKCkgLSB0aGF0LnNpemVEaWZmLndpZHRoLA0KCQkJaCA9IGhlbHBlci5vdXRlckhlaWdodCgpIC0gdGhhdC5zaXplRGlmZi5oZWlnaHQ7DQoNCgkJaWYgKCB0aGF0Ll9oZWxwZXIgJiYgIW8uYW5pbWF0ZSAmJiAoIC9yZWxhdGl2ZS8gKS50ZXN0KCBjZS5jc3MoICJwb3NpdGlvbiIgKSApICkgew0KCQkJJCggdGhpcyApLmNzcyh7DQoJCQkJbGVmdDogaG8ubGVmdCAtIGNvcC5sZWZ0IC0gY28ubGVmdCwNCgkJCQl3aWR0aDogdywNCgkJCQloZWlnaHQ6IGgNCgkJCX0pOw0KCQl9DQoNCgkJaWYgKCB0aGF0Ll9oZWxwZXIgJiYgIW8uYW5pbWF0ZSAmJiAoIC9zdGF0aWMvICkudGVzdCggY2UuY3NzKCAicG9zaXRpb24iICkgKSApIHsNCgkJCSQoIHRoaXMgKS5jc3Moew0KCQkJCWxlZnQ6IGhvLmxlZnQgLSBjb3AubGVmdCAtIGNvLmxlZnQsDQoJCQkJd2lkdGg6IHcsDQoJCQkJaGVpZ2h0OiBoDQoJCQl9KTsNCgkJfQ0KCX0NCn0pOw0KDQokLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsICJhbHNvUmVzaXplIiwgew0KDQoJc3RhcnQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9ICQodGhpcykucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zLA0KCQkJX3N0b3JlID0gZnVuY3Rpb24oZXhwKSB7DQoJCQkJJChleHApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJCXZhciBlbCA9ICQodGhpcyk7DQoJCQkJCWVsLmRhdGEoInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIiwgew0KCQkJCQkJd2lkdGg6IHBhcnNlSW50KGVsLndpZHRoKCksIDEwKSwgaGVpZ2h0OiBwYXJzZUludChlbC5oZWlnaHQoKSwgMTApLA0KCQkJCQkJbGVmdDogcGFyc2VJbnQoZWwuY3NzKCJsZWZ0IiksIDEwKSwgdG9wOiBwYXJzZUludChlbC5jc3MoInRvcCIpLCAxMCkNCgkJCQkJfSk7DQoJCQkJfSk7DQoJCQl9Ow0KDQoJCWlmICh0eXBlb2Yoby5hbHNvUmVzaXplKSA9PT0gIm9iamVjdCIgJiYgIW8uYWxzb1Jlc2l6ZS5wYXJlbnROb2RlKSB7DQoJCQlpZiAoby5hbHNvUmVzaXplLmxlbmd0aCkgew0KCQkJCW8uYWxzb1Jlc2l6ZSA9IG8uYWxzb1Jlc2l6ZVswXTsNCgkJCQlfc3RvcmUoby5hbHNvUmVzaXplKTsNCgkJCX0gZWxzZSB7DQoJCQkJJC5lYWNoKG8uYWxzb1Jlc2l6ZSwgZnVuY3Rpb24oZXhwKSB7DQoJCQkJCV9zdG9yZShleHApOw0KCQkJCX0pOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJX3N0b3JlKG8uYWxzb1Jlc2l6ZSk7DQoJCX0NCgl9LA0KDQoJcmVzaXplOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCgkJdmFyIHRoYXQgPSAkKHRoaXMpLnJlc2l6YWJsZSggImluc3RhbmNlIiApLA0KCQkJbyA9IHRoYXQub3B0aW9ucywNCgkJCW9zID0gdGhhdC5vcmlnaW5hbFNpemUsDQoJCQlvcCA9IHRoYXQub3JpZ2luYWxQb3NpdGlvbiwNCgkJCWRlbHRhID0gew0KCQkJCWhlaWdodDogKHRoYXQuc2l6ZS5oZWlnaHQgLSBvcy5oZWlnaHQpIHx8IDAsDQoJCQkJd2lkdGg6ICh0aGF0LnNpemUud2lkdGggLSBvcy53aWR0aCkgfHwgMCwNCgkJCQl0b3A6ICh0aGF0LnBvc2l0aW9uLnRvcCAtIG9wLnRvcCkgfHwgMCwNCgkJCQlsZWZ0OiAodGhhdC5wb3NpdGlvbi5sZWZ0IC0gb3AubGVmdCkgfHwgMA0KCQkJfSwNCg0KCQkJX2Fsc29SZXNpemUgPSBmdW5jdGlvbihleHAsIGMpIHsNCgkJCQkkKGV4cCkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQkJdmFyIGVsID0gJCh0aGlzKSwgc3RhcnQgPSAkKHRoaXMpLmRhdGEoInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIiksIHN0eWxlID0ge30sDQoJCQkJCQljc3MgPSBjICYmIGMubGVuZ3RoID8NCgkJCQkJCQljIDoNCgkJCQkJCQllbC5wYXJlbnRzKHVpLm9yaWdpbmFsRWxlbWVudFswXSkubGVuZ3RoID8NCgkJCQkJCQkJWyAid2lkdGgiLCAiaGVpZ2h0IiBdIDoNCgkJCQkJCQkJWyAid2lkdGgiLCAiaGVpZ2h0IiwgInRvcCIsICJsZWZ0IiBdOw0KDQoJCQkJCSQuZWFjaChjc3MsIGZ1bmN0aW9uKGksIHByb3ApIHsNCgkJCQkJCXZhciBzdW0gPSAoc3RhcnRbcHJvcF0gfHwgMCkgKyAoZGVsdGFbcHJvcF0gfHwgMCk7DQoJCQkJCQlpZiAoc3VtICYmIHN1bSA+PSAwKSB7DQoJCQkJCQkJc3R5bGVbcHJvcF0gPSBzdW0gfHwgbnVsbDsNCgkJCQkJCX0NCgkJCQkJfSk7DQoNCgkJCQkJZWwuY3NzKHN0eWxlKTsNCgkJCQl9KTsNCgkJCX07DQoNCgkJaWYgKHR5cGVvZihvLmFsc29SZXNpemUpID09PSAib2JqZWN0IiAmJiAhby5hbHNvUmVzaXplLm5vZGVUeXBlKSB7DQoJCQkkLmVhY2goby5hbHNvUmVzaXplLCBmdW5jdGlvbihleHAsIGMpIHsNCgkJCQlfYWxzb1Jlc2l6ZShleHAsIGMpOw0KCQkJfSk7DQoJCX0gZWxzZSB7DQoJCQlfYWxzb1Jlc2l6ZShvLmFsc29SZXNpemUpOw0KCQl9DQoJfSwNCg0KCXN0b3A6IGZ1bmN0aW9uKCkgew0KCQkkKHRoaXMpLnJlbW92ZURhdGEoInJlc2l6YWJsZS1hbHNvcmVzaXplIik7DQoJfQ0KfSk7DQoNCiQudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwgImdob3N0Iiwgew0KDQoJc3RhcnQ6IGZ1bmN0aW9uKCkgew0KDQoJCXZhciB0aGF0ID0gJCh0aGlzKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwgbyA9IHRoYXQub3B0aW9ucywgY3MgPSB0aGF0LnNpemU7DQoNCgkJdGhhdC5naG9zdCA9IHRoYXQub3JpZ2luYWxFbGVtZW50LmNsb25lKCk7DQoJCXRoYXQuZ2hvc3QNCgkJCS5jc3Moew0KCQkJCW9wYWNpdHk6IDAuMjUsDQoJCQkJZGlzcGxheTogImJsb2NrIiwNCgkJCQlwb3NpdGlvbjogInJlbGF0aXZlIiwNCgkJCQloZWlnaHQ6IGNzLmhlaWdodCwNCgkJCQl3aWR0aDogY3Mud2lkdGgsDQoJCQkJbWFyZ2luOiAwLA0KCQkJCWxlZnQ6IDAsDQoJCQkJdG9wOiAwDQoJCQl9KQ0KCQkJLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtZ2hvc3QiKQ0KCQkJLmFkZENsYXNzKHR5cGVvZiBvLmdob3N0ID09PSAic3RyaW5nIiA/IG8uZ2hvc3QgOiAiIik7DQoNCgkJdGhhdC5naG9zdC5hcHBlbmRUbyh0aGF0LmhlbHBlcik7DQoNCgl9LA0KDQoJcmVzaXplOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSAkKHRoaXMpLnJlc2l6YWJsZSggImluc3RhbmNlIiApOw0KCQlpZiAodGhhdC5naG9zdCkgew0KCQkJdGhhdC5naG9zdC5jc3Moew0KCQkJCXBvc2l0aW9uOiAicmVsYXRpdmUiLA0KCQkJCWhlaWdodDogdGhhdC5zaXplLmhlaWdodCwNCgkJCQl3aWR0aDogdGhhdC5zaXplLndpZHRoDQoJCQl9KTsNCgkJfQ0KCX0sDQoNCglzdG9wOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSAkKHRoaXMpLnJlc2l6YWJsZSggImluc3RhbmNlIiApOw0KCQlpZiAodGhhdC5naG9zdCAmJiB0aGF0LmhlbHBlcikgew0KCQkJdGhhdC5oZWxwZXIuZ2V0KDApLnJlbW92ZUNoaWxkKHRoYXQuZ2hvc3QuZ2V0KDApKTsNCgkJfQ0KCX0NCg0KfSk7DQoNCiQudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwgImdyaWQiLCB7DQoNCglyZXNpemU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3V0ZXJEaW1lbnNpb25zLA0KCQkJdGhhdCA9ICQodGhpcykucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zLA0KCQkJY3MgPSB0aGF0LnNpemUsDQoJCQlvcyA9IHRoYXQub3JpZ2luYWxTaXplLA0KCQkJb3AgPSB0aGF0Lm9yaWdpbmFsUG9zaXRpb24sDQoJCQlhID0gdGhhdC5heGlzLA0KCQkJZ3JpZCA9IHR5cGVvZiBvLmdyaWQgPT09ICJudW1iZXIiID8gWyBvLmdyaWQsIG8uZ3JpZCBdIDogby5ncmlkLA0KCQkJZ3JpZFggPSAoZ3JpZFswXSB8fCAxKSwNCgkJCWdyaWRZID0gKGdyaWRbMV0gfHwgMSksDQoJCQlveCA9IE1hdGgucm91bmQoKGNzLndpZHRoIC0gb3Mud2lkdGgpIC8gZ3JpZFgpICogZ3JpZFgsDQoJCQlveSA9IE1hdGgucm91bmQoKGNzLmhlaWdodCAtIG9zLmhlaWdodCkgLyBncmlkWSkgKiBncmlkWSwNCgkJCW5ld1dpZHRoID0gb3Mud2lkdGggKyBveCwNCgkJCW5ld0hlaWdodCA9IG9zLmhlaWdodCArIG95LA0KCQkJaXNNYXhXaWR0aCA9IG8ubWF4V2lkdGggJiYgKG8ubWF4V2lkdGggPCBuZXdXaWR0aCksDQoJCQlpc01heEhlaWdodCA9IG8ubWF4SGVpZ2h0ICYmIChvLm1heEhlaWdodCA8IG5ld0hlaWdodCksDQoJCQlpc01pbldpZHRoID0gby5taW5XaWR0aCAmJiAoby5taW5XaWR0aCA+IG5ld1dpZHRoKSwNCgkJCWlzTWluSGVpZ2h0ID0gby5taW5IZWlnaHQgJiYgKG8ubWluSGVpZ2h0ID4gbmV3SGVpZ2h0KTsNCg0KCQlvLmdyaWQgPSBncmlkOw0KDQoJCWlmIChpc01pbldpZHRoKSB7DQoJCQluZXdXaWR0aCArPSBncmlkWDsNCgkJfQ0KCQlpZiAoaXNNaW5IZWlnaHQpIHsNCgkJCW5ld0hlaWdodCArPSBncmlkWTsNCgkJfQ0KCQlpZiAoaXNNYXhXaWR0aCkgew0KCQkJbmV3V2lkdGggLT0gZ3JpZFg7DQoJCX0NCgkJaWYgKGlzTWF4SGVpZ2h0KSB7DQoJCQluZXdIZWlnaHQgLT0gZ3JpZFk7DQoJCX0NCg0KCQlpZiAoL14oc2V8c3xlKSQvLnRlc3QoYSkpIHsNCgkJCXRoYXQuc2l6ZS53aWR0aCA9IG5ld1dpZHRoOw0KCQkJdGhhdC5zaXplLmhlaWdodCA9IG5ld0hlaWdodDsNCgkJfSBlbHNlIGlmICgvXihuZSkkLy50ZXN0KGEpKSB7DQoJCQl0aGF0LnNpemUud2lkdGggPSBuZXdXaWR0aDsNCgkJCXRoYXQuc2l6ZS5oZWlnaHQgPSBuZXdIZWlnaHQ7DQoJCQl0aGF0LnBvc2l0aW9uLnRvcCA9IG9wLnRvcCAtIG95Ow0KCQl9IGVsc2UgaWYgKC9eKHN3KSQvLnRlc3QoYSkpIHsNCgkJCXRoYXQuc2l6ZS53aWR0aCA9IG5ld1dpZHRoOw0KCQkJdGhhdC5zaXplLmhlaWdodCA9IG5ld0hlaWdodDsNCgkJCXRoYXQucG9zaXRpb24ubGVmdCA9IG9wLmxlZnQgLSBveDsNCgkJfSBlbHNlIHsNCgkJCWlmICggbmV3SGVpZ2h0IC0gZ3JpZFkgPD0gMCB8fCBuZXdXaWR0aCAtIGdyaWRYIDw9IDApIHsNCgkJCQlvdXRlckRpbWVuc2lvbnMgPSB0aGF0Ll9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnMoIHRoaXMgKTsNCgkJCX0NCg0KCQkJaWYgKCBuZXdIZWlnaHQgLSBncmlkWSA+IDAgKSB7DQoJCQkJdGhhdC5zaXplLmhlaWdodCA9IG5ld0hlaWdodDsNCgkJCQl0aGF0LnBvc2l0aW9uLnRvcCA9IG9wLnRvcCAtIG95Ow0KCQkJfSBlbHNlIHsNCgkJCQluZXdIZWlnaHQgPSBncmlkWSAtIG91dGVyRGltZW5zaW9ucy5oZWlnaHQ7DQoJCQkJdGhhdC5zaXplLmhlaWdodCA9IG5ld0hlaWdodDsNCgkJCQl0aGF0LnBvc2l0aW9uLnRvcCA9IG9wLnRvcCArIG9zLmhlaWdodCAtIG5ld0hlaWdodDsNCgkJCX0NCgkJCWlmICggbmV3V2lkdGggLSBncmlkWCA+IDAgKSB7DQoJCQkJdGhhdC5zaXplLndpZHRoID0gbmV3V2lkdGg7DQoJCQkJdGhhdC5wb3NpdGlvbi5sZWZ0ID0gb3AubGVmdCAtIG94Ow0KCQkJfSBlbHNlIHsNCgkJCQluZXdXaWR0aCA9IGdyaWRZIC0gb3V0ZXJEaW1lbnNpb25zLmhlaWdodDsNCgkJCQl0aGF0LnNpemUud2lkdGggPSBuZXdXaWR0aDsNCgkJCQl0aGF0LnBvc2l0aW9uLmxlZnQgPSBvcC5sZWZ0ICsgb3Mud2lkdGggLSBuZXdXaWR0aDsNCgkJCX0NCgkJfQ0KCX0NCg0KfSk7DQoNCnZhciByZXNpemFibGUgPSAkLnVpLnJlc2l6YWJsZTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBEaWFsb2cgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2RpYWxvZy8NCiAqLw0KDQoNCnZhciBkaWFsb2cgPSAkLndpZGdldCggInVpLmRpYWxvZyIsIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCglvcHRpb25zOiB7DQoJCWFwcGVuZFRvOiAiYm9keSIsDQoJCWF1dG9PcGVuOiB0cnVlLA0KCQlidXR0b25zOiBbXSwNCgkJY2xvc2VPbkVzY2FwZTogdHJ1ZSwNCgkJY2xvc2VUZXh0OiAiQ2xvc2UiLA0KCQlkaWFsb2dDbGFzczogIiIsDQoJCWRyYWdnYWJsZTogdHJ1ZSwNCgkJaGlkZTogbnVsbCwNCgkJaGVpZ2h0OiAiYXV0byIsDQoJCW1heEhlaWdodDogbnVsbCwNCgkJbWF4V2lkdGg6IG51bGwsDQoJCW1pbkhlaWdodDogMTUwLA0KCQltaW5XaWR0aDogMTUwLA0KCQltb2RhbDogZmFsc2UsDQoJCXBvc2l0aW9uOiB7DQoJCQlteTogImNlbnRlciIsDQoJCQlhdDogImNlbnRlciIsDQoJCQlvZjogd2luZG93LA0KCQkJY29sbGlzaW9uOiAiZml0IiwNCgkJCS8vIEVuc3VyZSB0aGUgdGl0bGViYXIgaXMgYWx3YXlzIHZpc2libGUNCgkJCXVzaW5nOiBmdW5jdGlvbiggcG9zICkgew0KCQkJCXZhciB0b3BPZmZzZXQgPSAkKCB0aGlzICkuY3NzKCBwb3MgKS5vZmZzZXQoKS50b3A7DQoJCQkJaWYgKCB0b3BPZmZzZXQgPCAwICkgew0KCQkJCQkkKCB0aGlzICkuY3NzKCAidG9wIiwgcG9zLnRvcCAtIHRvcE9mZnNldCApOw0KCQkJCX0NCgkJCX0NCgkJfSwNCgkJcmVzaXphYmxlOiB0cnVlLA0KCQlzaG93OiBudWxsLA0KCQl0aXRsZTogbnVsbCwNCgkJd2lkdGg6IDMwMCwNCg0KCQkvLyBjYWxsYmFja3MNCgkJYmVmb3JlQ2xvc2U6IG51bGwsDQoJCWNsb3NlOiBudWxsLA0KCQlkcmFnOiBudWxsLA0KCQlkcmFnU3RhcnQ6IG51bGwsDQoJCWRyYWdTdG9wOiBudWxsLA0KCQlmb2N1czogbnVsbCwNCgkJb3BlbjogbnVsbCwNCgkJcmVzaXplOiBudWxsLA0KCQlyZXNpemVTdGFydDogbnVsbCwNCgkJcmVzaXplU3RvcDogbnVsbA0KCX0sDQoNCglzaXplUmVsYXRlZE9wdGlvbnM6IHsNCgkJYnV0dG9uczogdHJ1ZSwNCgkJaGVpZ2h0OiB0cnVlLA0KCQltYXhIZWlnaHQ6IHRydWUsDQoJCW1heFdpZHRoOiB0cnVlLA0KCQltaW5IZWlnaHQ6IHRydWUsDQoJCW1pbldpZHRoOiB0cnVlLA0KCQl3aWR0aDogdHJ1ZQ0KCX0sDQoNCglyZXNpemFibGVSZWxhdGVkT3B0aW9uczogew0KCQltYXhIZWlnaHQ6IHRydWUsDQoJCW1heFdpZHRoOiB0cnVlLA0KCQltaW5IZWlnaHQ6IHRydWUsDQoJCW1pbldpZHRoOiB0cnVlDQoJfSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm9yaWdpbmFsQ3NzID0gew0KCQkJZGlzcGxheTogdGhpcy5lbGVtZW50WyAwIF0uc3R5bGUuZGlzcGxheSwNCgkJCXdpZHRoOiB0aGlzLmVsZW1lbnRbIDAgXS5zdHlsZS53aWR0aCwNCgkJCW1pbkhlaWdodDogdGhpcy5lbGVtZW50WyAwIF0uc3R5bGUubWluSGVpZ2h0LA0KCQkJbWF4SGVpZ2h0OiB0aGlzLmVsZW1lbnRbIDAgXS5zdHlsZS5tYXhIZWlnaHQsDQoJCQloZWlnaHQ6IHRoaXMuZWxlbWVudFsgMCBdLnN0eWxlLmhlaWdodA0KCQl9Ow0KCQl0aGlzLm9yaWdpbmFsUG9zaXRpb24gPSB7DQoJCQlwYXJlbnQ6IHRoaXMuZWxlbWVudC5wYXJlbnQoKSwNCgkJCWluZGV4OiB0aGlzLmVsZW1lbnQucGFyZW50KCkuY2hpbGRyZW4oKS5pbmRleCggdGhpcy5lbGVtZW50ICkNCgkJfTsNCgkJdGhpcy5vcmlnaW5hbFRpdGxlID0gdGhpcy5lbGVtZW50LmF0dHIoICJ0aXRsZSIgKTsNCgkJdGhpcy5vcHRpb25zLnRpdGxlID0gdGhpcy5vcHRpb25zLnRpdGxlIHx8IHRoaXMub3JpZ2luYWxUaXRsZTsNCg0KCQl0aGlzLl9jcmVhdGVXcmFwcGVyKCk7DQoNCgkJdGhpcy5lbGVtZW50DQoJCQkuc2hvdygpDQoJCQkucmVtb3ZlQXR0ciggInRpdGxlIiApDQoJCQkuYWRkQ2xhc3MoICJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLnVpRGlhbG9nICk7DQoNCgkJdGhpcy5fY3JlYXRlVGl0bGViYXIoKTsNCgkJdGhpcy5fY3JlYXRlQnV0dG9uUGFuZSgpOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmRyYWdnYWJsZSAmJiAkLmZuLmRyYWdnYWJsZSApIHsNCgkJCXRoaXMuX21ha2VEcmFnZ2FibGUoKTsNCgkJfQ0KCQlpZiAoIHRoaXMub3B0aW9ucy5yZXNpemFibGUgJiYgJC5mbi5yZXNpemFibGUgKSB7DQoJCQl0aGlzLl9tYWtlUmVzaXphYmxlKCk7DQoJCX0NCg0KCQl0aGlzLl9pc09wZW4gPSBmYWxzZTsNCg0KCQl0aGlzLl90cmFja0ZvY3VzKCk7DQoJfSwNCg0KCV9pbml0OiBmdW5jdGlvbigpIHsNCgkJaWYgKCB0aGlzLm9wdGlvbnMuYXV0b09wZW4gKSB7DQoJCQl0aGlzLm9wZW4oKTsNCgkJfQ0KCX0sDQoNCglfYXBwZW5kVG86IGZ1bmN0aW9uKCkgew0KCQl2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5hcHBlbmRUbzsNCgkJaWYgKCBlbGVtZW50ICYmIChlbGVtZW50LmpxdWVyeSB8fCBlbGVtZW50Lm5vZGVUeXBlKSApIHsNCgkJCXJldHVybiAkKCBlbGVtZW50ICk7DQoJCX0NCgkJcmV0dXJuIHRoaXMuZG9jdW1lbnQuZmluZCggZWxlbWVudCB8fCAiYm9keSIgKS5lcSggMCApOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXZhciBuZXh0LA0KCQkJb3JpZ2luYWxQb3NpdGlvbiA9IHRoaXMub3JpZ2luYWxQb3NpdGlvbjsNCg0KCQl0aGlzLl9kZXN0cm95T3ZlcmxheSgpOw0KDQoJCXRoaXMuZWxlbWVudA0KCQkJLnJlbW92ZVVuaXF1ZUlkKCkNCgkJCS5yZW1vdmVDbGFzcyggInVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiApDQoJCQkuY3NzKCB0aGlzLm9yaWdpbmFsQ3NzICkNCgkJCS8vIFdpdGhvdXQgZGV0YWNoaW5nIGZpcnN0LCB0aGUgZm9sbG93aW5nIGJlY29tZXMgcmVhbGx5IHNsb3cNCgkJCS5kZXRhY2goKTsNCg0KCQl0aGlzLnVpRGlhbG9nLnN0b3AoIHRydWUsIHRydWUgKS5yZW1vdmUoKTsNCg0KCQlpZiAoIHRoaXMub3JpZ2luYWxUaXRsZSApIHsNCgkJCXRoaXMuZWxlbWVudC5hdHRyKCAidGl0bGUiLCB0aGlzLm9yaWdpbmFsVGl0bGUgKTsNCgkJfQ0KDQoJCW5leHQgPSBvcmlnaW5hbFBvc2l0aW9uLnBhcmVudC5jaGlsZHJlbigpLmVxKCBvcmlnaW5hbFBvc2l0aW9uLmluZGV4ICk7DQoJCS8vIERvbid0IHRyeSB0byBwbGFjZSB0aGUgZGlhbG9nIG5leHQgdG8gaXRzZWxmICgjODYxMykNCgkJaWYgKCBuZXh0Lmxlbmd0aCAmJiBuZXh0WyAwIF0gIT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJbmV4dC5iZWZvcmUoIHRoaXMuZWxlbWVudCApOw0KCQl9IGVsc2Ugew0KCQkJb3JpZ2luYWxQb3NpdGlvbi5wYXJlbnQuYXBwZW5kKCB0aGlzLmVsZW1lbnQgKTsNCgkJfQ0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy51aURpYWxvZzsNCgl9LA0KDQoJZGlzYWJsZTogJC5ub29wLA0KCWVuYWJsZTogJC5ub29wLA0KDQoJY2xvc2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGFjdGl2ZUVsZW1lbnQsDQoJCQl0aGF0ID0gdGhpczsNCg0KCQlpZiAoICF0aGlzLl9pc09wZW4gfHwgdGhpcy5fdHJpZ2dlciggImJlZm9yZUNsb3NlIiwgZXZlbnQgKSA9PT0gZmFsc2UgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLl9pc09wZW4gPSBmYWxzZTsNCgkJdGhpcy5fZm9jdXNlZEVsZW1lbnQgPSBudWxsOw0KCQl0aGlzLl9kZXN0cm95T3ZlcmxheSgpOw0KCQl0aGlzLl91bnRyYWNrSW5zdGFuY2UoKTsNCg0KCQlpZiAoICF0aGlzLm9wZW5lci5maWx0ZXIoICI6Zm9jdXNhYmxlIiApLmZvY3VzKCkubGVuZ3RoICkgew0KDQoJCQkvLyBzdXBwb3J0OiBJRTkNCgkJCS8vIElFOSB0aHJvd3MgYW4gIlVuc3BlY2lmaWVkIGVycm9yIiBhY2Nlc3NpbmcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBmcm9tIGFuIDxpZnJhbWU+DQoJCQl0cnkgew0KCQkJCWFjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50WyAwIF0uYWN0aXZlRWxlbWVudDsNCg0KCQkJCS8vIFN1cHBvcnQ6IElFOSwgSUUxMA0KCQkJCS8vIElmIHRoZSA8Ym9keT4gaXMgYmx1cnJlZCwgSUUgd2lsbCBzd2l0Y2ggd2luZG93cywgc2VlICM0NTIwDQoJCQkJaWYgKCBhY3RpdmVFbGVtZW50ICYmIGFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gImJvZHkiICkgew0KDQoJCQkJCS8vIEhpZGluZyBhIGZvY3VzZWQgZWxlbWVudCBkb2Vzbid0IHRyaWdnZXIgYmx1ciBpbiBXZWJLaXQNCgkJCQkJLy8gc28gaW4gY2FzZSB3ZSBoYXZlIG5vdGhpbmcgdG8gZm9jdXMgb24sIGV4cGxpY2l0bHkgYmx1ciB0aGUgYWN0aXZlIGVsZW1lbnQNCgkJCQkJLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTgyDQoJCQkJCSQoIGFjdGl2ZUVsZW1lbnQgKS5ibHVyKCk7DQoJCQkJfQ0KCQkJfSBjYXRjaCAoIGVycm9yICkge30NCgkJfQ0KDQoJCXRoaXMuX2hpZGUoIHRoaXMudWlEaWFsb2csIHRoaXMub3B0aW9ucy5oaWRlLCBmdW5jdGlvbigpIHsNCgkJCXRoYXQuX3RyaWdnZXIoICJjbG9zZSIsIGV2ZW50ICk7DQoJCX0pOw0KCX0sDQoNCglpc09wZW46IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5faXNPcGVuOw0KCX0sDQoNCgltb3ZlVG9Ub3A6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9tb3ZlVG9Ub3AoKTsNCgl9LA0KDQoJX21vdmVUb1RvcDogZnVuY3Rpb24oIGV2ZW50LCBzaWxlbnQgKSB7DQoJCXZhciBtb3ZlZCA9IGZhbHNlLA0KCQkJekluZGljaWVzID0gdGhpcy51aURpYWxvZy5zaWJsaW5ncyggIi51aS1mcm9udDp2aXNpYmxlIiApLm1hcChmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gKyQoIHRoaXMgKS5jc3MoICJ6LWluZGV4IiApOw0KCQkJfSkuZ2V0KCksDQoJCQl6SW5kZXhNYXggPSBNYXRoLm1heC5hcHBseSggbnVsbCwgekluZGljaWVzICk7DQoNCgkJaWYgKCB6SW5kZXhNYXggPj0gK3RoaXMudWlEaWFsb2cuY3NzKCAiei1pbmRleCIgKSApIHsNCgkJCXRoaXMudWlEaWFsb2cuY3NzKCAiei1pbmRleCIsIHpJbmRleE1heCArIDEgKTsNCgkJCW1vdmVkID0gdHJ1ZTsNCgkJfQ0KDQoJCWlmICggbW92ZWQgJiYgIXNpbGVudCApIHsNCgkJCXRoaXMuX3RyaWdnZXIoICJmb2N1cyIsIGV2ZW50ICk7DQoJCX0NCgkJcmV0dXJuIG1vdmVkOw0KCX0sDQoNCglvcGVuOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KCQlpZiAoIHRoaXMuX2lzT3BlbiApIHsNCgkJCWlmICggdGhpcy5fbW92ZVRvVG9wKCkgKSB7DQoJCQkJdGhpcy5fZm9jdXNUYWJiYWJsZSgpOw0KCQkJfQ0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5faXNPcGVuID0gdHJ1ZTsNCgkJdGhpcy5vcGVuZXIgPSAkKCB0aGlzLmRvY3VtZW50WyAwIF0uYWN0aXZlRWxlbWVudCApOw0KDQoJCXRoaXMuX3NpemUoKTsNCgkJdGhpcy5fcG9zaXRpb24oKTsNCgkJdGhpcy5fY3JlYXRlT3ZlcmxheSgpOw0KCQl0aGlzLl9tb3ZlVG9Ub3AoIG51bGwsIHRydWUgKTsNCg0KCQkvLyBFbnN1cmUgdGhlIG92ZXJsYXkgaXMgbW92ZWQgdG8gdGhlIHRvcCB3aXRoIHRoZSBkaWFsb2csIGJ1dCBvbmx5IHdoZW4NCgkJLy8gb3BlbmluZy4gVGhlIG92ZXJsYXkgc2hvdWxkbid0IG1vdmUgYWZ0ZXIgdGhlIGRpYWxvZyBpcyBvcGVuIHNvIHRoYXQNCgkJLy8gbW9kZWxlc3MgZGlhbG9ncyBvcGVuZWQgYWZ0ZXIgdGhlIG1vZGFsIGRpYWxvZyBzdGFjayBwcm9wZXJseS4NCgkJaWYgKCB0aGlzLm92ZXJsYXkgKSB7DQoJCQl0aGlzLm92ZXJsYXkuY3NzKCAiei1pbmRleCIsIHRoaXMudWlEaWFsb2cuY3NzKCAiei1pbmRleCIgKSAtIDEgKTsNCgkJfQ0KDQoJCXRoaXMuX3Nob3coIHRoaXMudWlEaWFsb2csIHRoaXMub3B0aW9ucy5zaG93LCBmdW5jdGlvbigpIHsNCgkJCXRoYXQuX2ZvY3VzVGFiYmFibGUoKTsNCgkJCXRoYXQuX3RyaWdnZXIoICJmb2N1cyIgKTsNCgkJfSk7DQoNCgkJLy8gVHJhY2sgdGhlIGRpYWxvZyBpbW1lZGlhdGVseSB1cG9uIG9wZW5lbmluZyBpbiBjYXNlIGEgZm9jdXMgZXZlbnQNCgkJLy8gc29tZWhvdyBvY2N1cnMgb3V0c2lkZSBvZiB0aGUgZGlhbG9nIGJlZm9yZSBhbiBlbGVtZW50IGluc2lkZSB0aGUNCgkJLy8gZGlhbG9nIGlzIGZvY3VzZWQgKCMxMDE1MikNCgkJdGhpcy5fbWFrZUZvY3VzVGFyZ2V0KCk7DQoNCgkJdGhpcy5fdHJpZ2dlciggIm9wZW4iICk7DQoJfSwNCg0KCV9mb2N1c1RhYmJhYmxlOiBmdW5jdGlvbigpIHsNCgkJLy8gU2V0IGZvY3VzIHRvIHRoZSBmaXJzdCBtYXRjaDoNCgkJLy8gMS4gQW4gZWxlbWVudCB0aGF0IHdhcyBmb2N1c2VkIHByZXZpb3VzbHkNCgkJLy8gMi4gRmlyc3QgZWxlbWVudCBpbnNpZGUgdGhlIGRpYWxvZyBtYXRjaGluZyBbYXV0b2ZvY3VzXQ0KCQkvLyAzLiBUYWJiYWJsZSBlbGVtZW50IGluc2lkZSB0aGUgY29udGVudCBlbGVtZW50DQoJCS8vIDQuIFRhYmJhYmxlIGVsZW1lbnQgaW5zaWRlIHRoZSBidXR0b25wYW5lDQoJCS8vIDUuIFRoZSBjbG9zZSBidXR0b24NCgkJLy8gNi4gVGhlIGRpYWxvZyBpdHNlbGYNCgkJdmFyIGhhc0ZvY3VzID0gdGhpcy5fZm9jdXNlZEVsZW1lbnQ7DQoJCWlmICggIWhhc0ZvY3VzICkgew0KCQkJaGFzRm9jdXMgPSB0aGlzLmVsZW1lbnQuZmluZCggIlthdXRvZm9jdXNdIiApOw0KCQl9DQoJCWlmICggIWhhc0ZvY3VzLmxlbmd0aCApIHsNCgkJCWhhc0ZvY3VzID0gdGhpcy5lbGVtZW50LmZpbmQoICI6dGFiYmFibGUiICk7DQoJCX0NCgkJaWYgKCAhaGFzRm9jdXMubGVuZ3RoICkgew0KCQkJaGFzRm9jdXMgPSB0aGlzLnVpRGlhbG9nQnV0dG9uUGFuZS5maW5kKCAiOnRhYmJhYmxlIiApOw0KCQl9DQoJCWlmICggIWhhc0ZvY3VzLmxlbmd0aCApIHsNCgkJCWhhc0ZvY3VzID0gdGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuZmlsdGVyKCAiOnRhYmJhYmxlIiApOw0KCQl9DQoJCWlmICggIWhhc0ZvY3VzLmxlbmd0aCApIHsNCgkJCWhhc0ZvY3VzID0gdGhpcy51aURpYWxvZzsNCgkJfQ0KCQloYXNGb2N1cy5lcSggMCApLmZvY3VzKCk7DQoJfSwNCg0KCV9rZWVwRm9jdXM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJZnVuY3Rpb24gY2hlY2tGb2N1cygpIHsNCgkJCXZhciBhY3RpdmVFbGVtZW50ID0gdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LA0KCQkJCWlzQWN0aXZlID0gdGhpcy51aURpYWxvZ1swXSA9PT0gYWN0aXZlRWxlbWVudCB8fA0KCQkJCQkkLmNvbnRhaW5zKCB0aGlzLnVpRGlhbG9nWzBdLCBhY3RpdmVFbGVtZW50ICk7DQoJCQlpZiAoICFpc0FjdGl2ZSApIHsNCgkJCQl0aGlzLl9mb2N1c1RhYmJhYmxlKCk7DQoJCQl9DQoJCX0NCgkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJY2hlY2tGb2N1cy5jYWxsKCB0aGlzICk7DQoJCS8vIHN1cHBvcnQ6IElFDQoJCS8vIElFIDw9IDggZG9lc24ndCBwcmV2ZW50IG1vdmluZyBmb2N1cyBldmVuIHdpdGggZXZlbnQucHJldmVudERlZmF1bHQoKQ0KCQkvLyBzbyB3ZSBjaGVjayBhZ2FpbiBsYXRlcg0KCQl0aGlzLl9kZWxheSggY2hlY2tGb2N1cyApOw0KCX0sDQoNCglfY3JlYXRlV3JhcHBlcjogZnVuY3Rpb24oKSB7DQoJCXRoaXMudWlEaWFsb2cgPSAkKCI8ZGl2PiIpDQoJCQkuYWRkQ2xhc3MoICJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktZnJvbnQgIiArDQoJCQkJdGhpcy5vcHRpb25zLmRpYWxvZ0NsYXNzICkNCgkJCS5oaWRlKCkNCgkJCS5hdHRyKHsNCgkJCQkvLyBTZXR0aW5nIHRhYkluZGV4IG1ha2VzIHRoZSBkaXYgZm9jdXNhYmxlDQoJCQkJdGFiSW5kZXg6IC0xLA0KCQkJCXJvbGU6ICJkaWFsb2ciDQoJCQl9KQ0KCQkJLmFwcGVuZFRvKCB0aGlzLl9hcHBlbmRUbygpICk7DQoNCgkJdGhpcy5fb24oIHRoaXMudWlEaWFsb2csIHsNCgkJCWtleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5jbG9zZU9uRXNjYXBlICYmICFldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSAmJiBldmVudC5rZXlDb2RlICYmDQoJCQkJCQlldmVudC5rZXlDb2RlID09PSAkLnVpLmtleUNvZGUuRVNDQVBFICkgew0KCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQl0aGlzLmNsb3NlKCBldmVudCApOw0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJLy8gcHJldmVudCB0YWJiaW5nIG91dCBvZiBkaWFsb2dzDQoJCQkJaWYgKCBldmVudC5rZXlDb2RlICE9PSAkLnVpLmtleUNvZGUuVEFCIHx8IGV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCXZhciB0YWJiYWJsZXMgPSB0aGlzLnVpRGlhbG9nLmZpbmQoICI6dGFiYmFibGUiICksDQoJCQkJCWZpcnN0ID0gdGFiYmFibGVzLmZpbHRlciggIjpmaXJzdCIgKSwNCgkJCQkJbGFzdCA9IHRhYmJhYmxlcy5maWx0ZXIoICI6bGFzdCIgKTsNCg0KCQkJCWlmICggKCBldmVudC50YXJnZXQgPT09IGxhc3RbMF0gfHwgZXZlbnQudGFyZ2V0ID09PSB0aGlzLnVpRGlhbG9nWzBdICkgJiYgIWV2ZW50LnNoaWZ0S2V5ICkgew0KCQkJCQl0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCQkJCWZpcnN0LmZvY3VzKCk7DQoJCQkJCX0pOw0KCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCX0gZWxzZSBpZiAoICggZXZlbnQudGFyZ2V0ID09PSBmaXJzdFswXSB8fCBldmVudC50YXJnZXQgPT09IHRoaXMudWlEaWFsb2dbMF0gKSAmJiBldmVudC5zaGlmdEtleSApIHsNCgkJCQkJdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJCQlsYXN0LmZvY3VzKCk7DQoJCQkJCX0pOw0KCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCX0NCgkJCX0sDQoJCQltb3VzZWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoIHRoaXMuX21vdmVUb1RvcCggZXZlbnQgKSApIHsNCgkJCQkJdGhpcy5fZm9jdXNUYWJiYWJsZSgpOw0KCQkJCX0NCgkJCX0NCgkJfSk7DQoNCgkJLy8gV2UgYXNzdW1lIHRoYXQgYW55IGV4aXN0aW5nIGFyaWEtZGVzY3JpYmVkYnkgYXR0cmlidXRlIG1lYW5zDQoJCS8vIHRoYXQgdGhlIGRpYWxvZyBjb250ZW50IGlzIG1hcmtlZCB1cCBwcm9wZXJseQ0KCQkvLyBvdGhlcndpc2Ugd2UgYnJ1dGUgZm9yY2UgdGhlIGNvbnRlbnQgYXMgdGhlIGRlc2NyaXB0aW9uDQoJCWlmICggIXRoaXMuZWxlbWVudC5maW5kKCAiW2FyaWEtZGVzY3JpYmVkYnldIiApLmxlbmd0aCApIHsNCgkJCXRoaXMudWlEaWFsb2cuYXR0cih7DQoJCQkJImFyaWEtZGVzY3JpYmVkYnkiOiB0aGlzLmVsZW1lbnQudW5pcXVlSWQoKS5hdHRyKCAiaWQiICkNCgkJCX0pOw0KCQl9DQoJfSwNCg0KCV9jcmVhdGVUaXRsZWJhcjogZnVuY3Rpb24oKSB7DQoJCXZhciB1aURpYWxvZ1RpdGxlOw0KDQoJCXRoaXMudWlEaWFsb2dUaXRsZWJhciA9ICQoICI8ZGl2PiIgKQ0KCQkJLmFkZENsYXNzKCAidWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCB1aS1oZWxwZXItY2xlYXJmaXgiICkNCgkJCS5wcmVwZW5kVG8oIHRoaXMudWlEaWFsb2cgKTsNCgkJdGhpcy5fb24oIHRoaXMudWlEaWFsb2dUaXRsZWJhciwgew0KCQkJbW91c2Vkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJLy8gRG9uJ3QgcHJldmVudCBjbGljayBvbiBjbG9zZSBidXR0b24gKCM4ODM4KQ0KCQkJCS8vIEZvY3VzaW5nIGEgZGlhbG9nIHRoYXQgaXMgcGFydGlhbGx5IHNjcm9sbGVkIG91dCBvZiB2aWV3DQoJCQkJLy8gY2F1c2VzIHRoZSBicm93c2VyIHRvIHNjcm9sbCBpdCBpbnRvIHZpZXcsIHByZXZlbnRpbmcgdGhlIGNsaWNrIGV2ZW50DQoJCQkJaWYgKCAhJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiICkgKSB7DQoJCQkJCS8vIERpYWxvZyBpc24ndCBnZXR0aW5nIGZvY3VzIHdoZW4gZHJhZ2dpbmcgKCM4MDYzKQ0KCQkJCQl0aGlzLnVpRGlhbG9nLmZvY3VzKCk7DQoJCQkJfQ0KCQkJfQ0KCQl9KTsNCg0KCQkvLyBzdXBwb3J0OiBJRQ0KCQkvLyBVc2UgdHlwZT0iYnV0dG9uIiB0byBwcmV2ZW50IGVudGVyIGtleXByZXNzZXMgaW4gdGV4dGJveGVzIGZyb20gY2xvc2luZyB0aGUNCgkJLy8gZGlhbG9nIGluIElFICgjOTMxMikNCgkJdGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UgPSAkKCAiPGJ1dHRvbiB0eXBlPSdidXR0b24nPjwvYnV0dG9uPiIgKQ0KCQkJLmJ1dHRvbih7DQoJCQkJbGFiZWw6IHRoaXMub3B0aW9ucy5jbG9zZVRleHQsDQoJCQkJaWNvbnM6IHsNCgkJCQkJcHJpbWFyeTogInVpLWljb24tY2xvc2V0aGljayINCgkJCQl9LA0KCQkJCXRleHQ6IGZhbHNlDQoJCQl9KQ0KCQkJLmFkZENsYXNzKCAidWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIiApDQoJCQkuYXBwZW5kVG8oIHRoaXMudWlEaWFsb2dUaXRsZWJhciApOw0KCQl0aGlzLl9vbiggdGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UsIHsNCgkJCWNsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQl0aGlzLmNsb3NlKCBldmVudCApOw0KCQkJfQ0KCQl9KTsNCg0KCQl1aURpYWxvZ1RpdGxlID0gJCggIjxzcGFuPiIgKQ0KCQkJLnVuaXF1ZUlkKCkNCgkJCS5hZGRDbGFzcyggInVpLWRpYWxvZy10aXRsZSIgKQ0KCQkJLnByZXBlbmRUbyggdGhpcy51aURpYWxvZ1RpdGxlYmFyICk7DQoJCXRoaXMuX3RpdGxlKCB1aURpYWxvZ1RpdGxlICk7DQoNCgkJdGhpcy51aURpYWxvZy5hdHRyKHsNCgkJCSJhcmlhLWxhYmVsbGVkYnkiOiB1aURpYWxvZ1RpdGxlLmF0dHIoICJpZCIgKQ0KCQl9KTsNCgl9LA0KDQoJX3RpdGxlOiBmdW5jdGlvbiggdGl0bGUgKSB7DQoJCWlmICggIXRoaXMub3B0aW9ucy50aXRsZSApIHsNCgkJCXRpdGxlLmh0bWwoICImIzE2MDsiICk7DQoJCX0NCgkJdGl0bGUudGV4dCggdGhpcy5vcHRpb25zLnRpdGxlICk7DQoJfSwNCg0KCV9jcmVhdGVCdXR0b25QYW5lOiBmdW5jdGlvbigpIHsNCgkJdGhpcy51aURpYWxvZ0J1dHRvblBhbmUgPSAkKCAiPGRpdj4iICkNCgkJCS5hZGRDbGFzcyggInVpLWRpYWxvZy1idXR0b25wYW5lIHVpLXdpZGdldC1jb250ZW50IHVpLWhlbHBlci1jbGVhcmZpeCIgKTsNCg0KCQl0aGlzLnVpQnV0dG9uU2V0ID0gJCggIjxkaXY+IiApDQoJCQkuYWRkQ2xhc3MoICJ1aS1kaWFsb2ctYnV0dG9uc2V0IiApDQoJCQkuYXBwZW5kVG8oIHRoaXMudWlEaWFsb2dCdXR0b25QYW5lICk7DQoNCgkJdGhpcy5fY3JlYXRlQnV0dG9ucygpOw0KCX0sDQoNCglfY3JlYXRlQnV0dG9uczogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCWJ1dHRvbnMgPSB0aGlzLm9wdGlvbnMuYnV0dG9uczsNCg0KCQkvLyBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBidXR0b24gcGFuZSwgcmVtb3ZlIGl0DQoJCXRoaXMudWlEaWFsb2dCdXR0b25QYW5lLnJlbW92ZSgpOw0KCQl0aGlzLnVpQnV0dG9uU2V0LmVtcHR5KCk7DQoNCgkJaWYgKCAkLmlzRW1wdHlPYmplY3QoIGJ1dHRvbnMgKSB8fCAoJC5pc0FycmF5KCBidXR0b25zICkgJiYgIWJ1dHRvbnMubGVuZ3RoKSApIHsNCgkJCXRoaXMudWlEaWFsb2cucmVtb3ZlQ2xhc3MoICJ1aS1kaWFsb2ctYnV0dG9ucyIgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCSQuZWFjaCggYnV0dG9ucywgZnVuY3Rpb24oIG5hbWUsIHByb3BzICkgew0KCQkJdmFyIGNsaWNrLCBidXR0b25PcHRpb25zOw0KCQkJcHJvcHMgPSAkLmlzRnVuY3Rpb24oIHByb3BzICkgPw0KCQkJCXsgY2xpY2s6IHByb3BzLCB0ZXh0OiBuYW1lIH0gOg0KCQkJCXByb3BzOw0KCQkJLy8gRGVmYXVsdCB0byBhIG5vbi1zdWJtaXR0aW5nIGJ1dHRvbg0KCQkJcHJvcHMgPSAkLmV4dGVuZCggeyB0eXBlOiAiYnV0dG9uIiB9LCBwcm9wcyApOw0KCQkJLy8gQ2hhbmdlIHRoZSBjb250ZXh0IGZvciB0aGUgY2xpY2sgY2FsbGJhY2sgdG8gYmUgdGhlIG1haW4gZWxlbWVudA0KCQkJY2xpY2sgPSBwcm9wcy5jbGljazsNCgkJCXByb3BzLmNsaWNrID0gZnVuY3Rpb24oKSB7DQoJCQkJY2xpY2suYXBwbHkoIHRoYXQuZWxlbWVudFsgMCBdLCBhcmd1bWVudHMgKTsNCgkJCX07DQoJCQlidXR0b25PcHRpb25zID0gew0KCQkJCWljb25zOiBwcm9wcy5pY29ucywNCgkJCQl0ZXh0OiBwcm9wcy5zaG93VGV4dA0KCQkJfTsNCgkJCWRlbGV0ZSBwcm9wcy5pY29uczsNCgkJCWRlbGV0ZSBwcm9wcy5zaG93VGV4dDsNCgkJCSQoICI8YnV0dG9uPjwvYnV0dG9uPiIsIHByb3BzICkNCgkJCQkuYnV0dG9uKCBidXR0b25PcHRpb25zICkNCgkJCQkuYXBwZW5kVG8oIHRoYXQudWlCdXR0b25TZXQgKTsNCgkJfSk7DQoJCXRoaXMudWlEaWFsb2cuYWRkQ2xhc3MoICJ1aS1kaWFsb2ctYnV0dG9ucyIgKTsNCgkJdGhpcy51aURpYWxvZ0J1dHRvblBhbmUuYXBwZW5kVG8oIHRoaXMudWlEaWFsb2cgKTsNCgl9LA0KDQoJX21ha2VEcmFnZ2FibGU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zOw0KDQoJCWZ1bmN0aW9uIGZpbHRlcmVkVWkoIHVpICkgew0KCQkJcmV0dXJuIHsNCgkJCQlwb3NpdGlvbjogdWkucG9zaXRpb24sDQoJCQkJb2Zmc2V0OiB1aS5vZmZzZXQNCgkJCX07DQoJCX0NCg0KCQl0aGlzLnVpRGlhbG9nLmRyYWdnYWJsZSh7DQoJCQljYW5jZWw6ICIudWktZGlhbG9nLWNvbnRlbnQsIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiLA0KCQkJaGFuZGxlOiAiLnVpLWRpYWxvZy10aXRsZWJhciIsDQoJCQljb250YWlubWVudDogImRvY3VtZW50IiwNCgkJCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCSQoIHRoaXMgKS5hZGRDbGFzcyggInVpLWRpYWxvZy1kcmFnZ2luZyIgKTsNCgkJCQl0aGF0Ll9ibG9ja0ZyYW1lcygpOw0KCQkJCXRoYXQuX3RyaWdnZXIoICJkcmFnU3RhcnQiLCBldmVudCwgZmlsdGVyZWRVaSggdWkgKSApOw0KCQkJfSwNCgkJCWRyYWc6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7DQoJCQkJdGhhdC5fdHJpZ2dlciggImRyYWciLCBldmVudCwgZmlsdGVyZWRVaSggdWkgKSApOw0KCQkJfSwNCgkJCXN0b3A6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7DQoJCQkJdmFyIGxlZnQgPSB1aS5vZmZzZXQubGVmdCAtIHRoYXQuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpLA0KCQkJCQl0b3AgPSB1aS5vZmZzZXQudG9wIC0gdGhhdC5kb2N1bWVudC5zY3JvbGxUb3AoKTsNCg0KCQkJCW9wdGlvbnMucG9zaXRpb24gPSB7DQoJCQkJCW15OiAibGVmdCB0b3AiLA0KCQkJCQlhdDogImxlZnQiICsgKGxlZnQgPj0gMCA/ICIrIiA6ICIiKSArIGxlZnQgKyAiICIgKw0KCQkJCQkJInRvcCIgKyAodG9wID49IDAgPyAiKyIgOiAiIikgKyB0b3AsDQoJCQkJCW9mOiB0aGF0LndpbmRvdw0KCQkJCX07DQoJCQkJJCggdGhpcyApLnJlbW92ZUNsYXNzKCAidWktZGlhbG9nLWRyYWdnaW5nIiApOw0KCQkJCXRoYXQuX3VuYmxvY2tGcmFtZXMoKTsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAiZHJhZ1N0b3AiLCBldmVudCwgZmlsdGVyZWRVaSggdWkgKSApOw0KCQkJfQ0KCQl9KTsNCgl9LA0KDQoJX21ha2VSZXNpemFibGU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJaGFuZGxlcyA9IG9wdGlvbnMucmVzaXphYmxlLA0KCQkJLy8gLnVpLXJlc2l6YWJsZSBoYXMgcG9zaXRpb246IHJlbGF0aXZlIGRlZmluZWQgaW4gdGhlIHN0eWxlc2hlZXQNCgkJCS8vIGJ1dCBkaWFsb2dzIGhhdmUgdG8gdXNlIGFic29sdXRlIG9yIGZpeGVkIHBvc2l0aW9uaW5nDQoJCQlwb3NpdGlvbiA9IHRoaXMudWlEaWFsb2cuY3NzKCJwb3NpdGlvbiIpLA0KCQkJcmVzaXplSGFuZGxlcyA9IHR5cGVvZiBoYW5kbGVzID09PSAic3RyaW5nIiA/DQoJCQkJaGFuZGxlcwk6DQoJCQkJIm4sZSxzLHcsc2Usc3csbmUsbnciOw0KDQoJCWZ1bmN0aW9uIGZpbHRlcmVkVWkoIHVpICkgew0KCQkJcmV0dXJuIHsNCgkJCQlvcmlnaW5hbFBvc2l0aW9uOiB1aS5vcmlnaW5hbFBvc2l0aW9uLA0KCQkJCW9yaWdpbmFsU2l6ZTogdWkub3JpZ2luYWxTaXplLA0KCQkJCXBvc2l0aW9uOiB1aS5wb3NpdGlvbiwNCgkJCQlzaXplOiB1aS5zaXplDQoJCQl9Ow0KCQl9DQoNCgkJdGhpcy51aURpYWxvZy5yZXNpemFibGUoew0KCQkJY2FuY2VsOiAiLnVpLWRpYWxvZy1jb250ZW50IiwNCgkJCWNvbnRhaW5tZW50OiAiZG9jdW1lbnQiLA0KCQkJYWxzb1Jlc2l6ZTogdGhpcy5lbGVtZW50LA0KCQkJbWF4V2lkdGg6IG9wdGlvbnMubWF4V2lkdGgsDQoJCQltYXhIZWlnaHQ6IG9wdGlvbnMubWF4SGVpZ2h0LA0KCQkJbWluV2lkdGg6IG9wdGlvbnMubWluV2lkdGgsDQoJCQltaW5IZWlnaHQ6IHRoaXMuX21pbkhlaWdodCgpLA0KCQkJaGFuZGxlczogcmVzaXplSGFuZGxlcywNCgkJCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCSQoIHRoaXMgKS5hZGRDbGFzcyggInVpLWRpYWxvZy1yZXNpemluZyIgKTsNCgkJCQl0aGF0Ll9ibG9ja0ZyYW1lcygpOw0KCQkJCXRoYXQuX3RyaWdnZXIoICJyZXNpemVTdGFydCIsIGV2ZW50LCBmaWx0ZXJlZFVpKCB1aSApICk7DQoJCQl9LA0KCQkJcmVzaXplOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXRoYXQuX3RyaWdnZXIoICJyZXNpemUiLCBldmVudCwgZmlsdGVyZWRVaSggdWkgKSApOw0KCQkJfSwNCgkJCXN0b3A6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7DQoJCQkJdmFyIG9mZnNldCA9IHRoYXQudWlEaWFsb2cub2Zmc2V0KCksDQoJCQkJCWxlZnQgPSBvZmZzZXQubGVmdCAtIHRoYXQuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpLA0KCQkJCQl0b3AgPSBvZmZzZXQudG9wIC0gdGhhdC5kb2N1bWVudC5zY3JvbGxUb3AoKTsNCg0KCQkJCW9wdGlvbnMuaGVpZ2h0ID0gdGhhdC51aURpYWxvZy5oZWlnaHQoKTsNCgkJCQlvcHRpb25zLndpZHRoID0gdGhhdC51aURpYWxvZy53aWR0aCgpOw0KCQkJCW9wdGlvbnMucG9zaXRpb24gPSB7DQoJCQkJCW15OiAibGVmdCB0b3AiLA0KCQkJCQlhdDogImxlZnQiICsgKGxlZnQgPj0gMCA/ICIrIiA6ICIiKSArIGxlZnQgKyAiICIgKw0KCQkJCQkJInRvcCIgKyAodG9wID49IDAgPyAiKyIgOiAiIikgKyB0b3AsDQoJCQkJCW9mOiB0aGF0LndpbmRvdw0KCQkJCX07DQoJCQkJJCggdGhpcyApLnJlbW92ZUNsYXNzKCAidWktZGlhbG9nLXJlc2l6aW5nIiApOw0KCQkJCXRoYXQuX3VuYmxvY2tGcmFtZXMoKTsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAicmVzaXplU3RvcCIsIGV2ZW50LCBmaWx0ZXJlZFVpKCB1aSApICk7DQoJCQl9DQoJCX0pDQoJCS5jc3MoICJwb3NpdGlvbiIsIHBvc2l0aW9uICk7DQoJfSwNCg0KCV90cmFja0ZvY3VzOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fb24oIHRoaXMud2lkZ2V0KCksIHsNCgkJCWZvY3VzaW46IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQl0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKTsNCgkJCQl0aGlzLl9mb2N1c2VkRWxlbWVudCA9ICQoIGV2ZW50LnRhcmdldCApOw0KCQkJfQ0KCQl9KTsNCgl9LA0KDQoJX21ha2VGb2N1c1RhcmdldDogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX3VudHJhY2tJbnN0YW5jZSgpOw0KCQl0aGlzLl90cmFja2luZ0luc3RhbmNlcygpLnVuc2hpZnQoIHRoaXMgKTsNCgl9LA0KDQoJX3VudHJhY2tJbnN0YW5jZTogZnVuY3Rpb24oKSB7DQoJCXZhciBpbnN0YW5jZXMgPSB0aGlzLl90cmFja2luZ0luc3RhbmNlcygpLA0KCQkJZXhpc3RzID0gJC5pbkFycmF5KCB0aGlzLCBpbnN0YW5jZXMgKTsNCgkJaWYgKCBleGlzdHMgIT09IC0xICkgew0KCQkJaW5zdGFuY2VzLnNwbGljZSggZXhpc3RzLCAxICk7DQoJCX0NCgl9LA0KDQoJX3RyYWNraW5nSW5zdGFuY2VzOiBmdW5jdGlvbigpIHsNCgkJdmFyIGluc3RhbmNlcyA9IHRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1pbnN0YW5jZXMiICk7DQoJCWlmICggIWluc3RhbmNlcyApIHsNCgkJCWluc3RhbmNlcyA9IFtdOw0KCQkJdGhpcy5kb2N1bWVudC5kYXRhKCAidWktZGlhbG9nLWluc3RhbmNlcyIsIGluc3RhbmNlcyApOw0KCQl9DQoJCXJldHVybiBpbnN0YW5jZXM7DQoJfSwNCg0KCV9taW5IZWlnaHQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQlyZXR1cm4gb3B0aW9ucy5oZWlnaHQgPT09ICJhdXRvIiA/DQoJCQlvcHRpb25zLm1pbkhlaWdodCA6DQoJCQlNYXRoLm1pbiggb3B0aW9ucy5taW5IZWlnaHQsIG9wdGlvbnMuaGVpZ2h0ICk7DQoJfSwNCg0KCV9wb3NpdGlvbjogZnVuY3Rpb24oKSB7DQoJCS8vIE5lZWQgdG8gc2hvdyB0aGUgZGlhbG9nIHRvIGdldCB0aGUgYWN0dWFsIG9mZnNldCBpbiB0aGUgcG9zaXRpb24gcGx1Z2luDQoJCXZhciBpc1Zpc2libGUgPSB0aGlzLnVpRGlhbG9nLmlzKCAiOnZpc2libGUiICk7DQoJCWlmICggIWlzVmlzaWJsZSApIHsNCgkJCXRoaXMudWlEaWFsb2cuc2hvdygpOw0KCQl9DQoJCXRoaXMudWlEaWFsb2cucG9zaXRpb24oIHRoaXMub3B0aW9ucy5wb3NpdGlvbiApOw0KCQlpZiAoICFpc1Zpc2libGUgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLmhpZGUoKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uczogZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCXJlc2l6ZSA9IGZhbHNlLA0KCQkJcmVzaXphYmxlT3B0aW9ucyA9IHt9Ow0KDQoJCSQuZWFjaCggb3B0aW9ucywgZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCQl0aGF0Ll9zZXRPcHRpb24oIGtleSwgdmFsdWUgKTsNCg0KCQkJaWYgKCBrZXkgaW4gdGhhdC5zaXplUmVsYXRlZE9wdGlvbnMgKSB7DQoJCQkJcmVzaXplID0gdHJ1ZTsNCgkJCX0NCgkJCWlmICgga2V5IGluIHRoYXQucmVzaXphYmxlUmVsYXRlZE9wdGlvbnMgKSB7DQoJCQkJcmVzaXphYmxlT3B0aW9uc1sga2V5IF0gPSB2YWx1ZTsNCgkJCX0NCgkJfSk7DQoNCgkJaWYgKCByZXNpemUgKSB7DQoJCQl0aGlzLl9zaXplKCk7DQoJCQl0aGlzLl9wb3NpdGlvbigpOw0KCQl9DQoJCWlmICggdGhpcy51aURpYWxvZy5pcyggIjpkYXRhKHVpLXJlc2l6YWJsZSkiICkgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSggIm9wdGlvbiIsIHJlc2l6YWJsZU9wdGlvbnMgKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdmFyIGlzRHJhZ2dhYmxlLCBpc1Jlc2l6YWJsZSwNCgkJCXVpRGlhbG9nID0gdGhpcy51aURpYWxvZzsNCg0KCQlpZiAoIGtleSA9PT0gImRpYWxvZ0NsYXNzIiApIHsNCgkJCXVpRGlhbG9nDQoJCQkJLnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuZGlhbG9nQ2xhc3MgKQ0KCQkJCS5hZGRDbGFzcyggdmFsdWUgKTsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCg0KCQlpZiAoIGtleSA9PT0gImFwcGVuZFRvIiApIHsNCgkJCXRoaXMudWlEaWFsb2cuYXBwZW5kVG8oIHRoaXMuX2FwcGVuZFRvKCkgKTsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiYnV0dG9ucyIgKSB7DQoJCQl0aGlzLl9jcmVhdGVCdXR0b25zKCk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImNsb3NlVGV4dCIgKSB7DQoJCQl0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZS5idXR0b24oew0KCQkJCS8vIEVuc3VyZSB0aGF0IHdlIGFsd2F5cyBwYXNzIGEgc3RyaW5nDQoJCQkJbGFiZWw6ICIiICsgdmFsdWUNCgkJCX0pOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJkcmFnZ2FibGUiICkgew0KCQkJaXNEcmFnZ2FibGUgPSB1aURpYWxvZy5pcyggIjpkYXRhKHVpLWRyYWdnYWJsZSkiICk7DQoJCQlpZiAoIGlzRHJhZ2dhYmxlICYmICF2YWx1ZSApIHsNCgkJCQl1aURpYWxvZy5kcmFnZ2FibGUoICJkZXN0cm95IiApOw0KCQkJfQ0KDQoJCQlpZiAoICFpc0RyYWdnYWJsZSAmJiB2YWx1ZSApIHsNCgkJCQl0aGlzLl9tYWtlRHJhZ2dhYmxlKCk7DQoJCQl9DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gInBvc2l0aW9uIiApIHsNCgkJCXRoaXMuX3Bvc2l0aW9uKCk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gInJlc2l6YWJsZSIgKSB7DQoJCQkvLyBjdXJyZW50bHkgcmVzaXphYmxlLCBiZWNvbWluZyBub24tcmVzaXphYmxlDQoJCQlpc1Jlc2l6YWJsZSA9IHVpRGlhbG9nLmlzKCAiOmRhdGEodWktcmVzaXphYmxlKSIgKTsNCgkJCWlmICggaXNSZXNpemFibGUgJiYgIXZhbHVlICkgew0KCQkJCXVpRGlhbG9nLnJlc2l6YWJsZSggImRlc3Ryb3kiICk7DQoJCQl9DQoNCgkJCS8vIGN1cnJlbnRseSByZXNpemFibGUsIGNoYW5naW5nIGhhbmRsZXMNCgkJCWlmICggaXNSZXNpemFibGUgJiYgdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiApIHsNCgkJCQl1aURpYWxvZy5yZXNpemFibGUoICJvcHRpb24iLCAiaGFuZGxlcyIsIHZhbHVlICk7DQoJCQl9DQoNCgkJCS8vIGN1cnJlbnRseSBub24tcmVzaXphYmxlLCBiZWNvbWluZyByZXNpemFibGUNCgkJCWlmICggIWlzUmVzaXphYmxlICYmIHZhbHVlICE9PSBmYWxzZSApIHsNCgkJCQl0aGlzLl9tYWtlUmVzaXphYmxlKCk7DQoJCQl9DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gInRpdGxlIiApIHsNCgkJCXRoaXMuX3RpdGxlKCB0aGlzLnVpRGlhbG9nVGl0bGViYXIuZmluZCggIi51aS1kaWFsb2ctdGl0bGUiICkgKTsNCgkJfQ0KCX0sDQoNCglfc2l6ZTogZnVuY3Rpb24oKSB7DQoJCS8vIElmIHRoZSB1c2VyIGhhcyByZXNpemVkIHRoZSBkaWFsb2csIHRoZSAudWktZGlhbG9nIGFuZCAudWktZGlhbG9nLWNvbnRlbnQNCgkJLy8gZGl2cyB3aWxsIGJvdGggaGF2ZSB3aWR0aCBhbmQgaGVpZ2h0IHNldCwgc28gd2UgbmVlZCB0byByZXNldCB0aGVtDQoJCXZhciBub25Db250ZW50SGVpZ2h0LCBtaW5Db250ZW50SGVpZ2h0LCBtYXhDb250ZW50SGVpZ2h0LA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQkvLyBSZXNldCBjb250ZW50IHNpemluZw0KCQl0aGlzLmVsZW1lbnQuc2hvdygpLmNzcyh7DQoJCQl3aWR0aDogImF1dG8iLA0KCQkJbWluSGVpZ2h0OiAwLA0KCQkJbWF4SGVpZ2h0OiAibm9uZSIsDQoJCQloZWlnaHQ6IDANCgkJfSk7DQoNCgkJaWYgKCBvcHRpb25zLm1pbldpZHRoID4gb3B0aW9ucy53aWR0aCApIHsNCgkJCW9wdGlvbnMud2lkdGggPSBvcHRpb25zLm1pbldpZHRoOw0KCQl9DQoNCgkJLy8gcmVzZXQgd3JhcHBlciBzaXppbmcNCgkJLy8gZGV0ZXJtaW5lIHRoZSBoZWlnaHQgb2YgYWxsIHRoZSBub24tY29udGVudCBlbGVtZW50cw0KCQlub25Db250ZW50SGVpZ2h0ID0gdGhpcy51aURpYWxvZy5jc3Moew0KCQkJCWhlaWdodDogImF1dG8iLA0KCQkJCXdpZHRoOiBvcHRpb25zLndpZHRoDQoJCQl9KQ0KCQkJLm91dGVySGVpZ2h0KCk7DQoJCW1pbkNvbnRlbnRIZWlnaHQgPSBNYXRoLm1heCggMCwgb3B0aW9ucy5taW5IZWlnaHQgLSBub25Db250ZW50SGVpZ2h0ICk7DQoJCW1heENvbnRlbnRIZWlnaHQgPSB0eXBlb2Ygb3B0aW9ucy5tYXhIZWlnaHQgPT09ICJudW1iZXIiID8NCgkJCU1hdGgubWF4KCAwLCBvcHRpb25zLm1heEhlaWdodCAtIG5vbkNvbnRlbnRIZWlnaHQgKSA6DQoJCQkibm9uZSI7DQoNCgkJaWYgKCBvcHRpb25zLmhlaWdodCA9PT0gImF1dG8iICkgew0KCQkJdGhpcy5lbGVtZW50LmNzcyh7DQoJCQkJbWluSGVpZ2h0OiBtaW5Db250ZW50SGVpZ2h0LA0KCQkJCW1heEhlaWdodDogbWF4Q29udGVudEhlaWdodCwNCgkJCQloZWlnaHQ6ICJhdXRvIg0KCQkJfSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmVsZW1lbnQuaGVpZ2h0KCBNYXRoLm1heCggMCwgb3B0aW9ucy5oZWlnaHQgLSBub25Db250ZW50SGVpZ2h0ICkgKTsNCgkJfQ0KDQoJCWlmICggdGhpcy51aURpYWxvZy5pcyggIjpkYXRhKHVpLXJlc2l6YWJsZSkiICkgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSggIm9wdGlvbiIsICJtaW5IZWlnaHQiLCB0aGlzLl9taW5IZWlnaHQoKSApOw0KCQl9DQoJfSwNCg0KCV9ibG9ja0ZyYW1lczogZnVuY3Rpb24oKSB7DQoJCXRoaXMuaWZyYW1lQmxvY2tzID0gdGhpcy5kb2N1bWVudC5maW5kKCAiaWZyYW1lIiApLm1hcChmdW5jdGlvbigpIHsNCgkJCXZhciBpZnJhbWUgPSAkKCB0aGlzICk7DQoNCgkJCXJldHVybiAkKCAiPGRpdj4iICkNCgkJCQkuY3NzKHsNCgkJCQkJcG9zaXRpb246ICJhYnNvbHV0ZSIsDQoJCQkJCXdpZHRoOiBpZnJhbWUub3V0ZXJXaWR0aCgpLA0KCQkJCQloZWlnaHQ6IGlmcmFtZS5vdXRlckhlaWdodCgpDQoJCQkJfSkNCgkJCQkuYXBwZW5kVG8oIGlmcmFtZS5wYXJlbnQoKSApDQoJCQkJLm9mZnNldCggaWZyYW1lLm9mZnNldCgpIClbMF07DQoJCX0pOw0KCX0sDQoNCglfdW5ibG9ja0ZyYW1lczogZnVuY3Rpb24oKSB7DQoJCWlmICggdGhpcy5pZnJhbWVCbG9ja3MgKSB7DQoJCQl0aGlzLmlmcmFtZUJsb2Nrcy5yZW1vdmUoKTsNCgkJCWRlbGV0ZSB0aGlzLmlmcmFtZUJsb2NrczsNCgkJfQ0KCX0sDQoNCglfYWxsb3dJbnRlcmFjdGlvbjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoICQoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoICIudWktZGlhbG9nIiApLmxlbmd0aCApIHsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJLy8gVE9ETzogUmVtb3ZlIGhhY2sgd2hlbiBkYXRlcGlja2VyIGltcGxlbWVudHMNCgkJLy8gdGhlIC51aS1mcm9udCBsb2dpYyAoIzg5ODkpDQoJCXJldHVybiAhISQoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoICIudWktZGF0ZXBpY2tlciIgKS5sZW5ndGg7DQoJfSwNCg0KCV9jcmVhdGVPdmVybGF5OiBmdW5jdGlvbigpIHsNCgkJaWYgKCAhdGhpcy5vcHRpb25zLm1vZGFsICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gV2UgdXNlIGEgZGVsYXkgaW4gY2FzZSB0aGUgb3ZlcmxheSBpcyBjcmVhdGVkIGZyb20gYW4NCgkJLy8gZXZlbnQgdGhhdCB3ZSdyZSBnb2luZyB0byBiZSBjYW5jZWxsaW5nICgjMjgwNCkNCgkJdmFyIGlzT3BlbmluZyA9IHRydWU7DQoJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJaXNPcGVuaW5nID0gZmFsc2U7DQoJCX0pOw0KDQoJCWlmICggIXRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1vdmVybGF5cyIgKSApIHsNCg0KCQkJLy8gUHJldmVudCB1c2Ugb2YgYW5jaG9ycyBhbmQgaW5wdXRzDQoJCQkvLyBVc2luZyBfb24oKSBmb3IgYW4gZXZlbnQgaGFuZGxlciBzaGFyZWQgYWNyb3NzIG1hbnkgaW5zdGFuY2VzIGlzDQoJCQkvLyBzYWZlIGJlY2F1c2UgdGhlIGRpYWxvZ3Mgc3RhY2sgYW5kIG11c3QgYmUgY2xvc2VkIGluIHJldmVyc2Ugb3JkZXINCgkJCXRoaXMuX29uKCB0aGlzLmRvY3VtZW50LCB7DQoJCQkJZm9jdXNpbjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCQlpZiAoIGlzT3BlbmluZyApIHsNCgkJCQkJCXJldHVybjsNCgkJCQkJfQ0KDQoJCQkJCWlmICggIXRoaXMuX2FsbG93SW50ZXJhY3Rpb24oIGV2ZW50ICkgKSB7DQoJCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQkJdGhpcy5fdHJhY2tpbmdJbnN0YW5jZXMoKVsgMCBdLl9mb2N1c1RhYmJhYmxlKCk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9KTsNCgkJfQ0KDQoJCXRoaXMub3ZlcmxheSA9ICQoICI8ZGl2PiIgKQ0KCQkJLmFkZENsYXNzKCAidWktd2lkZ2V0LW92ZXJsYXkgdWktZnJvbnQiICkNCgkJCS5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KCQl0aGlzLl9vbiggdGhpcy5vdmVybGF5LCB7DQoJCQltb3VzZWRvd246ICJfa2VlcEZvY3VzIg0KCQl9KTsNCgkJdGhpcy5kb2N1bWVudC5kYXRhKCAidWktZGlhbG9nLW92ZXJsYXlzIiwNCgkJCSh0aGlzLmRvY3VtZW50LmRhdGEoICJ1aS1kaWFsb2ctb3ZlcmxheXMiICkgfHwgMCkgKyAxICk7DQoJfSwNCg0KCV9kZXN0cm95T3ZlcmxheTogZnVuY3Rpb24oKSB7DQoJCWlmICggIXRoaXMub3B0aW9ucy5tb2RhbCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggdGhpcy5vdmVybGF5ICkgew0KCQkJdmFyIG92ZXJsYXlzID0gdGhpcy5kb2N1bWVudC5kYXRhKCAidWktZGlhbG9nLW92ZXJsYXlzIiApIC0gMTsNCg0KCQkJaWYgKCAhb3ZlcmxheXMgKSB7DQoJCQkJdGhpcy5kb2N1bWVudA0KCQkJCQkudW5iaW5kKCAiZm9jdXNpbiIgKQ0KCQkJCQkucmVtb3ZlRGF0YSggInVpLWRpYWxvZy1vdmVybGF5cyIgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5kb2N1bWVudC5kYXRhKCAidWktZGlhbG9nLW92ZXJsYXlzIiwgb3ZlcmxheXMgKTsNCgkJCX0NCg0KCQkJdGhpcy5vdmVybGF5LnJlbW92ZSgpOw0KCQkJdGhpcy5vdmVybGF5ID0gbnVsbDsNCgkJfQ0KCX0NCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIERyb3BwYWJsZSAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vZHJvcHBhYmxlLw0KICovDQoNCg0KJC53aWRnZXQoICJ1aS5kcm9wcGFibGUiLCB7DQoJdmVyc2lvbjogIjEuMTEuMiIsDQoJd2lkZ2V0RXZlbnRQcmVmaXg6ICJkcm9wIiwNCglvcHRpb25zOiB7DQoJCWFjY2VwdDogIioiLA0KCQlhY3RpdmVDbGFzczogZmFsc2UsDQoJCWFkZENsYXNzZXM6IHRydWUsDQoJCWdyZWVkeTogZmFsc2UsDQoJCWhvdmVyQ2xhc3M6IGZhbHNlLA0KCQlzY29wZTogImRlZmF1bHQiLA0KCQl0b2xlcmFuY2U6ICJpbnRlcnNlY3QiLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQlhY3RpdmF0ZTogbnVsbCwNCgkJZGVhY3RpdmF0ZTogbnVsbCwNCgkJZHJvcDogbnVsbCwNCgkJb3V0OiBudWxsLA0KCQlvdmVyOiBudWxsDQoJfSwNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgcHJvcG9ydGlvbnMsDQoJCQlvID0gdGhpcy5vcHRpb25zLA0KCQkJYWNjZXB0ID0gby5hY2NlcHQ7DQoNCgkJdGhpcy5pc292ZXIgPSBmYWxzZTsNCgkJdGhpcy5pc291dCA9IHRydWU7DQoNCgkJdGhpcy5hY2NlcHQgPSAkLmlzRnVuY3Rpb24oIGFjY2VwdCApID8gYWNjZXB0IDogZnVuY3Rpb24oIGQgKSB7DQoJCQlyZXR1cm4gZC5pcyggYWNjZXB0ICk7DQoJCX07DQoNCgkJdGhpcy5wcm9wb3J0aW9ucyA9IGZ1bmN0aW9uKCAvKiB2YWx1ZVRvV3JpdGUgKi8gKSB7DQoJCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQkJLy8gU3RvcmUgdGhlIGRyb3BwYWJsZSdzIHByb3BvcnRpb25zDQoJCQkJcHJvcG9ydGlvbnMgPSBhcmd1bWVudHNbIDAgXTsNCgkJCX0gZWxzZSB7DQoJCQkJLy8gUmV0cmlldmUgb3IgZGVyaXZlIHRoZSBkcm9wcGFibGUncyBwcm9wb3J0aW9ucw0KCQkJCXJldHVybiBwcm9wb3J0aW9ucyA/DQoJCQkJCXByb3BvcnRpb25zIDoNCgkJCQkJcHJvcG9ydGlvbnMgPSB7DQoJCQkJCQl3aWR0aDogdGhpcy5lbGVtZW50WyAwIF0ub2Zmc2V0V2lkdGgsDQoJCQkJCQloZWlnaHQ6IHRoaXMuZWxlbWVudFsgMCBdLm9mZnNldEhlaWdodA0KCQkJCQl9Ow0KCQkJfQ0KCQl9Ow0KDQoJCXRoaXMuX2FkZFRvTWFuYWdlciggby5zY29wZSApOw0KDQoJCW8uYWRkQ2xhc3NlcyAmJiB0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoICJ1aS1kcm9wcGFibGUiICk7DQoNCgl9LA0KDQoJX2FkZFRvTWFuYWdlcjogZnVuY3Rpb24oIHNjb3BlICkgew0KCQkvLyBBZGQgdGhlIHJlZmVyZW5jZSBhbmQgcG9zaXRpb25zIHRvIHRoZSBtYW5hZ2VyDQoJCSQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbIHNjb3BlIF0gPSAkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyBzY29wZSBdIHx8IFtdOw0KCQkkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyBzY29wZSBdLnB1c2goIHRoaXMgKTsNCgl9LA0KDQoJX3NwbGljZTogZnVuY3Rpb24oIGRyb3AgKSB7DQoJCXZhciBpID0gMDsNCgkJZm9yICggOyBpIDwgZHJvcC5sZW5ndGg7IGkrKyApIHsNCgkJCWlmICggZHJvcFsgaSBdID09PSB0aGlzICkgew0KCQkJCWRyb3Auc3BsaWNlKCBpLCAxICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl2YXIgZHJvcCA9ICQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbIHRoaXMub3B0aW9ucy5zY29wZSBdOw0KDQoJCXRoaXMuX3NwbGljZSggZHJvcCApOw0KDQoJCXRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyggInVpLWRyb3BwYWJsZSB1aS1kcm9wcGFibGUtZGlzYWJsZWQiICk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KDQoJCWlmICgga2V5ID09PSAiYWNjZXB0IiApIHsNCgkJCXRoaXMuYWNjZXB0ID0gJC5pc0Z1bmN0aW9uKCB2YWx1ZSApID8gdmFsdWUgOiBmdW5jdGlvbiggZCApIHsNCgkJCQlyZXR1cm4gZC5pcyggdmFsdWUgKTsNCgkJCX07DQoJCX0gZWxzZSBpZiAoIGtleSA9PT0gInNjb3BlIiApIHsNCgkJCXZhciBkcm9wID0gJC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1sgdGhpcy5vcHRpb25zLnNjb3BlIF07DQoNCgkJCXRoaXMuX3NwbGljZSggZHJvcCApOw0KCQkJdGhpcy5fYWRkVG9NYW5hZ2VyKCB2YWx1ZSApOw0KCQl9DQoNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCgl9LA0KDQoJX2FjdGl2YXRlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBkcmFnZ2FibGUgPSAkLnVpLmRkbWFuYWdlci5jdXJyZW50Ow0KCQlpZiAoIHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyApIHsNCgkJCXRoaXMuZWxlbWVudC5hZGRDbGFzcyggdGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzICk7DQoJCX0NCgkJaWYgKCBkcmFnZ2FibGUgKXsNCgkJCXRoaXMuX3RyaWdnZXIoICJhY3RpdmF0ZSIsIGV2ZW50LCB0aGlzLnVpKCBkcmFnZ2FibGUgKSApOw0KCQl9DQoJfSwNCg0KCV9kZWFjdGl2YXRlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBkcmFnZ2FibGUgPSAkLnVpLmRkbWFuYWdlci5jdXJyZW50Ow0KCQlpZiAoIHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyApIHsNCgkJCXRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyggdGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzICk7DQoJCX0NCgkJaWYgKCBkcmFnZ2FibGUgKXsNCgkJCXRoaXMuX3RyaWdnZXIoICJkZWFjdGl2YXRlIiwgZXZlbnQsIHRoaXMudWkoIGRyYWdnYWJsZSApICk7DQoJCX0NCgl9LA0KDQoJX292ZXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQl2YXIgZHJhZ2dhYmxlID0gJC51aS5kZG1hbmFnZXIuY3VycmVudDsNCg0KCQkvLyBCYWlsIGlmIGRyYWdnYWJsZSBhbmQgZHJvcHBhYmxlIGFyZSBzYW1lIGVsZW1lbnQNCgkJaWYgKCAhZHJhZ2dhYmxlIHx8ICggZHJhZ2dhYmxlLmN1cnJlbnRJdGVtIHx8IGRyYWdnYWJsZS5lbGVtZW50IClbIDAgXSA9PT0gdGhpcy5lbGVtZW50WyAwIF0gKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIHRoaXMuYWNjZXB0LmNhbGwoIHRoaXMuZWxlbWVudFsgMCBdLCAoIGRyYWdnYWJsZS5jdXJyZW50SXRlbSB8fCBkcmFnZ2FibGUuZWxlbWVudCApICkgKSB7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzICkgew0KCQkJCXRoaXMuZWxlbWVudC5hZGRDbGFzcyggdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MgKTsNCgkJCX0NCgkJCXRoaXMuX3RyaWdnZXIoICJvdmVyIiwgZXZlbnQsIHRoaXMudWkoIGRyYWdnYWJsZSApICk7DQoJCX0NCg0KCX0sDQoNCglfb3V0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoNCgkJdmFyIGRyYWdnYWJsZSA9ICQudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7DQoNCgkJLy8gQmFpbCBpZiBkcmFnZ2FibGUgYW5kIGRyb3BwYWJsZSBhcmUgc2FtZSBlbGVtZW50DQoJCWlmICggIWRyYWdnYWJsZSB8fCAoIGRyYWdnYWJsZS5jdXJyZW50SXRlbSB8fCBkcmFnZ2FibGUuZWxlbWVudCApWyAwIF0gPT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCB0aGlzLmFjY2VwdC5jYWxsKCB0aGlzLmVsZW1lbnRbIDAgXSwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwgZHJhZ2dhYmxlLmVsZW1lbnQgKSApICkgew0KCQkJaWYgKCB0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyApIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoIHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzICk7DQoJCQl9DQoJCQl0aGlzLl90cmlnZ2VyKCAib3V0IiwgZXZlbnQsIHRoaXMudWkoIGRyYWdnYWJsZSApICk7DQoJCX0NCg0KCX0sDQoNCglfZHJvcDogZnVuY3Rpb24oIGV2ZW50LCBjdXN0b20gKSB7DQoNCgkJdmFyIGRyYWdnYWJsZSA9IGN1c3RvbSB8fCAkLnVpLmRkbWFuYWdlci5jdXJyZW50LA0KCQkJY2hpbGRyZW5JbnRlcnNlY3Rpb24gPSBmYWxzZTsNCg0KCQkvLyBCYWlsIGlmIGRyYWdnYWJsZSBhbmQgZHJvcHBhYmxlIGFyZSBzYW1lIGVsZW1lbnQNCgkJaWYgKCAhZHJhZ2dhYmxlIHx8ICggZHJhZ2dhYmxlLmN1cnJlbnRJdGVtIHx8IGRyYWdnYWJsZS5lbGVtZW50IClbIDAgXSA9PT0gdGhpcy5lbGVtZW50WyAwIF0gKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl0aGlzLmVsZW1lbnQuZmluZCggIjpkYXRhKHVpLWRyb3BwYWJsZSkiICkubm90KCAiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIgKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIGluc3QgPSAkKCB0aGlzICkuZHJvcHBhYmxlKCAiaW5zdGFuY2UiICk7DQoJCQlpZiAoDQoJCQkJaW5zdC5vcHRpb25zLmdyZWVkeSAmJg0KCQkJCSFpbnN0Lm9wdGlvbnMuZGlzYWJsZWQgJiYNCgkJCQlpbnN0Lm9wdGlvbnMuc2NvcGUgPT09IGRyYWdnYWJsZS5vcHRpb25zLnNjb3BlICYmDQoJCQkJaW5zdC5hY2NlcHQuY2FsbCggaW5zdC5lbGVtZW50WyAwIF0sICggZHJhZ2dhYmxlLmN1cnJlbnRJdGVtIHx8IGRyYWdnYWJsZS5lbGVtZW50ICkgKSAmJg0KCQkJCSQudWkuaW50ZXJzZWN0KCBkcmFnZ2FibGUsICQuZXh0ZW5kKCBpbnN0LCB7IG9mZnNldDogaW5zdC5lbGVtZW50Lm9mZnNldCgpIH0gKSwgaW5zdC5vcHRpb25zLnRvbGVyYW5jZSwgZXZlbnQgKQ0KCQkJKSB7IGNoaWxkcmVuSW50ZXJzZWN0aW9uID0gdHJ1ZTsgcmV0dXJuIGZhbHNlOyB9DQoJCX0pOw0KCQlpZiAoIGNoaWxkcmVuSW50ZXJzZWN0aW9uICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJaWYgKCB0aGlzLmFjY2VwdC5jYWxsKCB0aGlzLmVsZW1lbnRbIDAgXSwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwgZHJhZ2dhYmxlLmVsZW1lbnQgKSApICkgew0KCQkJaWYgKCB0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MgKSB7DQoJCQkJdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MgKTsNCgkJCX0NCgkJCWlmICggdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MgKSB7DQoJCQkJdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyApOw0KCQkJfQ0KCQkJdGhpcy5fdHJpZ2dlciggImRyb3AiLCBldmVudCwgdGhpcy51aSggZHJhZ2dhYmxlICkgKTsNCgkJCXJldHVybiB0aGlzLmVsZW1lbnQ7DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoNCgl9LA0KDQoJdWk6IGZ1bmN0aW9uKCBjICkgew0KCQlyZXR1cm4gew0KCQkJZHJhZ2dhYmxlOiAoIGMuY3VycmVudEl0ZW0gfHwgYy5lbGVtZW50ICksDQoJCQloZWxwZXI6IGMuaGVscGVyLA0KCQkJcG9zaXRpb246IGMucG9zaXRpb24sDQoJCQlvZmZzZXQ6IGMucG9zaXRpb25BYnMNCgkJfTsNCgl9DQoNCn0pOw0KDQokLnVpLmludGVyc2VjdCA9IChmdW5jdGlvbigpIHsNCglmdW5jdGlvbiBpc092ZXJBeGlzKCB4LCByZWZlcmVuY2UsIHNpemUgKSB7DQoJCXJldHVybiAoIHggPj0gcmVmZXJlbmNlICkgJiYgKCB4IDwgKCByZWZlcmVuY2UgKyBzaXplICkgKTsNCgl9DQoNCglyZXR1cm4gZnVuY3Rpb24oIGRyYWdnYWJsZSwgZHJvcHBhYmxlLCB0b2xlcmFuY2VNb2RlLCBldmVudCApIHsNCg0KCQlpZiAoICFkcm9wcGFibGUub2Zmc2V0ICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJdmFyIHgxID0gKCBkcmFnZ2FibGUucG9zaXRpb25BYnMgfHwgZHJhZ2dhYmxlLnBvc2l0aW9uLmFic29sdXRlICkubGVmdCArIGRyYWdnYWJsZS5tYXJnaW5zLmxlZnQsDQoJCQl5MSA9ICggZHJhZ2dhYmxlLnBvc2l0aW9uQWJzIHx8IGRyYWdnYWJsZS5wb3NpdGlvbi5hYnNvbHV0ZSApLnRvcCArIGRyYWdnYWJsZS5tYXJnaW5zLnRvcCwNCgkJCXgyID0geDEgKyBkcmFnZ2FibGUuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgsDQoJCQl5MiA9IHkxICsgZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCwNCgkJCWwgPSBkcm9wcGFibGUub2Zmc2V0LmxlZnQsDQoJCQl0ID0gZHJvcHBhYmxlLm9mZnNldC50b3AsDQoJCQlyID0gbCArIGRyb3BwYWJsZS5wcm9wb3J0aW9ucygpLndpZHRoLA0KCQkJYiA9IHQgKyBkcm9wcGFibGUucHJvcG9ydGlvbnMoKS5oZWlnaHQ7DQoNCgkJc3dpdGNoICggdG9sZXJhbmNlTW9kZSApIHsNCgkJY2FzZSAiZml0IjoNCgkJCXJldHVybiAoIGwgPD0geDEgJiYgeDIgPD0gciAmJiB0IDw9IHkxICYmIHkyIDw9IGIgKTsNCgkJY2FzZSAiaW50ZXJzZWN0IjoNCgkJCXJldHVybiAoIGwgPCB4MSArICggZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC8gMiApICYmIC8vIFJpZ2h0IEhhbGYNCgkJCQl4MiAtICggZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC8gMiApIDwgciAmJiAvLyBMZWZ0IEhhbGYNCgkJCQl0IDwgeTEgKyAoIGRyYWdnYWJsZS5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLyAyICkgJiYgLy8gQm90dG9tIEhhbGYNCgkJCQl5MiAtICggZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAvIDIgKSA8IGIgKTsgLy8gVG9wIEhhbGYNCgkJY2FzZSAicG9pbnRlciI6DQoJCQlyZXR1cm4gaXNPdmVyQXhpcyggZXZlbnQucGFnZVksIHQsIGRyb3BwYWJsZS5wcm9wb3J0aW9ucygpLmhlaWdodCApICYmIGlzT3ZlckF4aXMoIGV2ZW50LnBhZ2VYLCBsLCBkcm9wcGFibGUucHJvcG9ydGlvbnMoKS53aWR0aCApOw0KCQljYXNlICJ0b3VjaCI6DQoJCQlyZXR1cm4gKA0KCQkJCSggeTEgPj0gdCAmJiB5MSA8PSBiICkgfHwgLy8gVG9wIGVkZ2UgdG91Y2hpbmcNCgkJCQkoIHkyID49IHQgJiYgeTIgPD0gYiApIHx8IC8vIEJvdHRvbSBlZGdlIHRvdWNoaW5nDQoJCQkJKCB5MSA8IHQgJiYgeTIgPiBiICkgLy8gU3Vycm91bmRlZCB2ZXJ0aWNhbGx5DQoJCQkpICYmICgNCgkJCQkoIHgxID49IGwgJiYgeDEgPD0gciApIHx8IC8vIExlZnQgZWRnZSB0b3VjaGluZw0KCQkJCSggeDIgPj0gbCAmJiB4MiA8PSByICkgfHwgLy8gUmlnaHQgZWRnZSB0b3VjaGluZw0KCQkJCSggeDEgPCBsICYmIHgyID4gciApIC8vIFN1cnJvdW5kZWQgaG9yaXpvbnRhbGx5DQoJCQkpOw0KCQlkZWZhdWx0Og0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJfTsNCn0pKCk7DQoNCi8qDQoJVGhpcyBtYW5hZ2VyIHRyYWNrcyBvZmZzZXRzIG9mIGRyYWdnYWJsZXMgYW5kIGRyb3BwYWJsZXMNCiovDQokLnVpLmRkbWFuYWdlciA9IHsNCgljdXJyZW50OiBudWxsLA0KCWRyb3BwYWJsZXM6IHsgImRlZmF1bHQiOiBbXSB9LA0KCXByZXBhcmVPZmZzZXRzOiBmdW5jdGlvbiggdCwgZXZlbnQgKSB7DQoNCgkJdmFyIGksIGosDQoJCQltID0gJC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1sgdC5vcHRpb25zLnNjb3BlIF0gfHwgW10sDQoJCQl0eXBlID0gZXZlbnQgPyBldmVudC50eXBlIDogbnVsbCwgLy8gd29ya2Fyb3VuZCBmb3IgIzIzMTcNCgkJCWxpc3QgPSAoIHQuY3VycmVudEl0ZW0gfHwgdC5lbGVtZW50ICkuZmluZCggIjpkYXRhKHVpLWRyb3BwYWJsZSkiICkuYWRkQmFjaygpOw0KDQoJCWRyb3BwYWJsZXNMb29wOiBmb3IgKCBpID0gMDsgaSA8IG0ubGVuZ3RoOyBpKysgKSB7DQoNCgkJCS8vIE5vIGRpc2FibGVkIGFuZCBub24tYWNjZXB0ZWQNCgkJCWlmICggbVsgaSBdLm9wdGlvbnMuZGlzYWJsZWQgfHwgKCB0ICYmICFtWyBpIF0uYWNjZXB0LmNhbGwoIG1bIGkgXS5lbGVtZW50WyAwIF0sICggdC5jdXJyZW50SXRlbSB8fCB0LmVsZW1lbnQgKSApICkgKSB7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCS8vIEZpbHRlciBvdXQgZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQgZHJhZ2dlZCBpdGVtDQoJCQlmb3IgKCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKysgKSB7DQoJCQkJaWYgKCBsaXN0WyBqIF0gPT09IG1bIGkgXS5lbGVtZW50WyAwIF0gKSB7DQoJCQkJCW1bIGkgXS5wcm9wb3J0aW9ucygpLmhlaWdodCA9IDA7DQoJCQkJCWNvbnRpbnVlIGRyb3BwYWJsZXNMb29wOw0KCQkJCX0NCgkJCX0NCg0KCQkJbVsgaSBdLnZpc2libGUgPSBtWyBpIF0uZWxlbWVudC5jc3MoICJkaXNwbGF5IiApICE9PSAibm9uZSI7DQoJCQlpZiAoICFtWyBpIF0udmlzaWJsZSApIHsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJLy8gQWN0aXZhdGUgdGhlIGRyb3BwYWJsZSBpZiB1c2VkIGRpcmVjdGx5IGZyb20gZHJhZ2dhYmxlcw0KCQkJaWYgKCB0eXBlID09PSAibW91c2Vkb3duIiApIHsNCgkJCQltWyBpIF0uX2FjdGl2YXRlLmNhbGwoIG1bIGkgXSwgZXZlbnQgKTsNCgkJCX0NCg0KCQkJbVsgaSBdLm9mZnNldCA9IG1bIGkgXS5lbGVtZW50Lm9mZnNldCgpOw0KCQkJbVsgaSBdLnByb3BvcnRpb25zKHsgd2lkdGg6IG1bIGkgXS5lbGVtZW50WyAwIF0ub2Zmc2V0V2lkdGgsIGhlaWdodDogbVsgaSBdLmVsZW1lbnRbIDAgXS5vZmZzZXRIZWlnaHQgfSk7DQoNCgkJfQ0KDQoJfSwNCglkcm9wOiBmdW5jdGlvbiggZHJhZ2dhYmxlLCBldmVudCApIHsNCg0KCQl2YXIgZHJvcHBlZCA9IGZhbHNlOw0KCQkvLyBDcmVhdGUgYSBjb3B5IG9mIHRoZSBkcm9wcGFibGVzIGluIGNhc2UgdGhlIGxpc3QgY2hhbmdlcyBkdXJpbmcgdGhlIGRyb3AgKCM5MTE2KQ0KCQkkLmVhY2goICggJC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1sgZHJhZ2dhYmxlLm9wdGlvbnMuc2NvcGUgXSB8fCBbXSApLnNsaWNlKCksIGZ1bmN0aW9uKCkgew0KDQoJCQlpZiAoICF0aGlzLm9wdGlvbnMgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkJaWYgKCAhdGhpcy5vcHRpb25zLmRpc2FibGVkICYmIHRoaXMudmlzaWJsZSAmJiAkLnVpLmludGVyc2VjdCggZHJhZ2dhYmxlLCB0aGlzLCB0aGlzLm9wdGlvbnMudG9sZXJhbmNlLCBldmVudCApICkgew0KCQkJCWRyb3BwZWQgPSB0aGlzLl9kcm9wLmNhbGwoIHRoaXMsIGV2ZW50ICkgfHwgZHJvcHBlZDsNCgkJCX0NCg0KCQkJaWYgKCAhdGhpcy5vcHRpb25zLmRpc2FibGVkICYmIHRoaXMudmlzaWJsZSAmJiB0aGlzLmFjY2VwdC5jYWxsKCB0aGlzLmVsZW1lbnRbIDAgXSwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwgZHJhZ2dhYmxlLmVsZW1lbnQgKSApICkgew0KCQkJCXRoaXMuaXNvdXQgPSB0cnVlOw0KCQkJCXRoaXMuaXNvdmVyID0gZmFsc2U7DQoJCQkJdGhpcy5fZGVhY3RpdmF0ZS5jYWxsKCB0aGlzLCBldmVudCApOw0KCQkJfQ0KDQoJCX0pOw0KCQlyZXR1cm4gZHJvcHBlZDsNCg0KCX0sDQoJZHJhZ1N0YXJ0OiBmdW5jdGlvbiggZHJhZ2dhYmxlLCBldmVudCApIHsNCgkJLy8gTGlzdGVuIGZvciBzY3JvbGxpbmcgc28gdGhhdCBpZiB0aGUgZHJhZ2dpbmcgY2F1c2VzIHNjcm9sbGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIGRyb3BwYWJsZXMgY2FuIGJlIHJlY2FsY3VsYXRlZCAoc2VlICM1MDAzKQ0KCQlkcmFnZ2FibGUuZWxlbWVudC5wYXJlbnRzVW50aWwoICJib2R5IiApLmJpbmQoICJzY3JvbGwuZHJvcHBhYmxlIiwgZnVuY3Rpb24oKSB7DQoJCQlpZiAoICFkcmFnZ2FibGUub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zICkgew0KCQkJCSQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKCBkcmFnZ2FibGUsIGV2ZW50ICk7DQoJCQl9DQoJCX0pOw0KCX0sDQoJZHJhZzogZnVuY3Rpb24oIGRyYWdnYWJsZSwgZXZlbnQgKSB7DQoNCgkJLy8gSWYgeW91IGhhdmUgYSBoaWdobHkgZHluYW1pYyBwYWdlLCB5b3UgbWlnaHQgdHJ5IHRoaXMgb3B0aW9uLiBJdCByZW5kZXJzIHBvc2l0aW9ucyBldmVyeSB0aW1lIHlvdSBtb3ZlIHRoZSBtb3VzZS4NCgkJaWYgKCBkcmFnZ2FibGUub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zICkgew0KCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoIGRyYWdnYWJsZSwgZXZlbnQgKTsNCgkJfQ0KDQoJCS8vIFJ1biB0aHJvdWdoIGFsbCBkcm9wcGFibGVzIGFuZCBjaGVjayB0aGVpciBwb3NpdGlvbnMgYmFzZWQgb24gc3BlY2lmaWMgdG9sZXJhbmNlIG9wdGlvbnMNCgkJJC5lYWNoKCAkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyBkcmFnZ2FibGUub3B0aW9ucy5zY29wZSBdIHx8IFtdLCBmdW5jdGlvbigpIHsNCg0KCQkJaWYgKCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgfHwgdGhpcy5ncmVlZHlDaGlsZCB8fCAhdGhpcy52aXNpYmxlICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJdmFyIHBhcmVudEluc3RhbmNlLCBzY29wZSwgcGFyZW50LA0KCQkJCWludGVyc2VjdHMgPSAkLnVpLmludGVyc2VjdCggZHJhZ2dhYmxlLCB0aGlzLCB0aGlzLm9wdGlvbnMudG9sZXJhbmNlLCBldmVudCApLA0KCQkJCWMgPSAhaW50ZXJzZWN0cyAmJiB0aGlzLmlzb3ZlciA/ICJpc291dCIgOiAoIGludGVyc2VjdHMgJiYgIXRoaXMuaXNvdmVyID8gImlzb3ZlciIgOiBudWxsICk7DQoJCQlpZiAoICFjICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJaWYgKCB0aGlzLm9wdGlvbnMuZ3JlZWR5ICkgew0KCQkJCS8vIGZpbmQgZHJvcHBhYmxlIHBhcmVudHMgd2l0aCBzYW1lIHNjb3BlDQoJCQkJc2NvcGUgPSB0aGlzLm9wdGlvbnMuc2NvcGU7DQoJCQkJcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudHMoICI6ZGF0YSh1aS1kcm9wcGFibGUpIiApLmZpbHRlcihmdW5jdGlvbigpIHsNCgkJCQkJcmV0dXJuICQoIHRoaXMgKS5kcm9wcGFibGUoICJpbnN0YW5jZSIgKS5vcHRpb25zLnNjb3BlID09PSBzY29wZTsNCgkJCQl9KTsNCg0KCQkJCWlmICggcGFyZW50Lmxlbmd0aCApIHsNCgkJCQkJcGFyZW50SW5zdGFuY2UgPSAkKCBwYXJlbnRbIDAgXSApLmRyb3BwYWJsZSggImluc3RhbmNlIiApOw0KCQkJCQlwYXJlbnRJbnN0YW5jZS5ncmVlZHlDaGlsZCA9ICggYyA9PT0gImlzb3ZlciIgKTsNCgkJCQl9DQoJCQl9DQoNCgkJCS8vIHdlIGp1c3QgbW92ZWQgaW50byBhIGdyZWVkeSBjaGlsZA0KCQkJaWYgKCBwYXJlbnRJbnN0YW5jZSAmJiBjID09PSAiaXNvdmVyIiApIHsNCgkJCQlwYXJlbnRJbnN0YW5jZS5pc292ZXIgPSBmYWxzZTsNCgkJCQlwYXJlbnRJbnN0YW5jZS5pc291dCA9IHRydWU7DQoJCQkJcGFyZW50SW5zdGFuY2UuX291dC5jYWxsKCBwYXJlbnRJbnN0YW5jZSwgZXZlbnQgKTsNCgkJCX0NCg0KCQkJdGhpc1sgYyBdID0gdHJ1ZTsNCgkJCXRoaXNbYyA9PT0gImlzb3V0IiA/ICJpc292ZXIiIDogImlzb3V0Il0gPSBmYWxzZTsNCgkJCXRoaXNbYyA9PT0gImlzb3ZlciIgPyAiX292ZXIiIDogIl9vdXQiXS5jYWxsKCB0aGlzLCBldmVudCApOw0KDQoJCQkvLyB3ZSBqdXN0IG1vdmVkIG91dCBvZiBhIGdyZWVkeSBjaGlsZA0KCQkJaWYgKCBwYXJlbnRJbnN0YW5jZSAmJiBjID09PSAiaXNvdXQiICkgew0KCQkJCXBhcmVudEluc3RhbmNlLmlzb3V0ID0gZmFsc2U7DQoJCQkJcGFyZW50SW5zdGFuY2UuaXNvdmVyID0gdHJ1ZTsNCgkJCQlwYXJlbnRJbnN0YW5jZS5fb3Zlci5jYWxsKCBwYXJlbnRJbnN0YW5jZSwgZXZlbnQgKTsNCgkJCX0NCgkJfSk7DQoNCgl9LA0KCWRyYWdTdG9wOiBmdW5jdGlvbiggZHJhZ2dhYmxlLCBldmVudCApIHsNCgkJZHJhZ2dhYmxlLmVsZW1lbnQucGFyZW50c1VudGlsKCAiYm9keSIgKS51bmJpbmQoICJzY3JvbGwuZHJvcHBhYmxlIiApOw0KCQkvLyBDYWxsIHByZXBhcmVPZmZzZXRzIG9uZSBmaW5hbCB0aW1lIHNpbmNlIElFIGRvZXMgbm90IGZpcmUgcmV0dXJuIHNjcm9sbCBldmVudHMgd2hlbiBvdmVyZmxvdyB3YXMgY2F1c2VkIGJ5IGRyYWcgKHNlZSAjNTAwMykNCgkJaWYgKCAhZHJhZ2dhYmxlLm9wdGlvbnMucmVmcmVzaFBvc2l0aW9ucyApIHsNCgkJCSQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKCBkcmFnZ2FibGUsIGV2ZW50ICk7DQoJCX0NCgl9DQp9Ow0KDQp2YXIgZHJvcHBhYmxlID0gJC51aS5kcm9wcGFibGU7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vY2F0ZWdvcnkvZWZmZWN0cy1jb3JlLw0KICovDQoNCg0KdmFyIGRhdGFTcGFjZSA9ICJ1aS1lZmZlY3RzLSIsDQoNCgkvLyBDcmVhdGUgYSBsb2NhbCBqUXVlcnkgYmVjYXVzZSBqUXVlcnkgQ29sb3IgcmVsaWVzIG9uIGl0IGFuZCB0aGUNCgkvLyBnbG9iYWwgbWF5IG5vdCBleGlzdCB3aXRoIEFNRCBhbmQgYSBjdXN0b20gYnVpbGQgKCMxMDE5OSkNCglqUXVlcnkgPSAkOw0KDQokLmVmZmVjdHMgPSB7DQoJZWZmZWN0OiB7fQ0KfTsNCg0KLyohDQogKiBqUXVlcnkgQ29sb3IgQW5pbWF0aW9ucyB2Mi4xLjINCiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LWNvbG9yDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIERhdGU6IFdlZCBKYW4gMTYgMDg6NDc6MDkgMjAxMyAtMDYwMA0KICovDQooZnVuY3Rpb24oIGpRdWVyeSwgdW5kZWZpbmVkICkgew0KDQoJdmFyIHN0ZXBIb29rcyA9ICJiYWNrZ3JvdW5kQ29sb3IgYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyTGVmdENvbG9yIGJvcmRlclJpZ2h0Q29sb3IgYm9yZGVyVG9wQ29sb3IgY29sb3IgY29sdW1uUnVsZUNvbG9yIG91dGxpbmVDb2xvciB0ZXh0RGVjb3JhdGlvbkNvbG9yIHRleHRFbXBoYXNpc0NvbG9yIiwNCg0KCS8vIHBsdXNlcXVhbHMgdGVzdCBmb3IgKz0gMTAwIC09IDEwMA0KCXJwbHVzZXF1YWxzID0gL14oW1wtK10pPVxzKihcZCtcLj9cZCopLywNCgkvLyBhIHNldCBvZiBSRSdzIHRoYXQgY2FuIG1hdGNoIHN0cmluZ3MgYW5kIGdlbmVyYXRlIGNvbG9yIHR1cGxlcy4NCglzdHJpbmdQYXJzZXJzID0gWyB7DQoJCQlyZTogL3JnYmE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLywNCgkJCXBhcnNlOiBmdW5jdGlvbiggZXhlY1Jlc3VsdCApIHsNCgkJCQlyZXR1cm4gWw0KCQkJCQlleGVjUmVzdWx0WyAxIF0sDQoJCQkJCWV4ZWNSZXN1bHRbIDIgXSwNCgkJCQkJZXhlY1Jlc3VsdFsgMyBdLA0KCQkJCQlleGVjUmVzdWx0WyA0IF0NCgkJCQldOw0KCQkJfQ0KCQl9LCB7DQoJCQlyZTogL3JnYmE/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLywNCgkJCXBhcnNlOiBmdW5jdGlvbiggZXhlY1Jlc3VsdCApIHsNCgkJCQlyZXR1cm4gWw0KCQkJCQlleGVjUmVzdWx0WyAxIF0gKiAyLjU1LA0KCQkJCQlleGVjUmVzdWx0WyAyIF0gKiAyLjU1LA0KCQkJCQlleGVjUmVzdWx0WyAzIF0gKiAyLjU1LA0KCQkJCQlleGVjUmVzdWx0WyA0IF0NCgkJCQldOw0KCQkJfQ0KCQl9LCB7DQoJCQkvLyB0aGlzIHJlZ2V4IGlnbm9yZXMgQS1GIGJlY2F1c2UgaXQncyBjb21wYXJlZCBhZ2FpbnN0IGFuIGFscmVhZHkgbG93ZXJjYXNlZCBzdHJpbmcNCgkJCXJlOiAvIyhbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KS8sDQoJCQlwYXJzZTogZnVuY3Rpb24oIGV4ZWNSZXN1bHQgKSB7DQoJCQkJcmV0dXJuIFsNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDEgXSwgMTYgKSwNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDIgXSwgMTYgKSwNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDMgXSwgMTYgKQ0KCQkJCV07DQoJCQl9DQoJCX0sIHsNCgkJCS8vIHRoaXMgcmVnZXggaWdub3JlcyBBLUYgYmVjYXVzZSBpdCdzIGNvbXBhcmVkIGFnYWluc3QgYW4gYWxyZWFkeSBsb3dlcmNhc2VkIHN0cmluZw0KCQkJcmU6IC8jKFthLWYwLTldKShbYS1mMC05XSkoW2EtZjAtOV0pLywNCgkJCXBhcnNlOiBmdW5jdGlvbiggZXhlY1Jlc3VsdCApIHsNCgkJCQlyZXR1cm4gWw0KCQkJCQlwYXJzZUludCggZXhlY1Jlc3VsdFsgMSBdICsgZXhlY1Jlc3VsdFsgMSBdLCAxNiApLA0KCQkJCQlwYXJzZUludCggZXhlY1Jlc3VsdFsgMiBdICsgZXhlY1Jlc3VsdFsgMiBdLCAxNiApLA0KCQkJCQlwYXJzZUludCggZXhlY1Jlc3VsdFsgMyBdICsgZXhlY1Jlc3VsdFsgMyBdLCAxNiApDQoJCQkJXTsNCgkJCX0NCgkJfSwgew0KCQkJcmU6IC9oc2xhP1woXHMqKFxkKyg/OlwuXGQrKT8pXHMqLFxzKihcZCsoPzpcLlxkKyk/KVwlXHMqLFxzKihcZCsoPzpcLlxkKyk/KVwlXHMqKD86LFxzKihcZD8oPzpcLlxkKyk/KVxzKik/XCkvLA0KCQkJc3BhY2U6ICJoc2xhIiwNCgkJCXBhcnNlOiBmdW5jdGlvbiggZXhlY1Jlc3VsdCApIHsNCgkJCQlyZXR1cm4gWw0KCQkJCQlleGVjUmVzdWx0WyAxIF0sDQoJCQkJCWV4ZWNSZXN1bHRbIDIgXSAvIDEwMCwNCgkJCQkJZXhlY1Jlc3VsdFsgMyBdIC8gMTAwLA0KCQkJCQlleGVjUmVzdWx0WyA0IF0NCgkJCQldOw0KCQkJfQ0KCQl9IF0sDQoNCgkvLyBqUXVlcnkuQ29sb3IoICkNCgljb2xvciA9IGpRdWVyeS5Db2xvciA9IGZ1bmN0aW9uKCBjb2xvciwgZ3JlZW4sIGJsdWUsIGFscGhhICkgew0KCQlyZXR1cm4gbmV3IGpRdWVyeS5Db2xvci5mbi5wYXJzZSggY29sb3IsIGdyZWVuLCBibHVlLCBhbHBoYSApOw0KCX0sDQoJc3BhY2VzID0gew0KCQlyZ2JhOiB7DQoJCQlwcm9wczogew0KCQkJCXJlZDogew0KCQkJCQlpZHg6IDAsDQoJCQkJCXR5cGU6ICJieXRlIg0KCQkJCX0sDQoJCQkJZ3JlZW46IHsNCgkJCQkJaWR4OiAxLA0KCQkJCQl0eXBlOiAiYnl0ZSINCgkJCQl9LA0KCQkJCWJsdWU6IHsNCgkJCQkJaWR4OiAyLA0KCQkJCQl0eXBlOiAiYnl0ZSINCgkJCQl9DQoJCQl9DQoJCX0sDQoNCgkJaHNsYTogew0KCQkJcHJvcHM6IHsNCgkJCQlodWU6IHsNCgkJCQkJaWR4OiAwLA0KCQkJCQl0eXBlOiAiZGVncmVlcyINCgkJCQl9LA0KCQkJCXNhdHVyYXRpb246IHsNCgkJCQkJaWR4OiAxLA0KCQkJCQl0eXBlOiAicGVyY2VudCINCgkJCQl9LA0KCQkJCWxpZ2h0bmVzczogew0KCQkJCQlpZHg6IDIsDQoJCQkJCXR5cGU6ICJwZXJjZW50Ig0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0sDQoJcHJvcFR5cGVzID0gew0KCQkiYnl0ZSI6IHsNCgkJCWZsb29yOiB0cnVlLA0KCQkJbWF4OiAyNTUNCgkJfSwNCgkJInBlcmNlbnQiOiB7DQoJCQltYXg6IDENCgkJfSwNCgkJImRlZ3JlZXMiOiB7DQoJCQltb2Q6IDM2MCwNCgkJCWZsb29yOiB0cnVlDQoJCX0NCgl9LA0KCXN1cHBvcnQgPSBjb2xvci5zdXBwb3J0ID0ge30sDQoNCgkvLyBlbGVtZW50IGZvciBzdXBwb3J0IHRlc3RzDQoJc3VwcG9ydEVsZW0gPSBqUXVlcnkoICI8cD4iIClbIDAgXSwNCg0KCS8vIGNvbG9ycyA9IGpRdWVyeS5Db2xvci5uYW1lcw0KCWNvbG9ycywNCg0KCS8vIGxvY2FsIGFsaWFzZXMgb2YgZnVuY3Rpb25zIGNhbGxlZCBvZnRlbg0KCWVhY2ggPSBqUXVlcnkuZWFjaDsNCg0KLy8gZGV0ZXJtaW5lIHJnYmEgc3VwcG9ydCBpbW1lZGlhdGVseQ0Kc3VwcG9ydEVsZW0uc3R5bGUuY3NzVGV4dCA9ICJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIjsNCnN1cHBvcnQucmdiYSA9IHN1cHBvcnRFbGVtLnN0eWxlLmJhY2tncm91bmRDb2xvci5pbmRleE9mKCAicmdiYSIgKSA+IC0xOw0KDQovLyBkZWZpbmUgY2FjaGUgbmFtZSBhbmQgYWxwaGEgcHJvcGVydGllcw0KLy8gZm9yIHJnYmEgYW5kIGhzbGEgc3BhY2VzDQplYWNoKCBzcGFjZXMsIGZ1bmN0aW9uKCBzcGFjZU5hbWUsIHNwYWNlICkgew0KCXNwYWNlLmNhY2hlID0gIl8iICsgc3BhY2VOYW1lOw0KCXNwYWNlLnByb3BzLmFscGhhID0gew0KCQlpZHg6IDMsDQoJCXR5cGU6ICJwZXJjZW50IiwNCgkJZGVmOiAxDQoJfTsNCn0pOw0KDQpmdW5jdGlvbiBjbGFtcCggdmFsdWUsIHByb3AsIGFsbG93RW1wdHkgKSB7DQoJdmFyIHR5cGUgPSBwcm9wVHlwZXNbIHByb3AudHlwZSBdIHx8IHt9Ow0KDQoJaWYgKCB2YWx1ZSA9PSBudWxsICkgew0KCQlyZXR1cm4gKGFsbG93RW1wdHkgfHwgIXByb3AuZGVmKSA/IG51bGwgOiBwcm9wLmRlZjsNCgl9DQoNCgkvLyB+fiBpcyBhbiBzaG9ydCB3YXkgb2YgZG9pbmcgZmxvb3IgZm9yIHBvc2l0aXZlIG51bWJlcnMNCgl2YWx1ZSA9IHR5cGUuZmxvb3IgPyB+fnZhbHVlIDogcGFyc2VGbG9hdCggdmFsdWUgKTsNCg0KCS8vIElFIHdpbGwgcGFzcyBpbiBlbXB0eSBzdHJpbmdzIGFzIHZhbHVlIGZvciBhbHBoYSwNCgkvLyB3aGljaCB3aWxsIGhpdCB0aGlzIGNhc2UNCglpZiAoIGlzTmFOKCB2YWx1ZSApICkgew0KCQlyZXR1cm4gcHJvcC5kZWY7DQoJfQ0KDQoJaWYgKCB0eXBlLm1vZCApIHsNCgkJLy8gd2UgYWRkIG1vZCBiZWZvcmUgbW9kZGluZyB0byBtYWtlIHN1cmUgdGhhdCBuZWdhdGl2ZXMgdmFsdWVzDQoJCS8vIGdldCBjb252ZXJ0ZWQgcHJvcGVybHk6IC0xMCAtPiAzNTANCgkJcmV0dXJuICh2YWx1ZSArIHR5cGUubW9kKSAlIHR5cGUubW9kOw0KCX0NCg0KCS8vIGZvciBub3cgYWxsIHByb3BlcnR5IHR5cGVzIHdpdGhvdXQgbW9kIGhhdmUgbWluIGFuZCBtYXgNCglyZXR1cm4gMCA+IHZhbHVlID8gMCA6IHR5cGUubWF4IDwgdmFsdWUgPyB0eXBlLm1heCA6IHZhbHVlOw0KfQ0KDQpmdW5jdGlvbiBzdHJpbmdQYXJzZSggc3RyaW5nICkgew0KCXZhciBpbnN0ID0gY29sb3IoKSwNCgkJcmdiYSA9IGluc3QuX3JnYmEgPSBbXTsNCg0KCXN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpOw0KDQoJZWFjaCggc3RyaW5nUGFyc2VycywgZnVuY3Rpb24oIGksIHBhcnNlciApIHsNCgkJdmFyIHBhcnNlZCwNCgkJCW1hdGNoID0gcGFyc2VyLnJlLmV4ZWMoIHN0cmluZyApLA0KCQkJdmFsdWVzID0gbWF0Y2ggJiYgcGFyc2VyLnBhcnNlKCBtYXRjaCApLA0KCQkJc3BhY2VOYW1lID0gcGFyc2VyLnNwYWNlIHx8ICJyZ2JhIjsNCg0KCQlpZiAoIHZhbHVlcyApIHsNCgkJCXBhcnNlZCA9IGluc3RbIHNwYWNlTmFtZSBdKCB2YWx1ZXMgKTsNCg0KCQkJLy8gaWYgdGhpcyB3YXMgYW4gcmdiYSBwYXJzZSB0aGUgYXNzaWdubWVudCBtaWdodCBoYXBwZW4gdHdpY2UNCgkJCS8vIG9oIHdlbGwuLi4uDQoJCQlpbnN0WyBzcGFjZXNbIHNwYWNlTmFtZSBdLmNhY2hlIF0gPSBwYXJzZWRbIHNwYWNlc1sgc3BhY2VOYW1lIF0uY2FjaGUgXTsNCgkJCXJnYmEgPSBpbnN0Ll9yZ2JhID0gcGFyc2VkLl9yZ2JhOw0KDQoJCQkvLyBleGl0IGVhY2goIHN0cmluZ1BhcnNlcnMgKSBoZXJlIGJlY2F1c2Ugd2UgbWF0Y2hlZA0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJfSk7DQoNCgkvLyBGb3VuZCBhIHN0cmluZ1BhcnNlciB0aGF0IGhhbmRsZWQgaXQNCglpZiAoIHJnYmEubGVuZ3RoICkgew0KDQoJCS8vIGlmIHRoaXMgY2FtZSBmcm9tIGEgcGFyc2VkIHN0cmluZywgZm9yY2UgInRyYW5zcGFyZW50IiB3aGVuIGFscGhhIGlzIDANCgkJLy8gY2hyb21lLCAoYW5kIG1heWJlIG90aGVycykgcmV0dXJuICJ0cmFuc3BhcmVudCIgYXMgcmdiYSgwLDAsMCwwKQ0KCQlpZiAoIHJnYmEuam9pbigpID09PSAiMCwwLDAsMCIgKSB7DQoJCQlqUXVlcnkuZXh0ZW5kKCByZ2JhLCBjb2xvcnMudHJhbnNwYXJlbnQgKTsNCgkJfQ0KCQlyZXR1cm4gaW5zdDsNCgl9DQoNCgkvLyBuYW1lZCBjb2xvcnMNCglyZXR1cm4gY29sb3JzWyBzdHJpbmcgXTsNCn0NCg0KY29sb3IuZm4gPSBqUXVlcnkuZXh0ZW5kKCBjb2xvci5wcm90b3R5cGUsIHsNCglwYXJzZTogZnVuY3Rpb24oIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhICkgew0KCQlpZiAoIHJlZCA9PT0gdW5kZWZpbmVkICkgew0KCQkJdGhpcy5fcmdiYSA9IFsgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCBdOw0KCQkJcmV0dXJuIHRoaXM7DQoJCX0NCgkJaWYgKCByZWQuanF1ZXJ5IHx8IHJlZC5ub2RlVHlwZSApIHsNCgkJCXJlZCA9IGpRdWVyeSggcmVkICkuY3NzKCBncmVlbiApOw0KCQkJZ3JlZW4gPSB1bmRlZmluZWQ7DQoJCX0NCg0KCQl2YXIgaW5zdCA9IHRoaXMsDQoJCQl0eXBlID0galF1ZXJ5LnR5cGUoIHJlZCApLA0KCQkJcmdiYSA9IHRoaXMuX3JnYmEgPSBbXTsNCg0KCQkvLyBtb3JlIHRoYW4gMSBhcmd1bWVudCBzcGVjaWZpZWQgLSBhc3N1bWUgKCByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSApDQoJCWlmICggZ3JlZW4gIT09IHVuZGVmaW5lZCApIHsNCgkJCXJlZCA9IFsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgXTsNCgkJCXR5cGUgPSAiYXJyYXkiOw0KCQl9DQoNCgkJaWYgKCB0eXBlID09PSAic3RyaW5nIiApIHsNCgkJCXJldHVybiB0aGlzLnBhcnNlKCBzdHJpbmdQYXJzZSggcmVkICkgfHwgY29sb3JzLl9kZWZhdWx0ICk7DQoJCX0NCg0KCQlpZiAoIHR5cGUgPT09ICJhcnJheSIgKSB7DQoJCQllYWNoKCBzcGFjZXMucmdiYS5wcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCgkJCQlyZ2JhWyBwcm9wLmlkeCBdID0gY2xhbXAoIHJlZFsgcHJvcC5pZHggXSwgcHJvcCApOw0KCQkJfSk7DQoJCQlyZXR1cm4gdGhpczsNCgkJfQ0KDQoJCWlmICggdHlwZSA9PT0gIm9iamVjdCIgKSB7DQoJCQlpZiAoIHJlZCBpbnN0YW5jZW9mIGNvbG9yICkgew0KCQkJCWVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJCQkJCWlmICggcmVkWyBzcGFjZS5jYWNoZSBdICkgew0KCQkJCQkJaW5zdFsgc3BhY2UuY2FjaGUgXSA9IHJlZFsgc3BhY2UuY2FjaGUgXS5zbGljZSgpOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9IGVsc2Ugew0KCQkJCWVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJCQkJCXZhciBjYWNoZSA9IHNwYWNlLmNhY2hlOw0KCQkJCQllYWNoKCBzcGFjZS5wcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCg0KCQkJCQkJLy8gaWYgdGhlIGNhY2hlIGRvZXNuJ3QgZXhpc3QsIGFuZCB3ZSBrbm93IGhvdyB0byBjb252ZXJ0DQoJCQkJCQlpZiAoICFpbnN0WyBjYWNoZSBdICYmIHNwYWNlLnRvICkgew0KDQoJCQkJCQkJLy8gaWYgdGhlIHZhbHVlIHdhcyBudWxsLCB3ZSBkb24ndCBuZWVkIHRvIGNvcHkgaXQNCgkJCQkJCQkvLyBpZiB0aGUga2V5IHdhcyBhbHBoYSwgd2UgZG9uJ3QgbmVlZCB0byBjb3B5IGl0IGVpdGhlcg0KCQkJCQkJCWlmICgga2V5ID09PSAiYWxwaGEiIHx8IHJlZFsga2V5IF0gPT0gbnVsbCApIHsNCgkJCQkJCQkJcmV0dXJuOw0KCQkJCQkJCX0NCgkJCQkJCQlpbnN0WyBjYWNoZSBdID0gc3BhY2UudG8oIGluc3QuX3JnYmEgKTsNCgkJCQkJCX0NCg0KCQkJCQkJLy8gdGhpcyBpcyB0aGUgb25seSBjYXNlIHdoZXJlIHdlIGFsbG93IG51bGxzIGZvciBBTEwgcHJvcGVydGllcy4NCgkJCQkJCS8vIGNhbGwgY2xhbXAgd2l0aCBhbHdheXNBbGxvd0VtcHR5DQoJCQkJCQlpbnN0WyBjYWNoZSBdWyBwcm9wLmlkeCBdID0gY2xhbXAoIHJlZFsga2V5IF0sIHByb3AsIHRydWUgKTsNCgkJCQkJfSk7DQoNCgkJCQkJLy8gZXZlcnl0aGluZyBkZWZpbmVkIGJ1dCBhbHBoYT8NCgkJCQkJaWYgKCBpbnN0WyBjYWNoZSBdICYmIGpRdWVyeS5pbkFycmF5KCBudWxsLCBpbnN0WyBjYWNoZSBdLnNsaWNlKCAwLCAzICkgKSA8IDAgKSB7DQoJCQkJCQkvLyB1c2UgdGhlIGRlZmF1bHQgb2YgMQ0KCQkJCQkJaW5zdFsgY2FjaGUgXVsgMyBdID0gMTsNCgkJCQkJCWlmICggc3BhY2UuZnJvbSApIHsNCgkJCQkJCQlpbnN0Ll9yZ2JhID0gc3BhY2UuZnJvbSggaW5zdFsgY2FjaGUgXSApOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9DQoJCQlyZXR1cm4gdGhpczsNCgkJfQ0KCX0sDQoJaXM6IGZ1bmN0aW9uKCBjb21wYXJlICkgew0KCQl2YXIgaXMgPSBjb2xvciggY29tcGFyZSApLA0KCQkJc2FtZSA9IHRydWUsDQoJCQlpbnN0ID0gdGhpczsNCg0KCQllYWNoKCBzcGFjZXMsIGZ1bmN0aW9uKCBfLCBzcGFjZSApIHsNCgkJCXZhciBsb2NhbENhY2hlLA0KCQkJCWlzQ2FjaGUgPSBpc1sgc3BhY2UuY2FjaGUgXTsNCgkJCWlmIChpc0NhY2hlKSB7DQoJCQkJbG9jYWxDYWNoZSA9IGluc3RbIHNwYWNlLmNhY2hlIF0gfHwgc3BhY2UudG8gJiYgc3BhY2UudG8oIGluc3QuX3JnYmEgKSB8fCBbXTsNCgkJCQllYWNoKCBzcGFjZS5wcm9wcywgZnVuY3Rpb24oIF8sIHByb3AgKSB7DQoJCQkJCWlmICggaXNDYWNoZVsgcHJvcC5pZHggXSAhPSBudWxsICkgew0KCQkJCQkJc2FtZSA9ICggaXNDYWNoZVsgcHJvcC5pZHggXSA9PT0gbG9jYWxDYWNoZVsgcHJvcC5pZHggXSApOw0KCQkJCQkJcmV0dXJuIHNhbWU7DQoJCQkJCX0NCgkJCQl9KTsNCgkJCX0NCgkJCXJldHVybiBzYW1lOw0KCQl9KTsNCgkJcmV0dXJuIHNhbWU7DQoJfSwNCglfc3BhY2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdXNlZCA9IFtdLA0KCQkJaW5zdCA9IHRoaXM7DQoJCWVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJCQlpZiAoIGluc3RbIHNwYWNlLmNhY2hlIF0gKSB7DQoJCQkJdXNlZC5wdXNoKCBzcGFjZU5hbWUgKTsNCgkJCX0NCgkJfSk7DQoJCXJldHVybiB1c2VkLnBvcCgpOw0KCX0sDQoJdHJhbnNpdGlvbjogZnVuY3Rpb24oIG90aGVyLCBkaXN0YW5jZSApIHsNCgkJdmFyIGVuZCA9IGNvbG9yKCBvdGhlciApLA0KCQkJc3BhY2VOYW1lID0gZW5kLl9zcGFjZSgpLA0KCQkJc3BhY2UgPSBzcGFjZXNbIHNwYWNlTmFtZSBdLA0KCQkJc3RhcnRDb2xvciA9IHRoaXMuYWxwaGEoKSA9PT0gMCA/IGNvbG9yKCAidHJhbnNwYXJlbnQiICkgOiB0aGlzLA0KCQkJc3RhcnQgPSBzdGFydENvbG9yWyBzcGFjZS5jYWNoZSBdIHx8IHNwYWNlLnRvKCBzdGFydENvbG9yLl9yZ2JhICksDQoJCQlyZXN1bHQgPSBzdGFydC5zbGljZSgpOw0KDQoJCWVuZCA9IGVuZFsgc3BhY2UuY2FjaGUgXTsNCgkJZWFjaCggc3BhY2UucHJvcHMsIGZ1bmN0aW9uKCBrZXksIHByb3AgKSB7DQoJCQl2YXIgaW5kZXggPSBwcm9wLmlkeCwNCgkJCQlzdGFydFZhbHVlID0gc3RhcnRbIGluZGV4IF0sDQoJCQkJZW5kVmFsdWUgPSBlbmRbIGluZGV4IF0sDQoJCQkJdHlwZSA9IHByb3BUeXBlc1sgcHJvcC50eXBlIF0gfHwge307DQoNCgkJCS8vIGlmIG51bGwsIGRvbid0IG92ZXJyaWRlIHN0YXJ0IHZhbHVlDQoJCQlpZiAoIGVuZFZhbHVlID09PSBudWxsICkgew0KCQkJCXJldHVybjsNCgkJCX0NCgkJCS8vIGlmIG51bGwgLSB1c2UgZW5kDQoJCQlpZiAoIHN0YXJ0VmFsdWUgPT09IG51bGwgKSB7DQoJCQkJcmVzdWx0WyBpbmRleCBdID0gZW5kVmFsdWU7DQoJCQl9IGVsc2Ugew0KCQkJCWlmICggdHlwZS5tb2QgKSB7DQoJCQkJCWlmICggZW5kVmFsdWUgLSBzdGFydFZhbHVlID4gdHlwZS5tb2QgLyAyICkgew0KCQkJCQkJc3RhcnRWYWx1ZSArPSB0eXBlLm1vZDsNCgkJCQkJfSBlbHNlIGlmICggc3RhcnRWYWx1ZSAtIGVuZFZhbHVlID4gdHlwZS5tb2QgLyAyICkgew0KCQkJCQkJc3RhcnRWYWx1ZSAtPSB0eXBlLm1vZDsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlyZXN1bHRbIGluZGV4IF0gPSBjbGFtcCggKCBlbmRWYWx1ZSAtIHN0YXJ0VmFsdWUgKSAqIGRpc3RhbmNlICsgc3RhcnRWYWx1ZSwgcHJvcCApOw0KCQkJfQ0KCQl9KTsNCgkJcmV0dXJuIHRoaXNbIHNwYWNlTmFtZSBdKCByZXN1bHQgKTsNCgl9LA0KCWJsZW5kOiBmdW5jdGlvbiggb3BhcXVlICkgew0KCQkvLyBpZiB3ZSBhcmUgYWxyZWFkeSBvcGFxdWUgLSByZXR1cm4gb3Vyc2VsZg0KCQlpZiAoIHRoaXMuX3JnYmFbIDMgXSA9PT0gMSApIHsNCgkJCXJldHVybiB0aGlzOw0KCQl9DQoNCgkJdmFyIHJnYiA9IHRoaXMuX3JnYmEuc2xpY2UoKSwNCgkJCWEgPSByZ2IucG9wKCksDQoJCQlibGVuZCA9IGNvbG9yKCBvcGFxdWUgKS5fcmdiYTsNCg0KCQlyZXR1cm4gY29sb3IoIGpRdWVyeS5tYXAoIHJnYiwgZnVuY3Rpb24oIHYsIGkgKSB7DQoJCQlyZXR1cm4gKCAxIC0gYSApICogYmxlbmRbIGkgXSArIGEgKiB2Ow0KCQl9KSk7DQoJfSwNCgl0b1JnYmFTdHJpbmc6IGZ1bmN0aW9uKCkgew0KCQl2YXIgcHJlZml4ID0gInJnYmEoIiwNCgkJCXJnYmEgPSBqUXVlcnkubWFwKCB0aGlzLl9yZ2JhLCBmdW5jdGlvbiggdiwgaSApIHsNCgkJCQlyZXR1cm4gdiA9PSBudWxsID8gKCBpID4gMiA/IDEgOiAwICkgOiB2Ow0KCQkJfSk7DQoNCgkJaWYgKCByZ2JhWyAzIF0gPT09IDEgKSB7DQoJCQlyZ2JhLnBvcCgpOw0KCQkJcHJlZml4ID0gInJnYigiOw0KCQl9DQoNCgkJcmV0dXJuIHByZWZpeCArIHJnYmEuam9pbigpICsgIikiOw0KCX0sDQoJdG9Ic2xhU3RyaW5nOiBmdW5jdGlvbigpIHsNCgkJdmFyIHByZWZpeCA9ICJoc2xhKCIsDQoJCQloc2xhID0galF1ZXJ5Lm1hcCggdGhpcy5oc2xhKCksIGZ1bmN0aW9uKCB2LCBpICkgew0KCQkJCWlmICggdiA9PSBudWxsICkgew0KCQkJCQl2ID0gaSA+IDIgPyAxIDogMDsNCgkJCQl9DQoNCgkJCQkvLyBjYXRjaCAxIGFuZCAyDQoJCQkJaWYgKCBpICYmIGkgPCAzICkgew0KCQkJCQl2ID0gTWF0aC5yb3VuZCggdiAqIDEwMCApICsgIiUiOw0KCQkJCX0NCgkJCQlyZXR1cm4gdjsNCgkJCX0pOw0KDQoJCWlmICggaHNsYVsgMyBdID09PSAxICkgew0KCQkJaHNsYS5wb3AoKTsNCgkJCXByZWZpeCA9ICJoc2woIjsNCgkJfQ0KCQlyZXR1cm4gcHJlZml4ICsgaHNsYS5qb2luKCkgKyAiKSI7DQoJfSwNCgl0b0hleFN0cmluZzogZnVuY3Rpb24oIGluY2x1ZGVBbHBoYSApIHsNCgkJdmFyIHJnYmEgPSB0aGlzLl9yZ2JhLnNsaWNlKCksDQoJCQlhbHBoYSA9IHJnYmEucG9wKCk7DQoNCgkJaWYgKCBpbmNsdWRlQWxwaGEgKSB7DQoJCQlyZ2JhLnB1c2goIH5+KCBhbHBoYSAqIDI1NSApICk7DQoJCX0NCg0KCQlyZXR1cm4gIiMiICsgalF1ZXJ5Lm1hcCggcmdiYSwgZnVuY3Rpb24oIHYgKSB7DQoNCgkJCS8vIGRlZmF1bHQgdG8gMCB3aGVuIG51bGxzIGV4aXN0DQoJCQl2ID0gKCB2IHx8IDAgKS50b1N0cmluZyggMTYgKTsNCgkJCXJldHVybiB2Lmxlbmd0aCA9PT0gMSA/ICIwIiArIHYgOiB2Ow0KCQl9KS5qb2luKCIiKTsNCgl9LA0KCXRvU3RyaW5nOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuX3JnYmFbIDMgXSA9PT0gMCA/ICJ0cmFuc3BhcmVudCIgOiB0aGlzLnRvUmdiYVN0cmluZygpOw0KCX0NCn0pOw0KY29sb3IuZm4ucGFyc2UucHJvdG90eXBlID0gY29sb3IuZm47DQoNCi8vIGhzbGEgY29udmVyc2lvbnMgYWRhcHRlZCBmcm9tOg0KLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9tYWFzaGFhY2svc291cmNlL2Jyb3dzZS9wYWNrYWdlcy9ncmFwaGljcy90cnVuay9zcmMvZ3JhcGhpY3MvY29sb3JzL0hVRTJSR0IuYXM/cj01MDIxDQoNCmZ1bmN0aW9uIGh1ZTJyZ2IoIHAsIHEsIGggKSB7DQoJaCA9ICggaCArIDEgKSAlIDE7DQoJaWYgKCBoICogNiA8IDEgKSB7DQoJCXJldHVybiBwICsgKCBxIC0gcCApICogaCAqIDY7DQoJfQ0KCWlmICggaCAqIDIgPCAxKSB7DQoJCXJldHVybiBxOw0KCX0NCglpZiAoIGggKiAzIDwgMiApIHsNCgkJcmV0dXJuIHAgKyAoIHEgLSBwICkgKiAoICggMiAvIDMgKSAtIGggKSAqIDY7DQoJfQ0KCXJldHVybiBwOw0KfQ0KDQpzcGFjZXMuaHNsYS50byA9IGZ1bmN0aW9uKCByZ2JhICkgew0KCWlmICggcmdiYVsgMCBdID09IG51bGwgfHwgcmdiYVsgMSBdID09IG51bGwgfHwgcmdiYVsgMiBdID09IG51bGwgKSB7DQoJCXJldHVybiBbIG51bGwsIG51bGwsIG51bGwsIHJnYmFbIDMgXSBdOw0KCX0NCgl2YXIgciA9IHJnYmFbIDAgXSAvIDI1NSwNCgkJZyA9IHJnYmFbIDEgXSAvIDI1NSwNCgkJYiA9IHJnYmFbIDIgXSAvIDI1NSwNCgkJYSA9IHJnYmFbIDMgXSwNCgkJbWF4ID0gTWF0aC5tYXgoIHIsIGcsIGIgKSwNCgkJbWluID0gTWF0aC5taW4oIHIsIGcsIGIgKSwNCgkJZGlmZiA9IG1heCAtIG1pbiwNCgkJYWRkID0gbWF4ICsgbWluLA0KCQlsID0gYWRkICogMC41LA0KCQloLCBzOw0KDQoJaWYgKCBtaW4gPT09IG1heCApIHsNCgkJaCA9IDA7DQoJfSBlbHNlIGlmICggciA9PT0gbWF4ICkgew0KCQloID0gKCA2MCAqICggZyAtIGIgKSAvIGRpZmYgKSArIDM2MDsNCgl9IGVsc2UgaWYgKCBnID09PSBtYXggKSB7DQoJCWggPSAoIDYwICogKCBiIC0gciApIC8gZGlmZiApICsgMTIwOw0KCX0gZWxzZSB7DQoJCWggPSAoIDYwICogKCByIC0gZyApIC8gZGlmZiApICsgMjQwOw0KCX0NCg0KCS8vIGNocm9tYSAoZGlmZikgPT0gMCBtZWFucyBncmV5c2NhbGUgd2hpY2gsIGJ5IGRlZmluaXRpb24sIHNhdHVyYXRpb24gPSAwJQ0KCS8vIG90aGVyd2lzZSwgc2F0dXJhdGlvbiBpcyBiYXNlZCBvbiB0aGUgcmF0aW8gb2YgY2hyb21hIChkaWZmKSB0byBsaWdodG5lc3MgKGFkZCkNCglpZiAoIGRpZmYgPT09IDAgKSB7DQoJCXMgPSAwOw0KCX0gZWxzZSBpZiAoIGwgPD0gMC41ICkgew0KCQlzID0gZGlmZiAvIGFkZDsNCgl9IGVsc2Ugew0KCQlzID0gZGlmZiAvICggMiAtIGFkZCApOw0KCX0NCglyZXR1cm4gWyBNYXRoLnJvdW5kKGgpICUgMzYwLCBzLCBsLCBhID09IG51bGwgPyAxIDogYSBdOw0KfTsNCg0Kc3BhY2VzLmhzbGEuZnJvbSA9IGZ1bmN0aW9uKCBoc2xhICkgew0KCWlmICggaHNsYVsgMCBdID09IG51bGwgfHwgaHNsYVsgMSBdID09IG51bGwgfHwgaHNsYVsgMiBdID09IG51bGwgKSB7DQoJCXJldHVybiBbIG51bGwsIG51bGwsIG51bGwsIGhzbGFbIDMgXSBdOw0KCX0NCgl2YXIgaCA9IGhzbGFbIDAgXSAvIDM2MCwNCgkJcyA9IGhzbGFbIDEgXSwNCgkJbCA9IGhzbGFbIDIgXSwNCgkJYSA9IGhzbGFbIDMgXSwNCgkJcSA9IGwgPD0gMC41ID8gbCAqICggMSArIHMgKSA6IGwgKyBzIC0gbCAqIHMsDQoJCXAgPSAyICogbCAtIHE7DQoNCglyZXR1cm4gWw0KCQlNYXRoLnJvdW5kKCBodWUycmdiKCBwLCBxLCBoICsgKCAxIC8gMyApICkgKiAyNTUgKSwNCgkJTWF0aC5yb3VuZCggaHVlMnJnYiggcCwgcSwgaCApICogMjU1ICksDQoJCU1hdGgucm91bmQoIGh1ZTJyZ2IoIHAsIHEsIGggLSAoIDEgLyAzICkgKSAqIDI1NSApLA0KCQlhDQoJXTsNCn07DQoNCmVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJdmFyIHByb3BzID0gc3BhY2UucHJvcHMsDQoJCWNhY2hlID0gc3BhY2UuY2FjaGUsDQoJCXRvID0gc3BhY2UudG8sDQoJCWZyb20gPSBzcGFjZS5mcm9tOw0KDQoJLy8gbWFrZXMgcmdiYSgpIGFuZCBoc2xhKCkNCgljb2xvci5mblsgc3BhY2VOYW1lIF0gPSBmdW5jdGlvbiggdmFsdWUgKSB7DQoNCgkJLy8gZ2VuZXJhdGUgYSBjYWNoZSBmb3IgdGhpcyBzcGFjZSBpZiBpdCBkb2Vzbid0IGV4aXN0DQoJCWlmICggdG8gJiYgIXRoaXNbIGNhY2hlIF0gKSB7DQoJCQl0aGlzWyBjYWNoZSBdID0gdG8oIHRoaXMuX3JnYmEgKTsNCgkJfQ0KCQlpZiAoIHZhbHVlID09PSB1bmRlZmluZWQgKSB7DQoJCQlyZXR1cm4gdGhpc1sgY2FjaGUgXS5zbGljZSgpOw0KCQl9DQoNCgkJdmFyIHJldCwNCgkJCXR5cGUgPSBqUXVlcnkudHlwZSggdmFsdWUgKSwNCgkJCWFyciA9ICggdHlwZSA9PT0gImFycmF5IiB8fCB0eXBlID09PSAib2JqZWN0IiApID8gdmFsdWUgOiBhcmd1bWVudHMsDQoJCQlsb2NhbCA9IHRoaXNbIGNhY2hlIF0uc2xpY2UoKTsNCg0KCQllYWNoKCBwcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCgkJCXZhciB2YWwgPSBhcnJbIHR5cGUgPT09ICJvYmplY3QiID8ga2V5IDogcHJvcC5pZHggXTsNCgkJCWlmICggdmFsID09IG51bGwgKSB7DQoJCQkJdmFsID0gbG9jYWxbIHByb3AuaWR4IF07DQoJCQl9DQoJCQlsb2NhbFsgcHJvcC5pZHggXSA9IGNsYW1wKCB2YWwsIHByb3AgKTsNCgkJfSk7DQoNCgkJaWYgKCBmcm9tICkgew0KCQkJcmV0ID0gY29sb3IoIGZyb20oIGxvY2FsICkgKTsNCgkJCXJldFsgY2FjaGUgXSA9IGxvY2FsOw0KCQkJcmV0dXJuIHJldDsNCgkJfSBlbHNlIHsNCgkJCXJldHVybiBjb2xvciggbG9jYWwgKTsNCgkJfQ0KCX07DQoNCgkvLyBtYWtlcyByZWQoKSBncmVlbigpIGJsdWUoKSBhbHBoYSgpIGh1ZSgpIHNhdHVyYXRpb24oKSBsaWdodG5lc3MoKQ0KCWVhY2goIHByb3BzLCBmdW5jdGlvbigga2V5LCBwcm9wICkgew0KCQkvLyBhbHBoYSBpcyBpbmNsdWRlZCBpbiBtb3JlIHRoYW4gb25lIHNwYWNlDQoJCWlmICggY29sb3IuZm5bIGtleSBdICkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCWNvbG9yLmZuWyBrZXkgXSA9IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJCXZhciB2dHlwZSA9IGpRdWVyeS50eXBlKCB2YWx1ZSApLA0KCQkJCWZuID0gKCBrZXkgPT09ICJhbHBoYSIgPyAoIHRoaXMuX2hzbGEgPyAiaHNsYSIgOiAicmdiYSIgKSA6IHNwYWNlTmFtZSApLA0KCQkJCWxvY2FsID0gdGhpc1sgZm4gXSgpLA0KCQkJCWN1ciA9IGxvY2FsWyBwcm9wLmlkeCBdLA0KCQkJCW1hdGNoOw0KDQoJCQlpZiAoIHZ0eXBlID09PSAidW5kZWZpbmVkIiApIHsNCgkJCQlyZXR1cm4gY3VyOw0KCQkJfQ0KDQoJCQlpZiAoIHZ0eXBlID09PSAiZnVuY3Rpb24iICkgew0KCQkJCXZhbHVlID0gdmFsdWUuY2FsbCggdGhpcywgY3VyICk7DQoJCQkJdnR5cGUgPSBqUXVlcnkudHlwZSggdmFsdWUgKTsNCgkJCX0NCgkJCWlmICggdmFsdWUgPT0gbnVsbCAmJiBwcm9wLmVtcHR5ICkgew0KCQkJCXJldHVybiB0aGlzOw0KCQkJfQ0KCQkJaWYgKCB2dHlwZSA9PT0gInN0cmluZyIgKSB7DQoJCQkJbWF0Y2ggPSBycGx1c2VxdWFscy5leGVjKCB2YWx1ZSApOw0KCQkJCWlmICggbWF0Y2ggKSB7DQoJCQkJCXZhbHVlID0gY3VyICsgcGFyc2VGbG9hdCggbWF0Y2hbIDIgXSApICogKCBtYXRjaFsgMSBdID09PSAiKyIgPyAxIDogLTEgKTsNCgkJCQl9DQoJCQl9DQoJCQlsb2NhbFsgcHJvcC5pZHggXSA9IHZhbHVlOw0KCQkJcmV0dXJuIHRoaXNbIGZuIF0oIGxvY2FsICk7DQoJCX07DQoJfSk7DQp9KTsNCg0KLy8gYWRkIGNzc0hvb2sgYW5kIC5meC5zdGVwIGZ1bmN0aW9uIGZvciBlYWNoIG5hbWVkIGhvb2suDQovLyBhY2NlcHQgYSBzcGFjZSBzZXBhcmF0ZWQgc3RyaW5nIG9mIHByb3BlcnRpZXMNCmNvbG9yLmhvb2sgPSBmdW5jdGlvbiggaG9vayApIHsNCgl2YXIgaG9va3MgPSBob29rLnNwbGl0KCAiICIgKTsNCgllYWNoKCBob29rcywgZnVuY3Rpb24oIGksIGhvb2sgKSB7DQoJCWpRdWVyeS5jc3NIb29rc1sgaG9vayBdID0gew0KCQkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7DQoJCQkJdmFyIHBhcnNlZCwgY3VyRWxlbSwNCgkJCQkJYmFja2dyb3VuZENvbG9yID0gIiI7DQoNCgkJCQlpZiAoIHZhbHVlICE9PSAidHJhbnNwYXJlbnQiICYmICggalF1ZXJ5LnR5cGUoIHZhbHVlICkgIT09ICJzdHJpbmciIHx8ICggcGFyc2VkID0gc3RyaW5nUGFyc2UoIHZhbHVlICkgKSApICkgew0KCQkJCQl2YWx1ZSA9IGNvbG9yKCBwYXJzZWQgfHwgdmFsdWUgKTsNCgkJCQkJaWYgKCAhc3VwcG9ydC5yZ2JhICYmIHZhbHVlLl9yZ2JhWyAzIF0gIT09IDEgKSB7DQoJCQkJCQljdXJFbGVtID0gaG9vayA9PT0gImJhY2tncm91bmRDb2xvciIgPyBlbGVtLnBhcmVudE5vZGUgOiBlbGVtOw0KCQkJCQkJd2hpbGUgKA0KCQkJCQkJCShiYWNrZ3JvdW5kQ29sb3IgPT09ICIiIHx8IGJhY2tncm91bmRDb2xvciA9PT0gInRyYW5zcGFyZW50IikgJiYNCgkJCQkJCQljdXJFbGVtICYmIGN1ckVsZW0uc3R5bGUNCgkJCQkJCSkgew0KCQkJCQkJCXRyeSB7DQoJCQkJCQkJCWJhY2tncm91bmRDb2xvciA9IGpRdWVyeS5jc3MoIGN1ckVsZW0sICJiYWNrZ3JvdW5kQ29sb3IiICk7DQoJCQkJCQkJCWN1ckVsZW0gPSBjdXJFbGVtLnBhcmVudE5vZGU7DQoJCQkJCQkJfSBjYXRjaCAoIGUgKSB7DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KDQoJCQkJCQl2YWx1ZSA9IHZhbHVlLmJsZW5kKCBiYWNrZ3JvdW5kQ29sb3IgJiYgYmFja2dyb3VuZENvbG9yICE9PSAidHJhbnNwYXJlbnQiID8NCgkJCQkJCQliYWNrZ3JvdW5kQ29sb3IgOg0KCQkJCQkJCSJfZGVmYXVsdCIgKTsNCgkJCQkJfQ0KDQoJCQkJCXZhbHVlID0gdmFsdWUudG9SZ2JhU3RyaW5nKCk7DQoJCQkJfQ0KCQkJCXRyeSB7DQoJCQkJCWVsZW0uc3R5bGVbIGhvb2sgXSA9IHZhbHVlOw0KCQkJCX0gY2F0Y2ggKCBlICkgew0KCQkJCQkvLyB3cmFwcGVkIHRvIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBlcnJvcnMgb24gImludmFsaWQiIHZhbHVlcyBsaWtlICdhdXRvJyBvciAnaW5oZXJpdCcNCgkJCQl9DQoJCQl9DQoJCX07DQoJCWpRdWVyeS5meC5zdGVwWyBob29rIF0gPSBmdW5jdGlvbiggZnggKSB7DQoJCQlpZiAoICFmeC5jb2xvckluaXQgKSB7DQoJCQkJZnguc3RhcnQgPSBjb2xvciggZnguZWxlbSwgaG9vayApOw0KCQkJCWZ4LmVuZCA9IGNvbG9yKCBmeC5lbmQgKTsNCgkJCQlmeC5jb2xvckluaXQgPSB0cnVlOw0KCQkJfQ0KCQkJalF1ZXJ5LmNzc0hvb2tzWyBob29rIF0uc2V0KCBmeC5lbGVtLCBmeC5zdGFydC50cmFuc2l0aW9uKCBmeC5lbmQsIGZ4LnBvcyApICk7DQoJCX07DQoJfSk7DQoNCn07DQoNCmNvbG9yLmhvb2soIHN0ZXBIb29rcyApOw0KDQpqUXVlcnkuY3NzSG9va3MuYm9yZGVyQ29sb3IgPSB7DQoJZXhwYW5kOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXZhciBleHBhbmRlZCA9IHt9Ow0KDQoJCWVhY2goIFsgIlRvcCIsICJSaWdodCIsICJCb3R0b20iLCAiTGVmdCIgXSwgZnVuY3Rpb24oIGksIHBhcnQgKSB7DQoJCQlleHBhbmRlZFsgImJvcmRlciIgKyBwYXJ0ICsgIkNvbG9yIiBdID0gdmFsdWU7DQoJCX0pOw0KCQlyZXR1cm4gZXhwYW5kZWQ7DQoJfQ0KfTsNCg0KLy8gQmFzaWMgY29sb3IgbmFtZXMgb25seS4NCi8vIFVzYWdlIG9mIGFueSBvZiB0aGUgb3RoZXIgY29sb3IgbmFtZXMgcmVxdWlyZXMgYWRkaW5nIHlvdXJzZWxmIG9yIGluY2x1ZGluZw0KLy8ganF1ZXJ5LmNvbG9yLnN2Zy1uYW1lcy5qcy4NCmNvbG9ycyA9IGpRdWVyeS5Db2xvci5uYW1lcyA9IHsNCgkvLyA0LjEuIEJhc2ljIGNvbG9yIGtleXdvcmRzDQoJYXF1YTogIiMwMGZmZmYiLA0KCWJsYWNrOiAiIzAwMDAwMCIsDQoJYmx1ZTogIiMwMDAwZmYiLA0KCWZ1Y2hzaWE6ICIjZmYwMGZmIiwNCglncmF5OiAiIzgwODA4MCIsDQoJZ3JlZW46ICIjMDA4MDAwIiwNCglsaW1lOiAiIzAwZmYwMCIsDQoJbWFyb29uOiAiIzgwMDAwMCIsDQoJbmF2eTogIiMwMDAwODAiLA0KCW9saXZlOiAiIzgwODAwMCIsDQoJcHVycGxlOiAiIzgwMDA4MCIsDQoJcmVkOiAiI2ZmMDAwMCIsDQoJc2lsdmVyOiAiI2MwYzBjMCIsDQoJdGVhbDogIiMwMDgwODAiLA0KCXdoaXRlOiAiI2ZmZmZmZiIsDQoJeWVsbG93OiAiI2ZmZmYwMCIsDQoNCgkvLyA0LjIuMy4gInRyYW5zcGFyZW50IiBjb2xvciBrZXl3b3JkDQoJdHJhbnNwYXJlbnQ6IFsgbnVsbCwgbnVsbCwgbnVsbCwgMCBdLA0KDQoJX2RlZmF1bHQ6ICIjZmZmZmZmIg0KfTsNCg0KfSkoIGpRdWVyeSApOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBDTEFTUyBBTklNQVRJT05TICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQooZnVuY3Rpb24oKSB7DQoNCnZhciBjbGFzc0FuaW1hdGlvbkFjdGlvbnMgPSBbICJhZGQiLCAicmVtb3ZlIiwgInRvZ2dsZSIgXSwNCglzaG9ydGhhbmRTdHlsZXMgPSB7DQoJCWJvcmRlcjogMSwNCgkJYm9yZGVyQm90dG9tOiAxLA0KCQlib3JkZXJDb2xvcjogMSwNCgkJYm9yZGVyTGVmdDogMSwNCgkJYm9yZGVyUmlnaHQ6IDEsDQoJCWJvcmRlclRvcDogMSwNCgkJYm9yZGVyV2lkdGg6IDEsDQoJCW1hcmdpbjogMSwNCgkJcGFkZGluZzogMQ0KCX07DQoNCiQuZWFjaChbICJib3JkZXJMZWZ0U3R5bGUiLCAiYm9yZGVyUmlnaHRTdHlsZSIsICJib3JkZXJCb3R0b21TdHlsZSIsICJib3JkZXJUb3BTdHlsZSIgXSwgZnVuY3Rpb24oIF8sIHByb3AgKSB7DQoJJC5meC5zdGVwWyBwcm9wIF0gPSBmdW5jdGlvbiggZnggKSB7DQoJCWlmICggZnguZW5kICE9PSAibm9uZSIgJiYgIWZ4LnNldEF0dHIgfHwgZngucG9zID09PSAxICYmICFmeC5zZXRBdHRyICkgew0KCQkJalF1ZXJ5LnN0eWxlKCBmeC5lbGVtLCBwcm9wLCBmeC5lbmQgKTsNCgkJCWZ4LnNldEF0dHIgPSB0cnVlOw0KCQl9DQoJfTsNCn0pOw0KDQpmdW5jdGlvbiBnZXRFbGVtZW50U3R5bGVzKCBlbGVtICkgew0KCXZhciBrZXksIGxlbiwNCgkJc3R5bGUgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPw0KCQkJZWxlbS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSA6DQoJCQllbGVtLmN1cnJlbnRTdHlsZSwNCgkJc3R5bGVzID0ge307DQoNCglpZiAoIHN0eWxlICYmIHN0eWxlLmxlbmd0aCAmJiBzdHlsZVsgMCBdICYmIHN0eWxlWyBzdHlsZVsgMCBdIF0gKSB7DQoJCWxlbiA9IHN0eWxlLmxlbmd0aDsNCgkJd2hpbGUgKCBsZW4tLSApIHsNCgkJCWtleSA9IHN0eWxlWyBsZW4gXTsNCgkJCWlmICggdHlwZW9mIHN0eWxlWyBrZXkgXSA9PT0gInN0cmluZyIgKSB7DQoJCQkJc3R5bGVzWyAkLmNhbWVsQ2FzZSgga2V5ICkgXSA9IHN0eWxlWyBrZXkgXTsNCgkJCX0NCgkJfQ0KCS8vIHN1cHBvcnQ6IE9wZXJhLCBJRSA8OQ0KCX0gZWxzZSB7DQoJCWZvciAoIGtleSBpbiBzdHlsZSApIHsNCgkJCWlmICggdHlwZW9mIHN0eWxlWyBrZXkgXSA9PT0gInN0cmluZyIgKSB7DQoJCQkJc3R5bGVzWyBrZXkgXSA9IHN0eWxlWyBrZXkgXTsNCgkJCX0NCgkJfQ0KCX0NCg0KCXJldHVybiBzdHlsZXM7DQp9DQoNCmZ1bmN0aW9uIHN0eWxlRGlmZmVyZW5jZSggb2xkU3R5bGUsIG5ld1N0eWxlICkgew0KCXZhciBkaWZmID0ge30sDQoJCW5hbWUsIHZhbHVlOw0KDQoJZm9yICggbmFtZSBpbiBuZXdTdHlsZSApIHsNCgkJdmFsdWUgPSBuZXdTdHlsZVsgbmFtZSBdOw0KCQlpZiAoIG9sZFN0eWxlWyBuYW1lIF0gIT09IHZhbHVlICkgew0KCQkJaWYgKCAhc2hvcnRoYW5kU3R5bGVzWyBuYW1lIF0gKSB7DQoJCQkJaWYgKCAkLmZ4LnN0ZXBbIG5hbWUgXSB8fCAhaXNOYU4oIHBhcnNlRmxvYXQoIHZhbHVlICkgKSApIHsNCgkJCQkJZGlmZlsgbmFtZSBdID0gdmFsdWU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJcmV0dXJuIGRpZmY7DQp9DQoNCi8vIHN1cHBvcnQ6IGpRdWVyeSA8MS44DQppZiAoICEkLmZuLmFkZEJhY2sgKSB7DQoJJC5mbi5hZGRCYWNrID0gZnVuY3Rpb24oIHNlbGVjdG9yICkgew0KCQlyZXR1cm4gdGhpcy5hZGQoIHNlbGVjdG9yID09IG51bGwgPw0KCQkJdGhpcy5wcmV2T2JqZWN0IDogdGhpcy5wcmV2T2JqZWN0LmZpbHRlciggc2VsZWN0b3IgKQ0KCQkpOw0KCX07DQp9DQoNCiQuZWZmZWN0cy5hbmltYXRlQ2xhc3MgPSBmdW5jdGlvbiggdmFsdWUsIGR1cmF0aW9uLCBlYXNpbmcsIGNhbGxiYWNrICkgew0KCXZhciBvID0gJC5zcGVlZCggZHVyYXRpb24sIGVhc2luZywgY2FsbGJhY2sgKTsNCg0KCXJldHVybiB0aGlzLnF1ZXVlKCBmdW5jdGlvbigpIHsNCgkJdmFyIGFuaW1hdGVkID0gJCggdGhpcyApLA0KCQkJYmFzZUNsYXNzID0gYW5pbWF0ZWQuYXR0ciggImNsYXNzIiApIHx8ICIiLA0KCQkJYXBwbHlDbGFzc0NoYW5nZSwNCgkJCWFsbEFuaW1hdGlvbnMgPSBvLmNoaWxkcmVuID8gYW5pbWF0ZWQuZmluZCggIioiICkuYWRkQmFjaygpIDogYW5pbWF0ZWQ7DQoNCgkJLy8gbWFwIHRoZSBhbmltYXRlZCBvYmplY3RzIHRvIHN0b3JlIHRoZSBvcmlnaW5hbCBzdHlsZXMuDQoJCWFsbEFuaW1hdGlvbnMgPSBhbGxBbmltYXRpb25zLm1hcChmdW5jdGlvbigpIHsNCgkJCXZhciBlbCA9ICQoIHRoaXMgKTsNCgkJCXJldHVybiB7DQoJCQkJZWw6IGVsLA0KCQkJCXN0YXJ0OiBnZXRFbGVtZW50U3R5bGVzKCB0aGlzICkNCgkJCX07DQoJCX0pOw0KDQoJCS8vIGFwcGx5IGNsYXNzIGNoYW5nZQ0KCQlhcHBseUNsYXNzQ2hhbmdlID0gZnVuY3Rpb24oKSB7DQoJCQkkLmVhY2goIGNsYXNzQW5pbWF0aW9uQWN0aW9ucywgZnVuY3Rpb24oaSwgYWN0aW9uKSB7DQoJCQkJaWYgKCB2YWx1ZVsgYWN0aW9uIF0gKSB7DQoJCQkJCWFuaW1hdGVkWyBhY3Rpb24gKyAiQ2xhc3MiIF0oIHZhbHVlWyBhY3Rpb24gXSApOw0KCQkJCX0NCgkJCX0pOw0KCQl9Ow0KCQlhcHBseUNsYXNzQ2hhbmdlKCk7DQoNCgkJLy8gbWFwIGFsbCBhbmltYXRlZCBvYmplY3RzIGFnYWluIC0gY2FsY3VsYXRlIG5ldyBzdHlsZXMgYW5kIGRpZmYNCgkJYWxsQW5pbWF0aW9ucyA9IGFsbEFuaW1hdGlvbnMubWFwKGZ1bmN0aW9uKCkgew0KCQkJdGhpcy5lbmQgPSBnZXRFbGVtZW50U3R5bGVzKCB0aGlzLmVsWyAwIF0gKTsNCgkJCXRoaXMuZGlmZiA9IHN0eWxlRGlmZmVyZW5jZSggdGhpcy5zdGFydCwgdGhpcy5lbmQgKTsNCgkJCXJldHVybiB0aGlzOw0KCQl9KTsNCg0KCQkvLyBhcHBseSBvcmlnaW5hbCBjbGFzcw0KCQlhbmltYXRlZC5hdHRyKCAiY2xhc3MiLCBiYXNlQ2xhc3MgKTsNCg0KCQkvLyBtYXAgYWxsIGFuaW1hdGVkIG9iamVjdHMgYWdhaW4gLSB0aGlzIHRpbWUgY29sbGVjdGluZyBhIHByb21pc2UNCgkJYWxsQW5pbWF0aW9ucyA9IGFsbEFuaW1hdGlvbnMubWFwKGZ1bmN0aW9uKCkgew0KCQkJdmFyIHN0eWxlSW5mbyA9IHRoaXMsDQoJCQkJZGZkID0gJC5EZWZlcnJlZCgpLA0KCQkJCW9wdHMgPSAkLmV4dGVuZCh7fSwgbywgew0KCQkJCQlxdWV1ZTogZmFsc2UsDQoJCQkJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCQkJCWRmZC5yZXNvbHZlKCBzdHlsZUluZm8gKTsNCgkJCQkJfQ0KCQkJCX0pOw0KDQoJCQl0aGlzLmVsLmFuaW1hdGUoIHRoaXMuZGlmZiwgb3B0cyApOw0KCQkJcmV0dXJuIGRmZC5wcm9taXNlKCk7DQoJCX0pOw0KDQoJCS8vIG9uY2UgYWxsIGFuaW1hdGlvbnMgaGF2ZSBjb21wbGV0ZWQ6DQoJCSQud2hlbi5hcHBseSggJCwgYWxsQW5pbWF0aW9ucy5nZXQoKSApLmRvbmUoZnVuY3Rpb24oKSB7DQoNCgkJCS8vIHNldCB0aGUgZmluYWwgY2xhc3MNCgkJCWFwcGx5Q2xhc3NDaGFuZ2UoKTsNCg0KCQkJLy8gZm9yIGVhY2ggYW5pbWF0ZWQgZWxlbWVudCwNCgkJCS8vIGNsZWFyIGFsbCBjc3MgcHJvcGVydGllcyB0aGF0IHdlcmUgYW5pbWF0ZWQNCgkJCSQuZWFjaCggYXJndW1lbnRzLCBmdW5jdGlvbigpIHsNCgkJCQl2YXIgZWwgPSB0aGlzLmVsOw0KCQkJCSQuZWFjaCggdGhpcy5kaWZmLCBmdW5jdGlvbihrZXkpIHsNCgkJCQkJZWwuY3NzKCBrZXksICIiICk7DQoJCQkJfSk7DQoJCQl9KTsNCg0KCQkJLy8gdGhpcyBpcyBndWFybnRlZWQgdG8gYmUgdGhlcmUgaWYgeW91IHVzZSBqUXVlcnkuc3BlZWQoKQ0KCQkJLy8gaXQgYWxzbyBoYW5kbGVzIGRlcXVldWluZyB0aGUgbmV4dCBhbmltLi4uDQoJCQlvLmNvbXBsZXRlLmNhbGwoIGFuaW1hdGVkWyAwIF0gKTsNCgkJfSk7DQoJfSk7DQp9Ow0KDQokLmZuLmV4dGVuZCh7DQoJYWRkQ2xhc3M6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBjbGFzc05hbWVzLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHsNCgkJCXJldHVybiBzcGVlZCA/DQoJCQkJJC5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKCB0aGlzLA0KCQkJCQl7IGFkZDogY2xhc3NOYW1lcyB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIDoNCgkJCQlvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfTsNCgl9KSggJC5mbi5hZGRDbGFzcyApLA0KDQoJcmVtb3ZlQ2xhc3M6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBjbGFzc05hbWVzLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHsNCgkJCXJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMSA/DQoJCQkJJC5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKCB0aGlzLA0KCQkJCQl7IHJlbW92ZTogY2xhc3NOYW1lcyB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIDoNCgkJCQlvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfTsNCgl9KSggJC5mbi5yZW1vdmVDbGFzcyApLA0KDQoJdG9nZ2xlQ2xhc3M6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBjbGFzc05hbWVzLCBmb3JjZSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7DQoJCQlpZiAoIHR5cGVvZiBmb3JjZSA9PT0gImJvb2xlYW4iIHx8IGZvcmNlID09PSB1bmRlZmluZWQgKSB7DQoJCQkJaWYgKCAhc3BlZWQgKSB7DQoJCQkJCS8vIHdpdGhvdXQgc3BlZWQgcGFyYW1ldGVyDQoJCQkJCXJldHVybiBvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlyZXR1cm4gJC5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKCB0aGlzLA0KCQkJCQkJKGZvcmNlID8geyBhZGQ6IGNsYXNzTmFtZXMgfSA6IHsgcmVtb3ZlOiBjbGFzc05hbWVzIH0pLA0KCQkJCQkJc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KCQkJCS8vIHdpdGhvdXQgZm9yY2UgcGFyYW1ldGVyDQoJCQkJcmV0dXJuICQuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCggdGhpcywNCgkJCQkJeyB0b2dnbGU6IGNsYXNzTmFtZXMgfSwgZm9yY2UsIHNwZWVkLCBlYXNpbmcgKTsNCgkJCX0NCgkJfTsNCgl9KSggJC5mbi50b2dnbGVDbGFzcyApLA0KDQoJc3dpdGNoQ2xhc3M6IGZ1bmN0aW9uKCByZW1vdmUsIGFkZCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2spIHsNCgkJcmV0dXJuICQuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCggdGhpcywgew0KCQkJYWRkOiBhZGQsDQoJCQlyZW1vdmU6IHJlbW92ZQ0KCQl9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApOw0KCX0NCn0pOw0KDQp9KSgpOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEVGRkVDVFMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCihmdW5jdGlvbigpIHsNCg0KJC5leHRlbmQoICQuZWZmZWN0cywgew0KCXZlcnNpb246ICIxLjExLjIiLA0KDQoJLy8gU2F2ZXMgYSBzZXQgb2YgcHJvcGVydGllcyBpbiBhIGRhdGEgc3RvcmFnZQ0KCXNhdmU6IGZ1bmN0aW9uKCBlbGVtZW50LCBzZXQgKSB7DQoJCWZvciAoIHZhciBpID0gMDsgaSA8IHNldC5sZW5ndGg7IGkrKyApIHsNCgkJCWlmICggc2V0WyBpIF0gIT09IG51bGwgKSB7DQoJCQkJZWxlbWVudC5kYXRhKCBkYXRhU3BhY2UgKyBzZXRbIGkgXSwgZWxlbWVudFsgMCBdLnN0eWxlWyBzZXRbIGkgXSBdICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJLy8gUmVzdG9yZXMgYSBzZXQgb2YgcHJldmlvdXNseSBzYXZlZCBwcm9wZXJ0aWVzIGZyb20gYSBkYXRhIHN0b3JhZ2UNCglyZXN0b3JlOiBmdW5jdGlvbiggZWxlbWVudCwgc2V0ICkgew0KCQl2YXIgdmFsLCBpOw0KCQlmb3IgKCBpID0gMDsgaSA8IHNldC5sZW5ndGg7IGkrKyApIHsNCgkJCWlmICggc2V0WyBpIF0gIT09IG51bGwgKSB7DQoJCQkJdmFsID0gZWxlbWVudC5kYXRhKCBkYXRhU3BhY2UgKyBzZXRbIGkgXSApOw0KCQkJCS8vIHN1cHBvcnQ6IGpRdWVyeSAxLjYuMg0KCQkJCS8vIGh0dHA6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0Lzk5MTcNCgkJCQkvLyBqUXVlcnkgMS42LjIgaW5jb3JyZWN0bHkgcmV0dXJucyB1bmRlZmluZWQgZm9yIGFueSBmYWxzeSB2YWx1ZS4NCgkJCQkvLyBXZSBjYW4ndCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gIiIgYW5kIDAgaGVyZSwgc28gd2UganVzdCBhc3N1bWUNCgkJCQkvLyBlbXB0eSBzdHJpbmcgc2luY2UgaXQncyBsaWtlbHkgdG8gYmUgYSBtb3JlIGNvbW1vbiB2YWx1ZS4uLg0KCQkJCWlmICggdmFsID09PSB1bmRlZmluZWQgKSB7DQoJCQkJCXZhbCA9ICIiOw0KCQkJCX0NCgkJCQllbGVtZW50LmNzcyggc2V0WyBpIF0sIHZhbCApOw0KCQkJfQ0KCQl9DQoJfSwNCg0KCXNldE1vZGU6IGZ1bmN0aW9uKCBlbCwgbW9kZSApIHsNCgkJaWYgKG1vZGUgPT09ICJ0b2dnbGUiKSB7DQoJCQltb2RlID0gZWwuaXMoICI6aGlkZGVuIiApID8gInNob3ciIDogImhpZGUiOw0KCQl9DQoJCXJldHVybiBtb2RlOw0KCX0sDQoNCgkvLyBUcmFuc2xhdGVzIGEgW3RvcCxsZWZ0XSBhcnJheSBpbnRvIGEgYmFzZWxpbmUgdmFsdWUNCgkvLyB0aGlzIHNob3VsZCBiZSBhIGxpdHRsZSBtb3JlIGZsZXhpYmxlIGluIHRoZSBmdXR1cmUgdG8gaGFuZGxlIGEgc3RyaW5nICYgaGFzaA0KCWdldEJhc2VsaW5lOiBmdW5jdGlvbiggb3JpZ2luLCBvcmlnaW5hbCApIHsNCgkJdmFyIHksIHg7DQoJCXN3aXRjaCAoIG9yaWdpblsgMCBdICkgew0KCQkJY2FzZSAidG9wIjogeSA9IDA7IGJyZWFrOw0KCQkJY2FzZSAibWlkZGxlIjogeSA9IDAuNTsgYnJlYWs7DQoJCQljYXNlICJib3R0b20iOiB5ID0gMTsgYnJlYWs7DQoJCQlkZWZhdWx0OiB5ID0gb3JpZ2luWyAwIF0gLyBvcmlnaW5hbC5oZWlnaHQ7DQoJCX0NCgkJc3dpdGNoICggb3JpZ2luWyAxIF0gKSB7DQoJCQljYXNlICJsZWZ0IjogeCA9IDA7IGJyZWFrOw0KCQkJY2FzZSAiY2VudGVyIjogeCA9IDAuNTsgYnJlYWs7DQoJCQljYXNlICJyaWdodCI6IHggPSAxOyBicmVhazsNCgkJCWRlZmF1bHQ6IHggPSBvcmlnaW5bIDEgXSAvIG9yaWdpbmFsLndpZHRoOw0KCQl9DQoJCXJldHVybiB7DQoJCQl4OiB4LA0KCQkJeTogeQ0KCQl9Ow0KCX0sDQoNCgkvLyBXcmFwcyB0aGUgZWxlbWVudCBhcm91bmQgYSB3cmFwcGVyIHRoYXQgY29waWVzIHBvc2l0aW9uIHByb3BlcnRpZXMNCgljcmVhdGVXcmFwcGVyOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCg0KCQkvLyBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IHdyYXBwZWQsIHJldHVybiBpdA0KCQlpZiAoIGVsZW1lbnQucGFyZW50KCkuaXMoICIudWktZWZmZWN0cy13cmFwcGVyIiApKSB7DQoJCQlyZXR1cm4gZWxlbWVudC5wYXJlbnQoKTsNCgkJfQ0KDQoJCS8vIHdyYXAgdGhlIGVsZW1lbnQNCgkJdmFyIHByb3BzID0gew0KCQkJCXdpZHRoOiBlbGVtZW50Lm91dGVyV2lkdGgodHJ1ZSksDQoJCQkJaGVpZ2h0OiBlbGVtZW50Lm91dGVySGVpZ2h0KHRydWUpLA0KCQkJCSJmbG9hdCI6IGVsZW1lbnQuY3NzKCAiZmxvYXQiICkNCgkJCX0sDQoJCQl3cmFwcGVyID0gJCggIjxkaXY+PC9kaXY+IiApDQoJCQkJLmFkZENsYXNzKCAidWktZWZmZWN0cy13cmFwcGVyIiApDQoJCQkJLmNzcyh7DQoJCQkJCWZvbnRTaXplOiAiMTAwJSIsDQoJCQkJCWJhY2tncm91bmQ6ICJ0cmFuc3BhcmVudCIsDQoJCQkJCWJvcmRlcjogIm5vbmUiLA0KCQkJCQltYXJnaW46IDAsDQoJCQkJCXBhZGRpbmc6IDANCgkJCQl9KSwNCgkJCS8vIFN0b3JlIHRoZSBzaXplIGluIGNhc2Ugd2lkdGgvaGVpZ2h0IGFyZSBkZWZpbmVkIGluICUgLSBGaXhlcyAjNTI0NQ0KCQkJc2l6ZSA9IHsNCgkJCQl3aWR0aDogZWxlbWVudC53aWR0aCgpLA0KCQkJCWhlaWdodDogZWxlbWVudC5oZWlnaHQoKQ0KCQkJfSwNCgkJCWFjdGl2ZSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7DQoNCgkJLy8gc3VwcG9ydDogRmlyZWZveA0KCQkvLyBGaXJlZm94IGluY29ycmVjdGx5IGV4cG9zZXMgYW5vbnltb3VzIGNvbnRlbnQNCgkJLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYxNjY0DQoJCXRyeSB7DQoJCQlhY3RpdmUuaWQ7DQoJCX0gY2F0Y2ggKCBlICkgew0KCQkJYWN0aXZlID0gZG9jdW1lbnQuYm9keTsNCgkJfQ0KDQoJCWVsZW1lbnQud3JhcCggd3JhcHBlciApOw0KDQoJCS8vIEZpeGVzICM3NTk1IC0gRWxlbWVudHMgbG9zZSBmb2N1cyB3aGVuIHdyYXBwZWQuDQoJCWlmICggZWxlbWVudFsgMCBdID09PSBhY3RpdmUgfHwgJC5jb250YWlucyggZWxlbWVudFsgMCBdLCBhY3RpdmUgKSApIHsNCgkJCSQoIGFjdGl2ZSApLmZvY3VzKCk7DQoJCX0NCg0KCQl3cmFwcGVyID0gZWxlbWVudC5wYXJlbnQoKTsgLy9Ib3RmaXggZm9yIGpRdWVyeSAxLjQgc2luY2Ugc29tZSBjaGFuZ2UgaW4gd3JhcCgpIHNlZW1zIHRvIGFjdHVhbGx5IGxvc2UgdGhlIHJlZmVyZW5jZSB0byB0aGUgd3JhcHBlZCBlbGVtZW50DQoNCgkJLy8gdHJhbnNmZXIgcG9zaXRpb25pbmcgcHJvcGVydGllcyB0byB0aGUgd3JhcHBlcg0KCQlpZiAoIGVsZW1lbnQuY3NzKCAicG9zaXRpb24iICkgPT09ICJzdGF0aWMiICkgew0KCQkJd3JhcHBlci5jc3MoeyBwb3NpdGlvbjogInJlbGF0aXZlIiB9KTsNCgkJCWVsZW1lbnQuY3NzKHsgcG9zaXRpb246ICJyZWxhdGl2ZSIgfSk7DQoJCX0gZWxzZSB7DQoJCQkkLmV4dGVuZCggcHJvcHMsIHsNCgkJCQlwb3NpdGlvbjogZWxlbWVudC5jc3MoICJwb3NpdGlvbiIgKSwNCgkJCQl6SW5kZXg6IGVsZW1lbnQuY3NzKCAiei1pbmRleCIgKQ0KCQkJfSk7DQoJCQkkLmVhY2goWyAidG9wIiwgImxlZnQiLCAiYm90dG9tIiwgInJpZ2h0IiBdLCBmdW5jdGlvbihpLCBwb3MpIHsNCgkJCQlwcm9wc1sgcG9zIF0gPSBlbGVtZW50LmNzcyggcG9zICk7DQoJCQkJaWYgKCBpc05hTiggcGFyc2VJbnQoIHByb3BzWyBwb3MgXSwgMTAgKSApICkgew0KCQkJCQlwcm9wc1sgcG9zIF0gPSAiYXV0byI7DQoJCQkJfQ0KCQkJfSk7DQoJCQllbGVtZW50LmNzcyh7DQoJCQkJcG9zaXRpb246ICJyZWxhdGl2ZSIsDQoJCQkJdG9wOiAwLA0KCQkJCWxlZnQ6IDAsDQoJCQkJcmlnaHQ6ICJhdXRvIiwNCgkJCQlib3R0b206ICJhdXRvIg0KCQkJfSk7DQoJCX0NCgkJZWxlbWVudC5jc3Moc2l6ZSk7DQoNCgkJcmV0dXJuIHdyYXBwZXIuY3NzKCBwcm9wcyApLnNob3coKTsNCgl9LA0KDQoJcmVtb3ZlV3JhcHBlcjogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXZhciBhY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KDQoJCWlmICggZWxlbWVudC5wYXJlbnQoKS5pcyggIi51aS1lZmZlY3RzLXdyYXBwZXIiICkgKSB7DQoJCQllbGVtZW50LnBhcmVudCgpLnJlcGxhY2VXaXRoKCBlbGVtZW50ICk7DQoNCgkJCS8vIEZpeGVzICM3NTk1IC0gRWxlbWVudHMgbG9zZSBmb2N1cyB3aGVuIHdyYXBwZWQuDQoJCQlpZiAoIGVsZW1lbnRbIDAgXSA9PT0gYWN0aXZlIHx8ICQuY29udGFpbnMoIGVsZW1lbnRbIDAgXSwgYWN0aXZlICkgKSB7DQoJCQkJJCggYWN0aXZlICkuZm9jdXMoKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBlbGVtZW50Ow0KCX0sDQoNCglzZXRUcmFuc2l0aW9uOiBmdW5jdGlvbiggZWxlbWVudCwgbGlzdCwgZmFjdG9yLCB2YWx1ZSApIHsNCgkJdmFsdWUgPSB2YWx1ZSB8fCB7fTsNCgkJJC5lYWNoKCBsaXN0LCBmdW5jdGlvbiggaSwgeCApIHsNCgkJCXZhciB1bml0ID0gZWxlbWVudC5jc3NVbml0KCB4ICk7DQoJCQlpZiAoIHVuaXRbIDAgXSA+IDAgKSB7DQoJCQkJdmFsdWVbIHggXSA9IHVuaXRbIDAgXSAqIGZhY3RvciArIHVuaXRbIDEgXTsNCgkJCX0NCgkJfSk7DQoJCXJldHVybiB2YWx1ZTsNCgl9DQp9KTsNCg0KLy8gcmV0dXJuIGFuIGVmZmVjdCBvcHRpb25zIG9iamVjdCBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlcnM6DQpmdW5jdGlvbiBfbm9ybWFsaXplQXJndW1lbnRzKCBlZmZlY3QsIG9wdGlvbnMsIHNwZWVkLCBjYWxsYmFjayApIHsNCg0KCS8vIGFsbG93IHBhc3NpbmcgYWxsIG9wdGlvbnMgYXMgdGhlIGZpcnN0IHBhcmFtZXRlcg0KCWlmICggJC5pc1BsYWluT2JqZWN0KCBlZmZlY3QgKSApIHsNCgkJb3B0aW9ucyA9IGVmZmVjdDsNCgkJZWZmZWN0ID0gZWZmZWN0LmVmZmVjdDsNCgl9DQoNCgkvLyBjb252ZXJ0IHRvIGFuIG9iamVjdA0KCWVmZmVjdCA9IHsgZWZmZWN0OiBlZmZlY3QgfTsNCg0KCS8vIGNhdGNoIChlZmZlY3QsIG51bGwsIC4uLikNCglpZiAoIG9wdGlvbnMgPT0gbnVsbCApIHsNCgkJb3B0aW9ucyA9IHt9Ow0KCX0NCg0KCS8vIGNhdGNoIChlZmZlY3QsIGNhbGxiYWNrKQ0KCWlmICggJC5pc0Z1bmN0aW9uKCBvcHRpb25zICkgKSB7DQoJCWNhbGxiYWNrID0gb3B0aW9uczsNCgkJc3BlZWQgPSBudWxsOw0KCQlvcHRpb25zID0ge307DQoJfQ0KDQoJLy8gY2F0Y2ggKGVmZmVjdCwgc3BlZWQsID8pDQoJaWYgKCB0eXBlb2Ygb3B0aW9ucyA9PT0gIm51bWJlciIgfHwgJC5meC5zcGVlZHNbIG9wdGlvbnMgXSApIHsNCgkJY2FsbGJhY2sgPSBzcGVlZDsNCgkJc3BlZWQgPSBvcHRpb25zOw0KCQlvcHRpb25zID0ge307DQoJfQ0KDQoJLy8gY2F0Y2ggKGVmZmVjdCwgb3B0aW9ucywgY2FsbGJhY2spDQoJaWYgKCAkLmlzRnVuY3Rpb24oIHNwZWVkICkgKSB7DQoJCWNhbGxiYWNrID0gc3BlZWQ7DQoJCXNwZWVkID0gbnVsbDsNCgl9DQoNCgkvLyBhZGQgb3B0aW9ucyB0byBlZmZlY3QNCglpZiAoIG9wdGlvbnMgKSB7DQoJCSQuZXh0ZW5kKCBlZmZlY3QsIG9wdGlvbnMgKTsNCgl9DQoNCglzcGVlZCA9IHNwZWVkIHx8IG9wdGlvbnMuZHVyYXRpb247DQoJZWZmZWN0LmR1cmF0aW9uID0gJC5meC5vZmYgPyAwIDoNCgkJdHlwZW9mIHNwZWVkID09PSAibnVtYmVyIiA/IHNwZWVkIDoNCgkJc3BlZWQgaW4gJC5meC5zcGVlZHMgPyAkLmZ4LnNwZWVkc1sgc3BlZWQgXSA6DQoJCSQuZnguc3BlZWRzLl9kZWZhdWx0Ow0KDQoJZWZmZWN0LmNvbXBsZXRlID0gY2FsbGJhY2sgfHwgb3B0aW9ucy5jb21wbGV0ZTsNCg0KCXJldHVybiBlZmZlY3Q7DQp9DQoNCmZ1bmN0aW9uIHN0YW5kYXJkQW5pbWF0aW9uT3B0aW9uKCBvcHRpb24gKSB7DQoJLy8gVmFsaWQgc3RhbmRhcmQgc3BlZWRzIChub3RoaW5nLCBudW1iZXIsIG5hbWVkIHNwZWVkKQ0KCWlmICggIW9wdGlvbiB8fCB0eXBlb2Ygb3B0aW9uID09PSAibnVtYmVyIiB8fCAkLmZ4LnNwZWVkc1sgb3B0aW9uIF0gKSB7DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCS8vIEludmFsaWQgc3RyaW5ncyAtIHRyZWF0IGFzICJub3JtYWwiIHNwZWVkDQoJaWYgKCB0eXBlb2Ygb3B0aW9uID09PSAic3RyaW5nIiAmJiAhJC5lZmZlY3RzLmVmZmVjdFsgb3B0aW9uIF0gKSB7DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCS8vIENvbXBsZXRlIGNhbGxiYWNrDQoJaWYgKCAkLmlzRnVuY3Rpb24oIG9wdGlvbiApICkgew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCgkvLyBPcHRpb25zIGhhc2ggKGJ1dCBub3QgbmFtaW5nIGFuIGVmZmVjdCkNCglpZiAoIHR5cGVvZiBvcHRpb24gPT09ICJvYmplY3QiICYmICFvcHRpb24uZWZmZWN0ICkgew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCgkvLyBEaWRuJ3QgbWF0Y2ggYW55IHN0YW5kYXJkIEFQSQ0KCXJldHVybiBmYWxzZTsNCn0NCg0KJC5mbi5leHRlbmQoew0KCWVmZmVjdDogZnVuY3Rpb24oIC8qIGVmZmVjdCwgb3B0aW9ucywgc3BlZWQsIGNhbGxiYWNrICovICkgew0KCQl2YXIgYXJncyA9IF9ub3JtYWxpemVBcmd1bWVudHMuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLA0KCQkJbW9kZSA9IGFyZ3MubW9kZSwNCgkJCXF1ZXVlID0gYXJncy5xdWV1ZSwNCgkJCWVmZmVjdE1ldGhvZCA9ICQuZWZmZWN0cy5lZmZlY3RbIGFyZ3MuZWZmZWN0IF07DQoNCgkJaWYgKCAkLmZ4Lm9mZiB8fCAhZWZmZWN0TWV0aG9kICkgew0KCQkJLy8gZGVsZWdhdGUgdG8gdGhlIG9yaWdpbmFsIG1ldGhvZCAoZS5nLiwgLnNob3coKSkgaWYgcG9zc2libGUNCgkJCWlmICggbW9kZSApIHsNCgkJCQlyZXR1cm4gdGhpc1sgbW9kZSBdKCBhcmdzLmR1cmF0aW9uLCBhcmdzLmNvbXBsZXRlICk7DQoJCQl9IGVsc2Ugew0KCQkJCXJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoIGFyZ3MuY29tcGxldGUgKSB7DQoJCQkJCQlhcmdzLmNvbXBsZXRlLmNhbGwoIHRoaXMgKTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQkJfQ0KCQl9DQoNCgkJZnVuY3Rpb24gcnVuKCBuZXh0ICkgew0KCQkJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCQkJY29tcGxldGUgPSBhcmdzLmNvbXBsZXRlLA0KCQkJCW1vZGUgPSBhcmdzLm1vZGU7DQoNCgkJCWZ1bmN0aW9uIGRvbmUoKSB7DQoJCQkJaWYgKCAkLmlzRnVuY3Rpb24oIGNvbXBsZXRlICkgKSB7DQoJCQkJCWNvbXBsZXRlLmNhbGwoIGVsZW1bMF0gKTsNCgkJCQl9DQoJCQkJaWYgKCAkLmlzRnVuY3Rpb24oIG5leHQgKSApIHsNCgkJCQkJbmV4dCgpOw0KCQkJCX0NCgkJCX0NCg0KCQkJLy8gSWYgdGhlIGVsZW1lbnQgYWxyZWFkeSBoYXMgdGhlIGNvcnJlY3QgZmluYWwgc3RhdGUsIGRlbGVnYXRlIHRvDQoJCQkvLyB0aGUgY29yZSBtZXRob2RzIHNvIHRoZSBpbnRlcm5hbCB0cmFja2luZyBvZiAib2xkZGlzcGxheSIgd29ya3MuDQoJCQlpZiAoIGVsZW0uaXMoICI6aGlkZGVuIiApID8gbW9kZSA9PT0gImhpZGUiIDogbW9kZSA9PT0gInNob3ciICkgew0KCQkJCWVsZW1bIG1vZGUgXSgpOw0KCQkJCWRvbmUoKTsNCgkJCX0gZWxzZSB7DQoJCQkJZWZmZWN0TWV0aG9kLmNhbGwoIGVsZW1bMF0sIGFyZ3MsIGRvbmUgKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBxdWV1ZSA9PT0gZmFsc2UgPyB0aGlzLmVhY2goIHJ1biApIDogdGhpcy5xdWV1ZSggcXVldWUgfHwgImZ4IiwgcnVuICk7DQoJfSwNCg0KCXNob3c6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBvcHRpb24gKSB7DQoJCQlpZiAoIHN0YW5kYXJkQW5pbWF0aW9uT3B0aW9uKCBvcHRpb24gKSApIHsNCgkJCQlyZXR1cm4gb3JpZy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQl9IGVsc2Ugew0KCQkJCXZhciBhcmdzID0gX25vcm1hbGl6ZUFyZ3VtZW50cy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkJYXJncy5tb2RlID0gInNob3ciOw0KCQkJCXJldHVybiB0aGlzLmVmZmVjdC5jYWxsKCB0aGlzLCBhcmdzICk7DQoJCQl9DQoJCX07DQoJfSkoICQuZm4uc2hvdyApLA0KDQoJaGlkZTogKGZ1bmN0aW9uKCBvcmlnICkgew0KCQlyZXR1cm4gZnVuY3Rpb24oIG9wdGlvbiApIHsNCgkJCWlmICggc3RhbmRhcmRBbmltYXRpb25PcHRpb24oIG9wdGlvbiApICkgew0KCQkJCXJldHVybiBvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdmFyIGFyZ3MgPSBfbm9ybWFsaXplQXJndW1lbnRzLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCQlhcmdzLm1vZGUgPSAiaGlkZSI7DQoJCQkJcmV0dXJuIHRoaXMuZWZmZWN0LmNhbGwoIHRoaXMsIGFyZ3MgKTsNCgkJCX0NCgkJfTsNCgl9KSggJC5mbi5oaWRlICksDQoNCgl0b2dnbGU6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBvcHRpb24gKSB7DQoJCQlpZiAoIHN0YW5kYXJkQW5pbWF0aW9uT3B0aW9uKCBvcHRpb24gKSB8fCB0eXBlb2Ygb3B0aW9uID09PSAiYm9vbGVhbiIgKSB7DQoJCQkJcmV0dXJuIG9yaWcuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJfSBlbHNlIHsNCgkJCQl2YXIgYXJncyA9IF9ub3JtYWxpemVBcmd1bWVudHMuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJCWFyZ3MubW9kZSA9ICJ0b2dnbGUiOw0KCQkJCXJldHVybiB0aGlzLmVmZmVjdC5jYWxsKCB0aGlzLCBhcmdzICk7DQoJCQl9DQoJCX07DQoJfSkoICQuZm4udG9nZ2xlICksDQoNCgkvLyBoZWxwZXIgZnVuY3Rpb25zDQoJY3NzVW5pdDogZnVuY3Rpb24oa2V5KSB7DQoJCXZhciBzdHlsZSA9IHRoaXMuY3NzKCBrZXkgKSwNCgkJCXZhbCA9IFtdOw0KDQoJCSQuZWFjaCggWyAiZW0iLCAicHgiLCAiJSIsICJwdCIgXSwgZnVuY3Rpb24oIGksIHVuaXQgKSB7DQoJCQlpZiAoIHN0eWxlLmluZGV4T2YoIHVuaXQgKSA+IDAgKSB7DQoJCQkJdmFsID0gWyBwYXJzZUZsb2F0KCBzdHlsZSApLCB1bml0IF07DQoJCQl9DQoJCX0pOw0KCQlyZXR1cm4gdmFsOw0KCX0NCn0pOw0KDQp9KSgpOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEVBU0lORyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCihmdW5jdGlvbigpIHsNCg0KLy8gYmFzZWQgb24gZWFzaW5nIGVxdWF0aW9ucyBmcm9tIFJvYmVydCBQZW5uZXIgKGh0dHA6Ly93d3cucm9iZXJ0cGVubmVyLmNvbS9lYXNpbmcpDQoNCnZhciBiYXNlRWFzaW5ncyA9IHt9Ow0KDQokLmVhY2goIFsgIlF1YWQiLCAiQ3ViaWMiLCAiUXVhcnQiLCAiUXVpbnQiLCAiRXhwbyIgXSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7DQoJYmFzZUVhc2luZ3NbIG5hbWUgXSA9IGZ1bmN0aW9uKCBwICkgew0KCQlyZXR1cm4gTWF0aC5wb3coIHAsIGkgKyAyICk7DQoJfTsNCn0pOw0KDQokLmV4dGVuZCggYmFzZUVhc2luZ3MsIHsNCglTaW5lOiBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIDEgLSBNYXRoLmNvcyggcCAqIE1hdGguUEkgLyAyICk7DQoJfSwNCglDaXJjOiBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIDEgLSBNYXRoLnNxcnQoIDEgLSBwICogcCApOw0KCX0sDQoJRWxhc3RpYzogZnVuY3Rpb24oIHAgKSB7DQoJCXJldHVybiBwID09PSAwIHx8IHAgPT09IDEgPyBwIDoNCgkJCS1NYXRoLnBvdyggMiwgOCAqIChwIC0gMSkgKSAqIE1hdGguc2luKCAoIChwIC0gMSkgKiA4MCAtIDcuNSApICogTWF0aC5QSSAvIDE1ICk7DQoJfSwNCglCYWNrOiBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIHAgKiBwICogKCAzICogcCAtIDIgKTsNCgl9LA0KCUJvdW5jZTogZnVuY3Rpb24oIHAgKSB7DQoJCXZhciBwb3cyLA0KCQkJYm91bmNlID0gNDsNCg0KCQl3aGlsZSAoIHAgPCAoICggcG93MiA9IE1hdGgucG93KCAyLCAtLWJvdW5jZSApICkgLSAxICkgLyAxMSApIHt9DQoJCXJldHVybiAxIC8gTWF0aC5wb3coIDQsIDMgLSBib3VuY2UgKSAtIDcuNTYyNSAqIE1hdGgucG93KCAoIHBvdzIgKiAzIC0gMiApIC8gMjIgLSBwLCAyICk7DQoJfQ0KfSk7DQoNCiQuZWFjaCggYmFzZUVhc2luZ3MsIGZ1bmN0aW9uKCBuYW1lLCBlYXNlSW4gKSB7DQoJJC5lYXNpbmdbICJlYXNlSW4iICsgbmFtZSBdID0gZWFzZUluOw0KCSQuZWFzaW5nWyAiZWFzZU91dCIgKyBuYW1lIF0gPSBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIDEgLSBlYXNlSW4oIDEgLSBwICk7DQoJfTsNCgkkLmVhc2luZ1sgImVhc2VJbk91dCIgKyBuYW1lIF0gPSBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIHAgPCAwLjUgPw0KCQkJZWFzZUluKCBwICogMiApIC8gMiA6DQoJCQkxIC0gZWFzZUluKCBwICogLTIgKyAyICkgLyAyOw0KCX07DQp9KTsNCg0KfSkoKTsNCg0KdmFyIGVmZmVjdCA9ICQuZWZmZWN0czsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEJsaW5kIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9ibGluZC1lZmZlY3QvDQogKi8NCg0KDQp2YXIgZWZmZWN0QmxpbmQgPSAkLmVmZmVjdHMuZWZmZWN0LmJsaW5kID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoJLy8gQ3JlYXRlIGVsZW1lbnQNCgl2YXIgZWwgPSAkKCB0aGlzICksDQoJCXJ2ZXJ0aWNhbCA9IC91cHxkb3dufHZlcnRpY2FsLywNCgkJcnBvc2l0aXZlbW90aW9uID0gL3VwfGxlZnR8dmVydGljYWx8aG9yaXpvbnRhbC8sDQoJCXByb3BzID0gWyAicG9zaXRpb24iLCAidG9wIiwgImJvdHRvbSIsICJsZWZ0IiwgInJpZ2h0IiwgImhlaWdodCIsICJ3aWR0aCIgXSwNCgkJbW9kZSA9ICQuZWZmZWN0cy5zZXRNb2RlKCBlbCwgby5tb2RlIHx8ICJoaWRlIiApLA0KCQlkaXJlY3Rpb24gPSBvLmRpcmVjdGlvbiB8fCAidXAiLA0KCQl2ZXJ0aWNhbCA9IHJ2ZXJ0aWNhbC50ZXN0KCBkaXJlY3Rpb24gKSwNCgkJcmVmID0gdmVydGljYWwgPyAiaGVpZ2h0IiA6ICJ3aWR0aCIsDQoJCXJlZjIgPSB2ZXJ0aWNhbCA/ICJ0b3AiIDogImxlZnQiLA0KCQltb3Rpb24gPSBycG9zaXRpdmVtb3Rpb24udGVzdCggZGlyZWN0aW9uICksDQoJCWFuaW1hdGlvbiA9IHt9LA0KCQlzaG93ID0gbW9kZSA9PT0gInNob3ciLA0KCQl3cmFwcGVyLCBkaXN0YW5jZSwgbWFyZ2luOw0KDQoJLy8gaWYgYWxyZWFkeSB3cmFwcGVkLCB0aGUgd3JhcHBlcidzIHByb3BlcnRpZXMgYXJlIG15IHByb3BlcnR5LiAjNjI0NQ0KCWlmICggZWwucGFyZW50KCkuaXMoICIudWktZWZmZWN0cy13cmFwcGVyIiApICkgew0KCQkkLmVmZmVjdHMuc2F2ZSggZWwucGFyZW50KCksIHByb3BzICk7DQoJfSBlbHNlIHsNCgkJJC5lZmZlY3RzLnNhdmUoIGVsLCBwcm9wcyApOw0KCX0NCgllbC5zaG93KCk7DQoJd3JhcHBlciA9ICQuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKCBlbCApLmNzcyh7DQoJCW92ZXJmbG93OiAiaGlkZGVuIg0KCX0pOw0KDQoJZGlzdGFuY2UgPSB3cmFwcGVyWyByZWYgXSgpOw0KCW1hcmdpbiA9IHBhcnNlRmxvYXQoIHdyYXBwZXIuY3NzKCByZWYyICkgKSB8fCAwOw0KDQoJYW5pbWF0aW9uWyByZWYgXSA9IHNob3cgPyBkaXN0YW5jZSA6IDA7DQoJaWYgKCAhbW90aW9uICkgew0KCQllbA0KCQkJLmNzcyggdmVydGljYWwgPyAiYm90dG9tIiA6ICJyaWdodCIsIDAgKQ0KCQkJLmNzcyggdmVydGljYWwgPyAidG9wIiA6ICJsZWZ0IiwgImF1dG8iICkNCgkJCS5jc3MoeyBwb3NpdGlvbjogImFic29sdXRlIiB9KTsNCg0KCQlhbmltYXRpb25bIHJlZjIgXSA9IHNob3cgPyBtYXJnaW4gOiBkaXN0YW5jZSArIG1hcmdpbjsNCgl9DQoNCgkvLyBzdGFydCBhdCAwIGlmIHdlIGFyZSBzaG93aW5nDQoJaWYgKCBzaG93ICkgew0KCQl3cmFwcGVyLmNzcyggcmVmLCAwICk7DQoJCWlmICggIW1vdGlvbiApIHsNCgkJCXdyYXBwZXIuY3NzKCByZWYyLCBtYXJnaW4gKyBkaXN0YW5jZSApOw0KCQl9DQoJfQ0KDQoJLy8gQW5pbWF0ZQ0KCXdyYXBwZXIuYW5pbWF0ZSggYW5pbWF0aW9uLCB7DQoJCWR1cmF0aW9uOiBvLmR1cmF0aW9uLA0KCQllYXNpbmc6IG8uZWFzaW5nLA0KCQlxdWV1ZTogZmFsc2UsDQoJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCWlmICggbW9kZSA9PT0gImhpZGUiICkgew0KCQkJCWVsLmhpZGUoKTsNCgkJCX0NCgkJCSQuZWZmZWN0cy5yZXN0b3JlKCBlbCwgcHJvcHMgKTsNCgkJCSQuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKCBlbCApOw0KCQkJZG9uZSgpOw0KCQl9DQoJfSk7DQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgQm91bmNlIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9ib3VuY2UtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdEJvdW5jZSA9ICQuZWZmZWN0cy5lZmZlY3QuYm91bmNlID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoJdmFyIGVsID0gJCggdGhpcyApLA0KCQlwcm9wcyA9IFsgInBvc2l0aW9uIiwgInRvcCIsICJib3R0b20iLCAibGVmdCIsICJyaWdodCIsICJoZWlnaHQiLCAid2lkdGgiIF0sDQoNCgkJLy8gZGVmYXVsdHM6DQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWwsIG8ubW9kZSB8fCAiZWZmZWN0IiApLA0KCQloaWRlID0gbW9kZSA9PT0gImhpZGUiLA0KCQlzaG93ID0gbW9kZSA9PT0gInNob3ciLA0KCQlkaXJlY3Rpb24gPSBvLmRpcmVjdGlvbiB8fCAidXAiLA0KCQlkaXN0YW5jZSA9IG8uZGlzdGFuY2UsDQoJCXRpbWVzID0gby50aW1lcyB8fCA1LA0KDQoJCS8vIG51bWJlciBvZiBpbnRlcm5hbCBhbmltYXRpb25zDQoJCWFuaW1zID0gdGltZXMgKiAyICsgKCBzaG93IHx8IGhpZGUgPyAxIDogMCApLA0KCQlzcGVlZCA9IG8uZHVyYXRpb24gLyBhbmltcywNCgkJZWFzaW5nID0gby5lYXNpbmcsDQoNCgkJLy8gdXRpbGl0eToNCgkJcmVmID0gKCBkaXJlY3Rpb24gPT09ICJ1cCIgfHwgZGlyZWN0aW9uID09PSAiZG93biIgKSA/ICJ0b3AiIDogImxlZnQiLA0KCQltb3Rpb24gPSAoIGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJsZWZ0IiApLA0KCQlpLA0KCQl1cEFuaW0sDQoJCWRvd25BbmltLA0KDQoJCS8vIHdlIHdpbGwgbmVlZCB0byByZS1hc3NlbWJsZSB0aGUgcXVldWUgdG8gc3RhY2sgb3VyIGFuaW1hdGlvbnMgaW4gcGxhY2UNCgkJcXVldWUgPSBlbC5xdWV1ZSgpLA0KCQlxdWV1ZWxlbiA9IHF1ZXVlLmxlbmd0aDsNCg0KCS8vIEF2b2lkIHRvdWNoaW5nIG9wYWNpdHkgdG8gcHJldmVudCBjbGVhclR5cGUgYW5kIFBORyBpc3N1ZXMgaW4gSUUNCglpZiAoIHNob3cgfHwgaGlkZSApIHsNCgkJcHJvcHMucHVzaCggIm9wYWNpdHkiICk7DQoJfQ0KDQoJJC5lZmZlY3RzLnNhdmUoIGVsLCBwcm9wcyApOw0KCWVsLnNob3coKTsNCgkkLmVmZmVjdHMuY3JlYXRlV3JhcHBlciggZWwgKTsgLy8gQ3JlYXRlIFdyYXBwZXINCg0KCS8vIGRlZmF1bHQgZGlzdGFuY2UgZm9yIHRoZSBCSUdHRVNUIGJvdW5jZSBpcyB0aGUgb3V0ZXIgRGlzdGFuY2UgLyAzDQoJaWYgKCAhZGlzdGFuY2UgKSB7DQoJCWRpc3RhbmNlID0gZWxbIHJlZiA9PT0gInRvcCIgPyAib3V0ZXJIZWlnaHQiIDogIm91dGVyV2lkdGgiIF0oKSAvIDM7DQoJfQ0KDQoJaWYgKCBzaG93ICkgew0KCQlkb3duQW5pbSA9IHsgb3BhY2l0eTogMSB9Ow0KCQlkb3duQW5pbVsgcmVmIF0gPSAwOw0KDQoJCS8vIGlmIHdlIGFyZSBzaG93aW5nLCBmb3JjZSBvcGFjaXR5IDAgYW5kIHNldCB0aGUgaW5pdGlhbCBwb3NpdGlvbg0KCQkvLyB0aGVuIGRvIHRoZSAiZmlyc3QiIGFuaW1hdGlvbg0KCQllbC5jc3MoICJvcGFjaXR5IiwgMCApDQoJCQkuY3NzKCByZWYsIG1vdGlvbiA/IC1kaXN0YW5jZSAqIDIgOiBkaXN0YW5jZSAqIDIgKQ0KCQkJLmFuaW1hdGUoIGRvd25BbmltLCBzcGVlZCwgZWFzaW5nICk7DQoJfQ0KDQoJLy8gc3RhcnQgYXQgdGhlIHNtYWxsZXN0IGRpc3RhbmNlIGlmIHdlIGFyZSBoaWRpbmcNCglpZiAoIGhpZGUgKSB7DQoJCWRpc3RhbmNlID0gZGlzdGFuY2UgLyBNYXRoLnBvdyggMiwgdGltZXMgLSAxICk7DQoJfQ0KDQoJZG93bkFuaW0gPSB7fTsNCglkb3duQW5pbVsgcmVmIF0gPSAwOw0KCS8vIEJvdW5jZXMgdXAvZG93bi9sZWZ0L3JpZ2h0IHRoZW4gYmFjayB0byAwIC0tIHRpbWVzICogMiBhbmltYXRpb25zIGhhcHBlbiBoZXJlDQoJZm9yICggaSA9IDA7IGkgPCB0aW1lczsgaSsrICkgew0KCQl1cEFuaW0gPSB7fTsNCgkJdXBBbmltWyByZWYgXSA9ICggbW90aW9uID8gIi09IiA6ICIrPSIgKSArIGRpc3RhbmNlOw0KDQoJCWVsLmFuaW1hdGUoIHVwQW5pbSwgc3BlZWQsIGVhc2luZyApDQoJCQkuYW5pbWF0ZSggZG93bkFuaW0sIHNwZWVkLCBlYXNpbmcgKTsNCg0KCQlkaXN0YW5jZSA9IGhpZGUgPyBkaXN0YW5jZSAqIDIgOiBkaXN0YW5jZSAvIDI7DQoJfQ0KDQoJLy8gTGFzdCBCb3VuY2Ugd2hlbiBIaWRpbmcNCglpZiAoIGhpZGUgKSB7DQoJCXVwQW5pbSA9IHsgb3BhY2l0eTogMCB9Ow0KCQl1cEFuaW1bIHJlZiBdID0gKCBtb3Rpb24gPyAiLT0iIDogIis9IiApICsgZGlzdGFuY2U7DQoNCgkJZWwuYW5pbWF0ZSggdXBBbmltLCBzcGVlZCwgZWFzaW5nICk7DQoJfQ0KDQoJZWwucXVldWUoZnVuY3Rpb24oKSB7DQoJCWlmICggaGlkZSApIHsNCgkJCWVsLmhpZGUoKTsNCgkJfQ0KCQkkLmVmZmVjdHMucmVzdG9yZSggZWwsIHByb3BzICk7DQoJCSQuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKCBlbCApOw0KCQlkb25lKCk7DQoJfSk7DQoNCgkvLyBpbmplY3QgYWxsIHRoZSBhbmltYXRpb25zIHdlIGp1c3QgcXVldWVkIHRvIGJlIGZpcnN0IGluIGxpbmUgKGFmdGVyICJpbnByb2dyZXNzIikNCglpZiAoIHF1ZXVlbGVuID4gMSkgew0KCQlxdWV1ZS5zcGxpY2UuYXBwbHkoIHF1ZXVlLA0KCQkJWyAxLCAwIF0uY29uY2F0KCBxdWV1ZS5zcGxpY2UoIHF1ZXVlbGVuLCBhbmltcyArIDEgKSApICk7DQoJfQ0KCWVsLmRlcXVldWUoKTsNCg0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIENsaXAgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2NsaXAtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdENsaXAgPSAkLmVmZmVjdHMuZWZmZWN0LmNsaXAgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBlbCA9ICQoIHRoaXMgKSwNCgkJcHJvcHMgPSBbICJwb3NpdGlvbiIsICJ0b3AiLCAiYm90dG9tIiwgImxlZnQiLCAicmlnaHQiLCAiaGVpZ2h0IiwgIndpZHRoIiBdLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImhpZGUiICksDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoJCWRpcmVjdGlvbiA9IG8uZGlyZWN0aW9uIHx8ICJ2ZXJ0aWNhbCIsDQoJCXZlcnQgPSBkaXJlY3Rpb24gPT09ICJ2ZXJ0aWNhbCIsDQoJCXNpemUgPSB2ZXJ0ID8gImhlaWdodCIgOiAid2lkdGgiLA0KCQlwb3NpdGlvbiA9IHZlcnQgPyAidG9wIiA6ICJsZWZ0IiwNCgkJYW5pbWF0aW9uID0ge30sDQoJCXdyYXBwZXIsIGFuaW1hdGUsIGRpc3RhbmNlOw0KDQoJLy8gU2F2ZSAmIFNob3cNCgkkLmVmZmVjdHMuc2F2ZSggZWwsIHByb3BzICk7DQoJZWwuc2hvdygpOw0KDQoJLy8gQ3JlYXRlIFdyYXBwZXINCgl3cmFwcGVyID0gJC5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoIGVsICkuY3NzKHsNCgkJb3ZlcmZsb3c6ICJoaWRkZW4iDQoJfSk7DQoJYW5pbWF0ZSA9ICggZWxbMF0udGFnTmFtZSA9PT0gIklNRyIgKSA/IHdyYXBwZXIgOiBlbDsNCglkaXN0YW5jZSA9IGFuaW1hdGVbIHNpemUgXSgpOw0KDQoJLy8gU2hpZnQNCglpZiAoIHNob3cgKSB7DQoJCWFuaW1hdGUuY3NzKCBzaXplLCAwICk7DQoJCWFuaW1hdGUuY3NzKCBwb3NpdGlvbiwgZGlzdGFuY2UgLyAyICk7DQoJfQ0KDQoJLy8gQ3JlYXRlIEFuaW1hdGlvbiBPYmplY3Q6DQoJYW5pbWF0aW9uWyBzaXplIF0gPSBzaG93ID8gZGlzdGFuY2UgOiAwOw0KCWFuaW1hdGlvblsgcG9zaXRpb24gXSA9IHNob3cgPyAwIDogZGlzdGFuY2UgLyAyOw0KDQoJLy8gQW5pbWF0ZQ0KCWFuaW1hdGUuYW5pbWF0ZSggYW5pbWF0aW9uLCB7DQoJCXF1ZXVlOiBmYWxzZSwNCgkJZHVyYXRpb246IG8uZHVyYXRpb24sDQoJCWVhc2luZzogby5lYXNpbmcsDQoJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCWlmICggIXNob3cgKSB7DQoJCQkJZWwuaGlkZSgpOw0KCQkJfQ0KCQkJJC5lZmZlY3RzLnJlc3RvcmUoIGVsLCBwcm9wcyApOw0KCQkJJC5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoIGVsICk7DQoJCQlkb25lKCk7DQoJCX0NCgl9KTsNCg0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIERyb3AgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2Ryb3AtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdERyb3AgPSAkLmVmZmVjdHMuZWZmZWN0LmRyb3AgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCg0KCXZhciBlbCA9ICQoIHRoaXMgKSwNCgkJcHJvcHMgPSBbICJwb3NpdGlvbiIsICJ0b3AiLCAiYm90dG9tIiwgImxlZnQiLCAicmlnaHQiLCAib3BhY2l0eSIsICJoZWlnaHQiLCAid2lkdGgiIF0sDQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWwsIG8ubW9kZSB8fCAiaGlkZSIgKSwNCgkJc2hvdyA9IG1vZGUgPT09ICJzaG93IiwNCgkJZGlyZWN0aW9uID0gby5kaXJlY3Rpb24gfHwgImxlZnQiLA0KCQlyZWYgPSAoIGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJkb3duIiApID8gInRvcCIgOiAibGVmdCIsDQoJCW1vdGlvbiA9ICggZGlyZWN0aW9uID09PSAidXAiIHx8IGRpcmVjdGlvbiA9PT0gImxlZnQiICkgPyAicG9zIiA6ICJuZWciLA0KCQlhbmltYXRpb24gPSB7DQoJCQlvcGFjaXR5OiBzaG93ID8gMSA6IDANCgkJfSwNCgkJZGlzdGFuY2U7DQoNCgkvLyBBZGp1c3QNCgkkLmVmZmVjdHMuc2F2ZSggZWwsIHByb3BzICk7DQoJZWwuc2hvdygpOw0KCSQuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKCBlbCApOw0KDQoJZGlzdGFuY2UgPSBvLmRpc3RhbmNlIHx8IGVsWyByZWYgPT09ICJ0b3AiID8gIm91dGVySGVpZ2h0IiA6ICJvdXRlcldpZHRoIiBdKCB0cnVlICkgLyAyOw0KDQoJaWYgKCBzaG93ICkgew0KCQllbA0KCQkJLmNzcyggIm9wYWNpdHkiLCAwICkNCgkJCS5jc3MoIHJlZiwgbW90aW9uID09PSAicG9zIiA/IC1kaXN0YW5jZSA6IGRpc3RhbmNlICk7DQoJfQ0KDQoJLy8gQW5pbWF0aW9uDQoJYW5pbWF0aW9uWyByZWYgXSA9ICggc2hvdyA/DQoJCSggbW90aW9uID09PSAicG9zIiA/ICIrPSIgOiAiLT0iICkgOg0KCQkoIG1vdGlvbiA9PT0gInBvcyIgPyAiLT0iIDogIis9IiApICkgKw0KCQlkaXN0YW5jZTsNCg0KCS8vIEFuaW1hdGUNCgllbC5hbmltYXRlKCBhbmltYXRpb24sIHsNCgkJcXVldWU6IGZhbHNlLA0KCQlkdXJhdGlvbjogby5kdXJhdGlvbiwNCgkJZWFzaW5nOiBvLmVhc2luZywNCgkJY29tcGxldGU6IGZ1bmN0aW9uKCkgew0KCQkJaWYgKCBtb2RlID09PSAiaGlkZSIgKSB7DQoJCQkJZWwuaGlkZSgpOw0KCQkJfQ0KCQkJJC5lZmZlY3RzLnJlc3RvcmUoIGVsLCBwcm9wcyApOw0KCQkJJC5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoIGVsICk7DQoJCQlkb25lKCk7DQoJCX0NCgl9KTsNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBFeHBsb2RlIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9leHBsb2RlLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RFeHBsb2RlID0gJC5lZmZlY3RzLmVmZmVjdC5leHBsb2RlID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoNCgl2YXIgcm93cyA9IG8ucGllY2VzID8gTWF0aC5yb3VuZCggTWF0aC5zcXJ0KCBvLnBpZWNlcyApICkgOiAzLA0KCQljZWxscyA9IHJvd3MsDQoJCWVsID0gJCggdGhpcyApLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImhpZGUiICksDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoNCgkJLy8gc2hvdyBhbmQgdGhlbiB2aXNpYmlsaXR5OmhpZGRlbiB0aGUgZWxlbWVudCBiZWZvcmUgY2FsY3VsYXRpbmcgb2Zmc2V0DQoJCW9mZnNldCA9IGVsLnNob3coKS5jc3MoICJ2aXNpYmlsaXR5IiwgImhpZGRlbiIgKS5vZmZzZXQoKSwNCg0KCQkvLyB3aWR0aCBhbmQgaGVpZ2h0IG9mIGEgcGllY2UNCgkJd2lkdGggPSBNYXRoLmNlaWwoIGVsLm91dGVyV2lkdGgoKSAvIGNlbGxzICksDQoJCWhlaWdodCA9IE1hdGguY2VpbCggZWwub3V0ZXJIZWlnaHQoKSAvIHJvd3MgKSwNCgkJcGllY2VzID0gW10sDQoNCgkJLy8gbG9vcA0KCQlpLCBqLCBsZWZ0LCB0b3AsIG14LCBteTsNCg0KCS8vIGNoaWxkcmVuIGFuaW1hdGUgY29tcGxldGU6DQoJZnVuY3Rpb24gY2hpbGRDb21wbGV0ZSgpIHsNCgkJcGllY2VzLnB1c2goIHRoaXMgKTsNCgkJaWYgKCBwaWVjZXMubGVuZ3RoID09PSByb3dzICogY2VsbHMgKSB7DQoJCQlhbmltQ29tcGxldGUoKTsNCgkJfQ0KCX0NCg0KCS8vIGNsb25lIHRoZSBlbGVtZW50IGZvciBlYWNoIHJvdyBhbmQgY2VsbC4NCglmb3IgKCBpID0gMDsgaSA8IHJvd3MgOyBpKysgKSB7IC8vID09PT4NCgkJdG9wID0gb2Zmc2V0LnRvcCArIGkgKiBoZWlnaHQ7DQoJCW15ID0gaSAtICggcm93cyAtIDEgKSAvIDIgOw0KDQoJCWZvciAoIGogPSAwOyBqIDwgY2VsbHMgOyBqKysgKSB7IC8vIHx8fA0KCQkJbGVmdCA9IG9mZnNldC5sZWZ0ICsgaiAqIHdpZHRoOw0KCQkJbXggPSBqIC0gKCBjZWxscyAtIDEgKSAvIDIgOw0KDQoJCQkvLyBDcmVhdGUgYSBjbG9uZSBvZiB0aGUgbm93IGhpZGRlbiBtYWluIGVsZW1lbnQgdGhhdCB3aWxsIGJlIGFic29sdXRlIHBvc2l0aW9uZWQNCgkJCS8vIHdpdGhpbiBhIHdyYXBwZXIgZGl2IG9mZiB0aGUgLWxlZnQgYW5kIC10b3AgZXF1YWwgdG8gc2l6ZSBvZiBvdXIgcGllY2VzDQoJCQllbA0KCQkJCS5jbG9uZSgpDQoJCQkJLmFwcGVuZFRvKCAiYm9keSIgKQ0KCQkJCS53cmFwKCAiPGRpdj48L2Rpdj4iICkNCgkJCQkuY3NzKHsNCgkJCQkJcG9zaXRpb246ICJhYnNvbHV0ZSIsDQoJCQkJCXZpc2liaWxpdHk6ICJ2aXNpYmxlIiwNCgkJCQkJbGVmdDogLWogKiB3aWR0aCwNCgkJCQkJdG9wOiAtaSAqIGhlaWdodA0KCQkJCX0pDQoNCgkJCS8vIHNlbGVjdCB0aGUgd3JhcHBlciAtIG1ha2UgaXQgb3ZlcmZsb3c6IGhpZGRlbiBhbmQgYWJzb2x1dGUgcG9zaXRpb25lZCBiYXNlZCBvbg0KCQkJLy8gd2hlcmUgdGhlIG9yaWdpbmFsIHdhcyBsb2NhdGVkICtsZWZ0IGFuZCArdG9wIGVxdWFsIHRvIHRoZSBzaXplIG9mIHBpZWNlcw0KCQkJCS5wYXJlbnQoKQ0KCQkJCS5hZGRDbGFzcyggInVpLWVmZmVjdHMtZXhwbG9kZSIgKQ0KCQkJCS5jc3Moew0KCQkJCQlwb3NpdGlvbjogImFic29sdXRlIiwNCgkJCQkJb3ZlcmZsb3c6ICJoaWRkZW4iLA0KCQkJCQl3aWR0aDogd2lkdGgsDQoJCQkJCWhlaWdodDogaGVpZ2h0LA0KCQkJCQlsZWZ0OiBsZWZ0ICsgKCBzaG93ID8gbXggKiB3aWR0aCA6IDAgKSwNCgkJCQkJdG9wOiB0b3AgKyAoIHNob3cgPyBteSAqIGhlaWdodCA6IDAgKSwNCgkJCQkJb3BhY2l0eTogc2hvdyA/IDAgOiAxDQoJCQkJfSkuYW5pbWF0ZSh7DQoJCQkJCWxlZnQ6IGxlZnQgKyAoIHNob3cgPyAwIDogbXggKiB3aWR0aCApLA0KCQkJCQl0b3A6IHRvcCArICggc2hvdyA/IDAgOiBteSAqIGhlaWdodCApLA0KCQkJCQlvcGFjaXR5OiBzaG93ID8gMSA6IDANCgkJCQl9LCBvLmR1cmF0aW9uIHx8IDUwMCwgby5lYXNpbmcsIGNoaWxkQ29tcGxldGUgKTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGFuaW1Db21wbGV0ZSgpIHsNCgkJZWwuY3NzKHsNCgkJCXZpc2liaWxpdHk6ICJ2aXNpYmxlIg0KCQl9KTsNCgkJJCggcGllY2VzICkucmVtb3ZlKCk7DQoJCWlmICggIXNob3cgKSB7DQoJCQllbC5oaWRlKCk7DQoJCX0NCgkJZG9uZSgpOw0KCX0NCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBGYWRlIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9mYWRlLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RGYWRlID0gJC5lZmZlY3RzLmVmZmVjdC5mYWRlID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoJdmFyIGVsID0gJCggdGhpcyApLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgInRvZ2dsZSIgKTsNCg0KCWVsLmFuaW1hdGUoew0KCQlvcGFjaXR5OiBtb2RlDQoJfSwgew0KCQlxdWV1ZTogZmFsc2UsDQoJCWR1cmF0aW9uOiBvLmR1cmF0aW9uLA0KCQllYXNpbmc6IG8uZWFzaW5nLA0KCQljb21wbGV0ZTogZG9uZQ0KCX0pOw0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEZvbGQgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2ZvbGQtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdEZvbGQgPSAkLmVmZmVjdHMuZWZmZWN0LmZvbGQgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCg0KCS8vIENyZWF0ZSBlbGVtZW50DQoJdmFyIGVsID0gJCggdGhpcyApLA0KCQlwcm9wcyA9IFsgInBvc2l0aW9uIiwgInRvcCIsICJib3R0b20iLCAibGVmdCIsICJyaWdodCIsICJoZWlnaHQiLCAid2lkdGgiIF0sDQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWwsIG8ubW9kZSB8fCAiaGlkZSIgKSwNCgkJc2hvdyA9IG1vZGUgPT09ICJzaG93IiwNCgkJaGlkZSA9IG1vZGUgPT09ICJoaWRlIiwNCgkJc2l6ZSA9IG8uc2l6ZSB8fCAxNSwNCgkJcGVyY2VudCA9IC8oWzAtOV0rKSUvLmV4ZWMoIHNpemUgKSwNCgkJaG9yaXpGaXJzdCA9ICEhby5ob3JpekZpcnN0LA0KCQl3aWR0aEZpcnN0ID0gc2hvdyAhPT0gaG9yaXpGaXJzdCwNCgkJcmVmID0gd2lkdGhGaXJzdCA/IFsgIndpZHRoIiwgImhlaWdodCIgXSA6IFsgImhlaWdodCIsICJ3aWR0aCIgXSwNCgkJZHVyYXRpb24gPSBvLmR1cmF0aW9uIC8gMiwNCgkJd3JhcHBlciwgZGlzdGFuY2UsDQoJCWFuaW1hdGlvbjEgPSB7fSwNCgkJYW5pbWF0aW9uMiA9IHt9Ow0KDQoJJC5lZmZlY3RzLnNhdmUoIGVsLCBwcm9wcyApOw0KCWVsLnNob3coKTsNCg0KCS8vIENyZWF0ZSBXcmFwcGVyDQoJd3JhcHBlciA9ICQuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKCBlbCApLmNzcyh7DQoJCW92ZXJmbG93OiAiaGlkZGVuIg0KCX0pOw0KCWRpc3RhbmNlID0gd2lkdGhGaXJzdCA/DQoJCVsgd3JhcHBlci53aWR0aCgpLCB3cmFwcGVyLmhlaWdodCgpIF0gOg0KCQlbIHdyYXBwZXIuaGVpZ2h0KCksIHdyYXBwZXIud2lkdGgoKSBdOw0KDQoJaWYgKCBwZXJjZW50ICkgew0KCQlzaXplID0gcGFyc2VJbnQoIHBlcmNlbnRbIDEgXSwgMTAgKSAvIDEwMCAqIGRpc3RhbmNlWyBoaWRlID8gMCA6IDEgXTsNCgl9DQoJaWYgKCBzaG93ICkgew0KCQl3cmFwcGVyLmNzcyggaG9yaXpGaXJzdCA/IHsNCgkJCWhlaWdodDogMCwNCgkJCXdpZHRoOiBzaXplDQoJCX0gOiB7DQoJCQloZWlnaHQ6IHNpemUsDQoJCQl3aWR0aDogMA0KCQl9KTsNCgl9DQoNCgkvLyBBbmltYXRpb24NCglhbmltYXRpb24xWyByZWZbIDAgXSBdID0gc2hvdyA/IGRpc3RhbmNlWyAwIF0gOiBzaXplOw0KCWFuaW1hdGlvbjJbIHJlZlsgMSBdIF0gPSBzaG93ID8gZGlzdGFuY2VbIDEgXSA6IDA7DQoNCgkvLyBBbmltYXRlDQoJd3JhcHBlcg0KCQkuYW5pbWF0ZSggYW5pbWF0aW9uMSwgZHVyYXRpb24sIG8uZWFzaW5nICkNCgkJLmFuaW1hdGUoIGFuaW1hdGlvbjIsIGR1cmF0aW9uLCBvLmVhc2luZywgZnVuY3Rpb24oKSB7DQoJCQlpZiAoIGhpZGUgKSB7DQoJCQkJZWwuaGlkZSgpOw0KCQkJfQ0KCQkJJC5lZmZlY3RzLnJlc3RvcmUoIGVsLCBwcm9wcyApOw0KCQkJJC5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoIGVsICk7DQoJCQlkb25lKCk7DQoJCX0pOw0KDQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgSGlnaGxpZ2h0IDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9oaWdobGlnaHQtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdEhpZ2hsaWdodCA9ICQuZWZmZWN0cy5lZmZlY3QuaGlnaGxpZ2h0ID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCXByb3BzID0gWyAiYmFja2dyb3VuZEltYWdlIiwgImJhY2tncm91bmRDb2xvciIsICJvcGFjaXR5IiBdLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsZW0sIG8ubW9kZSB8fCAic2hvdyIgKSwNCgkJYW5pbWF0aW9uID0gew0KCQkJYmFja2dyb3VuZENvbG9yOiBlbGVtLmNzcyggImJhY2tncm91bmRDb2xvciIgKQ0KCQl9Ow0KDQoJaWYgKG1vZGUgPT09ICJoaWRlIikgew0KCQlhbmltYXRpb24ub3BhY2l0eSA9IDA7DQoJfQ0KDQoJJC5lZmZlY3RzLnNhdmUoIGVsZW0sIHByb3BzICk7DQoNCgllbGVtDQoJCS5zaG93KCkNCgkJLmNzcyh7DQoJCQliYWNrZ3JvdW5kSW1hZ2U6ICJub25lIiwNCgkJCWJhY2tncm91bmRDb2xvcjogby5jb2xvciB8fCAiI2ZmZmY5OSINCgkJfSkNCgkJLmFuaW1hdGUoIGFuaW1hdGlvbiwgew0KCQkJcXVldWU6IGZhbHNlLA0KCQkJZHVyYXRpb246IG8uZHVyYXRpb24sDQoJCQllYXNpbmc6IG8uZWFzaW5nLA0KCQkJY29tcGxldGU6IGZ1bmN0aW9uKCkgew0KCQkJCWlmICggbW9kZSA9PT0gImhpZGUiICkgew0KCQkJCQllbGVtLmhpZGUoKTsNCgkJCQl9DQoJCQkJJC5lZmZlY3RzLnJlc3RvcmUoIGVsZW0sIHByb3BzICk7DQoJCQkJZG9uZSgpOw0KCQkJfQ0KCQl9KTsNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBTaXplIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zaXplLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RTaXplID0gJC5lZmZlY3RzLmVmZmVjdC5zaXplID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBvcmlnaW5hbCwgYmFzZWxpbmUsIGZhY3RvciwNCgkJZWwgPSAkKCB0aGlzICksDQoJCXByb3BzMCA9IFsgInBvc2l0aW9uIiwgInRvcCIsICJib3R0b20iLCAibGVmdCIsICJyaWdodCIsICJ3aWR0aCIsICJoZWlnaHQiLCAib3ZlcmZsb3ciLCAib3BhY2l0eSIgXSwNCg0KCQkvLyBBbHdheXMgcmVzdG9yZQ0KCQlwcm9wczEgPSBbICJwb3NpdGlvbiIsICJ0b3AiLCAiYm90dG9tIiwgImxlZnQiLCAicmlnaHQiLCAib3ZlcmZsb3ciLCAib3BhY2l0eSIgXSwNCg0KCQkvLyBDb3B5IGZvciBjaGlsZHJlbg0KCQlwcm9wczIgPSBbICJ3aWR0aCIsICJoZWlnaHQiLCAib3ZlcmZsb3ciIF0sDQoJCWNQcm9wcyA9IFsgImZvbnRTaXplIiBdLA0KCQl2UHJvcHMgPSBbICJib3JkZXJUb3BXaWR0aCIsICJib3JkZXJCb3R0b21XaWR0aCIsICJwYWRkaW5nVG9wIiwgInBhZGRpbmdCb3R0b20iIF0sDQoJCWhQcm9wcyA9IFsgImJvcmRlckxlZnRXaWR0aCIsICJib3JkZXJSaWdodFdpZHRoIiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIgXSwNCg0KCQkvLyBTZXQgb3B0aW9ucw0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImVmZmVjdCIgKSwNCgkJcmVzdG9yZSA9IG8ucmVzdG9yZSB8fCBtb2RlICE9PSAiZWZmZWN0IiwNCgkJc2NhbGUgPSBvLnNjYWxlIHx8ICJib3RoIiwNCgkJb3JpZ2luID0gby5vcmlnaW4gfHwgWyAibWlkZGxlIiwgImNlbnRlciIgXSwNCgkJcG9zaXRpb24gPSBlbC5jc3MoICJwb3NpdGlvbiIgKSwNCgkJcHJvcHMgPSByZXN0b3JlID8gcHJvcHMwIDogcHJvcHMxLA0KCQl6ZXJvID0gew0KCQkJaGVpZ2h0OiAwLA0KCQkJd2lkdGg6IDAsDQoJCQlvdXRlckhlaWdodDogMCwNCgkJCW91dGVyV2lkdGg6IDANCgkJfTsNCg0KCWlmICggbW9kZSA9PT0gInNob3ciICkgew0KCQllbC5zaG93KCk7DQoJfQ0KCW9yaWdpbmFsID0gew0KCQloZWlnaHQ6IGVsLmhlaWdodCgpLA0KCQl3aWR0aDogZWwud2lkdGgoKSwNCgkJb3V0ZXJIZWlnaHQ6IGVsLm91dGVySGVpZ2h0KCksDQoJCW91dGVyV2lkdGg6IGVsLm91dGVyV2lkdGgoKQ0KCX07DQoNCglpZiAoIG8ubW9kZSA9PT0gInRvZ2dsZSIgJiYgbW9kZSA9PT0gInNob3ciICkgew0KCQllbC5mcm9tID0gby50byB8fCB6ZXJvOw0KCQllbC50byA9IG8uZnJvbSB8fCBvcmlnaW5hbDsNCgl9IGVsc2Ugew0KCQllbC5mcm9tID0gby5mcm9tIHx8ICggbW9kZSA9PT0gInNob3ciID8gemVybyA6IG9yaWdpbmFsICk7DQoJCWVsLnRvID0gby50byB8fCAoIG1vZGUgPT09ICJoaWRlIiA/IHplcm8gOiBvcmlnaW5hbCApOw0KCX0NCg0KCS8vIFNldCBzY2FsaW5nIGZhY3Rvcg0KCWZhY3RvciA9IHsNCgkJZnJvbTogew0KCQkJeTogZWwuZnJvbS5oZWlnaHQgLyBvcmlnaW5hbC5oZWlnaHQsDQoJCQl4OiBlbC5mcm9tLndpZHRoIC8gb3JpZ2luYWwud2lkdGgNCgkJfSwNCgkJdG86IHsNCgkJCXk6IGVsLnRvLmhlaWdodCAvIG9yaWdpbmFsLmhlaWdodCwNCgkJCXg6IGVsLnRvLndpZHRoIC8gb3JpZ2luYWwud2lkdGgNCgkJfQ0KCX07DQoNCgkvLyBTY2FsZSB0aGUgY3NzIGJveA0KCWlmICggc2NhbGUgPT09ICJib3giIHx8IHNjYWxlID09PSAiYm90aCIgKSB7DQoNCgkJLy8gVmVydGljYWwgcHJvcHMgc2NhbGluZw0KCQlpZiAoIGZhY3Rvci5mcm9tLnkgIT09IGZhY3Rvci50by55ICkgew0KCQkJcHJvcHMgPSBwcm9wcy5jb25jYXQoIHZQcm9wcyApOw0KCQkJZWwuZnJvbSA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbCwgdlByb3BzLCBmYWN0b3IuZnJvbS55LCBlbC5mcm9tICk7DQoJCQllbC50byA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbCwgdlByb3BzLCBmYWN0b3IudG8ueSwgZWwudG8gKTsNCgkJfQ0KDQoJCS8vIEhvcml6b250YWwgcHJvcHMgc2NhbGluZw0KCQlpZiAoIGZhY3Rvci5mcm9tLnggIT09IGZhY3Rvci50by54ICkgew0KCQkJcHJvcHMgPSBwcm9wcy5jb25jYXQoIGhQcm9wcyApOw0KCQkJZWwuZnJvbSA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbCwgaFByb3BzLCBmYWN0b3IuZnJvbS54LCBlbC5mcm9tICk7DQoJCQllbC50byA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbCwgaFByb3BzLCBmYWN0b3IudG8ueCwgZWwudG8gKTsNCgkJfQ0KCX0NCg0KCS8vIFNjYWxlIHRoZSBjb250ZW50DQoJaWYgKCBzY2FsZSA9PT0gImNvbnRlbnQiIHx8IHNjYWxlID09PSAiYm90aCIgKSB7DQoNCgkJLy8gVmVydGljYWwgcHJvcHMgc2NhbGluZw0KCQlpZiAoIGZhY3Rvci5mcm9tLnkgIT09IGZhY3Rvci50by55ICkgew0KCQkJcHJvcHMgPSBwcm9wcy5jb25jYXQoIGNQcm9wcyApLmNvbmNhdCggcHJvcHMyICk7DQoJCQllbC5mcm9tID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGVsLCBjUHJvcHMsIGZhY3Rvci5mcm9tLnksIGVsLmZyb20gKTsNCgkJCWVsLnRvID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGVsLCBjUHJvcHMsIGZhY3Rvci50by55LCBlbC50byApOw0KCQl9DQoJfQ0KDQoJJC5lZmZlY3RzLnNhdmUoIGVsLCBwcm9wcyApOw0KCWVsLnNob3coKTsNCgkkLmVmZmVjdHMuY3JlYXRlV3JhcHBlciggZWwgKTsNCgllbC5jc3MoICJvdmVyZmxvdyIsICJoaWRkZW4iICkuY3NzKCBlbC5mcm9tICk7DQoNCgkvLyBBZGp1c3QNCglpZiAob3JpZ2luKSB7IC8vIENhbGN1bGF0ZSBiYXNlbGluZSBzaGlmdHMNCgkJYmFzZWxpbmUgPSAkLmVmZmVjdHMuZ2V0QmFzZWxpbmUoIG9yaWdpbiwgb3JpZ2luYWwgKTsNCgkJZWwuZnJvbS50b3AgPSAoIG9yaWdpbmFsLm91dGVySGVpZ2h0IC0gZWwub3V0ZXJIZWlnaHQoKSApICogYmFzZWxpbmUueTsNCgkJZWwuZnJvbS5sZWZ0ID0gKCBvcmlnaW5hbC5vdXRlcldpZHRoIC0gZWwub3V0ZXJXaWR0aCgpICkgKiBiYXNlbGluZS54Ow0KCQllbC50by50b3AgPSAoIG9yaWdpbmFsLm91dGVySGVpZ2h0IC0gZWwudG8ub3V0ZXJIZWlnaHQgKSAqIGJhc2VsaW5lLnk7DQoJCWVsLnRvLmxlZnQgPSAoIG9yaWdpbmFsLm91dGVyV2lkdGggLSBlbC50by5vdXRlcldpZHRoICkgKiBiYXNlbGluZS54Ow0KCX0NCgllbC5jc3MoIGVsLmZyb20gKTsgLy8gc2V0IHRvcCAmIGxlZnQNCg0KCS8vIEFuaW1hdGUNCglpZiAoIHNjYWxlID09PSAiY29udGVudCIgfHwgc2NhbGUgPT09ICJib3RoIiApIHsgLy8gU2NhbGUgdGhlIGNoaWxkcmVuDQoNCgkJLy8gQWRkIG1hcmdpbnMvZm9udC1zaXplDQoJCXZQcm9wcyA9IHZQcm9wcy5jb25jYXQoWyAibWFyZ2luVG9wIiwgIm1hcmdpbkJvdHRvbSIgXSkuY29uY2F0KGNQcm9wcyk7DQoJCWhQcm9wcyA9IGhQcm9wcy5jb25jYXQoWyAibWFyZ2luTGVmdCIsICJtYXJnaW5SaWdodCIgXSk7DQoJCXByb3BzMiA9IHByb3BzMC5jb25jYXQodlByb3BzKS5jb25jYXQoaFByb3BzKTsNCg0KCQllbC5maW5kKCAiKlt3aWR0aF0iICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQl2YXIgY2hpbGQgPSAkKCB0aGlzICksDQoJCQkJY19vcmlnaW5hbCA9IHsNCgkJCQkJaGVpZ2h0OiBjaGlsZC5oZWlnaHQoKSwNCgkJCQkJd2lkdGg6IGNoaWxkLndpZHRoKCksDQoJCQkJCW91dGVySGVpZ2h0OiBjaGlsZC5vdXRlckhlaWdodCgpLA0KCQkJCQlvdXRlcldpZHRoOiBjaGlsZC5vdXRlcldpZHRoKCkNCgkJCQl9Ow0KCQkJaWYgKHJlc3RvcmUpIHsNCgkJCQkkLmVmZmVjdHMuc2F2ZShjaGlsZCwgcHJvcHMyKTsNCgkJCX0NCg0KCQkJY2hpbGQuZnJvbSA9IHsNCgkJCQloZWlnaHQ6IGNfb3JpZ2luYWwuaGVpZ2h0ICogZmFjdG9yLmZyb20ueSwNCgkJCQl3aWR0aDogY19vcmlnaW5hbC53aWR0aCAqIGZhY3Rvci5mcm9tLngsDQoJCQkJb3V0ZXJIZWlnaHQ6IGNfb3JpZ2luYWwub3V0ZXJIZWlnaHQgKiBmYWN0b3IuZnJvbS55LA0KCQkJCW91dGVyV2lkdGg6IGNfb3JpZ2luYWwub3V0ZXJXaWR0aCAqIGZhY3Rvci5mcm9tLngNCgkJCX07DQoJCQljaGlsZC50byA9IHsNCgkJCQloZWlnaHQ6IGNfb3JpZ2luYWwuaGVpZ2h0ICogZmFjdG9yLnRvLnksDQoJCQkJd2lkdGg6IGNfb3JpZ2luYWwud2lkdGggKiBmYWN0b3IudG8ueCwNCgkJCQlvdXRlckhlaWdodDogY19vcmlnaW5hbC5oZWlnaHQgKiBmYWN0b3IudG8ueSwNCgkJCQlvdXRlcldpZHRoOiBjX29yaWdpbmFsLndpZHRoICogZmFjdG9yLnRvLngNCgkJCX07DQoNCgkJCS8vIFZlcnRpY2FsIHByb3BzIHNjYWxpbmcNCgkJCWlmICggZmFjdG9yLmZyb20ueSAhPT0gZmFjdG9yLnRvLnkgKSB7DQoJCQkJY2hpbGQuZnJvbSA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBjaGlsZCwgdlByb3BzLCBmYWN0b3IuZnJvbS55LCBjaGlsZC5mcm9tICk7DQoJCQkJY2hpbGQudG8gPSAkLmVmZmVjdHMuc2V0VHJhbnNpdGlvbiggY2hpbGQsIHZQcm9wcywgZmFjdG9yLnRvLnksIGNoaWxkLnRvICk7DQoJCQl9DQoNCgkJCS8vIEhvcml6b250YWwgcHJvcHMgc2NhbGluZw0KCQkJaWYgKCBmYWN0b3IuZnJvbS54ICE9PSBmYWN0b3IudG8ueCApIHsNCgkJCQljaGlsZC5mcm9tID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGNoaWxkLCBoUHJvcHMsIGZhY3Rvci5mcm9tLngsIGNoaWxkLmZyb20gKTsNCgkJCQljaGlsZC50byA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBjaGlsZCwgaFByb3BzLCBmYWN0b3IudG8ueCwgY2hpbGQudG8gKTsNCgkJCX0NCg0KCQkJLy8gQW5pbWF0ZSBjaGlsZHJlbg0KCQkJY2hpbGQuY3NzKCBjaGlsZC5mcm9tICk7DQoJCQljaGlsZC5hbmltYXRlKCBjaGlsZC50bywgby5kdXJhdGlvbiwgby5lYXNpbmcsIGZ1bmN0aW9uKCkgew0KDQoJCQkJLy8gUmVzdG9yZSBjaGlsZHJlbg0KCQkJCWlmICggcmVzdG9yZSApIHsNCgkJCQkJJC5lZmZlY3RzLnJlc3RvcmUoIGNoaWxkLCBwcm9wczIgKTsNCgkJCQl9DQoJCQl9KTsNCgkJfSk7DQoJfQ0KDQoJLy8gQW5pbWF0ZQ0KCWVsLmFuaW1hdGUoIGVsLnRvLCB7DQoJCXF1ZXVlOiBmYWxzZSwNCgkJZHVyYXRpb246IG8uZHVyYXRpb24sDQoJCWVhc2luZzogby5lYXNpbmcsDQoJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCWlmICggZWwudG8ub3BhY2l0eSA9PT0gMCApIHsNCgkJCQllbC5jc3MoICJvcGFjaXR5IiwgZWwuZnJvbS5vcGFjaXR5ICk7DQoJCQl9DQoJCQlpZiAoIG1vZGUgPT09ICJoaWRlIiApIHsNCgkJCQllbC5oaWRlKCk7DQoJCQl9DQoJCQkkLmVmZmVjdHMucmVzdG9yZSggZWwsIHByb3BzICk7DQoJCQlpZiAoICFyZXN0b3JlICkgew0KDQoJCQkJLy8gd2UgbmVlZCB0byBjYWxjdWxhdGUgb3VyIG5ldyBwb3NpdGlvbmluZyBiYXNlZCBvbiB0aGUgc2NhbGluZw0KCQkJCWlmICggcG9zaXRpb24gPT09ICJzdGF0aWMiICkgew0KCQkJCQllbC5jc3Moew0KCQkJCQkJcG9zaXRpb246ICJyZWxhdGl2ZSIsDQoJCQkJCQl0b3A6IGVsLnRvLnRvcCwNCgkJCQkJCWxlZnQ6IGVsLnRvLmxlZnQNCgkJCQkJfSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJC5lYWNoKFsgInRvcCIsICJsZWZ0IiBdLCBmdW5jdGlvbiggaWR4LCBwb3MgKSB7DQoJCQkJCQllbC5jc3MoIHBvcywgZnVuY3Rpb24oIF8sIHN0ciApIHsNCgkJCQkJCQl2YXIgdmFsID0gcGFyc2VJbnQoIHN0ciwgMTAgKSwNCgkJCQkJCQkJdG9SZWYgPSBpZHggPyBlbC50by5sZWZ0IDogZWwudG8udG9wOw0KDQoJCQkJCQkJLy8gaWYgb3JpZ2luYWwgd2FzICJhdXRvIiwgcmVjYWxjdWxhdGUgdGhlIG5ldyB2YWx1ZSBmcm9tIHdyYXBwZXINCgkJCQkJCQlpZiAoIHN0ciA9PT0gImF1dG8iICkgew0KCQkJCQkJCQlyZXR1cm4gdG9SZWYgKyAicHgiOw0KCQkJCQkJCX0NCg0KCQkJCQkJCXJldHVybiB2YWwgKyB0b1JlZiArICJweCI7DQoJCQkJCQl9KTsNCgkJCQkJfSk7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkkLmVmZmVjdHMucmVtb3ZlV3JhcHBlciggZWwgKTsNCgkJCWRvbmUoKTsNCgkJfQ0KCX0pOw0KDQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgU2NhbGUgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3NjYWxlLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RTY2FsZSA9ICQuZWZmZWN0cy5lZmZlY3Quc2NhbGUgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCg0KCS8vIENyZWF0ZSBlbGVtZW50DQoJdmFyIGVsID0gJCggdGhpcyApLA0KCQlvcHRpb25zID0gJC5leHRlbmQoIHRydWUsIHt9LCBvICksDQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWwsIG8ubW9kZSB8fCAiZWZmZWN0IiApLA0KCQlwZXJjZW50ID0gcGFyc2VJbnQoIG8ucGVyY2VudCwgMTAgKSB8fA0KCQkJKCBwYXJzZUludCggby5wZXJjZW50LCAxMCApID09PSAwID8gMCA6ICggbW9kZSA9PT0gImhpZGUiID8gMCA6IDEwMCApICksDQoJCWRpcmVjdGlvbiA9IG8uZGlyZWN0aW9uIHx8ICJib3RoIiwNCgkJb3JpZ2luID0gby5vcmlnaW4sDQoJCW9yaWdpbmFsID0gew0KCQkJaGVpZ2h0OiBlbC5oZWlnaHQoKSwNCgkJCXdpZHRoOiBlbC53aWR0aCgpLA0KCQkJb3V0ZXJIZWlnaHQ6IGVsLm91dGVySGVpZ2h0KCksDQoJCQlvdXRlcldpZHRoOiBlbC5vdXRlcldpZHRoKCkNCgkJfSwNCgkJZmFjdG9yID0gew0KCQkJeTogZGlyZWN0aW9uICE9PSAiaG9yaXpvbnRhbCIgPyAocGVyY2VudCAvIDEwMCkgOiAxLA0KCQkJeDogZGlyZWN0aW9uICE9PSAidmVydGljYWwiID8gKHBlcmNlbnQgLyAxMDApIDogMQ0KCQl9Ow0KDQoJLy8gV2UgYXJlIGdvaW5nIHRvIHBhc3MgdGhpcyBlZmZlY3QgdG8gdGhlIHNpemUgZWZmZWN0Og0KCW9wdGlvbnMuZWZmZWN0ID0gInNpemUiOw0KCW9wdGlvbnMucXVldWUgPSBmYWxzZTsNCglvcHRpb25zLmNvbXBsZXRlID0gZG9uZTsNCg0KCS8vIFNldCBkZWZhdWx0IG9yaWdpbiBhbmQgcmVzdG9yZSBmb3Igc2hvdy9oaWRlDQoJaWYgKCBtb2RlICE9PSAiZWZmZWN0IiApIHsNCgkJb3B0aW9ucy5vcmlnaW4gPSBvcmlnaW4gfHwgWyAibWlkZGxlIiwgImNlbnRlciIgXTsNCgkJb3B0aW9ucy5yZXN0b3JlID0gdHJ1ZTsNCgl9DQoNCglvcHRpb25zLmZyb20gPSBvLmZyb20gfHwgKCBtb2RlID09PSAic2hvdyIgPyB7DQoJCWhlaWdodDogMCwNCgkJd2lkdGg6IDAsDQoJCW91dGVySGVpZ2h0OiAwLA0KCQlvdXRlcldpZHRoOiAwDQoJfSA6IG9yaWdpbmFsICk7DQoJb3B0aW9ucy50byA9IHsNCgkJaGVpZ2h0OiBvcmlnaW5hbC5oZWlnaHQgKiBmYWN0b3IueSwNCgkJd2lkdGg6IG9yaWdpbmFsLndpZHRoICogZmFjdG9yLngsDQoJCW91dGVySGVpZ2h0OiBvcmlnaW5hbC5vdXRlckhlaWdodCAqIGZhY3Rvci55LA0KCQlvdXRlcldpZHRoOiBvcmlnaW5hbC5vdXRlcldpZHRoICogZmFjdG9yLngNCgl9Ow0KDQoJLy8gRmFkZSBvcHRpb24gdG8gc3VwcG9ydCBwdWZmDQoJaWYgKCBvcHRpb25zLmZhZGUgKSB7DQoJCWlmICggbW9kZSA9PT0gInNob3ciICkgew0KCQkJb3B0aW9ucy5mcm9tLm9wYWNpdHkgPSAwOw0KCQkJb3B0aW9ucy50by5vcGFjaXR5ID0gMTsNCgkJfQ0KCQlpZiAoIG1vZGUgPT09ICJoaWRlIiApIHsNCgkJCW9wdGlvbnMuZnJvbS5vcGFjaXR5ID0gMTsNCgkJCW9wdGlvbnMudG8ub3BhY2l0eSA9IDA7DQoJCX0NCgl9DQoNCgkvLyBBbmltYXRlDQoJZWwuZWZmZWN0KCBvcHRpb25zICk7DQoNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBQdWZmIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9wdWZmLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RQdWZmID0gJC5lZmZlY3RzLmVmZmVjdC5wdWZmID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWxlbSwgby5tb2RlIHx8ICJoaWRlIiApLA0KCQloaWRlID0gbW9kZSA9PT0gImhpZGUiLA0KCQlwZXJjZW50ID0gcGFyc2VJbnQoIG8ucGVyY2VudCwgMTAgKSB8fCAxNTAsDQoJCWZhY3RvciA9IHBlcmNlbnQgLyAxMDAsDQoJCW9yaWdpbmFsID0gew0KCQkJaGVpZ2h0OiBlbGVtLmhlaWdodCgpLA0KCQkJd2lkdGg6IGVsZW0ud2lkdGgoKSwNCgkJCW91dGVySGVpZ2h0OiBlbGVtLm91dGVySGVpZ2h0KCksDQoJCQlvdXRlcldpZHRoOiBlbGVtLm91dGVyV2lkdGgoKQ0KCQl9Ow0KDQoJJC5leHRlbmQoIG8sIHsNCgkJZWZmZWN0OiAic2NhbGUiLA0KCQlxdWV1ZTogZmFsc2UsDQoJCWZhZGU6IHRydWUsDQoJCW1vZGU6IG1vZGUsDQoJCWNvbXBsZXRlOiBkb25lLA0KCQlwZXJjZW50OiBoaWRlID8gcGVyY2VudCA6IDEwMCwNCgkJZnJvbTogaGlkZSA/DQoJCQlvcmlnaW5hbCA6DQoJCQl7DQoJCQkJaGVpZ2h0OiBvcmlnaW5hbC5oZWlnaHQgKiBmYWN0b3IsDQoJCQkJd2lkdGg6IG9yaWdpbmFsLndpZHRoICogZmFjdG9yLA0KCQkJCW91dGVySGVpZ2h0OiBvcmlnaW5hbC5vdXRlckhlaWdodCAqIGZhY3RvciwNCgkJCQlvdXRlcldpZHRoOiBvcmlnaW5hbC5vdXRlcldpZHRoICogZmFjdG9yDQoJCQl9DQoJfSk7DQoNCgllbGVtLmVmZmVjdCggbyApOw0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIFB1bHNhdGUgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3B1bHNhdGUtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdFB1bHNhdGUgPSAkLmVmZmVjdHMuZWZmZWN0LnB1bHNhdGUgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCgl2YXIgZWxlbSA9ICQoIHRoaXMgKSwNCgkJbW9kZSA9ICQuZWZmZWN0cy5zZXRNb2RlKCBlbGVtLCBvLm1vZGUgfHwgInNob3ciICksDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoJCWhpZGUgPSBtb2RlID09PSAiaGlkZSIsDQoJCXNob3doaWRlID0gKCBzaG93IHx8IG1vZGUgPT09ICJoaWRlIiApLA0KDQoJCS8vIHNob3dpbmcgb3IgaGlkaW5nIGxlYXZlcyBvZiB0aGUgImxhc3QiIGFuaW1hdGlvbg0KCQlhbmltcyA9ICggKCBvLnRpbWVzIHx8IDUgKSAqIDIgKSArICggc2hvd2hpZGUgPyAxIDogMCApLA0KCQlkdXJhdGlvbiA9IG8uZHVyYXRpb24gLyBhbmltcywNCgkJYW5pbWF0ZVRvID0gMCwNCgkJcXVldWUgPSBlbGVtLnF1ZXVlKCksDQoJCXF1ZXVlbGVuID0gcXVldWUubGVuZ3RoLA0KCQlpOw0KDQoJaWYgKCBzaG93IHx8ICFlbGVtLmlzKCI6dmlzaWJsZSIpKSB7DQoJCWVsZW0uY3NzKCAib3BhY2l0eSIsIDAgKS5zaG93KCk7DQoJCWFuaW1hdGVUbyA9IDE7DQoJfQ0KDQoJLy8gYW5pbXMgLSAxIG9wYWNpdHkgInRvZ2dsZXMiDQoJZm9yICggaSA9IDE7IGkgPCBhbmltczsgaSsrICkgew0KCQllbGVtLmFuaW1hdGUoew0KCQkJb3BhY2l0eTogYW5pbWF0ZVRvDQoJCX0sIGR1cmF0aW9uLCBvLmVhc2luZyApOw0KCQlhbmltYXRlVG8gPSAxIC0gYW5pbWF0ZVRvOw0KCX0NCg0KCWVsZW0uYW5pbWF0ZSh7DQoJCW9wYWNpdHk6IGFuaW1hdGVUbw0KCX0sIGR1cmF0aW9uLCBvLmVhc2luZyk7DQoNCgllbGVtLnF1ZXVlKGZ1bmN0aW9uKCkgew0KCQlpZiAoIGhpZGUgKSB7DQoJCQllbGVtLmhpZGUoKTsNCgkJfQ0KCQlkb25lKCk7DQoJfSk7DQoNCgkvLyBXZSBqdXN0IHF1ZXVlZCB1cCAiYW5pbXMiIGFuaW1hdGlvbnMsIHdlIG5lZWQgdG8gcHV0IHRoZW0gbmV4dCBpbiB0aGUgcXVldWUNCglpZiAoIHF1ZXVlbGVuID4gMSApIHsNCgkJcXVldWUuc3BsaWNlLmFwcGx5KCBxdWV1ZSwNCgkJCVsgMSwgMCBdLmNvbmNhdCggcXVldWUuc3BsaWNlKCBxdWV1ZWxlbiwgYW5pbXMgKyAxICkgKSApOw0KCX0NCgllbGVtLmRlcXVldWUoKTsNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBTaGFrZSAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vc2hha2UtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdFNoYWtlID0gJC5lZmZlY3RzLmVmZmVjdC5zaGFrZSA9IGZ1bmN0aW9uKCBvLCBkb25lICkgew0KDQoJdmFyIGVsID0gJCggdGhpcyApLA0KCQlwcm9wcyA9IFsgInBvc2l0aW9uIiwgInRvcCIsICJib3R0b20iLCAibGVmdCIsICJyaWdodCIsICJoZWlnaHQiLCAid2lkdGgiIF0sDQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWwsIG8ubW9kZSB8fCAiZWZmZWN0IiApLA0KCQlkaXJlY3Rpb24gPSBvLmRpcmVjdGlvbiB8fCAibGVmdCIsDQoJCWRpc3RhbmNlID0gby5kaXN0YW5jZSB8fCAyMCwNCgkJdGltZXMgPSBvLnRpbWVzIHx8IDMsDQoJCWFuaW1zID0gdGltZXMgKiAyICsgMSwNCgkJc3BlZWQgPSBNYXRoLnJvdW5kKCBvLmR1cmF0aW9uIC8gYW5pbXMgKSwNCgkJcmVmID0gKGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJkb3duIikgPyAidG9wIiA6ICJsZWZ0IiwNCgkJcG9zaXRpdmVNb3Rpb24gPSAoZGlyZWN0aW9uID09PSAidXAiIHx8IGRpcmVjdGlvbiA9PT0gImxlZnQiKSwNCgkJYW5pbWF0aW9uID0ge30sDQoJCWFuaW1hdGlvbjEgPSB7fSwNCgkJYW5pbWF0aW9uMiA9IHt9LA0KCQlpLA0KDQoJCS8vIHdlIHdpbGwgbmVlZCB0byByZS1hc3NlbWJsZSB0aGUgcXVldWUgdG8gc3RhY2sgb3VyIGFuaW1hdGlvbnMgaW4gcGxhY2UNCgkJcXVldWUgPSBlbC5xdWV1ZSgpLA0KCQlxdWV1ZWxlbiA9IHF1ZXVlLmxlbmd0aDsNCg0KCSQuZWZmZWN0cy5zYXZlKCBlbCwgcHJvcHMgKTsNCgllbC5zaG93KCk7DQoJJC5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoIGVsICk7DQoNCgkvLyBBbmltYXRpb24NCglhbmltYXRpb25bIHJlZiBdID0gKCBwb3NpdGl2ZU1vdGlvbiA/ICItPSIgOiAiKz0iICkgKyBkaXN0YW5jZTsNCglhbmltYXRpb24xWyByZWYgXSA9ICggcG9zaXRpdmVNb3Rpb24gPyAiKz0iIDogIi09IiApICsgZGlzdGFuY2UgKiAyOw0KCWFuaW1hdGlvbjJbIHJlZiBdID0gKCBwb3NpdGl2ZU1vdGlvbiA/ICItPSIgOiAiKz0iICkgKyBkaXN0YW5jZSAqIDI7DQoNCgkvLyBBbmltYXRlDQoJZWwuYW5pbWF0ZSggYW5pbWF0aW9uLCBzcGVlZCwgby5lYXNpbmcgKTsNCg0KCS8vIFNoYWtlcw0KCWZvciAoIGkgPSAxOyBpIDwgdGltZXM7IGkrKyApIHsNCgkJZWwuYW5pbWF0ZSggYW5pbWF0aW9uMSwgc3BlZWQsIG8uZWFzaW5nICkuYW5pbWF0ZSggYW5pbWF0aW9uMiwgc3BlZWQsIG8uZWFzaW5nICk7DQoJfQ0KCWVsDQoJCS5hbmltYXRlKCBhbmltYXRpb24xLCBzcGVlZCwgby5lYXNpbmcgKQ0KCQkuYW5pbWF0ZSggYW5pbWF0aW9uLCBzcGVlZCAvIDIsIG8uZWFzaW5nICkNCgkJLnF1ZXVlKGZ1bmN0aW9uKCkgew0KCQkJaWYgKCBtb2RlID09PSAiaGlkZSIgKSB7DQoJCQkJZWwuaGlkZSgpOw0KCQkJfQ0KCQkJJC5lZmZlY3RzLnJlc3RvcmUoIGVsLCBwcm9wcyApOw0KCQkJJC5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoIGVsICk7DQoJCQlkb25lKCk7DQoJCX0pOw0KDQoJLy8gaW5qZWN0IGFsbCB0aGUgYW5pbWF0aW9ucyB3ZSBqdXN0IHF1ZXVlZCB0byBiZSBmaXJzdCBpbiBsaW5lIChhZnRlciAiaW5wcm9ncmVzcyIpDQoJaWYgKCBxdWV1ZWxlbiA+IDEpIHsNCgkJcXVldWUuc3BsaWNlLmFwcGx5KCBxdWV1ZSwNCgkJCVsgMSwgMCBdLmNvbmNhdCggcXVldWUuc3BsaWNlKCBxdWV1ZWxlbiwgYW5pbXMgKyAxICkgKSApOw0KCX0NCgllbC5kZXF1ZXVlKCk7DQoNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBTbGlkZSAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vc2xpZGUtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdFNsaWRlID0gJC5lZmZlY3RzLmVmZmVjdC5zbGlkZSA9IGZ1bmN0aW9uKCBvLCBkb25lICkgew0KDQoJLy8gQ3JlYXRlIGVsZW1lbnQNCgl2YXIgZWwgPSAkKCB0aGlzICksDQoJCXByb3BzID0gWyAicG9zaXRpb24iLCAidG9wIiwgImJvdHRvbSIsICJsZWZ0IiwgInJpZ2h0IiwgIndpZHRoIiwgImhlaWdodCIgXSwNCgkJbW9kZSA9ICQuZWZmZWN0cy5zZXRNb2RlKCBlbCwgby5tb2RlIHx8ICJzaG93IiApLA0KCQlzaG93ID0gbW9kZSA9PT0gInNob3ciLA0KCQlkaXJlY3Rpb24gPSBvLmRpcmVjdGlvbiB8fCAibGVmdCIsDQoJCXJlZiA9IChkaXJlY3Rpb24gPT09ICJ1cCIgfHwgZGlyZWN0aW9uID09PSAiZG93biIpID8gInRvcCIgOiAibGVmdCIsDQoJCXBvc2l0aXZlTW90aW9uID0gKGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJsZWZ0IiksDQoJCWRpc3RhbmNlLA0KCQlhbmltYXRpb24gPSB7fTsNCg0KCS8vIEFkanVzdA0KCSQuZWZmZWN0cy5zYXZlKCBlbCwgcHJvcHMgKTsNCgllbC5zaG93KCk7DQoJZGlzdGFuY2UgPSBvLmRpc3RhbmNlIHx8IGVsWyByZWYgPT09ICJ0b3AiID8gIm91dGVySGVpZ2h0IiA6ICJvdXRlcldpZHRoIiBdKCB0cnVlICk7DQoNCgkkLmVmZmVjdHMuY3JlYXRlV3JhcHBlciggZWwgKS5jc3Moew0KCQlvdmVyZmxvdzogImhpZGRlbiINCgl9KTsNCg0KCWlmICggc2hvdyApIHsNCgkJZWwuY3NzKCByZWYsIHBvc2l0aXZlTW90aW9uID8gKGlzTmFOKGRpc3RhbmNlKSA/ICItIiArIGRpc3RhbmNlIDogLWRpc3RhbmNlKSA6IGRpc3RhbmNlICk7DQoJfQ0KDQoJLy8gQW5pbWF0aW9uDQoJYW5pbWF0aW9uWyByZWYgXSA9ICggc2hvdyA/DQoJCSggcG9zaXRpdmVNb3Rpb24gPyAiKz0iIDogIi09IikgOg0KCQkoIHBvc2l0aXZlTW90aW9uID8gIi09IiA6ICIrPSIpKSArDQoJCWRpc3RhbmNlOw0KDQoJLy8gQW5pbWF0ZQ0KCWVsLmFuaW1hdGUoIGFuaW1hdGlvbiwgew0KCQlxdWV1ZTogZmFsc2UsDQoJCWR1cmF0aW9uOiBvLmR1cmF0aW9uLA0KCQllYXNpbmc6IG8uZWFzaW5nLA0KCQljb21wbGV0ZTogZnVuY3Rpb24oKSB7DQoJCQlpZiAoIG1vZGUgPT09ICJoaWRlIiApIHsNCgkJCQllbC5oaWRlKCk7DQoJCQl9DQoJCQkkLmVmZmVjdHMucmVzdG9yZSggZWwsIHByb3BzICk7DQoJCQkkLmVmZmVjdHMucmVtb3ZlV3JhcHBlciggZWwgKTsNCgkJCWRvbmUoKTsNCgkJfQ0KCX0pOw0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIFRyYW5zZmVyIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS90cmFuc2Zlci1lZmZlY3QvDQogKi8NCg0KDQp2YXIgZWZmZWN0VHJhbnNmZXIgPSAkLmVmZmVjdHMuZWZmZWN0LnRyYW5zZmVyID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCXRhcmdldCA9ICQoIG8udG8gKSwNCgkJdGFyZ2V0Rml4ZWQgPSB0YXJnZXQuY3NzKCAicG9zaXRpb24iICkgPT09ICJmaXhlZCIsDQoJCWJvZHkgPSAkKCJib2R5IiksDQoJCWZpeFRvcCA9IHRhcmdldEZpeGVkID8gYm9keS5zY3JvbGxUb3AoKSA6IDAsDQoJCWZpeExlZnQgPSB0YXJnZXRGaXhlZCA/IGJvZHkuc2Nyb2xsTGVmdCgpIDogMCwNCgkJZW5kUG9zaXRpb24gPSB0YXJnZXQub2Zmc2V0KCksDQoJCWFuaW1hdGlvbiA9IHsNCgkJCXRvcDogZW5kUG9zaXRpb24udG9wIC0gZml4VG9wLA0KCQkJbGVmdDogZW5kUG9zaXRpb24ubGVmdCAtIGZpeExlZnQsDQoJCQloZWlnaHQ6IHRhcmdldC5pbm5lckhlaWdodCgpLA0KCQkJd2lkdGg6IHRhcmdldC5pbm5lcldpZHRoKCkNCgkJfSwNCgkJc3RhcnRQb3NpdGlvbiA9IGVsZW0ub2Zmc2V0KCksDQoJCXRyYW5zZmVyID0gJCggIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PiIgKQ0KCQkJLmFwcGVuZFRvKCBkb2N1bWVudC5ib2R5ICkNCgkJCS5hZGRDbGFzcyggby5jbGFzc05hbWUgKQ0KCQkJLmNzcyh7DQoJCQkJdG9wOiBzdGFydFBvc2l0aW9uLnRvcCAtIGZpeFRvcCwNCgkJCQlsZWZ0OiBzdGFydFBvc2l0aW9uLmxlZnQgLSBmaXhMZWZ0LA0KCQkJCWhlaWdodDogZWxlbS5pbm5lckhlaWdodCgpLA0KCQkJCXdpZHRoOiBlbGVtLmlubmVyV2lkdGgoKSwNCgkJCQlwb3NpdGlvbjogdGFyZ2V0Rml4ZWQgPyAiZml4ZWQiIDogImFic29sdXRlIg0KCQkJfSkNCgkJCS5hbmltYXRlKCBhbmltYXRpb24sIG8uZHVyYXRpb24sIG8uZWFzaW5nLCBmdW5jdGlvbigpIHsNCgkJCQl0cmFuc2Zlci5yZW1vdmUoKTsNCgkJCQlkb25lKCk7DQoJCQl9KTsNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgUHJvZ3Jlc3NiYXIgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3Byb2dyZXNzYmFyLw0KICovDQoNCg0KdmFyIHByb2dyZXNzYmFyID0gJC53aWRnZXQoICJ1aS5wcm9ncmVzc2JhciIsIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCglvcHRpb25zOiB7DQoJCW1heDogMTAwLA0KCQl2YWx1ZTogMCwNCg0KCQljaGFuZ2U6IG51bGwsDQoJCWNvbXBsZXRlOiBudWxsDQoJfSwNCg0KCW1pbjogMCwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQkvLyBDb25zdHJhaW4gaW5pdGlhbCB2YWx1ZQ0KCQl0aGlzLm9sZFZhbHVlID0gdGhpcy5vcHRpb25zLnZhbHVlID0gdGhpcy5fY29uc3RyYWluZWRWYWx1ZSgpOw0KDQoJCXRoaXMuZWxlbWVudA0KCQkJLmFkZENsYXNzKCAidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiICkNCgkJCS5hdHRyKHsNCgkJCQkvLyBPbmx5IHNldCBzdGF0aWMgdmFsdWVzLCBhcmlhLXZhbHVlbm93IGFuZCBhcmlhLXZhbHVlbWF4IGFyZQ0KCQkJCS8vIHNldCBpbnNpZGUgX3JlZnJlc2hWYWx1ZSgpDQoJCQkJcm9sZTogInByb2dyZXNzYmFyIiwNCgkJCQkiYXJpYS12YWx1ZW1pbiI6IHRoaXMubWluDQoJCQl9KTsNCg0KCQl0aGlzLnZhbHVlRGl2ID0gJCggIjxkaXYgY2xhc3M9J3VpLXByb2dyZXNzYmFyLXZhbHVlIHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWxlZnQnPjwvZGl2PiIgKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLmVsZW1lbnQgKTsNCg0KCQl0aGlzLl9yZWZyZXNoVmFsdWUoKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcyggInVpLXByb2dyZXNzYmFyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiApDQoJCQkucmVtb3ZlQXR0ciggInJvbGUiICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS12YWx1ZW1pbiIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLXZhbHVlbWF4IiApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtdmFsdWVub3ciICk7DQoNCgkJdGhpcy52YWx1ZURpdi5yZW1vdmUoKTsNCgl9LA0KDQoJdmFsdWU6IGZ1bmN0aW9uKCBuZXdWYWx1ZSApIHsNCgkJaWYgKCBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkICkgew0KCQkJcmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZTsNCgkJfQ0KDQoJCXRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMuX2NvbnN0cmFpbmVkVmFsdWUoIG5ld1ZhbHVlICk7DQoJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KCX0sDQoNCglfY29uc3RyYWluZWRWYWx1ZTogZnVuY3Rpb24oIG5ld1ZhbHVlICkgew0KCQlpZiAoIG5ld1ZhbHVlID09PSB1bmRlZmluZWQgKSB7DQoJCQluZXdWYWx1ZSA9IHRoaXMub3B0aW9ucy52YWx1ZTsNCgkJfQ0KDQoJCXRoaXMuaW5kZXRlcm1pbmF0ZSA9IG5ld1ZhbHVlID09PSBmYWxzZTsNCg0KCQkvLyBzYW5pdGl6ZSB2YWx1ZQ0KCQlpZiAoIHR5cGVvZiBuZXdWYWx1ZSAhPT0gIm51bWJlciIgKSB7DQoJCQluZXdWYWx1ZSA9IDA7DQoJCX0NCg0KCQlyZXR1cm4gdGhpcy5pbmRldGVybWluYXRlID8gZmFsc2UgOg0KCQkJTWF0aC5taW4oIHRoaXMub3B0aW9ucy5tYXgsIE1hdGgubWF4KCB0aGlzLm1pbiwgbmV3VmFsdWUgKSApOw0KCX0sDQoNCglfc2V0T3B0aW9uczogZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJCS8vIEVuc3VyZSAidmFsdWUiIG9wdGlvbiBpcyBzZXQgYWZ0ZXIgb3RoZXIgdmFsdWVzIChsaWtlIG1heCkNCgkJdmFyIHZhbHVlID0gb3B0aW9ucy52YWx1ZTsNCgkJZGVsZXRlIG9wdGlvbnMudmFsdWU7DQoNCgkJdGhpcy5fc3VwZXIoIG9wdGlvbnMgKTsNCg0KCQl0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl9jb25zdHJhaW5lZFZhbHVlKCB2YWx1ZSApOw0KCQl0aGlzLl9yZWZyZXNoVmFsdWUoKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCWlmICgga2V5ID09PSAibWF4IiApIHsNCgkJCS8vIERvbid0IGFsbG93IGEgbWF4IGxlc3MgdGhhbiBtaW4NCgkJCXZhbHVlID0gTWF0aC5tYXgoIHRoaXMubWluLCB2YWx1ZSApOw0KCQl9DQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy5lbGVtZW50DQoJCQkJLnRvZ2dsZUNsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiLCAhIXZhbHVlICkNCgkJCQkuYXR0ciggImFyaWEtZGlzYWJsZWQiLCB2YWx1ZSApOw0KCQl9DQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoJfSwNCg0KCV9wZXJjZW50YWdlOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuaW5kZXRlcm1pbmF0ZSA/IDEwMCA6IDEwMCAqICggdGhpcy5vcHRpb25zLnZhbHVlIC0gdGhpcy5taW4gKSAvICggdGhpcy5vcHRpb25zLm1heCAtIHRoaXMubWluICk7DQoJfSwNCg0KCV9yZWZyZXNoVmFsdWU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdmFsdWUgPSB0aGlzLm9wdGlvbnMudmFsdWUsDQoJCQlwZXJjZW50YWdlID0gdGhpcy5fcGVyY2VudGFnZSgpOw0KDQoJCXRoaXMudmFsdWVEaXYNCgkJCS50b2dnbGUoIHRoaXMuaW5kZXRlcm1pbmF0ZSB8fCB2YWx1ZSA+IHRoaXMubWluICkNCgkJCS50b2dnbGVDbGFzcyggInVpLWNvcm5lci1yaWdodCIsIHZhbHVlID09PSB0aGlzLm9wdGlvbnMubWF4ICkNCgkJCS53aWR0aCggcGVyY2VudGFnZS50b0ZpeGVkKDApICsgIiUiICk7DQoNCgkJdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCAidWktcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZSIsIHRoaXMuaW5kZXRlcm1pbmF0ZSApOw0KDQoJCWlmICggdGhpcy5pbmRldGVybWluYXRlICkgew0KCQkJdGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoICJhcmlhLXZhbHVlbm93IiApOw0KCQkJaWYgKCAhdGhpcy5vdmVybGF5RGl2ICkgew0KCQkJCXRoaXMub3ZlcmxheURpdiA9ICQoICI8ZGl2IGNsYXNzPSd1aS1wcm9ncmVzc2Jhci1vdmVybGF5Jz48L2Rpdj4iICkuYXBwZW5kVG8oIHRoaXMudmFsdWVEaXYgKTsNCgkJCX0NCgkJfSBlbHNlIHsNCgkJCXRoaXMuZWxlbWVudC5hdHRyKHsNCgkJCQkiYXJpYS12YWx1ZW1heCI6IHRoaXMub3B0aW9ucy5tYXgsDQoJCQkJImFyaWEtdmFsdWVub3ciOiB2YWx1ZQ0KCQkJfSk7DQoJCQlpZiAoIHRoaXMub3ZlcmxheURpdiApIHsNCgkJCQl0aGlzLm92ZXJsYXlEaXYucmVtb3ZlKCk7DQoJCQkJdGhpcy5vdmVybGF5RGl2ID0gbnVsbDsNCgkJCX0NCgkJfQ0KDQoJCWlmICggdGhpcy5vbGRWYWx1ZSAhPT0gdmFsdWUgKSB7DQoJCQl0aGlzLm9sZFZhbHVlID0gdmFsdWU7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiApOw0KCQl9DQoJCWlmICggdmFsdWUgPT09IHRoaXMub3B0aW9ucy5tYXggKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY29tcGxldGUiICk7DQoJCX0NCgl9DQp9KTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBTZWxlY3RhYmxlIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zZWxlY3RhYmxlLw0KICovDQoNCg0KdmFyIHNlbGVjdGFibGUgPSAkLndpZGdldCgidWkuc2VsZWN0YWJsZSIsICQudWkubW91c2UsIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCglvcHRpb25zOiB7DQoJCWFwcGVuZFRvOiAiYm9keSIsDQoJCWF1dG9SZWZyZXNoOiB0cnVlLA0KCQlkaXN0YW5jZTogMCwNCgkJZmlsdGVyOiAiKiIsDQoJCXRvbGVyYW5jZTogInRvdWNoIiwNCg0KCQkvLyBjYWxsYmFja3MNCgkJc2VsZWN0ZWQ6IG51bGwsDQoJCXNlbGVjdGluZzogbnVsbCwNCgkJc3RhcnQ6IG51bGwsDQoJCXN0b3A6IG51bGwsDQoJCXVuc2VsZWN0ZWQ6IG51bGwsDQoJCXVuc2VsZWN0aW5nOiBudWxsDQoJfSwNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHNlbGVjdGVlcywNCgkJCXRoYXQgPSB0aGlzOw0KDQoJCXRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0YWJsZSIpOw0KDQoJCXRoaXMuZHJhZ2dlZCA9IGZhbHNlOw0KDQoJCS8vIGNhY2hlIHNlbGVjdGVlIGNoaWxkcmVuIGJhc2VkIG9uIGZpbHRlcg0KCQl0aGlzLnJlZnJlc2ggPSBmdW5jdGlvbigpIHsNCgkJCXNlbGVjdGVlcyA9ICQodGhhdC5vcHRpb25zLmZpbHRlciwgdGhhdC5lbGVtZW50WzBdKTsNCgkJCXNlbGVjdGVlcy5hZGRDbGFzcygidWktc2VsZWN0ZWUiKTsNCgkJCXNlbGVjdGVlcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCXZhciAkdGhpcyA9ICQodGhpcyksDQoJCQkJCXBvcyA9ICR0aGlzLm9mZnNldCgpOw0KCQkJCSQuZGF0YSh0aGlzLCAic2VsZWN0YWJsZS1pdGVtIiwgew0KCQkJCQllbGVtZW50OiB0aGlzLA0KCQkJCQkkZWxlbWVudDogJHRoaXMsDQoJCQkJCWxlZnQ6IHBvcy5sZWZ0LA0KCQkJCQl0b3A6IHBvcy50b3AsDQoJCQkJCXJpZ2h0OiBwb3MubGVmdCArICR0aGlzLm91dGVyV2lkdGgoKSwNCgkJCQkJYm90dG9tOiBwb3MudG9wICsgJHRoaXMub3V0ZXJIZWlnaHQoKSwNCgkJCQkJc3RhcnRzZWxlY3RlZDogZmFsc2UsDQoJCQkJCXNlbGVjdGVkOiAkdGhpcy5oYXNDbGFzcygidWktc2VsZWN0ZWQiKSwNCgkJCQkJc2VsZWN0aW5nOiAkdGhpcy5oYXNDbGFzcygidWktc2VsZWN0aW5nIiksDQoJCQkJCXVuc2VsZWN0aW5nOiAkdGhpcy5oYXNDbGFzcygidWktdW5zZWxlY3RpbmciKQ0KCQkJCX0pOw0KCQkJfSk7DQoJCX07DQoJCXRoaXMucmVmcmVzaCgpOw0KDQoJCXRoaXMuc2VsZWN0ZWVzID0gc2VsZWN0ZWVzLmFkZENsYXNzKCJ1aS1zZWxlY3RlZSIpOw0KDQoJCXRoaXMuX21vdXNlSW5pdCgpOw0KDQoJCXRoaXMuaGVscGVyID0gJCgiPGRpdiBjbGFzcz0ndWktc2VsZWN0YWJsZS1oZWxwZXInPjwvZGl2PiIpOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuc2VsZWN0ZWVzDQoJCQkucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVlIikNCgkJCS5yZW1vdmVEYXRhKCJzZWxlY3RhYmxlLWl0ZW0iKTsNCgkJdGhpcy5lbGVtZW50DQoJCQkucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGFibGUgdWktc2VsZWN0YWJsZS1kaXNhYmxlZCIpOw0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCgl9LA0KDQoJX21vdXNlU3RhcnQ6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCW9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoNCgkJdGhpcy5vcG9zID0gWyBldmVudC5wYWdlWCwgZXZlbnQucGFnZVkgXTsNCg0KCQlpZiAodGhpcy5vcHRpb25zLmRpc2FibGVkKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLnNlbGVjdGVlcyA9ICQob3B0aW9ucy5maWx0ZXIsIHRoaXMuZWxlbWVudFswXSk7DQoNCgkJdGhpcy5fdHJpZ2dlcigic3RhcnQiLCBldmVudCk7DQoNCgkJJChvcHRpb25zLmFwcGVuZFRvKS5hcHBlbmQodGhpcy5oZWxwZXIpOw0KCQkvLyBwb3NpdGlvbiBoZWxwZXIgKGxhc3NvKQ0KCQl0aGlzLmhlbHBlci5jc3Moew0KCQkJImxlZnQiOiBldmVudC5wYWdlWCwNCgkJCSJ0b3AiOiBldmVudC5wYWdlWSwNCgkJCSJ3aWR0aCI6IDAsDQoJCQkiaGVpZ2h0IjogMA0KCQl9KTsNCg0KCQlpZiAob3B0aW9ucy5hdXRvUmVmcmVzaCkgew0KCQkJdGhpcy5yZWZyZXNoKCk7DQoJCX0NCg0KCQl0aGlzLnNlbGVjdGVlcy5maWx0ZXIoIi51aS1zZWxlY3RlZCIpLmVhY2goZnVuY3Rpb24oKSB7DQoJCQl2YXIgc2VsZWN0ZWUgPSAkLmRhdGEodGhpcywgInNlbGVjdGFibGUtaXRlbSIpOw0KCQkJc2VsZWN0ZWUuc3RhcnRzZWxlY3RlZCA9IHRydWU7DQoJCQlpZiAoIWV2ZW50Lm1ldGFLZXkgJiYgIWV2ZW50LmN0cmxLZXkpIHsNCgkJCQlzZWxlY3RlZS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKTsNCgkJCQlzZWxlY3RlZS5zZWxlY3RlZCA9IGZhbHNlOw0KCQkJCXNlbGVjdGVlLiRlbGVtZW50LmFkZENsYXNzKCJ1aS11bnNlbGVjdGluZyIpOw0KCQkJCXNlbGVjdGVlLnVuc2VsZWN0aW5nID0gdHJ1ZTsNCgkJCQkvLyBzZWxlY3RhYmxlIFVOU0VMRUNUSU5HIGNhbGxiYWNrDQoJCQkJdGhhdC5fdHJpZ2dlcigidW5zZWxlY3RpbmciLCBldmVudCwgew0KCQkJCQl1bnNlbGVjdGluZzogc2VsZWN0ZWUuZWxlbWVudA0KCQkJCX0pOw0KCQkJfQ0KCQl9KTsNCg0KCQkkKGV2ZW50LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIGRvU2VsZWN0LA0KCQkJCXNlbGVjdGVlID0gJC5kYXRhKHRoaXMsICJzZWxlY3RhYmxlLWl0ZW0iKTsNCgkJCWlmIChzZWxlY3RlZSkgew0KCQkJCWRvU2VsZWN0ID0gKCFldmVudC5tZXRhS2V5ICYmICFldmVudC5jdHJsS2V5KSB8fCAhc2VsZWN0ZWUuJGVsZW1lbnQuaGFzQ2xhc3MoInVpLXNlbGVjdGVkIik7DQoJCQkJc2VsZWN0ZWUuJGVsZW1lbnQNCgkJCQkJLnJlbW92ZUNsYXNzKGRvU2VsZWN0ID8gInVpLXVuc2VsZWN0aW5nIiA6ICJ1aS1zZWxlY3RlZCIpDQoJCQkJCS5hZGRDbGFzcyhkb1NlbGVjdCA/ICJ1aS1zZWxlY3RpbmciIDogInVpLXVuc2VsZWN0aW5nIik7DQoJCQkJc2VsZWN0ZWUudW5zZWxlY3RpbmcgPSAhZG9TZWxlY3Q7DQoJCQkJc2VsZWN0ZWUuc2VsZWN0aW5nID0gZG9TZWxlY3Q7DQoJCQkJc2VsZWN0ZWUuc2VsZWN0ZWQgPSBkb1NlbGVjdDsNCgkJCQkvLyBzZWxlY3RhYmxlIChVTilTRUxFQ1RJTkcgY2FsbGJhY2sNCgkJCQlpZiAoZG9TZWxlY3QpIHsNCgkJCQkJdGhhdC5fdHJpZ2dlcigic2VsZWN0aW5nIiwgZXZlbnQsIHsNCgkJCQkJCXNlbGVjdGluZzogc2VsZWN0ZWUuZWxlbWVudA0KCQkJCQl9KTsNCgkJCQl9IGVsc2Ugew0KCQkJCQl0aGF0Ll90cmlnZ2VyKCJ1bnNlbGVjdGluZyIsIGV2ZW50LCB7DQoJCQkJCQl1bnNlbGVjdGluZzogc2VsZWN0ZWUuZWxlbWVudA0KCQkJCQl9KTsNCgkJCQl9DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9KTsNCg0KCX0sDQoNCglfbW91c2VEcmFnOiBmdW5jdGlvbihldmVudCkgew0KDQoJCXRoaXMuZHJhZ2dlZCA9IHRydWU7DQoNCgkJaWYgKHRoaXMub3B0aW9ucy5kaXNhYmxlZCkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdmFyIHRtcCwNCgkJCXRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCXgxID0gdGhpcy5vcG9zWzBdLA0KCQkJeTEgPSB0aGlzLm9wb3NbMV0sDQoJCQl4MiA9IGV2ZW50LnBhZ2VYLA0KCQkJeTIgPSBldmVudC5wYWdlWTsNCg0KCQlpZiAoeDEgPiB4MikgeyB0bXAgPSB4MjsgeDIgPSB4MTsgeDEgPSB0bXA7IH0NCgkJaWYgKHkxID4geTIpIHsgdG1wID0geTI7IHkyID0geTE7IHkxID0gdG1wOyB9DQoJCXRoaXMuaGVscGVyLmNzcyh7IGxlZnQ6IHgxLCB0b3A6IHkxLCB3aWR0aDogeDIgLSB4MSwgaGVpZ2h0OiB5MiAtIHkxIH0pOw0KDQoJCXRoaXMuc2VsZWN0ZWVzLmVhY2goZnVuY3Rpb24oKSB7DQoJCQl2YXIgc2VsZWN0ZWUgPSAkLmRhdGEodGhpcywgInNlbGVjdGFibGUtaXRlbSIpLA0KCQkJCWhpdCA9IGZhbHNlOw0KDQoJCQkvL3ByZXZlbnQgaGVscGVyIGZyb20gYmVpbmcgc2VsZWN0ZWQgaWYgYXBwZW5kVG86IHNlbGVjdGFibGUNCgkJCWlmICghc2VsZWN0ZWUgfHwgc2VsZWN0ZWUuZWxlbWVudCA9PT0gdGhhdC5lbGVtZW50WzBdKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQlpZiAob3B0aW9ucy50b2xlcmFuY2UgPT09ICJ0b3VjaCIpIHsNCgkJCQloaXQgPSAoICEoc2VsZWN0ZWUubGVmdCA+IHgyIHx8IHNlbGVjdGVlLnJpZ2h0IDwgeDEgfHwgc2VsZWN0ZWUudG9wID4geTIgfHwgc2VsZWN0ZWUuYm90dG9tIDwgeTEpICk7DQoJCQl9IGVsc2UgaWYgKG9wdGlvbnMudG9sZXJhbmNlID09PSAiZml0Iikgew0KCQkJCWhpdCA9IChzZWxlY3RlZS5sZWZ0ID4geDEgJiYgc2VsZWN0ZWUucmlnaHQgPCB4MiAmJiBzZWxlY3RlZS50b3AgPiB5MSAmJiBzZWxlY3RlZS5ib3R0b20gPCB5Mik7DQoJCQl9DQoNCgkJCWlmIChoaXQpIHsNCgkJCQkvLyBTRUxFQ1QNCgkJCQlpZiAoc2VsZWN0ZWUuc2VsZWN0ZWQpIHsNCgkJCQkJc2VsZWN0ZWUuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVkIik7DQoJCQkJCXNlbGVjdGVlLnNlbGVjdGVkID0gZmFsc2U7DQoJCQkJfQ0KCQkJCWlmIChzZWxlY3RlZS51bnNlbGVjdGluZykgew0KCQkJCQlzZWxlY3RlZS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktdW5zZWxlY3RpbmciKTsNCgkJCQkJc2VsZWN0ZWUudW5zZWxlY3RpbmcgPSBmYWxzZTsNCgkJCQl9DQoJCQkJaWYgKCFzZWxlY3RlZS5zZWxlY3RpbmcpIHsNCgkJCQkJc2VsZWN0ZWUuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGluZyIpOw0KCQkJCQlzZWxlY3RlZS5zZWxlY3RpbmcgPSB0cnVlOw0KCQkJCQkvLyBzZWxlY3RhYmxlIFNFTEVDVElORyBjYWxsYmFjaw0KCQkJCQl0aGF0Ll90cmlnZ2VyKCJzZWxlY3RpbmciLCBldmVudCwgew0KCQkJCQkJc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJCX0pOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJLy8gVU5TRUxFQ1QNCgkJCQlpZiAoc2VsZWN0ZWUuc2VsZWN0aW5nKSB7DQoJCQkJCWlmICgoZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5KSAmJiBzZWxlY3RlZS5zdGFydHNlbGVjdGVkKSB7DQoJCQkJCQlzZWxlY3RlZS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0aW5nIik7DQoJCQkJCQlzZWxlY3RlZS5zZWxlY3RpbmcgPSBmYWxzZTsNCgkJCQkJCXNlbGVjdGVlLiRlbGVtZW50LmFkZENsYXNzKCJ1aS1zZWxlY3RlZCIpOw0KCQkJCQkJc2VsZWN0ZWUuc2VsZWN0ZWQgPSB0cnVlOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJc2VsZWN0ZWUuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpOw0KCQkJCQkJc2VsZWN0ZWUuc2VsZWN0aW5nID0gZmFsc2U7DQoJCQkJCQlpZiAoc2VsZWN0ZWUuc3RhcnRzZWxlY3RlZCkgew0KCQkJCQkJCXNlbGVjdGVlLiRlbGVtZW50LmFkZENsYXNzKCJ1aS11bnNlbGVjdGluZyIpOw0KCQkJCQkJCXNlbGVjdGVlLnVuc2VsZWN0aW5nID0gdHJ1ZTsNCgkJCQkJCX0NCgkJCQkJCS8vIHNlbGVjdGFibGUgVU5TRUxFQ1RJTkcgY2FsbGJhY2sNCgkJCQkJCXRoYXQuX3RyaWdnZXIoInVuc2VsZWN0aW5nIiwgZXZlbnQsIHsNCgkJCQkJCQl1bnNlbGVjdGluZzogc2VsZWN0ZWUuZWxlbWVudA0KCQkJCQkJfSk7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYgKHNlbGVjdGVlLnNlbGVjdGVkKSB7DQoJCQkJCWlmICghZXZlbnQubWV0YUtleSAmJiAhZXZlbnQuY3RybEtleSAmJiAhc2VsZWN0ZWUuc3RhcnRzZWxlY3RlZCkgew0KCQkJCQkJc2VsZWN0ZWUuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVkIik7DQoJCQkJCQlzZWxlY3RlZS5zZWxlY3RlZCA9IGZhbHNlOw0KDQoJCQkJCQlzZWxlY3RlZS4kZWxlbWVudC5hZGRDbGFzcygidWktdW5zZWxlY3RpbmciKTsNCgkJCQkJCXNlbGVjdGVlLnVuc2VsZWN0aW5nID0gdHJ1ZTsNCgkJCQkJCS8vIHNlbGVjdGFibGUgVU5TRUxFQ1RJTkcgY2FsbGJhY2sNCgkJCQkJCXRoYXQuX3RyaWdnZXIoInVuc2VsZWN0aW5nIiwgZXZlbnQsIHsNCgkJCQkJCQl1bnNlbGVjdGluZzogc2VsZWN0ZWUuZWxlbWVudA0KCQkJCQkJfSk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0pOw0KDQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJX21vdXNlU3RvcDogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCXRoaXMuZHJhZ2dlZCA9IGZhbHNlOw0KDQoJCSQoIi51aS11bnNlbGVjdGluZyIsIHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciBzZWxlY3RlZSA9ICQuZGF0YSh0aGlzLCAic2VsZWN0YWJsZS1pdGVtIik7DQoJCQlzZWxlY3RlZS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktdW5zZWxlY3RpbmciKTsNCgkJCXNlbGVjdGVlLnVuc2VsZWN0aW5nID0gZmFsc2U7DQoJCQlzZWxlY3RlZS5zdGFydHNlbGVjdGVkID0gZmFsc2U7DQoJCQl0aGF0Ll90cmlnZ2VyKCJ1bnNlbGVjdGVkIiwgZXZlbnQsIHsNCgkJCQl1bnNlbGVjdGVkOiBzZWxlY3RlZS5lbGVtZW50DQoJCQl9KTsNCgkJfSk7DQoJCSQoIi51aS1zZWxlY3RpbmciLCB0aGlzLmVsZW1lbnRbMF0pLmVhY2goZnVuY3Rpb24oKSB7DQoJCQl2YXIgc2VsZWN0ZWUgPSAkLmRhdGEodGhpcywgInNlbGVjdGFibGUtaXRlbSIpOw0KCQkJc2VsZWN0ZWUuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLmFkZENsYXNzKCJ1aS1zZWxlY3RlZCIpOw0KCQkJc2VsZWN0ZWUuc2VsZWN0aW5nID0gZmFsc2U7DQoJCQlzZWxlY3RlZS5zZWxlY3RlZCA9IHRydWU7DQoJCQlzZWxlY3RlZS5zdGFydHNlbGVjdGVkID0gdHJ1ZTsNCgkJCXRoYXQuX3RyaWdnZXIoInNlbGVjdGVkIiwgZXZlbnQsIHsNCgkJCQlzZWxlY3RlZDogc2VsZWN0ZWUuZWxlbWVudA0KCQkJfSk7DQoJCX0pOw0KCQl0aGlzLl90cmlnZ2VyKCJzdG9wIiwgZXZlbnQpOw0KDQoJCXRoaXMuaGVscGVyLnJlbW92ZSgpOw0KDQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFNlbGVjdG1lbnUgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3NlbGVjdG1lbnUNCiAqLw0KDQoNCnZhciBzZWxlY3RtZW51ID0gJC53aWRnZXQoICJ1aS5zZWxlY3RtZW51Iiwgew0KCXZlcnNpb246ICIxLjExLjIiLA0KCWRlZmF1bHRFbGVtZW50OiAiPHNlbGVjdD4iLA0KCW9wdGlvbnM6IHsNCgkJYXBwZW5kVG86IG51bGwsDQoJCWRpc2FibGVkOiBudWxsLA0KCQlpY29uczogew0KCQkJYnV0dG9uOiAidWktaWNvbi10cmlhbmdsZS0xLXMiDQoJCX0sDQoJCXBvc2l0aW9uOiB7DQoJCQlteTogImxlZnQgdG9wIiwNCgkJCWF0OiAibGVmdCBib3R0b20iLA0KCQkJY29sbGlzaW9uOiAibm9uZSINCgkJfSwNCgkJd2lkdGg6IG51bGwsDQoNCgkJLy8gY2FsbGJhY2tzDQoJCWNoYW5nZTogbnVsbCwNCgkJY2xvc2U6IG51bGwsDQoJCWZvY3VzOiBudWxsLA0KCQlvcGVuOiBudWxsLA0KCQlzZWxlY3Q6IG51bGwNCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXZhciBzZWxlY3RtZW51SWQgPSB0aGlzLmVsZW1lbnQudW5pcXVlSWQoKS5hdHRyKCAiaWQiICk7DQoJCXRoaXMuaWRzID0gew0KCQkJZWxlbWVudDogc2VsZWN0bWVudUlkLA0KCQkJYnV0dG9uOiBzZWxlY3RtZW51SWQgKyAiLWJ1dHRvbiIsDQoJCQltZW51OiBzZWxlY3RtZW51SWQgKyAiLW1lbnUiDQoJCX07DQoNCgkJdGhpcy5fZHJhd0J1dHRvbigpOw0KCQl0aGlzLl9kcmF3TWVudSgpOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5kaXNhYmxlKCk7DQoJCX0NCgl9LA0KDQoJX2RyYXdCdXR0b246IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQl0YWJpbmRleCA9IHRoaXMuZWxlbWVudC5hdHRyKCAidGFiaW5kZXgiICk7DQoNCgkJLy8gQXNzb2NpYXRlIGV4aXN0aW5nIGxhYmVsIHdpdGggdGhlIG5ldyBidXR0b24NCgkJdGhpcy5sYWJlbCA9ICQoICJsYWJlbFtmb3I9JyIgKyB0aGlzLmlkcy5lbGVtZW50ICsgIiddIiApLmF0dHIoICJmb3IiLCB0aGlzLmlkcy5idXR0b24gKTsNCgkJdGhpcy5fb24oIHRoaXMubGFiZWwsIHsNCgkJCWNsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5idXR0b24uZm9jdXMoKTsNCgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJfQ0KCQl9KTsNCg0KCQkvLyBIaWRlIG9yaWdpbmFsIHNlbGVjdCBlbGVtZW50DQoJCXRoaXMuZWxlbWVudC5oaWRlKCk7DQoNCgkJLy8gQ3JlYXRlIGJ1dHRvbg0KCQl0aGlzLmJ1dHRvbiA9ICQoICI8c3Bhbj4iLCB7DQoJCQkiY2xhc3MiOiAidWktc2VsZWN0bWVudS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIsDQoJCQl0YWJpbmRleDogdGFiaW5kZXggfHwgdGhpcy5vcHRpb25zLmRpc2FibGVkID8gLTEgOiAwLA0KCQkJaWQ6IHRoaXMuaWRzLmJ1dHRvbiwNCgkJCXJvbGU6ICJjb21ib2JveCIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSIsDQoJCQkiYXJpYS1hdXRvY29tcGxldGUiOiAibGlzdCIsDQoJCQkiYXJpYS1vd25zIjogdGhpcy5pZHMubWVudSwNCgkJCSJhcmlhLWhhc3BvcHVwIjogInRydWUiDQoJCX0pDQoJCQkuaW5zZXJ0QWZ0ZXIoIHRoaXMuZWxlbWVudCApOw0KDQoJCSQoICI8c3Bhbj4iLCB7DQoJCQkiY2xhc3MiOiAidWktaWNvbiAiICsgdGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbg0KCQl9KQ0KCQkJLnByZXBlbmRUbyggdGhpcy5idXR0b24gKTsNCg0KCQl0aGlzLmJ1dHRvblRleHQgPSAkKCAiPHNwYW4+Iiwgew0KCQkJImNsYXNzIjogInVpLXNlbGVjdG1lbnUtdGV4dCINCgkJfSkNCgkJCS5hcHBlbmRUbyggdGhpcy5idXR0b24gKTsNCg0KCQl0aGlzLl9zZXRUZXh0KCB0aGlzLmJ1dHRvblRleHQsIHRoaXMuZWxlbWVudC5maW5kKCAib3B0aW9uOnNlbGVjdGVkIiApLnRleHQoKSApOw0KCQl0aGlzLl9yZXNpemVCdXR0b24oKTsNCg0KCQl0aGlzLl9vbiggdGhpcy5idXR0b24sIHRoaXMuX2J1dHRvbkV2ZW50cyApOw0KCQl0aGlzLmJ1dHRvbi5vbmUoICJmb2N1c2luIiwgZnVuY3Rpb24oKSB7DQoNCgkJCS8vIERlbGF5IHJlbmRlcmluZyB0aGUgbWVudSBpdGVtcyB1bnRpbCB0aGUgYnV0dG9uIHJlY2VpdmVzIGZvY3VzLg0KCQkJLy8gVGhlIG1lbnUgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHJlbmRlcmVkIHZpYSBhIHByb2dyYW1tYXRpYyBvcGVuLg0KCQkJaWYgKCAhdGhhdC5tZW51SXRlbXMgKSB7DQoJCQkJdGhhdC5fcmVmcmVzaE1lbnUoKTsNCgkJCX0NCgkJfSk7DQoJCXRoaXMuX2hvdmVyYWJsZSggdGhpcy5idXR0b24gKTsNCgkJdGhpcy5fZm9jdXNhYmxlKCB0aGlzLmJ1dHRvbiApOw0KCX0sDQoNCglfZHJhd01lbnU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJLy8gQ3JlYXRlIG1lbnUNCgkJdGhpcy5tZW51ID0gJCggIjx1bD4iLCB7DQoJCQkiYXJpYS1oaWRkZW4iOiAidHJ1ZSIsDQoJCQkiYXJpYS1sYWJlbGxlZGJ5IjogdGhpcy5pZHMuYnV0dG9uLA0KCQkJaWQ6IHRoaXMuaWRzLm1lbnUNCgkJfSk7DQoNCgkJLy8gV3JhcCBtZW51DQoJCXRoaXMubWVudVdyYXAgPSAkKCAiPGRpdj4iLCB7DQoJCQkiY2xhc3MiOiAidWktc2VsZWN0bWVudS1tZW51IHVpLWZyb250Ig0KCQl9KQ0KCQkJLmFwcGVuZCggdGhpcy5tZW51ICkNCgkJCS5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KDQoJCS8vIEluaXRpYWxpemUgbWVudSB3aWRnZXQNCgkJdGhpcy5tZW51SW5zdGFuY2UgPSB0aGlzLm1lbnUNCgkJCS5tZW51KHsNCgkJCQlyb2xlOiAibGlzdGJveCIsDQoJCQkJc2VsZWN0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KDQoJCQkJCS8vIHN1cHBvcnQ6IElFOA0KCQkJCQkvLyBJZiB0aGUgaXRlbSB3YXMgc2VsZWN0ZWQgdmlhIGEgY2xpY2ssIHRoZSB0ZXh0IHNlbGVjdGlvbg0KCQkJCQkvLyB3aWxsIGJlIGRlc3Ryb3llZCBpbiBJRQ0KCQkJCQl0aGF0Ll9zZXRTZWxlY3Rpb24oKTsNCg0KCQkJCQl0aGF0Ll9zZWxlY3QoIHVpLml0ZW0uZGF0YSggInVpLXNlbGVjdG1lbnUtaXRlbSIgKSwgZXZlbnQgKTsNCgkJCQl9LA0KCQkJCWZvY3VzOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCQl2YXIgaXRlbSA9IHVpLml0ZW0uZGF0YSggInVpLXNlbGVjdG1lbnUtaXRlbSIgKTsNCg0KCQkJCQkvLyBQcmV2ZW50IGluaXRhbCBmb2N1cyBmcm9tIGZpcmluZyBhbmQgY2hlY2sgaWYgaXRzIGEgbmV3bHkgZm9jdXNlZCBpdGVtDQoJCQkJCWlmICggdGhhdC5mb2N1c0luZGV4ICE9IG51bGwgJiYgaXRlbS5pbmRleCAhPT0gdGhhdC5mb2N1c0luZGV4ICkgew0KCQkJCQkJdGhhdC5fdHJpZ2dlciggImZvY3VzIiwgZXZlbnQsIHsgaXRlbTogaXRlbSB9ICk7DQoJCQkJCQlpZiAoICF0aGF0LmlzT3BlbiApIHsNCgkJCQkJCQl0aGF0Ll9zZWxlY3QoIGl0ZW0sIGV2ZW50ICk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJdGhhdC5mb2N1c0luZGV4ID0gaXRlbS5pbmRleDsNCg0KCQkJCQl0aGF0LmJ1dHRvbi5hdHRyKCAiYXJpYS1hY3RpdmVkZXNjZW5kYW50IiwNCgkJCQkJCXRoYXQubWVudUl0ZW1zLmVxKCBpdGVtLmluZGV4ICkuYXR0ciggImlkIiApICk7DQoJCQkJfQ0KCQkJfSkNCgkJCS5tZW51KCAiaW5zdGFuY2UiICk7DQoNCgkJLy8gQWRqdXN0IG1lbnUgc3R5bGVzIHRvIGRyb3Bkb3duDQoJCXRoaXMubWVudQ0KCQkJLmFkZENsYXNzKCAidWktY29ybmVyLWJvdHRvbSIgKQ0KCQkJLnJlbW92ZUNsYXNzKCAidWktY29ybmVyLWFsbCIgKTsNCg0KCQkvLyBEb24ndCBjbG9zZSB0aGUgbWVudSBvbiBtb3VzZWxlYXZlDQoJCXRoaXMubWVudUluc3RhbmNlLl9vZmYoIHRoaXMubWVudSwgIm1vdXNlbGVhdmUiICk7DQoNCgkJLy8gQ2FuY2VsIHRoZSBtZW51J3MgY29sbGFwc2VBbGwgb24gZG9jdW1lbnQgY2xpY2sNCgkJdGhpcy5tZW51SW5zdGFuY2UuX2Nsb3NlT25Eb2N1bWVudENsaWNrID0gZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX07DQoNCgkJLy8gU2VsZWN0cyBvZnRlbiBjb250YWluIGVtcHR5IGl0ZW1zLCBidXQgbmV2ZXIgY29udGFpbiBkaXZpZGVycw0KCQl0aGlzLm1lbnVJbnN0YW5jZS5faXNEaXZpZGVyID0gZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX07DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9yZWZyZXNoTWVudSgpOw0KCQl0aGlzLl9zZXRUZXh0KCB0aGlzLmJ1dHRvblRleHQsIHRoaXMuX2dldFNlbGVjdGVkSXRlbSgpLnRleHQoKSApOw0KCQlpZiAoICF0aGlzLm9wdGlvbnMud2lkdGggKSB7DQoJCQl0aGlzLl9yZXNpemVCdXR0b24oKTsNCgkJfQ0KCX0sDQoNCglfcmVmcmVzaE1lbnU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm1lbnUuZW1wdHkoKTsNCg0KCQl2YXIgaXRlbSwNCgkJCW9wdGlvbnMgPSB0aGlzLmVsZW1lbnQuZmluZCggIm9wdGlvbiIgKTsNCg0KCQlpZiAoICFvcHRpb25zLmxlbmd0aCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX3BhcnNlT3B0aW9ucyggb3B0aW9ucyApOw0KCQl0aGlzLl9yZW5kZXJNZW51KCB0aGlzLm1lbnUsIHRoaXMuaXRlbXMgKTsNCg0KCQl0aGlzLm1lbnVJbnN0YW5jZS5yZWZyZXNoKCk7DQoJCXRoaXMubWVudUl0ZW1zID0gdGhpcy5tZW51LmZpbmQoICJsaSIgKS5ub3QoICIudWktc2VsZWN0bWVudS1vcHRncm91cCIgKTsNCg0KCQlpdGVtID0gdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCk7DQoNCgkJLy8gVXBkYXRlIHRoZSBtZW51IHRvIGhhdmUgdGhlIGNvcnJlY3QgaXRlbSBmb2N1c2VkDQoJCXRoaXMubWVudUluc3RhbmNlLmZvY3VzKCBudWxsLCBpdGVtICk7DQoJCXRoaXMuX3NldEFyaWEoIGl0ZW0uZGF0YSggInVpLXNlbGVjdG1lbnUtaXRlbSIgKSApOw0KDQoJCS8vIFNldCBkaXNhYmxlZCBzdGF0ZQ0KCQl0aGlzLl9zZXRPcHRpb24oICJkaXNhYmxlZCIsIHRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiICkgKTsNCgl9LA0KDQoJb3BlbjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgdGhlIG1lbnUgaXMgYmVpbmcgb3BlbmVkLCByZW5kZXIgdGhlIGl0ZW1zDQoJCWlmICggIXRoaXMubWVudUl0ZW1zICkgew0KCQkJdGhpcy5fcmVmcmVzaE1lbnUoKTsNCgkJfSBlbHNlIHsNCg0KCQkJLy8gTWVudSBjbGVhcnMgZm9jdXMgb24gY2xvc2UsIHJlc2V0IGZvY3VzIHRvIHNlbGVjdGVkIGl0ZW0NCgkJCXRoaXMubWVudS5maW5kKCAiLnVpLXN0YXRlLWZvY3VzIiApLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtZm9jdXMiICk7DQoJCQl0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyggbnVsbCwgdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkgKTsNCgkJfQ0KDQoJCXRoaXMuaXNPcGVuID0gdHJ1ZTsNCgkJdGhpcy5fdG9nZ2xlQXR0cigpOw0KCQl0aGlzLl9yZXNpemVNZW51KCk7DQoJCXRoaXMuX3Bvc2l0aW9uKCk7DQoNCgkJdGhpcy5fb24oIHRoaXMuZG9jdW1lbnQsIHRoaXMuX2RvY3VtZW50Q2xpY2sgKTsNCg0KCQl0aGlzLl90cmlnZ2VyKCAib3BlbiIsIGV2ZW50ICk7DQoJfSwNCg0KCV9wb3NpdGlvbjogZnVuY3Rpb24oKSB7DQoJCXRoaXMubWVudVdyYXAucG9zaXRpb24oICQuZXh0ZW5kKCB7IG9mOiB0aGlzLmJ1dHRvbiB9LCB0aGlzLm9wdGlvbnMucG9zaXRpb24gKSApOw0KCX0sDQoNCgljbG9zZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoICF0aGlzLmlzT3BlbiApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuaXNPcGVuID0gZmFsc2U7DQoJCXRoaXMuX3RvZ2dsZUF0dHIoKTsNCg0KCQl0aGlzLnJhbmdlID0gbnVsbDsNCgkJdGhpcy5fb2ZmKCB0aGlzLmRvY3VtZW50ICk7DQoNCgkJdGhpcy5fdHJpZ2dlciggImNsb3NlIiwgZXZlbnQgKTsNCgl9LA0KDQoJd2lkZ2V0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuYnV0dG9uOw0KCX0sDQoNCgltZW51V2lkZ2V0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMubWVudTsNCgl9LA0KDQoJX3JlbmRlck1lbnU6IGZ1bmN0aW9uKCB1bCwgaXRlbXMgKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCWN1cnJlbnRPcHRncm91cCA9ICIiOw0KDQoJCSQuZWFjaCggaXRlbXMsIGZ1bmN0aW9uKCBpbmRleCwgaXRlbSApIHsNCgkJCWlmICggaXRlbS5vcHRncm91cCAhPT0gY3VycmVudE9wdGdyb3VwICkgew0KCQkJCSQoICI8bGk+Iiwgew0KCQkJCQkiY2xhc3MiOiAidWktc2VsZWN0bWVudS1vcHRncm91cCB1aS1tZW51LWRpdmlkZXIiICsNCgkJCQkJCSggaXRlbS5lbGVtZW50LnBhcmVudCggIm9wdGdyb3VwIiApLnByb3AoICJkaXNhYmxlZCIgKSA/DQoJCQkJCQkJIiB1aS1zdGF0ZS1kaXNhYmxlZCIgOg0KCQkJCQkJCSIiICksDQoJCQkJCXRleHQ6IGl0ZW0ub3B0Z3JvdXANCgkJCQl9KQ0KCQkJCQkuYXBwZW5kVG8oIHVsICk7DQoNCgkJCQljdXJyZW50T3B0Z3JvdXAgPSBpdGVtLm9wdGdyb3VwOw0KCQkJfQ0KDQoJCQl0aGF0Ll9yZW5kZXJJdGVtRGF0YSggdWwsIGl0ZW0gKTsNCgkJfSk7DQoJfSwNCg0KCV9yZW5kZXJJdGVtRGF0YTogZnVuY3Rpb24oIHVsLCBpdGVtICkgew0KCQlyZXR1cm4gdGhpcy5fcmVuZGVySXRlbSggdWwsIGl0ZW0gKS5kYXRhKCAidWktc2VsZWN0bWVudS1pdGVtIiwgaXRlbSApOw0KCX0sDQoNCglfcmVuZGVySXRlbTogZnVuY3Rpb24oIHVsLCBpdGVtICkgew0KCQl2YXIgbGkgPSAkKCAiPGxpPiIgKTsNCg0KCQlpZiAoIGl0ZW0uZGlzYWJsZWQgKSB7DQoJCQlsaS5hZGRDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiApOw0KCQl9DQoJCXRoaXMuX3NldFRleHQoIGxpLCBpdGVtLmxhYmVsICk7DQoNCgkJcmV0dXJuIGxpLmFwcGVuZFRvKCB1bCApOw0KCX0sDQoNCglfc2V0VGV4dDogZnVuY3Rpb24oIGVsZW1lbnQsIHZhbHVlICkgew0KCQlpZiAoIHZhbHVlICkgew0KCQkJZWxlbWVudC50ZXh0KCB2YWx1ZSApOw0KCQl9IGVsc2Ugew0KCQkJZWxlbWVudC5odG1sKCAiJiMxNjA7IiApOw0KCQl9DQoJfSwNCg0KCV9tb3ZlOiBmdW5jdGlvbiggZGlyZWN0aW9uLCBldmVudCApIHsNCgkJdmFyIGl0ZW0sIG5leHQsDQoJCQlmaWx0ZXIgPSAiLnVpLW1lbnUtaXRlbSI7DQoNCgkJaWYgKCB0aGlzLmlzT3BlbiApIHsNCgkJCWl0ZW0gPSB0aGlzLm1lbnVJdGVtcy5lcSggdGhpcy5mb2N1c0luZGV4ICk7DQoJCX0gZWxzZSB7DQoJCQlpdGVtID0gdGhpcy5tZW51SXRlbXMuZXEoIHRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXggKTsNCgkJCWZpbHRlciArPSAiOm5vdCgudWktc3RhdGUtZGlzYWJsZWQpIjsNCgkJfQ0KDQoJCWlmICggZGlyZWN0aW9uID09PSAiZmlyc3QiIHx8IGRpcmVjdGlvbiA9PT0gImxhc3QiICkgew0KCQkJbmV4dCA9IGl0ZW1bIGRpcmVjdGlvbiA9PT0gImZpcnN0IiA/ICJwcmV2QWxsIiA6ICJuZXh0QWxsIiBdKCBmaWx0ZXIgKS5lcSggLTEgKTsNCgkJfSBlbHNlIHsNCgkJCW5leHQgPSBpdGVtWyBkaXJlY3Rpb24gKyAiQWxsIiBdKCBmaWx0ZXIgKS5lcSggMCApOw0KCQl9DQoNCgkJaWYgKCBuZXh0Lmxlbmd0aCApIHsNCgkJCXRoaXMubWVudUluc3RhbmNlLmZvY3VzKCBldmVudCwgbmV4dCApOw0KCQl9DQoJfSwNCg0KCV9nZXRTZWxlY3RlZEl0ZW06IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5tZW51SXRlbXMuZXEoIHRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXggKTsNCgl9LA0KDQoJX3RvZ2dsZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzWyB0aGlzLmlzT3BlbiA/ICJjbG9zZSIgOiAib3BlbiIgXSggZXZlbnQgKTsNCgl9LA0KDQoJX3NldFNlbGVjdGlvbjogZnVuY3Rpb24oKSB7DQoJCXZhciBzZWxlY3Rpb247DQoNCgkJaWYgKCAhdGhpcy5yYW5nZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggd2luZG93LmdldFNlbGVjdGlvbiApIHsNCgkJCXNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsNCgkJCXNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsNCgkJCXNlbGVjdGlvbi5hZGRSYW5nZSggdGhpcy5yYW5nZSApOw0KDQoJCS8vIHN1cHBvcnQ6IElFOA0KCQl9IGVsc2Ugew0KCQkJdGhpcy5yYW5nZS5zZWxlY3QoKTsNCgkJfQ0KDQoJCS8vIHN1cHBvcnQ6IElFDQoJCS8vIFNldHRpbmcgdGhlIHRleHQgc2VsZWN0aW9uIGtpbGxzIHRoZSBidXR0b24gZm9jdXMgaW4gSUUsIGJ1dA0KCQkvLyByZXN0b3JpbmcgdGhlIGZvY3VzIGRvZXNuJ3Qga2lsbCB0aGUgc2VsZWN0aW9uLg0KCQl0aGlzLmJ1dHRvbi5mb2N1cygpOw0KCX0sDQoNCglfZG9jdW1lbnRDbGljazogew0KCQltb3VzZWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCWlmICggIXRoaXMuaXNPcGVuICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJaWYgKCAhJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1zZWxlY3RtZW51LW1lbnUsICMiICsgdGhpcy5pZHMuYnV0dG9uICkubGVuZ3RoICkgew0KCQkJCXRoaXMuY2xvc2UoIGV2ZW50ICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX2J1dHRvbkV2ZW50czogew0KDQoJCS8vIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gZnJvbSBiZWluZyByZXNldCB3aGVuIGludGVyYWN0aW5nIHdpdGggdGhlIHNlbGVjdG1lbnUgKCMxMDE0NCkNCgkJbW91c2Vkb3duOiBmdW5jdGlvbigpIHsNCgkJCXZhciBzZWxlY3Rpb247DQoNCgkJCWlmICggd2luZG93LmdldFNlbGVjdGlvbiApIHsNCgkJCQlzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7DQoJCQkJaWYgKCBzZWxlY3Rpb24ucmFuZ2VDb3VudCApIHsNCgkJCQkJdGhpcy5yYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KCAwICk7DQoJCQkJfQ0KDQoJCQkvLyBzdXBwb3J0OiBJRTgNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5yYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpOw0KCQkJfQ0KCQl9LA0KDQoJCWNsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl0aGlzLl9zZXRTZWxlY3Rpb24oKTsNCgkJCXRoaXMuX3RvZ2dsZSggZXZlbnQgKTsNCgkJfSwNCg0KCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl2YXIgcHJldmVudERlZmF1bHQgPSB0cnVlOw0KCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlICQudWkua2V5Q29kZS5UQUI6DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuRVNDQVBFOg0KCQkJCQl0aGlzLmNsb3NlKCBldmVudCApOw0KCQkJCQlwcmV2ZW50RGVmYXVsdCA9IGZhbHNlOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5FTlRFUjoNCgkJCQkJaWYgKCB0aGlzLmlzT3BlbiApIHsNCgkJCQkJCXRoaXMuX3NlbGVjdEZvY3VzZWRJdGVtKCBldmVudCApOw0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlVQOg0KCQkJCQlpZiAoIGV2ZW50LmFsdEtleSApIHsNCgkJCQkJCXRoaXMuX3RvZ2dsZSggZXZlbnQgKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCXRoaXMuX21vdmUoICJwcmV2IiwgZXZlbnQgKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5ET1dOOg0KCQkJCQlpZiAoIGV2ZW50LmFsdEtleSApIHsNCgkJCQkJCXRoaXMuX3RvZ2dsZSggZXZlbnQgKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCXRoaXMuX21vdmUoICJuZXh0IiwgZXZlbnQgKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5TUEFDRToNCgkJCQkJaWYgKCB0aGlzLmlzT3BlbiApIHsNCgkJCQkJCXRoaXMuX3NlbGVjdEZvY3VzZWRJdGVtKCBldmVudCApOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJdGhpcy5fdG9nZ2xlKCBldmVudCApOw0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkxFRlQ6DQoJCQkJCXRoaXMuX21vdmUoICJwcmV2IiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuUklHSFQ6DQoJCQkJCXRoaXMuX21vdmUoICJuZXh0IiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuSE9NRToNCgkJCQljYXNlICQudWkua2V5Q29kZS5QQUdFX1VQOg0KCQkJCQl0aGlzLl9tb3ZlKCAiZmlyc3QiLCBldmVudCApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5FTkQ6DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOOg0KCQkJCQl0aGlzLl9tb3ZlKCAibGFzdCIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCWRlZmF1bHQ6DQoJCQkJCXRoaXMubWVudS50cmlnZ2VyKCBldmVudCApOw0KCQkJCQlwcmV2ZW50RGVmYXVsdCA9IGZhbHNlOw0KCQkJfQ0KDQoJCQlpZiAoIHByZXZlbnREZWZhdWx0ICkgew0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX3NlbGVjdEZvY3VzZWRJdGVtOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBpdGVtID0gdGhpcy5tZW51SXRlbXMuZXEoIHRoaXMuZm9jdXNJbmRleCApOw0KCQlpZiAoICFpdGVtLmhhc0NsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICkgKSB7DQoJCQl0aGlzLl9zZWxlY3QoIGl0ZW0uZGF0YSggInVpLXNlbGVjdG1lbnUtaXRlbSIgKSwgZXZlbnQgKTsNCgkJfQ0KCX0sDQoNCglfc2VsZWN0OiBmdW5jdGlvbiggaXRlbSwgZXZlbnQgKSB7DQoJCXZhciBvbGRJbmRleCA9IHRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXg7DQoNCgkJLy8gQ2hhbmdlIG5hdGl2ZSBzZWxlY3QgZWxlbWVudA0KCQl0aGlzLmVsZW1lbnRbIDAgXS5zZWxlY3RlZEluZGV4ID0gaXRlbS5pbmRleDsNCgkJdGhpcy5fc2V0VGV4dCggdGhpcy5idXR0b25UZXh0LCBpdGVtLmxhYmVsICk7DQoJCXRoaXMuX3NldEFyaWEoIGl0ZW0gKTsNCgkJdGhpcy5fdHJpZ2dlciggInNlbGVjdCIsIGV2ZW50LCB7IGl0ZW06IGl0ZW0gfSApOw0KDQoJCWlmICggaXRlbS5pbmRleCAhPT0gb2xkSW5kZXggKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHsgaXRlbTogaXRlbSB9ICk7DQoJCX0NCg0KCQl0aGlzLmNsb3NlKCBldmVudCApOw0KCX0sDQoNCglfc2V0QXJpYTogZnVuY3Rpb24oIGl0ZW0gKSB7DQoJCXZhciBpZCA9IHRoaXMubWVudUl0ZW1zLmVxKCBpdGVtLmluZGV4ICkuYXR0ciggImlkIiApOw0KDQoJCXRoaXMuYnV0dG9uLmF0dHIoew0KCQkJImFyaWEtbGFiZWxsZWRieSI6IGlkLA0KCQkJImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6IGlkDQoJCX0pOw0KCQl0aGlzLm1lbnUuYXR0ciggImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsIGlkICk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gImljb25zIiApIHsNCgkJCXRoaXMuYnV0dG9uLmZpbmQoICJzcGFuLnVpLWljb24iICkNCgkJCQkucmVtb3ZlQ2xhc3MoIHRoaXMub3B0aW9ucy5pY29ucy5idXR0b24gKQ0KCQkJCS5hZGRDbGFzcyggdmFsdWUuYnV0dG9uICk7DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCWlmICgga2V5ID09PSAiYXBwZW5kVG8iICkgew0KCQkJdGhpcy5tZW51V3JhcC5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLm1lbnVJbnN0YW5jZS5vcHRpb24oICJkaXNhYmxlZCIsIHZhbHVlICk7DQoJCQl0aGlzLmJ1dHRvbg0KCQkJCS50b2dnbGVDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiwgdmFsdWUgKQ0KCQkJCS5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsIHZhbHVlICk7DQoNCgkJCXRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiLCB2YWx1ZSApOw0KCQkJaWYgKCB2YWx1ZSApIHsNCgkJCQl0aGlzLmJ1dHRvbi5hdHRyKCAidGFiaW5kZXgiLCAtMSApOw0KCQkJCXRoaXMuY2xvc2UoKTsNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5idXR0b24uYXR0ciggInRhYmluZGV4IiwgMCApOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJ3aWR0aCIgKSB7DQoJCQl0aGlzLl9yZXNpemVCdXR0b24oKTsNCgkJfQ0KCX0sDQoNCglfYXBwZW5kVG86IGZ1bmN0aW9uKCkgew0KCQl2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5hcHBlbmRUbzsNCg0KCQlpZiAoIGVsZW1lbnQgKSB7DQoJCQllbGVtZW50ID0gZWxlbWVudC5qcXVlcnkgfHwgZWxlbWVudC5ub2RlVHlwZSA/DQoJCQkJJCggZWxlbWVudCApIDoNCgkJCQl0aGlzLmRvY3VtZW50LmZpbmQoIGVsZW1lbnQgKS5lcSggMCApOw0KCQl9DQoNCgkJaWYgKCAhZWxlbWVudCB8fCAhZWxlbWVudFsgMCBdICkgew0KCQkJZWxlbWVudCA9IHRoaXMuZWxlbWVudC5jbG9zZXN0KCAiLnVpLWZyb250IiApOw0KCQl9DQoNCgkJaWYgKCAhZWxlbWVudC5sZW5ndGggKSB7DQoJCQllbGVtZW50ID0gdGhpcy5kb2N1bWVudFsgMCBdLmJvZHk7DQoJCX0NCg0KCQlyZXR1cm4gZWxlbWVudDsNCgl9LA0KDQoJX3RvZ2dsZUF0dHI6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmJ1dHRvbg0KCQkJLnRvZ2dsZUNsYXNzKCAidWktY29ybmVyLXRvcCIsIHRoaXMuaXNPcGVuICkNCgkJCS50b2dnbGVDbGFzcyggInVpLWNvcm5lci1hbGwiLCAhdGhpcy5pc09wZW4gKQ0KCQkJLmF0dHIoICJhcmlhLWV4cGFuZGVkIiwgdGhpcy5pc09wZW4gKTsNCgkJdGhpcy5tZW51V3JhcC50b2dnbGVDbGFzcyggInVpLXNlbGVjdG1lbnUtb3BlbiIsIHRoaXMuaXNPcGVuICk7DQoJCXRoaXMubWVudS5hdHRyKCAiYXJpYS1oaWRkZW4iLCAhdGhpcy5pc09wZW4gKTsNCgl9LA0KDQoJX3Jlc2l6ZUJ1dHRvbjogZnVuY3Rpb24oKSB7DQoJCXZhciB3aWR0aCA9IHRoaXMub3B0aW9ucy53aWR0aDsNCg0KCQlpZiAoICF3aWR0aCApIHsNCgkJCXdpZHRoID0gdGhpcy5lbGVtZW50LnNob3coKS5vdXRlcldpZHRoKCk7DQoJCQl0aGlzLmVsZW1lbnQuaGlkZSgpOw0KCQl9DQoNCgkJdGhpcy5idXR0b24ub3V0ZXJXaWR0aCggd2lkdGggKTsNCgl9LA0KDQoJX3Jlc2l6ZU1lbnU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm1lbnUub3V0ZXJXaWR0aCggTWF0aC5tYXgoDQoJCQl0aGlzLmJ1dHRvbi5vdXRlcldpZHRoKCksDQoNCgkJCS8vIHN1cHBvcnQ6IElFMTANCgkJCS8vIElFMTAgd3JhcHMgbG9uZyB0ZXh0IChwb3NzaWJseSBhIHJvdW5kaW5nIGJ1ZykNCgkJCS8vIHNvIHdlIGFkZCAxcHggdG8gYXZvaWQgdGhlIHdyYXBwaW5nDQoJCQl0aGlzLm1lbnUud2lkdGgoICIiICkub3V0ZXJXaWR0aCgpICsgMQ0KCQkpICk7DQoJfSwNCg0KCV9nZXRDcmVhdGVPcHRpb25zOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHsgZGlzYWJsZWQ6IHRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiICkgfTsNCgl9LA0KDQoJX3BhcnNlT3B0aW9uczogZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJCXZhciBkYXRhID0gW107DQoJCW9wdGlvbnMuZWFjaChmdW5jdGlvbiggaW5kZXgsIGl0ZW0gKSB7DQoJCQl2YXIgb3B0aW9uID0gJCggaXRlbSApLA0KCQkJCW9wdGdyb3VwID0gb3B0aW9uLnBhcmVudCggIm9wdGdyb3VwIiApOw0KCQkJZGF0YS5wdXNoKHsNCgkJCQllbGVtZW50OiBvcHRpb24sDQoJCQkJaW5kZXg6IGluZGV4LA0KCQkJCXZhbHVlOiBvcHRpb24uYXR0ciggInZhbHVlIiApLA0KCQkJCWxhYmVsOiBvcHRpb24udGV4dCgpLA0KCQkJCW9wdGdyb3VwOiBvcHRncm91cC5hdHRyKCAibGFiZWwiICkgfHwgIiIsDQoJCQkJZGlzYWJsZWQ6IG9wdGdyb3VwLnByb3AoICJkaXNhYmxlZCIgKSB8fCBvcHRpb24ucHJvcCggImRpc2FibGVkIiApDQoJCQl9KTsNCgkJfSk7DQoJCXRoaXMuaXRlbXMgPSBkYXRhOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMubWVudVdyYXAucmVtb3ZlKCk7DQoJCXRoaXMuYnV0dG9uLnJlbW92ZSgpOw0KCQl0aGlzLmVsZW1lbnQuc2hvdygpOw0KCQl0aGlzLmVsZW1lbnQucmVtb3ZlVW5pcXVlSWQoKTsNCgkJdGhpcy5sYWJlbC5hdHRyKCAiZm9yIiwgdGhpcy5pZHMuZWxlbWVudCApOw0KCX0NCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFNsaWRlciAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vc2xpZGVyLw0KICovDQoNCg0KdmFyIHNsaWRlciA9ICQud2lkZ2V0KCAidWkuc2xpZGVyIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjExLjIiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAic2xpZGUiLA0KDQoJb3B0aW9uczogew0KCQlhbmltYXRlOiBmYWxzZSwNCgkJZGlzdGFuY2U6IDAsDQoJCW1heDogMTAwLA0KCQltaW46IDAsDQoJCW9yaWVudGF0aW9uOiAiaG9yaXpvbnRhbCIsDQoJCXJhbmdlOiBmYWxzZSwNCgkJc3RlcDogMSwNCgkJdmFsdWU6IDAsDQoJCXZhbHVlczogbnVsbCwNCg0KCQkvLyBjYWxsYmFja3MNCgkJY2hhbmdlOiBudWxsLA0KCQlzbGlkZTogbnVsbCwNCgkJc3RhcnQ6IG51bGwsDQoJCXN0b3A6IG51bGwNCgl9LA0KDQoJLy8gbnVtYmVyIG9mIHBhZ2VzIGluIGEgc2xpZGVyDQoJLy8gKGhvdyBtYW55IHRpbWVzIGNhbiB5b3UgcGFnZSB1cC9kb3duIHRvIGdvIHRocm91Z2ggdGhlIHdob2xlIHJhbmdlKQ0KCW51bVBhZ2VzOiA1LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX2tleVNsaWRpbmcgPSBmYWxzZTsNCgkJdGhpcy5fbW91c2VTbGlkaW5nID0gZmFsc2U7DQoJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQl0aGlzLl9oYW5kbGVJbmRleCA9IG51bGw7DQoJCXRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCk7DQoJCXRoaXMuX21vdXNlSW5pdCgpOw0KCQl0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKTsNCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5hZGRDbGFzcyggInVpLXNsaWRlciIgKw0KCQkJCSIgdWktc2xpZGVyLSIgKyB0aGlzLm9yaWVudGF0aW9uICsNCgkJCQkiIHVpLXdpZGdldCIgKw0KCQkJCSIgdWktd2lkZ2V0LWNvbnRlbnQiICsNCgkJCQkiIHVpLWNvcm5lci1hbGwiKTsNCg0KCQl0aGlzLl9yZWZyZXNoKCk7DQoJCXRoaXMuX3NldE9wdGlvbiggImRpc2FibGVkIiwgdGhpcy5vcHRpb25zLmRpc2FibGVkICk7DQoNCgkJdGhpcy5fYW5pbWF0ZU9mZiA9IGZhbHNlOw0KCX0sDQoNCglfcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX2NyZWF0ZVJhbmdlKCk7DQoJCXRoaXMuX2NyZWF0ZUhhbmRsZXMoKTsNCgkJdGhpcy5fc2V0dXBFdmVudHMoKTsNCgkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJfSwNCg0KCV9jcmVhdGVIYW5kbGVzOiBmdW5jdGlvbigpIHsNCgkJdmFyIGksIGhhbmRsZUNvdW50LA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCWV4aXN0aW5nSGFuZGxlcyA9IHRoaXMuZWxlbWVudC5maW5kKCAiLnVpLXNsaWRlci1oYW5kbGUiICkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiICksDQoJCQloYW5kbGUgPSAiPHNwYW4gY2xhc3M9J3VpLXNsaWRlci1oYW5kbGUgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsJyB0YWJpbmRleD0nMCc+PC9zcGFuPiIsDQoJCQloYW5kbGVzID0gW107DQoNCgkJaGFuZGxlQ291bnQgPSAoIG9wdGlvbnMudmFsdWVzICYmIG9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHx8IDE7DQoNCgkJaWYgKCBleGlzdGluZ0hhbmRsZXMubGVuZ3RoID4gaGFuZGxlQ291bnQgKSB7DQoJCQlleGlzdGluZ0hhbmRsZXMuc2xpY2UoIGhhbmRsZUNvdW50ICkucmVtb3ZlKCk7DQoJCQlleGlzdGluZ0hhbmRsZXMgPSBleGlzdGluZ0hhbmRsZXMuc2xpY2UoIDAsIGhhbmRsZUNvdW50ICk7DQoJCX0NCg0KCQlmb3IgKCBpID0gZXhpc3RpbmdIYW5kbGVzLmxlbmd0aDsgaSA8IGhhbmRsZUNvdW50OyBpKysgKSB7DQoJCQloYW5kbGVzLnB1c2goIGhhbmRsZSApOw0KCQl9DQoNCgkJdGhpcy5oYW5kbGVzID0gZXhpc3RpbmdIYW5kbGVzLmFkZCggJCggaGFuZGxlcy5qb2luKCAiIiApICkuYXBwZW5kVG8oIHRoaXMuZWxlbWVudCApICk7DQoNCgkJdGhpcy5oYW5kbGUgPSB0aGlzLmhhbmRsZXMuZXEoIDAgKTsNCg0KCQl0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbiggaSApIHsNCgkJCSQoIHRoaXMgKS5kYXRhKCAidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsIGkgKTsNCgkJfSk7DQoJfSwNCg0KCV9jcmVhdGVSYW5nZTogZnVuY3Rpb24oKSB7DQoJCXZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJY2xhc3NlcyA9ICIiOw0KDQoJCWlmICggb3B0aW9ucy5yYW5nZSApIHsNCgkJCWlmICggb3B0aW9ucy5yYW5nZSA9PT0gdHJ1ZSApIHsNCgkJCQlpZiAoICFvcHRpb25zLnZhbHVlcyApIHsNCgkJCQkJb3B0aW9ucy52YWx1ZXMgPSBbIHRoaXMuX3ZhbHVlTWluKCksIHRoaXMuX3ZhbHVlTWluKCkgXTsNCgkJCQl9IGVsc2UgaWYgKCBvcHRpb25zLnZhbHVlcy5sZW5ndGggJiYgb3B0aW9ucy52YWx1ZXMubGVuZ3RoICE9PSAyICkgew0KCQkJCQlvcHRpb25zLnZhbHVlcyA9IFsgb3B0aW9ucy52YWx1ZXNbMF0sIG9wdGlvbnMudmFsdWVzWzBdIF07DQoJCQkJfSBlbHNlIGlmICggJC5pc0FycmF5KCBvcHRpb25zLnZhbHVlcyApICkgew0KCQkJCQlvcHRpb25zLnZhbHVlcyA9IG9wdGlvbnMudmFsdWVzLnNsaWNlKDApOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKCAhdGhpcy5yYW5nZSB8fCAhdGhpcy5yYW5nZS5sZW5ndGggKSB7DQoJCQkJdGhpcy5yYW5nZSA9ICQoICI8ZGl2PjwvZGl2PiIgKQ0KCQkJCQkuYXBwZW5kVG8oIHRoaXMuZWxlbWVudCApOw0KDQoJCQkJY2xhc3NlcyA9ICJ1aS1zbGlkZXItcmFuZ2UiICsNCgkJCQkvLyBub3RlOiB0aGlzIGlzbid0IHRoZSBtb3N0IGZpdHRpbmdseSBzZW1hbnRpYyBmcmFtZXdvcmsgY2xhc3MgZm9yIHRoaXMgZWxlbWVudCwNCgkJCQkvLyBidXQgd29ya2VkIGJlc3QgdmlzdWFsbHkgd2l0aCBhIHZhcmlldHkgb2YgdGhlbWVzDQoJCQkJIiB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwiOw0KCQkJfSBlbHNlIHsNCgkJCQl0aGlzLnJhbmdlLnJlbW92ZUNsYXNzKCAidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IiApDQoJCQkJCS8vIEhhbmRsZSByYW5nZSBzd2l0Y2hpbmcgZnJvbSB0cnVlIHRvIG1pbi9tYXgNCgkJCQkJLmNzcyh7DQoJCQkJCQkibGVmdCI6ICIiLA0KCQkJCQkJImJvdHRvbSI6ICIiDQoJCQkJCX0pOw0KCQkJfQ0KDQoJCQl0aGlzLnJhbmdlLmFkZENsYXNzKCBjbGFzc2VzICsNCgkJCQkoICggb3B0aW9ucy5yYW5nZSA9PT0gIm1pbiIgfHwgb3B0aW9ucy5yYW5nZSA9PT0gIm1heCIgKSA/ICIgdWktc2xpZGVyLXJhbmdlLSIgKyBvcHRpb25zLnJhbmdlIDogIiIgKSApOw0KCQl9IGVsc2Ugew0KCQkJaWYgKCB0aGlzLnJhbmdlICkgew0KCQkJCXRoaXMucmFuZ2UucmVtb3ZlKCk7DQoJCQl9DQoJCQl0aGlzLnJhbmdlID0gbnVsbDsNCgkJfQ0KCX0sDQoNCglfc2V0dXBFdmVudHM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9vZmYoIHRoaXMuaGFuZGxlcyApOw0KCQl0aGlzLl9vbiggdGhpcy5oYW5kbGVzLCB0aGlzLl9oYW5kbGVFdmVudHMgKTsNCgkJdGhpcy5faG92ZXJhYmxlKCB0aGlzLmhhbmRsZXMgKTsNCgkJdGhpcy5fZm9jdXNhYmxlKCB0aGlzLmhhbmRsZXMgKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmhhbmRsZXMucmVtb3ZlKCk7DQoJCWlmICggdGhpcy5yYW5nZSApIHsNCgkJCXRoaXMucmFuZ2UucmVtb3ZlKCk7DQoJCX0NCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcyggInVpLXNsaWRlciIgKw0KCQkJCSIgdWktc2xpZGVyLWhvcml6b250YWwiICsNCgkJCQkiIHVpLXNsaWRlci12ZXJ0aWNhbCIgKw0KCQkJCSIgdWktd2lkZ2V0IiArDQoJCQkJIiB1aS13aWRnZXQtY29udGVudCIgKw0KCQkJCSIgdWktY29ybmVyLWFsbCIgKTsNCg0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCgl9LA0KDQoJX21vdXNlQ2FwdHVyZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgcG9zaXRpb24sIG5vcm1WYWx1ZSwgZGlzdGFuY2UsIGNsb3Nlc3RIYW5kbGUsIGluZGV4LCBhbGxvd2VkLCBvZmZzZXQsIG1vdXNlT3ZlckhhbmRsZSwNCgkJCXRoYXQgPSB0aGlzLA0KCQkJbyA9IHRoaXMub3B0aW9uczsNCg0KCQlpZiAoIG8uZGlzYWJsZWQgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl0aGlzLmVsZW1lbnRTaXplID0gew0KCQkJd2lkdGg6IHRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksDQoJCQloZWlnaHQ6IHRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpDQoJCX07DQoJCXRoaXMuZWxlbWVudE9mZnNldCA9IHRoaXMuZWxlbWVudC5vZmZzZXQoKTsNCg0KCQlwb3NpdGlvbiA9IHsgeDogZXZlbnQucGFnZVgsIHk6IGV2ZW50LnBhZ2VZIH07DQoJCW5vcm1WYWx1ZSA9IHRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZSggcG9zaXRpb24gKTsNCgkJZGlzdGFuY2UgPSB0aGlzLl92YWx1ZU1heCgpIC0gdGhpcy5fdmFsdWVNaW4oKSArIDE7DQoJCXRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKCBpICkgew0KCQkJdmFyIHRoaXNEaXN0YW5jZSA9IE1hdGguYWJzKCBub3JtVmFsdWUgLSB0aGF0LnZhbHVlcyhpKSApOw0KCQkJaWYgKCggZGlzdGFuY2UgPiB0aGlzRGlzdGFuY2UgKSB8fA0KCQkJCSggZGlzdGFuY2UgPT09IHRoaXNEaXN0YW5jZSAmJg0KCQkJCQkoaSA9PT0gdGhhdC5fbGFzdENoYW5nZWRWYWx1ZSB8fCB0aGF0LnZhbHVlcyhpKSA9PT0gby5taW4gKSkpIHsNCgkJCQlkaXN0YW5jZSA9IHRoaXNEaXN0YW5jZTsNCgkJCQljbG9zZXN0SGFuZGxlID0gJCggdGhpcyApOw0KCQkJCWluZGV4ID0gaTsNCgkJCX0NCgkJfSk7DQoNCgkJYWxsb3dlZCA9IHRoaXMuX3N0YXJ0KCBldmVudCwgaW5kZXggKTsNCgkJaWYgKCBhbGxvd2VkID09PSBmYWxzZSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQl0aGlzLl9tb3VzZVNsaWRpbmcgPSB0cnVlOw0KDQoJCXRoaXMuX2hhbmRsZUluZGV4ID0gaW5kZXg7DQoNCgkJY2xvc2VzdEhhbmRsZQ0KCQkJLmFkZENsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApDQoJCQkuZm9jdXMoKTsNCg0KCQlvZmZzZXQgPSBjbG9zZXN0SGFuZGxlLm9mZnNldCgpOw0KCQltb3VzZU92ZXJIYW5kbGUgPSAhJCggZXZlbnQudGFyZ2V0ICkucGFyZW50cygpLmFkZEJhY2soKS5pcyggIi51aS1zbGlkZXItaGFuZGxlIiApOw0KCQl0aGlzLl9jbGlja09mZnNldCA9IG1vdXNlT3ZlckhhbmRsZSA/IHsgbGVmdDogMCwgdG9wOiAwIH0gOiB7DQoJCQlsZWZ0OiBldmVudC5wYWdlWCAtIG9mZnNldC5sZWZ0IC0gKCBjbG9zZXN0SGFuZGxlLndpZHRoKCkgLyAyICksDQoJCQl0b3A6IGV2ZW50LnBhZ2VZIC0gb2Zmc2V0LnRvcCAtDQoJCQkJKCBjbG9zZXN0SGFuZGxlLmhlaWdodCgpIC8gMiApIC0NCgkJCQkoIHBhcnNlSW50KCBjbG9zZXN0SGFuZGxlLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwgMTAgKSB8fCAwICkgLQ0KCQkJCSggcGFyc2VJbnQoIGNsb3Nlc3RIYW5kbGUuY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLCAxMCApIHx8IDApICsNCgkJCQkoIHBhcnNlSW50KCBjbG9zZXN0SGFuZGxlLmNzcygibWFyZ2luVG9wIiksIDEwICkgfHwgMCkNCgkJfTsNCg0KCQlpZiAoICF0aGlzLmhhbmRsZXMuaGFzQ2xhc3MoICJ1aS1zdGF0ZS1ob3ZlciIgKSApIHsNCgkJCXRoaXMuX3NsaWRlKCBldmVudCwgaW5kZXgsIG5vcm1WYWx1ZSApOw0KCQl9DQoJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQlyZXR1cm4gdHJ1ZTsNCgl9LA0KDQoJX21vdXNlU3RhcnQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdHJ1ZTsNCgl9LA0KDQoJX21vdXNlRHJhZzogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgcG9zaXRpb24gPSB7IHg6IGV2ZW50LnBhZ2VYLCB5OiBldmVudC5wYWdlWSB9LA0KCQkJbm9ybVZhbHVlID0gdGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKCBwb3NpdGlvbiApOw0KDQoJCXRoaXMuX3NsaWRlKCBldmVudCwgdGhpcy5faGFuZGxlSW5kZXgsIG5vcm1WYWx1ZSApOw0KDQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJX21vdXNlU3RvcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzLmhhbmRsZXMucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCXRoaXMuX21vdXNlU2xpZGluZyA9IGZhbHNlOw0KDQoJCXRoaXMuX3N0b3AoIGV2ZW50LCB0aGlzLl9oYW5kbGVJbmRleCApOw0KCQl0aGlzLl9jaGFuZ2UoIGV2ZW50LCB0aGlzLl9oYW5kbGVJbmRleCApOw0KDQoJCXRoaXMuX2hhbmRsZUluZGV4ID0gbnVsbDsNCgkJdGhpcy5fY2xpY2tPZmZzZXQgPSBudWxsOw0KCQl0aGlzLl9hbmltYXRlT2ZmID0gZmFsc2U7DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfZGV0ZWN0T3JpZW50YXRpb246IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm9yaWVudGF0aW9uID0gKCB0aGlzLm9wdGlvbnMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSA/ICJ2ZXJ0aWNhbCIgOiAiaG9yaXpvbnRhbCI7DQoJfSwNCg0KCV9ub3JtVmFsdWVGcm9tTW91c2U6IGZ1bmN0aW9uKCBwb3NpdGlvbiApIHsNCgkJdmFyIHBpeGVsVG90YWwsDQoJCQlwaXhlbE1vdXNlLA0KCQkJcGVyY2VudE1vdXNlLA0KCQkJdmFsdWVUb3RhbCwNCgkJCXZhbHVlTW91c2U7DQoNCgkJaWYgKCB0aGlzLm9yaWVudGF0aW9uID09PSAiaG9yaXpvbnRhbCIgKSB7DQoJCQlwaXhlbFRvdGFsID0gdGhpcy5lbGVtZW50U2l6ZS53aWR0aDsNCgkJCXBpeGVsTW91c2UgPSBwb3NpdGlvbi54IC0gdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQgLSAoIHRoaXMuX2NsaWNrT2Zmc2V0ID8gdGhpcy5fY2xpY2tPZmZzZXQubGVmdCA6IDAgKTsNCgkJfSBlbHNlIHsNCgkJCXBpeGVsVG90YWwgPSB0aGlzLmVsZW1lbnRTaXplLmhlaWdodDsNCgkJCXBpeGVsTW91c2UgPSBwb3NpdGlvbi55IC0gdGhpcy5lbGVtZW50T2Zmc2V0LnRvcCAtICggdGhpcy5fY2xpY2tPZmZzZXQgPyB0aGlzLl9jbGlja09mZnNldC50b3AgOiAwICk7DQoJCX0NCg0KCQlwZXJjZW50TW91c2UgPSAoIHBpeGVsTW91c2UgLyBwaXhlbFRvdGFsICk7DQoJCWlmICggcGVyY2VudE1vdXNlID4gMSApIHsNCgkJCXBlcmNlbnRNb3VzZSA9IDE7DQoJCX0NCgkJaWYgKCBwZXJjZW50TW91c2UgPCAwICkgew0KCQkJcGVyY2VudE1vdXNlID0gMDsNCgkJfQ0KCQlpZiAoIHRoaXMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSB7DQoJCQlwZXJjZW50TW91c2UgPSAxIC0gcGVyY2VudE1vdXNlOw0KCQl9DQoNCgkJdmFsdWVUb3RhbCA9IHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpOw0KCQl2YWx1ZU1vdXNlID0gdGhpcy5fdmFsdWVNaW4oKSArIHBlcmNlbnRNb3VzZSAqIHZhbHVlVG90YWw7DQoNCgkJcmV0dXJuIHRoaXMuX3RyaW1BbGlnblZhbHVlKCB2YWx1ZU1vdXNlICk7DQoJfSwNCg0KCV9zdGFydDogZnVuY3Rpb24oIGV2ZW50LCBpbmRleCApIHsNCgkJdmFyIHVpSGFzaCA9IHsNCgkJCWhhbmRsZTogdGhpcy5oYW5kbGVzWyBpbmRleCBdLA0KCQkJdmFsdWU6IHRoaXMudmFsdWUoKQ0KCQl9Ow0KCQlpZiAoIHRoaXMub3B0aW9ucy52YWx1ZXMgJiYgdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGggKSB7DQoJCQl1aUhhc2gudmFsdWUgPSB0aGlzLnZhbHVlcyggaW5kZXggKTsNCgkJCXVpSGFzaC52YWx1ZXMgPSB0aGlzLnZhbHVlcygpOw0KCQl9DQoJCXJldHVybiB0aGlzLl90cmlnZ2VyKCAic3RhcnQiLCBldmVudCwgdWlIYXNoICk7DQoJfSwNCg0KCV9zbGlkZTogZnVuY3Rpb24oIGV2ZW50LCBpbmRleCwgbmV3VmFsICkgew0KCQl2YXIgb3RoZXJWYWwsDQoJCQluZXdWYWx1ZXMsDQoJCQlhbGxvd2VkOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLnZhbHVlcyAmJiB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHsNCgkJCW90aGVyVmFsID0gdGhpcy52YWx1ZXMoIGluZGV4ID8gMCA6IDEgKTsNCg0KCQkJaWYgKCAoIHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoID09PSAyICYmIHRoaXMub3B0aW9ucy5yYW5nZSA9PT0gdHJ1ZSApICYmDQoJCQkJCSggKCBpbmRleCA9PT0gMCAmJiBuZXdWYWwgPiBvdGhlclZhbCkgfHwgKCBpbmRleCA9PT0gMSAmJiBuZXdWYWwgPCBvdGhlclZhbCApICkNCgkJCQkpIHsNCgkJCQluZXdWYWwgPSBvdGhlclZhbDsNCgkJCX0NCg0KCQkJaWYgKCBuZXdWYWwgIT09IHRoaXMudmFsdWVzKCBpbmRleCApICkgew0KCQkJCW5ld1ZhbHVlcyA9IHRoaXMudmFsdWVzKCk7DQoJCQkJbmV3VmFsdWVzWyBpbmRleCBdID0gbmV3VmFsOw0KCQkJCS8vIEEgc2xpZGUgY2FuIGJlIGNhbmNlbGVkIGJ5IHJldHVybmluZyBmYWxzZSBmcm9tIHRoZSBzbGlkZSBjYWxsYmFjaw0KCQkJCWFsbG93ZWQgPSB0aGlzLl90cmlnZ2VyKCAic2xpZGUiLCBldmVudCwgew0KCQkJCQloYW5kbGU6IHRoaXMuaGFuZGxlc1sgaW5kZXggXSwNCgkJCQkJdmFsdWU6IG5ld1ZhbCwNCgkJCQkJdmFsdWVzOiBuZXdWYWx1ZXMNCgkJCQl9ICk7DQoJCQkJb3RoZXJWYWwgPSB0aGlzLnZhbHVlcyggaW5kZXggPyAwIDogMSApOw0KCQkJCWlmICggYWxsb3dlZCAhPT0gZmFsc2UgKSB7DQoJCQkJCXRoaXMudmFsdWVzKCBpbmRleCwgbmV3VmFsICk7DQoJCQkJfQ0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJaWYgKCBuZXdWYWwgIT09IHRoaXMudmFsdWUoKSApIHsNCgkJCQkvLyBBIHNsaWRlIGNhbiBiZSBjYW5jZWxlZCBieSByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGUgc2xpZGUgY2FsbGJhY2sNCgkJCQlhbGxvd2VkID0gdGhpcy5fdHJpZ2dlciggInNsaWRlIiwgZXZlbnQsIHsNCgkJCQkJaGFuZGxlOiB0aGlzLmhhbmRsZXNbIGluZGV4IF0sDQoJCQkJCXZhbHVlOiBuZXdWYWwNCgkJCQl9ICk7DQoJCQkJaWYgKCBhbGxvd2VkICE9PSBmYWxzZSApIHsNCgkJCQkJdGhpcy52YWx1ZSggbmV3VmFsICk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfSwNCg0KCV9zdG9wOiBmdW5jdGlvbiggZXZlbnQsIGluZGV4ICkgew0KCQl2YXIgdWlIYXNoID0gew0KCQkJaGFuZGxlOiB0aGlzLmhhbmRsZXNbIGluZGV4IF0sDQoJCQl2YWx1ZTogdGhpcy52YWx1ZSgpDQoJCX07DQoJCWlmICggdGhpcy5vcHRpb25zLnZhbHVlcyAmJiB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHsNCgkJCXVpSGFzaC52YWx1ZSA9IHRoaXMudmFsdWVzKCBpbmRleCApOw0KCQkJdWlIYXNoLnZhbHVlcyA9IHRoaXMudmFsdWVzKCk7DQoJCX0NCg0KCQl0aGlzLl90cmlnZ2VyKCAic3RvcCIsIGV2ZW50LCB1aUhhc2ggKTsNCgl9LA0KDQoJX2NoYW5nZTogZnVuY3Rpb24oIGV2ZW50LCBpbmRleCApIHsNCgkJaWYgKCAhdGhpcy5fa2V5U2xpZGluZyAmJiAhdGhpcy5fbW91c2VTbGlkaW5nICkgew0KCQkJdmFyIHVpSGFzaCA9IHsNCgkJCQloYW5kbGU6IHRoaXMuaGFuZGxlc1sgaW5kZXggXSwNCgkJCQl2YWx1ZTogdGhpcy52YWx1ZSgpDQoJCQl9Ow0KCQkJaWYgKCB0aGlzLm9wdGlvbnMudmFsdWVzICYmIHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoICkgew0KCQkJCXVpSGFzaC52YWx1ZSA9IHRoaXMudmFsdWVzKCBpbmRleCApOw0KCQkJCXVpSGFzaC52YWx1ZXMgPSB0aGlzLnZhbHVlcygpOw0KCQkJfQ0KDQoJCQkvL3N0b3JlIHRoZSBsYXN0IGNoYW5nZWQgdmFsdWUgaW5kZXggZm9yIHJlZmVyZW5jZSB3aGVuIGhhbmRsZXMgb3ZlcmxhcA0KCQkJdGhpcy5fbGFzdENoYW5nZWRWYWx1ZSA9IGluZGV4Ow0KDQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHVpSGFzaCApOw0KCQl9DQoJfSwNCg0KCXZhbHVlOiBmdW5jdGlvbiggbmV3VmFsdWUgKSB7DQoJCWlmICggYXJndW1lbnRzLmxlbmd0aCApIHsNCgkJCXRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZSApOw0KCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIDAgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXJldHVybiB0aGlzLl92YWx1ZSgpOw0KCX0sDQoNCgl2YWx1ZXM6IGZ1bmN0aW9uKCBpbmRleCwgbmV3VmFsdWUgKSB7DQoJCXZhciB2YWxzLA0KCQkJbmV3VmFsdWVzLA0KCQkJaTsNCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPiAxICkgew0KCQkJdGhpcy5vcHRpb25zLnZhbHVlc1sgaW5kZXggXSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZSApOw0KCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIGluZGV4ICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQlpZiAoICQuaXNBcnJheSggYXJndW1lbnRzWyAwIF0gKSApIHsNCgkJCQl2YWxzID0gdGhpcy5vcHRpb25zLnZhbHVlczsNCgkJCQluZXdWYWx1ZXMgPSBhcmd1bWVudHNbIDAgXTsNCgkJCQlmb3IgKCBpID0gMDsgaSA8IHZhbHMubGVuZ3RoOyBpICs9IDEgKSB7DQoJCQkJCXZhbHNbIGkgXSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZXNbIGkgXSApOw0KCQkJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIGkgKTsNCgkJCQl9DQoJCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl9IGVsc2Ugew0KCQkJCWlmICggdGhpcy5vcHRpb25zLnZhbHVlcyAmJiB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHsNCgkJCQkJcmV0dXJuIHRoaXMuX3ZhbHVlcyggaW5kZXggKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlyZXR1cm4gdGhpcy52YWx1ZSgpOw0KCQkJCX0NCgkJCX0NCgkJfSBlbHNlIHsNCgkJCXJldHVybiB0aGlzLl92YWx1ZXMoKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdmFyIGksDQoJCQl2YWxzTGVuZ3RoID0gMDsNCg0KCQlpZiAoIGtleSA9PT0gInJhbmdlIiAmJiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHRydWUgKSB7DQoJCQlpZiAoIHZhbHVlID09PSAibWluIiApIHsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl92YWx1ZXMoIDAgKTsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWVzID0gbnVsbDsNCgkJCX0gZWxzZSBpZiAoIHZhbHVlID09PSAibWF4IiApIHsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl92YWx1ZXMoIHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoIC0gMSApOw0KCQkJCXRoaXMub3B0aW9ucy52YWx1ZXMgPSBudWxsOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCAkLmlzQXJyYXkoIHRoaXMub3B0aW9ucy52YWx1ZXMgKSApIHsNCgkJCXZhbHNMZW5ndGggPSB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aDsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiLCAhIXZhbHVlICk7DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCXN3aXRjaCAoIGtleSApIHsNCgkJCWNhc2UgIm9yaWVudGF0aW9uIjoNCgkJCQl0aGlzLl9kZXRlY3RPcmllbnRhdGlvbigpOw0KCQkJCXRoaXMuZWxlbWVudA0KCQkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiICkNCgkJCQkJLmFkZENsYXNzKCAidWktc2xpZGVyLSIgKyB0aGlzLm9yaWVudGF0aW9uICk7DQoJCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoNCgkJCQkvLyBSZXNldCBwb3NpdGlvbmluZyBmcm9tIHByZXZpb3VzIG9yaWVudGF0aW9uDQoJCQkJdGhpcy5oYW5kbGVzLmNzcyggdmFsdWUgPT09ICJob3Jpem9udGFsIiA/ICJib3R0b20iIDogImxlZnQiLCAiIiApOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAidmFsdWUiOg0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQkJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KCQkJCXRoaXMuX2NoYW5nZSggbnVsbCwgMCApOw0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSBmYWxzZTsNCgkJCQlicmVhazsNCgkJCWNhc2UgInZhbHVlcyI6DQoJCQkJdGhpcy5fYW5pbWF0ZU9mZiA9IHRydWU7DQoJCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQkJZm9yICggaSA9IDA7IGkgPCB2YWxzTGVuZ3RoOyBpICs9IDEgKSB7DQoJCQkJCXRoaXMuX2NoYW5nZSggbnVsbCwgaSApOw0KCQkJCX0NCgkJCQl0aGlzLl9hbmltYXRlT2ZmID0gZmFsc2U7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJzdGVwIjoNCgkJCWNhc2UgIm1pbiI6DQoJCQljYXNlICJtYXgiOg0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQkJCXRoaXMuX2NhbGN1bGF0ZU5ld01heCgpOw0KCQkJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSBmYWxzZTsNCgkJCQlicmVhazsNCgkJCWNhc2UgInJhbmdlIjoNCgkJCQl0aGlzLl9hbmltYXRlT2ZmID0gdHJ1ZTsNCgkJCQl0aGlzLl9yZWZyZXNoKCk7DQoJCQkJdGhpcy5fYW5pbWF0ZU9mZiA9IGZhbHNlOw0KCQkJCWJyZWFrOw0KCQl9DQoJfSwNCg0KCS8vaW50ZXJuYWwgdmFsdWUgZ2V0dGVyDQoJLy8gX3ZhbHVlKCkgcmV0dXJucyB2YWx1ZSB0cmltbWVkIGJ5IG1pbiBhbmQgbWF4LCBhbGlnbmVkIGJ5IHN0ZXANCglfdmFsdWU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdmFsID0gdGhpcy5vcHRpb25zLnZhbHVlOw0KCQl2YWwgPSB0aGlzLl90cmltQWxpZ25WYWx1ZSggdmFsICk7DQoNCgkJcmV0dXJuIHZhbDsNCgl9LA0KDQoJLy9pbnRlcm5hbCB2YWx1ZXMgZ2V0dGVyDQoJLy8gX3ZhbHVlcygpIHJldHVybnMgYXJyYXkgb2YgdmFsdWVzIHRyaW1tZWQgYnkgbWluIGFuZCBtYXgsIGFsaWduZWQgYnkgc3RlcA0KCS8vIF92YWx1ZXMoIGluZGV4ICkgcmV0dXJucyBzaW5nbGUgdmFsdWUgdHJpbW1lZCBieSBtaW4gYW5kIG1heCwgYWxpZ25lZCBieSBzdGVwDQoJX3ZhbHVlczogZnVuY3Rpb24oIGluZGV4ICkgew0KCQl2YXIgdmFsLA0KCQkJdmFscywNCgkJCWk7DQoNCgkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICkgew0KCQkJdmFsID0gdGhpcy5vcHRpb25zLnZhbHVlc1sgaW5kZXggXTsNCgkJCXZhbCA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCB2YWwgKTsNCg0KCQkJcmV0dXJuIHZhbDsNCgkJfSBlbHNlIGlmICggdGhpcy5vcHRpb25zLnZhbHVlcyAmJiB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHsNCgkJCS8vIC5zbGljZSgpIGNyZWF0ZXMgYSBjb3B5IG9mIHRoZSBhcnJheQ0KCQkJLy8gdGhpcyBjb3B5IGdldHMgdHJpbW1lZCBieSBtaW4gYW5kIG1heCBhbmQgdGhlbiByZXR1cm5lZA0KCQkJdmFscyA9IHRoaXMub3B0aW9ucy52YWx1ZXMuc2xpY2UoKTsNCgkJCWZvciAoIGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7IGkgKz0gMSkgew0KCQkJCXZhbHNbIGkgXSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCB2YWxzWyBpIF0gKTsNCgkJCX0NCg0KCQkJcmV0dXJuIHZhbHM7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gW107DQoJCX0NCgl9LA0KDQoJLy8gcmV0dXJucyB0aGUgc3RlcC1hbGlnbmVkIHZhbHVlIHRoYXQgdmFsIGlzIGNsb3Nlc3QgdG8sIGJldHdlZW4gKGluY2x1c2l2ZSkgbWluIGFuZCBtYXgNCglfdHJpbUFsaWduVmFsdWU6IGZ1bmN0aW9uKCB2YWwgKSB7DQoJCWlmICggdmFsIDw9IHRoaXMuX3ZhbHVlTWluKCkgKSB7DQoJCQlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTsNCgkJfQ0KCQlpZiAoIHZhbCA+PSB0aGlzLl92YWx1ZU1heCgpICkgew0KCQkJcmV0dXJuIHRoaXMuX3ZhbHVlTWF4KCk7DQoJCX0NCgkJdmFyIHN0ZXAgPSAoIHRoaXMub3B0aW9ucy5zdGVwID4gMCApID8gdGhpcy5vcHRpb25zLnN0ZXAgOiAxLA0KCQkJdmFsTW9kU3RlcCA9ICh2YWwgLSB0aGlzLl92YWx1ZU1pbigpKSAlIHN0ZXAsDQoJCQlhbGlnblZhbHVlID0gdmFsIC0gdmFsTW9kU3RlcDsNCg0KCQlpZiAoIE1hdGguYWJzKHZhbE1vZFN0ZXApICogMiA+PSBzdGVwICkgew0KCQkJYWxpZ25WYWx1ZSArPSAoIHZhbE1vZFN0ZXAgPiAwICkgPyBzdGVwIDogKCAtc3RlcCApOw0KCQl9DQoNCgkJLy8gU2luY2UgSmF2YVNjcmlwdCBoYXMgcHJvYmxlbXMgd2l0aCBsYXJnZSBmbG9hdHMsIHJvdW5kDQoJCS8vIHRoZSBmaW5hbCB2YWx1ZSB0byA1IGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCAoc2VlICM0MTI0KQ0KCQlyZXR1cm4gcGFyc2VGbG9hdCggYWxpZ25WYWx1ZS50b0ZpeGVkKDUpICk7DQoJfSwNCg0KCV9jYWxjdWxhdGVOZXdNYXg6IGZ1bmN0aW9uKCkgew0KCQl2YXIgcmVtYWluZGVyID0gKCB0aGlzLm9wdGlvbnMubWF4IC0gdGhpcy5fdmFsdWVNaW4oKSApICUgdGhpcy5vcHRpb25zLnN0ZXA7DQoJCXRoaXMubWF4ID0gdGhpcy5vcHRpb25zLm1heCAtIHJlbWFpbmRlcjsNCgl9LA0KDQoJX3ZhbHVlTWluOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMub3B0aW9ucy5taW47DQoJfSwNCg0KCV92YWx1ZU1heDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLm1heDsNCgl9LA0KDQoJX3JlZnJlc2hWYWx1ZTogZnVuY3Rpb24oKSB7DQoJCXZhciBsYXN0VmFsUGVyY2VudCwgdmFsUGVyY2VudCwgdmFsdWUsIHZhbHVlTWluLCB2YWx1ZU1heCwNCgkJCW9SYW5nZSA9IHRoaXMub3B0aW9ucy5yYW5nZSwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQl0aGF0ID0gdGhpcywNCgkJCWFuaW1hdGUgPSAoICF0aGlzLl9hbmltYXRlT2ZmICkgPyBvLmFuaW1hdGUgOiBmYWxzZSwNCgkJCV9zZXQgPSB7fTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy52YWx1ZXMgJiYgdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGggKSB7DQoJCQl0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbiggaSApIHsNCgkJCQl2YWxQZXJjZW50ID0gKCB0aGF0LnZhbHVlcyhpKSAtIHRoYXQuX3ZhbHVlTWluKCkgKSAvICggdGhhdC5fdmFsdWVNYXgoKSAtIHRoYXQuX3ZhbHVlTWluKCkgKSAqIDEwMDsNCgkJCQlfc2V0WyB0aGF0Lm9yaWVudGF0aW9uID09PSAiaG9yaXpvbnRhbCIgPyAibGVmdCIgOiAiYm90dG9tIiBdID0gdmFsUGVyY2VudCArICIlIjsNCgkJCQkkKCB0aGlzICkuc3RvcCggMSwgMSApWyBhbmltYXRlID8gImFuaW1hdGUiIDogImNzcyIgXSggX3NldCwgby5hbmltYXRlICk7DQoJCQkJaWYgKCB0aGF0Lm9wdGlvbnMucmFuZ2UgPT09IHRydWUgKSB7DQoJCQkJCWlmICggdGhhdC5vcmllbnRhdGlvbiA9PT0gImhvcml6b250YWwiICkgew0KCQkJCQkJaWYgKCBpID09PSAwICkgew0KCQkJCQkJCXRoYXQucmFuZ2Uuc3RvcCggMSwgMSApWyBhbmltYXRlID8gImFuaW1hdGUiIDogImNzcyIgXSggeyBsZWZ0OiB2YWxQZXJjZW50ICsgIiUiIH0sIG8uYW5pbWF0ZSApOw0KCQkJCQkJfQ0KCQkJCQkJaWYgKCBpID09PSAxICkgew0KCQkJCQkJCXRoYXQucmFuZ2VbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCB7IHdpZHRoOiAoIHZhbFBlcmNlbnQgLSBsYXN0VmFsUGVyY2VudCApICsgIiUiIH0sIHsgcXVldWU6IGZhbHNlLCBkdXJhdGlvbjogby5hbmltYXRlIH0gKTsNCgkJCQkJCX0NCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWlmICggaSA9PT0gMCApIHsNCgkJCQkJCQl0aGF0LnJhbmdlLnN0b3AoIDEsIDEgKVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsgYm90dG9tOiAoIHZhbFBlcmNlbnQgKSArICIlIiB9LCBvLmFuaW1hdGUgKTsNCgkJCQkJCX0NCgkJCQkJCWlmICggaSA9PT0gMSApIHsNCgkJCQkJCQl0aGF0LnJhbmdlWyBhbmltYXRlID8gImFuaW1hdGUiIDogImNzcyIgXSggeyBoZWlnaHQ6ICggdmFsUGVyY2VudCAtIGxhc3RWYWxQZXJjZW50ICkgKyAiJSIgfSwgeyBxdWV1ZTogZmFsc2UsIGR1cmF0aW9uOiBvLmFuaW1hdGUgfSApOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJCWxhc3RWYWxQZXJjZW50ID0gdmFsUGVyY2VudDsNCgkJCX0pOw0KCQl9IGVsc2Ugew0KCQkJdmFsdWUgPSB0aGlzLnZhbHVlKCk7DQoJCQl2YWx1ZU1pbiA9IHRoaXMuX3ZhbHVlTWluKCk7DQoJCQl2YWx1ZU1heCA9IHRoaXMuX3ZhbHVlTWF4KCk7DQoJCQl2YWxQZXJjZW50ID0gKCB2YWx1ZU1heCAhPT0gdmFsdWVNaW4gKSA/DQoJCQkJCSggdmFsdWUgLSB2YWx1ZU1pbiApIC8gKCB2YWx1ZU1heCAtIHZhbHVlTWluICkgKiAxMDAgOg0KCQkJCQkwOw0KCQkJX3NldFsgdGhpcy5vcmllbnRhdGlvbiA9PT0gImhvcml6b250YWwiID8gImxlZnQiIDogImJvdHRvbSIgXSA9IHZhbFBlcmNlbnQgKyAiJSI7DQoJCQl0aGlzLmhhbmRsZS5zdG9wKCAxLCAxIClbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCBfc2V0LCBvLmFuaW1hdGUgKTsNCg0KCQkJaWYgKCBvUmFuZ2UgPT09ICJtaW4iICYmIHRoaXMub3JpZW50YXRpb24gPT09ICJob3Jpem9udGFsIiApIHsNCgkJCQl0aGlzLnJhbmdlLnN0b3AoIDEsIDEgKVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsgd2lkdGg6IHZhbFBlcmNlbnQgKyAiJSIgfSwgby5hbmltYXRlICk7DQoJCQl9DQoJCQlpZiAoIG9SYW5nZSA9PT0gIm1heCIgJiYgdGhpcy5vcmllbnRhdGlvbiA9PT0gImhvcml6b250YWwiICkgew0KCQkJCXRoaXMucmFuZ2VbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCB7IHdpZHRoOiAoIDEwMCAtIHZhbFBlcmNlbnQgKSArICIlIiB9LCB7IHF1ZXVlOiBmYWxzZSwgZHVyYXRpb246IG8uYW5pbWF0ZSB9ICk7DQoJCQl9DQoJCQlpZiAoIG9SYW5nZSA9PT0gIm1pbiIgJiYgdGhpcy5vcmllbnRhdGlvbiA9PT0gInZlcnRpY2FsIiApIHsNCgkJCQl0aGlzLnJhbmdlLnN0b3AoIDEsIDEgKVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsgaGVpZ2h0OiB2YWxQZXJjZW50ICsgIiUiIH0sIG8uYW5pbWF0ZSApOw0KCQkJfQ0KCQkJaWYgKCBvUmFuZ2UgPT09ICJtYXgiICYmIHRoaXMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSB7DQoJCQkJdGhpcy5yYW5nZVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsgaGVpZ2h0OiAoIDEwMCAtIHZhbFBlcmNlbnQgKSArICIlIiB9LCB7IHF1ZXVlOiBmYWxzZSwgZHVyYXRpb246IG8uYW5pbWF0ZSB9ICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX2hhbmRsZUV2ZW50czogew0KCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl2YXIgYWxsb3dlZCwgY3VyVmFsLCBuZXdWYWwsIHN0ZXAsDQoJCQkJaW5kZXggPSAkKCBldmVudC50YXJnZXQgKS5kYXRhKCAidWktc2xpZGVyLWhhbmRsZS1pbmRleCIgKTsNCg0KCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlICQudWkua2V5Q29kZS5IT01FOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkVORDoNCgkJCQljYXNlICQudWkua2V5Q29kZS5QQUdFX1VQOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfRE9XTjoNCgkJCQljYXNlICQudWkua2V5Q29kZS5VUDoNCgkJCQljYXNlICQudWkua2V5Q29kZS5SSUdIVDoNCgkJCQljYXNlICQudWkua2V5Q29kZS5ET1dOOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkxFRlQ6DQoJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCWlmICggIXRoaXMuX2tleVNsaWRpbmcgKSB7DQoJCQkJCQl0aGlzLl9rZXlTbGlkaW5nID0gdHJ1ZTsNCgkJCQkJCSQoIGV2ZW50LnRhcmdldCApLmFkZENsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJCQkJYWxsb3dlZCA9IHRoaXMuX3N0YXJ0KCBldmVudCwgaW5kZXggKTsNCgkJCQkJCWlmICggYWxsb3dlZCA9PT0gZmFsc2UgKSB7DQoJCQkJCQkJcmV0dXJuOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJfQ0KDQoJCQlzdGVwID0gdGhpcy5vcHRpb25zLnN0ZXA7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy52YWx1ZXMgJiYgdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGggKSB7DQoJCQkJY3VyVmFsID0gbmV3VmFsID0gdGhpcy52YWx1ZXMoIGluZGV4ICk7DQoJCQl9IGVsc2Ugew0KCQkJCWN1clZhbCA9IG5ld1ZhbCA9IHRoaXMudmFsdWUoKTsNCgkJCX0NCg0KCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlICQudWkua2V5Q29kZS5IT01FOg0KCQkJCQluZXdWYWwgPSB0aGlzLl92YWx1ZU1pbigpOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5FTkQ6DQoJCQkJCW5ld1ZhbCA9IHRoaXMuX3ZhbHVlTWF4KCk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfVVA6DQoJCQkJCW5ld1ZhbCA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKA0KCQkJCQkJY3VyVmFsICsgKCAoIHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpICkgLyB0aGlzLm51bVBhZ2VzICkNCgkJCQkJKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOOg0KCQkJCQluZXdWYWwgPSB0aGlzLl90cmltQWxpZ25WYWx1ZSgNCgkJCQkJCWN1clZhbCAtICggKHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpKSAvIHRoaXMubnVtUGFnZXMgKSApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5VUDoNCgkJCQljYXNlICQudWkua2V5Q29kZS5SSUdIVDoNCgkJCQkJaWYgKCBjdXJWYWwgPT09IHRoaXMuX3ZhbHVlTWF4KCkgKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCgkJCQkJbmV3VmFsID0gdGhpcy5fdHJpbUFsaWduVmFsdWUoIGN1clZhbCArIHN0ZXAgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuRE9XTjoNCgkJCQljYXNlICQudWkua2V5Q29kZS5MRUZUOg0KCQkJCQlpZiAoIGN1clZhbCA9PT0gdGhpcy5fdmFsdWVNaW4oKSApIHsNCgkJCQkJCXJldHVybjsNCgkJCQkJfQ0KCQkJCQluZXdWYWwgPSB0aGlzLl90cmltQWxpZ25WYWx1ZSggY3VyVmFsIC0gc3RlcCApOw0KCQkJCQlicmVhazsNCgkJCX0NCg0KCQkJdGhpcy5fc2xpZGUoIGV2ZW50LCBpbmRleCwgbmV3VmFsICk7DQoJCX0sDQoJCWtleXVwOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl2YXIgaW5kZXggPSAkKCBldmVudC50YXJnZXQgKS5kYXRhKCAidWktc2xpZGVyLWhhbmRsZS1pbmRleCIgKTsNCg0KCQkJaWYgKCB0aGlzLl9rZXlTbGlkaW5nICkgew0KCQkJCXRoaXMuX2tleVNsaWRpbmcgPSBmYWxzZTsNCgkJCQl0aGlzLl9zdG9wKCBldmVudCwgaW5kZXggKTsNCgkJCQl0aGlzLl9jaGFuZ2UoIGV2ZW50LCBpbmRleCApOw0KCQkJCSQoIGV2ZW50LnRhcmdldCApLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJfQ0KCQl9DQoJfQ0KfSk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgU29ydGFibGUgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3NvcnRhYmxlLw0KICovDQoNCg0KdmFyIHNvcnRhYmxlID0gJC53aWRnZXQoInVpLnNvcnRhYmxlIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjExLjIiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAic29ydCIsDQoJcmVhZHk6IGZhbHNlLA0KCW9wdGlvbnM6IHsNCgkJYXBwZW5kVG86ICJwYXJlbnQiLA0KCQlheGlzOiBmYWxzZSwNCgkJY29ubmVjdFdpdGg6IGZhbHNlLA0KCQljb250YWlubWVudDogZmFsc2UsDQoJCWN1cnNvcjogImF1dG8iLA0KCQljdXJzb3JBdDogZmFsc2UsDQoJCWRyb3BPbkVtcHR5OiB0cnVlLA0KCQlmb3JjZVBsYWNlaG9sZGVyU2l6ZTogZmFsc2UsDQoJCWZvcmNlSGVscGVyU2l6ZTogZmFsc2UsDQoJCWdyaWQ6IGZhbHNlLA0KCQloYW5kbGU6IGZhbHNlLA0KCQloZWxwZXI6ICJvcmlnaW5hbCIsDQoJCWl0ZW1zOiAiPiAqIiwNCgkJb3BhY2l0eTogZmFsc2UsDQoJCXBsYWNlaG9sZGVyOiBmYWxzZSwNCgkJcmV2ZXJ0OiBmYWxzZSwNCgkJc2Nyb2xsOiB0cnVlLA0KCQlzY3JvbGxTZW5zaXRpdml0eTogMjAsDQoJCXNjcm9sbFNwZWVkOiAyMCwNCgkJc2NvcGU6ICJkZWZhdWx0IiwNCgkJdG9sZXJhbmNlOiAiaW50ZXJzZWN0IiwNCgkJekluZGV4OiAxMDAwLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQlhY3RpdmF0ZTogbnVsbCwNCgkJYmVmb3JlU3RvcDogbnVsbCwNCgkJY2hhbmdlOiBudWxsLA0KCQlkZWFjdGl2YXRlOiBudWxsLA0KCQlvdXQ6IG51bGwsDQoJCW92ZXI6IG51bGwsDQoJCXJlY2VpdmU6IG51bGwsDQoJCXJlbW92ZTogbnVsbCwNCgkJc29ydDogbnVsbCwNCgkJc3RhcnQ6IG51bGwsDQoJCXN0b3A6IG51bGwsDQoJCXVwZGF0ZTogbnVsbA0KCX0sDQoNCglfaXNPdmVyQXhpczogZnVuY3Rpb24oIHgsIHJlZmVyZW5jZSwgc2l6ZSApIHsNCgkJcmV0dXJuICggeCA+PSByZWZlcmVuY2UgKSAmJiAoIHggPCAoIHJlZmVyZW5jZSArIHNpemUgKSApOw0KCX0sDQoNCglfaXNGbG9hdGluZzogZnVuY3Rpb24oIGl0ZW0gKSB7DQoJCXJldHVybiAoL2xlZnR8cmlnaHQvKS50ZXN0KGl0ZW0uY3NzKCJmbG9hdCIpKSB8fCAoL2lubGluZXx0YWJsZS1jZWxsLykudGVzdChpdGVtLmNzcygiZGlzcGxheSIpKTsNCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoNCgkJdmFyIG8gPSB0aGlzLm9wdGlvbnM7DQoJCXRoaXMuY29udGFpbmVyQ2FjaGUgPSB7fTsNCgkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zb3J0YWJsZSIpOw0KDQoJCS8vR2V0IHRoZSBpdGVtcw0KCQl0aGlzLnJlZnJlc2goKTsNCg0KCQkvL0xldCdzIGRldGVybWluZSBpZiB0aGUgaXRlbXMgYXJlIGJlaW5nIGRpc3BsYXllZCBob3Jpem9udGFsbHkNCgkJdGhpcy5mbG9hdGluZyA9IHRoaXMuaXRlbXMubGVuZ3RoID8gby5heGlzID09PSAieCIgfHwgdGhpcy5faXNGbG9hdGluZyh0aGlzLml0ZW1zWzBdLml0ZW0pIDogZmFsc2U7DQoNCgkJLy9MZXQncyBkZXRlcm1pbmUgdGhlIHBhcmVudCdzIG9mZnNldA0KCQl0aGlzLm9mZnNldCA9IHRoaXMuZWxlbWVudC5vZmZzZXQoKTsNCg0KCQkvL0luaXRpYWxpemUgbW91c2UgZXZlbnRzIGZvciBpbnRlcmFjdGlvbg0KCQl0aGlzLl9tb3VzZUluaXQoKTsNCg0KCQl0aGlzLl9zZXRIYW5kbGVDbGFzc05hbWUoKTsNCg0KCQkvL1dlJ3JlIHJlYWR5IHRvIGdvDQoJCXRoaXMucmVhZHkgPSB0cnVlOw0KDQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCWlmICgga2V5ID09PSAiaGFuZGxlIiApIHsNCgkJCXRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpOw0KCQl9DQoJfSwNCg0KCV9zZXRIYW5kbGVDbGFzc05hbWU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQuZmluZCggIi51aS1zb3J0YWJsZS1oYW5kbGUiICkucmVtb3ZlQ2xhc3MoICJ1aS1zb3J0YWJsZS1oYW5kbGUiICk7DQoJCSQuZWFjaCggdGhpcy5pdGVtcywgZnVuY3Rpb24oKSB7DQoJCQkoIHRoaXMuaW5zdGFuY2Uub3B0aW9ucy5oYW5kbGUgPw0KCQkJCXRoaXMuaXRlbS5maW5kKCB0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGFuZGxlICkgOiB0aGlzLml0ZW0gKQ0KCQkJCS5hZGRDbGFzcyggInVpLXNvcnRhYmxlLWhhbmRsZSIgKTsNCgkJfSk7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5lbGVtZW50DQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zb3J0YWJsZSB1aS1zb3J0YWJsZS1kaXNhYmxlZCIgKQ0KCQkJLmZpbmQoICIudWktc29ydGFibGUtaGFuZGxlIiApDQoJCQkJLnJlbW92ZUNsYXNzKCAidWktc29ydGFibGUtaGFuZGxlIiApOw0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCg0KCQlmb3IgKCB2YXIgaSA9IHRoaXMuaXRlbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7DQoJCQl0aGlzLml0ZW1zW2ldLml0ZW0ucmVtb3ZlRGF0YSh0aGlzLndpZGdldE5hbWUgKyAiLWl0ZW0iKTsNCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCglfbW91c2VDYXB0dXJlOiBmdW5jdGlvbihldmVudCwgb3ZlcnJpZGVIYW5kbGUpIHsNCgkJdmFyIGN1cnJlbnRJdGVtID0gbnVsbCwNCgkJCXZhbGlkSGFuZGxlID0gZmFsc2UsDQoJCQl0aGF0ID0gdGhpczsNCg0KCQlpZiAodGhpcy5yZXZlcnRpbmcpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWlmKHRoaXMub3B0aW9ucy5kaXNhYmxlZCB8fCB0aGlzLm9wdGlvbnMudHlwZSA9PT0gInN0YXRpYyIpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vV2UgaGF2ZSB0byByZWZyZXNoIHRoZSBpdGVtcyBkYXRhIG9uY2UgZmlyc3QNCgkJdGhpcy5fcmVmcmVzaEl0ZW1zKGV2ZW50KTsNCg0KCQkvL0ZpbmQgb3V0IGlmIHRoZSBjbGlja2VkIG5vZGUgKG9yIG9uZSBvZiBpdHMgcGFyZW50cykgaXMgYSBhY3R1YWwgaXRlbSBpbiB0aGlzLml0ZW1zDQoJCSQoZXZlbnQudGFyZ2V0KS5wYXJlbnRzKCkuZWFjaChmdW5jdGlvbigpIHsNCgkJCWlmKCQuZGF0YSh0aGlzLCB0aGF0LndpZGdldE5hbWUgKyAiLWl0ZW0iKSA9PT0gdGhhdCkgew0KCQkJCWN1cnJlbnRJdGVtID0gJCh0aGlzKTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0pOw0KCQlpZigkLmRhdGEoZXZlbnQudGFyZ2V0LCB0aGF0LndpZGdldE5hbWUgKyAiLWl0ZW0iKSA9PT0gdGhhdCkgew0KCQkJY3VycmVudEl0ZW0gPSAkKGV2ZW50LnRhcmdldCk7DQoJCX0NCg0KCQlpZighY3VycmVudEl0ZW0pIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQlpZih0aGlzLm9wdGlvbnMuaGFuZGxlICYmICFvdmVycmlkZUhhbmRsZSkgew0KCQkJJCh0aGlzLm9wdGlvbnMuaGFuZGxlLCBjdXJyZW50SXRlbSkuZmluZCgiKiIpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCWlmKHRoaXMgPT09IGV2ZW50LnRhcmdldCkgew0KCQkJCQl2YWxpZEhhbmRsZSA9IHRydWU7DQoJCQkJfQ0KCQkJfSk7DQoJCQlpZighdmFsaWRIYW5kbGUpIHsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLmN1cnJlbnRJdGVtID0gY3VycmVudEl0ZW07DQoJCXRoaXMuX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zKCk7DQoJCXJldHVybiB0cnVlOw0KDQoJfSwNCg0KCV9tb3VzZVN0YXJ0OiBmdW5jdGlvbihldmVudCwgb3ZlcnJpZGVIYW5kbGUsIG5vQWN0aXZhdGlvbikgew0KDQoJCXZhciBpLCBib2R5LA0KCQkJbyA9IHRoaXMub3B0aW9uczsNCg0KCQl0aGlzLmN1cnJlbnRDb250YWluZXIgPSB0aGlzOw0KDQoJCS8vV2Ugb25seSBuZWVkIHRvIGNhbGwgcmVmcmVzaFBvc2l0aW9ucywgYmVjYXVzZSB0aGUgcmVmcmVzaEl0ZW1zIGNhbGwgaGFzIGJlZW4gbW92ZWQgdG8gbW91c2VDYXB0dXJlDQoJCXRoaXMucmVmcmVzaFBvc2l0aW9ucygpOw0KDQoJCS8vQ3JlYXRlIGFuZCBhcHBlbmQgdGhlIHZpc2libGUgaGVscGVyDQoJCXRoaXMuaGVscGVyID0gdGhpcy5fY3JlYXRlSGVscGVyKGV2ZW50KTsNCg0KCQkvL0NhY2hlIHRoZSBoZWxwZXIgc2l6ZQ0KCQl0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCk7DQoNCgkJLyoNCgkJICogLSBQb3NpdGlvbiBnZW5lcmF0aW9uIC0NCgkJICogVGhpcyBibG9jayBnZW5lcmF0ZXMgZXZlcnl0aGluZyBwb3NpdGlvbiByZWxhdGVkIC0gaXQncyB0aGUgY29yZSBvZiBkcmFnZ2FibGVzLg0KCQkgKi8NCg0KCQkvL0NhY2hlIHRoZSBtYXJnaW5zIG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50DQoJCXRoaXMuX2NhY2hlTWFyZ2lucygpOw0KDQoJCS8vR2V0IHRoZSBuZXh0IHNjcm9sbGluZyBwYXJlbnQNCgkJdGhpcy5zY3JvbGxQYXJlbnQgPSB0aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoKTsNCg0KCQkvL1RoZSBlbGVtZW50J3MgYWJzb2x1dGUgcG9zaXRpb24gb24gdGhlIHBhZ2UgbWludXMgbWFyZ2lucw0KCQl0aGlzLm9mZnNldCA9IHRoaXMuY3VycmVudEl0ZW0ub2Zmc2V0KCk7DQoJCXRoaXMub2Zmc2V0ID0gew0KCQkJdG9wOiB0aGlzLm9mZnNldC50b3AgLSB0aGlzLm1hcmdpbnMudG9wLA0KCQkJbGVmdDogdGhpcy5vZmZzZXQubGVmdCAtIHRoaXMubWFyZ2lucy5sZWZ0DQoJCX07DQoNCgkJJC5leHRlbmQodGhpcy5vZmZzZXQsIHsNCgkJCWNsaWNrOiB7IC8vV2hlcmUgdGhlIGNsaWNrIGhhcHBlbmVkLCByZWxhdGl2ZSB0byB0aGUgZWxlbWVudA0KCQkJCWxlZnQ6IGV2ZW50LnBhZ2VYIC0gdGhpcy5vZmZzZXQubGVmdCwNCgkJCQl0b3A6IGV2ZW50LnBhZ2VZIC0gdGhpcy5vZmZzZXQudG9wDQoJCQl9LA0KCQkJcGFyZW50OiB0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKSwNCgkJCXJlbGF0aXZlOiB0aGlzLl9nZXRSZWxhdGl2ZU9mZnNldCgpIC8vVGhpcyBpcyBhIHJlbGF0aXZlIHRvIGFic29sdXRlIHBvc2l0aW9uIG1pbnVzIHRoZSBhY3R1YWwgcG9zaXRpb24gY2FsY3VsYXRpb24gLSBvbmx5IHVzZWQgZm9yIHJlbGF0aXZlIHBvc2l0aW9uZWQgaGVscGVyDQoJCX0pOw0KDQoJCS8vIE9ubHkgYWZ0ZXIgd2UgZ290IHRoZSBvZmZzZXQsIHdlIGNhbiBjaGFuZ2UgdGhlIGhlbHBlcidzIHBvc2l0aW9uIHRvIGFic29sdXRlDQoJCS8vIFRPRE86IFN0aWxsIG5lZWQgdG8gZmlndXJlIG91dCBhIHdheSB0byBtYWtlIHJlbGF0aXZlIHNvcnRpbmcgcG9zc2libGUNCgkJdGhpcy5oZWxwZXIuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpOw0KCQl0aGlzLmNzc1Bvc2l0aW9uID0gdGhpcy5oZWxwZXIuY3NzKCJwb3NpdGlvbiIpOw0KDQoJCS8vR2VuZXJhdGUgdGhlIG9yaWdpbmFsIHBvc2l0aW9uDQoJCXRoaXMub3JpZ2luYWxQb3NpdGlvbiA9IHRoaXMuX2dlbmVyYXRlUG9zaXRpb24oZXZlbnQpOw0KCQl0aGlzLm9yaWdpbmFsUGFnZVggPSBldmVudC5wYWdlWDsNCgkJdGhpcy5vcmlnaW5hbFBhZ2VZID0gZXZlbnQucGFnZVk7DQoNCgkJLy9BZGp1c3QgdGhlIG1vdXNlIG9mZnNldCByZWxhdGl2ZSB0byB0aGUgaGVscGVyIGlmICJjdXJzb3JBdCIgaXMgc3VwcGxpZWQNCgkJKG8uY3Vyc29yQXQgJiYgdGhpcy5fYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcihvLmN1cnNvckF0KSk7DQoNCgkJLy9DYWNoZSB0aGUgZm9ybWVyIERPTSBwb3NpdGlvbg0KCQl0aGlzLmRvbVBvc2l0aW9uID0geyBwcmV2OiB0aGlzLmN1cnJlbnRJdGVtLnByZXYoKVswXSwgcGFyZW50OiB0aGlzLmN1cnJlbnRJdGVtLnBhcmVudCgpWzBdIH07DQoNCgkJLy9JZiB0aGUgaGVscGVyIGlzIG5vdCB0aGUgb3JpZ2luYWwsIGhpZGUgdGhlIG9yaWdpbmFsIHNvIGl0J3Mgbm90IHBsYXlpbmcgYW55IHJvbGUgZHVyaW5nIHRoZSBkcmFnLCB3b24ndCBjYXVzZSBhbnl0aGluZyBiYWQgdGhpcyB3YXkNCgkJaWYodGhpcy5oZWxwZXJbMF0gIT09IHRoaXMuY3VycmVudEl0ZW1bMF0pIHsNCgkJCXRoaXMuY3VycmVudEl0ZW0uaGlkZSgpOw0KCQl9DQoNCgkJLy9DcmVhdGUgdGhlIHBsYWNlaG9sZGVyDQoJCXRoaXMuX2NyZWF0ZVBsYWNlaG9sZGVyKCk7DQoNCgkJLy9TZXQgYSBjb250YWlubWVudCBpZiBnaXZlbiBpbiB0aGUgb3B0aW9ucw0KCQlpZihvLmNvbnRhaW5tZW50KSB7DQoJCQl0aGlzLl9zZXRDb250YWlubWVudCgpOw0KCQl9DQoNCgkJaWYoIG8uY3Vyc29yICYmIG8uY3Vyc29yICE9PSAiYXV0byIgKSB7IC8vIGN1cnNvciBvcHRpb24NCgkJCWJvZHkgPSB0aGlzLmRvY3VtZW50LmZpbmQoICJib2R5IiApOw0KDQoJCQkvLyBzdXBwb3J0OiBJRQ0KCQkJdGhpcy5zdG9yZWRDdXJzb3IgPSBib2R5LmNzcyggImN1cnNvciIgKTsNCgkJCWJvZHkuY3NzKCAiY3Vyc29yIiwgby5jdXJzb3IgKTsNCg0KCQkJdGhpcy5zdG9yZWRTdHlsZXNoZWV0ID0gJCggIjxzdHlsZT4qeyBjdXJzb3I6ICIrby5jdXJzb3IrIiAhaW1wb3J0YW50OyB9PC9zdHlsZT4iICkuYXBwZW5kVG8oIGJvZHkgKTsNCgkJfQ0KDQoJCWlmKG8ub3BhY2l0eSkgeyAvLyBvcGFjaXR5IG9wdGlvbg0KCQkJaWYgKHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIpKSB7DQoJCQkJdGhpcy5fc3RvcmVkT3BhY2l0eSA9IHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIpOw0KCQkJfQ0KCQkJdGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5Iiwgby5vcGFjaXR5KTsNCgkJfQ0KDQoJCWlmKG8uekluZGV4KSB7IC8vIHpJbmRleCBvcHRpb24NCgkJCWlmICh0aGlzLmhlbHBlci5jc3MoInpJbmRleCIpKSB7DQoJCQkJdGhpcy5fc3RvcmVkWkluZGV4ID0gdGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiKTsNCgkJCX0NCgkJCXRoaXMuaGVscGVyLmNzcygiekluZGV4Iiwgby56SW5kZXgpOw0KCQl9DQoNCgkJLy9QcmVwYXJlIHNjcm9sbGluZw0KCQlpZih0aGlzLnNjcm9sbFBhcmVudFswXSAhPT0gZG9jdW1lbnQgJiYgdGhpcy5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSAhPT0gIkhUTUwiKSB7DQoJCQl0aGlzLm92ZXJmbG93T2Zmc2V0ID0gdGhpcy5zY3JvbGxQYXJlbnQub2Zmc2V0KCk7DQoJCX0NCg0KCQkvL0NhbGwgY2FsbGJhY2tzDQoJCXRoaXMuX3RyaWdnZXIoInN0YXJ0IiwgZXZlbnQsIHRoaXMuX3VpSGFzaCgpKTsNCg0KCQkvL1JlY2FjaGUgdGhlIGhlbHBlciBzaXplDQoJCWlmKCF0aGlzLl9wcmVzZXJ2ZUhlbHBlclByb3BvcnRpb25zKSB7DQoJCQl0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCk7DQoJCX0NCg0KDQoJCS8vUG9zdCAiYWN0aXZhdGUiIGV2ZW50cyB0byBwb3NzaWJsZSBjb250YWluZXJzDQoJCWlmKCAhbm9BY3RpdmF0aW9uICkgew0KCQkJZm9yICggaSA9IHRoaXMuY29udGFpbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSApIHsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5fdHJpZ2dlciggImFjdGl2YXRlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCggdGhpcyApICk7DQoJCQl9DQoJCX0NCg0KCQkvL1ByZXBhcmUgcG9zc2libGUgZHJvcHBhYmxlcw0KCQlpZigkLnVpLmRkbWFuYWdlcikgew0KCQkJJC51aS5kZG1hbmFnZXIuY3VycmVudCA9IHRoaXM7DQoJCX0NCg0KCQlpZiAoJC51aS5kZG1hbmFnZXIgJiYgIW8uZHJvcEJlaGF2aW91cikgew0KCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModGhpcywgZXZlbnQpOw0KCQl9DQoNCgkJdGhpcy5kcmFnZ2luZyA9IHRydWU7DQoNCgkJdGhpcy5oZWxwZXIuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpOw0KCQl0aGlzLl9tb3VzZURyYWcoZXZlbnQpOyAvL0V4ZWN1dGUgdGhlIGRyYWcgb25jZSAtIHRoaXMgY2F1c2VzIHRoZSBoZWxwZXIgbm90IHRvIGJlIHZpc2libGUgYmVmb3JlIGdldHRpbmcgaXRzIGNvcnJlY3QgcG9zaXRpb24NCgkJcmV0dXJuIHRydWU7DQoNCgl9LA0KDQoJX21vdXNlRHJhZzogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIGksIGl0ZW0sIGl0ZW1FbGVtZW50LCBpbnRlcnNlY3Rpb24sDQoJCQlvID0gdGhpcy5vcHRpb25zLA0KCQkJc2Nyb2xsZWQgPSBmYWxzZTsNCg0KCQkvL0NvbXB1dGUgdGhlIGhlbHBlcnMgcG9zaXRpb24NCgkJdGhpcy5wb3NpdGlvbiA9IHRoaXMuX2dlbmVyYXRlUG9zaXRpb24oZXZlbnQpOw0KCQl0aGlzLnBvc2l0aW9uQWJzID0gdGhpcy5fY29udmVydFBvc2l0aW9uVG8oImFic29sdXRlIik7DQoNCgkJaWYgKCF0aGlzLmxhc3RQb3NpdGlvbkFicykgew0KCQkJdGhpcy5sYXN0UG9zaXRpb25BYnMgPSB0aGlzLnBvc2l0aW9uQWJzOw0KCQl9DQoNCgkJLy9EbyBzY3JvbGxpbmcNCgkJaWYodGhpcy5vcHRpb25zLnNjcm9sbCkgew0KCQkJaWYodGhpcy5zY3JvbGxQYXJlbnRbMF0gIT09IGRvY3VtZW50ICYmIHRoaXMuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWUgIT09ICJIVE1MIikgew0KDQoJCQkJaWYoKHRoaXMub3ZlcmZsb3dPZmZzZXQudG9wICsgdGhpcy5zY3JvbGxQYXJlbnRbMF0ub2Zmc2V0SGVpZ2h0KSAtIGV2ZW50LnBhZ2VZIDwgby5zY3JvbGxTZW5zaXRpdml0eSkgew0KCQkJCQl0aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3AgPSBzY3JvbGxlZCA9IHRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcCArIG8uc2Nyb2xsU3BlZWQ7DQoJCQkJfSBlbHNlIGlmKGV2ZW50LnBhZ2VZIC0gdGhpcy5vdmVyZmxvd09mZnNldC50b3AgPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcCA9IHNjcm9sbGVkID0gdGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wIC0gby5zY3JvbGxTcGVlZDsNCgkJCQl9DQoNCgkJCQlpZigodGhpcy5vdmVyZmxvd09mZnNldC5sZWZ0ICsgdGhpcy5zY3JvbGxQYXJlbnRbMF0ub2Zmc2V0V2lkdGgpIC0gZXZlbnQucGFnZVggPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQgPSBzY3JvbGxlZCA9IHRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQgKyBvLnNjcm9sbFNwZWVkOw0KCQkJCX0gZWxzZSBpZihldmVudC5wYWdlWCAtIHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkpIHsNCgkJCQkJdGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdCA9IHNjcm9sbGVkID0gdGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdCAtIG8uc2Nyb2xsU3BlZWQ7DQoJCQkJfQ0KDQoJCQl9IGVsc2Ugew0KDQoJCQkJaWYoZXZlbnQucGFnZVkgLSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkpIHsNCgkJCQkJc2Nyb2xsZWQgPSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgLSBvLnNjcm9sbFNwZWVkKTsNCgkJCQl9IGVsc2UgaWYoJCh3aW5kb3cpLmhlaWdodCgpIC0gKGV2ZW50LnBhZ2VZIC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkpIDwgby5zY3JvbGxTZW5zaXRpdml0eSkgew0KCQkJCQlzY3JvbGxlZCA9ICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSArIG8uc2Nyb2xsU3BlZWQpOw0KCQkJCX0NCg0KCQkJCWlmKGV2ZW50LnBhZ2VYIC0gJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpIDwgby5zY3JvbGxTZW5zaXRpdml0eSkgew0KCQkJCQlzY3JvbGxlZCA9ICQoZG9jdW1lbnQpLnNjcm9sbExlZnQoJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpIC0gby5zY3JvbGxTcGVlZCk7DQoJCQkJfSBlbHNlIGlmKCQod2luZG93KS53aWR0aCgpIC0gKGV2ZW50LnBhZ2VYIC0gJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpKSA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkpIHsNCgkJCQkJc2Nyb2xsZWQgPSAkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCQoZG9jdW1lbnQpLnNjcm9sbExlZnQoKSArIG8uc2Nyb2xsU3BlZWQpOw0KCQkJCX0NCg0KCQkJfQ0KDQoJCQlpZihzY3JvbGxlZCAhPT0gZmFsc2UgJiYgJC51aS5kZG1hbmFnZXIgJiYgIW8uZHJvcEJlaGF2aW91cikgew0KCQkJCSQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsIGV2ZW50KTsNCgkJCX0NCgkJfQ0KDQoJCS8vUmVnZW5lcmF0ZSB0aGUgYWJzb2x1dGUgcG9zaXRpb24gdXNlZCBmb3IgcG9zaXRpb24gY2hlY2tzDQoJCXRoaXMucG9zaXRpb25BYnMgPSB0aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKTsNCg0KCQkvL1NldCB0aGUgaGVscGVyIHBvc2l0aW9uDQoJCWlmKCF0aGlzLm9wdGlvbnMuYXhpcyB8fCB0aGlzLm9wdGlvbnMuYXhpcyAhPT0gInkiKSB7DQoJCQl0aGlzLmhlbHBlclswXS5zdHlsZS5sZWZ0ID0gdGhpcy5wb3NpdGlvbi5sZWZ0KyJweCI7DQoJCX0NCgkJaWYoIXRoaXMub3B0aW9ucy5heGlzIHx8IHRoaXMub3B0aW9ucy5heGlzICE9PSAieCIpIHsNCgkJCXRoaXMuaGVscGVyWzBdLnN0eWxlLnRvcCA9IHRoaXMucG9zaXRpb24udG9wKyJweCI7DQoJCX0NCg0KCQkvL1JlYXJyYW5nZQ0KCQlmb3IgKGkgPSB0aGlzLml0ZW1zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQoNCgkJCS8vQ2FjaGUgdmFyaWFibGVzIGFuZCBpbnRlcnNlY3Rpb24sIGNvbnRpbnVlIGlmIG5vIGludGVyc2VjdGlvbg0KCQkJaXRlbSA9IHRoaXMuaXRlbXNbaV07DQoJCQlpdGVtRWxlbWVudCA9IGl0ZW0uaXRlbVswXTsNCgkJCWludGVyc2VjdGlvbiA9IHRoaXMuX2ludGVyc2VjdHNXaXRoUG9pbnRlcihpdGVtKTsNCgkJCWlmICghaW50ZXJzZWN0aW9uKSB7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCS8vIE9ubHkgcHV0IHRoZSBwbGFjZWhvbGRlciBpbnNpZGUgdGhlIGN1cnJlbnQgQ29udGFpbmVyLCBza2lwIGFsbA0KCQkJLy8gaXRlbXMgZnJvbSBvdGhlciBjb250YWluZXJzLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2hlbiBtb3ZpbmcNCgkJCS8vIGFuIGl0ZW0gZnJvbSBvbmUgY29udGFpbmVyIHRvIGFub3RoZXIgdGhlDQoJCQkvLyBjdXJyZW50Q29udGFpbmVyIGlzIHN3aXRjaGVkIGJlZm9yZSB0aGUgcGxhY2Vob2xkZXIgaXMgbW92ZWQuDQoJCQkvLw0KCQkJLy8gV2l0aG91dCB0aGlzLCBtb3ZpbmcgaXRlbXMgaW4gInN1Yi1zb3J0YWJsZXMiIGNhbiBjYXVzZQ0KCQkJLy8gdGhlIHBsYWNlaG9sZGVyIHRvIGppdHRlciBiZXR3ZWVuIHRoZSBvdXRlciBhbmQgaW5uZXIgY29udGFpbmVyLg0KCQkJaWYgKGl0ZW0uaW5zdGFuY2UgIT09IHRoaXMuY3VycmVudENvbnRhaW5lcikgew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQkvLyBjYW5ub3QgaW50ZXJzZWN0IHdpdGggaXRzZWxmDQoJCQkvLyBubyB1c2VsZXNzIGFjdGlvbnMgdGhhdCBoYXZlIGJlZW4gZG9uZSBiZWZvcmUNCgkJCS8vIG5vIGFjdGlvbiBpZiB0aGUgaXRlbSBtb3ZlZCBpcyB0aGUgcGFyZW50IG9mIHRoZSBpdGVtIGNoZWNrZWQNCgkJCWlmIChpdGVtRWxlbWVudCAhPT0gdGhpcy5jdXJyZW50SXRlbVswXSAmJg0KCQkJCXRoaXMucGxhY2Vob2xkZXJbaW50ZXJzZWN0aW9uID09PSAxID8gIm5leHQiIDogInByZXYiXSgpWzBdICE9PSBpdGVtRWxlbWVudCAmJg0KCQkJCSEkLmNvbnRhaW5zKHRoaXMucGxhY2Vob2xkZXJbMF0sIGl0ZW1FbGVtZW50KSAmJg0KCQkJCSh0aGlzLm9wdGlvbnMudHlwZSA9PT0gInNlbWktZHluYW1pYyIgPyAhJC5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sIGl0ZW1FbGVtZW50KSA6IHRydWUpDQoJCQkpIHsNCg0KCQkJCXRoaXMuZGlyZWN0aW9uID0gaW50ZXJzZWN0aW9uID09PSAxID8gImRvd24iIDogInVwIjsNCg0KCQkJCWlmICh0aGlzLm9wdGlvbnMudG9sZXJhbmNlID09PSAicG9pbnRlciIgfHwgdGhpcy5faW50ZXJzZWN0c1dpdGhTaWRlcyhpdGVtKSkgew0KCQkJCQl0aGlzLl9yZWFycmFuZ2UoZXZlbnQsIGl0ZW0pOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWJyZWFrOw0KCQkJCX0NCg0KCQkJCXRoaXMuX3RyaWdnZXIoImNoYW5nZSIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSk7DQoJCQkJYnJlYWs7DQoJCQl9DQoJCX0NCg0KCQkvL1Bvc3QgZXZlbnRzIHRvIGNvbnRhaW5lcnMNCgkJdGhpcy5fY29udGFjdENvbnRhaW5lcnMoZXZlbnQpOw0KDQoJCS8vSW50ZXJjb25uZWN0IHdpdGggZHJvcHBhYmxlcw0KCQlpZigkLnVpLmRkbWFuYWdlcikgew0KCQkJJC51aS5kZG1hbmFnZXIuZHJhZyh0aGlzLCBldmVudCk7DQoJCX0NCg0KCQkvL0NhbGwgY2FsbGJhY2tzDQoJCXRoaXMuX3RyaWdnZXIoInNvcnQiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkpOw0KDQoJCXRoaXMubGFzdFBvc2l0aW9uQWJzID0gdGhpcy5wb3NpdGlvbkFiczsNCgkJcmV0dXJuIGZhbHNlOw0KDQoJfSwNCg0KCV9tb3VzZVN0b3A6IGZ1bmN0aW9uKGV2ZW50LCBub1Byb3BhZ2F0aW9uKSB7DQoNCgkJaWYoIWV2ZW50KSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvL0lmIHdlIGFyZSB1c2luZyBkcm9wcGFibGVzLCBpbmZvcm0gdGhlIG1hbmFnZXIgYWJvdXQgdGhlIGRyb3ANCgkJaWYgKCQudWkuZGRtYW5hZ2VyICYmICF0aGlzLm9wdGlvbnMuZHJvcEJlaGF2aW91cikgew0KCQkJJC51aS5kZG1hbmFnZXIuZHJvcCh0aGlzLCBldmVudCk7DQoJCX0NCg0KCQlpZih0aGlzLm9wdGlvbnMucmV2ZXJ0KSB7DQoJCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQkJY3VyID0gdGhpcy5wbGFjZWhvbGRlci5vZmZzZXQoKSwNCgkJCQlheGlzID0gdGhpcy5vcHRpb25zLmF4aXMsDQoJCQkJYW5pbWF0aW9uID0ge307DQoNCgkJCWlmICggIWF4aXMgfHwgYXhpcyA9PT0gIngiICkgew0KCQkJCWFuaW1hdGlvbi5sZWZ0ID0gY3VyLmxlZnQgLSB0aGlzLm9mZnNldC5wYXJlbnQubGVmdCAtIHRoaXMubWFyZ2lucy5sZWZ0ICsgKHRoaXMub2Zmc2V0UGFyZW50WzBdID09PSBkb2N1bWVudC5ib2R5ID8gMCA6IHRoaXMub2Zmc2V0UGFyZW50WzBdLnNjcm9sbExlZnQpOw0KCQkJfQ0KCQkJaWYgKCAhYXhpcyB8fCBheGlzID09PSAieSIgKSB7DQoJCQkJYW5pbWF0aW9uLnRvcCA9IGN1ci50b3AgLSB0aGlzLm9mZnNldC5wYXJlbnQudG9wIC0gdGhpcy5tYXJnaW5zLnRvcCArICh0aGlzLm9mZnNldFBhcmVudFswXSA9PT0gZG9jdW1lbnQuYm9keSA/IDAgOiB0aGlzLm9mZnNldFBhcmVudFswXS5zY3JvbGxUb3ApOw0KCQkJfQ0KCQkJdGhpcy5yZXZlcnRpbmcgPSB0cnVlOw0KCQkJJCh0aGlzLmhlbHBlcikuYW5pbWF0ZSggYW5pbWF0aW9uLCBwYXJzZUludCh0aGlzLm9wdGlvbnMucmV2ZXJ0LCAxMCkgfHwgNTAwLCBmdW5jdGlvbigpIHsNCgkJCQl0aGF0Ll9jbGVhcihldmVudCk7DQoJCQl9KTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuX2NsZWFyKGV2ZW50LCBub1Byb3BhZ2F0aW9uKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCg0KCX0sDQoNCgljYW5jZWw6IGZ1bmN0aW9uKCkgew0KDQoJCWlmKHRoaXMuZHJhZ2dpbmcpIHsNCg0KCQkJdGhpcy5fbW91c2VVcCh7IHRhcmdldDogbnVsbCB9KTsNCg0KCQkJaWYodGhpcy5vcHRpb25zLmhlbHBlciA9PT0gIm9yaWdpbmFsIikgew0KCQkJCXRoaXMuY3VycmVudEl0ZW0uY3NzKHRoaXMuX3N0b3JlZENTUykucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpOw0KCQkJfSBlbHNlIHsNCgkJCQl0aGlzLmN1cnJlbnRJdGVtLnNob3coKTsNCgkJCX0NCg0KCQkJLy9Qb3N0IGRlYWN0aXZhdGluZyBldmVudHMgdG8gY29udGFpbmVycw0KCQkJZm9yICh2YXIgaSA9IHRoaXMuY29udGFpbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoJCQkJdGhpcy5jb250YWluZXJzW2ldLl90cmlnZ2VyKCJkZWFjdGl2YXRlIiwgbnVsbCwgdGhpcy5fdWlIYXNoKHRoaXMpKTsNCgkJCQlpZih0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3Zlcikgew0KCQkJCQl0aGlzLmNvbnRhaW5lcnNbaV0uX3RyaWdnZXIoIm91dCIsIG51bGwsIHRoaXMuX3VpSGFzaCh0aGlzKSk7DQoJCQkJCXRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5vdmVyID0gMDsNCgkJCQl9DQoJCQl9DQoNCgkJfQ0KDQoJCWlmICh0aGlzLnBsYWNlaG9sZGVyKSB7DQoJCQkvLyQodGhpcy5wbGFjZWhvbGRlclswXSkucmVtb3ZlKCk7IHdvdWxkIGhhdmUgYmVlbiB0aGUgalF1ZXJ5IHdheSAtIHVuZm9ydHVuYXRlbHksIGl0IHVuYmluZHMgQUxMIGV2ZW50cyBmcm9tIHRoZSBvcmlnaW5hbCBub2RlIQ0KCQkJaWYodGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlKSB7DQoJCQkJdGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pOw0KCQkJfQ0KCQkJaWYodGhpcy5vcHRpb25zLmhlbHBlciAhPT0gIm9yaWdpbmFsIiAmJiB0aGlzLmhlbHBlciAmJiB0aGlzLmhlbHBlclswXS5wYXJlbnROb2RlKSB7DQoJCQkJdGhpcy5oZWxwZXIucmVtb3ZlKCk7DQoJCQl9DQoNCgkJCSQuZXh0ZW5kKHRoaXMsIHsNCgkJCQloZWxwZXI6IG51bGwsDQoJCQkJZHJhZ2dpbmc6IGZhbHNlLA0KCQkJCXJldmVydGluZzogZmFsc2UsDQoJCQkJX25vRmluYWxTb3J0OiBudWxsDQoJCQl9KTsNCg0KCQkJaWYodGhpcy5kb21Qb3NpdGlvbi5wcmV2KSB7DQoJCQkJJCh0aGlzLmRvbVBvc2l0aW9uLnByZXYpLmFmdGVyKHRoaXMuY3VycmVudEl0ZW0pOw0KCQkJfSBlbHNlIHsNCgkJCQkkKHRoaXMuZG9tUG9zaXRpb24ucGFyZW50KS5wcmVwZW5kKHRoaXMuY3VycmVudEl0ZW0pOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHRoaXM7DQoNCgl9LA0KDQoJc2VyaWFsaXplOiBmdW5jdGlvbihvKSB7DQoNCgkJdmFyIGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXNBc2pRdWVyeShvICYmIG8uY29ubmVjdGVkKSwNCgkJCXN0ciA9IFtdOw0KCQlvID0gbyB8fCB7fTsNCg0KCQkkKGl0ZW1zKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIHJlcyA9ICgkKG8uaXRlbSB8fCB0aGlzKS5hdHRyKG8uYXR0cmlidXRlIHx8ICJpZCIpIHx8ICIiKS5tYXRjaChvLmV4cHJlc3Npb24gfHwgKC8oLispW1wtPV9dKC4rKS8pKTsNCgkJCWlmIChyZXMpIHsNCgkJCQlzdHIucHVzaCgoby5rZXkgfHwgcmVzWzFdKyJbXSIpKyI9Iisoby5rZXkgJiYgby5leHByZXNzaW9uID8gcmVzWzFdIDogcmVzWzJdKSk7DQoJCQl9DQoJCX0pOw0KDQoJCWlmKCFzdHIubGVuZ3RoICYmIG8ua2V5KSB7DQoJCQlzdHIucHVzaChvLmtleSArICI9Iik7DQoJCX0NCg0KCQlyZXR1cm4gc3RyLmpvaW4oIiYiKTsNCg0KCX0sDQoNCgl0b0FycmF5OiBmdW5jdGlvbihvKSB7DQoNCgkJdmFyIGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXNBc2pRdWVyeShvICYmIG8uY29ubmVjdGVkKSwNCgkJCXJldCA9IFtdOw0KDQoJCW8gPSBvIHx8IHt9Ow0KDQoJCWl0ZW1zLmVhY2goZnVuY3Rpb24oKSB7IHJldC5wdXNoKCQoby5pdGVtIHx8IHRoaXMpLmF0dHIoby5hdHRyaWJ1dGUgfHwgImlkIikgfHwgIiIpOyB9KTsNCgkJcmV0dXJuIHJldDsNCg0KCX0sDQoNCgkvKiBCZSBjYXJlZnVsIHdpdGggdGhlIGZvbGxvd2luZyBjb3JlIGZ1bmN0aW9ucyAqLw0KCV9pbnRlcnNlY3RzV2l0aDogZnVuY3Rpb24oaXRlbSkgew0KDQoJCXZhciB4MSA9IHRoaXMucG9zaXRpb25BYnMubGVmdCwNCgkJCXgyID0geDEgKyB0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLA0KCQkJeTEgPSB0aGlzLnBvc2l0aW9uQWJzLnRvcCwNCgkJCXkyID0geTEgKyB0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCwNCgkJCWwgPSBpdGVtLmxlZnQsDQoJCQlyID0gbCArIGl0ZW0ud2lkdGgsDQoJCQl0ID0gaXRlbS50b3AsDQoJCQliID0gdCArIGl0ZW0uaGVpZ2h0LA0KCQkJZHlDbGljayA9IHRoaXMub2Zmc2V0LmNsaWNrLnRvcCwNCgkJCWR4Q2xpY2sgPSB0aGlzLm9mZnNldC5jbGljay5sZWZ0LA0KCQkJaXNPdmVyRWxlbWVudEhlaWdodCA9ICggdGhpcy5vcHRpb25zLmF4aXMgPT09ICJ4IiApIHx8ICggKCB5MSArIGR5Q2xpY2sgKSA+IHQgJiYgKCB5MSArIGR5Q2xpY2sgKSA8IGIgKSwNCgkJCWlzT3ZlckVsZW1lbnRXaWR0aCA9ICggdGhpcy5vcHRpb25zLmF4aXMgPT09ICJ5IiApIHx8ICggKCB4MSArIGR4Q2xpY2sgKSA+IGwgJiYgKCB4MSArIGR4Q2xpY2sgKSA8IHIgKSwNCgkJCWlzT3ZlckVsZW1lbnQgPSBpc092ZXJFbGVtZW50SGVpZ2h0ICYmIGlzT3ZlckVsZW1lbnRXaWR0aDsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy50b2xlcmFuY2UgPT09ICJwb2ludGVyIiB8fA0KCQkJdGhpcy5vcHRpb25zLmZvcmNlUG9pbnRlckZvckNvbnRhaW5lcnMgfHwNCgkJCSh0aGlzLm9wdGlvbnMudG9sZXJhbmNlICE9PSAicG9pbnRlciIgJiYgdGhpcy5oZWxwZXJQcm9wb3J0aW9uc1t0aGlzLmZsb2F0aW5nID8gIndpZHRoIiA6ICJoZWlnaHQiXSA+IGl0ZW1bdGhpcy5mbG9hdGluZyA/ICJ3aWR0aCIgOiAiaGVpZ2h0Il0pDQoJCSkgew0KCQkJcmV0dXJuIGlzT3ZlckVsZW1lbnQ7DQoJCX0gZWxzZSB7DQoNCgkJCXJldHVybiAobCA8IHgxICsgKHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLyAyKSAmJiAvLyBSaWdodCBIYWxmDQoJCQkJeDIgLSAodGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCAvIDIpIDwgciAmJiAvLyBMZWZ0IEhhbGYNCgkJCQl0IDwgeTEgKyAodGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLyAyKSAmJiAvLyBCb3R0b20gSGFsZg0KCQkJCXkyIC0gKHRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC8gMikgPCBiICk7IC8vIFRvcCBIYWxmDQoNCgkJfQ0KCX0sDQoNCglfaW50ZXJzZWN0c1dpdGhQb2ludGVyOiBmdW5jdGlvbihpdGVtKSB7DQoNCgkJdmFyIGlzT3ZlckVsZW1lbnRIZWlnaHQgPSAodGhpcy5vcHRpb25zLmF4aXMgPT09ICJ4IikgfHwgdGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLnRvcCArIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCwgaXRlbS50b3AsIGl0ZW0uaGVpZ2h0KSwNCgkJCWlzT3ZlckVsZW1lbnRXaWR0aCA9ICh0aGlzLm9wdGlvbnMuYXhpcyA9PT0gInkiKSB8fCB0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMubGVmdCArIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQsIGl0ZW0ubGVmdCwgaXRlbS53aWR0aCksDQoJCQlpc092ZXJFbGVtZW50ID0gaXNPdmVyRWxlbWVudEhlaWdodCAmJiBpc092ZXJFbGVtZW50V2lkdGgsDQoJCQl2ZXJ0aWNhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbigpLA0KCQkJaG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uKCk7DQoNCgkJaWYgKCFpc092ZXJFbGVtZW50KSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlyZXR1cm4gdGhpcy5mbG9hdGluZyA/DQoJCQkoICgoaG9yaXpvbnRhbERpcmVjdGlvbiAmJiBob3Jpem9udGFsRGlyZWN0aW9uID09PSAicmlnaHQiKSB8fCB2ZXJ0aWNhbERpcmVjdGlvbiA9PT0gImRvd24iKSA/IDIgOiAxICkNCgkJCTogKCB2ZXJ0aWNhbERpcmVjdGlvbiAmJiAodmVydGljYWxEaXJlY3Rpb24gPT09ICJkb3duIiA/IDIgOiAxKSApOw0KDQoJfSwNCg0KCV9pbnRlcnNlY3RzV2l0aFNpZGVzOiBmdW5jdGlvbihpdGVtKSB7DQoNCgkJdmFyIGlzT3ZlckJvdHRvbUhhbGYgPSB0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wICsgdGhpcy5vZmZzZXQuY2xpY2sudG9wLCBpdGVtLnRvcCArIChpdGVtLmhlaWdodC8yKSwgaXRlbS5oZWlnaHQpLA0KCQkJaXNPdmVyUmlnaHRIYWxmID0gdGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQgKyB0aGlzLm9mZnNldC5jbGljay5sZWZ0LCBpdGVtLmxlZnQgKyAoaXRlbS53aWR0aC8yKSwgaXRlbS53aWR0aCksDQoJCQl2ZXJ0aWNhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbigpLA0KCQkJaG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uKCk7DQoNCgkJaWYgKHRoaXMuZmxvYXRpbmcgJiYgaG9yaXpvbnRhbERpcmVjdGlvbikgew0KCQkJcmV0dXJuICgoaG9yaXpvbnRhbERpcmVjdGlvbiA9PT0gInJpZ2h0IiAmJiBpc092ZXJSaWdodEhhbGYpIHx8IChob3Jpem9udGFsRGlyZWN0aW9uID09PSAibGVmdCIgJiYgIWlzT3ZlclJpZ2h0SGFsZikpOw0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuIHZlcnRpY2FsRGlyZWN0aW9uICYmICgodmVydGljYWxEaXJlY3Rpb24gPT09ICJkb3duIiAmJiBpc092ZXJCb3R0b21IYWxmKSB8fCAodmVydGljYWxEaXJlY3Rpb24gPT09ICJ1cCIgJiYgIWlzT3ZlckJvdHRvbUhhbGYpKTsNCgkJfQ0KDQoJfSwNCg0KCV9nZXREcmFnVmVydGljYWxEaXJlY3Rpb246IGZ1bmN0aW9uKCkgew0KCQl2YXIgZGVsdGEgPSB0aGlzLnBvc2l0aW9uQWJzLnRvcCAtIHRoaXMubGFzdFBvc2l0aW9uQWJzLnRvcDsNCgkJcmV0dXJuIGRlbHRhICE9PSAwICYmIChkZWx0YSA+IDAgPyAiZG93biIgOiAidXAiKTsNCgl9LA0KDQoJX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uOiBmdW5jdGlvbigpIHsNCgkJdmFyIGRlbHRhID0gdGhpcy5wb3NpdGlvbkFicy5sZWZ0IC0gdGhpcy5sYXN0UG9zaXRpb25BYnMubGVmdDsNCgkJcmV0dXJuIGRlbHRhICE9PSAwICYmIChkZWx0YSA+IDAgPyAicmlnaHQiIDogImxlZnQiKTsNCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdGhpcy5fcmVmcmVzaEl0ZW1zKGV2ZW50KTsNCgkJdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCk7DQoJCXRoaXMucmVmcmVzaFBvc2l0aW9ucygpOw0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJX2Nvbm5lY3RXaXRoOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoJCXJldHVybiBvcHRpb25zLmNvbm5lY3RXaXRoLmNvbnN0cnVjdG9yID09PSBTdHJpbmcgPyBbb3B0aW9ucy5jb25uZWN0V2l0aF0gOiBvcHRpb25zLmNvbm5lY3RXaXRoOw0KCX0sDQoNCglfZ2V0SXRlbXNBc2pRdWVyeTogZnVuY3Rpb24oY29ubmVjdGVkKSB7DQoNCgkJdmFyIGksIGosIGN1ciwgaW5zdCwNCgkJCWl0ZW1zID0gW10sDQoJCQlxdWVyaWVzID0gW10sDQoJCQljb25uZWN0V2l0aCA9IHRoaXMuX2Nvbm5lY3RXaXRoKCk7DQoNCgkJaWYoY29ubmVjdFdpdGggJiYgY29ubmVjdGVkKSB7DQoJCQlmb3IgKGkgPSBjb25uZWN0V2l0aC5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoJCQkJY3VyID0gJChjb25uZWN0V2l0aFtpXSk7DQoJCQkJZm9yICggaiA9IGN1ci5sZW5ndGggLSAxOyBqID49IDA7IGotLSl7DQoJCQkJCWluc3QgPSAkLmRhdGEoY3VyW2pdLCB0aGlzLndpZGdldEZ1bGxOYW1lKTsNCgkJCQkJaWYoaW5zdCAmJiBpbnN0ICE9PSB0aGlzICYmICFpbnN0Lm9wdGlvbnMuZGlzYWJsZWQpIHsNCgkJCQkJCXF1ZXJpZXMucHVzaChbJC5pc0Z1bmN0aW9uKGluc3Qub3B0aW9ucy5pdGVtcykgPyBpbnN0Lm9wdGlvbnMuaXRlbXMuY2FsbChpbnN0LmVsZW1lbnQpIDogJChpbnN0Lm9wdGlvbnMuaXRlbXMsIGluc3QuZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSwgaW5zdF0pOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJcXVlcmllcy5wdXNoKFskLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLml0ZW1zKSA/IHRoaXMub3B0aW9ucy5pdGVtcy5jYWxsKHRoaXMuZWxlbWVudCwgbnVsbCwgeyBvcHRpb25zOiB0aGlzLm9wdGlvbnMsIGl0ZW06IHRoaXMuY3VycmVudEl0ZW0gfSkgOiAkKHRoaXMub3B0aW9ucy5pdGVtcywgdGhpcy5lbGVtZW50KS5ub3QoIi51aS1zb3J0YWJsZS1oZWxwZXIiKS5ub3QoIi51aS1zb3J0YWJsZS1wbGFjZWhvbGRlciIpLCB0aGlzXSk7DQoNCgkJZnVuY3Rpb24gYWRkSXRlbXMoKSB7DQoJCQlpdGVtcy5wdXNoKCB0aGlzICk7DQoJCX0NCgkJZm9yIChpID0gcXVlcmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoJCQlxdWVyaWVzW2ldWzBdLmVhY2goIGFkZEl0ZW1zICk7DQoJCX0NCg0KCQlyZXR1cm4gJChpdGVtcyk7DQoNCgl9LA0KDQoJX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgbGlzdCA9IHRoaXMuY3VycmVudEl0ZW0uZmluZCgiOmRhdGEoIiArIHRoaXMud2lkZ2V0TmFtZSArICItaXRlbSkiKTsNCg0KCQl0aGlzLml0ZW1zID0gJC5ncmVwKHRoaXMuaXRlbXMsIGZ1bmN0aW9uIChpdGVtKSB7DQoJCQlmb3IgKHZhciBqPTA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7DQoJCQkJaWYobGlzdFtqXSA9PT0gaXRlbS5pdGVtWzBdKSB7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfSk7DQoNCgl9LA0KDQoJX3JlZnJlc2hJdGVtczogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl0aGlzLml0ZW1zID0gW107DQoJCXRoaXMuY29udGFpbmVycyA9IFt0aGlzXTsNCg0KCQl2YXIgaSwgaiwgY3VyLCBpbnN0LCB0YXJnZXREYXRhLCBfcXVlcmllcywgaXRlbSwgcXVlcmllc0xlbmd0aCwNCgkJCWl0ZW1zID0gdGhpcy5pdGVtcywNCgkJCXF1ZXJpZXMgPSBbWyQuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMuaXRlbXMpID8gdGhpcy5vcHRpb25zLml0ZW1zLmNhbGwodGhpcy5lbGVtZW50WzBdLCBldmVudCwgeyBpdGVtOiB0aGlzLmN1cnJlbnRJdGVtIH0pIDogJCh0aGlzLm9wdGlvbnMuaXRlbXMsIHRoaXMuZWxlbWVudCksIHRoaXNdXSwNCgkJCWNvbm5lY3RXaXRoID0gdGhpcy5fY29ubmVjdFdpdGgoKTsNCg0KCQlpZihjb25uZWN0V2l0aCAmJiB0aGlzLnJlYWR5KSB7IC8vU2hvdWxkbid0IGJlIHJ1biB0aGUgZmlyc3QgdGltZSB0aHJvdWdoIGR1ZSB0byBtYXNzaXZlIHNsb3ctZG93bg0KCQkJZm9yIChpID0gY29ubmVjdFdpdGgubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pew0KCQkJCWN1ciA9ICQoY29ubmVjdFdpdGhbaV0pOw0KCQkJCWZvciAoaiA9IGN1ci5sZW5ndGggLSAxOyBqID49IDA7IGotLSl7DQoJCQkJCWluc3QgPSAkLmRhdGEoY3VyW2pdLCB0aGlzLndpZGdldEZ1bGxOYW1lKTsNCgkJCQkJaWYoaW5zdCAmJiBpbnN0ICE9PSB0aGlzICYmICFpbnN0Lm9wdGlvbnMuZGlzYWJsZWQpIHsNCgkJCQkJCXF1ZXJpZXMucHVzaChbJC5pc0Z1bmN0aW9uKGluc3Qub3B0aW9ucy5pdGVtcykgPyBpbnN0Lm9wdGlvbnMuaXRlbXMuY2FsbChpbnN0LmVsZW1lbnRbMF0sIGV2ZW50LCB7IGl0ZW06IHRoaXMuY3VycmVudEl0ZW0gfSkgOiAkKGluc3Qub3B0aW9ucy5pdGVtcywgaW5zdC5lbGVtZW50KSwgaW5zdF0pOw0KCQkJCQkJdGhpcy5jb250YWluZXJzLnB1c2goaW5zdCk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQlmb3IgKGkgPSBxdWVyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQoJCQl0YXJnZXREYXRhID0gcXVlcmllc1tpXVsxXTsNCgkJCV9xdWVyaWVzID0gcXVlcmllc1tpXVswXTsNCg0KCQkJZm9yIChqPTAsIHF1ZXJpZXNMZW5ndGggPSBfcXVlcmllcy5sZW5ndGg7IGogPCBxdWVyaWVzTGVuZ3RoOyBqKyspIHsNCgkJCQlpdGVtID0gJChfcXVlcmllc1tqXSk7DQoNCgkJCQlpdGVtLmRhdGEodGhpcy53aWRnZXROYW1lICsgIi1pdGVtIiwgdGFyZ2V0RGF0YSk7IC8vIERhdGEgZm9yIHRhcmdldCBjaGVja2luZyAobW91c2UgbWFuYWdlcikNCg0KCQkJCWl0ZW1zLnB1c2goew0KCQkJCQlpdGVtOiBpdGVtLA0KCQkJCQlpbnN0YW5jZTogdGFyZ2V0RGF0YSwNCgkJCQkJd2lkdGg6IDAsIGhlaWdodDogMCwNCgkJCQkJbGVmdDogMCwgdG9wOiAwDQoJCQkJfSk7DQoJCQl9DQoJCX0NCg0KCX0sDQoNCglyZWZyZXNoUG9zaXRpb25zOiBmdW5jdGlvbihmYXN0KSB7DQoNCgkJLy9UaGlzIGhhcyB0byBiZSByZWRvbmUgYmVjYXVzZSBkdWUgdG8gdGhlIGl0ZW0gYmVpbmcgbW92ZWQgb3V0L2ludG8gdGhlIG9mZnNldFBhcmVudCwgdGhlIG9mZnNldFBhcmVudCdzIHBvc2l0aW9uIHdpbGwgY2hhbmdlDQoJCWlmKHRoaXMub2Zmc2V0UGFyZW50ICYmIHRoaXMuaGVscGVyKSB7DQoJCQl0aGlzLm9mZnNldC5wYXJlbnQgPSB0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKTsNCgkJfQ0KDQoJCXZhciBpLCBpdGVtLCB0LCBwOw0KDQoJCWZvciAoaSA9IHRoaXMuaXRlbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pew0KCQkJaXRlbSA9IHRoaXMuaXRlbXNbaV07DQoNCgkJCS8vV2UgaWdub3JlIGNhbGN1bGF0aW5nIHBvc2l0aW9ucyBvZiBhbGwgY29ubmVjdGVkIGNvbnRhaW5lcnMgd2hlbiB3ZSdyZSBub3Qgb3ZlciB0aGVtDQoJCQlpZihpdGVtLmluc3RhbmNlICE9PSB0aGlzLmN1cnJlbnRDb250YWluZXIgJiYgdGhpcy5jdXJyZW50Q29udGFpbmVyICYmIGl0ZW0uaXRlbVswXSAhPT0gdGhpcy5jdXJyZW50SXRlbVswXSkgew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQl0ID0gdGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQgPyAkKHRoaXMub3B0aW9ucy50b2xlcmFuY2VFbGVtZW50LCBpdGVtLml0ZW0pIDogaXRlbS5pdGVtOw0KDQoJCQlpZiAoIWZhc3QpIHsNCgkJCQlpdGVtLndpZHRoID0gdC5vdXRlcldpZHRoKCk7DQoJCQkJaXRlbS5oZWlnaHQgPSB0Lm91dGVySGVpZ2h0KCk7DQoJCQl9DQoNCgkJCXAgPSB0Lm9mZnNldCgpOw0KCQkJaXRlbS5sZWZ0ID0gcC5sZWZ0Ow0KCQkJaXRlbS50b3AgPSBwLnRvcDsNCgkJfQ0KDQoJCWlmKHRoaXMub3B0aW9ucy5jdXN0b20gJiYgdGhpcy5vcHRpb25zLmN1c3RvbS5yZWZyZXNoQ29udGFpbmVycykgew0KCQkJdGhpcy5vcHRpb25zLmN1c3RvbS5yZWZyZXNoQ29udGFpbmVycy5jYWxsKHRoaXMpOw0KCQl9IGVsc2Ugew0KCQkJZm9yIChpID0gdGhpcy5jb250YWluZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKXsNCgkJCQlwID0gdGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnQub2Zmc2V0KCk7DQoJCQkJdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLmxlZnQgPSBwLmxlZnQ7DQoJCQkJdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLnRvcCA9IHAudG9wOw0KCQkJCXRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS53aWR0aCA9IHRoaXMuY29udGFpbmVyc1tpXS5lbGVtZW50Lm91dGVyV2lkdGgoKTsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUuaGVpZ2h0ID0gdGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnQub3V0ZXJIZWlnaHQoKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCglfY3JlYXRlUGxhY2Vob2xkZXI6IGZ1bmN0aW9uKHRoYXQpIHsNCgkJdGhhdCA9IHRoYXQgfHwgdGhpczsNCgkJdmFyIGNsYXNzTmFtZSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnM7DQoNCgkJaWYoIW8ucGxhY2Vob2xkZXIgfHwgby5wbGFjZWhvbGRlci5jb25zdHJ1Y3RvciA9PT0gU3RyaW5nKSB7DQoJCQljbGFzc05hbWUgPSBvLnBsYWNlaG9sZGVyOw0KCQkJby5wbGFjZWhvbGRlciA9IHsNCgkJCQllbGVtZW50OiBmdW5jdGlvbigpIHsNCg0KCQkJCQl2YXIgbm9kZU5hbWUgPSB0aGF0LmN1cnJlbnRJdGVtWzBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksDQoJCQkJCQllbGVtZW50ID0gJCggIjwiICsgbm9kZU5hbWUgKyAiPiIsIHRoYXQuZG9jdW1lbnRbMF0gKQ0KCQkJCQkJCS5hZGRDbGFzcyhjbGFzc05hbWUgfHwgdGhhdC5jdXJyZW50SXRlbVswXS5jbGFzc05hbWUrIiB1aS1zb3J0YWJsZS1wbGFjZWhvbGRlciIpDQoJCQkJCQkJLnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZS1oZWxwZXIiKTsNCg0KCQkJCQlpZiAoIG5vZGVOYW1lID09PSAidHIiICkgew0KCQkJCQkJdGhhdC5jdXJyZW50SXRlbS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJCQkJJCggIjx0ZD4mIzE2MDs8L3RkPiIsIHRoYXQuZG9jdW1lbnRbMF0gKQ0KCQkJCQkJCQkuYXR0ciggImNvbHNwYW4iLCAkKCB0aGlzICkuYXR0ciggImNvbHNwYW4iICkgfHwgMSApDQoJCQkJCQkJCS5hcHBlbmRUbyggZWxlbWVudCApOw0KCQkJCQkJfSk7DQoJCQkJCX0gZWxzZSBpZiAoIG5vZGVOYW1lID09PSAiaW1nIiApIHsNCgkJCQkJCWVsZW1lbnQuYXR0ciggInNyYyIsIHRoYXQuY3VycmVudEl0ZW0uYXR0ciggInNyYyIgKSApOw0KCQkJCQl9DQoNCgkJCQkJaWYgKCAhY2xhc3NOYW1lICkgew0KCQkJCQkJZWxlbWVudC5jc3MoICJ2aXNpYmlsaXR5IiwgImhpZGRlbiIgKTsNCgkJCQkJfQ0KDQoJCQkJCXJldHVybiBlbGVtZW50Ow0KCQkJCX0sDQoJCQkJdXBkYXRlOiBmdW5jdGlvbihjb250YWluZXIsIHApIHsNCg0KCQkJCQkvLyAxLiBJZiBhIGNsYXNzTmFtZSBpcyBzZXQgYXMgJ3BsYWNlaG9sZGVyIG9wdGlvbiwgd2UgZG9uJ3QgZm9yY2Ugc2l6ZXMgLSB0aGUgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRoYXQNCgkJCQkJLy8gMi4gVGhlIG9wdGlvbiAnZm9yY2VQbGFjZWhvbGRlclNpemUgY2FuIGJlIGVuYWJsZWQgdG8gZm9yY2UgaXQgZXZlbiBpZiBhIGNsYXNzIG5hbWUgaXMgc3BlY2lmaWVkDQoJCQkJCWlmKGNsYXNzTmFtZSAmJiAhby5mb3JjZVBsYWNlaG9sZGVyU2l6ZSkgew0KCQkJCQkJcmV0dXJuOw0KCQkJCQl9DQoNCgkJCQkJLy9JZiB0aGUgZWxlbWVudCBkb2Vzbid0IGhhdmUgYSBhY3R1YWwgaGVpZ2h0IGJ5IGl0c2VsZiAod2l0aG91dCBzdHlsZXMgY29taW5nIGZyb20gYSBzdHlsZXNoZWV0KSwgaXQgcmVjZWl2ZXMgdGhlIGlubGluZSBoZWlnaHQgZnJvbSB0aGUgZHJhZ2dlZCBpdGVtDQoJCQkJCWlmKCFwLmhlaWdodCgpKSB7IHAuaGVpZ2h0KHRoYXQuY3VycmVudEl0ZW0uaW5uZXJIZWlnaHQoKSAtIHBhcnNlSW50KHRoYXQuY3VycmVudEl0ZW0uY3NzKCJwYWRkaW5nVG9wIil8fDAsIDEwKSAtIHBhcnNlSW50KHRoYXQuY3VycmVudEl0ZW0uY3NzKCJwYWRkaW5nQm90dG9tIil8fDAsIDEwKSk7IH0NCgkJCQkJaWYoIXAud2lkdGgoKSkgeyBwLndpZHRoKHRoYXQuY3VycmVudEl0ZW0uaW5uZXJXaWR0aCgpIC0gcGFyc2VJbnQodGhhdC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdMZWZ0Iil8fDAsIDEwKSAtIHBhcnNlSW50KHRoYXQuY3VycmVudEl0ZW0uY3NzKCJwYWRkaW5nUmlnaHQiKXx8MCwgMTApKTsgfQ0KCQkJCX0NCgkJCX07DQoJCX0NCg0KCQkvL0NyZWF0ZSB0aGUgcGxhY2Vob2xkZXINCgkJdGhhdC5wbGFjZWhvbGRlciA9ICQoby5wbGFjZWhvbGRlci5lbGVtZW50LmNhbGwodGhhdC5lbGVtZW50LCB0aGF0LmN1cnJlbnRJdGVtKSk7DQoNCgkJLy9BcHBlbmQgaXQgYWZ0ZXIgdGhlIGFjdHVhbCBjdXJyZW50IGl0ZW0NCgkJdGhhdC5jdXJyZW50SXRlbS5hZnRlcih0aGF0LnBsYWNlaG9sZGVyKTsNCg0KCQkvL1VwZGF0ZSB0aGUgc2l6ZSBvZiB0aGUgcGxhY2Vob2xkZXIgKFRPRE86IExvZ2ljIHRvIGZ1enp5LCBzZWUgbGluZSAzMTYvMzE3KQ0KCQlvLnBsYWNlaG9sZGVyLnVwZGF0ZSh0aGF0LCB0aGF0LnBsYWNlaG9sZGVyKTsNCg0KCX0sDQoNCglfY29udGFjdENvbnRhaW5lcnM6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciBpLCBqLCBkaXN0LCBpdGVtV2l0aExlYXN0RGlzdGFuY2UsIHBvc1Byb3BlcnR5LCBzaXplUHJvcGVydHksIGN1ciwgbmVhckJvdHRvbSwgZmxvYXRpbmcsIGF4aXMsDQoJCQlpbm5lcm1vc3RDb250YWluZXIgPSBudWxsLA0KCQkJaW5uZXJtb3N0SW5kZXggPSBudWxsOw0KDQoJCS8vIGdldCBpbm5lcm1vc3QgY29udGFpbmVyIHRoYXQgaW50ZXJzZWN0cyB3aXRoIGl0ZW0NCgkJZm9yIChpID0gdGhpcy5jb250YWluZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQoNCgkJCS8vIG5ldmVyIGNvbnNpZGVyIGEgY29udGFpbmVyIHRoYXQncyBsb2NhdGVkIHdpdGhpbiB0aGUgaXRlbSBpdHNlbGYNCgkJCWlmKCQuY29udGFpbnModGhpcy5jdXJyZW50SXRlbVswXSwgdGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0pKSB7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCWlmKHRoaXMuX2ludGVyc2VjdHNXaXRoKHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZSkpIHsNCg0KCQkJCS8vIGlmIHdlJ3ZlIGFscmVhZHkgZm91bmQgYSBjb250YWluZXIgYW5kIGl0J3MgbW9yZSAiaW5uZXIiIHRoYW4gdGhpcywgdGhlbiBjb250aW51ZQ0KCQkJCWlmKGlubmVybW9zdENvbnRhaW5lciAmJiAkLmNvbnRhaW5zKHRoaXMuY29udGFpbmVyc1tpXS5lbGVtZW50WzBdLCBpbm5lcm1vc3RDb250YWluZXIuZWxlbWVudFswXSkpIHsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KDQoJCQkJaW5uZXJtb3N0Q29udGFpbmVyID0gdGhpcy5jb250YWluZXJzW2ldOw0KCQkJCWlubmVybW9zdEluZGV4ID0gaTsNCg0KCQkJfSBlbHNlIHsNCgkJCQkvLyBjb250YWluZXIgZG9lc24ndCBpbnRlcnNlY3QuIHRyaWdnZXIgIm91dCIgZXZlbnQgaWYgbmVjZXNzYXJ5DQoJCQkJaWYodGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLm92ZXIpIHsNCgkJCQkJdGhpcy5jb250YWluZXJzW2ldLl90cmlnZ2VyKCJvdXQiLCBldmVudCwgdGhpcy5fdWlIYXNoKHRoaXMpKTsNCgkJCQkJdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLm92ZXIgPSAwOw0KCQkJCX0NCgkJCX0NCg0KCQl9DQoNCgkJLy8gaWYgbm8gaW50ZXJzZWN0aW5nIGNvbnRhaW5lcnMgZm91bmQsIHJldHVybg0KCQlpZighaW5uZXJtb3N0Q29udGFpbmVyKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBtb3ZlIHRoZSBpdGVtIGludG8gdGhlIGNvbnRhaW5lciBpZiBpdCdzIG5vdCB0aGVyZSBhbHJlYWR5DQoJCWlmKHRoaXMuY29udGFpbmVycy5sZW5ndGggPT09IDEpIHsNCgkJCWlmICghdGhpcy5jb250YWluZXJzW2lubmVybW9zdEluZGV4XS5jb250YWluZXJDYWNoZS5vdmVyKSB7DQoJCQkJdGhpcy5jb250YWluZXJzW2lubmVybW9zdEluZGV4XS5fdHJpZ2dlcigib3ZlciIsIGV2ZW50LCB0aGlzLl91aUhhc2godGhpcykpOw0KCQkJCXRoaXMuY29udGFpbmVyc1tpbm5lcm1vc3RJbmRleF0uY29udGFpbmVyQ2FjaGUub3ZlciA9IDE7DQoJCQl9DQoJCX0gZWxzZSB7DQoNCgkJCS8vV2hlbiBlbnRlcmluZyBhIG5ldyBjb250YWluZXIsIHdlIHdpbGwgZmluZCB0aGUgaXRlbSB3aXRoIHRoZSBsZWFzdCBkaXN0YW5jZSBhbmQgYXBwZW5kIG91ciBpdGVtIG5lYXIgaXQNCgkJCWRpc3QgPSAxMDAwMDsNCgkJCWl0ZW1XaXRoTGVhc3REaXN0YW5jZSA9IG51bGw7DQoJCQlmbG9hdGluZyA9IGlubmVybW9zdENvbnRhaW5lci5mbG9hdGluZyB8fCB0aGlzLl9pc0Zsb2F0aW5nKHRoaXMuY3VycmVudEl0ZW0pOw0KCQkJcG9zUHJvcGVydHkgPSBmbG9hdGluZyA/ICJsZWZ0IiA6ICJ0b3AiOw0KCQkJc2l6ZVByb3BlcnR5ID0gZmxvYXRpbmcgPyAid2lkdGgiIDogImhlaWdodCI7DQoJCQlheGlzID0gZmxvYXRpbmcgPyAiY2xpZW50WCIgOiAiY2xpZW50WSI7DQoNCgkJCWZvciAoaiA9IHRoaXMuaXRlbXMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHsNCgkJCQlpZighJC5jb250YWlucyh0aGlzLmNvbnRhaW5lcnNbaW5uZXJtb3N0SW5kZXhdLmVsZW1lbnRbMF0sIHRoaXMuaXRlbXNbal0uaXRlbVswXSkpIHsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KCQkJCWlmKHRoaXMuaXRlbXNbal0uaXRlbVswXSA9PT0gdGhpcy5jdXJyZW50SXRlbVswXSkgew0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoNCgkJCQljdXIgPSB0aGlzLml0ZW1zW2pdLml0ZW0ub2Zmc2V0KClbcG9zUHJvcGVydHldOw0KCQkJCW5lYXJCb3R0b20gPSBmYWxzZTsNCgkJCQlpZiAoIGV2ZW50WyBheGlzIF0gLSBjdXIgPiB0aGlzLml0ZW1zWyBqIF1bIHNpemVQcm9wZXJ0eSBdIC8gMiApIHsNCgkJCQkJbmVhckJvdHRvbSA9IHRydWU7DQoJCQkJfQ0KDQoJCQkJaWYgKCBNYXRoLmFicyggZXZlbnRbIGF4aXMgXSAtIGN1ciApIDwgZGlzdCApIHsNCgkJCQkJZGlzdCA9IE1hdGguYWJzKCBldmVudFsgYXhpcyBdIC0gY3VyICk7DQoJCQkJCWl0ZW1XaXRoTGVhc3REaXN0YW5jZSA9IHRoaXMuaXRlbXNbIGogXTsNCgkJCQkJdGhpcy5kaXJlY3Rpb24gPSBuZWFyQm90dG9tID8gInVwIjogImRvd24iOw0KCQkJCX0NCgkJCX0NCg0KCQkJLy9DaGVjayBpZiBkcm9wT25FbXB0eSBpcyBlbmFibGVkDQoJCQlpZighaXRlbVdpdGhMZWFzdERpc3RhbmNlICYmICF0aGlzLm9wdGlvbnMuZHJvcE9uRW1wdHkpIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCWlmKHRoaXMuY3VycmVudENvbnRhaW5lciA9PT0gdGhpcy5jb250YWluZXJzW2lubmVybW9zdEluZGV4XSkgew0KCQkJCWlmICggIXRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyICkgew0KCQkJCQl0aGlzLmNvbnRhaW5lcnNbIGlubmVybW9zdEluZGV4IF0uX3RyaWdnZXIoICJvdmVyIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCgpICk7DQoJCQkJCXRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyID0gMTsNCgkJCQl9DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQlpdGVtV2l0aExlYXN0RGlzdGFuY2UgPyB0aGlzLl9yZWFycmFuZ2UoZXZlbnQsIGl0ZW1XaXRoTGVhc3REaXN0YW5jZSwgbnVsbCwgdHJ1ZSkgOiB0aGlzLl9yZWFycmFuZ2UoZXZlbnQsIG51bGwsIHRoaXMuY29udGFpbmVyc1tpbm5lcm1vc3RJbmRleF0uZWxlbWVudCwgdHJ1ZSk7DQoJCQl0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkpOw0KCQkJdGhpcy5jb250YWluZXJzW2lubmVybW9zdEluZGV4XS5fdHJpZ2dlcigiY2hhbmdlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCh0aGlzKSk7DQoJCQl0aGlzLmN1cnJlbnRDb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcnNbaW5uZXJtb3N0SW5kZXhdOw0KDQoJCQkvL1VwZGF0ZSB0aGUgcGxhY2Vob2xkZXINCgkJCXRoaXMub3B0aW9ucy5wbGFjZWhvbGRlci51cGRhdGUodGhpcy5jdXJyZW50Q29udGFpbmVyLCB0aGlzLnBsYWNlaG9sZGVyKTsNCg0KCQkJdGhpcy5jb250YWluZXJzW2lubmVybW9zdEluZGV4XS5fdHJpZ2dlcigib3ZlciIsIGV2ZW50LCB0aGlzLl91aUhhc2godGhpcykpOw0KCQkJdGhpcy5jb250YWluZXJzW2lubmVybW9zdEluZGV4XS5jb250YWluZXJDYWNoZS5vdmVyID0gMTsNCgkJfQ0KDQoNCgl9LA0KDQoJX2NyZWF0ZUhlbHBlcjogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl2YXIgbyA9IHRoaXMub3B0aW9ucywNCgkJCWhlbHBlciA9ICQuaXNGdW5jdGlvbihvLmhlbHBlcikgPyAkKG8uaGVscGVyLmFwcGx5KHRoaXMuZWxlbWVudFswXSwgW2V2ZW50LCB0aGlzLmN1cnJlbnRJdGVtXSkpIDogKG8uaGVscGVyID09PSAiY2xvbmUiID8gdGhpcy5jdXJyZW50SXRlbS5jbG9uZSgpIDogdGhpcy5jdXJyZW50SXRlbSk7DQoNCgkJLy9BZGQgdGhlIGhlbHBlciB0byB0aGUgRE9NIGlmIHRoYXQgZGlkbid0IGhhcHBlbiBhbHJlYWR5DQoJCWlmKCFoZWxwZXIucGFyZW50cygiYm9keSIpLmxlbmd0aCkgew0KCQkJJChvLmFwcGVuZFRvICE9PSAicGFyZW50IiA/IG8uYXBwZW5kVG8gOiB0aGlzLmN1cnJlbnRJdGVtWzBdLnBhcmVudE5vZGUpWzBdLmFwcGVuZENoaWxkKGhlbHBlclswXSk7DQoJCX0NCg0KCQlpZihoZWxwZXJbMF0gPT09IHRoaXMuY3VycmVudEl0ZW1bMF0pIHsNCgkJCXRoaXMuX3N0b3JlZENTUyA9IHsgd2lkdGg6IHRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUud2lkdGgsIGhlaWdodDogdGhpcy5jdXJyZW50SXRlbVswXS5zdHlsZS5oZWlnaHQsIHBvc2l0aW9uOiB0aGlzLmN1cnJlbnRJdGVtLmNzcygicG9zaXRpb24iKSwgdG9wOiB0aGlzLmN1cnJlbnRJdGVtLmNzcygidG9wIiksIGxlZnQ6IHRoaXMuY3VycmVudEl0ZW0uY3NzKCJsZWZ0IikgfTsNCgkJfQ0KDQoJCWlmKCFoZWxwZXJbMF0uc3R5bGUud2lkdGggfHwgby5mb3JjZUhlbHBlclNpemUpIHsNCgkJCWhlbHBlci53aWR0aCh0aGlzLmN1cnJlbnRJdGVtLndpZHRoKCkpOw0KCQl9DQoJCWlmKCFoZWxwZXJbMF0uc3R5bGUuaGVpZ2h0IHx8IG8uZm9yY2VIZWxwZXJTaXplKSB7DQoJCQloZWxwZXIuaGVpZ2h0KHRoaXMuY3VycmVudEl0ZW0uaGVpZ2h0KCkpOw0KCQl9DQoNCgkJcmV0dXJuIGhlbHBlcjsNCg0KCX0sDQoNCglfYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcjogZnVuY3Rpb24ob2JqKSB7DQoJCWlmICh0eXBlb2Ygb2JqID09PSAic3RyaW5nIikgew0KCQkJb2JqID0gb2JqLnNwbGl0KCIgIik7DQoJCX0NCgkJaWYgKCQuaXNBcnJheShvYmopKSB7DQoJCQlvYmogPSB7bGVmdDogK29ialswXSwgdG9wOiArb2JqWzFdIHx8IDB9Ow0KCQl9DQoJCWlmICgibGVmdCIgaW4gb2JqKSB7DQoJCQl0aGlzLm9mZnNldC5jbGljay5sZWZ0ID0gb2JqLmxlZnQgKyB0aGlzLm1hcmdpbnMubGVmdDsNCgkJfQ0KCQlpZiAoInJpZ2h0IiBpbiBvYmopIHsNCgkJCXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPSB0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC0gb2JqLnJpZ2h0ICsgdGhpcy5tYXJnaW5zLmxlZnQ7DQoJCX0NCgkJaWYgKCJ0b3AiIGluIG9iaikgew0KCQkJdGhpcy5vZmZzZXQuY2xpY2sudG9wID0gb2JqLnRvcCArIHRoaXMubWFyZ2lucy50b3A7DQoJCX0NCgkJaWYgKCJib3R0b20iIGluIG9iaikgew0KCQkJdGhpcy5vZmZzZXQuY2xpY2sudG9wID0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLSBvYmouYm90dG9tICsgdGhpcy5tYXJnaW5zLnRvcDsNCgkJfQ0KCX0sDQoNCglfZ2V0UGFyZW50T2Zmc2V0OiBmdW5jdGlvbigpIHsNCg0KDQoJCS8vR2V0IHRoZSBvZmZzZXRQYXJlbnQgYW5kIGNhY2hlIGl0cyBwb3NpdGlvbg0KCQl0aGlzLm9mZnNldFBhcmVudCA9IHRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpOw0KCQl2YXIgcG8gPSB0aGlzLm9mZnNldFBhcmVudC5vZmZzZXQoKTsNCg0KCQkvLyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIHdoZXJlIHdlIG5lZWQgdG8gbW9kaWZ5IGEgb2Zmc2V0IGNhbGN1bGF0ZWQgb24gc3RhcnQsIHNpbmNlIHRoZSBmb2xsb3dpbmcgaGFwcGVuZWQ6DQoJCS8vIDEuIFRoZSBwb3NpdGlvbiBvZiB0aGUgaGVscGVyIGlzIGFic29sdXRlLCBzbyBpdCdzIHBvc2l0aW9uIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIG5leHQgcG9zaXRpb25lZCBwYXJlbnQNCgkJLy8gMi4gVGhlIGFjdHVhbCBvZmZzZXQgcGFyZW50IGlzIGEgY2hpbGQgb2YgdGhlIHNjcm9sbCBwYXJlbnQsIGFuZCB0aGUgc2Nyb2xsIHBhcmVudCBpc24ndCB0aGUgZG9jdW1lbnQsIHdoaWNoIG1lYW5zIHRoYXQNCgkJLy8gICAgdGhlIHNjcm9sbCBpcyBpbmNsdWRlZCBpbiB0aGUgaW5pdGlhbCBjYWxjdWxhdGlvbiBvZiB0aGUgb2Zmc2V0IG9mIHRoZSBwYXJlbnQsIGFuZCBuZXZlciByZWNhbGN1bGF0ZWQgdXBvbiBkcmFnDQoJCWlmKHRoaXMuY3NzUG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgJiYgdGhpcy5zY3JvbGxQYXJlbnRbMF0gIT09IGRvY3VtZW50ICYmICQuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sIHRoaXMub2Zmc2V0UGFyZW50WzBdKSkgew0KCQkJcG8ubGVmdCArPSB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk7DQoJCQlwby50b3AgKz0gdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk7DQoJCX0NCg0KCQkvLyBUaGlzIG5lZWRzIHRvIGJlIGFjdHVhbGx5IGRvbmUgZm9yIGFsbCBicm93c2Vycywgc2luY2UgcGFnZVgvcGFnZVkgaW5jbHVkZXMgdGhpcyBpbmZvcm1hdGlvbg0KCQkvLyB3aXRoIGFuIHVnbHkgSUUgZml4DQoJCWlmKCB0aGlzLm9mZnNldFBhcmVudFswXSA9PT0gZG9jdW1lbnQuYm9keSB8fCAodGhpcy5vZmZzZXRQYXJlbnRbMF0udGFnTmFtZSAmJiB0aGlzLm9mZnNldFBhcmVudFswXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJodG1sIiAmJiAkLnVpLmllKSkgew0KCQkJcG8gPSB7IHRvcDogMCwgbGVmdDogMCB9Ow0KCQl9DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogcG8udG9wICsgKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCkgfHwgMCksDQoJCQlsZWZ0OiBwby5sZWZ0ICsgKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApIHx8IDApDQoJCX07DQoNCgl9LA0KDQoJX2dldFJlbGF0aXZlT2Zmc2V0OiBmdW5jdGlvbigpIHsNCg0KCQlpZih0aGlzLmNzc1Bvc2l0aW9uID09PSAicmVsYXRpdmUiKSB7DQoJCQl2YXIgcCA9IHRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTsNCgkJCXJldHVybiB7DQoJCQkJdG9wOiBwLnRvcCAtIChwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKSB8fCAwKSArIHRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpLA0KCQkJCWxlZnQ6IHAubGVmdCAtIChwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSwxMCkgfHwgMCkgKyB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkNCgkJCX07DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4geyB0b3A6IDAsIGxlZnQ6IDAgfTsNCgkJfQ0KDQoJfSwNCg0KCV9jYWNoZU1hcmdpbnM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm1hcmdpbnMgPSB7DQoJCQlsZWZ0OiAocGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoIm1hcmdpbkxlZnQiKSwxMCkgfHwgMCksDQoJCQl0b3A6IChwYXJzZUludCh0aGlzLmN1cnJlbnRJdGVtLmNzcygibWFyZ2luVG9wIiksMTApIHx8IDApDQoJCX07DQoJfSwNCg0KCV9jYWNoZUhlbHBlclByb3BvcnRpb25zOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5oZWxwZXJQcm9wb3J0aW9ucyA9IHsNCgkJCXdpZHRoOiB0aGlzLmhlbHBlci5vdXRlcldpZHRoKCksDQoJCQloZWlnaHQ6IHRoaXMuaGVscGVyLm91dGVySGVpZ2h0KCkNCgkJfTsNCgl9LA0KDQoJX3NldENvbnRhaW5tZW50OiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgY2UsIGNvLCBvdmVyLA0KCQkJbyA9IHRoaXMub3B0aW9uczsNCgkJaWYoby5jb250YWlubWVudCA9PT0gInBhcmVudCIpIHsNCgkJCW8uY29udGFpbm1lbnQgPSB0aGlzLmhlbHBlclswXS5wYXJlbnROb2RlOw0KCQl9DQoJCWlmKG8uY29udGFpbm1lbnQgPT09ICJkb2N1bWVudCIgfHwgby5jb250YWlubWVudCA9PT0gIndpbmRvdyIpIHsNCgkJCXRoaXMuY29udGFpbm1lbnQgPSBbDQoJCQkJMCAtIHRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQgLSB0aGlzLm9mZnNldC5wYXJlbnQubGVmdCwNCgkJCQkwIC0gdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wIC0gdGhpcy5vZmZzZXQucGFyZW50LnRvcCwNCgkJCQkkKG8uY29udGFpbm1lbnQgPT09ICJkb2N1bWVudCIgPyBkb2N1bWVudCA6IHdpbmRvdykud2lkdGgoKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLSB0aGlzLm1hcmdpbnMubGVmdCwNCgkJCQkoJChvLmNvbnRhaW5tZW50ID09PSAiZG9jdW1lbnQiID8gZG9jdW1lbnQgOiB3aW5kb3cpLmhlaWdodCgpIHx8IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpIC0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLSB0aGlzLm1hcmdpbnMudG9wDQoJCQldOw0KCQl9DQoNCgkJaWYoISgvXihkb2N1bWVudHx3aW5kb3d8cGFyZW50KSQvKS50ZXN0KG8uY29udGFpbm1lbnQpKSB7DQoJCQljZSA9ICQoby5jb250YWlubWVudClbMF07DQoJCQljbyA9ICQoby5jb250YWlubWVudCkub2Zmc2V0KCk7DQoJCQlvdmVyID0gKCQoY2UpLmNzcygib3ZlcmZsb3ciKSAhPT0gImhpZGRlbiIpOw0KDQoJCQl0aGlzLmNvbnRhaW5tZW50ID0gWw0KCQkJCWNvLmxlZnQgKyAocGFyc2VJbnQoJChjZSkuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCkgfHwgMCkgKyAocGFyc2VJbnQoJChjZSkuY3NzKCJwYWRkaW5nTGVmdCIpLDEwKSB8fCAwKSAtIHRoaXMubWFyZ2lucy5sZWZ0LA0KCQkJCWNvLnRvcCArIChwYXJzZUludCgkKGNlKS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApIHx8IDApICsgKHBhcnNlSW50KCQoY2UpLmNzcygicGFkZGluZ1RvcCIpLDEwKSB8fCAwKSAtIHRoaXMubWFyZ2lucy50b3AsDQoJCQkJY28ubGVmdCsob3ZlciA/IE1hdGgubWF4KGNlLnNjcm9sbFdpZHRoLGNlLm9mZnNldFdpZHRoKSA6IGNlLm9mZnNldFdpZHRoKSAtIChwYXJzZUludCgkKGNlKS5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKSB8fCAwKSAtIChwYXJzZUludCgkKGNlKS5jc3MoInBhZGRpbmdSaWdodCIpLDEwKSB8fCAwKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLSB0aGlzLm1hcmdpbnMubGVmdCwNCgkJCQljby50b3ArKG92ZXIgPyBNYXRoLm1heChjZS5zY3JvbGxIZWlnaHQsY2Uub2Zmc2V0SGVpZ2h0KSA6IGNlLm9mZnNldEhlaWdodCkgLSAocGFyc2VJbnQoJChjZSkuY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKSB8fCAwKSAtIChwYXJzZUludCgkKGNlKS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCkgfHwgMCkgLSB0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAtIHRoaXMubWFyZ2lucy50b3ANCgkJCV07DQoJCX0NCg0KCX0sDQoNCglfY29udmVydFBvc2l0aW9uVG86IGZ1bmN0aW9uKGQsIHBvcykgew0KDQoJCWlmKCFwb3MpIHsNCgkJCXBvcyA9IHRoaXMucG9zaXRpb247DQoJCX0NCgkJdmFyIG1vZCA9IGQgPT09ICJhYnNvbHV0ZSIgPyAxIDogLTEsDQoJCQlzY3JvbGwgPSB0aGlzLmNzc1Bvc2l0aW9uID09PSAiYWJzb2x1dGUiICYmICEodGhpcy5zY3JvbGxQYXJlbnRbMF0gIT09IGRvY3VtZW50ICYmICQuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sIHRoaXMub2Zmc2V0UGFyZW50WzBdKSkgPyB0aGlzLm9mZnNldFBhcmVudCA6IHRoaXMuc2Nyb2xsUGFyZW50LA0KCQkJc2Nyb2xsSXNSb290Tm9kZSA9ICgvKGh0bWx8Ym9keSkvaSkudGVzdChzY3JvbGxbMF0udGFnTmFtZSk7DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogKA0KCQkJCXBvcy50b3AJKwkJCQkJCQkJCQkJCQkJCQkvLyBUaGUgYWJzb2x1dGUgbW91c2UgcG9zaXRpb24NCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AgKiBtb2QgKwkJCQkJCQkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQudG9wICogbW9kIC0JCQkJCQkJCQkJCS8vIFRoZSBvZmZzZXRQYXJlbnQncyBvZmZzZXQgd2l0aG91dCBib3JkZXJzIChvZmZzZXQgKyBib3JkZXIpDQoJCQkJKCAoIHRoaXMuY3NzUG9zaXRpb24gPT09ICJmaXhlZCIgPyAtdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCkgOiAoIHNjcm9sbElzUm9vdE5vZGUgPyAwIDogc2Nyb2xsLnNjcm9sbFRvcCgpICkgKSAqIG1vZCkNCgkJCSksDQoJCQlsZWZ0OiAoDQoJCQkJcG9zLmxlZnQgKwkJCQkJCQkJCQkJCQkJCQkvLyBUaGUgYWJzb2x1dGUgbW91c2UgcG9zaXRpb24NCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0ICogbW9kICsJCQkJCQkJCQkJLy8gT25seSBmb3IgcmVsYXRpdmUgcG9zaXRpb25lZCBub2RlczogUmVsYXRpdmUgb2Zmc2V0IGZyb20gZWxlbWVudCB0byBvZmZzZXQgcGFyZW50DQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LmxlZnQgKiBtb2QJLQkJCQkJCQkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCSggKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8gLXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKSA6IHNjcm9sbElzUm9vdE5vZGUgPyAwIDogc2Nyb2xsLnNjcm9sbExlZnQoKSApICogbW9kKQ0KCQkJKQ0KCQl9Ow0KDQoJfSwNCg0KCV9nZW5lcmF0ZVBvc2l0aW9uOiBmdW5jdGlvbihldmVudCkgew0KDQoJCXZhciB0b3AsIGxlZnQsDQoJCQlvID0gdGhpcy5vcHRpb25zLA0KCQkJcGFnZVggPSBldmVudC5wYWdlWCwNCgkJCXBhZ2VZID0gZXZlbnQucGFnZVksDQoJCQlzY3JvbGwgPSB0aGlzLmNzc1Bvc2l0aW9uID09PSAiYWJzb2x1dGUiICYmICEodGhpcy5zY3JvbGxQYXJlbnRbMF0gIT09IGRvY3VtZW50ICYmICQuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sIHRoaXMub2Zmc2V0UGFyZW50WzBdKSkgPyB0aGlzLm9mZnNldFBhcmVudCA6IHRoaXMuc2Nyb2xsUGFyZW50LCBzY3JvbGxJc1Jvb3ROb2RlID0gKC8oaHRtbHxib2R5KS9pKS50ZXN0KHNjcm9sbFswXS50YWdOYW1lKTsNCg0KCQkvLyBUaGlzIGlzIGFub3RoZXIgdmVyeSB3ZWlyZCBzcGVjaWFsIGNhc2UgdGhhdCBvbmx5IGhhcHBlbnMgZm9yIHJlbGF0aXZlIGVsZW1lbnRzOg0KCQkvLyAxLiBJZiB0aGUgY3NzIHBvc2l0aW9uIGlzIHJlbGF0aXZlDQoJCS8vIDIuIGFuZCB0aGUgc2Nyb2xsIHBhcmVudCBpcyB0aGUgZG9jdW1lbnQgb3Igc2ltaWxhciB0byB0aGUgb2Zmc2V0IHBhcmVudA0KCQkvLyB3ZSBoYXZlIHRvIHJlZnJlc2ggdGhlIHJlbGF0aXZlIG9mZnNldCBkdXJpbmcgdGhlIHNjcm9sbCBzbyB0aGVyZSBhcmUgbm8ganVtcHMNCgkJaWYodGhpcy5jc3NQb3NpdGlvbiA9PT0gInJlbGF0aXZlIiAmJiAhKHRoaXMuc2Nyb2xsUGFyZW50WzBdICE9PSBkb2N1bWVudCAmJiB0aGlzLnNjcm9sbFBhcmVudFswXSAhPT0gdGhpcy5vZmZzZXRQYXJlbnRbMF0pKSB7DQoJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZSA9IHRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCk7DQoJCX0NCg0KCQkvKg0KCQkgKiAtIFBvc2l0aW9uIGNvbnN0cmFpbmluZyAtDQoJCSAqIENvbnN0cmFpbiB0aGUgcG9zaXRpb24gdG8gYSBtaXggb2YgZ3JpZCwgY29udGFpbm1lbnQuDQoJCSAqLw0KDQoJCWlmKHRoaXMub3JpZ2luYWxQb3NpdGlvbikgeyAvL0lmIHdlIGFyZSBub3QgZHJhZ2dpbmcgeWV0LCB3ZSB3b24ndCBjaGVjayBmb3Igb3B0aW9ucw0KDQoJCQlpZih0aGlzLmNvbnRhaW5tZW50KSB7DQoJCQkJaWYoZXZlbnQucGFnZVggLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0IDwgdGhpcy5jb250YWlubWVudFswXSkgew0KCQkJCQlwYWdlWCA9IHRoaXMuY29udGFpbm1lbnRbMF0gKyB0aGlzLm9mZnNldC5jbGljay5sZWZ0Ow0KCQkJCX0NCgkJCQlpZihldmVudC5wYWdlWSAtIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCA8IHRoaXMuY29udGFpbm1lbnRbMV0pIHsNCgkJCQkJcGFnZVkgPSB0aGlzLmNvbnRhaW5tZW50WzFdICsgdGhpcy5vZmZzZXQuY2xpY2sudG9wOw0KCQkJCX0NCgkJCQlpZihldmVudC5wYWdlWCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPiB0aGlzLmNvbnRhaW5tZW50WzJdKSB7DQoJCQkJCXBhZ2VYID0gdGhpcy5jb250YWlubWVudFsyXSArIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ7DQoJCQkJfQ0KCQkJCWlmKGV2ZW50LnBhZ2VZIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID4gdGhpcy5jb250YWlubWVudFszXSkgew0KCQkJCQlwYWdlWSA9IHRoaXMuY29udGFpbm1lbnRbM10gKyB0aGlzLm9mZnNldC5jbGljay50b3A7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlpZihvLmdyaWQpIHsNCgkJCQl0b3AgPSB0aGlzLm9yaWdpbmFsUGFnZVkgKyBNYXRoLnJvdW5kKChwYWdlWSAtIHRoaXMub3JpZ2luYWxQYWdlWSkgLyBvLmdyaWRbMV0pICogby5ncmlkWzFdOw0KCQkJCXBhZ2VZID0gdGhpcy5jb250YWlubWVudCA/ICggKHRvcCAtIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCA+PSB0aGlzLmNvbnRhaW5tZW50WzFdICYmIHRvcCAtIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCA8PSB0aGlzLmNvbnRhaW5tZW50WzNdKSA/IHRvcCA6ICgodG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID49IHRoaXMuY29udGFpbm1lbnRbMV0pID8gdG9wIC0gby5ncmlkWzFdIDogdG9wICsgby5ncmlkWzFdKSkgOiB0b3A7DQoNCgkJCQlsZWZ0ID0gdGhpcy5vcmlnaW5hbFBhZ2VYICsgTWF0aC5yb3VuZCgocGFnZVggLSB0aGlzLm9yaWdpbmFsUGFnZVgpIC8gby5ncmlkWzBdKSAqIG8uZ3JpZFswXTsNCgkJCQlwYWdlWCA9IHRoaXMuY29udGFpbm1lbnQgPyAoIChsZWZ0IC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA+PSB0aGlzLmNvbnRhaW5tZW50WzBdICYmIGxlZnQgLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0IDw9IHRoaXMuY29udGFpbm1lbnRbMl0pID8gbGVmdCA6ICgobGVmdCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPj0gdGhpcy5jb250YWlubWVudFswXSkgPyBsZWZ0IC0gby5ncmlkWzBdIDogbGVmdCArIG8uZ3JpZFswXSkpIDogbGVmdDsNCgkJCX0NCg0KCQl9DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogKA0KCQkJCXBhZ2VZIC0JCQkJCQkJCQkJCQkJCQkJLy8gVGhlIGFic29sdXRlIG1vdXNlIHBvc2l0aW9uDQoJCQkJdGhpcy5vZmZzZXQuY2xpY2sudG9wIC0JCQkJCQkJCQkJCQkJLy8gQ2xpY2sgb2Zmc2V0IChyZWxhdGl2ZSB0byB0aGUgZWxlbWVudCkNCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AJLQkJCQkJCQkJCQkJLy8gT25seSBmb3IgcmVsYXRpdmUgcG9zaXRpb25lZCBub2RlczogUmVsYXRpdmUgb2Zmc2V0IGZyb20gZWxlbWVudCB0byBvZmZzZXQgcGFyZW50DQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LnRvcCArCQkJCQkJCQkJCQkJLy8gVGhlIG9mZnNldFBhcmVudCdzIG9mZnNldCB3aXRob3V0IGJvcmRlcnMgKG9mZnNldCArIGJvcmRlcikNCgkJCQkoICggdGhpcy5jc3NQb3NpdGlvbiA9PT0gImZpeGVkIiA/IC10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSA6ICggc2Nyb2xsSXNSb290Tm9kZSA/IDAgOiBzY3JvbGwuc2Nyb2xsVG9wKCkgKSApKQ0KCQkJKSwNCgkJCWxlZnQ6ICgNCgkJCQlwYWdlWCAtCQkJCQkJCQkJCQkJCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgLQkJCQkJCQkJCQkJCS8vIENsaWNrIG9mZnNldCAocmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQpDQoJCQkJdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdAktCQkJCQkJCQkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQubGVmdCArCQkJCQkJCQkJCQkJLy8gVGhlIG9mZnNldFBhcmVudCdzIG9mZnNldCB3aXRob3V0IGJvcmRlcnMgKG9mZnNldCArIGJvcmRlcikNCgkJCQkoICggdGhpcy5jc3NQb3NpdGlvbiA9PT0gImZpeGVkIiA/IC10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkgOiBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHNjcm9sbC5zY3JvbGxMZWZ0KCkgKSkNCgkJCSkNCgkJfTsNCg0KCX0sDQoNCglfcmVhcnJhbmdlOiBmdW5jdGlvbihldmVudCwgaSwgYSwgaGFyZFJlZnJlc2gpIHsNCg0KCQlhID8gYVswXS5hcHBlbmRDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKSA6IGkuaXRlbVswXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLnBsYWNlaG9sZGVyWzBdLCAodGhpcy5kaXJlY3Rpb24gPT09ICJkb3duIiA/IGkuaXRlbVswXSA6IGkuaXRlbVswXS5uZXh0U2libGluZykpOw0KDQoJCS8vVmFyaW91cyB0aGluZ3MgZG9uZSBoZXJlIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlOg0KCQkvLyAxLiB3ZSBjcmVhdGUgYSBzZXRUaW1lb3V0LCB0aGF0IGNhbGxzIHJlZnJlc2hQb3NpdGlvbnMNCgkJLy8gMi4gb24gdGhlIGluc3RhbmNlLCB3ZSBoYXZlIGEgY291bnRlciB2YXJpYWJsZSwgdGhhdCBnZXQncyBoaWdoZXIgYWZ0ZXIgZXZlcnkgYXBwZW5kDQoJCS8vIDMuIG9uIHRoZSBsb2NhbCBzY29wZSwgd2UgY29weSB0aGUgY291bnRlciB2YXJpYWJsZSwgYW5kIGNoZWNrIGluIHRoZSB0aW1lb3V0LCBpZiBpdCdzIHN0aWxsIHRoZSBzYW1lDQoJCS8vIDQuIHRoaXMgbGV0cyBvbmx5IHRoZSBsYXN0IGFkZGl0aW9uIHRvIHRoZSB0aW1lb3V0IHN0YWNrIHRocm91Z2gNCgkJdGhpcy5jb3VudGVyID0gdGhpcy5jb3VudGVyID8gKyt0aGlzLmNvdW50ZXIgOiAxOw0KCQl2YXIgY291bnRlciA9IHRoaXMuY291bnRlcjsNCg0KCQl0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCWlmKGNvdW50ZXIgPT09IHRoaXMuY291bnRlcikgew0KCQkJCXRoaXMucmVmcmVzaFBvc2l0aW9ucyghaGFyZFJlZnJlc2gpOyAvL1ByZWNvbXB1dGUgYWZ0ZXIgZWFjaCBET00gaW5zZXJ0aW9uLCBOT1Qgb24gbW91c2Vtb3ZlDQoJCQl9DQoJCX0pOw0KDQoJfSwNCg0KCV9jbGVhcjogZnVuY3Rpb24oZXZlbnQsIG5vUHJvcGFnYXRpb24pIHsNCg0KCQl0aGlzLnJldmVydGluZyA9IGZhbHNlOw0KCQkvLyBXZSBkZWxheSBhbGwgZXZlbnRzIHRoYXQgaGF2ZSB0byBiZSB0cmlnZ2VyZWQgdG8gYWZ0ZXIgdGhlIHBvaW50IHdoZXJlIHRoZSBwbGFjZWhvbGRlciBoYXMgYmVlbiByZW1vdmVkIGFuZA0KCQkvLyBldmVyeXRoaW5nIGVsc2Ugbm9ybWFsaXplZCBhZ2Fpbg0KCQl2YXIgaSwNCgkJCWRlbGF5ZWRUcmlnZ2VycyA9IFtdOw0KDQoJCS8vIFdlIGZpcnN0IGhhdmUgdG8gdXBkYXRlIHRoZSBkb20gcG9zaXRpb24gb2YgdGhlIGFjdHVhbCBjdXJyZW50SXRlbQ0KCQkvLyBOb3RlOiBkb24ndCBkbyBpdCBpZiB0aGUgY3VycmVudCBpdGVtIGlzIGFscmVhZHkgcmVtb3ZlZCAoYnkgYSB1c2VyKSwgb3IgaXQgZ2V0cyByZWFwcGVuZGVkIChzZWUgIzQwODgpDQoJCWlmKCF0aGlzLl9ub0ZpbmFsU29ydCAmJiB0aGlzLmN1cnJlbnRJdGVtLnBhcmVudCgpLmxlbmd0aCkgew0KCQkJdGhpcy5wbGFjZWhvbGRlci5iZWZvcmUodGhpcy5jdXJyZW50SXRlbSk7DQoJCX0NCgkJdGhpcy5fbm9GaW5hbFNvcnQgPSBudWxsOw0KDQoJCWlmKHRoaXMuaGVscGVyWzBdID09PSB0aGlzLmN1cnJlbnRJdGVtWzBdKSB7DQoJCQlmb3IoaSBpbiB0aGlzLl9zdG9yZWRDU1MpIHsNCgkJCQlpZih0aGlzLl9zdG9yZWRDU1NbaV0gPT09ICJhdXRvIiB8fCB0aGlzLl9zdG9yZWRDU1NbaV0gPT09ICJzdGF0aWMiKSB7DQoJCQkJCXRoaXMuX3N0b3JlZENTU1tpXSA9ICIiOw0KCQkJCX0NCgkJCX0NCgkJCXRoaXMuY3VycmVudEl0ZW0uY3NzKHRoaXMuX3N0b3JlZENTUykucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5jdXJyZW50SXRlbS5zaG93KCk7DQoJCX0NCg0KCQlpZih0aGlzLmZyb21PdXRzaWRlICYmICFub1Byb3BhZ2F0aW9uKSB7DQoJCQlkZWxheWVkVHJpZ2dlcnMucHVzaChmdW5jdGlvbihldmVudCkgeyB0aGlzLl90cmlnZ2VyKCJyZWNlaXZlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCh0aGlzLmZyb21PdXRzaWRlKSk7IH0pOw0KCQl9DQoJCWlmKCh0aGlzLmZyb21PdXRzaWRlIHx8IHRoaXMuZG9tUG9zaXRpb24ucHJldiAhPT0gdGhpcy5jdXJyZW50SXRlbS5wcmV2KCkubm90KCIudWktc29ydGFibGUtaGVscGVyIilbMF0gfHwgdGhpcy5kb21Qb3NpdGlvbi5wYXJlbnQgIT09IHRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF0pICYmICFub1Byb3BhZ2F0aW9uKSB7DQoJCQlkZWxheWVkVHJpZ2dlcnMucHVzaChmdW5jdGlvbihldmVudCkgeyB0aGlzLl90cmlnZ2VyKCJ1cGRhdGUiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkpOyB9KTsgLy9UcmlnZ2VyIHVwZGF0ZSBjYWxsYmFjayBpZiB0aGUgRE9NIHBvc2l0aW9uIGhhcyBjaGFuZ2VkDQoJCX0NCg0KCQkvLyBDaGVjayBpZiB0aGUgaXRlbXMgQ29udGFpbmVyIGhhcyBDaGFuZ2VkIGFuZCB0cmlnZ2VyIGFwcHJvcHJpYXRlDQoJCS8vIGV2ZW50cy4NCgkJaWYgKHRoaXMgIT09IHRoaXMuY3VycmVudENvbnRhaW5lcikgew0KCQkJaWYoIW5vUHJvcGFnYXRpb24pIHsNCgkJCQlkZWxheWVkVHJpZ2dlcnMucHVzaChmdW5jdGlvbihldmVudCkgeyB0aGlzLl90cmlnZ2VyKCJyZW1vdmUiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkpOyB9KTsNCgkJCQlkZWxheWVkVHJpZ2dlcnMucHVzaCgoZnVuY3Rpb24oYykgeyByZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHsgYy5fdHJpZ2dlcigicmVjZWl2ZSIsIGV2ZW50LCB0aGlzLl91aUhhc2godGhpcykpOyB9OyAgfSkuY2FsbCh0aGlzLCB0aGlzLmN1cnJlbnRDb250YWluZXIpKTsNCgkJCQlkZWxheWVkVHJpZ2dlcnMucHVzaCgoZnVuY3Rpb24oYykgeyByZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHsgYy5fdHJpZ2dlcigidXBkYXRlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCh0aGlzKSk7ICB9OyB9KS5jYWxsKHRoaXMsIHRoaXMuY3VycmVudENvbnRhaW5lcikpOw0KCQkJfQ0KCQl9DQoNCg0KCQkvL1Bvc3QgZXZlbnRzIHRvIGNvbnRhaW5lcnMNCgkJZnVuY3Rpb24gZGVsYXlFdmVudCggdHlwZSwgaW5zdGFuY2UsIGNvbnRhaW5lciApIHsNCgkJCXJldHVybiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJY29udGFpbmVyLl90cmlnZ2VyKCB0eXBlLCBldmVudCwgaW5zdGFuY2UuX3VpSGFzaCggaW5zdGFuY2UgKSApOw0KCQkJfTsNCgkJfQ0KCQlmb3IgKGkgPSB0aGlzLmNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pew0KCQkJaWYgKCFub1Byb3BhZ2F0aW9uKSB7DQoJCQkJZGVsYXllZFRyaWdnZXJzLnB1c2goIGRlbGF5RXZlbnQoICJkZWFjdGl2YXRlIiwgdGhpcywgdGhpcy5jb250YWluZXJzWyBpIF0gKSApOw0KCQkJfQ0KCQkJaWYodGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLm92ZXIpIHsNCgkJCQlkZWxheWVkVHJpZ2dlcnMucHVzaCggZGVsYXlFdmVudCggIm91dCIsIHRoaXMsIHRoaXMuY29udGFpbmVyc1sgaSBdICkgKTsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3ZlciA9IDA7DQoJCQl9DQoJCX0NCg0KCQkvL0RvIHdoYXQgd2FzIG9yaWdpbmFsbHkgaW4gcGx1Z2lucw0KCQlpZiAoIHRoaXMuc3RvcmVkQ3Vyc29yICkgew0KCQkJdGhpcy5kb2N1bWVudC5maW5kKCAiYm9keSIgKS5jc3MoICJjdXJzb3IiLCB0aGlzLnN0b3JlZEN1cnNvciApOw0KCQkJdGhpcy5zdG9yZWRTdHlsZXNoZWV0LnJlbW92ZSgpOw0KCQl9DQoJCWlmKHRoaXMuX3N0b3JlZE9wYWNpdHkpIHsNCgkJCXRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIsIHRoaXMuX3N0b3JlZE9wYWNpdHkpOw0KCQl9DQoJCWlmKHRoaXMuX3N0b3JlZFpJbmRleCkgew0KCQkJdGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiLCB0aGlzLl9zdG9yZWRaSW5kZXggPT09ICJhdXRvIiA/ICIiIDogdGhpcy5fc3RvcmVkWkluZGV4KTsNCgkJfQ0KDQoJCXRoaXMuZHJhZ2dpbmcgPSBmYWxzZTsNCg0KCQlpZighbm9Qcm9wYWdhdGlvbikgew0KCQkJdGhpcy5fdHJpZ2dlcigiYmVmb3JlU3RvcCIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSk7DQoJCX0NCg0KCQkvLyQodGhpcy5wbGFjZWhvbGRlclswXSkucmVtb3ZlKCk7IHdvdWxkIGhhdmUgYmVlbiB0aGUgalF1ZXJ5IHdheSAtIHVuZm9ydHVuYXRlbHksIGl0IHVuYmluZHMgQUxMIGV2ZW50cyBmcm9tIHRoZSBvcmlnaW5hbCBub2RlIQ0KCQl0aGlzLnBsYWNlaG9sZGVyWzBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5wbGFjZWhvbGRlclswXSk7DQoNCgkJaWYgKCAhdGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsICkgew0KCQkJaWYgKCB0aGlzLmhlbHBlclsgMCBdICE9PSB0aGlzLmN1cnJlbnRJdGVtWyAwIF0gKSB7DQoJCQkJdGhpcy5oZWxwZXIucmVtb3ZlKCk7DQoJCQl9DQoJCQl0aGlzLmhlbHBlciA9IG51bGw7DQoJCX0NCg0KCQlpZighbm9Qcm9wYWdhdGlvbikgew0KCQkJZm9yIChpPTA7IGkgPCBkZWxheWVkVHJpZ2dlcnMubGVuZ3RoOyBpKyspIHsNCgkJCQlkZWxheWVkVHJpZ2dlcnNbaV0uY2FsbCh0aGlzLCBldmVudCk7DQoJCQl9IC8vVHJpZ2dlciBhbGwgZGVsYXllZCBldmVudHMNCgkJCXRoaXMuX3RyaWdnZXIoInN0b3AiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkpOw0KCQl9DQoNCgkJdGhpcy5mcm9tT3V0c2lkZSA9IGZhbHNlOw0KCQlyZXR1cm4gIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbDsNCg0KCX0sDQoNCglfdHJpZ2dlcjogZnVuY3Rpb24oKSB7DQoJCWlmICgkLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSA9PT0gZmFsc2UpIHsNCgkJCXRoaXMuY2FuY2VsKCk7DQoJCX0NCgl9LA0KDQoJX3VpSGFzaDogZnVuY3Rpb24oX2luc3QpIHsNCgkJdmFyIGluc3QgPSBfaW5zdCB8fCB0aGlzOw0KCQlyZXR1cm4gew0KCQkJaGVscGVyOiBpbnN0LmhlbHBlciwNCgkJCXBsYWNlaG9sZGVyOiBpbnN0LnBsYWNlaG9sZGVyIHx8ICQoW10pLA0KCQkJcG9zaXRpb246IGluc3QucG9zaXRpb24sDQoJCQlvcmlnaW5hbFBvc2l0aW9uOiBpbnN0Lm9yaWdpbmFsUG9zaXRpb24sDQoJCQlvZmZzZXQ6IGluc3QucG9zaXRpb25BYnMsDQoJCQlpdGVtOiBpbnN0LmN1cnJlbnRJdGVtLA0KCQkJc2VuZGVyOiBfaW5zdCA/IF9pbnN0LmVsZW1lbnQgOiBudWxsDQoJCX07DQoJfQ0KDQp9KTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBTcGlubmVyIDEuMTEuMg0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zcGlubmVyLw0KICovDQoNCg0KZnVuY3Rpb24gc3Bpbm5lcl9tb2RpZmllciggZm4gKSB7DQoJcmV0dXJuIGZ1bmN0aW9uKCkgew0KCQl2YXIgcHJldmlvdXMgPSB0aGlzLmVsZW1lbnQudmFsKCk7DQoJCWZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJdGhpcy5fcmVmcmVzaCgpOw0KCQlpZiAoIHByZXZpb3VzICE9PSB0aGlzLmVsZW1lbnQudmFsKCkgKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiApOw0KCQl9DQoJfTsNCn0NCg0KdmFyIHNwaW5uZXIgPSAkLndpZGdldCggInVpLnNwaW5uZXIiLCB7DQoJdmVyc2lvbjogIjEuMTEuMiIsDQoJZGVmYXVsdEVsZW1lbnQ6ICI8aW5wdXQ+IiwNCgl3aWRnZXRFdmVudFByZWZpeDogInNwaW4iLA0KCW9wdGlvbnM6IHsNCgkJY3VsdHVyZTogbnVsbCwNCgkJaWNvbnM6IHsNCgkJCWRvd246ICJ1aS1pY29uLXRyaWFuZ2xlLTEtcyIsDQoJCQl1cDogInVpLWljb24tdHJpYW5nbGUtMS1uIg0KCQl9LA0KCQlpbmNyZW1lbnRhbDogdHJ1ZSwNCgkJbWF4OiBudWxsLA0KCQltaW46IG51bGwsDQoJCW51bWJlckZvcm1hdDogbnVsbCwNCgkJcGFnZTogMTAsDQoJCXN0ZXA6IDEsDQoNCgkJY2hhbmdlOiBudWxsLA0KCQlzcGluOiBudWxsLA0KCQlzdGFydDogbnVsbCwNCgkJc3RvcDogbnVsbA0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJLy8gaGFuZGxlIHN0cmluZyB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIHBhcnNlZA0KCQl0aGlzLl9zZXRPcHRpb24oICJtYXgiLCB0aGlzLm9wdGlvbnMubWF4ICk7DQoJCXRoaXMuX3NldE9wdGlvbiggIm1pbiIsIHRoaXMub3B0aW9ucy5taW4gKTsNCgkJdGhpcy5fc2V0T3B0aW9uKCAic3RlcCIsIHRoaXMub3B0aW9ucy5zdGVwICk7DQoNCgkJLy8gT25seSBmb3JtYXQgaWYgdGhlcmUgaXMgYSB2YWx1ZSwgcHJldmVudHMgdGhlIGZpZWxkIGZyb20gYmVpbmcgbWFya2VkDQoJCS8vIGFzIGludmFsaWQgaW4gRmlyZWZveCwgc2VlICM5NTczLg0KCQlpZiAoIHRoaXMudmFsdWUoKSAhPT0gIiIgKSB7DQoJCQkvLyBGb3JtYXQgdGhlIHZhbHVlLCBidXQgZG9uJ3QgY29uc3RyYWluLg0KCQkJdGhpcy5fdmFsdWUoIHRoaXMuZWxlbWVudC52YWwoKSwgdHJ1ZSApOw0KCQl9DQoNCgkJdGhpcy5fZHJhdygpOw0KCQl0aGlzLl9vbiggdGhpcy5fZXZlbnRzICk7DQoJCXRoaXMuX3JlZnJlc2goKTsNCg0KCQkvLyB0dXJuaW5nIG9mZiBhdXRvY29tcGxldGUgcHJldmVudHMgdGhlIGJyb3dzZXIgZnJvbSByZW1lbWJlcmluZyB0aGUNCgkJLy8gdmFsdWUgd2hlbiBuYXZpZ2F0aW5nIHRocm91Z2ggaGlzdG9yeSwgc28gd2UgcmUtZW5hYmxlIGF1dG9jb21wbGV0ZQ0KCQkvLyBpZiB0aGUgcGFnZSBpcyB1bmxvYWRlZCBiZWZvcmUgdGhlIHdpZGdldCBpcyBkZXN0cm95ZWQuICM3NzkwDQoJCXRoaXMuX29uKCB0aGlzLndpbmRvdywgew0KCQkJYmVmb3JldW5sb2FkOiBmdW5jdGlvbigpIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQXR0ciggImF1dG9jb21wbGV0ZSIgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9nZXRDcmVhdGVPcHRpb25zOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB7fSwNCgkJCWVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7DQoNCgkJJC5lYWNoKCBbICJtaW4iLCAibWF4IiwgInN0ZXAiIF0sIGZ1bmN0aW9uKCBpLCBvcHRpb24gKSB7DQoJCQl2YXIgdmFsdWUgPSBlbGVtZW50LmF0dHIoIG9wdGlvbiApOw0KCQkJaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLmxlbmd0aCApIHsNCgkJCQlvcHRpb25zWyBvcHRpb24gXSA9IHZhbHVlOw0KCQkJfQ0KCQl9KTsNCg0KCQlyZXR1cm4gb3B0aW9uczsNCgl9LA0KDQoJX2V2ZW50czogew0KCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQlpZiAoIHRoaXMuX3N0YXJ0KCBldmVudCApICYmIHRoaXMuX2tleWRvd24oIGV2ZW50ICkgKSB7DQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCX0NCgkJfSwNCgkJa2V5dXA6ICJfc3RvcCIsDQoJCWZvY3VzOiBmdW5jdGlvbigpIHsNCgkJCXRoaXMucHJldmlvdXMgPSB0aGlzLmVsZW1lbnQudmFsKCk7DQoJCX0sDQoJCWJsdXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCWlmICggdGhpcy5jYW5jZWxCbHVyICkgew0KCQkJCWRlbGV0ZSB0aGlzLmNhbmNlbEJsdXI7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQl0aGlzLl9zdG9wKCk7DQoJCQl0aGlzLl9yZWZyZXNoKCk7DQoJCQlpZiAoIHRoaXMucHJldmlvdXMgIT09IHRoaXMuZWxlbWVudC52YWwoKSApIHsNCgkJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQgKTsNCgkJCX0NCgkJfSwNCgkJbW91c2V3aGVlbDogZnVuY3Rpb24oIGV2ZW50LCBkZWx0YSApIHsNCgkJCWlmICggIWRlbHRhICkgew0KCQkJCXJldHVybjsNCgkJCX0NCgkJCWlmICggIXRoaXMuc3Bpbm5pbmcgJiYgIXRoaXMuX3N0YXJ0KCBldmVudCApICkgew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCg0KCQkJdGhpcy5fc3BpbiggKGRlbHRhID4gMCA/IDEgOiAtMSkgKiB0aGlzLm9wdGlvbnMuc3RlcCwgZXZlbnQgKTsNCgkJCWNsZWFyVGltZW91dCggdGhpcy5tb3VzZXdoZWVsVGltZXIgKTsNCgkJCXRoaXMubW91c2V3aGVlbFRpbWVyID0gdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCB0aGlzLnNwaW5uaW5nICkgew0KCQkJCQl0aGlzLl9zdG9wKCBldmVudCApOw0KCQkJCX0NCgkJCX0sIDEwMCApOw0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJfSwNCgkJIm1vdXNlZG93biAudWktc3Bpbm5lci1idXR0b24iOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl2YXIgcHJldmlvdXM7DQoNCgkJCS8vIFdlIG5ldmVyIHdhbnQgdGhlIGJ1dHRvbnMgdG8gaGF2ZSBmb2N1czsgd2hlbmV2ZXIgdGhlIHVzZXIgaXMNCgkJCS8vIGludGVyYWN0aW5nIHdpdGggdGhlIHNwaW5uZXIsIHRoZSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0Lg0KCQkJLy8gSWYgdGhlIGlucHV0IGlzIGZvY3VzZWQgdGhlbiB0aGlzLnByZXZpb3VzIGlzIHByb3Blcmx5IHNldCBmcm9tDQoJCQkvLyB3aGVuIHRoZSBpbnB1dCBmaXJzdCByZWNlaXZlZCBmb2N1cy4gSWYgdGhlIGlucHV0IGlzIG5vdCBmb2N1c2VkDQoJCQkvLyB0aGVuIHdlIG5lZWQgdG8gc2V0IHRoaXMucHJldmlvdXMgYmFzZWQgb24gdGhlIHZhbHVlIGJlZm9yZSBzcGlubmluZy4NCgkJCXByZXZpb3VzID0gdGhpcy5lbGVtZW50WzBdID09PSB0aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQgPw0KCQkJCXRoaXMucHJldmlvdXMgOiB0aGlzLmVsZW1lbnQudmFsKCk7DQoJCQlmdW5jdGlvbiBjaGVja0ZvY3VzKCkgew0KCQkJCXZhciBpc0FjdGl2ZSA9IHRoaXMuZWxlbWVudFswXSA9PT0gdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50Ow0KCQkJCWlmICggIWlzQWN0aXZlICkgew0KCQkJCQl0aGlzLmVsZW1lbnQuZm9jdXMoKTsNCgkJCQkJdGhpcy5wcmV2aW91cyA9IHByZXZpb3VzOw0KCQkJCQkvLyBzdXBwb3J0OiBJRQ0KCQkJCQkvLyBJRSBzZXRzIGZvY3VzIGFzeW5jaHJvbm91c2x5LCBzbyB3ZSBuZWVkIHRvIGNoZWNrIGlmIGZvY3VzDQoJCQkJCS8vIG1vdmVkIG9mZiBvZiB0aGUgaW5wdXQgYmVjYXVzZSB0aGUgdXNlciBjbGlja2VkIG9uIHRoZSBidXR0b24uDQoJCQkJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCQkJdGhpcy5wcmV2aW91cyA9IHByZXZpb3VzOw0KCQkJCQl9KTsNCgkJCQl9DQoJCQl9DQoNCgkJCS8vIGVuc3VyZSBmb2N1cyBpcyBvbiAob3Igc3RheXMgb24pIHRoZSB0ZXh0IGZpZWxkDQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJY2hlY2tGb2N1cy5jYWxsKCB0aGlzICk7DQoNCgkJCS8vIHN1cHBvcnQ6IElFDQoJCQkvLyBJRSBkb2Vzbid0IHByZXZlbnQgbW92aW5nIGZvY3VzIGV2ZW4gd2l0aCBldmVudC5wcmV2ZW50RGVmYXVsdCgpDQoJCQkvLyBzbyB3ZSBzZXQgYSBmbGFnIHRvIGtub3cgd2hlbiB3ZSBzaG91bGQgaWdub3JlIHRoZSBibHVyIGV2ZW50DQoJCQkvLyBhbmQgY2hlY2sgKGFnYWluKSBpZiBmb2N1cyBtb3ZlZCBvZmYgb2YgdGhlIGlucHV0Lg0KCQkJdGhpcy5jYW5jZWxCbHVyID0gdHJ1ZTsNCgkJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCWRlbGV0ZSB0aGlzLmNhbmNlbEJsdXI7DQoJCQkJY2hlY2tGb2N1cy5jYWxsKCB0aGlzICk7DQoJCQl9KTsNCg0KCQkJaWYgKCB0aGlzLl9zdGFydCggZXZlbnQgKSA9PT0gZmFsc2UgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5oYXNDbGFzcyggInVpLXNwaW5uZXItdXAiICkgPyAxIDogLTEsIGV2ZW50ICk7DQoJCX0sDQoJCSJtb3VzZXVwIC51aS1zcGlubmVyLWJ1dHRvbiI6ICJfc3RvcCIsDQoJCSJtb3VzZWVudGVyIC51aS1zcGlubmVyLWJ1dHRvbiI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCS8vIGJ1dHRvbiB3aWxsIGFkZCB1aS1zdGF0ZS1hY3RpdmUgaWYgbW91c2Ugd2FzIGRvd24gd2hpbGUgbW91c2VsZWF2ZSBhbmQga2VwdCBkb3duDQoJCQlpZiAoICEkKCBldmVudC5jdXJyZW50VGFyZ2V0ICkuaGFzQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICkgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQlpZiAoIHRoaXMuX3N0YXJ0KCBldmVudCApID09PSBmYWxzZSApIHsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5oYXNDbGFzcyggInVpLXNwaW5uZXItdXAiICkgPyAxIDogLTEsIGV2ZW50ICk7DQoJCX0sDQoJCS8vIFRPRE86IGRvIHdlIHJlYWxseSB3YW50IHRvIGNvbnNpZGVyIHRoaXMgYSBzdG9wPw0KCQkvLyBzaG91bGRuJ3Qgd2UganVzdCBzdG9wIHRoZSByZXBlYXRlciBhbmQgd2FpdCB1bnRpbCBtb3VzZXVwIGJlZm9yZQ0KCQkvLyB3ZSB0cmlnZ2VyIHRoZSBzdG9wIGV2ZW50Pw0KCQkibW91c2VsZWF2ZSAudWktc3Bpbm5lci1idXR0b24iOiAiX3N0b3AiDQoJfSwNCg0KCV9kcmF3OiBmdW5jdGlvbigpIHsNCgkJdmFyIHVpU3Bpbm5lciA9IHRoaXMudWlTcGlubmVyID0gdGhpcy5lbGVtZW50DQoJCQkuYWRkQ2xhc3MoICJ1aS1zcGlubmVyLWlucHV0IiApDQoJCQkuYXR0ciggImF1dG9jb21wbGV0ZSIsICJvZmYiICkNCgkJCS53cmFwKCB0aGlzLl91aVNwaW5uZXJIdG1sKCkgKQ0KCQkJLnBhcmVudCgpDQoJCQkJLy8gYWRkIGJ1dHRvbnMNCgkJCQkuYXBwZW5kKCB0aGlzLl9idXR0b25IdG1sKCkgKTsNCg0KCQl0aGlzLmVsZW1lbnQuYXR0ciggInJvbGUiLCAic3BpbmJ1dHRvbiIgKTsNCg0KCQkvLyBidXR0b24gYmluZGluZ3MNCgkJdGhpcy5idXR0b25zID0gdWlTcGlubmVyLmZpbmQoICIudWktc3Bpbm5lci1idXR0b24iICkNCgkJCS5hdHRyKCAidGFiSW5kZXgiLCAtMSApDQoJCQkuYnV0dG9uKCkNCgkJCS5yZW1vdmVDbGFzcyggInVpLWNvcm5lci1hbGwiICk7DQoNCgkJLy8gSUUgNiBkb2Vzbid0IHVuZGVyc3RhbmQgaGVpZ2h0OiA1MCUgZm9yIHRoZSBidXR0b25zDQoJCS8vIHVubGVzcyB0aGUgd3JhcHBlciBoYXMgYW4gZXhwbGljaXQgaGVpZ2h0DQoJCWlmICggdGhpcy5idXR0b25zLmhlaWdodCgpID4gTWF0aC5jZWlsKCB1aVNwaW5uZXIuaGVpZ2h0KCkgKiAwLjUgKSAmJg0KCQkJCXVpU3Bpbm5lci5oZWlnaHQoKSA+IDAgKSB7DQoJCQl1aVNwaW5uZXIuaGVpZ2h0KCB1aVNwaW5uZXIuaGVpZ2h0KCkgKTsNCgkJfQ0KDQoJCS8vIGRpc2FibGUgc3Bpbm5lciBpZiBlbGVtZW50IHdhcyBhbHJlYWR5IGRpc2FibGVkDQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5kaXNhYmxlKCk7DQoJCX0NCgl9LA0KDQoJX2tleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMsDQoJCQlrZXlDb2RlID0gJC51aS5rZXlDb2RlOw0KDQoJCXN3aXRjaCAoIGV2ZW50LmtleUNvZGUgKSB7DQoJCWNhc2Uga2V5Q29kZS5VUDoNCgkJCXRoaXMuX3JlcGVhdCggbnVsbCwgMSwgZXZlbnQgKTsNCgkJCXJldHVybiB0cnVlOw0KCQljYXNlIGtleUNvZGUuRE9XTjoNCgkJCXRoaXMuX3JlcGVhdCggbnVsbCwgLTEsIGV2ZW50ICk7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJY2FzZSBrZXlDb2RlLlBBR0VfVVA6DQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsIG9wdGlvbnMucGFnZSwgZXZlbnQgKTsNCgkJCXJldHVybiB0cnVlOw0KCQljYXNlIGtleUNvZGUuUEFHRV9ET1dOOg0KCQkJdGhpcy5fcmVwZWF0KCBudWxsLCAtb3B0aW9ucy5wYWdlLCBldmVudCApOw0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfSwNCg0KCV91aVNwaW5uZXJIdG1sOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuICI8c3BhbiBjbGFzcz0ndWktc3Bpbm5lciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCc+PC9zcGFuPiI7DQoJfSwNCg0KCV9idXR0b25IdG1sOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuICIiICsNCgkJCSI8YSBjbGFzcz0ndWktc3Bpbm5lci1idXR0b24gdWktc3Bpbm5lci11cCB1aS1jb3JuZXItdHInPiIgKw0KCQkJCSI8c3BhbiBjbGFzcz0ndWktaWNvbiAiICsgdGhpcy5vcHRpb25zLmljb25zLnVwICsgIic+JiM5NjUwOzwvc3Bhbj4iICsNCgkJCSI8L2E+IiArDQoJCQkiPGEgY2xhc3M9J3VpLXNwaW5uZXItYnV0dG9uIHVpLXNwaW5uZXItZG93biB1aS1jb3JuZXItYnInPiIgKw0KCQkJCSI8c3BhbiBjbGFzcz0ndWktaWNvbiAiICsgdGhpcy5vcHRpb25zLmljb25zLmRvd24gKyAiJz4mIzk2NjA7PC9zcGFuPiIgKw0KCQkJIjwvYT4iOw0KCX0sDQoNCglfc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCAhdGhpcy5zcGlubmluZyAmJiB0aGlzLl90cmlnZ2VyKCAic3RhcnQiLCBldmVudCApID09PSBmYWxzZSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWlmICggIXRoaXMuY291bnRlciApIHsNCgkJCXRoaXMuY291bnRlciA9IDE7DQoJCX0NCgkJdGhpcy5zcGlubmluZyA9IHRydWU7DQoJCXJldHVybiB0cnVlOw0KCX0sDQoNCglfcmVwZWF0OiBmdW5jdGlvbiggaSwgc3RlcHMsIGV2ZW50ICkgew0KCQlpID0gaSB8fCA1MDA7DQoNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoJCXRoaXMudGltZXIgPSB0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCXRoaXMuX3JlcGVhdCggNDAsIHN0ZXBzLCBldmVudCApOw0KCQl9LCBpICk7DQoNCgkJdGhpcy5fc3Bpbiggc3RlcHMgKiB0aGlzLm9wdGlvbnMuc3RlcCwgZXZlbnQgKTsNCgl9LA0KDQoJX3NwaW46IGZ1bmN0aW9uKCBzdGVwLCBldmVudCApIHsNCgkJdmFyIHZhbHVlID0gdGhpcy52YWx1ZSgpIHx8IDA7DQoNCgkJaWYgKCAhdGhpcy5jb3VudGVyICkgew0KCQkJdGhpcy5jb3VudGVyID0gMTsNCgkJfQ0KDQoJCXZhbHVlID0gdGhpcy5fYWRqdXN0VmFsdWUoIHZhbHVlICsgc3RlcCAqIHRoaXMuX2luY3JlbWVudCggdGhpcy5jb3VudGVyICkgKTsNCg0KCQlpZiAoICF0aGlzLnNwaW5uaW5nIHx8IHRoaXMuX3RyaWdnZXIoICJzcGluIiwgZXZlbnQsIHsgdmFsdWU6IHZhbHVlIH0gKSAhPT0gZmFsc2UpIHsNCgkJCXRoaXMuX3ZhbHVlKCB2YWx1ZSApOw0KCQkJdGhpcy5jb3VudGVyKys7DQoJCX0NCgl9LA0KDQoJX2luY3JlbWVudDogZnVuY3Rpb24oIGkgKSB7DQoJCXZhciBpbmNyZW1lbnRhbCA9IHRoaXMub3B0aW9ucy5pbmNyZW1lbnRhbDsNCg0KCQlpZiAoIGluY3JlbWVudGFsICkgew0KCQkJcmV0dXJuICQuaXNGdW5jdGlvbiggaW5jcmVtZW50YWwgKSA/DQoJCQkJaW5jcmVtZW50YWwoIGkgKSA6DQoJCQkJTWF0aC5mbG9vciggaSAqIGkgKiBpIC8gNTAwMDAgLSBpICogaSAvIDUwMCArIDE3ICogaSAvIDIwMCArIDEgKTsNCgkJfQ0KDQoJCXJldHVybiAxOw0KCX0sDQoNCglfcHJlY2lzaW9uOiBmdW5jdGlvbigpIHsNCgkJdmFyIHByZWNpc2lvbiA9IHRoaXMuX3ByZWNpc2lvbk9mKCB0aGlzLm9wdGlvbnMuc3RlcCApOw0KCQlpZiAoIHRoaXMub3B0aW9ucy5taW4gIT09IG51bGwgKSB7DQoJCQlwcmVjaXNpb24gPSBNYXRoLm1heCggcHJlY2lzaW9uLCB0aGlzLl9wcmVjaXNpb25PZiggdGhpcy5vcHRpb25zLm1pbiApICk7DQoJCX0NCgkJcmV0dXJuIHByZWNpc2lvbjsNCgl9LA0KDQoJX3ByZWNpc2lvbk9mOiBmdW5jdGlvbiggbnVtICkgew0KCQl2YXIgc3RyID0gbnVtLnRvU3RyaW5nKCksDQoJCQlkZWNpbWFsID0gc3RyLmluZGV4T2YoICIuIiApOw0KCQlyZXR1cm4gZGVjaW1hbCA9PT0gLTEgPyAwIDogc3RyLmxlbmd0aCAtIGRlY2ltYWwgLSAxOw0KCX0sDQoNCglfYWRqdXN0VmFsdWU6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJdmFyIGJhc2UsIGFib3ZlTWluLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQkvLyBtYWtlIHN1cmUgd2UncmUgYXQgYSB2YWxpZCBzdGVwDQoJCS8vIC0gZmluZCBvdXQgd2hlcmUgd2UgYXJlIHJlbGF0aXZlIHRvIHRoZSBiYXNlIChtaW4gb3IgMCkNCgkJYmFzZSA9IG9wdGlvbnMubWluICE9PSBudWxsID8gb3B0aW9ucy5taW4gOiAwOw0KCQlhYm92ZU1pbiA9IHZhbHVlIC0gYmFzZTsNCgkJLy8gLSByb3VuZCB0byB0aGUgbmVhcmVzdCBzdGVwDQoJCWFib3ZlTWluID0gTWF0aC5yb3VuZChhYm92ZU1pbiAvIG9wdGlvbnMuc3RlcCkgKiBvcHRpb25zLnN0ZXA7DQoJCS8vIC0gcm91bmRpbmcgaXMgYmFzZWQgb24gMCwgc28gYWRqdXN0IGJhY2sgdG8gb3VyIGJhc2UNCgkJdmFsdWUgPSBiYXNlICsgYWJvdmVNaW47DQoNCgkJLy8gZml4IHByZWNpc2lvbiBmcm9tIGJhZCBKUyBmbG9hdGluZyBwb2ludCBtYXRoDQoJCXZhbHVlID0gcGFyc2VGbG9hdCggdmFsdWUudG9GaXhlZCggdGhpcy5fcHJlY2lzaW9uKCkgKSApOw0KDQoJCS8vIGNsYW1wIHRoZSB2YWx1ZQ0KCQlpZiAoIG9wdGlvbnMubWF4ICE9PSBudWxsICYmIHZhbHVlID4gb3B0aW9ucy5tYXgpIHsNCgkJCXJldHVybiBvcHRpb25zLm1heDsNCgkJfQ0KCQlpZiAoIG9wdGlvbnMubWluICE9PSBudWxsICYmIHZhbHVlIDwgb3B0aW9ucy5taW4gKSB7DQoJCQlyZXR1cm4gb3B0aW9ucy5taW47DQoJCX0NCg0KCQlyZXR1cm4gdmFsdWU7DQoJfSwNCg0KCV9zdG9wOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggIXRoaXMuc3Bpbm5pbmcgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQljbGVhclRpbWVvdXQoIHRoaXMudGltZXIgKTsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLm1vdXNld2hlZWxUaW1lciApOw0KCQl0aGlzLmNvdW50ZXIgPSAwOw0KCQl0aGlzLnNwaW5uaW5nID0gZmFsc2U7DQoJCXRoaXMuX3RyaWdnZXIoICJzdG9wIiwgZXZlbnQgKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCWlmICgga2V5ID09PSAiY3VsdHVyZSIgfHwga2V5ID09PSAibnVtYmVyRm9ybWF0IiApIHsNCgkJCXZhciBwcmV2VmFsdWUgPSB0aGlzLl9wYXJzZSggdGhpcy5lbGVtZW50LnZhbCgpICk7DQoJCQl0aGlzLm9wdGlvbnNbIGtleSBdID0gdmFsdWU7DQoJCQl0aGlzLmVsZW1lbnQudmFsKCB0aGlzLl9mb3JtYXQoIHByZXZWYWx1ZSApICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gIm1heCIgfHwga2V5ID09PSAibWluIiB8fCBrZXkgPT09ICJzdGVwIiApIHsNCgkJCWlmICggdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiApIHsNCgkJCQl2YWx1ZSA9IHRoaXMuX3BhcnNlKCB2YWx1ZSApOw0KCQkJfQ0KCQl9DQoJCWlmICgga2V5ID09PSAiaWNvbnMiICkgew0KCQkJdGhpcy5idXR0b25zLmZpcnN0KCkuZmluZCggIi51aS1pY29uIiApDQoJCQkJLnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuaWNvbnMudXAgKQ0KCQkJCS5hZGRDbGFzcyggdmFsdWUudXAgKTsNCgkJCXRoaXMuYnV0dG9ucy5sYXN0KCkuZmluZCggIi51aS1pY29uIiApDQoJCQkJLnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuaWNvbnMuZG93biApDQoJCQkJLmFkZENsYXNzKCB2YWx1ZS5kb3duICk7DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiwgISF2YWx1ZSApOw0KCQkJdGhpcy5lbGVtZW50LnByb3AoICJkaXNhYmxlZCIsICEhdmFsdWUgKTsNCgkJCXRoaXMuYnV0dG9ucy5idXR0b24oIHZhbHVlID8gImRpc2FibGUiIDogImVuYWJsZSIgKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uczogc3Bpbm5lcl9tb2RpZmllcihmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdGhpcy5fc3VwZXIoIG9wdGlvbnMgKTsNCgl9KSwNCg0KCV9wYXJzZTogZnVuY3Rpb24oIHZhbCApIHsNCgkJaWYgKCB0eXBlb2YgdmFsID09PSAic3RyaW5nIiAmJiB2YWwgIT09ICIiICkgew0KCQkJdmFsID0gd2luZG93Lkdsb2JhbGl6ZSAmJiB0aGlzLm9wdGlvbnMubnVtYmVyRm9ybWF0ID8NCgkJCQlHbG9iYWxpemUucGFyc2VGbG9hdCggdmFsLCAxMCwgdGhpcy5vcHRpb25zLmN1bHR1cmUgKSA6ICt2YWw7DQoJCX0NCgkJcmV0dXJuIHZhbCA9PT0gIiIgfHwgaXNOYU4oIHZhbCApID8gbnVsbCA6IHZhbDsNCgl9LA0KDQoJX2Zvcm1hdDogZnVuY3Rpb24oIHZhbHVlICkgew0KCQlpZiAoIHZhbHVlID09PSAiIiApIHsNCgkJCXJldHVybiAiIjsNCgkJfQ0KCQlyZXR1cm4gd2luZG93Lkdsb2JhbGl6ZSAmJiB0aGlzLm9wdGlvbnMubnVtYmVyRm9ybWF0ID8NCgkJCUdsb2JhbGl6ZS5mb3JtYXQoIHZhbHVlLCB0aGlzLm9wdGlvbnMubnVtYmVyRm9ybWF0LCB0aGlzLm9wdGlvbnMuY3VsdHVyZSApIDoNCgkJCXZhbHVlOw0KCX0sDQoNCglfcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5hdHRyKHsNCgkJCSJhcmlhLXZhbHVlbWluIjogdGhpcy5vcHRpb25zLm1pbiwNCgkJCSJhcmlhLXZhbHVlbWF4IjogdGhpcy5vcHRpb25zLm1heCwNCgkJCS8vIFRPRE86IHdoYXQgc2hvdWxkIHdlIGRvIHdpdGggdmFsdWVzIHRoYXQgY2FuJ3QgYmUgcGFyc2VkPw0KCQkJImFyaWEtdmFsdWVub3ciOiB0aGlzLl9wYXJzZSggdGhpcy5lbGVtZW50LnZhbCgpICkNCgkJfSk7DQoJfSwNCg0KCWlzVmFsaWQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdmFsdWUgPSB0aGlzLnZhbHVlKCk7DQoNCgkJLy8gbnVsbCBpcyBpbnZhbGlkDQoJCWlmICggdmFsdWUgPT09IG51bGwgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkvLyBpZiB2YWx1ZSBnZXRzIGFkanVzdGVkLCBpdCdzIGludmFsaWQNCgkJcmV0dXJuIHZhbHVlID09PSB0aGlzLl9hZGp1c3RWYWx1ZSggdmFsdWUgKTsNCgl9LA0KDQoJLy8gdXBkYXRlIHRoZSB2YWx1ZSB3aXRob3V0IHRyaWdnZXJpbmcgY2hhbmdlDQoJX3ZhbHVlOiBmdW5jdGlvbiggdmFsdWUsIGFsbG93QW55ICkgew0KCQl2YXIgcGFyc2VkOw0KCQlpZiAoIHZhbHVlICE9PSAiIiApIHsNCgkJCXBhcnNlZCA9IHRoaXMuX3BhcnNlKCB2YWx1ZSApOw0KCQkJaWYgKCBwYXJzZWQgIT09IG51bGwgKSB7DQoJCQkJaWYgKCAhYWxsb3dBbnkgKSB7DQoJCQkJCXBhcnNlZCA9IHRoaXMuX2FkanVzdFZhbHVlKCBwYXJzZWQgKTsNCgkJCQl9DQoJCQkJdmFsdWUgPSB0aGlzLl9mb3JtYXQoIHBhcnNlZCApOw0KCQkJfQ0KCQl9DQoJCXRoaXMuZWxlbWVudC52YWwoIHZhbHVlICk7DQoJCXRoaXMuX3JlZnJlc2goKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcyggInVpLXNwaW5uZXItaW5wdXQiICkNCgkJCS5wcm9wKCAiZGlzYWJsZWQiLCBmYWxzZSApDQoJCQkucmVtb3ZlQXR0ciggImF1dG9jb21wbGV0ZSIgKQ0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtdmFsdWVtaW4iICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS12YWx1ZW1heCIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLXZhbHVlbm93IiApOw0KCQl0aGlzLnVpU3Bpbm5lci5yZXBsYWNlV2l0aCggdGhpcy5lbGVtZW50ICk7DQoJfSwNCg0KCXN0ZXBVcDogc3Bpbm5lcl9tb2RpZmllcihmdW5jdGlvbiggc3RlcHMgKSB7DQoJCXRoaXMuX3N0ZXBVcCggc3RlcHMgKTsNCgl9KSwNCglfc3RlcFVwOiBmdW5jdGlvbiggc3RlcHMgKSB7DQoJCWlmICggdGhpcy5fc3RhcnQoKSApIHsNCgkJCXRoaXMuX3NwaW4oIChzdGVwcyB8fCAxKSAqIHRoaXMub3B0aW9ucy5zdGVwICk7DQoJCQl0aGlzLl9zdG9wKCk7DQoJCX0NCgl9LA0KDQoJc3RlcERvd246IHNwaW5uZXJfbW9kaWZpZXIoZnVuY3Rpb24oIHN0ZXBzICkgew0KCQl0aGlzLl9zdGVwRG93biggc3RlcHMgKTsNCgl9KSwNCglfc3RlcERvd246IGZ1bmN0aW9uKCBzdGVwcyApIHsNCgkJaWYgKCB0aGlzLl9zdGFydCgpICkgew0KCQkJdGhpcy5fc3BpbiggKHN0ZXBzIHx8IDEpICogLXRoaXMub3B0aW9ucy5zdGVwICk7DQoJCQl0aGlzLl9zdG9wKCk7DQoJCX0NCgl9LA0KDQoJcGFnZVVwOiBzcGlubmVyX21vZGlmaWVyKGZ1bmN0aW9uKCBwYWdlcyApIHsNCgkJdGhpcy5fc3RlcFVwKCAocGFnZXMgfHwgMSkgKiB0aGlzLm9wdGlvbnMucGFnZSApOw0KCX0pLA0KDQoJcGFnZURvd246IHNwaW5uZXJfbW9kaWZpZXIoZnVuY3Rpb24oIHBhZ2VzICkgew0KCQl0aGlzLl9zdGVwRG93biggKHBhZ2VzIHx8IDEpICogdGhpcy5vcHRpb25zLnBhZ2UgKTsNCgl9KSwNCg0KCXZhbHVlOiBmdW5jdGlvbiggbmV3VmFsICkgew0KCQlpZiAoICFhcmd1bWVudHMubGVuZ3RoICkgew0KCQkJcmV0dXJuIHRoaXMuX3BhcnNlKCB0aGlzLmVsZW1lbnQudmFsKCkgKTsNCgkJfQ0KCQlzcGlubmVyX21vZGlmaWVyKCB0aGlzLl92YWx1ZSApLmNhbGwoIHRoaXMsIG5ld1ZhbCApOw0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy51aVNwaW5uZXI7DQoJfQ0KfSk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgVGFicyAxLjExLjINCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vdGFicy8NCiAqLw0KDQoNCnZhciB0YWJzID0gJC53aWRnZXQoICJ1aS50YWJzIiwgew0KCXZlcnNpb246ICIxLjExLjIiLA0KCWRlbGF5OiAzMDAsDQoJb3B0aW9uczogew0KCQlhY3RpdmU6IG51bGwsDQoJCWNvbGxhcHNpYmxlOiBmYWxzZSwNCgkJZXZlbnQ6ICJjbGljayIsDQoJCWhlaWdodFN0eWxlOiAiY29udGVudCIsDQoJCWhpZGU6IG51bGwsDQoJCXNob3c6IG51bGwsDQoNCgkJLy8gY2FsbGJhY2tzDQoJCWFjdGl2YXRlOiBudWxsLA0KCQliZWZvcmVBY3RpdmF0ZTogbnVsbCwNCgkJYmVmb3JlTG9hZDogbnVsbCwNCgkJbG9hZDogbnVsbA0KCX0sDQoNCglfaXNMb2NhbDogKGZ1bmN0aW9uKCkgew0KCQl2YXIgcmhhc2ggPSAvIy4qJC87DQoNCgkJcmV0dXJuIGZ1bmN0aW9uKCBhbmNob3IgKSB7DQoJCQl2YXIgYW5jaG9yVXJsLCBsb2NhdGlvblVybDsNCg0KCQkJLy8gc3VwcG9ydDogSUU3DQoJCQkvLyBJRTcgZG9lc24ndCBub3JtYWxpemUgdGhlIGhyZWYgcHJvcGVydHkgd2hlbiBzZXQgdmlhIHNjcmlwdCAoIzkzMTcpDQoJCQlhbmNob3IgPSBhbmNob3IuY2xvbmVOb2RlKCBmYWxzZSApOw0KDQoJCQlhbmNob3JVcmwgPSBhbmNob3IuaHJlZi5yZXBsYWNlKCByaGFzaCwgIiIgKTsNCgkJCWxvY2F0aW9uVXJsID0gbG9jYXRpb24uaHJlZi5yZXBsYWNlKCByaGFzaCwgIiIgKTsNCg0KCQkJLy8gZGVjb2RpbmcgbWF5IHRocm93IGFuIGVycm9yIGlmIHRoZSBVUkwgaXNuJ3QgVVRGLTggKCM5NTE4KQ0KCQkJdHJ5IHsNCgkJCQlhbmNob3JVcmwgPSBkZWNvZGVVUklDb21wb25lbnQoIGFuY2hvclVybCApOw0KCQkJfSBjYXRjaCAoIGVycm9yICkge30NCgkJCXRyeSB7DQoJCQkJbG9jYXRpb25VcmwgPSBkZWNvZGVVUklDb21wb25lbnQoIGxvY2F0aW9uVXJsICk7DQoJCQl9IGNhdGNoICggZXJyb3IgKSB7fQ0KDQoJCQlyZXR1cm4gYW5jaG9yLmhhc2gubGVuZ3RoID4gMSAmJiBhbmNob3JVcmwgPT09IGxvY2F0aW9uVXJsOw0KCQl9Ow0KCX0pKCksDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQl0aGlzLnJ1bm5pbmcgPSBmYWxzZTsNCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5hZGRDbGFzcyggInVpLXRhYnMgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiICkNCgkJCS50b2dnbGVDbGFzcyggInVpLXRhYnMtY29sbGFwc2libGUiLCBvcHRpb25zLmNvbGxhcHNpYmxlICk7DQoNCgkJdGhpcy5fcHJvY2Vzc1RhYnMoKTsNCgkJb3B0aW9ucy5hY3RpdmUgPSB0aGlzLl9pbml0aWFsQWN0aXZlKCk7DQoNCgkJLy8gVGFrZSBkaXNhYmxpbmcgdGFicyB2aWEgY2xhc3MgYXR0cmlidXRlIGZyb20gSFRNTA0KCQkvLyBpbnRvIGFjY291bnQgYW5kIHVwZGF0ZSBvcHRpb24gcHJvcGVybHkuDQoJCWlmICggJC5pc0FycmF5KCBvcHRpb25zLmRpc2FibGVkICkgKSB7DQoJCQlvcHRpb25zLmRpc2FibGVkID0gJC51bmlxdWUoIG9wdGlvbnMuZGlzYWJsZWQuY29uY2F0KA0KCQkJCSQubWFwKCB0aGlzLnRhYnMuZmlsdGVyKCAiLnVpLXN0YXRlLWRpc2FibGVkIiApLCBmdW5jdGlvbiggbGkgKSB7DQoJCQkJCXJldHVybiB0aGF0LnRhYnMuaW5kZXgoIGxpICk7DQoJCQkJfSkNCgkJCSkgKS5zb3J0KCk7DQoJCX0NCg0KCQkvLyBjaGVjayBmb3IgbGVuZ3RoIGF2b2lkcyBlcnJvciB3aGVuIGluaXRpYWxpemluZyBlbXB0eSBsaXN0DQoJCWlmICggdGhpcy5vcHRpb25zLmFjdGl2ZSAhPT0gZmFsc2UgJiYgdGhpcy5hbmNob3JzLmxlbmd0aCApIHsNCgkJCXRoaXMuYWN0aXZlID0gdGhpcy5fZmluZEFjdGl2ZSggb3B0aW9ucy5hY3RpdmUgKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYWN0aXZlID0gJCgpOw0KCQl9DQoNCgkJdGhpcy5fcmVmcmVzaCgpOw0KDQoJCWlmICggdGhpcy5hY3RpdmUubGVuZ3RoICkgew0KCQkJdGhpcy5sb2FkKCBvcHRpb25zLmFjdGl2ZSApOw0KCQl9DQoJfSwNCg0KCV9pbml0aWFsQWN0aXZlOiBmdW5jdGlvbigpIHsNCgkJdmFyIGFjdGl2ZSA9IHRoaXMub3B0aW9ucy5hY3RpdmUsDQoJCQljb2xsYXBzaWJsZSA9IHRoaXMub3B0aW9ucy5jb2xsYXBzaWJsZSwNCgkJCWxvY2F0aW9uSGFzaCA9IGxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKCAxICk7DQoNCgkJaWYgKCBhY3RpdmUgPT09IG51bGwgKSB7DQoJCQkvLyBjaGVjayB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciBpbiB0aGUgVVJMDQoJCQlpZiAoIGxvY2F0aW9uSGFzaCApIHsNCgkJCQl0aGlzLnRhYnMuZWFjaChmdW5jdGlvbiggaSwgdGFiICkgew0KCQkJCQlpZiAoICQoIHRhYiApLmF0dHIoICJhcmlhLWNvbnRyb2xzIiApID09PSBsb2NhdGlvbkhhc2ggKSB7DQoJCQkJCQlhY3RpdmUgPSBpOw0KCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9DQoNCgkJCS8vIGNoZWNrIGZvciBhIHRhYiBtYXJrZWQgYWN0aXZlIHZpYSBhIGNsYXNzDQoJCQlpZiAoIGFjdGl2ZSA9PT0gbnVsbCApIHsNCgkJCQlhY3RpdmUgPSB0aGlzLnRhYnMuaW5kZXgoIHRoaXMudGFicy5maWx0ZXIoICIudWktdGFicy1hY3RpdmUiICkgKTsNCgkJCX0NCg0KCQkJLy8gbm8gYWN0aXZlIHRhYiwgc2V0IHRvIGZhbHNlDQoJCQlpZiAoIGFjdGl2ZSA9PT0gbnVsbCB8fCBhY3RpdmUgPT09IC0xICkgew0KCQkJCWFjdGl2ZSA9IHRoaXMudGFicy5sZW5ndGggPyAwIDogZmFsc2U7DQoJCQl9DQoJCX0NCg0KCQkvLyBoYW5kbGUgbnVtYmVyczogbmVnYXRpdmUsIG91dCBvZiByYW5nZQ0KCQlpZiAoIGFjdGl2ZSAhPT0gZmFsc2UgKSB7DQoJCQlhY3RpdmUgPSB0aGlzLnRhYnMuaW5kZXgoIHRoaXMudGFicy5lcSggYWN0aXZlICkgKTsNCgkJCWlmICggYWN0aXZlID09PSAtMSApIHsNCgkJCQlhY3RpdmUgPSBjb2xsYXBzaWJsZSA/IGZhbHNlIDogMDsNCgkJCX0NCgkJfQ0KDQoJCS8vIGRvbid0IGFsbG93IGNvbGxhcHNpYmxlOiBmYWxzZSBhbmQgYWN0aXZlOiBmYWxzZQ0KCQlpZiAoICFjb2xsYXBzaWJsZSAmJiBhY3RpdmUgPT09IGZhbHNlICYmIHRoaXMuYW5jaG9ycy5sZW5ndGggKSB7DQoJCQlhY3RpdmUgPSAwOw0KCQl9DQoNCgkJcmV0dXJuIGFjdGl2ZTsNCgl9LA0KDQoJX2dldENyZWF0ZUV2ZW50RGF0YTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB7DQoJCQl0YWI6IHRoaXMuYWN0aXZlLA0KCQkJcGFuZWw6ICF0aGlzLmFjdGl2ZS5sZW5ndGggPyAkKCkgOiB0aGlzLl9nZXRQYW5lbEZvclRhYiggdGhpcy5hY3RpdmUgKQ0KCQl9Ow0KCX0sDQoNCglfdGFiS2V5ZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgZm9jdXNlZFRhYiA9ICQoIHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCApLmNsb3Nlc3QoICJsaSIgKSwNCgkJCXNlbGVjdGVkSW5kZXggPSB0aGlzLnRhYnMuaW5kZXgoIGZvY3VzZWRUYWIgKSwNCgkJCWdvaW5nRm9yd2FyZCA9IHRydWU7DQoNCgkJaWYgKCB0aGlzLl9oYW5kbGVQYWdlTmF2KCBldmVudCApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLlJJR0hUOg0KCQkJY2FzZSAkLnVpLmtleUNvZGUuRE9XTjoNCgkJCQlzZWxlY3RlZEluZGV4Kys7DQoJCQkJYnJlYWs7DQoJCQljYXNlICQudWkua2V5Q29kZS5VUDoNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkxFRlQ6DQoJCQkJZ29pbmdGb3J3YXJkID0gZmFsc2U7DQoJCQkJc2VsZWN0ZWRJbmRleC0tOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAkLnVpLmtleUNvZGUuRU5EOg0KCQkJCXNlbGVjdGVkSW5kZXggPSB0aGlzLmFuY2hvcnMubGVuZ3RoIC0gMTsNCgkJCQlicmVhazsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkhPTUU6DQoJCQkJc2VsZWN0ZWRJbmRleCA9IDA7DQoJCQkJYnJlYWs7DQoJCQljYXNlICQudWkua2V5Q29kZS5TUEFDRToNCgkJCQkvLyBBY3RpdmF0ZSBvbmx5LCBubyBjb2xsYXBzaW5nDQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQljbGVhclRpbWVvdXQoIHRoaXMuYWN0aXZhdGluZyApOw0KCQkJCXRoaXMuX2FjdGl2YXRlKCBzZWxlY3RlZEluZGV4ICk7DQoJCQkJcmV0dXJuOw0KCQkJY2FzZSAkLnVpLmtleUNvZGUuRU5URVI6DQoJCQkJLy8gVG9nZ2xlIChjYW5jZWwgZGVsYXllZCBhY3RpdmF0aW9uLCBhbGxvdyBjb2xsYXBzaW5nKQ0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJY2xlYXJUaW1lb3V0KCB0aGlzLmFjdGl2YXRpbmcgKTsNCgkJCQkvLyBEZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIGNvbGxhcHNlIG9yIGFjdGl2YXRlDQoJCQkJdGhpcy5fYWN0aXZhdGUoIHNlbGVjdGVkSW5kZXggPT09IHRoaXMub3B0aW9ucy5hY3RpdmUgPyBmYWxzZSA6IHNlbGVjdGVkSW5kZXggKTsNCgkJCQlyZXR1cm47DQoJCQlkZWZhdWx0Og0KCQkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIEZvY3VzIHRoZSBhcHByb3ByaWF0ZSB0YWIsIGJhc2VkIG9uIHdoaWNoIGtleSB3YXMgcHJlc3NlZA0KCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQljbGVhclRpbWVvdXQoIHRoaXMuYWN0aXZhdGluZyApOw0KCQlzZWxlY3RlZEluZGV4ID0gdGhpcy5fZm9jdXNOZXh0VGFiKCBzZWxlY3RlZEluZGV4LCBnb2luZ0ZvcndhcmQgKTsNCg0KCQkvLyBOYXZpZ2F0aW5nIHdpdGggY29udHJvbCBrZXkgd2lsbCBwcmV2ZW50IGF1dG9tYXRpYyBhY3RpdmF0aW9uDQoJCWlmICggIWV2ZW50LmN0cmxLZXkgKSB7DQoJCQkvLyBVcGRhdGUgYXJpYS1zZWxlY3RlZCBpbW1lZGlhdGVseSBzbyB0aGF0IEFUIHRoaW5rIHRoZSB0YWIgaXMgYWxyZWFkeSBzZWxlY3RlZC4NCgkJCS8vIE90aGVyd2lzZSBBVCBtYXkgY29uZnVzZSB0aGUgdXNlciBieSBzdGF0aW5nIHRoYXQgdGhleSBuZWVkIHRvIGFjdGl2YXRlIHRoZSB0YWIsDQoJCQkvLyBidXQgdGhlIHRhYiB3aWxsIGFscmVhZHkgYmUgYWN0aXZhdGVkIGJ5IHRoZSB0aW1lIHRoZSBhbm5vdW5jZW1lbnQgZmluaXNoZXMuDQoJCQlmb2N1c2VkVGFiLmF0dHIoICJhcmlhLXNlbGVjdGVkIiwgImZhbHNlIiApOw0KCQkJdGhpcy50YWJzLmVxKCBzZWxlY3RlZEluZGV4ICkuYXR0ciggImFyaWEtc2VsZWN0ZWQiLCAidHJ1ZSIgKTsNCg0KCQkJdGhpcy5hY3RpdmF0aW5nID0gdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5vcHRpb24oICJhY3RpdmUiLCBzZWxlY3RlZEluZGV4ICk7DQoJCQl9LCB0aGlzLmRlbGF5ICk7DQoJCX0NCgl9LA0KDQoJX3BhbmVsS2V5ZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIHRoaXMuX2hhbmRsZVBhZ2VOYXYoIGV2ZW50ICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBDdHJsK3VwIG1vdmVzIGZvY3VzIHRvIHRoZSBjdXJyZW50IHRhYg0KCQlpZiAoIGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLlVQICkgew0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCXRoaXMuYWN0aXZlLmZvY3VzKCk7DQoJCX0NCgl9LA0KDQoJLy8gQWx0K3BhZ2UgdXAvZG93biBtb3ZlcyBmb2N1cyB0byB0aGUgcHJldmlvdXMvbmV4dCB0YWIgKGFuZCBhY3RpdmF0ZXMpDQoJX2hhbmRsZVBhZ2VOYXY6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCBldmVudC5hbHRLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLlBBR0VfVVAgKSB7DQoJCQl0aGlzLl9hY3RpdmF0ZSggdGhpcy5fZm9jdXNOZXh0VGFiKCB0aGlzLm9wdGlvbnMuYWN0aXZlIC0gMSwgZmFsc2UgKSApOw0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCgkJaWYgKCBldmVudC5hbHRLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLlBBR0VfRE9XTiApIHsNCgkJCXRoaXMuX2FjdGl2YXRlKCB0aGlzLl9mb2N1c05leHRUYWIoIHRoaXMub3B0aW9ucy5hY3RpdmUgKyAxLCB0cnVlICkgKTsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoJfSwNCg0KCV9maW5kTmV4dFRhYjogZnVuY3Rpb24oIGluZGV4LCBnb2luZ0ZvcndhcmQgKSB7DQoJCXZhciBsYXN0VGFiSW5kZXggPSB0aGlzLnRhYnMubGVuZ3RoIC0gMTsNCg0KCQlmdW5jdGlvbiBjb25zdHJhaW4oKSB7DQoJCQlpZiAoIGluZGV4ID4gbGFzdFRhYkluZGV4ICkgew0KCQkJCWluZGV4ID0gMDsNCgkJCX0NCgkJCWlmICggaW5kZXggPCAwICkgew0KCQkJCWluZGV4ID0gbGFzdFRhYkluZGV4Ow0KCQkJfQ0KCQkJcmV0dXJuIGluZGV4Ow0KCQl9DQoNCgkJd2hpbGUgKCAkLmluQXJyYXkoIGNvbnN0cmFpbigpLCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgKSAhPT0gLTEgKSB7DQoJCQlpbmRleCA9IGdvaW5nRm9yd2FyZCA/IGluZGV4ICsgMSA6IGluZGV4IC0gMTsNCgkJfQ0KDQoJCXJldHVybiBpbmRleDsNCgl9LA0KDQoJX2ZvY3VzTmV4dFRhYjogZnVuY3Rpb24oIGluZGV4LCBnb2luZ0ZvcndhcmQgKSB7DQoJCWluZGV4ID0gdGhpcy5fZmluZE5leHRUYWIoIGluZGV4LCBnb2luZ0ZvcndhcmQgKTsNCgkJdGhpcy50YWJzLmVxKCBpbmRleCApLmZvY3VzKCk7DQoJCXJldHVybiBpbmRleDsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCWlmICgga2V5ID09PSAiYWN0aXZlIiApIHsNCgkJCS8vIF9hY3RpdmF0ZSgpIHdpbGwgaGFuZGxlIGludmFsaWQgdmFsdWVzIGFuZCB1cGRhdGUgdGhpcy5vcHRpb25zDQoJCQl0aGlzLl9hY3RpdmF0ZSggdmFsdWUgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJLy8gZG9uJ3QgdXNlIHRoZSB3aWRnZXQgZmFjdG9yeSdzIGRpc2FibGVkIGhhbmRsaW5nDQoJCQl0aGlzLl9zZXR1cERpc2FibGVkKCB2YWx1ZSApOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUpOw0KDQoJCWlmICgga2V5ID09PSAiY29sbGFwc2libGUiICkgew0KCQkJdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCAidWktdGFicy1jb2xsYXBzaWJsZSIsIHZhbHVlICk7DQoJCQkvLyBTZXR0aW5nIGNvbGxhcHNpYmxlOiBmYWxzZSB3aGlsZSBjb2xsYXBzZWQ7IG9wZW4gZmlyc3QgcGFuZWwNCgkJCWlmICggIXZhbHVlICYmIHRoaXMub3B0aW9ucy5hY3RpdmUgPT09IGZhbHNlICkgew0KCQkJCXRoaXMuX2FjdGl2YXRlKCAwICk7DQoJCQl9DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImV2ZW50IiApIHsNCgkJCXRoaXMuX3NldHVwRXZlbnRzKCB2YWx1ZSApOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJoZWlnaHRTdHlsZSIgKSB7DQoJCQl0aGlzLl9zZXR1cEhlaWdodFN0eWxlKCB2YWx1ZSApOw0KCQl9DQoJfSwNCg0KCV9zYW5pdGl6ZVNlbGVjdG9yOiBmdW5jdGlvbiggaGFzaCApIHsNCgkJcmV0dXJuIGhhc2ggPyBoYXNoLnJlcGxhY2UoIC9bISIkJSYnKCkqKywuXC86Ozw9Pj9AXFtcXVxeYHt8fX5dL2csICJcXCQmIiApIDogIiI7DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCWxpcyA9IHRoaXMudGFibGlzdC5jaGlsZHJlbiggIjpoYXMoYVtocmVmXSkiICk7DQoNCgkJLy8gZ2V0IGRpc2FibGVkIHRhYnMgZnJvbSBjbGFzcyBhdHRyaWJ1dGUgZnJvbSBIVE1MDQoJCS8vIHRoaXMgd2lsbCBnZXQgY29udmVydGVkIHRvIGEgYm9vbGVhbiBpZiBuZWVkZWQgaW4gX3JlZnJlc2goKQ0KCQlvcHRpb25zLmRpc2FibGVkID0gJC5tYXAoIGxpcy5maWx0ZXIoICIudWktc3RhdGUtZGlzYWJsZWQiICksIGZ1bmN0aW9uKCB0YWIgKSB7DQoJCQlyZXR1cm4gbGlzLmluZGV4KCB0YWIgKTsNCgkJfSk7DQoNCgkJdGhpcy5fcHJvY2Vzc1RhYnMoKTsNCg0KCQkvLyB3YXMgY29sbGFwc2VkIG9yIG5vIHRhYnMNCgkJaWYgKCBvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgfHwgIXRoaXMuYW5jaG9ycy5sZW5ndGggKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSA9IGZhbHNlOw0KCQkJdGhpcy5hY3RpdmUgPSAkKCk7DQoJCS8vIHdhcyBhY3RpdmUsIGJ1dCBhY3RpdmUgdGFiIGlzIGdvbmUNCgkJfSBlbHNlIGlmICggdGhpcy5hY3RpdmUubGVuZ3RoICYmICEkLmNvbnRhaW5zKCB0aGlzLnRhYmxpc3RbIDAgXSwgdGhpcy5hY3RpdmVbIDAgXSApICkgew0KCQkJLy8gYWxsIHJlbWFpbmluZyB0YWJzIGFyZSBkaXNhYmxlZA0KCQkJaWYgKCB0aGlzLnRhYnMubGVuZ3RoID09PSBvcHRpb25zLmRpc2FibGVkLmxlbmd0aCApIHsNCgkJCQlvcHRpb25zLmFjdGl2ZSA9IGZhbHNlOw0KCQkJCXRoaXMuYWN0aXZlID0gJCgpOw0KCQkJLy8gYWN0aXZhdGUgcHJldmlvdXMgdGFiDQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuX2FjdGl2YXRlKCB0aGlzLl9maW5kTmV4dFRhYiggTWF0aC5tYXgoIDAsIG9wdGlvbnMuYWN0aXZlIC0gMSApLCBmYWxzZSApICk7DQoJCQl9DQoJCS8vIHdhcyBhY3RpdmUsIGFjdGl2ZSB0YWIgc3RpbGwgZXhpc3RzDQoJCX0gZWxzZSB7DQoJCQkvLyBtYWtlIHN1cmUgYWN0aXZlIGluZGV4IGlzIGNvcnJlY3QNCgkJCW9wdGlvbnMuYWN0aXZlID0gdGhpcy50YWJzLmluZGV4KCB0aGlzLmFjdGl2ZSApOw0KCQl9DQoNCgkJdGhpcy5fcmVmcmVzaCgpOw0KCX0sDQoNCglfcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX3NldHVwRGlzYWJsZWQoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCApOw0KCQl0aGlzLl9zZXR1cEV2ZW50cyggdGhpcy5vcHRpb25zLmV2ZW50ICk7DQoJCXRoaXMuX3NldHVwSGVpZ2h0U3R5bGUoIHRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSApOw0KDQoJCXRoaXMudGFicy5ub3QoIHRoaXMuYWN0aXZlICkuYXR0cih7DQoJCQkiYXJpYS1zZWxlY3RlZCI6ICJmYWxzZSIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSIsDQoJCQl0YWJJbmRleDogLTENCgkJfSk7DQoJCXRoaXMucGFuZWxzLm5vdCggdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIHRoaXMuYWN0aXZlICkgKQ0KCQkJLmhpZGUoKQ0KCQkJLmF0dHIoew0KCQkJCSJhcmlhLWhpZGRlbiI6ICJ0cnVlIg0KCQkJfSk7DQoNCgkJLy8gTWFrZSBzdXJlIG9uZSB0YWIgaXMgaW4gdGhlIHRhYiBvcmRlcg0KCQlpZiAoICF0aGlzLmFjdGl2ZS5sZW5ndGggKSB7DQoJCQl0aGlzLnRhYnMuZXEoIDAgKS5hdHRyKCAidGFiSW5kZXgiLCAwICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmFjdGl2ZQ0KCQkJCS5hZGRDbGFzcyggInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIgKQ0KCQkJCS5hdHRyKHsNCgkJCQkJImFyaWEtc2VsZWN0ZWQiOiAidHJ1ZSIsDQoJCQkJCSJhcmlhLWV4cGFuZGVkIjogInRydWUiLA0KCQkJCQl0YWJJbmRleDogMA0KCQkJCX0pOw0KCQkJdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIHRoaXMuYWN0aXZlICkNCgkJCQkuc2hvdygpDQoJCQkJLmF0dHIoew0KCQkJCQkiYXJpYS1oaWRkZW4iOiAiZmFsc2UiDQoJCQkJfSk7DQoJCX0NCgl9LA0KDQoJX3Byb2Nlc3NUYWJzOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJcHJldlRhYnMgPSB0aGlzLnRhYnMsDQoJCQlwcmV2QW5jaG9ycyA9IHRoaXMuYW5jaG9ycywNCgkJCXByZXZQYW5lbHMgPSB0aGlzLnBhbmVsczsNCg0KCQl0aGlzLnRhYmxpc3QgPSB0aGlzLl9nZXRMaXN0KCkNCgkJCS5hZGRDbGFzcyggInVpLXRhYnMtbmF2IHVpLWhlbHBlci1yZXNldCB1aS1oZWxwZXItY2xlYXJmaXggdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiApDQoJCQkuYXR0ciggInJvbGUiLCAidGFibGlzdCIgKQ0KDQoJCQkvLyBQcmV2ZW50IHVzZXJzIGZyb20gZm9jdXNpbmcgZGlzYWJsZWQgdGFicyB2aWEgY2xpY2sNCgkJCS5kZWxlZ2F0ZSggIj4gbGkiLCAibW91c2Vkb3duIiArIHRoaXMuZXZlbnROYW1lc3BhY2UsIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoICQoIHRoaXMgKS5pcyggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKSApIHsNCgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQl9DQoJCQl9KQ0KDQoJCQkvLyBzdXBwb3J0OiBJRSA8OQ0KCQkJLy8gUHJldmVudGluZyB0aGUgZGVmYXVsdCBhY3Rpb24gaW4gbW91c2Vkb3duIGRvZXNuJ3QgcHJldmVudCBJRQ0KCQkJLy8gZnJvbSBmb2N1c2luZyB0aGUgZWxlbWVudCwgc28gaWYgdGhlIGFuY2hvciBnZXRzIGZvY3VzZWQsIGJsdXIuDQoJCQkvLyBXZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IGZvY3VzaW5nIHRoZSBwcmV2aW91c2x5IGZvY3VzZWQNCgkJCS8vIGVsZW1lbnQgc2luY2UgY2xpY2tpbmcgb24gYSBub24tZm9jdXNhYmxlIGVsZW1lbnQgc2hvdWxkIGZvY3VzDQoJCQkvLyB0aGUgYm9keSBhbnl3YXkuDQoJCQkuZGVsZWdhdGUoICIudWktdGFicy1hbmNob3IiLCAiZm9jdXMiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCAkKCB0aGlzICkuY2xvc2VzdCggImxpIiApLmlzKCAiLnVpLXN0YXRlLWRpc2FibGVkIiApICkgew0KCQkJCQl0aGlzLmJsdXIoKTsNCgkJCQl9DQoJCQl9KTsNCg0KCQl0aGlzLnRhYnMgPSB0aGlzLnRhYmxpc3QuZmluZCggIj4gbGk6aGFzKGFbaHJlZl0pIiApDQoJCQkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiICkNCgkJCS5hdHRyKHsNCgkJCQlyb2xlOiAidGFiIiwNCgkJCQl0YWJJbmRleDogLTENCgkJCX0pOw0KDQoJCXRoaXMuYW5jaG9ycyA9IHRoaXMudGFicy5tYXAoZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuICQoICJhIiwgdGhpcyApWyAwIF07DQoJCQl9KQ0KCQkJLmFkZENsYXNzKCAidWktdGFicy1hbmNob3IiICkNCgkJCS5hdHRyKHsNCgkJCQlyb2xlOiAicHJlc2VudGF0aW9uIiwNCgkJCQl0YWJJbmRleDogLTENCgkJCX0pOw0KDQoJCXRoaXMucGFuZWxzID0gJCgpOw0KDQoJCXRoaXMuYW5jaG9ycy5lYWNoKGZ1bmN0aW9uKCBpLCBhbmNob3IgKSB7DQoJCQl2YXIgc2VsZWN0b3IsIHBhbmVsLCBwYW5lbElkLA0KCQkJCWFuY2hvcklkID0gJCggYW5jaG9yICkudW5pcXVlSWQoKS5hdHRyKCAiaWQiICksDQoJCQkJdGFiID0gJCggYW5jaG9yICkuY2xvc2VzdCggImxpIiApLA0KCQkJCW9yaWdpbmFsQXJpYUNvbnRyb2xzID0gdGFiLmF0dHIoICJhcmlhLWNvbnRyb2xzIiApOw0KDQoJCQkvLyBpbmxpbmUgdGFiDQoJCQlpZiAoIHRoYXQuX2lzTG9jYWwoIGFuY2hvciApICkgew0KCQkJCXNlbGVjdG9yID0gYW5jaG9yLmhhc2g7DQoJCQkJcGFuZWxJZCA9IHNlbGVjdG9yLnN1YnN0cmluZyggMSApOw0KCQkJCXBhbmVsID0gdGhhdC5lbGVtZW50LmZpbmQoIHRoYXQuX3Nhbml0aXplU2VsZWN0b3IoIHNlbGVjdG9yICkgKTsNCgkJCS8vIHJlbW90ZSB0YWINCgkJCX0gZWxzZSB7DQoJCQkJLy8gSWYgdGhlIHRhYiBkb2Vzbid0IGFscmVhZHkgaGF2ZSBhcmlhLWNvbnRyb2xzLA0KCQkJCS8vIGdlbmVyYXRlIGFuIGlkIGJ5IHVzaW5nIGEgdGhyb3ctYXdheSBlbGVtZW50DQoJCQkJcGFuZWxJZCA9IHRhYi5hdHRyKCAiYXJpYS1jb250cm9scyIgKSB8fCAkKCB7fSApLnVuaXF1ZUlkKClbIDAgXS5pZDsNCgkJCQlzZWxlY3RvciA9ICIjIiArIHBhbmVsSWQ7DQoJCQkJcGFuZWwgPSB0aGF0LmVsZW1lbnQuZmluZCggc2VsZWN0b3IgKTsNCgkJCQlpZiAoICFwYW5lbC5sZW5ndGggKSB7DQoJCQkJCXBhbmVsID0gdGhhdC5fY3JlYXRlUGFuZWwoIHBhbmVsSWQgKTsNCgkJCQkJcGFuZWwuaW5zZXJ0QWZ0ZXIoIHRoYXQucGFuZWxzWyBpIC0gMSBdIHx8IHRoYXQudGFibGlzdCApOw0KCQkJCX0NCgkJCQlwYW5lbC5hdHRyKCAiYXJpYS1saXZlIiwgInBvbGl0ZSIgKTsNCgkJCX0NCg0KCQkJaWYgKCBwYW5lbC5sZW5ndGgpIHsNCgkJCQl0aGF0LnBhbmVscyA9IHRoYXQucGFuZWxzLmFkZCggcGFuZWwgKTsNCgkJCX0NCgkJCWlmICggb3JpZ2luYWxBcmlhQ29udHJvbHMgKSB7DQoJCQkJdGFiLmRhdGEoICJ1aS10YWJzLWFyaWEtY29udHJvbHMiLCBvcmlnaW5hbEFyaWFDb250cm9scyApOw0KCQkJfQ0KCQkJdGFiLmF0dHIoew0KCQkJCSJhcmlhLWNvbnRyb2xzIjogcGFuZWxJZCwNCgkJCQkiYXJpYS1sYWJlbGxlZGJ5IjogYW5jaG9ySWQNCgkJCX0pOw0KCQkJcGFuZWwuYXR0ciggImFyaWEtbGFiZWxsZWRieSIsIGFuY2hvcklkICk7DQoJCX0pOw0KDQoJCXRoaXMucGFuZWxzDQoJCQkuYWRkQ2xhc3MoICJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iICkNCgkJCS5hdHRyKCAicm9sZSIsICJ0YWJwYW5lbCIgKTsNCg0KCQkvLyBBdm9pZCBtZW1vcnkgbGVha3MgKCMxMDA1NikNCgkJaWYgKCBwcmV2VGFicyApIHsNCgkJCXRoaXMuX29mZiggcHJldlRhYnMubm90KCB0aGlzLnRhYnMgKSApOw0KCQkJdGhpcy5fb2ZmKCBwcmV2QW5jaG9ycy5ub3QoIHRoaXMuYW5jaG9ycyApICk7DQoJCQl0aGlzLl9vZmYoIHByZXZQYW5lbHMubm90KCB0aGlzLnBhbmVscyApICk7DQoJCX0NCgl9LA0KDQoJLy8gYWxsb3cgb3ZlcnJpZGluZyBob3cgdG8gZmluZCB0aGUgbGlzdCBmb3IgcmFyZSB1c2FnZSBzY2VuYXJpb3MgKCM3NzE1KQ0KCV9nZXRMaXN0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMudGFibGlzdCB8fCB0aGlzLmVsZW1lbnQuZmluZCggIm9sLHVsIiApLmVxKCAwICk7DQoJfSwNCg0KCV9jcmVhdGVQYW5lbDogZnVuY3Rpb24oIGlkICkgew0KCQlyZXR1cm4gJCggIjxkaXY+IiApDQoJCQkuYXR0ciggImlkIiwgaWQgKQ0KCQkJLmFkZENsYXNzKCAidWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIiApDQoJCQkuZGF0YSggInVpLXRhYnMtZGVzdHJveSIsIHRydWUgKTsNCgl9LA0KDQoJX3NldHVwRGlzYWJsZWQ6IGZ1bmN0aW9uKCBkaXNhYmxlZCApIHsNCgkJaWYgKCAkLmlzQXJyYXkoIGRpc2FibGVkICkgKSB7DQoJCQlpZiAoICFkaXNhYmxlZC5sZW5ndGggKSB7DQoJCQkJZGlzYWJsZWQgPSBmYWxzZTsNCgkJCX0gZWxzZSBpZiAoIGRpc2FibGVkLmxlbmd0aCA9PT0gdGhpcy5hbmNob3JzLmxlbmd0aCApIHsNCgkJCQlkaXNhYmxlZCA9IHRydWU7DQoJCQl9DQoJCX0NCg0KCQkvLyBkaXNhYmxlIHRhYnMNCgkJZm9yICggdmFyIGkgPSAwLCBsaTsgKCBsaSA9IHRoaXMudGFic1sgaSBdICk7IGkrKyApIHsNCgkJCWlmICggZGlzYWJsZWQgPT09IHRydWUgfHwgJC5pbkFycmF5KCBpLCBkaXNhYmxlZCApICE9PSAtMSApIHsNCgkJCQkkKCBsaSApDQoJCQkJCS5hZGRDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiApDQoJCQkJCS5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsICJ0cnVlIiApOw0KCQkJfSBlbHNlIHsNCgkJCQkkKCBsaSApDQoJCQkJCS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiApDQoJCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1kaXNhYmxlZCIgKTsNCgkJCX0NCgkJfQ0KDQoJCXRoaXMub3B0aW9ucy5kaXNhYmxlZCA9IGRpc2FibGVkOw0KCX0sDQoNCglfc2V0dXBFdmVudHM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGV2ZW50cyA9IHt9Ow0KCQlpZiAoIGV2ZW50ICkgew0KCQkJJC5lYWNoKCBldmVudC5zcGxpdCgiICIpLCBmdW5jdGlvbiggaW5kZXgsIGV2ZW50TmFtZSApIHsNCgkJCQlldmVudHNbIGV2ZW50TmFtZSBdID0gIl9ldmVudEhhbmRsZXIiOw0KCQkJfSk7DQoJCX0NCg0KCQl0aGlzLl9vZmYoIHRoaXMuYW5jaG9ycy5hZGQoIHRoaXMudGFicyApLmFkZCggdGhpcy5wYW5lbHMgKSApOw0KCQkvLyBBbHdheXMgcHJldmVudCB0aGUgZGVmYXVsdCBhY3Rpb24sIGV2ZW4gd2hlbiBkaXNhYmxlZA0KCQl0aGlzLl9vbiggdHJ1ZSwgdGhpcy5hbmNob3JzLCB7DQoJCQljbGljazogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQl9DQoJCX0pOw0KCQl0aGlzLl9vbiggdGhpcy5hbmNob3JzLCBldmVudHMgKTsNCgkJdGhpcy5fb24oIHRoaXMudGFicywgeyBrZXlkb3duOiAiX3RhYktleWRvd24iIH0gKTsNCgkJdGhpcy5fb24oIHRoaXMucGFuZWxzLCB7IGtleWRvd246ICJfcGFuZWxLZXlkb3duIiB9ICk7DQoNCgkJdGhpcy5fZm9jdXNhYmxlKCB0aGlzLnRhYnMgKTsNCgkJdGhpcy5faG92ZXJhYmxlKCB0aGlzLnRhYnMgKTsNCgl9LA0KDQoJX3NldHVwSGVpZ2h0U3R5bGU6IGZ1bmN0aW9uKCBoZWlnaHRTdHlsZSApIHsNCgkJdmFyIG1heEhlaWdodCwNCgkJCXBhcmVudCA9IHRoaXMuZWxlbWVudC5wYXJlbnQoKTsNCg0KCQlpZiAoIGhlaWdodFN0eWxlID09PSAiZmlsbCIgKSB7DQoJCQltYXhIZWlnaHQgPSBwYXJlbnQuaGVpZ2h0KCk7DQoJCQltYXhIZWlnaHQgLT0gdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCkgLSB0aGlzLmVsZW1lbnQuaGVpZ2h0KCk7DQoNCgkJCXRoaXMuZWxlbWVudC5zaWJsaW5ncyggIjp2aXNpYmxlIiApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCQkJCXBvc2l0aW9uID0gZWxlbS5jc3MoICJwb3NpdGlvbiIgKTsNCg0KCQkJCWlmICggcG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgfHwgcG9zaXRpb24gPT09ICJmaXhlZCIgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQkJbWF4SGVpZ2h0IC09IGVsZW0ub3V0ZXJIZWlnaHQoIHRydWUgKTsNCgkJCX0pOw0KDQoJCQl0aGlzLmVsZW1lbnQuY2hpbGRyZW4oKS5ub3QoIHRoaXMucGFuZWxzICkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQltYXhIZWlnaHQgLT0gJCggdGhpcyApLm91dGVySGVpZ2h0KCB0cnVlICk7DQoJCQl9KTsNCg0KCQkJdGhpcy5wYW5lbHMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQkkKCB0aGlzICkuaGVpZ2h0KCBNYXRoLm1heCggMCwgbWF4SGVpZ2h0IC0NCgkJCQkJJCggdGhpcyApLmlubmVySGVpZ2h0KCkgKyAkKCB0aGlzICkuaGVpZ2h0KCkgKSApOw0KCQkJfSkNCgkJCS5jc3MoICJvdmVyZmxvdyIsICJhdXRvIiApOw0KCQl9IGVsc2UgaWYgKCBoZWlnaHRTdHlsZSA9PT0gImF1dG8iICkgew0KCQkJbWF4SGVpZ2h0ID0gMDsNCgkJCXRoaXMucGFuZWxzLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJbWF4SGVpZ2h0ID0gTWF0aC5tYXgoIG1heEhlaWdodCwgJCggdGhpcyApLmhlaWdodCggIiIgKS5oZWlnaHQoKSApOw0KCQkJfSkuaGVpZ2h0KCBtYXhIZWlnaHQgKTsNCgkJfQ0KCX0sDQoNCglfZXZlbnRIYW5kbGVyOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJYWN0aXZlID0gdGhpcy5hY3RpdmUsDQoJCQlhbmNob3IgPSAkKCBldmVudC5jdXJyZW50VGFyZ2V0ICksDQoJCQl0YWIgPSBhbmNob3IuY2xvc2VzdCggImxpIiApLA0KCQkJY2xpY2tlZElzQWN0aXZlID0gdGFiWyAwIF0gPT09IGFjdGl2ZVsgMCBdLA0KCQkJY29sbGFwc2luZyA9IGNsaWNrZWRJc0FjdGl2ZSAmJiBvcHRpb25zLmNvbGxhcHNpYmxlLA0KCQkJdG9TaG93ID0gY29sbGFwc2luZyA/ICQoKSA6IHRoaXMuX2dldFBhbmVsRm9yVGFiKCB0YWIgKSwNCgkJCXRvSGlkZSA9ICFhY3RpdmUubGVuZ3RoID8gJCgpIDogdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIGFjdGl2ZSApLA0KCQkJZXZlbnREYXRhID0gew0KCQkJCW9sZFRhYjogYWN0aXZlLA0KCQkJCW9sZFBhbmVsOiB0b0hpZGUsDQoJCQkJbmV3VGFiOiBjb2xsYXBzaW5nID8gJCgpIDogdGFiLA0KCQkJCW5ld1BhbmVsOiB0b1Nob3cNCgkJCX07DQoNCgkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCg0KCQlpZiAoIHRhYi5oYXNDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiApIHx8DQoJCQkJLy8gdGFiIGlzIGFscmVhZHkgbG9hZGluZw0KCQkJCXRhYi5oYXNDbGFzcyggInVpLXRhYnMtbG9hZGluZyIgKSB8fA0KCQkJCS8vIGNhbid0IHN3aXRjaCBkdXJuaW5nIGFuIGFuaW1hdGlvbg0KCQkJCXRoaXMucnVubmluZyB8fA0KCQkJCS8vIGNsaWNrIG9uIGFjdGl2ZSBoZWFkZXIsIGJ1dCBub3QgY29sbGFwc2libGUNCgkJCQkoIGNsaWNrZWRJc0FjdGl2ZSAmJiAhb3B0aW9ucy5jb2xsYXBzaWJsZSApIHx8DQoJCQkJLy8gYWxsb3cgY2FuY2VsaW5nIGFjdGl2YXRpb24NCgkJCQkoIHRoaXMuX3RyaWdnZXIoICJiZWZvcmVBY3RpdmF0ZSIsIGV2ZW50LCBldmVudERhdGEgKSA9PT0gZmFsc2UgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCW9wdGlvbnMuYWN0aXZlID0gY29sbGFwc2luZyA/IGZhbHNlIDogdGhpcy50YWJzLmluZGV4KCB0YWIgKTsNCg0KCQl0aGlzLmFjdGl2ZSA9IGNsaWNrZWRJc0FjdGl2ZSA/ICQoKSA6IHRhYjsNCgkJaWYgKCB0aGlzLnhociApIHsNCgkJCXRoaXMueGhyLmFib3J0KCk7DQoJCX0NCg0KCQlpZiAoICF0b0hpZGUubGVuZ3RoICYmICF0b1Nob3cubGVuZ3RoICkgew0KCQkJJC5lcnJvciggImpRdWVyeSBVSSBUYWJzOiBNaXNtYXRjaGluZyBmcmFnbWVudCBpZGVudGlmaWVyLiIgKTsNCgkJfQ0KDQoJCWlmICggdG9TaG93Lmxlbmd0aCApIHsNCgkJCXRoaXMubG9hZCggdGhpcy50YWJzLmluZGV4KCB0YWIgKSwgZXZlbnQgKTsNCgkJfQ0KCQl0aGlzLl90b2dnbGUoIGV2ZW50LCBldmVudERhdGEgKTsNCgl9LA0KDQoJLy8gaGFuZGxlcyBzaG93L2hpZGUgZm9yIHNlbGVjdGluZyB0YWJzDQoJX3RvZ2dsZTogZnVuY3Rpb24oIGV2ZW50LCBldmVudERhdGEgKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCXRvU2hvdyA9IGV2ZW50RGF0YS5uZXdQYW5lbCwNCgkJCXRvSGlkZSA9IGV2ZW50RGF0YS5vbGRQYW5lbDsNCg0KCQl0aGlzLnJ1bm5pbmcgPSB0cnVlOw0KDQoJCWZ1bmN0aW9uIGNvbXBsZXRlKCkgew0KCQkJdGhhdC5ydW5uaW5nID0gZmFsc2U7DQoJCQl0aGF0Ll90cmlnZ2VyKCAiYWN0aXZhdGUiLCBldmVudCwgZXZlbnREYXRhICk7DQoJCX0NCg0KCQlmdW5jdGlvbiBzaG93KCkgew0KCQkJZXZlbnREYXRhLm5ld1RhYi5jbG9zZXN0KCAibGkiICkuYWRkQ2xhc3MoICJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiICk7DQoNCgkJCWlmICggdG9TaG93Lmxlbmd0aCAmJiB0aGF0Lm9wdGlvbnMuc2hvdyApIHsNCgkJCQl0aGF0Ll9zaG93KCB0b1Nob3csIHRoYXQub3B0aW9ucy5zaG93LCBjb21wbGV0ZSApOw0KCQkJfSBlbHNlIHsNCgkJCQl0b1Nob3cuc2hvdygpOw0KCQkJCWNvbXBsZXRlKCk7DQoJCQl9DQoJCX0NCg0KCQkvLyBzdGFydCBvdXQgYnkgaGlkaW5nLCB0aGVuIHNob3dpbmcsIHRoZW4gY29tcGxldGluZw0KCQlpZiAoIHRvSGlkZS5sZW5ndGggJiYgdGhpcy5vcHRpb25zLmhpZGUgKSB7DQoJCQl0aGlzLl9oaWRlKCB0b0hpZGUsIHRoaXMub3B0aW9ucy5oaWRlLCBmdW5jdGlvbigpIHsNCgkJCQlldmVudERhdGEub2xkVGFiLmNsb3Nlc3QoICJsaSIgKS5yZW1vdmVDbGFzcyggInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQlzaG93KCk7DQoJCQl9KTsNCgkJfSBlbHNlIHsNCgkJCWV2ZW50RGF0YS5vbGRUYWIuY2xvc2VzdCggImxpIiApLnJlbW92ZUNsYXNzKCAidWktdGFicy1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIiApOw0KCQkJdG9IaWRlLmhpZGUoKTsNCgkJCXNob3coKTsNCgkJfQ0KDQoJCXRvSGlkZS5hdHRyKCAiYXJpYS1oaWRkZW4iLCAidHJ1ZSIgKTsNCgkJZXZlbnREYXRhLm9sZFRhYi5hdHRyKHsNCgkJCSJhcmlhLXNlbGVjdGVkIjogImZhbHNlIiwNCgkJCSJhcmlhLWV4cGFuZGVkIjogImZhbHNlIg0KCQl9KTsNCgkJLy8gSWYgd2UncmUgc3dpdGNoaW5nIHRhYnMsIHJlbW92ZSB0aGUgb2xkIHRhYiBmcm9tIHRoZSB0YWIgb3JkZXIuDQoJCS8vIElmIHdlJ3JlIG9wZW5pbmcgZnJvbSBjb2xsYXBzZWQgc3RhdGUsIHJlbW92ZSB0aGUgcHJldmlvdXMgdGFiIGZyb20gdGhlIHRhYiBvcmRlci4NCgkJLy8gSWYgd2UncmUgY29sbGFwc2luZywgdGhlbiBrZWVwIHRoZSBjb2xsYXBzaW5nIHRhYiBpbiB0aGUgdGFiIG9yZGVyLg0KCQlpZiAoIHRvU2hvdy5sZW5ndGggJiYgdG9IaWRlLmxlbmd0aCApIHsNCgkJCWV2ZW50RGF0YS5vbGRUYWIuYXR0ciggInRhYkluZGV4IiwgLTEgKTsNCgkJfSBlbHNlIGlmICggdG9TaG93Lmxlbmd0aCApIHsNCgkJCXRoaXMudGFicy5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuICQoIHRoaXMgKS5hdHRyKCAidGFiSW5kZXgiICkgPT09IDA7DQoJCQl9KQ0KCQkJLmF0dHIoICJ0YWJJbmRleCIsIC0xICk7DQoJCX0NCg0KCQl0b1Nob3cuYXR0ciggImFyaWEtaGlkZGVuIiwgImZhbHNlIiApOw0KCQlldmVudERhdGEubmV3VGFiLmF0dHIoew0KCQkJImFyaWEtc2VsZWN0ZWQiOiAidHJ1ZSIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJ0cnVlIiwNCgkJCXRhYkluZGV4OiAwDQoJCX0pOw0KCX0sDQoNCglfYWN0aXZhdGU6IGZ1bmN0aW9uKCBpbmRleCApIHsNCgkJdmFyIGFuY2hvciwNCgkJCWFjdGl2ZSA9IHRoaXMuX2ZpbmRBY3RpdmUoIGluZGV4ICk7DQoNCgkJLy8gdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBhbHJlYWR5IGFjdGl2ZSBwYW5lbA0KCQlpZiAoIGFjdGl2ZVsgMCBdID09PSB0aGlzLmFjdGl2ZVsgMCBdICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gdHJ5aW5nIHRvIGNvbGxhcHNlLCBzaW11bGF0ZSBhIGNsaWNrIG9uIHRoZSBjdXJyZW50IGFjdGl2ZSBoZWFkZXINCgkJaWYgKCAhYWN0aXZlLmxlbmd0aCApIHsNCgkJCWFjdGl2ZSA9IHRoaXMuYWN0aXZlOw0KCQl9DQoNCgkJYW5jaG9yID0gYWN0aXZlLmZpbmQoICIudWktdGFicy1hbmNob3IiIClbIDAgXTsNCgkJdGhpcy5fZXZlbnRIYW5kbGVyKHsNCgkJCXRhcmdldDogYW5jaG9yLA0KCQkJY3VycmVudFRhcmdldDogYW5jaG9yLA0KCQkJcHJldmVudERlZmF1bHQ6ICQubm9vcA0KCQl9KTsNCgl9LA0KDQoJX2ZpbmRBY3RpdmU6IGZ1bmN0aW9uKCBpbmRleCApIHsNCgkJcmV0dXJuIGluZGV4ID09PSBmYWxzZSA/ICQoKSA6IHRoaXMudGFicy5lcSggaW5kZXggKTsNCgl9LA0KDQoJX2dldEluZGV4OiBmdW5jdGlvbiggaW5kZXggKSB7DQoJCS8vIG1ldGEtZnVuY3Rpb24gdG8gZ2l2ZSB1c2VycyBvcHRpb24gdG8gcHJvdmlkZSBhIGhyZWYgc3RyaW5nIGluc3RlYWQgb2YgYSBudW1lcmljYWwgaW5kZXguDQoJCWlmICggdHlwZW9mIGluZGV4ID09PSAic3RyaW5nIiApIHsNCgkJCWluZGV4ID0gdGhpcy5hbmNob3JzLmluZGV4KCB0aGlzLmFuY2hvcnMuZmlsdGVyKCAiW2hyZWYkPSciICsgaW5kZXggKyAiJ10iICkgKTsNCgkJfQ0KDQoJCXJldHVybiBpbmRleDsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMueGhyICkgew0KCQkJdGhpcy54aHIuYWJvcnQoKTsNCgkJfQ0KDQoJCXRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyggInVpLXRhYnMgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktdGFicy1jb2xsYXBzaWJsZSIgKTsNCg0KCQl0aGlzLnRhYmxpc3QNCgkJCS5yZW1vdmVDbGFzcyggInVpLXRhYnMtbmF2IHVpLWhlbHBlci1yZXNldCB1aS1oZWxwZXItY2xlYXJmaXggdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiApDQoJCQkucmVtb3ZlQXR0ciggInJvbGUiICk7DQoNCgkJdGhpcy5hbmNob3JzDQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS10YWJzLWFuY2hvciIgKQ0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApDQoJCQkucmVtb3ZlQXR0ciggInRhYkluZGV4IiApDQoJCQkucmVtb3ZlVW5pcXVlSWQoKTsNCg0KCQl0aGlzLnRhYmxpc3QudW5iaW5kKCB0aGlzLmV2ZW50TmFtZXNwYWNlICk7DQoNCgkJdGhpcy50YWJzLmFkZCggdGhpcy5wYW5lbHMgKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJaWYgKCAkLmRhdGEoIHRoaXMsICJ1aS10YWJzLWRlc3Ryb3kiICkgKSB7DQoJCQkJJCggdGhpcyApLnJlbW92ZSgpOw0KCQkJfSBlbHNlIHsNCgkJCQkkKCB0aGlzICkNCgkJCQkJLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtZGVmYXVsdCB1aS1zdGF0ZS1hY3RpdmUgdWktc3RhdGUtZGlzYWJsZWQgIiArDQoJCQkJCQkidWktY29ybmVyLXRvcCB1aS1jb3JuZXItYm90dG9tIHVpLXdpZGdldC1jb250ZW50IHVpLXRhYnMtYWN0aXZlIHVpLXRhYnMtcGFuZWwiICkNCgkJCQkJLnJlbW92ZUF0dHIoICJ0YWJJbmRleCIgKQ0KCQkJCQkucmVtb3ZlQXR0ciggImFyaWEtbGl2ZSIgKQ0KCQkJCQkucmVtb3ZlQXR0ciggImFyaWEtYnVzeSIgKQ0KCQkJCQkucmVtb3ZlQXR0ciggImFyaWEtc2VsZWN0ZWQiICkNCgkJCQkJLnJlbW92ZUF0dHIoICJhcmlhLWxhYmVsbGVkYnkiICkNCgkJCQkJLnJlbW92ZUF0dHIoICJhcmlhLWhpZGRlbiIgKQ0KCQkJCQkucmVtb3ZlQXR0ciggImFyaWEtZXhwYW5kZWQiICkNCgkJCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApOw0KCQkJfQ0KCQl9KTsNCg0KCQl0aGlzLnRhYnMuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciBsaSA9ICQoIHRoaXMgKSwNCgkJCQlwcmV2ID0gbGkuZGF0YSggInVpLXRhYnMtYXJpYS1jb250cm9scyIgKTsNCgkJCWlmICggcHJldiApIHsNCgkJCQlsaQ0KCQkJCQkuYXR0ciggImFyaWEtY29udHJvbHMiLCBwcmV2ICkNCgkJCQkJLnJlbW92ZURhdGEoICJ1aS10YWJzLWFyaWEtY29udHJvbHMiICk7DQoJCQl9IGVsc2Ugew0KCQkJCWxpLnJlbW92ZUF0dHIoICJhcmlhLWNvbnRyb2xzIiApOw0KCQkJfQ0KCQl9KTsNCg0KCQl0aGlzLnBhbmVscy5zaG93KCk7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuaGVpZ2h0U3R5bGUgIT09ICJjb250ZW50IiApIHsNCgkJCXRoaXMucGFuZWxzLmNzcyggImhlaWdodCIsICIiICk7DQoJCX0NCgl9LA0KDQoJZW5hYmxlOiBmdW5jdGlvbiggaW5kZXggKSB7DQoJCXZhciBkaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5kaXNhYmxlZDsNCgkJaWYgKCBkaXNhYmxlZCA9PT0gZmFsc2UgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGluZGV4ID09PSB1bmRlZmluZWQgKSB7DQoJCQlkaXNhYmxlZCA9IGZhbHNlOw0KCQl9IGVsc2Ugew0KCQkJaW5kZXggPSB0aGlzLl9nZXRJbmRleCggaW5kZXggKTsNCgkJCWlmICggJC5pc0FycmF5KCBkaXNhYmxlZCApICkgew0KCQkJCWRpc2FibGVkID0gJC5tYXAoIGRpc2FibGVkLCBmdW5jdGlvbiggbnVtICkgew0KCQkJCQlyZXR1cm4gbnVtICE9PSBpbmRleCA/IG51bSA6IG51bGw7DQoJCQkJfSk7DQoJCQl9IGVsc2Ugew0KCQkJCWRpc2FibGVkID0gJC5tYXAoIHRoaXMudGFicywgZnVuY3Rpb24oIGxpLCBudW0gKSB7DQoJCQkJCXJldHVybiBudW0gIT09IGluZGV4ID8gbnVtIDogbnVsbDsNCgkJCQl9KTsNCgkJCX0NCgkJfQ0KCQl0aGlzLl9zZXR1cERpc2FibGVkKCBkaXNhYmxlZCApOw0KCX0sDQoNCglkaXNhYmxlOiBmdW5jdGlvbiggaW5kZXggKSB7DQoJCXZhciBkaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5kaXNhYmxlZDsNCgkJaWYgKCBkaXNhYmxlZCA9PT0gdHJ1ZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggaW5kZXggPT09IHVuZGVmaW5lZCApIHsNCgkJCWRpc2FibGVkID0gdHJ1ZTsNCgkJfSBlbHNlIHsNCgkJCWluZGV4ID0gdGhpcy5fZ2V0SW5kZXgoIGluZGV4ICk7DQoJCQlpZiAoICQuaW5BcnJheSggaW5kZXgsIGRpc2FibGVkICkgIT09IC0xICkgew0KCQkJCXJldHVybjsNCgkJCX0NCgkJCWlmICggJC5pc0FycmF5KCBkaXNhYmxlZCApICkgew0KCQkJCWRpc2FibGVkID0gJC5tZXJnZSggWyBpbmRleCBdLCBkaXNhYmxlZCApLnNvcnQoKTsNCgkJCX0gZWxzZSB7DQoJCQkJZGlzYWJsZWQgPSBbIGluZGV4IF07DQoJCQl9DQoJCX0NCgkJdGhpcy5fc2V0dXBEaXNhYmxlZCggZGlzYWJsZWQgKTsNCgl9LA0KDQoJbG9hZDogZnVuY3Rpb24oIGluZGV4LCBldmVudCApIHsNCgkJaW5kZXggPSB0aGlzLl9nZXRJbmRleCggaW5kZXggKTsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJdGFiID0gdGhpcy50YWJzLmVxKCBpbmRleCApLA0KCQkJYW5jaG9yID0gdGFiLmZpbmQoICIudWktdGFicy1hbmNob3IiICksDQoJCQlwYW5lbCA9IHRoaXMuX2dldFBhbmVsRm9yVGFiKCB0YWIgKSwNCgkJCWV2ZW50RGF0YSA9IHsNCgkJCQl0YWI6IHRhYiwNCgkJCQlwYW5lbDogcGFuZWwNCgkJCX07DQoNCgkJLy8gbm90IHJlbW90ZQ0KCQlpZiAoIHRoaXMuX2lzTG9jYWwoIGFuY2hvclsgMCBdICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLnhociA9ICQuYWpheCggdGhpcy5fYWpheFNldHRpbmdzKCBhbmNob3IsIGV2ZW50LCBldmVudERhdGEgKSApOw0KDQoJCS8vIHN1cHBvcnQ6IGpRdWVyeSA8MS44DQoJCS8vIGpRdWVyeSA8MS44IHJldHVybnMgZmFsc2UgaWYgdGhlIHJlcXVlc3QgaXMgY2FuY2VsZWQgaW4gYmVmb3JlU2VuZCwNCgkJLy8gYnV0IGFzIG9mIDEuOCwgJC5hamF4KCkgYWx3YXlzIHJldHVybnMgYSBqcVhIUiBvYmplY3QuDQoJCWlmICggdGhpcy54aHIgJiYgdGhpcy54aHIuc3RhdHVzVGV4dCAhPT0gImNhbmNlbGVkIiApIHsNCgkJCXRhYi5hZGRDbGFzcyggInVpLXRhYnMtbG9hZGluZyIgKTsNCgkJCXBhbmVsLmF0dHIoICJhcmlhLWJ1c3kiLCAidHJ1ZSIgKTsNCg0KCQkJdGhpcy54aHINCgkJCQkuc3VjY2VzcyhmdW5jdGlvbiggcmVzcG9uc2UgKSB7DQoJCQkJCS8vIHN1cHBvcnQ6IGpRdWVyeSA8MS44DQoJCQkJCS8vIGh0dHA6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzExNzc4DQoJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoJCQkJCQlwYW5lbC5odG1sKCByZXNwb25zZSApOw0KCQkJCQkJdGhhdC5fdHJpZ2dlciggImxvYWQiLCBldmVudCwgZXZlbnREYXRhICk7DQoJCQkJCX0sIDEgKTsNCgkJCQl9KQ0KCQkJCS5jb21wbGV0ZShmdW5jdGlvbigganFYSFIsIHN0YXR1cyApIHsNCgkJCQkJLy8gc3VwcG9ydDogalF1ZXJ5IDwxLjgNCgkJCQkJLy8gaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTE3NzgNCgkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCQkJCWlmICggc3RhdHVzID09PSAiYWJvcnQiICkgew0KCQkJCQkJCXRoYXQucGFuZWxzLnN0b3AoIGZhbHNlLCB0cnVlICk7DQoJCQkJCQl9DQoNCgkJCQkJCXRhYi5yZW1vdmVDbGFzcyggInVpLXRhYnMtbG9hZGluZyIgKTsNCgkJCQkJCXBhbmVsLnJlbW92ZUF0dHIoICJhcmlhLWJ1c3kiICk7DQoNCgkJCQkJCWlmICgganFYSFIgPT09IHRoYXQueGhyICkgew0KCQkJCQkJCWRlbGV0ZSB0aGF0LnhocjsNCgkJCQkJCX0NCgkJCQkJfSwgMSApOw0KCQkJCX0pOw0KCQl9DQoJfSwNCg0KCV9hamF4U2V0dGluZ3M6IGZ1bmN0aW9uKCBhbmNob3IsIGV2ZW50LCBldmVudERhdGEgKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCgkJcmV0dXJuIHsNCgkJCXVybDogYW5jaG9yLmF0dHIoICJocmVmIiApLA0KCQkJYmVmb3JlU2VuZDogZnVuY3Rpb24oIGpxWEhSLCBzZXR0aW5ncyApIHsNCgkJCQlyZXR1cm4gdGhhdC5fdHJpZ2dlciggImJlZm9yZUxvYWQiLCBldmVudCwNCgkJCQkJJC5leHRlbmQoIHsganFYSFI6IGpxWEhSLCBhamF4U2V0dGluZ3M6IHNldHRpbmdzIH0sIGV2ZW50RGF0YSApICk7DQoJCQl9DQoJCX07DQoJfSwNCg0KCV9nZXRQYW5lbEZvclRhYjogZnVuY3Rpb24oIHRhYiApIHsNCgkJdmFyIGlkID0gJCggdGFiICkuYXR0ciggImFyaWEtY29udHJvbHMiICk7DQoJCXJldHVybiB0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5fc2FuaXRpemVTZWxlY3RvciggIiMiICsgaWQgKSApOw0KCX0NCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFRvb2x0aXAgMS4xMS4yDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3Rvb2x0aXAvDQogKi8NCg0KDQp2YXIgdG9vbHRpcCA9ICQud2lkZ2V0KCAidWkudG9vbHRpcCIsIHsNCgl2ZXJzaW9uOiAiMS4xMS4yIiwNCglvcHRpb25zOiB7DQoJCWNvbnRlbnQ6IGZ1bmN0aW9uKCkgew0KCQkJLy8gc3VwcG9ydDogSUU8OSwgT3BlcmEgaW4galF1ZXJ5IDwxLjcNCgkJCS8vIC50ZXh0KCkgY2FuJ3QgYWNjZXB0IHVuZGVmaW5lZCwgc28gY29lcmNlIHRvIGEgc3RyaW5nDQoJCQl2YXIgdGl0bGUgPSAkKCB0aGlzICkuYXR0ciggInRpdGxlIiApIHx8ICIiOw0KCQkJLy8gRXNjYXBlIHRpdGxlLCBzaW5jZSB3ZSdyZSBnb2luZyBmcm9tIGFuIGF0dHJpYnV0ZSB0byByYXcgSFRNTA0KCQkJcmV0dXJuICQoICI8YT4iICkudGV4dCggdGl0bGUgKS5odG1sKCk7DQoJCX0sDQoJCWhpZGU6IHRydWUsDQoJCS8vIERpc2FibGVkIGVsZW1lbnRzIGhhdmUgaW5jb25zaXN0ZW50IGJlaGF2aW9yIGFjcm9zcyBicm93c2VycyAoIzg2NjEpDQoJCWl0ZW1zOiAiW3RpdGxlXTpub3QoW2Rpc2FibGVkXSkiLA0KCQlwb3NpdGlvbjogew0KCQkJbXk6ICJsZWZ0IHRvcCsxNSIsDQoJCQlhdDogImxlZnQgYm90dG9tIiwNCgkJCWNvbGxpc2lvbjogImZsaXBmaXQgZmxpcCINCgkJfSwNCgkJc2hvdzogdHJ1ZSwNCgkJdG9vbHRpcENsYXNzOiBudWxsLA0KCQl0cmFjazogZmFsc2UsDQoNCgkJLy8gY2FsbGJhY2tzDQoJCWNsb3NlOiBudWxsLA0KCQlvcGVuOiBudWxsDQoJfSwNCg0KCV9hZGREZXNjcmliZWRCeTogZnVuY3Rpb24oIGVsZW0sIGlkICkgew0KCQl2YXIgZGVzY3JpYmVkYnkgPSAoZWxlbS5hdHRyKCAiYXJpYS1kZXNjcmliZWRieSIgKSB8fCAiIikuc3BsaXQoIC9ccysvICk7DQoJCWRlc2NyaWJlZGJ5LnB1c2goIGlkICk7DQoJCWVsZW0NCgkJCS5kYXRhKCAidWktdG9vbHRpcC1pZCIsIGlkICkNCgkJCS5hdHRyKCAiYXJpYS1kZXNjcmliZWRieSIsICQudHJpbSggZGVzY3JpYmVkYnkuam9pbiggIiAiICkgKSApOw0KCX0sDQoNCglfcmVtb3ZlRGVzY3JpYmVkQnk6IGZ1bmN0aW9uKCBlbGVtICkgew0KCQl2YXIgaWQgPSBlbGVtLmRhdGEoICJ1aS10b29sdGlwLWlkIiApLA0KCQkJZGVzY3JpYmVkYnkgPSAoZWxlbS5hdHRyKCAiYXJpYS1kZXNjcmliZWRieSIgKSB8fCAiIikuc3BsaXQoIC9ccysvICksDQoJCQlpbmRleCA9ICQuaW5BcnJheSggaWQsIGRlc2NyaWJlZGJ5ICk7DQoNCgkJaWYgKCBpbmRleCAhPT0gLTEgKSB7DQoJCQlkZXNjcmliZWRieS5zcGxpY2UoIGluZGV4LCAxICk7DQoJCX0NCg0KCQllbGVtLnJlbW92ZURhdGEoICJ1aS10b29sdGlwLWlkIiApOw0KCQlkZXNjcmliZWRieSA9ICQudHJpbSggZGVzY3JpYmVkYnkuam9pbiggIiAiICkgKTsNCgkJaWYgKCBkZXNjcmliZWRieSApIHsNCgkJCWVsZW0uYXR0ciggImFyaWEtZGVzY3JpYmVkYnkiLCBkZXNjcmliZWRieSApOw0KCQl9IGVsc2Ugew0KCQkJZWxlbS5yZW1vdmVBdHRyKCAiYXJpYS1kZXNjcmliZWRieSIgKTsNCgkJfQ0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fb24oew0KCQkJbW91c2VvdmVyOiAib3BlbiIsDQoJCQlmb2N1c2luOiAib3BlbiINCgkJfSk7DQoNCgkJLy8gSURzIG9mIGdlbmVyYXRlZCB0b29sdGlwcywgbmVlZGVkIGZvciBkZXN0cm95DQoJCXRoaXMudG9vbHRpcHMgPSB7fTsNCg0KCQkvLyBJRHMgb2YgcGFyZW50IHRvb2x0aXBzIHdoZXJlIHdlIHJlbW92ZWQgdGhlIHRpdGxlIGF0dHJpYnV0ZQ0KCQl0aGlzLnBhcmVudHMgPSB7fTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCXRoaXMuX2Rpc2FibGUoKTsNCgkJfQ0KDQoJCS8vIEFwcGVuZCB0aGUgYXJpYS1saXZlIHJlZ2lvbiBzbyB0b29sdGlwcyBhbm5vdW5jZSBjb3JyZWN0bHkNCgkJdGhpcy5saXZlUmVnaW9uID0gJCggIjxkaXY+IiApDQoJCQkuYXR0cih7DQoJCQkJcm9sZTogImxvZyIsDQoJCQkJImFyaWEtbGl2ZSI6ICJhc3NlcnRpdmUiLA0KCQkJCSJhcmlhLXJlbGV2YW50IjogImFkZGl0aW9ucyINCgkJCX0pDQoJCQkuYWRkQ2xhc3MoICJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiICkNCgkJCS5hcHBlbmRUbyggdGhpcy5kb2N1bWVudFsgMCBdLmJvZHkgKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCg0KCQlpZiAoIGtleSA9PT0gImRpc2FibGVkIiApIHsNCgkJCXRoaXNbIHZhbHVlID8gIl9kaXNhYmxlIiA6ICJfZW5hYmxlIiBdKCk7DQoJCQl0aGlzLm9wdGlvbnNbIGtleSBdID0gdmFsdWU7DQoJCQkvLyBkaXNhYmxlIGVsZW1lbnQgc3R5bGUgY2hhbmdlcw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCg0KCQlpZiAoIGtleSA9PT0gImNvbnRlbnQiICkgew0KCQkJJC5lYWNoKCB0aGlzLnRvb2x0aXBzLCBmdW5jdGlvbiggaWQsIHRvb2x0aXBEYXRhICkgew0KCQkJCXRoYXQuX3VwZGF0ZUNvbnRlbnQoIHRvb2x0aXBEYXRhLmVsZW1lbnQgKTsNCgkJCX0pOw0KCQl9DQoJfSwNCg0KCV9kaXNhYmxlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCS8vIGNsb3NlIG9wZW4gdG9vbHRpcHMNCgkJJC5lYWNoKCB0aGlzLnRvb2x0aXBzLCBmdW5jdGlvbiggaWQsIHRvb2x0aXBEYXRhICkgew0KCQkJdmFyIGV2ZW50ID0gJC5FdmVudCggImJsdXIiICk7DQoJCQlldmVudC50YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0ID0gdG9vbHRpcERhdGEuZWxlbWVudFsgMCBdOw0KCQkJdGhhdC5jbG9zZSggZXZlbnQsIHRydWUgKTsNCgkJfSk7DQoNCgkJLy8gcmVtb3ZlIHRpdGxlIGF0dHJpYnV0ZXMgdG8gcHJldmVudCBuYXRpdmUgdG9vbHRpcHMNCgkJdGhpcy5lbGVtZW50LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIGVsZW1lbnQgPSAkKCB0aGlzICk7DQoJCQlpZiAoIGVsZW1lbnQuaXMoICJbdGl0bGVdIiApICkgew0KCQkJCWVsZW1lbnQNCgkJCQkJLmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiwgZWxlbWVudC5hdHRyKCAidGl0bGUiICkgKQ0KCQkJCQkucmVtb3ZlQXR0ciggInRpdGxlIiApOw0KCQkJfQ0KCQl9KTsNCgl9LA0KDQoJX2VuYWJsZTogZnVuY3Rpb24oKSB7DQoJCS8vIHJlc3RvcmUgdGl0bGUgYXR0cmlidXRlcw0KCQl0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5vcHRpb25zLml0ZW1zICkuYWRkQmFjaygpLmVhY2goZnVuY3Rpb24oKSB7DQoJCQl2YXIgZWxlbWVudCA9ICQoIHRoaXMgKTsNCgkJCWlmICggZWxlbWVudC5kYXRhKCAidWktdG9vbHRpcC10aXRsZSIgKSApIHsNCgkJCQllbGVtZW50LmF0dHIoICJ0aXRsZSIsIGVsZW1lbnQuZGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICkgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCW9wZW46IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJdGFyZ2V0ID0gJCggZXZlbnQgPyBldmVudC50YXJnZXQgOiB0aGlzLmVsZW1lbnQgKQ0KCQkJCS8vIHdlIG5lZWQgY2xvc2VzdCBoZXJlIGR1ZSB0byBtb3VzZW92ZXIgYnViYmxpbmcsDQoJCQkJLy8gYnV0IGFsd2F5cyBwb2ludGluZyBhdCB0aGUgc2FtZSBldmVudCB0YXJnZXQNCgkJCQkuY2xvc2VzdCggdGhpcy5vcHRpb25zLml0ZW1zICk7DQoNCgkJLy8gTm8gZWxlbWVudCB0byBzaG93IGEgdG9vbHRpcCBmb3Igb3IgdGhlIHRvb2x0aXAgaXMgYWxyZWFkeSBvcGVuDQoJCWlmICggIXRhcmdldC5sZW5ndGggfHwgdGFyZ2V0LmRhdGEoICJ1aS10b29sdGlwLWlkIiApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCB0YXJnZXQuYXR0ciggInRpdGxlIiApICkgew0KCQkJdGFyZ2V0LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiwgdGFyZ2V0LmF0dHIoICJ0aXRsZSIgKSApOw0KCQl9DQoNCgkJdGFyZ2V0LmRhdGEoICJ1aS10b29sdGlwLW9wZW4iLCB0cnVlICk7DQoNCgkJLy8ga2lsbCBwYXJlbnQgdG9vbHRpcHMsIGN1c3RvbSBvciBuYXRpdmUsIGZvciBob3Zlcg0KCQlpZiAoIGV2ZW50ICYmIGV2ZW50LnR5cGUgPT09ICJtb3VzZW92ZXIiICkgew0KCQkJdGFyZ2V0LnBhcmVudHMoKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCXZhciBwYXJlbnQgPSAkKCB0aGlzICksDQoJCQkJCWJsdXJFdmVudDsNCgkJCQlpZiAoIHBhcmVudC5kYXRhKCAidWktdG9vbHRpcC1vcGVuIiApICkgew0KCQkJCQlibHVyRXZlbnQgPSAkLkV2ZW50KCAiYmx1ciIgKTsNCgkJCQkJYmx1ckV2ZW50LnRhcmdldCA9IGJsdXJFdmVudC5jdXJyZW50VGFyZ2V0ID0gdGhpczsNCgkJCQkJdGhhdC5jbG9zZSggYmx1ckV2ZW50LCB0cnVlICk7DQoJCQkJfQ0KCQkJCWlmICggcGFyZW50LmF0dHIoICJ0aXRsZSIgKSApIHsNCgkJCQkJcGFyZW50LnVuaXF1ZUlkKCk7DQoJCQkJCXRoYXQucGFyZW50c1sgdGhpcy5pZCBdID0gew0KCQkJCQkJZWxlbWVudDogdGhpcywNCgkJCQkJCXRpdGxlOiBwYXJlbnQuYXR0ciggInRpdGxlIiApDQoJCQkJCX07DQoJCQkJCXBhcmVudC5hdHRyKCAidGl0bGUiLCAiIiApOw0KCQkJCX0NCgkJCX0pOw0KCQl9DQoNCgkJdGhpcy5fdXBkYXRlQ29udGVudCggdGFyZ2V0LCBldmVudCApOw0KCX0sDQoNCglfdXBkYXRlQ29udGVudDogZnVuY3Rpb24oIHRhcmdldCwgZXZlbnQgKSB7DQoJCXZhciBjb250ZW50LA0KCQkJY29udGVudE9wdGlvbiA9IHRoaXMub3B0aW9ucy5jb250ZW50LA0KCQkJdGhhdCA9IHRoaXMsDQoJCQlldmVudFR5cGUgPSBldmVudCA/IGV2ZW50LnR5cGUgOiBudWxsOw0KDQoJCWlmICggdHlwZW9mIGNvbnRlbnRPcHRpb24gPT09ICJzdHJpbmciICkgew0KCQkJcmV0dXJuIHRoaXMuX29wZW4oIGV2ZW50LCB0YXJnZXQsIGNvbnRlbnRPcHRpb24gKTsNCgkJfQ0KDQoJCWNvbnRlbnQgPSBjb250ZW50T3B0aW9uLmNhbGwoIHRhcmdldFswXSwgZnVuY3Rpb24oIHJlc3BvbnNlICkgew0KCQkJLy8gaWdub3JlIGFzeW5jIHJlc3BvbnNlIGlmIHRvb2x0aXAgd2FzIGNsb3NlZCBhbHJlYWR5DQoJCQlpZiAoICF0YXJnZXQuZGF0YSggInVpLXRvb2x0aXAtb3BlbiIgKSApIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCQkvLyBJRSBtYXkgaW5zdGFudGx5IHNlcnZlIGEgY2FjaGVkIHJlc3BvbnNlIGZvciBhamF4IHJlcXVlc3RzDQoJCQkvLyBkZWxheSB0aGlzIGNhbGwgdG8gX29wZW4gc28gdGhlIG90aGVyIGNhbGwgdG8gX29wZW4gcnVucyBmaXJzdA0KCQkJdGhhdC5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJLy8galF1ZXJ5IGNyZWF0ZXMgYSBzcGVjaWFsIGV2ZW50IGZvciBmb2N1c2luIHdoZW4gaXQgZG9lc24ndA0KCQkJCS8vIGV4aXN0IG5hdGl2ZWx5LiBUbyBpbXByb3ZlIHBlcmZvcm1hbmNlLCB0aGUgbmF0aXZlIGV2ZW50DQoJCQkJLy8gb2JqZWN0IGlzIHJldXNlZCBhbmQgdGhlIHR5cGUgaXMgY2hhbmdlZC4gVGhlcmVmb3JlLCB3ZSBjYW4ndA0KCQkJCS8vIHJlbHkgb24gdGhlIHR5cGUgYmVpbmcgY29ycmVjdCBhZnRlciB0aGUgZXZlbnQgZmluaXNoZWQNCgkJCQkvLyBidWJibGluZywgc28gd2Ugc2V0IGl0IGJhY2sgdG8gdGhlIHByZXZpb3VzIHZhbHVlLiAoIzg3NDApDQoJCQkJaWYgKCBldmVudCApIHsNCgkJCQkJZXZlbnQudHlwZSA9IGV2ZW50VHlwZTsNCgkJCQl9DQoJCQkJdGhpcy5fb3BlbiggZXZlbnQsIHRhcmdldCwgcmVzcG9uc2UgKTsNCgkJCX0pOw0KCQl9KTsNCgkJaWYgKCBjb250ZW50ICkgew0KCQkJdGhpcy5fb3BlbiggZXZlbnQsIHRhcmdldCwgY29udGVudCApOw0KCQl9DQoJfSwNCg0KCV9vcGVuOiBmdW5jdGlvbiggZXZlbnQsIHRhcmdldCwgY29udGVudCApIHsNCgkJdmFyIHRvb2x0aXBEYXRhLCB0b29sdGlwLCBldmVudHMsIGRlbGF5ZWRTaG93LCBhMTF5Q29udGVudCwNCgkJCXBvc2l0aW9uT3B0aW9uID0gJC5leHRlbmQoIHt9LCB0aGlzLm9wdGlvbnMucG9zaXRpb24gKTsNCg0KCQlpZiAoICFjb250ZW50ICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gQ29udGVudCBjYW4gYmUgdXBkYXRlZCBtdWx0aXBsZSB0aW1lcy4gSWYgdGhlIHRvb2x0aXAgYWxyZWFkeQ0KCQkvLyBleGlzdHMsIHRoZW4ganVzdCB1cGRhdGUgdGhlIGNvbnRlbnQgYW5kIGJhaWwuDQoJCXRvb2x0aXBEYXRhID0gdGhpcy5fZmluZCggdGFyZ2V0ICk7DQoJCWlmICggdG9vbHRpcERhdGEgKSB7DQoJCQl0b29sdGlwRGF0YS50b29sdGlwLmZpbmQoICIudWktdG9vbHRpcC1jb250ZW50IiApLmh0bWwoIGNvbnRlbnQgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIGlmIHdlIGhhdmUgYSB0aXRsZSwgY2xlYXIgaXQgdG8gcHJldmVudCB0aGUgbmF0aXZlIHRvb2x0aXANCgkJLy8gd2UgaGF2ZSB0byBjaGVjayBmaXJzdCB0byBhdm9pZCBkZWZpbmluZyBhIHRpdGxlIGlmIG5vbmUgZXhpc3RzDQoJCS8vICh3ZSBkb24ndCB3YW50IHRvIGNhdXNlIGFuIGVsZW1lbnQgdG8gc3RhcnQgbWF0Y2hpbmcgW3RpdGxlXSkNCgkJLy8NCgkJLy8gV2UgdXNlIHJlbW92ZUF0dHIgb25seSBmb3Iga2V5IGV2ZW50cywgdG8gYWxsb3cgSUUgdG8gZXhwb3J0IHRoZSBjb3JyZWN0DQoJCS8vIGFjY2Vzc2libGUgYXR0cmlidXRlcy4gRm9yIG1vdXNlIGV2ZW50cywgc2V0IHRvIGVtcHR5IHN0cmluZyB0byBhdm9pZA0KCQkvLyBuYXRpdmUgdG9vbHRpcCBzaG93aW5nIHVwIChoYXBwZW5zIG9ubHkgd2hlbiByZW1vdmluZyBpbnNpZGUgbW91c2VvdmVyKS4NCgkJaWYgKCB0YXJnZXQuaXMoICJbdGl0bGVdIiApICkgew0KCQkJaWYgKCBldmVudCAmJiBldmVudC50eXBlID09PSAibW91c2VvdmVyIiApIHsNCgkJCQl0YXJnZXQuYXR0ciggInRpdGxlIiwgIiIgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdGFyZ2V0LnJlbW92ZUF0dHIoICJ0aXRsZSIgKTsNCgkJCX0NCgkJfQ0KDQoJCXRvb2x0aXBEYXRhID0gdGhpcy5fdG9vbHRpcCggdGFyZ2V0ICk7DQoJCXRvb2x0aXAgPSB0b29sdGlwRGF0YS50b29sdGlwOw0KCQl0aGlzLl9hZGREZXNjcmliZWRCeSggdGFyZ2V0LCB0b29sdGlwLmF0dHIoICJpZCIgKSApOw0KCQl0b29sdGlwLmZpbmQoICIudWktdG9vbHRpcC1jb250ZW50IiApLmh0bWwoIGNvbnRlbnQgKTsNCg0KCQkvLyBTdXBwb3J0OiBWb2ljZW92ZXIgb24gT1MgWCwgSkFXUyBvbiBJRSA8PSA5DQoJCS8vIEpBV1MgYW5ub3VuY2VzIGRlbGV0aW9ucyBldmVuIHdoZW4gYXJpYS1yZWxldmFudD0iYWRkaXRpb25zIg0KCQkvLyBWb2ljZW92ZXIgd2lsbCBzb21ldGltZXMgcmUtcmVhZCB0aGUgZW50aXJlIGxvZyByZWdpb24ncyBjb250ZW50cyBmcm9tIHRoZSBiZWdpbm5pbmcNCgkJdGhpcy5saXZlUmVnaW9uLmNoaWxkcmVuKCkuaGlkZSgpOw0KCQlpZiAoIGNvbnRlbnQuY2xvbmUgKSB7DQoJCQlhMTF5Q29udGVudCA9IGNvbnRlbnQuY2xvbmUoKTsNCgkJCWExMXlDb250ZW50LnJlbW92ZUF0dHIoICJpZCIgKS5maW5kKCAiW2lkXSIgKS5yZW1vdmVBdHRyKCAiaWQiICk7DQoJCX0gZWxzZSB7DQoJCQlhMTF5Q29udGVudCA9IGNvbnRlbnQ7DQoJCX0NCgkJJCggIjxkaXY+IiApLmh0bWwoIGExMXlDb250ZW50ICkuYXBwZW5kVG8oIHRoaXMubGl2ZVJlZ2lvbiApOw0KDQoJCWZ1bmN0aW9uIHBvc2l0aW9uKCBldmVudCApIHsNCgkJCXBvc2l0aW9uT3B0aW9uLm9mID0gZXZlbnQ7DQoJCQlpZiAoIHRvb2x0aXAuaXMoICI6aGlkZGVuIiApICkgew0KCQkJCXJldHVybjsNCgkJCX0NCgkJCXRvb2x0aXAucG9zaXRpb24oIHBvc2l0aW9uT3B0aW9uICk7DQoJCX0NCgkJaWYgKCB0aGlzLm9wdGlvbnMudHJhY2sgJiYgZXZlbnQgJiYgL15tb3VzZS8udGVzdCggZXZlbnQudHlwZSApICkgew0KCQkJdGhpcy5fb24oIHRoaXMuZG9jdW1lbnQsIHsNCgkJCQltb3VzZW1vdmU6IHBvc2l0aW9uDQoJCQl9KTsNCgkJCS8vIHRyaWdnZXIgb25jZSB0byBvdmVycmlkZSBlbGVtZW50LXJlbGF0aXZlIHBvc2l0aW9uaW5nDQoJCQlwb3NpdGlvbiggZXZlbnQgKTsNCgkJfSBlbHNlIHsNCgkJCXRvb2x0aXAucG9zaXRpb24oICQuZXh0ZW5kKHsNCgkJCQlvZjogdGFyZ2V0DQoJCQl9LCB0aGlzLm9wdGlvbnMucG9zaXRpb24gKSApOw0KCQl9DQoNCgkJdG9vbHRpcC5oaWRlKCk7DQoNCgkJdGhpcy5fc2hvdyggdG9vbHRpcCwgdGhpcy5vcHRpb25zLnNob3cgKTsNCgkJLy8gSGFuZGxlIHRyYWNraW5nIHRvb2x0aXBzIHRoYXQgYXJlIHNob3duIHdpdGggYSBkZWxheSAoIzg2NDQpLiBBcyBzb29uDQoJCS8vIGFzIHRoZSB0b29sdGlwIGlzIHZpc2libGUsIHBvc2l0aW9uIHRoZSB0b29sdGlwIHVzaW5nIHRoZSBtb3N0IHJlY2VudA0KCQkvLyBldmVudC4NCgkJaWYgKCB0aGlzLm9wdGlvbnMuc2hvdyAmJiB0aGlzLm9wdGlvbnMuc2hvdy5kZWxheSApIHsNCgkJCWRlbGF5ZWRTaG93ID0gdGhpcy5kZWxheWVkU2hvdyA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgew0KCQkJCWlmICggdG9vbHRpcC5pcyggIjp2aXNpYmxlIiApICkgew0KCQkJCQlwb3NpdGlvbiggcG9zaXRpb25PcHRpb24ub2YgKTsNCgkJCQkJY2xlYXJJbnRlcnZhbCggZGVsYXllZFNob3cgKTsNCgkJCQl9DQoJCQl9LCAkLmZ4LmludGVydmFsICk7DQoJCX0NCg0KCQl0aGlzLl90cmlnZ2VyKCAib3BlbiIsIGV2ZW50LCB7IHRvb2x0aXA6IHRvb2x0aXAgfSApOw0KDQoJCWV2ZW50cyA9IHsNCgkJCWtleXVwOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCBldmVudC5rZXlDb2RlID09PSAkLnVpLmtleUNvZGUuRVNDQVBFICkgew0KCQkJCQl2YXIgZmFrZUV2ZW50ID0gJC5FdmVudChldmVudCk7DQoJCQkJCWZha2VFdmVudC5jdXJyZW50VGFyZ2V0ID0gdGFyZ2V0WzBdOw0KCQkJCQl0aGlzLmNsb3NlKCBmYWtlRXZlbnQsIHRydWUgKTsNCgkJCQl9DQoJCQl9DQoJCX07DQoNCgkJLy8gT25seSBiaW5kIHJlbW92ZSBoYW5kbGVyIGZvciBkZWxlZ2F0ZWQgdGFyZ2V0cy4gTm9uLWRlbGVnYXRlZA0KCQkvLyB0b29sdGlwcyB3aWxsIGhhbmRsZSB0aGlzIGluIGRlc3Ryb3kuDQoJCWlmICggdGFyZ2V0WyAwIF0gIT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJZXZlbnRzLnJlbW92ZSA9IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuX3JlbW92ZVRvb2x0aXAoIHRvb2x0aXAgKTsNCgkJCX07DQoJCX0NCg0KCQlpZiAoICFldmVudCB8fCBldmVudC50eXBlID09PSAibW91c2VvdmVyIiApIHsNCgkJCWV2ZW50cy5tb3VzZWxlYXZlID0gImNsb3NlIjsNCgkJfQ0KCQlpZiAoICFldmVudCB8fCBldmVudC50eXBlID09PSAiZm9jdXNpbiIgKSB7DQoJCQlldmVudHMuZm9jdXNvdXQgPSAiY2xvc2UiOw0KCQl9DQoJCXRoaXMuX29uKCB0cnVlLCB0YXJnZXQsIGV2ZW50cyApOw0KCX0sDQoNCgljbG9zZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgdG9vbHRpcCwNCgkJCXRoYXQgPSB0aGlzLA0KCQkJdGFyZ2V0ID0gJCggZXZlbnQgPyBldmVudC5jdXJyZW50VGFyZ2V0IDogdGhpcy5lbGVtZW50ICksDQoJCQl0b29sdGlwRGF0YSA9IHRoaXMuX2ZpbmQoIHRhcmdldCApOw0KDQoJCS8vIFRoZSB0b29sdGlwIG1heSBhbHJlYWR5IGJlIGNsb3NlZA0KCQlpZiAoICF0b29sdGlwRGF0YSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRvb2x0aXAgPSB0b29sdGlwRGF0YS50b29sdGlwOw0KDQoJCS8vIGRpc2FibGluZyBjbG9zZXMgdGhlIHRvb2x0aXAsIHNvIHdlIG5lZWQgdG8gdHJhY2sgd2hlbiB3ZSdyZSBjbG9zaW5nDQoJCS8vIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3AgaW4gY2FzZSB0aGUgdG9vbHRpcCBiZWNvbWVzIGRpc2FibGVkIG9uIGNsb3NlDQoJCWlmICggdG9vbHRpcERhdGEuY2xvc2luZyApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIENsZWFyIHRoZSBpbnRlcnZhbCBmb3IgZGVsYXllZCB0cmFja2luZyB0b29sdGlwcw0KCQljbGVhckludGVydmFsKCB0aGlzLmRlbGF5ZWRTaG93ICk7DQoNCgkJLy8gb25seSBzZXQgdGl0bGUgaWYgd2UgaGFkIG9uZSBiZWZvcmUgKHNlZSBjb21tZW50IGluIF9vcGVuKCkpDQoJCS8vIElmIHRoZSB0aXRsZSBhdHRyaWJ1dGUgaGFzIGNoYW5nZWQgc2luY2Ugb3BlbigpLCBkb24ndCByZXN0b3JlDQoJCWlmICggdGFyZ2V0LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiApICYmICF0YXJnZXQuYXR0ciggInRpdGxlIiApICkgew0KCQkJdGFyZ2V0LmF0dHIoICJ0aXRsZSIsIHRhcmdldC5kYXRhKCAidWktdG9vbHRpcC10aXRsZSIgKSApOw0KCQl9DQoNCgkJdGhpcy5fcmVtb3ZlRGVzY3JpYmVkQnkoIHRhcmdldCApOw0KDQoJCXRvb2x0aXBEYXRhLmhpZGluZyA9IHRydWU7DQoJCXRvb2x0aXAuc3RvcCggdHJ1ZSApOw0KCQl0aGlzLl9oaWRlKCB0b29sdGlwLCB0aGlzLm9wdGlvbnMuaGlkZSwgZnVuY3Rpb24oKSB7DQoJCQl0aGF0Ll9yZW1vdmVUb29sdGlwKCAkKCB0aGlzICkgKTsNCgkJfSk7DQoNCgkJdGFyZ2V0LnJlbW92ZURhdGEoICJ1aS10b29sdGlwLW9wZW4iICk7DQoJCXRoaXMuX29mZiggdGFyZ2V0LCAibW91c2VsZWF2ZSBmb2N1c291dCBrZXl1cCIgKTsNCg0KCQkvLyBSZW1vdmUgJ3JlbW92ZScgYmluZGluZyBvbmx5IG9uIGRlbGVnYXRlZCB0YXJnZXRzDQoJCWlmICggdGFyZ2V0WyAwIF0gIT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJdGhpcy5fb2ZmKCB0YXJnZXQsICJyZW1vdmUiICk7DQoJCX0NCgkJdGhpcy5fb2ZmKCB0aGlzLmRvY3VtZW50LCAibW91c2Vtb3ZlIiApOw0KDQoJCWlmICggZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gIm1vdXNlbGVhdmUiICkgew0KCQkJJC5lYWNoKCB0aGlzLnBhcmVudHMsIGZ1bmN0aW9uKCBpZCwgcGFyZW50ICkgew0KCQkJCSQoIHBhcmVudC5lbGVtZW50ICkuYXR0ciggInRpdGxlIiwgcGFyZW50LnRpdGxlICk7DQoJCQkJZGVsZXRlIHRoYXQucGFyZW50c1sgaWQgXTsNCgkJCX0pOw0KCQl9DQoNCgkJdG9vbHRpcERhdGEuY2xvc2luZyA9IHRydWU7DQoJCXRoaXMuX3RyaWdnZXIoICJjbG9zZSIsIGV2ZW50LCB7IHRvb2x0aXA6IHRvb2x0aXAgfSApOw0KCQlpZiAoICF0b29sdGlwRGF0YS5oaWRpbmcgKSB7DQoJCQl0b29sdGlwRGF0YS5jbG9zaW5nID0gZmFsc2U7DQoJCX0NCgl9LA0KDQoJX3Rvb2x0aXA6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl2YXIgdG9vbHRpcCA9ICQoICI8ZGl2PiIgKQ0KCQkJCS5hdHRyKCAicm9sZSIsICJ0b29sdGlwIiApDQoJCQkJLmFkZENsYXNzKCAidWktdG9vbHRpcCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS13aWRnZXQtY29udGVudCAiICsNCgkJCQkJKCB0aGlzLm9wdGlvbnMudG9vbHRpcENsYXNzIHx8ICIiICkgKSwNCgkJCWlkID0gdG9vbHRpcC51bmlxdWVJZCgpLmF0dHIoICJpZCIgKTsNCg0KCQkkKCAiPGRpdj4iICkNCgkJCS5hZGRDbGFzcyggInVpLXRvb2x0aXAtY29udGVudCIgKQ0KCQkJLmFwcGVuZFRvKCB0b29sdGlwICk7DQoNCgkJdG9vbHRpcC5hcHBlbmRUbyggdGhpcy5kb2N1bWVudFswXS5ib2R5ICk7DQoNCgkJcmV0dXJuIHRoaXMudG9vbHRpcHNbIGlkIF0gPSB7DQoJCQllbGVtZW50OiBlbGVtZW50LA0KCQkJdG9vbHRpcDogdG9vbHRpcA0KCQl9Ow0KCX0sDQoNCglfZmluZDogZnVuY3Rpb24oIHRhcmdldCApIHsNCgkJdmFyIGlkID0gdGFyZ2V0LmRhdGEoICJ1aS10b29sdGlwLWlkIiApOw0KCQlyZXR1cm4gaWQgPyB0aGlzLnRvb2x0aXBzWyBpZCBdIDogbnVsbDsNCgl9LA0KDQoJX3JlbW92ZVRvb2x0aXA6IGZ1bmN0aW9uKCB0b29sdGlwICkgew0KCQl0b29sdGlwLnJlbW92ZSgpOw0KCQlkZWxldGUgdGhpcy50b29sdGlwc1sgdG9vbHRpcC5hdHRyKCAiaWQiICkgXTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJLy8gY2xvc2Ugb3BlbiB0b29sdGlwcw0KCQkkLmVhY2goIHRoaXMudG9vbHRpcHMsIGZ1bmN0aW9uKCBpZCwgdG9vbHRpcERhdGEgKSB7DQoJCQkvLyBEZWxlZ2F0ZSB0byBjbG9zZSBtZXRob2QgdG8gaGFuZGxlIGNvbW1vbiBjbGVhbnVwDQoJCQl2YXIgZXZlbnQgPSAkLkV2ZW50KCAiYmx1ciIgKSwNCgkJCQllbGVtZW50ID0gdG9vbHRpcERhdGEuZWxlbWVudDsNCgkJCWV2ZW50LnRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBlbGVtZW50WyAwIF07DQoJCQl0aGF0LmNsb3NlKCBldmVudCwgdHJ1ZSApOw0KDQoJCQkvLyBSZW1vdmUgaW1tZWRpYXRlbHk7IGRlc3Ryb3lpbmcgYW4gb3BlbiB0b29sdGlwIGRvZXNuJ3QgdXNlIHRoZQ0KCQkJLy8gaGlkZSBhbmltYXRpb24NCgkJCSQoICIjIiArIGlkICkucmVtb3ZlKCk7DQoNCgkJCS8vIFJlc3RvcmUgdGhlIHRpdGxlDQoJCQlpZiAoIGVsZW1lbnQuZGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICkgKSB7DQoJCQkJLy8gSWYgdGhlIHRpdGxlIGF0dHJpYnV0ZSBoYXMgY2hhbmdlZCBzaW5jZSBvcGVuKCksIGRvbid0IHJlc3RvcmUNCgkJCQlpZiAoICFlbGVtZW50LmF0dHIoICJ0aXRsZSIgKSApIHsNCgkJCQkJZWxlbWVudC5hdHRyKCAidGl0bGUiLCBlbGVtZW50LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiApICk7DQoJCQkJfQ0KCQkJCWVsZW1lbnQucmVtb3ZlRGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICk7DQoJCQl9DQoJCX0pOw0KCQl0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCk7DQoJfQ0KfSk7DQoNCg0KDQp9KSk7"}},"time_used":88,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":72,"receive":16,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/video.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.348Z","timestamp":1785132838348,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/js/video.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 03 Jan 2022 23:41:00 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 7227\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":20835,"size_decoded":7464,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (20087), with CRLF line terminators","md5":"1821b7c03d28f3e99b77fe9f024860e9","sha1":"0bb6582404bc99092dc3390f7329a847a3d74583","sha256":"6246bc09a05e832766cb4397f3df9337e2f3f74281ef6e4695ce2beba61ebd75","sha512":"725934be8f0841496c22b1bd3f48351571dca19b736af188e0101877cf1002c7fc6838a8933dc4e77f13167bfadd6157228379a53b26802363ff3840ed2e8a09","ssdeep":"384:0/PhVPXQ2G2XAQyqVxRQ5giCCMLtA15h5/F6l8aZwHwztLCpmsk:0/PBIt8I5h5t1qkOLCMsk","tlshash":"08920794f2b2b21383a735b8686f60093a729953e906c855b55d94d86ffcfc89027f3c","first_seen":"2023-03-11T09:15:54Z","last_seen":"2026-07-27T06:14:42.665295Z","times_seen":52,"resource_available":true,"data":"LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KLyogVklERU8gUE9QVVAgRlVOQ1RJT04gKi8NCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCmZ1bmN0aW9uIHZpZGVvUG9wdXAoKSB7DQogICAgdmFyIHBsYXkgPSAkKCcucGxheScpLA0KICAgICAgICBsaW5rID0gJChwbGF5KS5hdHRyKCdzcmMnKTsNCiAgICAkKHBsYXkpLm1hZ25pZmljUG9wdXAoew0KICAgICAgICB0eXBlOiAnaWZyYW1lJywNCiAgICAgICAgbWFpbkNsYXNzOiAnbWZwLWZhZGUnLA0KICAgICAgICByZW1vdmFsRGVsYXk6IDE2MCwNCiAgICAgICAgcHJlbG9hZGVyOiBmYWxzZSwNCiAgICAgICAgZml4ZWRDb250ZW50UG9zOiB0cnVlLA0KICAgICAgICBpZnJhbWU6IHsNCiAgICAgICAgICAgIHBhdHRlcm5zOiB7DQogICAgICAgICAgICAgICAgeW91dHViZTogew0KICAgICAgICAgICAgICAgICAgICBzcmM6IGxpbmsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9KTsNCiB9DQovKiEgTWFnbmlmaWMgUG9wdXAgLSB2MS4xLjAgLSAyMDE2LTAyLTIwDQoqIGh0dHA6Ly9kaW1zZW1lbm92LmNvbS9wbHVnaW5zL21hZ25pZmljLXBvcHVwLw0KKiBDb3B5cmlnaHQgKGMpIDIwMTYgRG1pdHJ5IFNlbWVub3Y7ICovDQohZnVuY3Rpb24oYSl7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxhKTphKCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9yZXF1aXJlKCJqcXVlcnkiKTp3aW5kb3cualF1ZXJ5fHx3aW5kb3cuWmVwdG8pfShmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaD0iQ2xvc2UiLGk9IkJlZm9yZUNsb3NlIixqPSJBZnRlckNsb3NlIixrPSJCZWZvcmVBcHBlbmQiLGw9Ik1hcmt1cFBhcnNlIixtPSJPcGVuIixuPSJDaGFuZ2UiLG89Im1mcCIscD0iLiIrbyxxPSJtZnAtcmVhZHkiLHI9Im1mcC1yZW1vdmluZyIscz0ibWZwLXByZXZlbnQtY2xvc2UiLHQ9ZnVuY3Rpb24oKXt9LHU9ISF3aW5kb3cualF1ZXJ5LHY9YSh3aW5kb3cpLHc9ZnVuY3Rpb24oYSxjKXtiLmV2Lm9uKG8rYStwLGMpfSx4PWZ1bmN0aW9uKGIsYyxkLGUpe3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBmLmNsYXNzTmFtZT0ibWZwLSIrYixkJiYoZi5pbm5lckhUTUw9ZCksZT9jJiZjLmFwcGVuZENoaWxkKGYpOihmPWEoZiksYyYmZi5hcHBlbmRUbyhjKSksZn0seT1mdW5jdGlvbihjLGQpe2IuZXYudHJpZ2dlckhhbmRsZXIobytjLGQpLGIuc3QuY2FsbGJhY2tzJiYoYz1jLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpK2Muc2xpY2UoMSksYi5zdC5jYWxsYmFja3NbY10mJmIuc3QuY2FsbGJhY2tzW2NdLmFwcGx5KGIsYS5pc0FycmF5KGQpP2Q6W2RdKSl9LHo9ZnVuY3Rpb24oYyl7cmV0dXJuIGM9PT1nJiZiLmN1cnJUZW1wbGF0ZS5jbG9zZUJ0bnx8KGIuY3VyclRlbXBsYXRlLmNsb3NlQnRuPWEoYi5zdC5jbG9zZU1hcmt1cC5yZXBsYWNlKCIldGl0bGUlIixiLnN0LnRDbG9zZSkpLGc9YyksYi5jdXJyVGVtcGxhdGUuY2xvc2VCdG59LEE9ZnVuY3Rpb24oKXthLm1hZ25pZmljUG9wdXAuaW5zdGFuY2V8fChiPW5ldyB0LGIuaW5pdCgpLGEubWFnbmlmaWNQb3B1cC5pbnN0YW5jZT1iKX0sQj1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKS5zdHlsZSxiPVsibXMiLCJPIiwiTW96IiwiV2Via2l0Il07aWYodm9pZCAwIT09YS50cmFuc2l0aW9uKXJldHVybiEwO2Zvcig7Yi5sZW5ndGg7KWlmKGIucG9wKCkrIlRyYW5zaXRpb24iaW4gYSlyZXR1cm4hMDtyZXR1cm4hMX07dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnQsaW5pdDpmdW5jdGlvbigpe3ZhciBjPW5hdmlnYXRvci5hcHBWZXJzaW9uO2IuaXNMb3dJRT1iLmlzSUU4PWRvY3VtZW50LmFsbCYmIWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIsYi5pc0FuZHJvaWQ9L2FuZHJvaWQvZ2kudGVzdChjKSxiLmlzSU9TPS9pcGhvbmV8aXBhZHxpcG9kL2dpLnRlc3QoYyksYi5zdXBwb3J0c1RyYW5zaXRpb249QigpLGIucHJvYmFibHlNb2JpbGU9Yi5pc0FuZHJvaWR8fGIuaXNJT1N8fC8oT3BlcmEgTWluaSl8S2luZGxlfHdlYk9TfEJsYWNrQmVycnl8KE9wZXJhIE1vYmkpfChXaW5kb3dzIFBob25lKXxJRU1vYmlsZS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksZD1hKGRvY3VtZW50KSxiLnBvcHVwc0NhY2hlPXt9fSxvcGVuOmZ1bmN0aW9uKGMpe3ZhciBlO2lmKGMuaXNPYmo9PT0hMSl7Yi5pdGVtcz1jLml0ZW1zLnRvQXJyYXkoKSxiLmluZGV4PTA7dmFyIGcsaD1jLml0ZW1zO2ZvcihlPTA7ZTxoLmxlbmd0aDtlKyspaWYoZz1oW2VdLGcucGFyc2VkJiYoZz1nLmVsWzBdKSxnPT09Yy5lbFswXSl7Yi5pbmRleD1lO2JyZWFrfX1lbHNlIGIuaXRlbXM9YS5pc0FycmF5KGMuaXRlbXMpP2MuaXRlbXM6W2MuaXRlbXNdLGIuaW5kZXg9Yy5pbmRleHx8MDtpZihiLmlzT3BlbilyZXR1cm4gdm9pZCBiLnVwZGF0ZUl0ZW1IVE1MKCk7Yi50eXBlcz1bXSxmPSIiLGMubWFpbkVsJiZjLm1haW5FbC5sZW5ndGg/Yi5ldj1jLm1haW5FbC5lcSgwKTpiLmV2PWQsYy5rZXk/KGIucG9wdXBzQ2FjaGVbYy5rZXldfHwoYi5wb3B1cHNDYWNoZVtjLmtleV09e30pLGIuY3VyclRlbXBsYXRlPWIucG9wdXBzQ2FjaGVbYy5rZXldKTpiLmN1cnJUZW1wbGF0ZT17fSxiLnN0PWEuZXh0ZW5kKCEwLHt9LGEubWFnbmlmaWNQb3B1cC5kZWZhdWx0cyxjKSxiLmZpeGVkQ29udGVudFBvcz0iYXV0byI9PT1iLnN0LmZpeGVkQ29udGVudFBvcz8hYi5wcm9iYWJseU1vYmlsZTpiLnN0LmZpeGVkQ29udGVudFBvcyxiLnN0Lm1vZGFsJiYoYi5zdC5jbG9zZU9uQ29udGVudENsaWNrPSExLGIuc3QuY2xvc2VPbkJnQ2xpY2s9ITEsYi5zdC5zaG93Q2xvc2VCdG49ITEsYi5zdC5lbmFibGVFc2NhcGVLZXk9ITEpLGIuYmdPdmVybGF5fHwoYi5iZ092ZXJsYXk9eCgiYmciKS5vbigiY2xpY2siK3AsZnVuY3Rpb24oKXtiLmNsb3NlKCl9KSxiLndyYXA9eCgid3JhcCIpLmF0dHIoInRhYmluZGV4IiwtMSkub24oImNsaWNrIitwLGZ1bmN0aW9uKGEpe2IuX2NoZWNrSWZDbG9zZShhLnRhcmdldCkmJmIuY2xvc2UoKX0pLGIuY29udGFpbmVyPXgoImNvbnRhaW5lciIsYi53cmFwKSksYi5jb250ZW50Q29udGFpbmVyPXgoImNvbnRlbnQiKSxiLnN0LnByZWxvYWRlciYmKGIucHJlbG9hZGVyPXgoInByZWxvYWRlciIsYi5jb250YWluZXIsYi5zdC50TG9hZGluZykpO3ZhciBpPWEubWFnbmlmaWNQb3B1cC5tb2R1bGVzO2ZvcihlPTA7ZTxpLmxlbmd0aDtlKyspe3ZhciBqPWlbZV07aj1qLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2ouc2xpY2UoMSksYlsiaW5pdCIral0uY2FsbChiKX15KCJCZWZvcmVPcGVuIiksYi5zdC5zaG93Q2xvc2VCdG4mJihiLnN0LmNsb3NlQnRuSW5zaWRlPyh3KGwsZnVuY3Rpb24oYSxiLGMsZCl7Yy5jbG9zZV9yZXBsYWNlV2l0aD16KGQudHlwZSl9KSxmKz0iIG1mcC1jbG9zZS1idG4taW4iKTpiLndyYXAuYXBwZW5kKHooKSkpLGIuc3QuYWxpZ25Ub3AmJihmKz0iIG1mcC1hbGlnbi10b3AiKSxiLmZpeGVkQ29udGVudFBvcz9iLndyYXAuY3NzKHtvdmVyZmxvdzpiLnN0Lm92ZXJmbG93WSxvdmVyZmxvd1g6ImhpZGRlbiIsb3ZlcmZsb3dZOmIuc3Qub3ZlcmZsb3dZfSk6Yi53cmFwLmNzcyh7dG9wOnYuc2Nyb2xsVG9wKCkscG9zaXRpb246ImFic29sdXRlIn0pLChiLnN0LmZpeGVkQmdQb3M9PT0hMXx8ImF1dG8iPT09Yi5zdC5maXhlZEJnUG9zJiYhYi5maXhlZENvbnRlbnRQb3MpJiZiLmJnT3ZlcmxheS5jc3Moe2hlaWdodDpkLmhlaWdodCgpLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9KSxiLnN0LmVuYWJsZUVzY2FwZUtleSYmZC5vbigia2V5dXAiK3AsZnVuY3Rpb24oYSl7Mjc9PT1hLmtleUNvZGUmJmIuY2xvc2UoKX0pLHYub24oInJlc2l6ZSIrcCxmdW5jdGlvbigpe2IudXBkYXRlU2l6ZSgpfSksYi5zdC5jbG9zZU9uQ29udGVudENsaWNrfHwoZis9IiBtZnAtYXV0by1jdXJzb3IiKSxmJiZiLndyYXAuYWRkQ2xhc3MoZik7dmFyIGs9Yi53SD12LmhlaWdodCgpLG49e307aWYoYi5maXhlZENvbnRlbnRQb3MmJmIuX2hhc1Njcm9sbEJhcihrKSl7dmFyIG89Yi5fZ2V0U2Nyb2xsYmFyU2l6ZSgpO28mJihuLm1hcmdpblJpZ2h0PW8pfWIuZml4ZWRDb250ZW50UG9zJiYoYi5pc0lFNz9hKCJib2R5LCBodG1sIikuY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpOm4ub3ZlcmZsb3c9ImhpZGRlbiIpO3ZhciByPWIuc3QubWFpbkNsYXNzO3JldHVybiBiLmlzSUU3JiYocis9IiBtZnAtaWU3IiksciYmYi5fYWRkQ2xhc3NUb01GUChyKSxiLnVwZGF0ZUl0ZW1IVE1MKCkseSgiQnVpbGRDb250cm9scyIpLGEoImh0bWwiKS5jc3MobiksYi5iZ092ZXJsYXkuYWRkKGIud3JhcCkucHJlcGVuZFRvKGIuc3QucHJlcGVuZFRvfHxhKGRvY3VtZW50LmJvZHkpKSxiLl9sYXN0Rm9jdXNlZEVsPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsc2V0VGltZW91dChmdW5jdGlvbigpe2IuY29udGVudD8oYi5fYWRkQ2xhc3NUb01GUChxKSxiLl9zZXRGb2N1cygpKTpiLmJnT3ZlcmxheS5hZGRDbGFzcyhxKSxkLm9uKCJmb2N1c2luIitwLGIuX29uRm9jdXNJbil9LDE2KSxiLmlzT3Blbj0hMCxiLnVwZGF0ZVNpemUoaykseShtKSxjfSxjbG9zZTpmdW5jdGlvbigpe2IuaXNPcGVuJiYoeShpKSxiLmlzT3Blbj0hMSxiLnN0LnJlbW92YWxEZWxheSYmIWIuaXNMb3dJRSYmYi5zdXBwb3J0c1RyYW5zaXRpb24/KGIuX2FkZENsYXNzVG9NRlAociksc2V0VGltZW91dChmdW5jdGlvbigpe2IuX2Nsb3NlKCl9LGIuc3QucmVtb3ZhbERlbGF5KSk6Yi5fY2xvc2UoKSl9LF9jbG9zZTpmdW5jdGlvbigpe3koaCk7dmFyIGM9cisiICIrcSsiICI7aWYoYi5iZ092ZXJsYXkuZGV0YWNoKCksYi53cmFwLmRldGFjaCgpLGIuY29udGFpbmVyLmVtcHR5KCksYi5zdC5tYWluQ2xhc3MmJihjKz1iLnN0Lm1haW5DbGFzcysiICIpLGIuX3JlbW92ZUNsYXNzRnJvbU1GUChjKSxiLmZpeGVkQ29udGVudFBvcyl7dmFyIGU9e21hcmdpblJpZ2h0OiIifTtiLmlzSUU3P2EoImJvZHksIGh0bWwiKS5jc3MoIm92ZXJmbG93IiwiIik6ZS5vdmVyZmxvdz0iIixhKCJodG1sIikuY3NzKGUpfWQub2ZmKCJrZXl1cCIrcCsiIGZvY3VzaW4iK3ApLGIuZXYub2ZmKHApLGIud3JhcC5hdHRyKCJjbGFzcyIsIm1mcC13cmFwIikucmVtb3ZlQXR0cigic3R5bGUiKSxiLmJnT3ZlcmxheS5hdHRyKCJjbGFzcyIsIm1mcC1iZyIpLGIuY29udGFpbmVyLmF0dHIoImNsYXNzIiwibWZwLWNvbnRhaW5lciIpLCFiLnN0LnNob3dDbG9zZUJ0bnx8Yi5zdC5jbG9zZUJ0bkluc2lkZSYmYi5jdXJyVGVtcGxhdGVbYi5jdXJySXRlbS50eXBlXSE9PSEwfHxiLmN1cnJUZW1wbGF0ZS5jbG9zZUJ0biYmYi5jdXJyVGVtcGxhdGUuY2xvc2VCdG4uZGV0YWNoKCksYi5zdC5hdXRvRm9jdXNMYXN0JiZiLl9sYXN0Rm9jdXNlZEVsJiZhKGIuX2xhc3RGb2N1c2VkRWwpLmZvY3VzKCksYi5jdXJySXRlbT1udWxsLGIuY29udGVudD1udWxsLGIuY3VyclRlbXBsYXRlPW51bGwsYi5wcmV2SGVpZ2h0PTAseShqKX0sdXBkYXRlU2l6ZTpmdW5jdGlvbihhKXtpZihiLmlzSU9TKXt2YXIgYz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgvd2luZG93LmlubmVyV2lkdGgsZD13aW5kb3cuaW5uZXJIZWlnaHQqYztiLndyYXAuY3NzKCJoZWlnaHQiLGQpLGIud0g9ZH1lbHNlIGIud0g9YXx8di5oZWlnaHQoKTtiLmZpeGVkQ29udGVudFBvc3x8Yi53cmFwLmNzcygiaGVpZ2h0IixiLndIKSx5KCJSZXNpemUiKX0sdXBkYXRlSXRlbUhUTUw6ZnVuY3Rpb24oKXt2YXIgYz1iLml0ZW1zW2IuaW5kZXhdO2IuY29udGVudENvbnRhaW5lci5kZXRhY2goKSxiLmNvbnRlbnQmJmIuY29udGVudC5kZXRhY2goKSxjLnBhcnNlZHx8KGM9Yi5wYXJzZUVsKGIuaW5kZXgpKTt2YXIgZD1jLnR5cGU7aWYoeSgiQmVmb3JlQ2hhbmdlIixbYi5jdXJySXRlbT9iLmN1cnJJdGVtLnR5cGU6IiIsZF0pLGIuY3Vyckl0ZW09YywhYi5jdXJyVGVtcGxhdGVbZF0pe3ZhciBmPWIuc3RbZF0/Yi5zdFtkXS5tYXJrdXA6ITE7eSgiRmlyc3RNYXJrdXBQYXJzZSIsZiksZj9iLmN1cnJUZW1wbGF0ZVtkXT1hKGYpOmIuY3VyclRlbXBsYXRlW2RdPSEwfWUmJmUhPT1jLnR5cGUmJmIuY29udGFpbmVyLnJlbW92ZUNsYXNzKCJtZnAtIitlKyItaG9sZGVyIik7dmFyIGc9YlsiZ2V0IitkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Quc2xpY2UoMSldKGMsYi5jdXJyVGVtcGxhdGVbZF0pO2IuYXBwZW5kQ29udGVudChnLGQpLGMucHJlbG9hZGVkPSEwLHkobixjKSxlPWMudHlwZSxiLmNvbnRhaW5lci5wcmVwZW5kKGIuY29udGVudENvbnRhaW5lcikseSgiQWZ0ZXJDaGFuZ2UiKX0sYXBwZW5kQ29udGVudDpmdW5jdGlvbihhLGMpe2IuY29udGVudD1hLGE/Yi5zdC5zaG93Q2xvc2VCdG4mJmIuc3QuY2xvc2VCdG5JbnNpZGUmJmIuY3VyclRlbXBsYXRlW2NdPT09ITA/Yi5jb250ZW50LmZpbmQoIi5tZnAtY2xvc2UiKS5sZW5ndGh8fGIuY29udGVudC5hcHBlbmQoeigpKTpiLmNvbnRlbnQ9YTpiLmNvbnRlbnQ9IiIseShrKSxiLmNvbnRhaW5lci5hZGRDbGFzcygibWZwLSIrYysiLWhvbGRlciIpLGIuY29udGVudENvbnRhaW5lci5hcHBlbmQoYi5jb250ZW50KX0scGFyc2VFbDpmdW5jdGlvbihjKXt2YXIgZCxlPWIuaXRlbXNbY107aWYoZS50YWdOYW1lP2U9e2VsOmEoZSl9OihkPWUudHlwZSxlPXtkYXRhOmUsc3JjOmUuc3JjfSksZS5lbCl7Zm9yKHZhciBmPWIudHlwZXMsZz0wO2c8Zi5sZW5ndGg7ZysrKWlmKGUuZWwuaGFzQ2xhc3MoIm1mcC0iK2ZbZ10pKXtkPWZbZ107YnJlYWt9ZS5zcmM9ZS5lbC5hdHRyKCJkYXRhLW1mcC1zcmMiKSxlLnNyY3x8KGUuc3JjPWUuZWwuYXR0cigiaHJlZiIpKX1yZXR1cm4gZS50eXBlPWR8fGIuc3QudHlwZXx8ImlubGluZSIsZS5pbmRleD1jLGUucGFyc2VkPSEwLGIuaXRlbXNbY109ZSx5KCJFbGVtZW50UGFyc2UiLGUpLGIuaXRlbXNbY119LGFkZEdyb3VwOmZ1bmN0aW9uKGEsYyl7dmFyIGQ9ZnVuY3Rpb24oZCl7ZC5tZnBFbD10aGlzLGIuX29wZW5DbGljayhkLGEsYyl9O2N8fChjPXt9KTt2YXIgZT0iY2xpY2subWFnbmlmaWNQb3B1cCI7Yy5tYWluRWw9YSxjLml0ZW1zPyhjLmlzT2JqPSEwLGEub2ZmKGUpLm9uKGUsZCkpOihjLmlzT2JqPSExLGMuZGVsZWdhdGU/YS5vZmYoZSkub24oZSxjLmRlbGVnYXRlLGQpOihjLml0ZW1zPWEsYS5vZmYoZSkub24oZSxkKSkpfSxfb3BlbkNsaWNrOmZ1bmN0aW9uKGMsZCxlKXt2YXIgZj12b2lkIDAhPT1lLm1pZENsaWNrP2UubWlkQ2xpY2s6YS5tYWduaWZpY1BvcHVwLmRlZmF1bHRzLm1pZENsaWNrO2lmKGZ8fCEoMj09PWMud2hpY2h8fGMuY3RybEtleXx8Yy5tZXRhS2V5fHxjLmFsdEtleXx8Yy5zaGlmdEtleSkpe3ZhciBnPXZvaWQgMCE9PWUuZGlzYWJsZU9uP2UuZGlzYWJsZU9uOmEubWFnbmlmaWNQb3B1cC5kZWZhdWx0cy5kaXNhYmxlT247aWYoZylpZihhLmlzRnVuY3Rpb24oZykpe2lmKCFnLmNhbGwoYikpcmV0dXJuITB9ZWxzZSBpZih2LndpZHRoKCk8ZylyZXR1cm4hMDtjLnR5cGUmJihjLnByZXZlbnREZWZhdWx0KCksYi5pc09wZW4mJmMuc3RvcFByb3BhZ2F0aW9uKCkpLGUuZWw9YShjLm1mcEVsKSxlLmRlbGVnYXRlJiYoZS5pdGVtcz1kLmZpbmQoZS5kZWxlZ2F0ZSkpLGIub3BlbihlKX19LHVwZGF0ZVN0YXR1czpmdW5jdGlvbihhLGQpe2lmKGIucHJlbG9hZGVyKXtjIT09YSYmYi5jb250YWluZXIucmVtb3ZlQ2xhc3MoIm1mcC1zLSIrYyksZHx8ImxvYWRpbmciIT09YXx8KGQ9Yi5zdC50TG9hZGluZyk7dmFyIGU9e3N0YXR1czphLHRleHQ6ZH07eSgiVXBkYXRlU3RhdHVzIixlKSxhPWUuc3RhdHVzLGQ9ZS50ZXh0LGIucHJlbG9hZGVyLmh0bWwoZCksYi5wcmVsb2FkZXIuZmluZCgiYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oYSl7YS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX0pLGIuY29udGFpbmVyLmFkZENsYXNzKCJtZnAtcy0iK2EpLGM9YX19LF9jaGVja0lmQ2xvc2U6ZnVuY3Rpb24oYyl7aWYoIWEoYykuaGFzQ2xhc3Mocykpe3ZhciBkPWIuc3QuY2xvc2VPbkNvbnRlbnRDbGljayxlPWIuc3QuY2xvc2VPbkJnQ2xpY2s7aWYoZCYmZSlyZXR1cm4hMDtpZighYi5jb250ZW50fHxhKGMpLmhhc0NsYXNzKCJtZnAtY2xvc2UiKXx8Yi5wcmVsb2FkZXImJmM9PT1iLnByZWxvYWRlclswXSlyZXR1cm4hMDtpZihjPT09Yi5jb250ZW50WzBdfHxhLmNvbnRhaW5zKGIuY29udGVudFswXSxjKSl7aWYoZClyZXR1cm4hMH1lbHNlIGlmKGUmJmEuY29udGFpbnMoZG9jdW1lbnQsYykpcmV0dXJuITA7cmV0dXJuITF9fSxfYWRkQ2xhc3NUb01GUDpmdW5jdGlvbihhKXtiLmJnT3ZlcmxheS5hZGRDbGFzcyhhKSxiLndyYXAuYWRkQ2xhc3MoYSl9LF9yZW1vdmVDbGFzc0Zyb21NRlA6ZnVuY3Rpb24oYSl7dGhpcy5iZ092ZXJsYXkucmVtb3ZlQ2xhc3MoYSksYi53cmFwLnJlbW92ZUNsYXNzKGEpfSxfaGFzU2Nyb2xsQmFyOmZ1bmN0aW9uKGEpe3JldHVybihiLmlzSUU3P2QuaGVpZ2h0KCk6ZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQpPihhfHx2LmhlaWdodCgpKX0sX3NldEZvY3VzOmZ1bmN0aW9uKCl7KGIuc3QuZm9jdXM/Yi5jb250ZW50LmZpbmQoYi5zdC5mb2N1cykuZXEoMCk6Yi53cmFwKS5mb2N1cygpfSxfb25Gb2N1c0luOmZ1bmN0aW9uKGMpe3JldHVybiBjLnRhcmdldD09PWIud3JhcFswXXx8YS5jb250YWlucyhiLndyYXBbMF0sYy50YXJnZXQpP3ZvaWQgMDooYi5fc2V0Rm9jdXMoKSwhMSl9LF9wYXJzZU1hcmt1cDpmdW5jdGlvbihiLGMsZCl7dmFyIGU7ZC5kYXRhJiYoYz1hLmV4dGVuZChkLmRhdGEsYykpLHkobCxbYixjLGRdKSxhLmVhY2goYyxmdW5jdGlvbihjLGQpe2lmKHZvaWQgMD09PWR8fGQ9PT0hMSlyZXR1cm4hMDtpZihlPWMuc3BsaXQoIl8iKSxlLmxlbmd0aD4xKXt2YXIgZj1iLmZpbmQocCsiLSIrZVswXSk7aWYoZi5sZW5ndGg+MCl7dmFyIGc9ZVsxXTsicmVwbGFjZVdpdGgiPT09Zz9mWzBdIT09ZFswXSYmZi5yZXBsYWNlV2l0aChkKToiaW1nIj09PWc/Zi5pcygiaW1nIik/Zi5hdHRyKCJzcmMiLGQpOmYucmVwbGFjZVdpdGgoYSgiPGltZz4iKS5hdHRyKCJzcmMiLGQpLmF0dHIoImNsYXNzIixmLmF0dHIoImNsYXNzIikpKTpmLmF0dHIoZVsxXSxkKX19ZWxzZSBiLmZpbmQocCsiLSIrYykuaHRtbChkKX0pfSxfZ2V0U2Nyb2xsYmFyU2l6ZTpmdW5jdGlvbigpe2lmKHZvaWQgMD09PWIuc2Nyb2xsYmFyU2l6ZSl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5zdHlsZS5jc3NUZXh0PSJ3aWR0aDogOTlweDsgaGVpZ2h0OiA5OXB4OyBvdmVyZmxvdzogc2Nyb2xsOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTk5OTlweDsiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksYi5zY3JvbGxiYXJTaXplPWEub2Zmc2V0V2lkdGgtYS5jbGllbnRXaWR0aCxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpfXJldHVybiBiLnNjcm9sbGJhclNpemV9fSxhLm1hZ25pZmljUG9wdXA9e2luc3RhbmNlOm51bGwscHJvdG86dC5wcm90b3R5cGUsbW9kdWxlczpbXSxvcGVuOmZ1bmN0aW9uKGIsYyl7cmV0dXJuIEEoKSxiPWI/YS5leHRlbmQoITAse30sYik6e30sYi5pc09iaj0hMCxiLmluZGV4PWN8fDAsdGhpcy5pbnN0YW5jZS5vcGVuKGIpfSxjbG9zZTpmdW5jdGlvbigpe3JldHVybiBhLm1hZ25pZmljUG9wdXAuaW5zdGFuY2UmJmEubWFnbmlmaWNQb3B1cC5pbnN0YW5jZS5jbG9zZSgpfSxyZWdpc3Rlck1vZHVsZTpmdW5jdGlvbihiLGMpe2Mub3B0aW9ucyYmKGEubWFnbmlmaWNQb3B1cC5kZWZhdWx0c1tiXT1jLm9wdGlvbnMpLGEuZXh0ZW5kKHRoaXMucHJvdG8sYy5wcm90byksdGhpcy5tb2R1bGVzLnB1c2goYil9LGRlZmF1bHRzOntkaXNhYmxlT246MCxrZXk6bnVsbCxtaWRDbGljazohMSxtYWluQ2xhc3M6IiIscHJlbG9hZGVyOiEwLGZvY3VzOiIiLGNsb3NlT25Db250ZW50Q2xpY2s6ITEsY2xvc2VPbkJnQ2xpY2s6ITAsY2xvc2VCdG5JbnNpZGU6ITAsc2hvd0Nsb3NlQnRuOiEwLGVuYWJsZUVzY2FwZUtleTohMCxtb2RhbDohMSxhbGlnblRvcDohMSxyZW1vdmFsRGVsYXk6MCxwcmVwZW5kVG86bnVsbCxmaXhlZENvbnRlbnRQb3M6ImF1dG8iLGZpeGVkQmdQb3M6ImF1dG8iLG92ZXJmbG93WToiYXV0byIsY2xvc2VNYXJrdXA6JzxidXR0b24gdGl0bGU9IiV0aXRsZSUiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1mcC1jbG9zZSI+JiMyMTU7PC9idXR0b24+Jyx0Q2xvc2U6IkNsb3NlIChFc2MpIix0TG9hZGluZzoiTG9hZGluZy4uLiIsYXV0b0ZvY3VzTGFzdDohMH19LGEuZm4ubWFnbmlmaWNQb3B1cD1mdW5jdGlvbihjKXtBKCk7dmFyIGQ9YSh0aGlzKTtpZigic3RyaW5nIj09dHlwZW9mIGMpaWYoIm9wZW4iPT09Yyl7dmFyIGUsZj11P2QuZGF0YSgibWFnbmlmaWNQb3B1cCIpOmRbMF0ubWFnbmlmaWNQb3B1cCxnPXBhcnNlSW50KGFyZ3VtZW50c1sxXSwxMCl8fDA7Zi5pdGVtcz9lPWYuaXRlbXNbZ106KGU9ZCxmLmRlbGVnYXRlJiYoZT1lLmZpbmQoZi5kZWxlZ2F0ZSkpLGU9ZS5lcShnKSksYi5fb3BlbkNsaWNrKHttZnBFbDplfSxkLGYpfWVsc2UgYi5pc09wZW4mJmJbY10uYXBwbHkoYixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO2Vsc2UgYz1hLmV4dGVuZCghMCx7fSxjKSx1P2QuZGF0YSgibWFnbmlmaWNQb3B1cCIsYyk6ZFswXS5tYWduaWZpY1BvcHVwPWMsYi5hZGRHcm91cChkLGMpO3JldHVybiBkfTt2YXIgQyxELEUsRj0iaW5saW5lIixHPWZ1bmN0aW9uKCl7RSYmKEQuYWZ0ZXIoRS5hZGRDbGFzcyhDKSkuZGV0YWNoKCksRT1udWxsKX07YS5tYWduaWZpY1BvcHVwLnJlZ2lzdGVyTW9kdWxlKEYse29wdGlvbnM6e2hpZGRlbkNsYXNzOiJoaWRlIixtYXJrdXA6IiIsdE5vdEZvdW5kOiJDb250ZW50IG5vdCBmb3VuZCJ9LHByb3RvOntpbml0SW5saW5lOmZ1bmN0aW9uKCl7Yi50eXBlcy5wdXNoKEYpLHcoaCsiLiIrRixmdW5jdGlvbigpe0coKX0pfSxnZXRJbmxpbmU6ZnVuY3Rpb24oYyxkKXtpZihHKCksYy5zcmMpe3ZhciBlPWIuc3QuaW5saW5lLGY9YShjLnNyYyk7aWYoZi5sZW5ndGgpe3ZhciBnPWZbMF0ucGFyZW50Tm9kZTtnJiZnLnRhZ05hbWUmJihEfHwoQz1lLmhpZGRlbkNsYXNzLEQ9eChDKSxDPSJtZnAtIitDKSxFPWYuYWZ0ZXIoRCkuZGV0YWNoKCkucmVtb3ZlQ2xhc3MoQykpLGIudXBkYXRlU3RhdHVzKCJyZWFkeSIpfWVsc2UgYi51cGRhdGVTdGF0dXMoImVycm9yIixlLnROb3RGb3VuZCksZj1hKCI8ZGl2PiIpO3JldHVybiBjLmlubGluZUVsZW1lbnQ9ZixmfXJldHVybiBiLnVwZGF0ZVN0YXR1cygicmVhZHkiKSxiLl9wYXJzZU1hcmt1cChkLHt9LGMpLGR9fX0pO3ZhciBILEk9ImFqYXgiLEo9ZnVuY3Rpb24oKXtIJiZhKGRvY3VtZW50LmJvZHkpLnJlbW92ZUNsYXNzKEgpfSxLPWZ1bmN0aW9uKCl7SigpLGIucmVxJiZiLnJlcS5hYm9ydCgpfTthLm1hZ25pZmljUG9wdXAucmVnaXN0ZXJNb2R1bGUoSSx7b3B0aW9uczp7c2V0dGluZ3M6bnVsbCxjdXJzb3I6Im1mcC1hamF4LWN1ciIsdEVycm9yOic8YSBocmVmPSIldXJsJSI+VGhlIGNvbnRlbnQ8L2E+IGNvdWxkIG5vdCBiZSBsb2FkZWQuJ30scHJvdG86e2luaXRBamF4OmZ1bmN0aW9uKCl7Yi50eXBlcy5wdXNoKEkpLEg9Yi5zdC5hamF4LmN1cnNvcix3KGgrIi4iK0ksSyksdygiQmVmb3JlQ2hhbmdlLiIrSSxLKX0sZ2V0QWpheDpmdW5jdGlvbihjKXtIJiZhKGRvY3VtZW50LmJvZHkpLmFkZENsYXNzKEgpLGIudXBkYXRlU3RhdHVzKCJsb2FkaW5nIik7dmFyIGQ9YS5leHRlbmQoe3VybDpjLnNyYyxzdWNjZXNzOmZ1bmN0aW9uKGQsZSxmKXt2YXIgZz17ZGF0YTpkLHhocjpmfTt5KCJQYXJzZUFqYXgiLGcpLGIuYXBwZW5kQ29udGVudChhKGcuZGF0YSksSSksYy5maW5pc2hlZD0hMCxKKCksYi5fc2V0Rm9jdXMoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi53cmFwLmFkZENsYXNzKHEpfSwxNiksYi51cGRhdGVTdGF0dXMoInJlYWR5IikseSgiQWpheENvbnRlbnRBZGRlZCIpfSxlcnJvcjpmdW5jdGlvbigpe0ooKSxjLmZpbmlzaGVkPWMubG9hZEVycm9yPSEwLGIudXBkYXRlU3RhdHVzKCJlcnJvciIsYi5zdC5hamF4LnRFcnJvci5yZXBsYWNlKCIldXJsJSIsYy5zcmMpKX19LGIuc3QuYWpheC5zZXR0aW5ncyk7cmV0dXJuIGIucmVxPWEuYWpheChkKSwiIn19fSk7dmFyIEwsTT1mdW5jdGlvbihjKXtpZihjLmRhdGEmJnZvaWQgMCE9PWMuZGF0YS50aXRsZSlyZXR1cm4gYy5kYXRhLnRpdGxlO3ZhciBkPWIuc3QuaW1hZ2UudGl0bGVTcmM7aWYoZCl7aWYoYS5pc0Z1bmN0aW9uKGQpKXJldHVybiBkLmNhbGwoYixjKTtpZihjLmVsKXJldHVybiBjLmVsLmF0dHIoZCl8fCIifXJldHVybiIifTthLm1hZ25pZmljUG9wdXAucmVnaXN0ZXJNb2R1bGUoImltYWdlIix7b3B0aW9uczp7bWFya3VwOic8ZGl2IGNsYXNzPSJtZnAtZmlndXJlIj48ZGl2IGNsYXNzPSJtZnAtY2xvc2UiPjwvZGl2PjxmaWd1cmU+PGRpdiBjbGFzcz0ibWZwLWltZyI+PC9kaXY+PGZpZ2NhcHRpb24+PGRpdiBjbGFzcz0ibWZwLWJvdHRvbS1iYXIiPjxkaXYgY2xhc3M9Im1mcC10aXRsZSI+PC9kaXY+PGRpdiBjbGFzcz0ibWZwLWNvdW50ZXIiPjwvZGl2PjwvZGl2PjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48L2Rpdj4nLGN1cnNvcjoibWZwLXpvb20tb3V0LWN1ciIsdGl0bGVTcmM6InRpdGxlIix2ZXJ0aWNhbEZpdDohMCx0RXJyb3I6JzxhIGhyZWY9IiV1cmwlIj5UaGUgaW1hZ2U8L2E+IGNvdWxkIG5vdCBiZSBsb2FkZWQuJ30scHJvdG86e2luaXRJbWFnZTpmdW5jdGlvbigpe3ZhciBjPWIuc3QuaW1hZ2UsZD0iLmltYWdlIjtiLnR5cGVzLnB1c2goImltYWdlIiksdyhtK2QsZnVuY3Rpb24oKXsiaW1hZ2UiPT09Yi5jdXJySXRlbS50eXBlJiZjLmN1cnNvciYmYShkb2N1bWVudC5ib2R5KS5hZGRDbGFzcyhjLmN1cnNvcil9KSx3KGgrZCxmdW5jdGlvbigpe2MuY3Vyc29yJiZhKGRvY3VtZW50LmJvZHkpLnJlbW92ZUNsYXNzKGMuY3Vyc29yKSx2Lm9mZigicmVzaXplIitwKX0pLHcoIlJlc2l6ZSIrZCxiLnJlc2l6ZUltYWdlKSxiLmlzTG93SUUmJncoIkFmdGVyQ2hhbmdlIixiLnJlc2l6ZUltYWdlKX0scmVzaXplSW1hZ2U6ZnVuY3Rpb24oKXt2YXIgYT1iLmN1cnJJdGVtO2lmKGEmJmEuaW1nJiZiLnN0LmltYWdlLnZlcnRpY2FsRml0KXt2YXIgYz0wO2IuaXNMb3dJRSYmKGM9cGFyc2VJbnQoYS5pbWcuY3NzKCJwYWRkaW5nLXRvcCIpLDEwKStwYXJzZUludChhLmltZy5jc3MoInBhZGRpbmctYm90dG9tIiksMTApKSxhLmltZy5jc3MoIm1heC1oZWlnaHQiLGIud0gtYyl9fSxfb25JbWFnZUhhc1NpemU6ZnVuY3Rpb24oYSl7YS5pbWcmJihhLmhhc1NpemU9ITAsTCYmY2xlYXJJbnRlcnZhbChMKSxhLmlzQ2hlY2tpbmdJbWdTaXplPSExLHkoIkltYWdlSGFzU2l6ZSIsYSksYS5pbWdIaWRkZW4mJihiLmNvbnRlbnQmJmIuY29udGVudC5yZW1vdmVDbGFzcygibWZwLWxvYWRpbmciKSxhLmltZ0hpZGRlbj0hMSkpfSxmaW5kSW1hZ2VTaXplOmZ1bmN0aW9uKGEpe3ZhciBjPTAsZD1hLmltZ1swXSxlPWZ1bmN0aW9uKGYpe0wmJmNsZWFySW50ZXJ2YWwoTCksTD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3JldHVybiBkLm5hdHVyYWxXaWR0aD4wP3ZvaWQgYi5fb25JbWFnZUhhc1NpemUoYSk6KGM+MjAwJiZjbGVhckludGVydmFsKEwpLGMrKyx2b2lkKDM9PT1jP2UoMTApOjQwPT09Yz9lKDUwKToxMDA9PT1jJiZlKDUwMCkpKX0sZil9O2UoMSl9LGdldEltYWdlOmZ1bmN0aW9uKGMsZCl7dmFyIGU9MCxmPWZ1bmN0aW9uKCl7YyYmKGMuaW1nWzBdLmNvbXBsZXRlPyhjLmltZy5vZmYoIi5tZnBsb2FkZXIiKSxjPT09Yi5jdXJySXRlbSYmKGIuX29uSW1hZ2VIYXNTaXplKGMpLGIudXBkYXRlU3RhdHVzKCJyZWFkeSIpKSxjLmhhc1NpemU9ITAsYy5sb2FkZWQ9ITAseSgiSW1hZ2VMb2FkQ29tcGxldGUiKSk6KGUrKywyMDA+ZT9zZXRUaW1lb3V0KGYsMTAwKTpnKCkpKX0sZz1mdW5jdGlvbigpe2MmJihjLmltZy5vZmYoIi5tZnBsb2FkZXIiKSxjPT09Yi5jdXJySXRlbSYmKGIuX29uSW1hZ2VIYXNTaXplKGMpLGIudXBkYXRlU3RhdHVzKCJlcnJvciIsaC50RXJyb3IucmVwbGFjZSgiJXVybCUiLGMuc3JjKSkpLGMuaGFzU2l6ZT0hMCxjLmxvYWRlZD0hMCxjLmxvYWRFcnJvcj0hMCl9LGg9Yi5zdC5pbWFnZSxpPWQuZmluZCgiLm1mcC1pbWciKTtpZihpLmxlbmd0aCl7dmFyIGo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7ai5jbGFzc05hbWU9Im1mcC1pbWciLGMuZWwmJmMuZWwuZmluZCgiaW1nIikubGVuZ3RoJiYoai5hbHQ9Yy5lbC5maW5kKCJpbWciKS5hdHRyKCJhbHQiKSksYy5pbWc9YShqKS5vbigibG9hZC5tZnBsb2FkZXIiLGYpLm9uKCJlcnJvci5tZnBsb2FkZXIiLGcpLGouc3JjPWMuc3JjLGkuaXMoImltZyIpJiYoYy5pbWc9Yy5pbWcuY2xvbmUoKSksaj1jLmltZ1swXSxqLm5hdHVyYWxXaWR0aD4wP2MuaGFzU2l6ZT0hMDpqLndpZHRofHwoYy5oYXNTaXplPSExKX1yZXR1cm4gYi5fcGFyc2VNYXJrdXAoZCx7dGl0bGU6TShjKSxpbWdfcmVwbGFjZVdpdGg6Yy5pbWd9LGMpLGIucmVzaXplSW1hZ2UoKSxjLmhhc1NpemU/KEwmJmNsZWFySW50ZXJ2YWwoTCksYy5sb2FkRXJyb3I/KGQuYWRkQ2xhc3MoIm1mcC1sb2FkaW5nIiksYi51cGRhdGVTdGF0dXMoImVycm9yIixoLnRFcnJvci5yZXBsYWNlKCIldXJsJSIsYy5zcmMpKSk6KGQucmVtb3ZlQ2xhc3MoIm1mcC1sb2FkaW5nIiksYi51cGRhdGVTdGF0dXMoInJlYWR5IikpLGQpOihiLnVwZGF0ZVN0YXR1cygibG9hZGluZyIpLGMubG9hZGluZz0hMCxjLmhhc1NpemV8fChjLmltZ0hpZGRlbj0hMCxkLmFkZENsYXNzKCJtZnAtbG9hZGluZyIpLGIuZmluZEltYWdlU2l6ZShjKSksZCl9fX0pO3ZhciBOLE89ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09TiYmKE49dm9pZCAwIT09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpLnN0eWxlLk1velRyYW5zZm9ybSksTn07YS5tYWduaWZpY1BvcHVwLnJlZ2lzdGVyTW9kdWxlKCJ6b29tIix7b3B0aW9uczp7ZW5hYmxlZDohMSxlYXNpbmc6ImVhc2UtaW4tb3V0IixkdXJhdGlvbjozMDAsb3BlbmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLmlzKCJpbWciKT9hOmEuZmluZCgiaW1nIil9fSxwcm90bzp7aW5pdFpvb206ZnVuY3Rpb24oKXt2YXIgYSxjPWIuc3Quem9vbSxkPSIuem9vbSI7aWYoYy5lbmFibGVkJiZiLnN1cHBvcnRzVHJhbnNpdGlvbil7dmFyIGUsZixnPWMuZHVyYXRpb24saj1mdW5jdGlvbihhKXt2YXIgYj1hLmNsb25lKCkucmVtb3ZlQXR0cigic3R5bGUiKS5yZW1vdmVBdHRyKCJjbGFzcyIpLmFkZENsYXNzKCJtZnAtYW5pbWF0ZWQtaW1hZ2UiKSxkPSJhbGwgIitjLmR1cmF0aW9uLzFlMysicyAiK2MuZWFzaW5nLGU9e3Bvc2l0aW9uOiJmaXhlZCIsekluZGV4Ojk5OTksbGVmdDowLHRvcDowLCItd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHkiOiJoaWRkZW4ifSxmPSJ0cmFuc2l0aW9uIjtyZXR1cm4gZVsiLXdlYmtpdC0iK2ZdPWVbIi1tb3otIitmXT1lWyItby0iK2ZdPWVbZl09ZCxiLmNzcyhlKSxifSxrPWZ1bmN0aW9uKCl7Yi5jb250ZW50LmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKX07dygiQnVpbGRDb250cm9scyIrZCxmdW5jdGlvbigpe2lmKGIuX2FsbG93Wm9vbSgpKXtpZihjbGVhclRpbWVvdXQoZSksYi5jb250ZW50LmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLGE9Yi5fZ2V0SXRlbVRvWm9vbSgpLCFhKXJldHVybiB2b2lkIGsoKTtmPWooYSksZi5jc3MoYi5fZ2V0T2Zmc2V0KCkpLGIud3JhcC5hcHBlbmQoZiksZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zi5jc3MoYi5fZ2V0T2Zmc2V0KCEwKSksZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aygpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmLnJlbW92ZSgpLGE9Zj1udWxsLHkoIlpvb21BbmltYXRpb25FbmRlZCIpfSwxNil9LGcpfSwxNil9fSksdyhpK2QsZnVuY3Rpb24oKXtpZihiLl9hbGxvd1pvb20oKSl7aWYoY2xlYXJUaW1lb3V0KGUpLGIuc3QucmVtb3ZhbERlbGF5PWcsIWEpe2lmKGE9Yi5fZ2V0SXRlbVRvWm9vbSgpLCFhKXJldHVybjtmPWooYSl9Zi5jc3MoYi5fZ2V0T2Zmc2V0KCEwKSksYi53cmFwLmFwcGVuZChmKSxiLmNvbnRlbnQuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIiksc2V0VGltZW91dChmdW5jdGlvbigpe2YuY3NzKGIuX2dldE9mZnNldCgpKX0sMTYpfX0pLHcoaCtkLGZ1bmN0aW9uKCl7Yi5fYWxsb3dab29tKCkmJihrKCksZiYmZi5yZW1vdmUoKSxhPW51bGwpfSl9fSxfYWxsb3dab29tOmZ1bmN0aW9uKCl7cmV0dXJuImltYWdlIj09PWIuY3Vyckl0ZW0udHlwZX0sX2dldEl0ZW1Ub1pvb206ZnVuY3Rpb24oKXtyZXR1cm4gYi5jdXJySXRlbS5oYXNTaXplP2IuY3Vyckl0ZW0uaW1nOiExfSxfZ2V0T2Zmc2V0OmZ1bmN0aW9uKGMpe3ZhciBkO2Q9Yz9iLmN1cnJJdGVtLmltZzpiLnN0Lnpvb20ub3BlbmVyKGIuY3Vyckl0ZW0uZWx8fGIuY3Vyckl0ZW0pO3ZhciBlPWQub2Zmc2V0KCksZj1wYXJzZUludChkLmNzcygicGFkZGluZy10b3AiKSwxMCksZz1wYXJzZUludChkLmNzcygicGFkZGluZy1ib3R0b20iKSwxMCk7ZS50b3AtPWEod2luZG93KS5zY3JvbGxUb3AoKS1mO3ZhciBoPXt3aWR0aDpkLndpZHRoKCksaGVpZ2h0Oih1P2QuaW5uZXJIZWlnaHQoKTpkWzBdLm9mZnNldEhlaWdodCktZy1mfTtyZXR1cm4gTygpP2hbIi1tb3otdHJhbnNmb3JtIl09aC50cmFuc2Zvcm09InRyYW5zbGF0ZSgiK2UubGVmdCsicHgsIitlLnRvcCsicHgpIjooaC5sZWZ0PWUubGVmdCxoLnRvcD1lLnRvcCksaH19fSk7dmFyIFA9ImlmcmFtZSIsUT0iLy9hYm91dDpibGFuayIsUj1mdW5jdGlvbihhKXtpZihiLmN1cnJUZW1wbGF0ZVtQXSl7dmFyIGM9Yi5jdXJyVGVtcGxhdGVbUF0uZmluZCgiaWZyYW1lIik7Yy5sZW5ndGgmJihhfHwoY1swXS5zcmM9USksYi5pc0lFOCYmYy5jc3MoImRpc3BsYXkiLGE/ImJsb2NrIjoibm9uZSIpKX19O2EubWFnbmlmaWNQb3B1cC5yZWdpc3Rlck1vZHVsZShQLHtvcHRpb25zOnttYXJrdXA6JzxkaXYgY2xhc3M9Im1mcC1pZnJhbWUtc2NhbGVyIj48ZGl2IGNsYXNzPSJtZnAtY2xvc2UiPjwvZGl2PjxpZnJhbWUgY2xhc3M9Im1mcC1pZnJhbWUiIHNyYz0iLy9hYm91dDpibGFuayIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT48L2Rpdj4nLHNyY0FjdGlvbjoiaWZyYW1lX3NyYyIscGF0dGVybnM6e3lvdXR1YmU6e2luZGV4OiJ5b3V0dWJlLmNvbSIsaWQ6InY9IixzcmM6Ii8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyVpZCU/YXV0b3BsYXk9MSJ9LHZpbWVvOntpbmRleDoidmltZW8uY29tLyIsaWQ6Ii8iLHNyYzoiLy9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLyVpZCU/YXV0b3BsYXk9MSJ9LGdtYXBzOntpbmRleDoiLy9tYXBzLmdvb2dsZS4iLHNyYzoiJWlkJSZvdXRwdXQ9ZW1iZWQifX19LHByb3RvOntpbml0SWZyYW1lOmZ1bmN0aW9uKCl7Yi50eXBlcy5wdXNoKFApLHcoIkJlZm9yZUNoYW5nZSIsZnVuY3Rpb24oYSxiLGMpe2IhPT1jJiYoYj09PVA/UigpOmM9PT1QJiZSKCEwKSl9KSx3KGgrIi4iK1AsZnVuY3Rpb24oKXtSKCl9KX0sZ2V0SWZyYW1lOmZ1bmN0aW9uKGMsZCl7dmFyIGU9Yy5zcmMsZj1iLnN0LmlmcmFtZTthLmVhY2goZi5wYXR0ZXJucyxmdW5jdGlvbigpe3JldHVybiBlLmluZGV4T2YodGhpcy5pbmRleCk+LTE/KHRoaXMuaWQmJihlPSJzdHJpbmciPT10eXBlb2YgdGhpcy5pZD9lLnN1YnN0cihlLmxhc3RJbmRleE9mKHRoaXMuaWQpK3RoaXMuaWQubGVuZ3RoLGUubGVuZ3RoKTp0aGlzLmlkLmNhbGwodGhpcyxlKSksZT10aGlzLnNyYy5yZXBsYWNlKCIlaWQlIixlKSwhMSk6dm9pZCAwfSk7dmFyIGc9e307cmV0dXJuIGYuc3JjQWN0aW9uJiYoZ1tmLnNyY0FjdGlvbl09ZSksYi5fcGFyc2VNYXJrdXAoZCxnLGMpLGIudXBkYXRlU3RhdHVzKCJyZWFkeSIpLGR9fX0pO3ZhciBTPWZ1bmN0aW9uKGEpe3ZhciBjPWIuaXRlbXMubGVuZ3RoO3JldHVybiBhPmMtMT9hLWM6MD5hP2MrYTphfSxUPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5yZXBsYWNlKC8lY3VyciUvZ2ksYisxKS5yZXBsYWNlKC8ldG90YWwlL2dpLGMpfTthLm1hZ25pZmljUG9wdXAucmVnaXN0ZXJNb2R1bGUoImdhbGxlcnkiLHtvcHRpb25zOntlbmFibGVkOiExLGFycm93TWFya3VwOic8YnV0dG9uIHRpdGxlPSIldGl0bGUlIiB0eXBlPSJidXR0b24iIGNsYXNzPSJtZnAtYXJyb3cgbWZwLWFycm93LSVkaXIlIj48L2J1dHRvbj4nLHByZWxvYWQ6WzAsMl0sbmF2aWdhdGVCeUltZ0NsaWNrOiEwLGFycm93czohMCx0UHJldjoiUHJldmlvdXMgKExlZnQgYXJyb3cga2V5KSIsdE5leHQ6Ik5leHQgKFJpZ2h0IGFycm93IGtleSkiLHRDb3VudGVyOiIlY3VyciUgb2YgJXRvdGFsJSJ9LHByb3RvOntpbml0R2FsbGVyeTpmdW5jdGlvbigpe3ZhciBjPWIuc3QuZ2FsbGVyeSxlPSIubWZwLWdhbGxlcnkiO3JldHVybiBiLmRpcmVjdGlvbj0hMCxjJiZjLmVuYWJsZWQ/KGYrPSIgbWZwLWdhbGxlcnkiLHcobStlLGZ1bmN0aW9uKCl7Yy5uYXZpZ2F0ZUJ5SW1nQ2xpY2smJmIud3JhcC5vbigiY2xpY2siK2UsIi5tZnAtaW1nIixmdW5jdGlvbigpe3JldHVybiBiLml0ZW1zLmxlbmd0aD4xPyhiLm5leHQoKSwhMSk6dm9pZCAwfSksZC5vbigia2V5ZG93biIrZSxmdW5jdGlvbihhKXszNz09PWEua2V5Q29kZT9iLnByZXYoKTozOT09PWEua2V5Q29kZSYmYi5uZXh0KCl9KX0pLHcoIlVwZGF0ZVN0YXR1cyIrZSxmdW5jdGlvbihhLGMpe2MudGV4dCYmKGMudGV4dD1UKGMudGV4dCxiLmN1cnJJdGVtLmluZGV4LGIuaXRlbXMubGVuZ3RoKSl9KSx3KGwrZSxmdW5jdGlvbihhLGQsZSxmKXt2YXIgZz1iLml0ZW1zLmxlbmd0aDtlLmNvdW50ZXI9Zz4xP1QoYy50Q291bnRlcixmLmluZGV4LGcpOiIifSksdygiQnVpbGRDb250cm9scyIrZSxmdW5jdGlvbigpe2lmKGIuaXRlbXMubGVuZ3RoPjEmJmMuYXJyb3dzJiYhYi5hcnJvd0xlZnQpe3ZhciBkPWMuYXJyb3dNYXJrdXAsZT1iLmFycm93TGVmdD1hKGQucmVwbGFjZSgvJXRpdGxlJS9naSxjLnRQcmV2KS5yZXBsYWNlKC8lZGlyJS9naSwibGVmdCIpKS5hZGRDbGFzcyhzKSxmPWIuYXJyb3dSaWdodD1hKGQucmVwbGFjZSgvJXRpdGxlJS9naSxjLnROZXh0KS5yZXBsYWNlKC8lZGlyJS9naSwicmlnaHQiKSkuYWRkQ2xhc3Mocyk7ZS5jbGljayhmdW5jdGlvbigpe2IucHJldigpfSksZi5jbGljayhmdW5jdGlvbigpe2IubmV4dCgpfSksYi5jb250YWluZXIuYXBwZW5kKGUuYWRkKGYpKX19KSx3KG4rZSxmdW5jdGlvbigpe2IuX3ByZWxvYWRUaW1lb3V0JiZjbGVhclRpbWVvdXQoYi5fcHJlbG9hZFRpbWVvdXQpLGIuX3ByZWxvYWRUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLnByZWxvYWROZWFyYnlJbWFnZXMoKSxiLl9wcmVsb2FkVGltZW91dD1udWxsfSwxNil9KSx2b2lkIHcoaCtlLGZ1bmN0aW9uKCl7ZC5vZmYoZSksYi53cmFwLm9mZigiY2xpY2siK2UpLGIuYXJyb3dSaWdodD1iLmFycm93TGVmdD1udWxsfSkpOiExfSxuZXh0OmZ1bmN0aW9uKCl7Yi5kaXJlY3Rpb249ITAsYi5pbmRleD1TKGIuaW5kZXgrMSksYi51cGRhdGVJdGVtSFRNTCgpfSxwcmV2OmZ1bmN0aW9uKCl7Yi5kaXJlY3Rpb249ITEsYi5pbmRleD1TKGIuaW5kZXgtMSksYi51cGRhdGVJdGVtSFRNTCgpfSxnb1RvOmZ1bmN0aW9uKGEpe2IuZGlyZWN0aW9uPWE+PWIuaW5kZXgsYi5pbmRleD1hLGIudXBkYXRlSXRlbUhUTUwoKX0scHJlbG9hZE5lYXJieUltYWdlczpmdW5jdGlvbigpe3ZhciBhLGM9Yi5zdC5nYWxsZXJ5LnByZWxvYWQsZD1NYXRoLm1pbihjWzBdLGIuaXRlbXMubGVuZ3RoKSxlPU1hdGgubWluKGNbMV0sYi5pdGVtcy5sZW5ndGgpO2ZvcihhPTE7YTw9KGIuZGlyZWN0aW9uP2U6ZCk7YSsrKWIuX3ByZWxvYWRJdGVtKGIuaW5kZXgrYSk7Zm9yKGE9MTthPD0oYi5kaXJlY3Rpb24/ZDplKTthKyspYi5fcHJlbG9hZEl0ZW0oYi5pbmRleC1hKX0sX3ByZWxvYWRJdGVtOmZ1bmN0aW9uKGMpe2lmKGM9UyhjKSwhYi5pdGVtc1tjXS5wcmVsb2FkZWQpe3ZhciBkPWIuaXRlbXNbY107ZC5wYXJzZWR8fChkPWIucGFyc2VFbChjKSkseSgiTGF6eUxvYWQiLGQpLCJpbWFnZSI9PT1kLnR5cGUmJihkLmltZz1hKCc8aW1nIGNsYXNzPSJtZnAtaW1nIiAvPicpLm9uKCJsb2FkLm1mcGxvYWRlciIsZnVuY3Rpb24oKXtkLmhhc1NpemU9ITB9KS5vbigiZXJyb3IubWZwbG9hZGVyIixmdW5jdGlvbigpe2QuaGFzU2l6ZT0hMCxkLmxvYWRFcnJvcj0hMCx5KCJMYXp5TG9hZEVycm9yIixkKX0pLmF0dHIoInNyYyIsZC5zcmMpKSxkLnByZWxvYWRlZD0hMH19fX0pO3ZhciBVPSJyZXRpbmEiO2EubWFnbmlmaWNQb3B1cC5yZWdpc3Rlck1vZHVsZShVLHtvcHRpb25zOntyZXBsYWNlU3JjOmZ1bmN0aW9uKGEpe3JldHVybiBhLnNyYy5yZXBsYWNlKC9cLlx3KyQvLGZ1bmN0aW9uKGEpe3JldHVybiJAMngiK2F9KX0scmF0aW86MX0scHJvdG86e2luaXRSZXRpbmE6ZnVuY3Rpb24oKXtpZih3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbz4xKXt2YXIgYT1iLnN0LnJldGluYSxjPWEucmF0aW87Yz1pc05hTihjKT9jKCk6YyxjPjEmJih3KCJJbWFnZUhhc1NpemUuIitVLGZ1bmN0aW9uKGEsYil7Yi5pbWcuY3NzKHsibWF4LXdpZHRoIjpiLmltZ1swXS5uYXR1cmFsV2lkdGgvYyx3aWR0aDoiMTAwJSJ9KX0pLHcoIkVsZW1lbnRQYXJzZS4iK1UsZnVuY3Rpb24oYixkKXtkLnNyYz1hLnJlcGxhY2VTcmMoZCxjKX0pKX19fX0pLEEoKX0pOw0K"}},"time_used":87,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":85,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/vendor/bootstrap/js/bootstrap.bundle.min.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.654Z","timestamp":1785132838654,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /vendor/bootstrap/js/bootstrap.bundle.min.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\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 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1459,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-27T09:47:46.014144Z","times_seen":144055,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"widget-v4.tidiochat.com/1_141_0/static/js/chunk-WidgetIframe-326fdf51a69c63448a75.js","fqdn":"widget-v4.tidiochat.com","domain":"tidiochat.com","tld":"com"},"ip":{"addr":"104.26.8.139","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.990Z","timestamp":1785132838990,"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":"tidiochat.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 22 Jun 2026 00:15:11 GMT","end":"Sun, 20 Sep 2026 01:15:06 GMT"},"fingerprint":{"sha1":"49:82:83:48:29:F7:56:11:1A:16:1F:DB:82:A9:D7:C1:51:57:D2:6F","sha256":"AF:B4:C8:AE:35:50:AC:7C:42:29:0C:7F:AC:47:8A:59:39:40:B2:F3:6E:1A:D7:59:73:0D:A8:F3:33:D4:7C:9F"}}},"request":{"raw":"GET /1_141_0/static/js/chunk-WidgetIframe-326fdf51a69c63448a75.js HTTP/1.1\r\nHost: widget-v4.tidiochat.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\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-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 06:14:05 GMT\r\ncontent-type: application/javascript\r\nserver: cloudflare\r\nlast-modified: Wed, 15 Feb 2023 13:03:23 GMT\r\nvary: Accept-Encoding\r\netag: W/\"63ecd81b-56a74\"\r\ncache-control: public, max-age=31536000, immutable\r\naccess-control-allow-origin: *\r\ncontent-encoding: gzip\r\nage: 6760\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2Ba1H6dOSveqXlZDxH2Ea9NCpIGUCkc0AaNyVIOtPNtYoxNZcw69b%2F%2FDR%2FjZ3QKYnJy978lzVeof7Pfgu80wbZu68x%2BY%2FC5DgU%2F5xnPZY8GkV%2BZ8eErBqg9dyKrgcU1HVyASCN3xjEoi6\"}]}\r\ncf-ray: a219807b9f8a712e-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":354932,"size_decoded":109378,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65439)","md5":"ae9c7b40af54e280cb5e5e25ab18b8bb","sha1":"e1cfbdfc595e6102a425e2b06af126fd6c3bd140","sha256":"9b24beb80353525a9e3bdf8e8e2f8e5162d81690396d184328038009af053c27","sha512":"cbe05a79dac0df4bbbf882c66434901f2a03b35401ebf08804aa7bb0ddaf64980451bd3d8e6c60bf84f46ce5de34348c9d76d4e44cc8ed46d3dafde0547b39a1","ssdeep":"6144:qps+0IBshcVBBcR1LySLPVKcfsv/inUE9gFWE:q7T3VBBcR1LycPVKcfsv/inUE9gFWE","tlshash":"e8744c8871c2f86d536353a9946f3109f23d1d45f609f810f2bad4e1ad99889a233f6f","first_seen":"2025-08-12T04:19:48.029167Z","last_seen":"2026-07-27T06:14:42.666951Z","times_seen":3,"resource_available":false,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgY2h1bmstV2lkZ2V0SWZyYW1lLTMyNmZkZjUxYTY5YzYzNDQ4YTc1LmpzLkxJQ0VOU0UudHh0ICovCih3aW5kb3cud2VicGFja0pzb25wPXdpbmRvdy53ZWJwYWNrSnNvbnB8fFtdKS5wdXNoKFtbMl0sezMxNjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJmIiwoZnVuY3Rpb24oKXtyZXR1cm4gb30pKSxuLmQodCwiaSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSksbi5kKHQsIngiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZCh0LCJoIiwoZnVuY3Rpb24oKXtyZXR1cm4gc30pKSxuLmQodCwicSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSksbi5kKHQsInUiLChmdW5jdGlvbigpe3JldHVybiBsfSkpLG4uZCh0LCJzIiwoZnVuY3Rpb24oKXtyZXR1cm4gdX0pKSxuLmQodCwibSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGR9KSksbi5kKHQsImQiLChmdW5jdGlvbigpe3JldHVybiBmfSkpLG4uZCh0LCJ0IiwoZnVuY3Rpb24oKXtyZXR1cm4gcH0pKSxuLmQodCwidyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGJ9KSksbi5kKHQsImIiLChmdW5jdGlvbigpe3JldHVybiBtfSkpLG4uZCh0LCJnIiwoZnVuY3Rpb24oKXtyZXR1cm4gZ30pKSxuLmQodCwieSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHZ9KSksbi5kKHQsIkEiLChmdW5jdGlvbigpe3JldHVybiB5fSkpLG4uZCh0LCJCIiwoZnVuY3Rpb24oKXtyZXR1cm4gd30pKSxuLmQodCwiQyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHh9KSksbi5kKHQsIkQiLChmdW5jdGlvbigpe3JldHVybiBPfSkpLG4uZCh0LCJsIiwoZnVuY3Rpb24oKXtyZXR1cm4gan0pKSxuLmQodCwiRyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGt9KSksbi5kKHQsIkUiLChmdW5jdGlvbigpe3JldHVybiBBfSkpLG4uZCh0LCJJIiwoZnVuY3Rpb24oKXtyZXR1cm4gTX0pKSxuLmQodCwiSCIsKGZ1bmN0aW9uKCl7cmV0dXJuIEN9KSksbi5kKHQsIkYiLChmdW5jdGlvbigpe3JldHVybiBFfSkpLG4uZCh0LCJ2IiwoZnVuY3Rpb24oKXtyZXR1cm4gU30pKSxuLmQodCwiciIsKGZ1bmN0aW9uKCl7cmV0dXJuIFJ9KSksbi5kKHQsIm4iLChmdW5jdGlvbigpe3JldHVybiBEfSkpLG4uZCh0LCJrIiwoZnVuY3Rpb24oKXtyZXR1cm4gVH0pKSxuLmQodCwicCIsKGZ1bmN0aW9uKCl7cmV0dXJuIE59KSksbi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBQfSkpLG4uZCh0LCJlIiwoZnVuY3Rpb24oKXtyZXR1cm4gTH0pKSxuLmQodCwiaiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEZ9KSksbi5kKHQsIm8iLChmdW5jdGlvbigpe3JldHVybiBffSkpLG4uZCh0LCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gen0pKSxuLmQodCwieiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEl9KSk7big0KTt2YXIgcj1uKDQ0KSxvPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoiaWNfYnViYmxlIixmaWxsOiIjRkZGRkZGIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yeiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSkpfSxhPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoiaWNfY3JlYXRlIixmaWxsOiJibHVlIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMi4zNC0yLjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6In0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSl9LGk9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJpY19zZW5kIixmaWxsOiIjRkZGRkZGIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0yLjAxIDIxTDIzIDEyIDIuMDEgMyAyIDEwbDE1IDItMTUgMnoifSksT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMCAwaDI0djI0SDB6IixmaWxsOiJub25lIn0pKX0scz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qoci5kKSgic3ZnIix7aWQ6ImljX2Nsb3NlIixmaWxsOiIjMDAwMDAwIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6In0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSl9LGM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQiLGlkOiJpYy1taW5pbWl6ZSJ9LE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0xMS42NyAzLjg3TDkuOSAyLjEgMCAxMmw5LjkgOS45IDEuNzctMS43N0wzLjU0IDEyeiJ9KSl9LGw9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJpY19vcHRpb25zIixjbGFzc05hbWU6Im9wdGlvbnMtaWNvbiIsZmlsbDoiIzAwMDAwMCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImFyaWEtaGlkZGVuIjohMH0sT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMCAwaDI0djI0SDB6IixmaWxsOiJub25lIn0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTEyIDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0wIDJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yeiJ9KSl9LHU9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJpY19ub3RpZmljYXRpb25zT2ZmIixmaWxsOiIjMDAwMDAwIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSksT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMjAgMTguNjlMNy44NCA2LjE0IDUuMjcgMy40OSA0IDQuNzZsMi44IDIuOHYuMDFjLS41Mi45OS0uOCAyLjE2LS44IDMuNDJ2NWwtMiAydjFoMTMuNzNsMiAyTDIxIDE5LjcybC0xLTEuMDN6TTEyIDIyYzEuMTEgMCAyLS44OSAyLTJoLTRjMCAxLjExLjg5IDIgMiAyem02LTcuMzJWMTFjMC0zLjA4LTEuNjQtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4Yy0uMTUuMDMtLjI5LjA4LS40Mi4xMi0uMS4wMy0uMi4wNy0uMy4xMWgtLjAxYy0uMDEgMC0uMDEgMC0uMDIuMDEtLjIzLjA5LS40Ni4yLS42OC4zMSAwIDAtLjAxIDAtLjAxLjAxTDE4IDE0LjY4eiJ9KSl9LGQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJpY19lbW9qaVN3aXRjaCIsZmlsbDoiIzAwMDAwMCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImFyaWEtaGlkZGVuIjohMH0sT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMCAwaDI0djI0SDB6IixmaWxsOiJub25lIn0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMy41LTljLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXptLTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVTOS4zMyA4IDguNSA4IDcgOC42NyA3IDkuNSA3LjY3IDExIDguNSAxMXptMy41IDYuNWMyLjMzIDAgNC4zMS0xLjQ2IDUuMTEtMy41SDYuODljLjggMi4wNCAyLjc4IDMuNSA1LjExIDMuNXoifSkpfSxmPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoiaWNfYXR0YWNoRmlsZSIsZmlsbDoiIzAwMDAwMCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgicGF0aCIse2ZpbGw6Im5vbmUiLGQ6Ik0wLDBoMjR2MjRIMFYweiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0xMywyMS44Yy0yLjMsMC00LjEtMS43LTQuMS0zLjhWOS42YzAtMS40LDEuMy0yLjYsMi44LTIuNmMxLjUsMCwyLjgsMS4yLDIuOCwyLjZ2NC44YzAsMC40LTAuNCwwLjgtMC44LDAuOHMtMC44LTAuNC0wLjgtMC44VjkuNmMwLTAuNi0wLjUtMS0xLjItMXMtMS4yLDAuNC0xLjIsMVYxOGMwLDEuMiwxLjEsMi4yLDIuNSwyLjJjMC43LDAsMS4zLTAuMiwxLjgtMC43YzAuNS0wLjQsMC43LTEsMC43LTEuNVY3LjJjMC0xLjktMS43LTMuNC0zLjktMy40Yy0yLjEsMC0zLjksMS41LTMuOSwzLjR2Ny4yYzAsMC40LTAuNCwwLjgtMC44LDAuOHMtMC44LTAuNC0wLjgtMC44VjcuMmMwLTIuOCwyLjUtNSw1LjUtNXM1LjUsMi4yLDUuNSw1VjE4YzAsMS0wLjUsMi0xLjIsMi43QzE1LjEsMjEuNCwxNC4xLDIxLjgsMTMsMjEuOHoifSkpfSxwPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoiaWNfbm90aWZpY2F0aW9uc09uIixmaWxsOiIjMDAwMDAwIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSksT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNNy41OCA0LjA4TDYuMTUgMi42NUMzLjc1IDQuNDggMi4xNyA3LjMgMi4wMyAxMC41aDJjLjE1LTIuNjUgMS41MS00Ljk3IDMuNTUtNi40MnptMTIuMzkgNi40MmgyYy0uMTUtMy4yLTEuNzMtNi4wMi00LjEyLTcuODVsLTEuNDIgMS40M2MyLjAyIDEuNDUgMy4zOSAzLjc3IDMuNTQgNi40MnpNMTggMTFjMC0zLjA3LTEuNjQtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjMgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0ydi01em0tNiAxMWMuMTQgMCAuMjctLjAxLjQtLjA0LjY1LS4xNCAxLjE4LS41OCAxLjQ0LTEuMTguMS0uMjQuMTUtLjUuMTUtLjc4aC00Yy4wMSAxLjEuOSAyIDIuMDEgMnoifSkpfSxiPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoiaWNfcmF0ZVN0YXIiLGZpbGw6IiMwMDAwMDAiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0Iix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJhcmlhLWhpZGRlbiI6ITB9LE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0xMiAxNy4yN0wxOC4xOCAyMWwtMS42NC03LjAzTDIyIDkuMjRsLTcuMTktLjYxTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMXoifSksT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMCAwaDI0djI0SDB6IixmaWxsOiJub25lIn0pKX0sbT1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qoci5kKSgic3ZnIix7aWQ6ImljX2Fycm93IixmaWxsOiIjMDAwMDAwIixoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoyNCx4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSksT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMTIgNGwtMS40MSAxLjQxTDE2LjE3IDExSDR2MmgxMi4xN2wtNS41OCA1LjU5TDEyIDIwbDgtOHoifSkpfSxoPXt0cmFuc2Zvcm06InNjYWxlKDAuOCkgdHJhbnNsYXRlKDNweCwgNHB4KSJ9LGc9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJjYXJldCIsZmlsbDoiIzAwMDAwMCIsaGVpZ2h0OiI0OCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiNDgiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LE9iamVjdChyLmQpKCJwYXRoIix7c3R5bGU6aCxkOiJNNy40MSA3Ljg0TDEyIDEyLjQybDQuNTktNC41OEwxOCA5LjI1bC02IDYtNi02eiIsZmlsbDoiIzAwN2RmYyJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wLS43NWgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSl9LHY9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJpY19zdWNjZXNzQ2hlayIsZmlsbDoiIzAwMDAwMCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMTgiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImFyaWEtaGlkZGVuIjohMH0sT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMCAwaDI0djI0SDB6IixmaWxsOiJub25lIn0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTkgMTYuMTdMNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxeiJ9KSl9LHk9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJpY190aHVtYkRvd24iLGZpbGw6IiMwMDAwMDAiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0Iix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJhcmlhLWhpZGRlbiI6ITB9LE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0xNSAzSDZjLS44MyAwLTEuNTQuNS0xLjg0IDEuMjJsLTMuMDIgNy4wNWMtLjA5LjIzLS4xNC40Ny0uMTQuNzN2MS45MWwuMDEuMDFMMSAxNGMwIDEuMS45IDIgMiAyaDYuMzFsLS45NSA0LjU3LS4wMy4zMmMwIC40MS4xNy43OS40NCAxLjA2TDkuODMgMjNsNi41OS02LjU5Yy4zNi0uMzYuNTgtLjg2LjU4LTEuNDFWNWMwLTEuMS0uOS0yLTItMnptNCAwdjEyaDRWM2gtNHoifSkpfSx3PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOjI0LGZpbGw6IiMwMDAwMDAifSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYweiIsZmlsbDoibm9uZSJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0xNSAzSDZjLS44MyAwLTEuNTQuNS0xLjg0IDEuMjJsLTMuMDIgNy4wNWMtLjA5LjIzLS4xNC40Ny0uMTQuNzN2MmMwIDEuMS45IDIgMiAyaDYuMzFsLS45NSA0LjU3LS4wMy4zMmMwIC40MS4xNy43OS40NCAxLjA2TDkuODMgMjNsNi41OS02LjU5Yy4zNi0uMzYuNTgtLjg2LjU4LTEuNDFWNWMwLTEuMS0uOS0yLTItMnptMCAxMmwtNC4zNCA0LjM0TDEyIDE0SDN2LTJsMy03aDl2MTB6bTQtMTJoNHYxMmgtNHoifSkpfSx4PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoiaWNfdGh1bWJVcCIsZmlsbDoiIzAwMDAwMCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImFyaWEtaGlkZGVuIjohMH0sT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMCAwaDI0djI0SDB6IixmaWxsOiJub25lIn0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTEgMjFoNFY5SDF2MTJ6bTIyLTExYzAtMS4xLS45LTItMi0yaC02LjMxbC45NS00LjU3LjAzLS4zMmMwLS40MS0uMTctLjc5LS40NC0xLjA2TDE0LjE3IDEgNy41OSA3LjU5QzcuMjIgNy45NSA3IDguNDUgNyA5djEwYzAgMS4xLjkgMiAyIDJoOWMuODMgMCAxLjU0LS41IDEuODQtMS4yMmwzLjAyLTcuMDVjLjA5LS4yMy4xNC0uNDcuMTQtLjczdi0xLjkxbC0uMDEtLjAxTDIzIDEweiJ9KSl9LE89ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OjI0LHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6MjQsZmlsbDoiIzAwMDAwMCJ9LE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6IixmaWxsOiJub25lIn0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTkgMjFoOWMuODMgMCAxLjU0LS41IDEuODQtMS4yMmwzLjAyLTcuMDVjLjA5LS4yMy4xNC0uNDcuMTQtLjczdi0yYzAtMS4xLS45LTItMi0yaC02LjMxbC45NS00LjU3LjAzLS4zMmMwLS40MS0uMTctLjc5LS40NC0xLjA2TDE0LjE3IDEgNy41OCA3LjU5QzcuMjIgNy45NSA3IDguNDUgNyA5djEwYzAgMS4xLjkgMiAyIDJ6TTkgOWw0LjM0LTQuMzRMMTIgMTBoOXYybC0zIDdIOVY5ek0xIDloNHYxMkgxeiJ9KSl9LGo9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJpY19kb3dubG9hZCIsZmlsbDoiIzAwMDAwMCIsaGVpZ2h0OjI0LHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6MjQseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMCAwaDI0djI0SDB6IixmaWxsOiJub25lIn0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTE5IDE5SDVWNWg3VjNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi03aC0ydjd6TTE0IDN2MmgzLjU5bC05LjgzIDkuODMgMS40MSAxLjQxTDE5IDYuNDFWMTBoMlYzaC03eiJ9KSl9LGs9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjQsaGVpZ2h0OjI0LHZpZXdCb3g6IjAgMCAyNCAyNCIsY2xhc3NOYW1lOiJpY191cGxvYWQifSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSksT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNCAxM3Y0aC00di00SDdsNS01IDUgNWgtM3oifSkpfSxBPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHt2ZXJzaW9uOiIxLjEiLGlkOiJpY19sb2dvIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHg6IjBweCIseToiMHB4Iix2aWV3Qm94OiIwIDAgNTIgMTYiLHN0eWxlOntlbmFibGVCYWNrZ3JvdW5kOiJuZXcgMCAwIDUyIDE2In0seG1sU3BhY2U6InByZXNlcnZlIiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgic3R5bGUiLHt0eXBlOiJ0ZXh0L2NzcyIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDoiXG5cdC5zdDB7ZmlsbDojMTM1RUVCO31cblx0LnN0MXtmaWxsOiMwODBGMUE7fVxuXHQuc3Qye2ZpbGw6IzRGQzNGNzt9XG5cdC5zdDN7ZmlsbDojM0Y4OEY2O31cbiJ9fSksT2JqZWN0KHIuZCkoInBvbHlnb24iLHtjbGFzc05hbWU6InN0MCIscG9pbnRzOiI0LjgsNC43IDUuMSw0LjMgOC45LDQuNyAxMS4yLDYuMyAxMS43LDkuMSAxMS44LDExIDExLjUsMTEuNCAxMS4zLDExLjcgOC40LDExLjcgNS44LDEwLjQgNC4zLDguOCAgNC4zLDYuNSA0LjQsNS40ICJ9KSxPYmplY3Qoci5kKSgiZyIsbnVsbCxPYmplY3Qoci5kKSgiZyIsbnVsbCxPYmplY3Qoci5kKSgicG9seWdvbiIse2NsYXNzTmFtZToic3QxIixwb2ludHM6IjIzLDEyLjQgMjMsNS4zIDIwLjUsNS4zIDIwLjUsNCAyNy4xLDQgMjcuMSw1LjMgMjQuNSw1LjMgMjQuNSwxMi40IFx0XHQifSksT2JqZWN0KHIuZCkoInBhdGgiLHtjbGFzc05hbWU6InN0MSIsZDoiTTMxLjMsMTIuNFY0aDNjMS41LDAsMi43LDAuNCwzLjYsMS4xUzM5LDYuOSwzOSw4LjJzLTAuNCwyLjMtMS4yLDMuMWMtMC44LDAuNy0yLDEuMS0zLjcsMS4xSDMxLjN6IE0zMi44LDExLjJoMS41YzEsMCwxLjgtMC4zLDIuMy0wLjdjMC41LTAuNSwwLjgtMS4yLDAuOC0yLjJTMzcuMiw2LjYsMzYuNyw2Yy0wLjUtMC41LTEuNC0wLjgtMi41LTAuOGgtMS40VjExLjJMMzIuOCwxMS4yeiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToic3QxIixkOiJNNDcuNSwxMi41Yy0xLjMsMC0yLjQtMC40LTMuMi0xLjJDNDMuNCwxMC41LDQzLDkuNCw0Myw4LjJzMC40LTIuMywxLjMtMy4xYzAuOS0wLjgsMS45LTEuMiwzLjItMS4yIHMyLjMsMC40LDMuMiwxLjJDNTEuNiw1LjksNTIsNyw1Miw4LjJzLTAuNCwyLjMtMS4zLDMuMUM0OS44LDEyLjEsNDguOCwxMi41LDQ3LjUsMTIuNXogTTQ3LjUsNS4xYy0wLjgsMC0xLjUsMC4zLTIuMSwwLjkgcy0wLjgsMS4zLTAuOCwyLjJzMC4zLDEuNiwwLjgsMi4yYzAuNiwwLjYsMS4zLDAuOSwyLjEsMC45czEuNS0wLjMsMi4xLTAuOWMwLjYtMC42LDAuOC0xLjMsMC44LTIuMlM1MC4yLDYuNiw0OS42LDYgQzQ5LDUuNCw0OC4zLDUuMSw0Ny41LDUuMXoifSksT2JqZWN0KHIuZCkoInBhdGgiLHtjbGFzc05hbWU6InN0MSIsZDoiTTI4LjEsNS44YzAtMC45LDAuNi0xLjYsMS41LTEuN2wwLDB2Ni43YzAsMC45LTAuNiwxLjYtMS41LDEuN2wwLDBWNS44eiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToic3QxIixkOiJNNDAuMyw1LjhjMC0wLjksMC42LTEuNiwxLjUtMS43bDAsMHY2LjdjMCwwLjktMC42LDEuNi0xLjUsMS43bDAsMFY1Ljh6In0pKSxPYmplY3Qoci5kKSgiZyIsbnVsbCxPYmplY3Qoci5kKSgiZyIsbnVsbCxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToic3QwIixkOiJNNS44LDQuNmMtMC4zLDAtMC43LDAtMSwwLjFDNC43LDUsNC43LDUuNCw0LjcsNS43YzAsMy4xLDIuNiw1LjcsNS44LDUuN2gxYzAuMS0wLjMsMC4xLTAuNywwLjEtMS4xIEMxMS42LDcuMiw5LDQuNiw1LjgsNC42eiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToic3QyIixkOiJNMTAuNSwxMS40Yy0zLjIsMC01LjgtMi42LTUuOC01LjdjMC0wLjMsMC0wLjcsMC4xLTFDMi4xLDUuMiwwLDcuNSwwLDEwLjNWMTZoNS44YzIuOCwwLDUuMi0yLDUuNy00LjZIMTAuNSB6In0pLE9iamVjdChyLmQpKCJwYXRoIix7Y2xhc3NOYW1lOiJzdDMiLGQ6Ik0xMC41LDBDNy42LDAsNS4zLDIsNC44LDQuN2MwLjMtMC4xLDAuNy0wLjEsMS0wLjFjMy4yLDAsNS44LDIuNiw1LjgsNS43YzAsMC40LDAsMC43LTAuMSwxLjFoNC44VjUuNyBDMTYuMywyLjYsMTMuNywwLDEwLjUsMHoifSkpKSkpfSxNPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoieGxzLXhsc3gtY3N2LWljb24iLCJkYXRhLW5hbWUiOiJXYXJzdHdhIDEiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgiZGVmcyIsbnVsbCxPYmplY3Qoci5kKSgic3R5bGUiLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOiIjeGxzLXhsc3gtY3N2LWljb24gLmNscy0xe2ZpbGw6IzIwODU0OTt9I3hscy14bHN4LWNzdi1pY29uIC5jbHMtMntmaWxsOiMyMWE1NTg7fSN4bHMteGxzeC1jc3YtaWNvbiAuY2xzLTN7ZmlsbDojMmFiYzY1O30jeGxzLXhsc3gtY3N2LWljb24gLmNscy00e2ZpbGw6I2ZmZjt9In19KSksT2JqZWN0KHIuZCkoInBhdGgiLHtjbGFzc05hbWU6ImNscy0xIixkOiJNNC43LDFBMi4wOSwyLjA5LDAsMCwwLDIuNjEsMy4xM1YyMS45MUEyLjA5LDIuMDksMCwwLDAsNC43LDI0SDE5LjNhMi4wOSwyLjA5LDAsMCwwLDIuMDktMi4wOVY3LjNMMTUuMTMsMVoifSksT2JqZWN0KHIuZCkoInBhdGgiLHtjbGFzc05hbWU6ImNscy0yIixkOiJNNC43LDBBMi4wOSwyLjA5LDAsMCwwLDIuNjEsMi4wOVYyMC44N0EyLjA5LDIuMDksMCwwLDAsNC43LDIzSDE5LjNhMi4wOSwyLjA5LDAsMCwwLDIuMDktMi4wOVY2LjI2TDE1LjEzLDBaIn0pLE9iamVjdChyLmQpKCJwb2x5Z29uIix7Y2xhc3NOYW1lOiJjbHMtMSIscG9pbnRzOiIyMS4zOSAxMS4zIDIxLjM5IDEwLjQ0IDIxLjM5IDYuMjYgMTguMjkgMy4xNiAxNS43NyA1LjY4IDIxLjM5IDExLjMifSksT2JqZWN0KHIuZCkoInBhdGgiLHtjbGFzc05hbWU6ImNscy0zIixkOiJNMjEuMzksNi4yNiwxNS4xMywwVjQuMTdhMi4wOSwyLjA5LDAsMCwwLDIuMDksMi4wOVoifSksT2JqZWN0KHIuZCkoInBhdGgiLHtjbGFzc05hbWU6ImNscy00IixkOiJNMTAuNTQsMTEuNzlsLTMtNC4zNmgyLjUzTDEyLDEwLjYzbDEuODctMy4yaDIuNDRsLTIuOTUsNC4zMiwzLjMsNC44MkgxNC4xM0wxMS45LDEyLjg5LDkuNzMsMTYuNTdINy4zNFoifSkpfSxDPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoid21hLW1wMy1pY29uIiwiZGF0YS1uYW1lIjoiV2Fyc3R3YSAxIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyNCAyNCIsImFyaWEtaGlkZGVuIjohMH0sT2JqZWN0KHIuZCkoImRlZnMiLG51bGwsT2JqZWN0KHIuZCkoInN0eWxlIix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDoiI3dtYS1tcDMtaWNvbiAuY2xzLTF7ZmlsbDojNTQyYzc0O30jd21hLW1wMy1pY29uIC5jbHMtMntmaWxsOiM2ODM2OTU7fSN3bWEtbXAzLWljb24gLmNscy0ze2ZpbGw6Izc2NDlhMjt9I3dtYS1tcDMtaWNvbiAuY2xzLTR7ZmlsbDojZmZmO30ifX0pKSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTEiLGQ6Ik00LjcsMUEyLjA5LDIuMDksMCwwLDAsMi42MSwzLjEzVjIxLjkxQTIuMDksMi4wOSwwLDAsMCw0LjcsMjRIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjcuM0wxNS4xMywxWiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTIiLGQ6Ik00LjcsMEEyLjA5LDIuMDksMCwwLDAsMi42MSwyLjA5VjIwLjg3QTIuMDksMi4wOSwwLDAsMCw0LjcsMjNIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjYuMjZMMTUuMTMsMFoifSksT2JqZWN0KHIuZCkoInBvbHlnb24iLHtjbGFzc05hbWU6ImNscy0xIixwb2ludHM6IjIxLjM5IDExLjMgMjEuMzkgMTAuNDQgMjEuMzkgNi4yNiAxOC4yOSAzLjE2IDE1Ljc3IDUuNjggMjEuMzkgMTEuMyJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTMiLGQ6Ik0yMS4zOSw2LjI2LDE1LjEzLDBWNC4xN2EyLjA5LDIuMDksMCwwLDAsMi4wOSwyLjA5WiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTQiLGQ6Ik0xMiw2LjgzdjYuMDZhMi4yNiwyLjI2LDAsMCwwLTEuMTUtLjMyLDIuMywyLjMsMCwxLDAsMi4zLDIuM1Y5LjEzaDIuM1Y2LjgzWiJ9KSl9LEU9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJ0eHQtcnRmLWljb24iLCJkYXRhLW5hbWUiOiJXYXJzdHdhIDEiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgiZGVmcyIsbnVsbCxPYmplY3Qoci5kKSgic3R5bGUiLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOiIjdHh0LXJ0Zi1pY29uIC5jbHMtMXtmaWxsOiNkYWRhZGE7fSN0eHQtcnRmLWljb24gLmNscy0ye2ZpbGw6I2ZmZjt9I3R4dC1ydGYtaWNvbiAuY2xzLTN7ZmlsbDojNDQ1YjcwO30ifX0pKSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTEiLGQ6Ik00LjcsMUEyLjA5LDIuMDksMCwwLDAsMi42MSwzLjEzVjIxLjkxQTIuMDksMi4wOSwwLDAsMCw0LjcsMjRIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjcuM0wxNS4xMywxWiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTIiLGQ6Ik00LjcsMEEyLjA5LDIuMDksMCwwLDAsMi42MSwyLjA5VjIwLjg3QTIuMDksMi4wOSwwLDAsMCw0LjcsMjNIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjYuMjZMMTUuMTMsMFoifSksT2JqZWN0KHIuZCkoInBvbHlnb24iLHtjbGFzc05hbWU6ImNscy0xIixwb2ludHM6IjIxLjM5IDExLjMgMjEuMzkgMTAuNDQgMjEuMzkgNi4yNiAxOC4yOSAzLjE2IDE1Ljc3IDUuNjggMjEuMzkgMTEuMyJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTIiLGQ6Ik0yMS4zOSw2LjI2LDE1LjEzLDBWNC4xN2EyLjA5LDIuMDksMCwwLDAsMi4wOSwyLjA5WiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTMiLGQ6Ik0xMy41NCwxNEgxMC4zMWwtLjUxLjgtLjU4Ljg5YTIuMTIsMi4xMiwwLDAsMC0uMjIuNTEuODguODgsMCwwLDAsMCwuMzYuNjEuNjEsMCwwLDAsLjI2LjM0LDEuNDIsMS40MiwwLDAsMCwuNjguMThsLjA1LjI4SDYuODZsMC0uMjhhMS42NiwxLjY2LDAsMCwwLC42OS0uMjksNi41OSw2LjU5LDAsMCwwLDEtMS4yN2w1LjgzLTguODJoLjM1bDEuMTYsOC41M2MuMDYuNDUuMS43Mi4xMS44MWExLjM4LDEuMzgsMCwwLDAsLjM1Ljc2LDEuMjIsMS4yMiwwLDAsMCwuNzUuMjhsMCwuMjhIMTIuNmwwLS4yOGE0LDQsMCwwLDAsLjc1LS4xMS43Ni43NiwwLDAsMCwuMzEtLjQ1LDIuODUsMi44NSwwLDAsMCwwLTEuMTlabS0uMTEtLjYzTDEzLDkuOTRsLTIuMywzLjRaIn0pKX0sUz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qoci5kKSgic3ZnIix7aWQ6InBkZi1pY29uIiwiZGF0YS1uYW1lIjoiV2Fyc3R3YSAxIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyNCAyNCIsImFyaWEtaGlkZGVuIjohMH0sT2JqZWN0KHIuZCkoImRlZnMiLG51bGwsT2JqZWN0KHIuZCkoInN0eWxlIix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDoiI3BkZi1pY29uIC5jbHMtMXtmaWxsOiNiNjI0MWU7fSNwZGYtaWNvbiAuY2xzLTJ7ZmlsbDojZWUyYTI0O30jcGRmLWljb24gLmNscy0ze2ZpbGw6I2ZmNDM0Mzt9I3BkZi1pY29uIC5jbHMtNHtmaWxsOiNmZmY7fSJ9fSkpLE9iamVjdChyLmQpKCJwYXRoIix7Y2xhc3NOYW1lOiJjbHMtMSIsZDoiTTQuNywxQTIuMDksMi4wOSwwLDAsMCwyLjYxLDMuMTNWMjEuOTFBMi4wOSwyLjA5LDAsMCwwLDQuNywyNEgxOS4zYTIuMDksMi4wOSwwLDAsMCwyLjA5LTIuMDlWNy4zTDE1LjEzLDFaIn0pLE9iamVjdChyLmQpKCJwYXRoIix7Y2xhc3NOYW1lOiJjbHMtMiIsZDoiTTQuNywwQTIuMDksMi4wOSwwLDAsMCwyLjYxLDIuMDlWMjAuODdBMi4wOSwyLjA5LDAsMCwwLDQuNywyM0gxOS4zYTIuMDksMi4wOSwwLDAsMCwyLjA5LTIuMDlWNi4yNkwxNS4xMywwWiJ9KSxPYmplY3Qoci5kKSgicG9seWdvbiIse2NsYXNzTmFtZToiY2xzLTEiLHBvaW50czoiMjEuMzkgMTEuMyAyMS4zOSAxMC40NCAyMS4zOSA2LjI2IDE4LjI5IDMuMTYgMTUuNzcgNS42OCAyMS4zOSAxMS4zIn0pLE9iamVjdChyLmQpKCJwYXRoIix7Y2xhc3NOYW1lOiJjbHMtMyIsZDoiTTIxLjM5LDYuMjYsMTUuMTMsMFY0LjE3YTIuMDksMi4wOSwwLDAsMCwyLjA5LDIuMDlaIn0pLE9iamVjdChyLmQpKCJwYXRoIix7Y2xhc3NOYW1lOiJjbHMtNCIsZDoiTTE4LjM3LDE0LjQ2Yy0uMzEtLjU2LTEuMzktLjczLTEuODktLjgxYTcuODQsNy44NCwwLDAsMC0xLjE5LS4wOGMtLjMxLDAtLjYxLDAtLjkyLDBsLS4zMywwYy0uMTEtLjEyLS4yMi0uMjQtLjMyLS4zN2ExMS40NSwxMS40NSwwLDAsMS0xLjY2LTIuNjMsMTAuNSwxMC41LDAsMCwwLC4yNy0xLjQyLDUuODksNS44OSwwLDAsMC0uMi0yLjc3Yy0uMTItLjMtLjQzLS42Ni0uNzgtLjQ4YTEuNDQsMS40NCwwLDAsMC0uNTYsMS4yLDMuNzEsMy43MSwwLDAsMCwuMDUsMSw2LjE1LDYuMTUsMCwwLDAsLjI1LDFjLjA5LjI5LjE5LjU3LjMuODUtLjA3LjIzLS4xNC40NC0uMjIuNjYtLjE5LjQ4LS4zOS45NC0uNTgsMS4zOWwtLjMuNjRjLS4zMS42OC0uNjQsMS4zNC0xLDJBMTEsMTEsMCwwLDAsNywxNS43M2E0Ljg5LDQuODksMCwwLDAtLjkyLjc0LDEuNiwxLjYsMCwwLDAtLjUxLjk0LjYuNiwwLDAsMCwuMjQuNTMsMSwxLDAsMCwwLC44MS4xMSw0LjQ2LDQuNDYsMCwwLDAsMi4xMy0xLjU4QTE2LjIzLDE2LjIzLDAsMCwwLDEwLDE0Ljc5aDBhMTkuMTUsMTkuMTUsMCwwLDEsMi42My0uNjJjLjQyLS4wNy44Ni0uMTMsMS4zMS0uMTdhNy4yMSw3LjIxLDAsMCwwLDEsLjc5LDQuODcsNC44NywwLDAsMCwuOTIuNDQsOCw4LDAsMCwwLDEsLjI1LDMsMywwLDAsMCwuNTIsMGMuNCwwLDEtLjE2LDEtLjY1QS42Ni42NiwwLDAsMCwxOC4zNywxNC40NlptLTkuNTMuODljLS4xOS4yOS0uMzcuNTUtLjUzLjc4YTMuODgsMy44OCwwLDAsMS0xLjU4LDEuNDgsMS4xNywxLjE3LDAsMCwxLS40OC4wOWMtLjE2LDAtLjMyLS4wOC0uMzItLjI3YS45My45MywwLDAsMSwuMTMtLjMzLDEuNzIsMS43MiwwLDAsMSwuMjgtLjM3LDUuMDYsNS4wNiwwLDAsMSwuODQtLjY4QTEwLjE4LDEwLjE4LDAsMCwxLDksMTUuMTdaTTExLjE4LDguMWEzLjQsMy40LDAsMCwxLDAtLjksMi41OSwyLjU5LDAsMCwxLC4wOS0uNDJjMC0uMTIuMTItLjQuMjUtLjQzcy4yNy4zOS4yOS41MWE1LjY1LDUuNjUsMCwwLDEtLjE0LDIuMjRsLS4wOS4zM2MtLjA1LS4xNC0uMDktLjI4LS4xNC0uNDJBNy4xMyw3LjEzLDAsMCwxLDExLjE4LDguMVptMS40NCw1LjdhMjIuNTEsMjIuNTEsMCwwLDAtMi4yNC40OSw1LjQzLDUuNDMsMCwwLDAsLjU2LS45LDExLjYxLDExLjYxLDAsMCwwLDEtMi4yNiwxMC43MywxMC43MywwLDAsMCwxLjU2LDIuMzQsMS41NCwxLjU0LDAsMCwwLC4xNy4xOVptNS4zLDFjMCwuMTUtLjM2LjI0LS41MS4yN0EyLjk0LDIuOTQsMCwwLDEsMTYsMTQuOTRhNCw0LDAsMCwxLS44Ni0uNEE0Ljc5LDQuNzksMCwwLDEsMTQuNCwxNGMuMjksMCwuNTksMCwuODksMHMuNiwwLC45LjA2YTMuMiwzLjIsMCwwLDEsMS42My42MkMxNy45MSwxNC42OSwxNy45MywxNC43NSwxNy45MiwxNC44MVoifSkpfSxSPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtpZDoibXBnLW1wNC1pY29uIiwiZGF0YS1uYW1lIjoiV2Fyc3R3YSAxIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyNCAyNCIsImFyaWEtaGlkZGVuIjohMH0sT2JqZWN0KHIuZCkoImRlZnMiLG51bGwsT2JqZWN0KHIuZCkoInN0eWxlIix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDoiI21wZy1tcDQtaWNvbiAuY2xzLTF7ZmlsbDojMTMyYjQwO30jbXBnLW1wNC1pY29uIC5jbHMtMntmaWxsOiMxYzNjNTc7fSNtcGctbXA0LWljb24gLmNscy0ze2ZpbGw6IzMzNTI2ODt9I21wZy1tcDQtaWNvbiAuY2xzLTR7ZmlsbDojZmZmO30ifX0pKSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTEiLGQ6Ik00LjcsMUEyLjA5LDIuMDksMCwwLDAsMi42MSwzLjEzVjIxLjkxQTIuMDksMi4wOSwwLDAsMCw0LjcsMjRIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjcuM0wxNS4xMywxWiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTIiLGQ6Ik00LjcsMEEyLjA5LDIuMDksMCwwLDAsMi42MSwyLjA5VjIwLjg3QTIuMDksMi4wOSwwLDAsMCw0LjcsMjNIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjYuMjZMMTUuMTMsMFoifSksT2JqZWN0KHIuZCkoInBvbHlnb24iLHtjbGFzc05hbWU6ImNscy0xIixwb2ludHM6IjIxLjM5IDExLjMgMjEuMzkgMTAuNDQgMjEuMzkgNi4yNiAxOC4yOSAzLjE2IDE1Ljc3IDUuNjggMjEuMzkgMTEuMyJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTMiLGQ6Ik0yMS4zOSw2LjI2LDE1LjEzLDBWNC4xN2EyLjA5LDIuMDksMCwwLDAsMi4wOSwyLjA5WiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTQiLGQ6Ik0xNC42OSwxMS4xOVY5LjMxYS41NC41NCwwLDAsMC0uNTQtLjU0SDcuNjlhLjU0LjU0LDAsMCwwLS41My41NHY1LjM4YS41NC41NCwwLDAsMCwuNTMuNTRoNi40NmEuNTQuNTQsMCwwLDAsLjU0LS41NFYxMi44MUwxNi44NCwxNVY5WiJ9KSl9LEQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse2lkOiJmbHYtaWNvbiIsImRhdGEtbmFtZSI6IldhcnN0d2EgMSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjQgMjQiLCJhcmlhLWhpZGRlbiI6ITB9LE9iamVjdChyLmQpKCJkZWZzIixudWxsLE9iamVjdChyLmQpKCJzdHlsZSIse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6IiNmbHYtaWNvbiAuY2xzLTF7ZmlsbDojOWIxYzI0O30jZmx2LWljb24gLmNscy0ye2ZpbGw6I2NmMWYyNjt9I2Zsdi1pY29uIC5jbHMtM3tmaWxsOiNmMjMzNDE7fSNmbHYtaWNvbiAuY2xzLTR7ZmlsbDojZmZmO30ifX0pKSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTEiLGQ6Ik00LjcsMUEyLjA5LDIuMDksMCwwLDAsMi42MSwzLjEzVjIxLjkxQTIuMDksMi4wOSwwLDAsMCw0LjcsMjRIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjcuM0wxNS4xMywxWiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTIiLGQ6Ik00LjcsMEEyLjA5LDIuMDksMCwwLDAsMi42MSwyLjA5VjIwLjg3QTIuMDksMi4wOSwwLDAsMCw0LjcsMjNIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjYuMjZMMTUuMTMsMFoifSksT2JqZWN0KHIuZCkoInBvbHlnb24iLHtjbGFzc05hbWU6ImNscy0xIixwb2ludHM6IjIxLjM5IDExLjMgMjEuMzkgMTAuNDQgMjEuMzkgNi4yNiAxOC4yOSAzLjE2IDE1Ljc3IDUuNjggMjEuMzkgMTEuMyJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTMiLGQ6Ik0yMS4zOSw2LjI2LDE1LjEzLDBWNC4xN2EyLjA5LDIuMDksMCwwLDAsMi4wOSwyLjA5WiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2lkOiJwYXRoMzgyMCIsY2xhc3NOYW1lOiJjbHMtNCIsZDoiTTcuNDgsMTYuNHYtMWguMTdhMi40NywyLjQ3LDAsMCwwLDEuNzgtLjgxLDguNSw4LjUsMCwwLDAsMS43NS0zLjI3LDEwLjkyLDEwLjkyLDAsMCwxLDEuNDQtMi44QTQuNTQsNC41NCwwLDAsMSwxNC45LDYuODVhNS41Myw1LjUzLDAsMCwxLDEuNDctLjI3aC4xNVY4LjYzaC0uMTdBMi44MiwyLjgyLDAsMCwwLDE1LjE0LDlhNC4yNyw0LjI3LDAsMCwwLTEuNCwxLjcyYy0uMTIuMjUtLjE4LjIzLjc2LjIzaC44M1YxM0gxMi43OWwtLjE0LjMxYTEzLjQ1LDEzLjQ1LDAsMCwxLTEuMTksMi4xMiw0LjQ4LDQuNDgsMCwwLDEtMy4zMSwxLjlsLS40OCwwSDcuNDh2LTFaIn0pKX0sVD1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qoci5kKSgic3ZnIix7aWQ6ImRvYy1kb2N4LWljb24iLCJkYXRhLW5hbWUiOiJXYXJzdHdhIDEiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgiZGVmcyIsbnVsbCxPYmplY3Qoci5kKSgic3R5bGUiLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOiIjZG9jLWRvY3gtaWNvbiAuY2xzLTF7ZmlsbDojMTYzZDc1O30jZG9jLWRvY3gtaWNvbiAuY2xzLTJ7ZmlsbDojMmQ0YjhlO30jZG9jLWRvY3gtaWNvbiAuY2xzLTN7ZmlsbDojMzY2NmFkO30jZG9jLWRvY3gtaWNvbiAuY2xzLTR7ZmlsbDojZmZmO30jZG9jLWRvY3gtaWNvbiAuY2xzLTV7ZmlsbDojYTBiZGUwO30ifX0pKSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTEiLGQ6Ik00LjcsMUEyLjA5LDIuMDksMCwwLDAsMi42MSwzLjEzVjIxLjkxQTIuMDksMi4wOSwwLDAsMCw0LjcsMjRIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjcuM0wxNS4xMywxWiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTIiLGQ6Ik00LjcsMEEyLjA5LDIuMDksMCwwLDAsMi42MSwyLjA5VjIwLjg3QTIuMDksMi4wOSwwLDAsMCw0LjcsMjNIMTkuM2EyLjA5LDIuMDksMCwwLDAsMi4wOS0yLjA5VjYuMjZMMTUuMTMsMFoifSksT2JqZWN0KHIuZCkoInBvbHlnb24iLHtjbGFzc05hbWU6ImNscy0xIixwb2ludHM6IjIxLjM5IDExLjMgMjEuMzkgMTAuNDQgMjEuMzkgNi4yNiAxOC4yOSAzLjE2IDE1Ljc3IDUuNjggMjEuMzkgMTEuMyJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTMiLGQ6Ik0yMS4zOSw2LjI2LDE1LjEzLDBWNC4xN2EyLjA5LDIuMDksMCwwLDAsMi4wOSwyLjA5WiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2NsYXNzTmFtZToiY2xzLTQiLGQ6Ik01LjUxLDcuNDNoMi4ybDEuNDYsNS44NmgwbDEuOTEtNS44NkgxM2wxLjksNmgwbDEuNTMtNmgybC0yLjY4LDkuMTRIMTRsLTItNi4zM2gwbC0yLDYuMzNIOC4yM1oifSksT2JqZWN0KHIuZCkoInBvbHlnb24iLHtjbGFzc05hbWU6ImNscy01Iixwb2ludHM6IjE4LjI3IDguMTcgMTguNDggNy40MyAxNy41MiA3LjQzIDE4LjI3IDguMTcifSkpfSxOPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtjbGFzc05hbWU6ImNpcmN1bGFyIGxvYWRlci1pY29uIix2aWV3Qm94OiIyNSAyNSA1MCA1MCIsImFyaWEtaGlkZGVuIjohMH0sT2JqZWN0KHIuZCkoImNpcmNsZSIse2NsYXNzTmFtZToicGF0aCIsY3g6NTAsY3k6NTAscjoyMCxmaWxsOiJub25lIixzdHJva2U6IiNmZmYiLHN0cm9rZVdpZHRoOjIsc3Ryb2tlTWl0ZXJsaW1pdDoxMH0pKX0sUD1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qoci5kKSgic3ZnIix7Y2xhc3NOYW1lOiJhbGVydC1pY29uIixmaWxsOiIjMDAwMDAwIixoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoyNCx4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJhcmlhLWhpZGRlbiI6ITB9LE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgwVjB6IixmaWxsOiJub25lIn0pLE9iamVjdChyLmQpKCJwYXRoIix7ZDoiTTExIDE1aDJ2MmgtMnptMC04aDJ2NmgtMnptLjk5LTVDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoifSkpfSxMPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHtjbGFzc05hbWU6ImJvdHMtaWNvbiIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiEwfSxPYmplY3Qoci5kKSgicGF0aCIse2ZpbGw6Im5vbmUiLGQ6Ik0wLDBoMjR2MjRIMFYweiJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0yMS42LDEwLjJsLTAuMS0xLjRjMC0yLjEtMS42LTMuNy0zLjctMy44YzAsMCwwLDAsMCwwSDYuM0M0LjMsNS4xLDIuNiw2LjcsMi42LDguOHYxLjRIMi40Yy0xLjMsMC0yLjQsMS4xLTIuNCwyLjV2MS43YzAsMS4zLDEuMSwyLjQsMi40LDIuNWgxLjh2LThjMC0xLjEsMC45LTIsMi0yaDExLjVjMS4xLDAsMiwwLjksMiwyVjE5YzAsMS4xLTAuOSwyLTIsMmgtMy44Yy0wLjMtMC44LTEuMS0xLjItMS45LTEuMmMtMS4yLDAtMi4xLDAuOS0yLjEsMi4xQzkuOSwyMywxMC44LDI0LDEyLDI0YzAuOCwwLDEuNi0wLjUsMS45LTEuMmgzLjhjMi4xLDAsMy43LTEuNiwzLjgtMy43YzAsMCwwLDAsMCwwdi0yLjRoMC4xYzEuMywwLDIuNC0xLjEsMi40LTIuNHYtMS43QzIzLjksMTEuMywyMi45LDEwLjIsMjEuNiwxMC4yeiJ9KSxPYmplY3Qoci5kKSgiY2lyY2xlIix7Y3g6IjE4LjIiLGN5OiIyIixyOiIxLjcifSksT2JqZWN0KHIuZCkoImNpcmNsZSIse2N4OiI1LjgiLGN5OiIyIixyOiIxLjcifSksT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMTIuMiwxNi41bDIsMS41bDItMS41bDAuNC0wLjJjMC4zLTAuMiwwLjQtMC43LDAuMS0xYy0wLjItMC4zLTAuNy0wLjQtMS0wLjFsMCwwbC0xLjUsMS4xbC0yLTEuNWwtMiwxLjVsLTEuNS0xLjFjLTAuMy0wLjItMC43LTAuMi0xLDAuMWMtMC4yLDAuMy0wLjIsMC43LDAuMSwxbDIuMywxLjdMMTIuMiwxNi41eiJ9KSxPYmplY3Qoci5kKSgiY2lyY2xlIix7Y3g6IjguOSIsY3k6IjExLjQiLHI6IjEuNyJ9KSxPYmplY3Qoci5kKSgiY2lyY2xlIix7Y3g6IjE1LjEiLGN5OiIxMS40IixyOiIxLjcifSkpfSxGPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQifSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSksT2JqZWN0KHIuZCkoInBhdGgiLHtmaWxsOiIjM2Y4OGY2IixkOiJNMTAgMTYuNWw2LTQuNS02LTQuNXY5ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoifSkpfSxfPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChyLmQpKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQifSxPYmplY3Qoci5kKSgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSksT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNMTMgM2MtNC45NyAwLTkgNC4wMy05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQzguMjcgMTkuOTkgMTAuNTEgMjEgMTMgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bS0xIDV2NWw0LjI4IDIuNTQuNzItMS4yMS0zLjUtMi4wOFY4SDEyeiJ9KSl9LHo9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjQsaGVpZ2h0OjI0LHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoiY3VycmVudENvbG9yIn0sT2JqZWN0KHIuZCkoInBhdGgiLHtkOiJNNyAxMEwxMiAxNUwxNyAxMEw3IDEwWiJ9KSl9LEk9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHIuZCkoInN2ZyIse3ZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sT2JqZWN0KHIuZCkoImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMiIsZmlsbDoiIzUzQ0Y3NCJ9KSxPYmplY3Qoci5kKSgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoibTE2LjQ1IDkuMDEtMS4xOS0uOTZhLjIuMiAwIDAgMC0uMTMtLjA1LjIuMiAwIDAgMC0uMTQuMDZsLTQuMzIgNS42Ny0xLjc1LTEuNzJjLS4wNS0uMDQtLjEtLjEzLS4yLS4xM3MtLjE0LjA3LS4yLjEybC0uOTMgMS4wMmEuOTUuOTUgMCAwIDEtLjA1LjA0LjIyLjIyIDAgMCAwLS4wNC4xM2MwIC4wNS4wMi4wOS4wNC4xM2wuMDYuMDUgMy4wNyAzLjAxYy4wNS4wNi4xLjEyLjIuMTIuMDggMCAuMTYtLjEuMi0uMTRsNS4zOS03LjA4YS4yMi4yMiAwIDAgMCAuMDQtLjEzYzAtLjA1LS4wMi0uMS0uMDUtLjE0WiIsZmlsbDoiI2ZmZiJ9KSl9fSwzMTc6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7aWYodC5sZW5ndGg8ZSl0aHJvdyBuZXcgVHlwZUVycm9yKGUrIiBhcmd1bWVudCIrKGU+MT8icyI6IiIpKyIgcmVxdWlyZWQsIGJ1dCBvbmx5ICIrdC5sZW5ndGgrIiBwcmVzZW50Iil9LGUuZXhwb3J0cz10LmRlZmF1bHR9LDMxODpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7KDAsby5kZWZhdWx0KSgxLGFyZ3VtZW50cyk7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpO3JldHVybiBlIGluc3RhbmNlb2YgRGF0ZXx8Im9iamVjdCI9PT10eXBlb2YgZSYmIltvYmplY3QgRGF0ZV0iPT09dD9uZXcgRGF0ZShlLmdldFRpbWUoKSk6Im51bWJlciI9PT10eXBlb2YgZXx8IltvYmplY3QgTnVtYmVyXSI9PT10P25ldyBEYXRlKGUpOigic3RyaW5nIiE9PXR5cGVvZiBlJiYiW29iamVjdCBTdHJpbmddIiE9PXR8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGV8fChjb25zb2xlLndhcm4oIlN0YXJ0aW5nIHdpdGggdjIuMC4wLWJldGEuMSBkYXRlLWZucyBkb2Vzbid0IGFjY2VwdCBzdHJpbmdzIGFzIGRhdGUgYXJndW1lbnRzLiBQbGVhc2UgdXNlIGBwYXJzZUlTT2AgdG8gcGFyc2Ugc3RyaW5ncy4gU2VlOiBodHRwczovL2dpdC5pby9manVsZSIpLGNvbnNvbGUud2FybigobmV3IEVycm9yKS5zdGFjaykpLG5ldyBEYXRlKE5hTikpfTt2YXIgcixvPShyPW4oMzE3KSkmJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9O2UuZXhwb3J0cz10LmRlZmF1bHR9LDMxOTpmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gZS5leHBvcnRzPW49T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZS5leHBvcnRzPW59LDMyNTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7aWYobnVsbD09PWV8fCEwPT09ZXx8ITE9PT1lKXJldHVybiBOYU47dmFyIHQ9TnVtYmVyKGUpO2lmKGlzTmFOKHQpKXJldHVybiB0O3JldHVybiB0PDA/TWF0aC5jZWlsKHQpOk1hdGguZmxvb3IodCl9LGUuZXhwb3J0cz10LmRlZmF1bHR9LDMyNzpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUmJiJvYmplY3QiPT09dHlwZW9mIGUmJiJkZWZhdWx0ImluIGU/ZS5kZWZhdWx0OmV9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPXIobigzNTEpKSxhPXIobigzNTIpKSxpPW4oNCkscz1yKGkpLGM9cihuKDM1MykpLGw9cihuKDM1NCkpLHU9e2FycjpBcnJheS5pc0FycmF5LG9iajpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX0sZnVuOmZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgZX0sc3RyOmZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT09dHlwZW9mIGV9LG51bTpmdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIj09PXR5cGVvZiBlfSx1bmQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWV9LG51bDpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWV9LHNldDpmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFNldH0sbWFwOmZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgTWFwfSxlcXU6ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZSE9PXR5cGVvZiB0KXJldHVybiExO2lmKHUuc3RyKGUpfHx1Lm51bShlKSlyZXR1cm4gZT09PXQ7aWYodS5vYmooZSkmJnUub2JqKHQpJiZPYmplY3Qua2V5cyhlKS5sZW5ndGgrT2JqZWN0LmtleXModCkubGVuZ3RoPT09MClyZXR1cm4hMDt2YXIgbjtmb3IobiBpbiBlKWlmKCEobiBpbiB0KSlyZXR1cm4hMTtmb3IobiBpbiB0KWlmKGVbbl0hPT10W25dKXJldHVybiExO3JldHVybiF1LnVuZChuKXx8ZT09PXR9fTtmdW5jdGlvbiBkKCl7dmFyIGU9aS51c2VTdGF0ZSghMSlbMV07cmV0dXJuIGkudXNlQ2FsbGJhY2soKGZ1bmN0aW9uKCl7cmV0dXJuIGUoKGZ1bmN0aW9uKGUpe3JldHVybiFlfSkpfSksW10pfWZ1bmN0aW9uIGYoZSx0KXtyZXR1cm4gdS51bmQoZSl8fHUubnVsKGUpP3Q6ZX1mdW5jdGlvbiBwKGUpe3JldHVybiB1LnVuZChlKT9bXTp1LmFycihlKT9lOltlXX1mdW5jdGlvbiBiKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHQ+MT90LTE6MCkscj0xO3I8dDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtyZXR1cm4gdS5mdW4oZSk/ZS5hcHBseSh2b2lkIDAsbik6ZX1mdW5jdGlvbiBtKGUpe3ZhciB0PWZ1bmN0aW9uKGUpe3JldHVybiBlLnRvLGUuZnJvbSxlLmNvbmZpZyxlLm9uU3RhcnQsZS5vblJlc3QsZS5vbkZyYW1lLGUuY2hpbGRyZW4sZS5yZXNldCxlLnJldmVyc2UsZS5mb3JjZSxlLmltbWVkaWF0ZSxlLmRlbGF5LGUuYXR0YWNoLGUuZGVzdHJveWVkLGUuaW50ZXJwb2xhdGVUbyxlLnJlZixlLmxhenksYShlLFsidG8iLCJmcm9tIiwiY29uZmlnIiwib25TdGFydCIsIm9uUmVzdCIsIm9uRnJhbWUiLCJjaGlsZHJlbiIsInJlc2V0IiwicmV2ZXJzZSIsImZvcmNlIiwiaW1tZWRpYXRlIiwiZGVsYXkiLCJhdHRhY2giLCJkZXN0cm95ZWQiLCJpbnRlcnBvbGF0ZVRvIiwicmVmIiwibGF6eSJdKX0oZSk7aWYodS51bmQodCkpcmV0dXJuIG8oe3RvOnR9LGUpO3ZhciBuPU9iamVjdC5rZXlzKGUpLnJlZHVjZSgoZnVuY3Rpb24obixyKXt2YXIgYTtyZXR1cm4gdS51bmQodFtyXSk/byh7fSxuLCgoYT17fSlbcl09ZVtyXSxhKSk6bn0pLHt9KTtyZXR1cm4gbyh7dG86dH0sbil9dmFyIGgsZyx2PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMucGF5bG9hZD12b2lkIDAsdGhpcy5jaGlsZHJlbj1bXX12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5nZXRBbmltYXRlZFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUoKX0sdC5nZXRQYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF5bG9hZHx8dGhpc30sdC5hdHRhY2g9ZnVuY3Rpb24oKXt9LHQuZGV0YWNoPWZ1bmN0aW9uKCl7fSx0LmdldENoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW59LHQuYWRkQ2hpbGQ9ZnVuY3Rpb24oZSl7MD09PXRoaXMuY2hpbGRyZW4ubGVuZ3RoJiZ0aGlzLmF0dGFjaCgpLHRoaXMuY2hpbGRyZW4ucHVzaChlKX0sdC5yZW1vdmVDaGlsZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmNoaWxkcmVuLmluZGV4T2YoZSk7dGhpcy5jaGlsZHJlbi5zcGxpY2UodCwxKSwwPT09dGhpcy5jaGlsZHJlbi5sZW5ndGgmJnRoaXMuZGV0YWNoKCl9LGV9KCkseT1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7Zm9yKHZhciB0LG49YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShuKSxvPTA7bzxuO28rKylyW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4odD1lLmNhbGwuYXBwbHkoZSxbdGhpc10uY29uY2F0KHIpKXx8dGhpcykucGF5bG9hZD1bXSx0LmF0dGFjaD1mdW5jdGlvbigpe3JldHVybiB0LnBheWxvYWQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB2JiZlLmFkZENoaWxkKGwodCkpfSkpfSx0LmRldGFjaD1mdW5jdGlvbigpe3JldHVybiB0LnBheWxvYWQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB2JiZlLnJlbW92ZUNoaWxkKGwodCkpfSkpfSx0fXJldHVybiBjKHQsZSksdH0odiksdz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7Zm9yKHZhciB0LG49YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShuKSxvPTA7bzxuO28rKylyW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4odD1lLmNhbGwuYXBwbHkoZSxbdGhpc10uY29uY2F0KHIpKXx8dGhpcykucGF5bG9hZD17fSx0LmF0dGFjaD1mdW5jdGlvbigpe3JldHVybiBPYmplY3QudmFsdWVzKHQucGF5bG9hZCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB2JiZlLmFkZENoaWxkKGwodCkpfSkpfSx0LmRldGFjaD1mdW5jdGlvbigpe3JldHVybiBPYmplY3QudmFsdWVzKHQucGF5bG9hZCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB2JiZlLnJlbW92ZUNoaWxkKGwodCkpfSkpfSx0fWModCxlKTt2YXIgbj10LnByb3RvdHlwZTtyZXR1cm4gbi5nZXRWYWx1ZT1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT0hMSk7dmFyIHQ9e307Zm9yKHZhciBuIGluIHRoaXMucGF5bG9hZCl7dmFyIHI9dGhpcy5wYXlsb2FkW25dOyghZXx8ciBpbnN0YW5jZW9mIHYpJiYodFtuXT1yIGluc3RhbmNlb2Ygdj9yW2U/ImdldEFuaW1hdGVkVmFsdWUiOiJnZXRWYWx1ZSJdKCk6cil9cmV0dXJuIHR9LG4uZ2V0QW5pbWF0ZWRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCEwKX0sdH0odik7ZnVuY3Rpb24geChlLHQpe2g9e2ZuOmUsdHJhbnNmb3JtOnR9fWZ1bmN0aW9uIE8oZSl7Zz1lfXZhciBqLGs9ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93P3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSk6LTF9LEE9ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoZSl9O2Z1bmN0aW9uIE0oZSl7aj1lfXZhciBDLEU9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKX07ZnVuY3Rpb24gUyhlKXtDPWV9dmFyIFIsRCxUPWZ1bmN0aW9uKGUpe3JldHVybiBlLmN1cnJlbnR9O2Z1bmN0aW9uIE4oZSl7Uj1lfXZhciBQPU9iamVjdC5mcmVlemUoe2dldCBhcHBseUFuaW1hdGVkVmFsdWVzKCl7cmV0dXJuIGh9LGluamVjdEFwcGx5QW5pbWF0ZWRWYWx1ZXM6eCxnZXQgY29sb3JOYW1lcygpe3JldHVybiBnfSxpbmplY3RDb2xvck5hbWVzOk8sZ2V0IHJlcXVlc3RGcmFtZSgpe3JldHVybiBrfSxnZXQgY2FuY2VsRnJhbWUoKXtyZXR1cm4gQX0saW5qZWN0RnJhbWU6ZnVuY3Rpb24oZSx0KXtrPWUsQT10fSxnZXQgaW50ZXJwb2xhdGlvbigpe3JldHVybiBqfSxpbmplY3RTdHJpbmdJbnRlcnBvbGF0b3I6TSxnZXQgbm93KCl7cmV0dXJuIEV9LGluamVjdE5vdzpmdW5jdGlvbihlKXtFPWV9LGdldCBkZWZhdWx0RWxlbWVudCgpe3JldHVybiBDfSxpbmplY3REZWZhdWx0RWxlbWVudDpTLGdldCBhbmltYXRlZEFwaSgpe3JldHVybiBUfSxpbmplY3RBbmltYXRlZEFwaTpmdW5jdGlvbihlKXtUPWV9LGdldCBjcmVhdGVBbmltYXRlZFN0eWxlKCl7cmV0dXJuIFJ9LGluamVjdENyZWF0ZUFuaW1hdGVkU3R5bGU6TixnZXQgbWFudWFsRnJhbWVsb29wKCl7cmV0dXJuIER9LGluamVjdE1hbnVhbEZyYW1lbG9vcDpmdW5jdGlvbihlKXtEPWV9fSksTD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7dmFyIHI7cmV0dXJuKHI9ZS5jYWxsKHRoaXMpfHx0aGlzKS51cGRhdGU9dm9pZCAwLHIucGF5bG9hZD10LnN0eWxlP28oe30sdCx7c3R5bGU6Uih0LnN0eWxlKX0pOnQsci51cGRhdGU9bixyLmF0dGFjaCgpLHJ9cmV0dXJuIGModCxlKSx0fSh3KSxGPSExLF89bmV3IFNldCx6PWZ1bmN0aW9uIGUoKXtpZighRilyZXR1cm4hMTt2YXIgdD1FKCksbj1fLHI9QXJyYXkuaXNBcnJheShuKSxvPTA7Zm9yKG49cj9uOm5bU3ltYm9sLml0ZXJhdG9yXSgpOzspe3ZhciBhO2lmKHIpe2lmKG8+PW4ubGVuZ3RoKWJyZWFrO2E9bltvKytdfWVsc2V7aWYoKG89bi5uZXh0KCkpLmRvbmUpYnJlYWs7YT1vLnZhbHVlfWZvcih2YXIgaT1hLHM9ITEsYz0wO2M8aS5jb25maWdzLmxlbmd0aDtjKyspe2Zvcih2YXIgbD1pLmNvbmZpZ3NbY10sdT12b2lkIDAsZD12b2lkIDAsZj0wO2Y8bC5hbmltYXRlZFZhbHVlcy5sZW5ndGg7ZisrKXt2YXIgcD1sLmFuaW1hdGVkVmFsdWVzW2ZdO2lmKCFwLmRvbmUpe3ZhciBiPWwuZnJvbVZhbHVlc1tmXSxtPWwudG9WYWx1ZXNbZl0saD1wLmxhc3RQb3NpdGlvbixnPW0gaW5zdGFuY2VvZiB2LHk9QXJyYXkuaXNBcnJheShsLmluaXRpYWxWZWxvY2l0eSk/bC5pbml0aWFsVmVsb2NpdHlbZl06bC5pbml0aWFsVmVsb2NpdHk7aWYoZyYmKG09bS5nZXRWYWx1ZSgpKSxsLmltbWVkaWF0ZSlwLnNldFZhbHVlKG0pLHAuZG9uZT0hMDtlbHNlIGlmKCJzdHJpbmciIT09dHlwZW9mIGImJiJzdHJpbmciIT09dHlwZW9mIG0pe2lmKHZvaWQgMCE9PWwuZHVyYXRpb24paD1iK2wuZWFzaW5nKCh0LXAuc3RhcnRUaW1lKS9sLmR1cmF0aW9uKSoobS1iKSx1PXQ+PXAuc3RhcnRUaW1lK2wuZHVyYXRpb247ZWxzZSBpZihsLmRlY2F5KWg9Yit5LygxLS45OTgpKigxLU1hdGguZXhwKC0oMS0uOTk4KSoodC1wLnN0YXJ0VGltZSkpKSwodT1NYXRoLmFicyhwLmxhc3RQb3NpdGlvbi1oKTwuMSkmJihtPWgpO2Vsc2V7ZD12b2lkIDAhPT1wLmxhc3RUaW1lP3AubGFzdFRpbWU6dCx5PXZvaWQgMCE9PXAubGFzdFZlbG9jaXR5P3AubGFzdFZlbG9jaXR5OmwuaW5pdGlhbFZlbG9jaXR5LHQ+ZCs2NCYmKGQ9dCk7Zm9yKHZhciB3PU1hdGguZmxvb3IodC1kKSx4PTA7eDx3OysreCl7aCs9MSooeSs9MSooKC1sLnRlbnNpb24qKGgtbSkrLWwuZnJpY3Rpb24qeSkvbC5tYXNzKS8xZTMpLzFlM312YXIgTz0hKCFsLmNsYW1wfHwwPT09bC50ZW5zaW9uKSYmKGI8bT9oPm06aDxtKSxqPU1hdGguYWJzKHkpPD1sLnByZWNpc2lvbixBPTA9PT1sLnRlbnNpb258fE1hdGguYWJzKG0taCk8PWwucHJlY2lzaW9uO3U9T3x8aiYmQSxwLmxhc3RWZWxvY2l0eT15LHAubGFzdFRpbWU9dH1nJiYhbC50b1ZhbHVlc1tmXS5kb25lJiYodT0hMSksdT8ocC52YWx1ZSE9PW0mJihoPW0pLHAuZG9uZT0hMCk6cz0hMCxwLnNldFZhbHVlKGgpLHAubGFzdFBvc2l0aW9uPWh9ZWxzZSBwLnNldFZhbHVlKG0pLHAuZG9uZT0hMH19aS5wcm9wcy5vbkZyYW1lJiYoaS52YWx1ZXNbbC5uYW1lXT1sLmludGVycG9sYXRpb24uZ2V0VmFsdWUoKSl9aS5wcm9wcy5vbkZyYW1lJiZpLnByb3BzLm9uRnJhbWUoaS52YWx1ZXMpLHN8fChfLmRlbGV0ZShpKSxpLnN0b3AoITApKX1yZXR1cm4gXy5zaXplP0Q/RCgpOmsoZSk6Rj0hMSxGfTtmdW5jdGlvbiBJKGUsdCxuKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGUpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gSSh7cmFuZ2U6ZSxvdXRwdXQ6dCxleHRyYXBvbGF0ZTpufSk7aWYoaiYmInN0cmluZyI9PT10eXBlb2YgZS5vdXRwdXRbMF0pcmV0dXJuIGooZSk7dmFyIHI9ZSxvPXIub3V0cHV0LGE9ci5yYW5nZXx8WzAsMV0saT1yLmV4dHJhcG9sYXRlTGVmdHx8ci5leHRyYXBvbGF0ZXx8ImV4dGVuZCIscz1yLmV4dHJhcG9sYXRlUmlnaHR8fHIuZXh0cmFwb2xhdGV8fCJleHRlbmQiLGM9ci5lYXNpbmd8fGZ1bmN0aW9uKGUpe3JldHVybiBlfTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MTtuPHQubGVuZ3RoLTEmJiEodFtuXT49ZSk7KytuKTtyZXR1cm4gbi0xfShlLGEpO3JldHVybiBmdW5jdGlvbihlLHQsbixyLG8sYSxpLHMsYyl7dmFyIGw9Yz9jKGUpOmU7aWYobDx0KXtpZigiaWRlbnRpdHkiPT09aSlyZXR1cm4gbDsiY2xhbXAiPT09aSYmKGw9dCl9aWYobD5uKXtpZigiaWRlbnRpdHkiPT09cylyZXR1cm4gbDsiY2xhbXAiPT09cyYmKGw9bil9aWYocj09PW8pcmV0dXJuIHI7aWYodD09PW4pcmV0dXJuIGU8PXQ/cjpvO3Q9PT0tMS8wP2w9LWw6bj09PTEvMD9sLT10Omw9KGwtdCkvKG4tdCk7bD1hKGwpLHI9PT0tMS8wP2w9LWw6bz09PTEvMD9sKz1yOmw9bCooby1yKStyO3JldHVybiBsfShlLGFbdF0sYVt0KzFdLG9bdF0sb1t0KzFdLGMsaSxzLHIubWFwKX19dmFyIFU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuLHIsbyxhKXt2YXIgaTtyZXR1cm4oaT1lLmNhbGwodGhpcyl8fHRoaXMpLmNhbGM9dm9pZCAwLGkucGF5bG9hZD1uIGluc3RhbmNlb2YgeSYmIShuIGluc3RhbmNlb2YgdCk/bi5nZXRQYXlsb2FkKCk6QXJyYXkuaXNBcnJheShuKT9uOltuXSxpLmNhbGM9SShyLG8sYSksaX1jKHQsZSk7dmFyIG49dC5wcm90b3R5cGU7cmV0dXJuIG4uZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYWxjLmFwcGx5KHRoaXMsdGhpcy5wYXlsb2FkLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VmFsdWUoKX0pKSl9LG4udXBkYXRlQ29uZmlnPWZ1bmN0aW9uKGUsdCxuKXt0aGlzLmNhbGM9SShlLHQsbil9LG4uaW50ZXJwb2xhdGU9ZnVuY3Rpb24oZSxuLHIpe3JldHVybiBuZXcgdCh0aGlzLGUsbixyKX0sdH0oeSk7dmFyIEI9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0KXt2YXIgbjtyZXR1cm4obj1lLmNhbGwodGhpcyl8fHRoaXMpLmFuaW1hdGVkU3R5bGVzPW5ldyBTZXQsbi52YWx1ZT12b2lkIDAsbi5zdGFydFBvc2l0aW9uPXZvaWQgMCxuLmxhc3RQb3NpdGlvbj12b2lkIDAsbi5sYXN0VmVsb2NpdHk9dm9pZCAwLG4uc3RhcnRUaW1lPXZvaWQgMCxuLmxhc3RUaW1lPXZvaWQgMCxuLmRvbmU9ITEsbi5zZXRWYWx1ZT1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PSEwKSxuLnZhbHVlPWUsdCYmbi5mbHVzaCgpfSxuLnZhbHVlPXQsbi5zdGFydFBvc2l0aW9uPXQsbi5sYXN0UG9zaXRpb249dCxufWModCxlKTt2YXIgbj10LnByb3RvdHlwZTtyZXR1cm4gbi5mbHVzaD1mdW5jdGlvbigpezA9PT10aGlzLmFuaW1hdGVkU3R5bGVzLnNpemUmJmZ1bmN0aW9uIGUodCxuKXsidXBkYXRlImluIHQ/bi5hZGQodCk6dC5nZXRDaGlsZHJlbigpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQsbil9KSl9KHRoaXMsdGhpcy5hbmltYXRlZFN0eWxlcyksdGhpcy5hbmltYXRlZFN0eWxlcy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS51cGRhdGUoKX0pKX0sbi5jbGVhclN0eWxlcz1mdW5jdGlvbigpe3RoaXMuYW5pbWF0ZWRTdHlsZXMuY2xlYXIoKX0sbi5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSxuLmludGVycG9sYXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbmV3IFUodGhpcyxlLHQsbil9LHR9KHYpLEg9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0KXt2YXIgbjtyZXR1cm4obj1lLmNhbGwodGhpcyl8fHRoaXMpLnBheWxvYWQ9dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgQihlKX0pKSxufWModCxlKTt2YXIgbj10LnByb3RvdHlwZTtyZXR1cm4gbi5zZXRWYWx1ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7dm9pZCAwPT09dCYmKHQ9ITApLEFycmF5LmlzQXJyYXkoZSk/ZS5sZW5ndGg9PT10aGlzLnBheWxvYWQubGVuZ3RoJiZlLmZvckVhY2goKGZ1bmN0aW9uKGUscil7cmV0dXJuIG4ucGF5bG9hZFtyXS5zZXRWYWx1ZShlLHQpfSkpOnRoaXMucGF5bG9hZC5mb3JFYWNoKChmdW5jdGlvbihuKXtyZXR1cm4gbi5zZXRWYWx1ZShlLHQpfSkpfSxuLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF5bG9hZC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFZhbHVlKCl9KSl9LG4uaW50ZXJwb2xhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFUodGhpcyxlLHQpfSx0fSh5KSxXPTAsVj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzO3RoaXMuaWQ9dm9pZCAwLHRoaXMuaWRsZT0hMCx0aGlzLmhhc0NoYW5nZWQ9ITEsdGhpcy5ndWlkPTAsdGhpcy5sb2NhbD0wLHRoaXMucHJvcHM9e30sdGhpcy5tZXJnZWQ9e30sdGhpcy5hbmltYXRpb25zPXt9LHRoaXMuaW50ZXJwb2xhdGlvbnM9e30sdGhpcy52YWx1ZXM9e30sdGhpcy5jb25maWdzPVtdLHRoaXMubGlzdGVuZXJzPVtdLHRoaXMucXVldWU9W10sdGhpcy5sb2NhbFF1ZXVlPXZvaWQgMCx0aGlzLmdldFZhbHVlcz1mdW5jdGlvbigpe3JldHVybiBlLmludGVycG9sYXRpb25zfSx0aGlzLmlkPVcrK312YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC51cGRhdGU9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIHRoaXM7dmFyIHQ9bShlKSxuPXQuZGVsYXkscj12b2lkIDA9PT1uPzA6bixpPXQudG8scz1hKHQsWyJkZWxheSIsInRvIl0pO2lmKHUuYXJyKGkpfHx1LmZ1bihpKSl0aGlzLnF1ZXVlLnB1c2gobyh7fSxzLHtkZWxheTpyLHRvOml9KSk7ZWxzZSBpZihpKXt2YXIgYz17fTtPYmplY3QuZW50cmllcyhpKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdCxuPWVbMF0sYT1lWzFdLGk9byh7dG86KHQ9e30sdFtuXT1hLHQpLGRlbGF5OmIocixuKX0scyksbD1jW2kuZGVsYXldJiZjW2kuZGVsYXldLnRvO2NbaS5kZWxheV09byh7fSxjW2kuZGVsYXldLGkse3RvOm8oe30sbCxpLnRvKX0pfSkpLHRoaXMucXVldWU9T2JqZWN0LnZhbHVlcyhjKX1yZXR1cm4gdGhpcy5xdWV1ZT10aGlzLnF1ZXVlLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZGVsYXktdC5kZWxheX0pKSx0aGlzLmRpZmYocyksdGhpc30sdC5zdGFydD1mdW5jdGlvbihlKXt2YXIgdCxuPXRoaXM7aWYodGhpcy5xdWV1ZS5sZW5ndGgpe3RoaXMuaWRsZT0hMSx0aGlzLmxvY2FsUXVldWUmJnRoaXMubG9jYWxRdWV1ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLmZyb20scj12b2lkIDA9PT10P3t9OnQsYT1lLnRvLGk9dm9pZCAwPT09YT97fTphO3Uub2JqKHIpJiYobi5tZXJnZWQ9byh7fSxyLG4ubWVyZ2VkKSksdS5vYmooaSkmJihuLm1lcmdlZD1vKHt9LG4ubWVyZ2VkLGkpKX0pKTt2YXIgcj10aGlzLmxvY2FsPSsrdGhpcy5ndWlkLGk9dGhpcy5sb2NhbFF1ZXVlPXRoaXMucXVldWU7dGhpcy5xdWV1ZT1bXSxpLmZvckVhY2goKGZ1bmN0aW9uKHQsbyl7dmFyIHM9dC5kZWxheSxjPWEodCxbImRlbGF5Il0pLGw9ZnVuY3Rpb24odCl7bz09PWkubGVuZ3RoLTEmJnI9PT1uLmd1aWQmJnQmJihuLmlkbGU9ITAsbi5wcm9wcy5vblJlc3QmJm4ucHJvcHMub25SZXN0KG4ubWVyZ2VkKSksZSYmZSgpfSxkPXUuYXJyKGMudG8pfHx1LmZ1bihjLnRvKTtzP3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cj09PW4uZ3VpZCYmKGQ/bi5ydW5Bc3luYyhjLGwpOm4uZGlmZihjKS5zdGFydChsKSl9KSxzKTpkP24ucnVuQXN5bmMoYyxsKTpuLmRpZmYoYykuc3RhcnQobCl9KSl9ZWxzZSB1LmZ1bihlKSYmdGhpcy5saXN0ZW5lcnMucHVzaChlKSx0aGlzLnByb3BzLm9uU3RhcnQmJnRoaXMucHJvcHMub25TdGFydCgpLHQ9dGhpcyxfLmhhcyh0KXx8Xy5hZGQodCksRnx8KEY9ITAsayhEfHx6KSk7cmV0dXJuIHRoaXN9LHQuc3RvcD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoZSl9KSksdGhpcy5saXN0ZW5lcnM9W10sdGhpc30sdC5wYXVzZT1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpcy5zdG9wKCEwKSxlJiYodD10aGlzLF8uaGFzKHQpJiZfLmRlbGV0ZSh0KSksdGhpc30sdC5ydW5Bc3luYz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj0oZS5kZWxheSxhKGUsWyJkZWxheSJdKSksaT10aGlzLmxvY2FsLHM9UHJvbWlzZS5yZXNvbHZlKHZvaWQgMCk7aWYodS5hcnIoci50bykpZm9yKHZhciBjPWZ1bmN0aW9uKGUpe3ZhciB0PWUsYT1vKHt9LHIsbShyLnRvW3RdKSk7dS5hcnIoYS5jb25maWcpJiYoYS5jb25maWc9YS5jb25maWdbdF0pLHM9cy50aGVuKChmdW5jdGlvbigpe2lmKGk9PT1uLmd1aWQpcmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtyZXR1cm4gbi5kaWZmKGEpLnN0YXJ0KGUpfSkpfSkpfSxsPTA7bDxyLnRvLmxlbmd0aDtsKyspYyhsKTtlbHNlIGlmKHUuZnVuKHIudG8pKXt2YXIgZCxmPTA7cz1zLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHIudG8oKGZ1bmN0aW9uKGUpe3ZhciB0PW8oe30scixtKGUpKTtpZih1LmFycih0LmNvbmZpZykmJih0LmNvbmZpZz10LmNvbmZpZ1tmXSksZisrLGk9PT1uLmd1aWQpcmV0dXJuIGQ9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3JldHVybiBuLmRpZmYodCkuc3RhcnQoZSl9KSl9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSEwKSxuLnN0b3AoZSl9KSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gZH0pKX0pKX1zLnRoZW4odCl9LHQuZGlmZj1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMucHJvcHM9byh7fSx0aGlzLnByb3BzLGUpO3ZhciBuPXRoaXMucHJvcHMscj1uLmZyb20sYT12b2lkIDA9PT1yP3t9OnIsaT1uLnRvLHM9dm9pZCAwPT09aT97fTppLGM9bi5jb25maWcsbD12b2lkIDA9PT1jP3t9OmMsZD1uLnJldmVyc2UsbT1uLmF0dGFjaCxoPW4ucmVzZXQsdj1uLmltbWVkaWF0ZTtpZihkKXt2YXIgeT1bcyxhXTthPXlbMF0scz15WzFdfXRoaXMubWVyZ2VkPW8oe30sYSx0aGlzLm1lcmdlZCxzKSx0aGlzLmhhc0NoYW5nZWQ9ITE7dmFyIHc9bSYmbSh0aGlzKTtpZih0aGlzLmFuaW1hdGlvbnM9T2JqZWN0LmVudHJpZXModGhpcy5tZXJnZWQpLnJlZHVjZSgoZnVuY3Rpb24oZSxuKXt2YXIgcj1uWzBdLGk9blsxXSxzPWVbcl18fHt9LGM9dS5udW0oaSksZD11LnN0cihpKSYmIWkuc3RhcnRzV2l0aCgiIyIpJiYhL1xkLy50ZXN0KGkpJiYhZ1tpXSxtPXUuYXJyKGkpLHk9IWMmJiFtJiYhZCx4PXUudW5kKGFbcl0pP2k6YVtyXSxPPWN8fG18fGQ/aToxLGs9YihsLHIpO3cmJihPPXcuYW5pbWF0aW9uc1tyXS5wYXJlbnQpO3ZhciBBLE09cy5wYXJlbnQsQz1zLmludGVycG9sYXRpb24sUz1wKHc/Ty5nZXRQYXlsb2FkKCk6TyksUj1pO3kmJihSPWooe3JhbmdlOlswLDFdLG91dHB1dDpbaSxpXX0pKDEpKTt2YXIgRCxUPUMmJkMuZ2V0VmFsdWUoKSxOPSF1LnVuZChNKSYmcy5hbmltYXRlZFZhbHVlcy5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4hZS5kb25lfSkpLFA9IXUuZXF1KFIsVCksTD0hdS5lcXUoUixzLnByZXZpb3VzKSxGPSF1LmVxdShrLHMuY29uZmlnKTtpZihofHxMJiZQfHxGKXt2YXIgXztpZihjfHxkKU09Qz1zLnBhcmVudHx8bmV3IEIoeCk7ZWxzZSBpZihtKU09Qz1zLnBhcmVudHx8bmV3IEgoeCk7ZWxzZSBpZih5KXt2YXIgej1zLmludGVycG9sYXRpb24mJnMuaW50ZXJwb2xhdGlvbi5jYWxjKHMucGFyZW50LnZhbHVlKTt6PXZvaWQgMD09PXp8fGg/eDp6LHMucGFyZW50PyhNPXMucGFyZW50KS5zZXRWYWx1ZSgwLCExKTpNPW5ldyBCKDApO3ZhciBJPXtvdXRwdXQ6W3osaV19O3MuaW50ZXJwb2xhdGlvbj8oQz1zLmludGVycG9sYXRpb24scy5pbnRlcnBvbGF0aW9uLnVwZGF0ZUNvbmZpZyhJKSk6Qz1NLmludGVycG9sYXRlKEkpfXJldHVybiBTPXAodz9PLmdldFBheWxvYWQoKTpPKSxBPXAoTS5nZXRQYXlsb2FkKCkpLGgmJiF5JiZNLnNldFZhbHVlKHgsITEpLHQuaGFzQ2hhbmdlZD0hMCxBLmZvckVhY2goKGZ1bmN0aW9uKGUpe2Uuc3RhcnRQb3NpdGlvbj1lLnZhbHVlLGUubGFzdFBvc2l0aW9uPWUudmFsdWUsZS5sYXN0VmVsb2NpdHk9Tj9lLmxhc3RWZWxvY2l0eTp2b2lkIDAsZS5sYXN0VGltZT1OP2UubGFzdFRpbWU6dm9pZCAwLGUuc3RhcnRUaW1lPUUoKSxlLmRvbmU9ITEsZS5hbmltYXRlZFN0eWxlcy5jbGVhcigpfSkpLGIodixyKSYmTS5zZXRWYWx1ZSh5P086aSwhMSksbyh7fSxlLCgoXz17fSlbcl09byh7fSxzLHtuYW1lOnIscGFyZW50Ok0saW50ZXJwb2xhdGlvbjpDLGFuaW1hdGVkVmFsdWVzOkEsdG9WYWx1ZXM6UyxwcmV2aW91czpSLGNvbmZpZzprLGZyb21WYWx1ZXM6cChNLmdldFZhbHVlKCkpLGltbWVkaWF0ZTpiKHYsciksaW5pdGlhbFZlbG9jaXR5OmYoay52ZWxvY2l0eSwwKSxjbGFtcDpmKGsuY2xhbXAsITEpLHByZWNpc2lvbjpmKGsucHJlY2lzaW9uLC4wMSksdGVuc2lvbjpmKGsudGVuc2lvbiwxNzApLGZyaWN0aW9uOmYoay5mcmljdGlvbiwyNiksbWFzczpmKGsubWFzcywxKSxkdXJhdGlvbjprLmR1cmF0aW9uLGVhc2luZzpmKGsuZWFzaW5nLChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSxkZWNheTprLmRlY2F5fSksXykpfXJldHVybiBQP2U6KHkmJihNLnNldFZhbHVlKDEsITEpLEMudXBkYXRlQ29uZmlnKHtvdXRwdXQ6W1IsUl19KSksTS5kb25lPSEwLHQuaGFzQ2hhbmdlZD0hMCxvKHt9LGUsKChEPXt9KVtyXT1vKHt9LGVbcl0se3ByZXZpb3VzOlJ9KSxEKSkpfSksdGhpcy5hbmltYXRpb25zKSx0aGlzLmhhc0NoYW5nZWQpZm9yKHZhciB4IGluIHRoaXMuY29uZmlncz1PYmplY3QudmFsdWVzKHRoaXMuYW5pbWF0aW9ucyksdGhpcy52YWx1ZXM9e30sdGhpcy5pbnRlcnBvbGF0aW9ucz17fSx0aGlzLmFuaW1hdGlvbnMpdGhpcy5pbnRlcnBvbGF0aW9uc1t4XT10aGlzLmFuaW1hdGlvbnNbeF0uaW50ZXJwb2xhdGlvbix0aGlzLnZhbHVlc1t4XT10aGlzLmFuaW1hdGlvbnNbeF0uaW50ZXJwb2xhdGlvbi5nZXRWYWx1ZSgpO3JldHVybiB0aGlzfSx0LmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLnN0b3AoKSx0aGlzLnByb3BzPXt9LHRoaXMubWVyZ2VkPXt9LHRoaXMuYW5pbWF0aW9ucz17fSx0aGlzLmludGVycG9sYXRpb25zPXt9LHRoaXMudmFsdWVzPXt9LHRoaXMuY29uZmlncz1bXSx0aGlzLmxvY2FsPTB9LGV9KCkscT1mdW5jdGlvbihlLHQpe3ZhciBuPWkudXNlUmVmKCExKSxyPWkudXNlUmVmKCksbz11LmZ1bih0KSxhPWkudXNlTWVtbygoZnVuY3Rpb24oKXt2YXIgbjtyZXR1cm4gci5jdXJyZW50JiYoci5jdXJyZW50Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGVzdHJveSgpfSkpLHIuY3VycmVudD12b2lkIDApLFtuZXcgQXJyYXkoZSkuZmlsbCgpLm1hcCgoZnVuY3Rpb24oZSxyKXt2YXIgYT1uZXcgVixpPW8/Yih0LHIsYSk6dFtyXTtyZXR1cm4gMD09PXImJihuPWkucmVmKSxhLnVwZGF0ZShpKSxufHxhLnN0YXJ0KCksYX0pKSxuXX0pLFtlXSkscz1hWzBdLGM9YVsxXTtyLmN1cnJlbnQ9cztpLnVzZUltcGVyYXRpdmVIYW5kbGUoYywoZnVuY3Rpb24oKXtyZXR1cm57c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoci5jdXJyZW50Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtyZXR1cm4gZS5zdGFydCh0KX0pKX0pKSl9LHN0b3A6ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY3VycmVudC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdG9wKGUpfSkpfSxnZXQgY29udHJvbGxlcnMoKXtyZXR1cm4gci5jdXJyZW50fX19KSk7dmFyIGw9aS51c2VNZW1vKChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gci5jdXJyZW50Lm1hcCgoZnVuY3Rpb24odCxuKXt0LnVwZGF0ZShvP2IoZSxuLHQpOmVbbl0pLGN8fHQuc3RhcnQoKX0pKX19KSxbZV0pO2kudXNlRWZmZWN0KChmdW5jdGlvbigpe24uY3VycmVudD9vfHxsKHQpOmN8fHIuY3VycmVudC5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zdGFydCgpfSkpfSkpLGkudXNlRWZmZWN0KChmdW5jdGlvbigpe3JldHVybiBuLmN1cnJlbnQ9ITAsZnVuY3Rpb24oKXtyZXR1cm4gci5jdXJyZW50LmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLmRlc3Ryb3koKX0pKX19KSxbXSk7dmFyIGQ9ci5jdXJyZW50Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VmFsdWVzKCl9KSk7cmV0dXJuIG8/W2QsbCxmdW5jdGlvbihlKXtyZXR1cm4gci5jdXJyZW50LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhdXNlKGUpfSkpfV06ZH0sWT0wLEc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oImZ1bmN0aW9uIj09PXR5cGVvZiB0P2UubWFwKHQpOnAodCkpLm1hcChTdHJpbmcpfSxRPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaXRlbXMsbj1lLmtleXMscj12b2lkIDA9PT1uP2Z1bmN0aW9uKGUpe3JldHVybiBlfTpuLGk9YShlLFsiaXRlbXMiLCJrZXlzIl0pO3JldHVybiB0PXAodm9pZCAwIT09dD90Om51bGwpLG8oe2l0ZW1zOnQsa2V5czpHKHQscil9LGkpfTtmdW5jdGlvbiBLKGUsdCl7dmFyIG49ZnVuY3Rpb24oKXtpZihvKXtpZihhPj1yLmxlbmd0aClyZXR1cm4iYnJlYWsiO2k9clthKytdfWVsc2V7aWYoKGE9ci5uZXh0KCkpLmRvbmUpcmV0dXJuImJyZWFrIjtpPWEudmFsdWV9dmFyIG49aS5rZXkscz1mdW5jdGlvbihlKXtyZXR1cm4gZS5rZXkhPT1ufTsodS51bmQodCl8fHQ9PT1uKSYmKGUuY3VycmVudC5pbnN0YW5jZXMuZGVsZXRlKG4pLGUuY3VycmVudC50cmFuc2l0aW9ucz1lLmN1cnJlbnQudHJhbnNpdGlvbnMuZmlsdGVyKHMpLGUuY3VycmVudC5kZWxldGVkPWUuY3VycmVudC5kZWxldGVkLmZpbHRlcihzKSl9LHI9ZS5jdXJyZW50LmRlbGV0ZWQsbz1BcnJheS5pc0FycmF5KHIpLGE9MDtmb3Iocj1vP3I6cltTeW1ib2wuaXRlcmF0b3JdKCk7Oyl7dmFyIGk7aWYoImJyZWFrIj09PW4oKSlicmVha31lLmN1cnJlbnQuZm9yY2VVcGRhdGUoKX12YXIgWj1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe3ZhciBuO3JldHVybiB2b2lkIDA9PT10JiYodD17fSksbj1lLmNhbGwodGhpcyl8fHRoaXMsIXQudHJhbnNmb3JtfHx0LnRyYW5zZm9ybSBpbnN0YW5jZW9mIHZ8fCh0PWgudHJhbnNmb3JtKHQpKSxuLnBheWxvYWQ9dCxufXJldHVybiBjKHQsZSksdH0odyksWD17dHJhbnNwYXJlbnQ6MCxhbGljZWJsdWU6NDA0Mjg1MDMwMyxhbnRpcXVld2hpdGU6NDIwOTc2MDI1NSxhcXVhOjE2Nzc3MjE1LGFxdWFtYXJpbmU6MjE0NzQ3MjYzOSxhenVyZTo0MDQzMzA5MDU1LGJlaWdlOjQxMjY1MzA4MTUsYmlzcXVlOjQyOTMxODI3MTksYmxhY2s6MjU1LGJsYW5jaGVkYWxtb25kOjQyOTM2NDM3NzUsYmx1ZTo2NTUzNSxibHVldmlvbGV0OjIzMTgxMzE5NjcsYnJvd246Mjc3MTAwNDE1OSxidXJseXdvb2Q6MzczNjYzNTM5MSxidXJudHNpZW5uYTozOTM0MTUwMTQzLGNhZGV0Ymx1ZToxNjA0MjMxNDIzLGNoYXJ0cmV1c2U6MjE0NzQxODM2NyxjaG9jb2xhdGU6MzUzMDEwNDU3NSxjb3JhbDo0Mjg2NTMzODg3LGNvcm5mbG93ZXJibHVlOjE2ODc1NDczOTEsY29ybnNpbGs6NDI5NDQ5OTU4Myxjcmltc29uOjM2OTIzMTM4NTUsY3lhbjoxNjc3NzIxNSxkYXJrYmx1ZTozNTgzOSxkYXJrY3lhbjo5MTQ1MzQzLGRhcmtnb2xkZW5yb2Q6MzA5NTc5MjYzOSxkYXJrZ3JheToyODQ2NDY4NjA3LGRhcmtncmVlbjo2NTUzODU1LGRhcmtncmV5OjI4NDY0Njg2MDcsZGFya2toYWtpOjMxODI5MTQ1NTksZGFya21hZ2VudGE6MjMzMjA2ODg2MyxkYXJrb2xpdmVncmVlbjoxNDMzMDg3OTk5LGRhcmtvcmFuZ2U6NDI4NzM2NTM3NSxkYXJrb3JjaGlkOjI1NzAyNDMzMjcsZGFya3JlZDoyMzMyMDMzMjc5LGRhcmtzYWxtb246MzkxODk1MzIxNSxkYXJrc2VhZ3JlZW46MjQxMTQ5OTUxOSxkYXJrc2xhdGVibHVlOjEyMTE5OTMwODcsZGFya3NsYXRlZ3JheTo3OTM3MjY5NzUsZGFya3NsYXRlZ3JleTo3OTM3MjY5NzUsZGFya3R1cnF1b2lzZToxMzU1NDE3NSxkYXJrdmlvbGV0OjI0ODMwODIyMzksZGVlcHBpbms6NDI3OTUzODY4NyxkZWVwc2t5Ymx1ZToxMjU4MjkxMSxkaW1ncmF5OjE3Njg1MTYwOTUsZGltZ3JleToxNzY4NTE2MDk1LGRvZGdlcmJsdWU6NTEyODE5MTk5LGZpcmVicmljazoyOTg4NTgxNjMxLGZsb3JhbHdoaXRlOjQyOTQ2MzU3NzUsZm9yZXN0Z3JlZW46NTc5NTQzODA3LGZ1Y2hzaWE6NDI3ODI1NTYxNSxnYWluc2Jvcm86MzcwNTQ2MjAxNSxnaG9zdHdoaXRlOjQxNzcwNjgwMzEsZ29sZDo0MjkyMjgwNTc1LGdvbGRlbnJvZDozNjY4MjU0OTc1LGdyYXk6MjE1NTkwNTI3OSxncmVlbjo4Mzg4ODYzLGdyZWVueWVsbG93OjI5MTkxODIzMzUsZ3JleToyMTU1OTA1Mjc5LGhvbmV5ZGV3OjQwNDMzMDUyMTUsaG90cGluazo0Mjg1MTE3Njk1LGluZGlhbnJlZDozNDQ1MzgyMzk5LGluZGlnbzoxMjU4MzI0NzM1LGl2b3J5OjQyOTQ5NjM0NTUsa2hha2k6NDA0MTY0MTIxNSxsYXZlbmRlcjozODczODk3MjE1LGxhdmVuZGVyYmx1c2g6NDI5Mzk4MTY5NSxsYXduZ3JlZW46MjA5Njg5MDExMSxsZW1vbmNoaWZmb246NDI5NDYyNjgxNSxsaWdodGJsdWU6MjkxNjY3MzI3OSxsaWdodGNvcmFsOjQwMzQ5NTM0NzEsbGlnaHRjeWFuOjM3NzQ4NzM1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6NDIxMDc0MjAxNSxsaWdodGdyYXk6MzU1Mzg3NDk0MyxsaWdodGdyZWVuOjI0MzE1NTM3OTEsbGlnaHRncmV5OjM1NTM4NzQ5NDMsbGlnaHRwaW5rOjQyOTAxNjcyOTUsbGlnaHRzYWxtb246NDI4ODcwNzMyNyxsaWdodHNlYWdyZWVuOjU0ODU4MDA5NSxsaWdodHNreWJsdWU6MjI3ODQ4ODgzMSxsaWdodHNsYXRlZ3JheToyMDA1NDQxMDIzLGxpZ2h0c2xhdGVncmV5OjIwMDU0NDEwMjMsbGlnaHRzdGVlbGJsdWU6Mjk2NTY5MjE1OSxsaWdodHllbGxvdzo0Mjk0OTU5MzU5LGxpbWU6MTY3MTE5MzUsbGltZWdyZWVuOjg1MjMwODczNSxsaW5lbjo0MjEwMDkxNzc1LG1hZ2VudGE6NDI3ODI1NTYxNSxtYXJvb246MjE0NzQ4MzkwMyxtZWRpdW1hcXVhbWFyaW5lOjE3MjQ3NTQ2ODcsbWVkaXVtYmx1ZTo1MjczNSxtZWRpdW1vcmNoaWQ6MzEyNjE4NzAwNyxtZWRpdW1wdXJwbGU6MjQ3MzY0NzEwMyxtZWRpdW1zZWFncmVlbjoxMDE4MzkzMDg3LG1lZGl1bXNsYXRlYmx1ZToyMDcwNDc0NDk1LG1lZGl1bXNwcmluZ2dyZWVuOjE2NDIzNjc5LG1lZGl1bXR1cnF1b2lzZToxMjIxNzA5MDU1LG1lZGl1bXZpb2xldHJlZDozMzQwMDc2NTQzLG1pZG5pZ2h0Ymx1ZTo0MjEwOTc3MjcsbWludGNyZWFtOjQxMjcxOTM4NTUsbWlzdHlyb3NlOjQyOTMxOTAxNDMsbW9jY2FzaW46NDI5MzE3ODg3OSxuYXZham93aGl0ZTo0MjkyNzgzNjE1LG5hdnk6MzMwMjMsb2xkbGFjZTo0MjYwNzUxMTAzLG9saXZlOjIxNTU4NzI1MTEsb2xpdmVkcmFiOjE4MDQ0Nzc0Mzksb3JhbmdlOjQyODkwMDM3NzUsb3JhbmdlcmVkOjQyODI3MTIzMTksb3JjaGlkOjM2NjQ4MjgxNTkscGFsZWdvbGRlbnJvZDo0MDA4MjI1NTM1LHBhbGVncmVlbjoyNTY2NjI1NTM1LHBhbGV0dXJxdW9pc2U6Mjk1MTY3MTU1MSxwYWxldmlvbGV0cmVkOjM2ODE1ODgyMjMscGFwYXlhd2hpcDo0MjkzOTA3OTY3LHBlYWNocHVmZjo0MjkyNTI0NTQzLHBlcnU6MzQ0ODA2MTk1MSxwaW5rOjQyOTA4MjUyMTUscGx1bTozNzE4MzA3MzI3LHBvd2RlcmJsdWU6Mjk2NzUyOTIxNSxwdXJwbGU6MjE0NzUxNjY3MSxyZWJlY2NhcHVycGxlOjE3MTQ2NTc3OTEscmVkOjQyNzgxOTAzMzUscm9zeWJyb3duOjMxNjM1MjUxMTkscm95YWxibHVlOjEwOTc0NTgxNzUsc2FkZGxlYnJvd246MjMzNjU2MDEyNyxzYWxtb246NDIwMjcyMjA0NyxzYW5keWJyb3duOjQxMDQ0MTM0Mzksc2VhZ3JlZW46NzgwODgzOTY3LHNlYXNoZWxsOjQyOTQzMDc1ODMsc2llbm5hOjI2ODk3NDAyODcsc2lsdmVyOjMyMzM4NTc3OTEsc2t5Ymx1ZToyMjc4NDg0OTkxLHNsYXRlYmx1ZToxNzg0MzM1ODcxLHNsYXRlZ3JheToxODg3NDczOTE5LHNsYXRlZ3JleToxODg3NDczOTE5LHNub3c6NDI5NDYzODMzNSxzcHJpbmdncmVlbjoxNjc0NDQ0NyxzdGVlbGJsdWU6MTE4Mjk3MTEzNSx0YW46MzUzNTA0NzkzNSx0ZWFsOjg0MjE2MzEsdGhpc3RsZTozNjM2NDUxNTgzLHRvbWF0bzo0Mjg0Njk2NTc1LHR1cnF1b2lzZToxMDg4NDc1MzkxLHZpb2xldDo0MDAxNTU4MjcxLHdoZWF0OjQxMjUwMTI5OTEsd2hpdGU6NDI5NDk2NzI5NSx3aGl0ZXNtb2tlOjQxMjY1MzcyMTUseWVsbG93OjQyOTQ5MDIwMTUseWVsbG93Z3JlZW46MjU5NzEzOTE5OX0sJD0iWy0rXT9cXGQqXFwuP1xcZCsiO2Z1bmN0aW9uIEooKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4iXFwoXFxzKigiK3Quam9pbigiKVxccyosXFxzKigiKSsiKVxccypcXCkifXZhciBlZT1uZXcgUmVnRXhwKCJyZ2IiK0ooJCwkLCQpKSx0ZT1uZXcgUmVnRXhwKCJyZ2JhIitKKCQsJCwkLCQpKSxuZT1uZXcgUmVnRXhwKCJoc2wiK0ooJCwiWy0rXT9cXGQqXFwuP1xcZCslIiwiWy0rXT9cXGQqXFwuP1xcZCslIikpLHJlPW5ldyBSZWdFeHAoImhzbGEiK0ooJCwiWy0rXT9cXGQqXFwuP1xcZCslIiwiWy0rXT9cXGQqXFwuP1xcZCslIiwkKSksb2U9L14jKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8sYWU9L14jKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLGllPS9eIyhbMC05YS1mQS1GXXs2fSkkLyxzZT0vXiMoWzAtOWEtZkEtRl17OH0pJC87ZnVuY3Rpb24gY2UoZSx0LG4pe3JldHVybiBuPDAmJihuKz0xKSxuPjEmJihuLT0xKSxuPDEvNj9lKzYqKHQtZSkqbjpuPC41P3Q6bjwyLzM/ZSsodC1lKSooMi8zLW4pKjY6ZX1mdW5jdGlvbiBsZShlLHQsbil7dmFyIHI9bjwuNT9uKigxK3QpOm4rdC1uKnQsbz0yKm4tcixhPWNlKG8scixlKzEvMyksaT1jZShvLHIsZSkscz1jZShvLHIsZS0xLzMpO3JldHVybiBNYXRoLnJvdW5kKDI1NSphKTw8MjR8TWF0aC5yb3VuZCgyNTUqaSk8PDE2fE1hdGgucm91bmQoMjU1KnMpPDw4fWZ1bmN0aW9uIHVlKGUpe3ZhciB0PXBhcnNlSW50KGUsMTApO3JldHVybiB0PDA/MDp0PjI1NT8yNTU6dH1mdW5jdGlvbiBkZShlKXtyZXR1cm4ocGFyc2VGbG9hdChlKSUzNjArMzYwKSUzNjAvMzYwfWZ1bmN0aW9uIGZlKGUpe3ZhciB0PXBhcnNlRmxvYXQoZSk7cmV0dXJuIHQ8MD8wOnQ+MT8yNTU6TWF0aC5yb3VuZCgyNTUqdCl9ZnVuY3Rpb24gcGUoZSl7dmFyIHQ9cGFyc2VGbG9hdChlKTtyZXR1cm4gdDwwPzA6dD4xMDA/MTp0LzEwMH1mdW5jdGlvbiBiZShlKXt2YXIgdD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4ibnVtYmVyIj09PXR5cGVvZiBlP2U+Pj4wPT09ZSYmZT49MCYmZTw9NDI5NDk2NzI5NT9lOm51bGw6KHQ9aWUuZXhlYyhlKSk/cGFyc2VJbnQodFsxXSsiZmYiLDE2KT4+PjA6WC5oYXNPd25Qcm9wZXJ0eShlKT9YW2VdOih0PWVlLmV4ZWMoZSkpPyh1ZSh0WzFdKTw8MjR8dWUodFsyXSk8PDE2fHVlKHRbM10pPDw4fDI1NSk+Pj4wOih0PXRlLmV4ZWMoZSkpPyh1ZSh0WzFdKTw8MjR8dWUodFsyXSk8PDE2fHVlKHRbM10pPDw4fGZlKHRbNF0pKT4+PjA6KHQ9b2UuZXhlYyhlKSk/cGFyc2VJbnQodFsxXSt0WzFdK3RbMl0rdFsyXSt0WzNdK3RbM10rImZmIiwxNik+Pj4wOih0PXNlLmV4ZWMoZSkpP3BhcnNlSW50KHRbMV0sMTYpPj4+MDoodD1hZS5leGVjKGUpKT9wYXJzZUludCh0WzFdK3RbMV0rdFsyXSt0WzJdK3RbM10rdFszXSt0WzRdK3RbNF0sMTYpPj4+MDoodD1uZS5leGVjKGUpKT8oMjU1fGxlKGRlKHRbMV0pLHBlKHRbMl0pLHBlKHRbM10pKSk+Pj4wOih0PXJlLmV4ZWMoZSkpPyhsZShkZSh0WzFdKSxwZSh0WzJdKSxwZSh0WzNdKSl8ZmUodFs0XSkpPj4+MDpudWxsfShlKTtyZXR1cm4gbnVsbD09PXQ/ZToicmdiYSgiKygoNDI3ODE5MDA4MCYodD10fHwwKSk+Pj4yNCkrIiwgIisoKDE2NzExNjgwJnQpPj4+MTYpKyIsICIrKCg2NTI4MCZ0KT4+PjgpKyIsICIrKDI1NSZ0KS8yNTUrIikifXZhciBtZT0vWytcLV0/KD86MHxbMS05XVxkKikoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/L2csaGU9LygjKD86WzAtOWEtZl17Mn0pezIsNH18KCNbMC05YS1mXXszfSl8KHJnYnxoc2wpYT9cKCgtP1xkKyU/Wyxcc10rKXsyLDN9XHMqW1xkXC5dKyU/XCkpL2dpLGdlPW5ldyBSZWdFeHAoIigiK09iamVjdC5rZXlzKFgpLmpvaW4oInwiKSsiKSIsImciKSx2ZT17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYm9yZGVySW1hZ2VPdXRzZXQ6ITAsYm9yZGVySW1hZ2VTbGljZTohMCxib3JkZXJJbWFnZVdpZHRoOiEwLGJveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGJveE9yZGluYWxHcm91cDohMCxjb2x1bW5Db3VudDohMCxjb2x1bW5zOiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZsZXhPcmRlcjohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1NwYW46ITAsZ3JpZFJvd1N0YXJ0OiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3BhbjohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZm9udFdlaWdodDohMCxsaW5lQ2xhbXA6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsdGFiU2l6ZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZURhc2hhcnJheTohMCxzdHJva2VEYXNob2Zmc2V0OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH0seWU9WyJXZWJraXQiLCJNcyIsIk1veiIsIk8iXTtmdW5jdGlvbiB3ZShlLHQsbil7cmV0dXJuIG51bGw9PXR8fCJib29sZWFuIj09PXR5cGVvZiB0fHwiIj09PXQ/IiI6bnx8Im51bWJlciIhPT10eXBlb2YgdHx8MD09PXR8fHZlLmhhc093blByb3BlcnR5KGUpJiZ2ZVtlXT8oIiIrdCkudHJpbSgpOnQrInB4In12ZT1PYmplY3Qua2V5cyh2ZSkucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiB5ZS5mb3JFYWNoKChmdW5jdGlvbihuKXtyZXR1cm4gZVtmdW5jdGlvbihlLHQpe3JldHVybiBlK3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHJpbmcoMSl9KG4sdCldPWVbdF19KSksZX0pLHZlKTt2YXIgeGU9e307TigoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBaKGUpfSkpLFMoImRpdiIpLE0oKGZ1bmN0aW9uKGUpe3ZhciB0PWUub3V0cHV0Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShoZSxiZSl9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKGdlLGJlKX0pKSxuPXRbMF0ubWF0Y2gobWUpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm5bXX0pKTt0LmZvckVhY2goKGZ1bmN0aW9uKGUpe2UubWF0Y2gobWUpLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5bdF0ucHVzaCgrZSl9KSl9KSk7dmFyIHI9dFswXS5tYXRjaChtZSkubWFwKChmdW5jdGlvbih0LHIpe3JldHVybiBJKG8oe30sZSx7b3V0cHV0Om5bcl19KSl9KSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPTA7cmV0dXJuIHRbMF0ucmVwbGFjZShtZSwoZnVuY3Rpb24oKXtyZXR1cm4gcltuKytdKGUpfSkpLnJlcGxhY2UoL3JnYmFcKChbMC05XC4tXSspLCAoWzAtOVwuLV0rKSwgKFswLTlcLi1dKyksIChbMC05XC4tXSspXCkvZ2ksKGZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuInJnYmEoIitNYXRoLnJvdW5kKHQpKyIsICIrTWF0aC5yb3VuZChuKSsiLCAiK01hdGgucm91bmQocikrIiwgIitvKyIpIn0pKX19KSksTyhYKSx4KChmdW5jdGlvbihlLHQpe2lmKCFlLm5vZGVUeXBlfHx2b2lkIDA9PT1lLnNldEF0dHJpYnV0ZSlyZXR1cm4hMTt2YXIgbj10LnN0eWxlLHI9dC5jaGlsZHJlbixvPXQuc2Nyb2xsVG9wLGk9dC5zY3JvbGxMZWZ0LHM9YSh0LFsic3R5bGUiLCJjaGlsZHJlbiIsInNjcm9sbFRvcCIsInNjcm9sbExlZnQiXSksYz0iZmlsdGVyIj09PWUubm9kZU5hbWV8fGUucGFyZW50Tm9kZSYmImZpbHRlciI9PT1lLnBhcmVudE5vZGUubm9kZU5hbWU7Zm9yKHZhciBsIGluIHZvaWQgMCE9PW8mJihlLnNjcm9sbFRvcD1vKSx2b2lkIDAhPT1pJiYoZS5zY3JvbGxMZWZ0PWkpLHZvaWQgMCE9PXImJihlLnRleHRDb250ZW50PXIpLG4paWYobi5oYXNPd25Qcm9wZXJ0eShsKSl7dmFyIHU9MD09PWwuaW5kZXhPZigiLS0iKSxkPXdlKGwsbltsXSx1KTsiZmxvYXQiPT09bCYmKGw9ImNzc0Zsb2F0IiksdT9lLnN0eWxlLnNldFByb3BlcnR5KGwsZCk6ZS5zdHlsZVtsXT1kfWZvcih2YXIgZiBpbiBzKXt2YXIgcD1jP2Y6eGVbZl18fCh4ZVtmXT1mLnJlcGxhY2UoLyhbQS1aXSkvZywoZnVuY3Rpb24oZSl7cmV0dXJuIi0iK2UudG9Mb3dlckNhc2UoKX0pKSk7InVuZGVmaW5lZCIhPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGUocCkmJmUuc2V0QXR0cmlidXRlKHAsc1tmXSl9fSksKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpO3ZhciBPZSxqZSxrZT0oT2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuZm9yd2FyZFJlZigoZnVuY3Rpb24odCxuKXt2YXIgcj1kKCksYz1pLnVzZVJlZighMCksbD1pLnVzZVJlZihudWxsKSxmPWkudXNlUmVmKG51bGwpLHA9aS51c2VDYWxsYmFjaygoZnVuY3Rpb24oZSl7dmFyIHQ9bC5jdXJyZW50O2wuY3VycmVudD1uZXcgTChlLChmdW5jdGlvbigpe3ZhciBlPSExO2YuY3VycmVudCYmKGU9aC5mbihmLmN1cnJlbnQsbC5jdXJyZW50LmdldEFuaW1hdGVkVmFsdWUoKSkpLGYuY3VycmVudCYmITEhPT1lfHxyKCl9KSksdCYmdC5kZXRhY2goKX0pLFtdKTtpLnVzZUVmZmVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtjLmN1cnJlbnQ9ITEsbC5jdXJyZW50JiZsLmN1cnJlbnQuZGV0YWNoKCl9fSksW10pLGkudXNlSW1wZXJhdGl2ZUhhbmRsZShuLChmdW5jdGlvbigpe3JldHVybiBUKGYsYyxyKX0pKSxwKHQpO3ZhciBiLG09bC5jdXJyZW50LmdldFZhbHVlKCksZz0obS5zY3JvbGxUb3AsbS5zY3JvbGxMZWZ0LGEobSxbInNjcm9sbFRvcCIsInNjcm9sbExlZnQiXSkpLHY9KGI9ZSwhdS5mdW4oYil8fGIucHJvdG90eXBlIGluc3RhbmNlb2Ygcy5Db21wb25lbnQ/ZnVuY3Rpb24oZSl7cmV0dXJuIGYuY3VycmVudD1mdW5jdGlvbihlLHQpe3JldHVybiB0JiYodS5mdW4odCk/dChlKTp1Lm9iaih0KSYmKHQuY3VycmVudD1lKSksZX0oZSxuKX06dm9pZCAwKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGUsbyh7fSxnLHtyZWY6dn0pKX0pKX0sdm9pZCAwPT09KGplPSExKSYmKGplPSEwKSxmdW5jdGlvbihlKXtyZXR1cm4odS5hcnIoZSk/ZTpPYmplY3Qua2V5cyhlKSkucmVkdWNlKChmdW5jdGlvbihlLHQpe3ZhciBuPWplP3RbMF0udG9Mb3dlckNhc2UoKSt0LnN1YnN0cmluZygxKTp0O3JldHVybiBlW25dPU9lKG4pLGV9KSxPZSl9KSxBZT1rZShbImEiLCJhYmJyIiwiYWRkcmVzcyIsImFyZWEiLCJhcnRpY2xlIiwiYXNpZGUiLCJhdWRpbyIsImIiLCJiYXNlIiwiYmRpIiwiYmRvIiwiYmlnIiwiYmxvY2txdW90ZSIsImJvZHkiLCJiciIsImJ1dHRvbiIsImNhbnZhcyIsImNhcHRpb24iLCJjaXRlIiwiY29kZSIsImNvbCIsImNvbGdyb3VwIiwiZGF0YSIsImRhdGFsaXN0IiwiZGQiLCJkZWwiLCJkZXRhaWxzIiwiZGZuIiwiZGlhbG9nIiwiZGl2IiwiZGwiLCJkdCIsImVtIiwiZW1iZWQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZCIsImhlYWRlciIsImhncm91cCIsImhyIiwiaHRtbCIsImkiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImtleWdlbiIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1hcCIsIm1hcmsiLCJtZW51IiwibWVudWl0ZW0iLCJtZXRhIiwibWV0ZXIiLCJuYXYiLCJub3NjcmlwdCIsIm9iamVjdCIsIm9sIiwib3B0Z3JvdXAiLCJvcHRpb24iLCJvdXRwdXQiLCJwIiwicGFyYW0iLCJwaWN0dXJlIiwicHJlIiwicHJvZ3Jlc3MiLCJxIiwicnAiLCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNjcmlwdCIsInNlY3Rpb24iLCJzZWxlY3QiLCJzbWFsbCIsInNvdXJjZSIsInNwYW4iLCJzdHJvbmciLCJzdHlsZSIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0ZXh0YXJlYSIsInRmb290IiwidGgiLCJ0aGVhZCIsInRpbWUiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1IiwidWwiLCJ2YXIiLCJ2aWRlbyIsIndiciIsImNpcmNsZSIsImNsaXBQYXRoIiwiZGVmcyIsImVsbGlwc2UiLCJmb3JlaWduT2JqZWN0IiwiZyIsImltYWdlIiwibGluZSIsImxpbmVhckdyYWRpZW50IiwibWFzayIsInBhdGgiLCJwYXR0ZXJuIiwicG9seWdvbiIsInBvbHlsaW5lIiwicmFkaWFsR3JhZGllbnQiLCJyZWN0Iiwic3RvcCIsInN2ZyIsInRleHQiLCJ0c3BhbiJdKTt0LmFwcGx5PWtlLHQuY29uZmlnPXtkZWZhdWx0Ont0ZW5zaW9uOjE3MCxmcmljdGlvbjoyNn0sZ2VudGxlOnt0ZW5zaW9uOjEyMCxmcmljdGlvbjoxNH0sd29iYmx5Ont0ZW5zaW9uOjE4MCxmcmljdGlvbjoxMn0sc3RpZmY6e3RlbnNpb246MjEwLGZyaWN0aW9uOjIwfSxzbG93Ont0ZW5zaW9uOjI4MCxmcmljdGlvbjo2MH0sbW9sYXNzZXM6e3RlbnNpb246MjgwLGZyaWN0aW9uOjEyMH19LHQudXBkYXRlPXosdC5hbmltYXRlZD1BZSx0LmE9QWUsdC5pbnRlcnBvbGF0ZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUmJm5ldyBVKGUsdCxuKX0sdC5HbG9iYWxzPVAsdC51c2VTcHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9dS5mdW4oZSksbj1xKDEsdD9lOltlXSkscj1uWzBdLG89blsxXSxhPW5bMl07cmV0dXJuIHQ/W3JbMF0sbyxhXTpyfSx0LnVzZVRyYWlsPWZ1bmN0aW9uKGUsdCl7dmFyIG49aS51c2VSZWYoITEpLHI9dS5mdW4odCksYT1iKHQpLHM9aS51c2VSZWYoKSxjPXEoZSwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gMD09PWUmJihzLmN1cnJlbnQ9W10pLHMuY3VycmVudC5wdXNoKHQpLG8oe30sYSx7Y29uZmlnOmIoYS5jb25maWcsZSksYXR0YWNoOmU+MCYmZnVuY3Rpb24oKXtyZXR1cm4gcy5jdXJyZW50W2UtMV19fSl9KSksbD1jWzBdLGQ9Y1sxXSxmPWNbMl0scD1pLnVzZU1lbW8oKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBkKChmdW5jdGlvbih0LG4pe2UucmV2ZXJzZTt2YXIgcj1lLnJldmVyc2U/dCsxOnQtMSxpPXMuY3VycmVudFtyXTtyZXR1cm4gbyh7fSxlLHtjb25maWc6YihlLmNvbmZpZ3x8YS5jb25maWcsdCksYXR0YWNoOmkmJmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSl9KSl9fSksW2UsYS5yZXZlcnNlXSk7cmV0dXJuIGkudXNlRWZmZWN0KChmdW5jdGlvbigpe24uY3VycmVudCYmIXImJnAodCl9KSksaS51c2VFZmZlY3QoKGZ1bmN0aW9uKCl7bi5jdXJyZW50PSEwfSksW10pLHI/W2wscCxmXTpsfSx0LnVzZVRyYW5zaXRpb249ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW8oe2l0ZW1zOmUsa2V5czp0fHxmdW5jdGlvbihlKXtyZXR1cm4gZX19LG4pLHM9UShyKSxjPXMubGF6eSxsPXZvaWQgMCE9PWMmJmMsdT0ocy51bmlxdWUscy5yZXNldCksZj12b2lkIDAhPT11JiZ1LHA9KHMuZW50ZXIscy5sZWF2ZSxzLnVwZGF0ZSxzLm9uRGVzdHJveWVkKSxtPShzLmtleXMscy5pdGVtcyxzLm9uRnJhbWUpLGg9cy5vblJlc3QsZz1zLm9uU3RhcnQsdj1zLnJlZix5PWEocyxbImxhenkiLCJ1bmlxdWUiLCJyZXNldCIsImVudGVyIiwibGVhdmUiLCJ1cGRhdGUiLCJvbkRlc3Ryb3llZCIsImtleXMiLCJpdGVtcyIsIm9uRnJhbWUiLCJvblJlc3QiLCJvblN0YXJ0IiwicmVmIl0pLHc9ZCgpLHg9aS51c2VSZWYoITEpLE89aS51c2VSZWYoe21vdW50ZWQ6ITEsZmlyc3Q6ITAsZGVsZXRlZDpbXSxjdXJyZW50Ont9LHRyYW5zaXRpb25zOltdLHByZXZQcm9wczp7fSxwYXVzZWQ6ISFyLnJlZixpbnN0YW5jZXM6IXguY3VycmVudCYmbmV3IE1hcCxmb3JjZVVwZGF0ZTp3fSk7cmV0dXJuIGkudXNlSW1wZXJhdGl2ZUhhbmRsZShyLnJlZiwoZnVuY3Rpb24oKXtyZXR1cm57c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShPLmN1cnJlbnQuaW5zdGFuY2VzKS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMV07cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zdGFydChlKX0pKX0pKSl9LHN0b3A6ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LmZyb20oTy5jdXJyZW50Lmluc3RhbmNlcykuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMV0uc3RvcChlKX0pKX0sZ2V0IGNvbnRyb2xsZXJzKCl7cmV0dXJuIEFycmF5LmZyb20oTy5jdXJyZW50Lmluc3RhbmNlcykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZVsxXX0pKX19fSkpLE8uY3VycmVudD1mdW5jdGlvbihlLHQpe3ZhciBuPWUuZmlyc3Qscj1lLnByZXZQcm9wcyxpPWEoZSxbImZpcnN0IiwicHJldlByb3BzIl0pLHM9USh0KSxjPXMuaXRlbXMsbD1zLmtleXMsdT1zLmluaXRpYWwsZD1zLmZyb20sZj1zLmVudGVyLHA9cy5sZWF2ZSxtPXMudXBkYXRlLGg9cy50cmFpbCxnPXZvaWQgMD09PWg/MDpoLHY9cy51bmlxdWUseT1zLmNvbmZpZyx3PXMub3JkZXIseD12b2lkIDA9PT13P1siZW50ZXIiLCJsZWF2ZSIsInVwZGF0ZSJdOncsTz1RKHIpLGo9Ty5rZXlzLGs9Ty5pdGVtcyxBPW8oe30saS5jdXJyZW50KSxNPVtdLmNvbmNhdChpLmRlbGV0ZWQpLEM9T2JqZWN0LmtleXMoQSksRT1uZXcgU2V0KEMpLFM9bmV3IFNldChsKSxSPWwuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hRS5oYXMoZSl9KSksRD1pLnRyYW5zaXRpb25zLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIWUuZGVzdHJveWVkJiYhUy5oYXMoZS5vcmlnaW5hbEtleSl9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5vcmlnaW5hbEtleX0pKSxUPWwuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gRS5oYXMoZSl9KSksTj0tZztmb3IoO3gubGVuZ3RoOyl7c3dpdGNoKHguc2hpZnQoKSl7Y2FzZSJlbnRlciI6Ui5mb3JFYWNoKChmdW5jdGlvbihlLHQpe3YmJk0uZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3JpZ2luYWxLZXk9PT1lfSkpJiYoTT1NLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQub3JpZ2luYWxLZXkhPT1lfSkpKTt2YXIgcj1sLmluZGV4T2YoZSksbz1jW3JdLGE9biYmdm9pZCAwIT09dT8iaW5pdGlhbCI6ImVudGVyIjtBW2VdPXtzbG90OmEsb3JpZ2luYWxLZXk6ZSxrZXk6dj9TdHJpbmcoZSk6WSsrLGl0ZW06byx0cmFpbDpOKz1nLGNvbmZpZzpiKHksbyxhKSxmcm9tOmIobiYmdm9pZCAwIT09dT91fHx7fTpkLG8pLHRvOmIoZixvKX19KSk7YnJlYWs7Y2FzZSJsZWF2ZSI6RC5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1qLmluZGV4T2YoZSksbj1rW3RdO00udW5zaGlmdChvKHt9LEFbZV0se3Nsb3Q6ImxlYXZlIixkZXN0cm95ZWQ6ITAsbGVmdDpqW01hdGgubWF4KDAsdC0xKV0scmlnaHQ6altNYXRoLm1pbihqLmxlbmd0aCx0KzEpXSx0cmFpbDpOKz1nLGNvbmZpZzpiKHksbiwibGVhdmUiKSx0bzpiKHAsbil9KSksZGVsZXRlIEFbZV19KSk7YnJlYWs7Y2FzZSJ1cGRhdGUiOlQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9bC5pbmRleE9mKGUpLG49Y1t0XTtBW2VdPW8oe30sQVtlXSx7aXRlbTpuLHNsb3Q6InVwZGF0ZSIsdHJhaWw6Tis9Zyxjb25maWc6Yih5LG4sInVwZGF0ZSIpLHRvOmIobSxuKX0pfSkpfX12YXIgUD1sLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIEFbZV19KSk7cmV0dXJuIE0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmxlZnQscj0oZS5yaWdodCxhKGUsWyJsZWZ0IiwicmlnaHQiXSkpOy0xIT09KHQ9UC5maW5kSW5kZXgoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9yaWdpbmFsS2V5PT09bn0pKSkmJih0Kz0xKSx0PU1hdGgubWF4KDAsdCksUD1bXS5jb25jYXQoUC5zbGljZSgwLHQpLFtyXSxQLnNsaWNlKHQpKX0pKSxvKHt9LGkse2NoYW5nZWQ6Ui5sZW5ndGh8fEQubGVuZ3RofHxULmxlbmd0aCxmaXJzdDpuJiYwPT09Ui5sZW5ndGgsdHJhbnNpdGlvbnM6UCxjdXJyZW50OkEsZGVsZXRlZDpNLHByZXZQcm9wczp0fSl9KE8uY3VycmVudCxyKSxPLmN1cnJlbnQuY2hhbmdlZCYmTy5jdXJyZW50LnRyYW5zaXRpb25zLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUuc2xvdCxuPWUuZnJvbSxyPWUudG8sYT1lLmNvbmZpZyxpPWUudHJhaWwscz1lLmtleSxjPWUuaXRlbTtPLmN1cnJlbnQuaW5zdGFuY2VzLmhhcyhzKXx8Ty5jdXJyZW50Lmluc3RhbmNlcy5zZXQocyxuZXcgVik7dmFyIHU9Ty5jdXJyZW50Lmluc3RhbmNlcy5nZXQocyksZD1vKHt9LHkse3RvOnIsZnJvbTpuLGNvbmZpZzphLHJlZjp2LG9uUmVzdDpmdW5jdGlvbihuKXtPLmN1cnJlbnQubW91bnRlZCYmKGUuZGVzdHJveWVkJiYodnx8bHx8SyhPLHMpLHAmJnAoYykpLCFBcnJheS5mcm9tKE8uY3VycmVudC5pbnN0YW5jZXMpLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiFlWzFdLmlkbGV9KSkmJih2fHxsKSYmTy5jdXJyZW50LmRlbGV0ZWQubGVuZ3RoPjAmJksoTyksaCYmaChjLHQsbikpfSxvblN0YXJ0OmcmJmZ1bmN0aW9uKCl7cmV0dXJuIGcoYyx0KX0sb25GcmFtZTptJiZmdW5jdGlvbihlKXtyZXR1cm4gbShjLHQsZSl9LGRlbGF5OmkscmVzZXQ6ZiYmImVudGVyIj09PXR9KTt1LnVwZGF0ZShkKSxPLmN1cnJlbnQucGF1c2VkfHx1LnN0YXJ0KCl9KSksaS51c2VFZmZlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIE8uY3VycmVudC5tb3VudGVkPXguY3VycmVudD0hMCxmdW5jdGlvbigpe08uY3VycmVudC5tb3VudGVkPXguY3VycmVudD0hMSxBcnJheS5mcm9tKE8uY3VycmVudC5pbnN0YW5jZXMpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV0uZGVzdHJveSgpfSkpLE8uY3VycmVudC5pbnN0YW5jZXMuY2xlYXIoKX19KSxbXSksTy5jdXJyZW50LnRyYW5zaXRpb25zLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pdGVtLG49ZS5zbG90LHI9ZS5rZXk7cmV0dXJue2l0ZW06dCxrZXk6cixzdGF0ZTpuLHByb3BzOk8uY3VycmVudC5pbnN0YW5jZXMuZ2V0KHIpLmdldFZhbHVlcygpfX0pKX0sdC51c2VDaGFpbj1mdW5jdGlvbihlLHQsbil7dm9pZCAwPT09biYmKG49MWUzKTt2YXIgcj1pLnVzZVJlZigpO2kudXNlRWZmZWN0KChmdW5jdGlvbigpe3UuZXF1KGUsci5jdXJyZW50KT9lLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUuY3VycmVudDtyZXR1cm4gdCYmdC5zdGFydCgpfSkpOnQ/ZS5mb3JFYWNoKChmdW5jdGlvbihlLHIpe3ZhciBhPWUuY3VycmVudDtpZihhKXt2YXIgaT1hLmNvbnRyb2xsZXJzO2lmKGkubGVuZ3RoKXt2YXIgcz1uKnRbcl07aS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnF1ZXVlPWUucXVldWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbyh7fSxlLHtkZWxheTplLmRlbGF5K3N9KX0pKSxlLnN0YXJ0KCl9KSl9fX0pKTplLnJlZHVjZSgoZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQuY3VycmVudDtyZXR1cm4gZS50aGVuKChmdW5jdGlvbigpe3JldHVybiByLnN0YXJ0KCl9KSl9KSxQcm9taXNlLnJlc29sdmUoKSksci5jdXJyZW50PWV9KSl9LHQudXNlU3ByaW5ncz1xfSwzMjk6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5GcmFtZUNvbnRleHRDb25zdW1lcj10LkZyYW1lQ29udGV4dD12b2lkIDA7dmFyIHI9bigzMzIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGcmFtZUNvbnRleHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLkZyYW1lQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRnJhbWVDb250ZXh0Q29uc3VtZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLkZyYW1lQ29udGV4dENvbnN1bWVyfX0pO3ZhciBvLGE9bigzNDUpLGk9KG89YSkmJm8uX19lc01vZHVsZT9vOntkZWZhdWx0Om99O3QuZGVmYXVsdD1pLmRlZmF1bHR9LDMzMDpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7KDAsby5kZWZhdWx0KSgxLGFyZ3VtZW50cyk7dmFyIHQ9MSxuPSgwLHIuZGVmYXVsdCkoZSksYT1uLmdldFVUQ0RheSgpLGk9KGE8dD83OjApK2EtdDtyZXR1cm4gbi5zZXRVVENEYXRlKG4uZ2V0VVRDRGF0ZSgpLWkpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCksbn07dmFyIHI9YShuKDMxOCkpLG89YShuKDMxNykpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUuZXhwb3J0cz10LmRlZmF1bHR9LDMzMTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxhLmRlZmF1bHQpKDEsYXJndW1lbnRzKTt2YXIgbj10fHx7fSxpPW4ubG9jYWxlLHM9aSYmaS5vcHRpb25zJiZpLm9wdGlvbnMud2Vla1N0YXJ0c09uLGM9bnVsbD09cz8wOigwLHIuZGVmYXVsdCkocyksbD1udWxsPT1uLndlZWtTdGFydHNPbj9jOigwLHIuZGVmYXVsdCkobi53ZWVrU3RhcnRzT24pO2lmKCEobD49MCYmbDw9NikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIndlZWtTdGFydHNPbiBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNiBpbmNsdXNpdmVseSIpO3ZhciB1PSgwLG8uZGVmYXVsdCkoZSksZD11LmdldFVUQ0RheSgpLGY9KGQ8bD83OjApK2QtbDtyZXR1cm4gdS5zZXRVVENEYXRlKHUuZ2V0VVRDRGF0ZSgpLWYpLHUuc2V0VVRDSG91cnMoMCwwLDAsMCksdX07dmFyIHI9aShuKDMyNSkpLG89aShuKDMxOCkpLGE9aShuKDMxNykpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUuZXhwb3J0cz10LmRlZmF1bHR9LDMzMjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LkZyYW1lQ29udGV4dENvbnN1bWVyPXQuRnJhbWVDb250ZXh0UHJvdmlkZXI9dC5GcmFtZUNvbnRleHQ9dm9pZCAwO3ZhciByLG89big0KSxhPShyPW8pJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfTt2YXIgaT12b2lkIDAscz12b2lkIDA7InVuZGVmaW5lZCIhPT10eXBlb2YgZG9jdW1lbnQmJihpPWRvY3VtZW50KSwidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cmJihzPXdpbmRvdyk7dmFyIGM9dC5GcmFtZUNvbnRleHQ9YS5kZWZhdWx0LmNyZWF0ZUNvbnRleHQoe2RvY3VtZW50Omksd2luZG93OnN9KSxsPWMuUHJvdmlkZXIsdT1jLkNvbnN1bWVyO3QuRnJhbWVDb250ZXh0UHJvdmlkZXI9bCx0LkZyYW1lQ29udGV4dENvbnN1bWVyPXV9LDMzMzpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LlNUWUxJU19QUk9QRVJUWV9DT05URVhUPXZvaWQgMDt2YXIgcixvPW4oMzQ3KSxhPShyPW8pJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfTt2YXIgaT10LlNUWUxJU19QUk9QRVJUWV9DT05URVhUPS0xO2Z1bmN0aW9uIHMoZSx0KXtpZihlPT09aSlyZXR1cm4gYS5kZWZhdWx0LnRyYW5zZm9ybSh0KX10LmRlZmF1bHQ9c30sMzM0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDkpLG89bigzNTUpO3Ioe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITAsZm9yY2VkOiFuKDIxNykoKGZ1bmN0aW9uKGUpe0FycmF5LmZyb20oZSl9KSl9LHtmcm9tOm99KX0sMzM1OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpeygwLG8uZGVmYXVsdCkoMixhcmd1bWVudHMpO3ZhciBuPSgwLHIuZGVmYXVsdCkoZSksYT0oMCxyLmRlZmF1bHQpKHQpO3JldHVybiBuLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpfTt2YXIgcj1hKG4oMzU4KSksbz1hKG4oMzE3KSk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzM2OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3ZhciBuPWU8MD8iLSI6IiIscj1NYXRoLmFicyhlKS50b1N0cmluZygpO2Zvcig7ci5sZW5ndGg8dDspcj0iMCIrcjtyZXR1cm4gbityfSxlLmV4cG9ydHM9dC5kZWZhdWx0fSwzMzc6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpeygwLGEuZGVmYXVsdCkoMSxhcmd1bWVudHMpO3ZhciB0PSgwLHIuZGVmYXVsdCkoZSksbj10LmdldFVUQ0Z1bGxZZWFyKCksaT1uZXcgRGF0ZSgwKTtpLnNldFVUQ0Z1bGxZZWFyKG4rMSwwLDQpLGkuc2V0VVRDSG91cnMoMCwwLDAsMCk7dmFyIHM9KDAsby5kZWZhdWx0KShpKSxjPW5ldyBEYXRlKDApO2Muc2V0VVRDRnVsbFllYXIobiwwLDQpLGMuc2V0VVRDSG91cnMoMCwwLDAsMCk7dmFyIGw9KDAsby5kZWZhdWx0KShjKTtyZXR1cm4gdC5nZXRUaW1lKCk+PXMuZ2V0VGltZSgpP24rMTp0LmdldFRpbWUoKT49bC5nZXRUaW1lKCk/bjpuLTF9O3ZhciByPWkobigzMTgpKSxvPWkobigzMzApKSxhPWkobigzMTcpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1lLmV4cG9ydHM9dC5kZWZhdWx0fSwzMzg6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7KDAsaS5kZWZhdWx0KSgxLGFyZ3VtZW50cyk7dmFyIG49KDAsby5kZWZhdWx0KShlLHQpLHM9bi5nZXRVVENGdWxsWWVhcigpLGM9dHx8e30sbD1jLmxvY2FsZSx1PWwmJmwub3B0aW9ucyYmbC5vcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSxkPW51bGw9PXU/MTooMCxyLmRlZmF1bHQpKHUpLGY9bnVsbD09Yy5maXJzdFdlZWtDb250YWluc0RhdGU/ZDooMCxyLmRlZmF1bHQpKGMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtpZighKGY+PTEmJmY8PTcpKXRocm93IG5ldyBSYW5nZUVycm9yKCJmaXJzdFdlZWtDb250YWluc0RhdGUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDcgaW5jbHVzaXZlbHkiKTt2YXIgcD1uZXcgRGF0ZSgwKTtwLnNldFVUQ0Z1bGxZZWFyKHMrMSwwLGYpLHAuc2V0VVRDSG91cnMoMCwwLDAsMCk7dmFyIGI9KDAsYS5kZWZhdWx0KShwLHQpLG09bmV3IERhdGUoMCk7bS5zZXRVVENGdWxsWWVhcihzLDAsZiksbS5zZXRVVENIb3VycygwLDAsMCwwKTt2YXIgaD0oMCxhLmRlZmF1bHQpKG0sdCk7cmV0dXJuIG4uZ2V0VGltZSgpPj1iLmdldFRpbWUoKT9zKzE6bi5nZXRUaW1lKCk+PWguZ2V0VGltZSgpP3M6cy0xfTt2YXIgcj1zKG4oMzI1KSksbz1zKG4oMzE4KSksYT1zKG4oMzMxKSksaT1zKG4oMzE3KSk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzM5OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKChmdW5jdGlvbih0KXt2YXIgbj1mdW5jdGlvbihlLHQpe3ZhciBuPWVbMV18fCIiLHI9ZVszXTtpZighcilyZXR1cm4gbjtpZih0JiYiZnVuY3Rpb24iPT09dHlwZW9mIGJ0b2Epe3ZhciBvPWZ1bmN0aW9uKGUpe3ZhciB0PWJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGUpKSkpLG49InNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIuY29uY2F0KHQpO3JldHVybiIvKiMgIi5jb25jYXQobiwiICovIil9KHIpLGE9ci5zb3VyY2VzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIi8qIyBzb3VyY2VVUkw9Ii5jb25jYXQoci5zb3VyY2VSb290fHwiIikuY29uY2F0KGUsIiAqLyIpfSkpO3JldHVybltuXS5jb25jYXQoYSkuY29uY2F0KFtvXSkuam9pbigiXG4iKX1yZXR1cm5bbl0uam9pbigiXG4iKX0odCxlKTtyZXR1cm4gdFsyXT8iQG1lZGlhICIuY29uY2F0KHRbMl0sIiB7IikuY29uY2F0KG4sIn0iKTpufSkpLmpvaW4oIiIpfSx0Lmk9ZnVuY3Rpb24oZSxuLHIpeyJzdHJpbmciPT09dHlwZW9mIGUmJihlPVtbbnVsbCxlLCIiXV0pO3ZhciBvPXt9O2lmKHIpZm9yKHZhciBhPTA7YTx0aGlzLmxlbmd0aDthKyspe3ZhciBpPXRoaXNbYV1bMF07bnVsbCE9aSYmKG9baV09ITApfWZvcih2YXIgcz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgYz1bXS5jb25jYXQoZVtzXSk7ciYmb1tjWzBdXXx8KG4mJihjWzJdP2NbMl09IiIuY29uY2F0KG4sIiBhbmQgIikuY29uY2F0KGNbMl0pOmNbMl09biksdC5wdXNoKGMpKX19LHR9fSwzNDA6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDMxOSksbz1uLm4ociksYT0obig0KSxuKDMyOSkpLGk9big0NCk7dC5hPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0KGkuZCkoYS5GcmFtZUNvbnRleHRDb25zdW1lcixudWxsLChmdW5jdGlvbihuKXt2YXIgcj1uLmRvY3VtZW50LGE9bi53aW5kb3c7cmV0dXJuIE9iamVjdChpLmQpKGUsbygpKHt9LHQse2lmcmFtZURvY3VtZW50OnIsaWZyYW1lV2luZG93OmF9KSl9KSl9fX0sMzQ1OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxyJiZlKHQsciksdH19KCksYT1uKDQpLGk9ZChhKSxzPWQobigxMDgpKSxjPWQobigyMTApKSxsPW4oMzMyKSx1PWQobigzNDYpKTtmdW5jdGlvbiBkKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgZj1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsbil7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCk7dmFyIHI9ZnVuY3Rpb24oZSx0KXtpZighZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiF0fHwib2JqZWN0IiE9PXR5cGVvZiB0JiYiZnVuY3Rpb24iIT09dHlwZW9mIHQ/ZTp0fSh0aGlzLCh0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpKS5jYWxsKHRoaXMsZSxuKSk7cmV0dXJuIHIuaGFuZGxlTG9hZD1mdW5jdGlvbigpe3IuZm9yY2VVcGRhdGUoKX0sci5faXNNb3VudGVkPSExLHJ9cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9KHQsZSksbyh0LFt7a2V5OiJjb21wb25lbnREaWRNb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9pc01vdW50ZWQ9ITA7dmFyIGU9dGhpcy5nZXREb2MoKTtlJiYiY29tcGxldGUiPT09ZS5yZWFkeVN0YXRlP3RoaXMuZm9yY2VVcGRhdGUoKTp0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdGhpcy5oYW5kbGVMb2FkKX19LHtrZXk6ImNvbXBvbmVudFdpbGxVbm1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2lzTW91bnRlZD0hMSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsdGhpcy5oYW5kbGVMb2FkKX19LHtrZXk6ImdldERvYyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlP3RoaXMubm9kZS5jb250ZW50RG9jdW1lbnQ6bnVsbH19LHtrZXk6ImdldE1vdW50VGFyZ2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0RG9jKCk7cmV0dXJuIHRoaXMucHJvcHMubW91bnRUYXJnZXQ/ZS5xdWVyeVNlbGVjdG9yKHRoaXMucHJvcHMubW91bnRUYXJnZXQpOmUuYm9keS5jaGlsZHJlblswXX19LHtrZXk6InJlbmRlckZyYW1lQ29udGVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2lzTW91bnRlZClyZXR1cm4gbnVsbDt2YXIgZT10aGlzLmdldERvYygpO2lmKCFlfHwhZS5ib2R5KXJldHVybiBudWxsO3ZhciB0PXRoaXMucHJvcHMuY29udGVudERpZE1vdW50LG49dGhpcy5wcm9wcy5jb250ZW50RGlkVXBkYXRlLHI9ZS5kZWZhdWx0Vmlld3x8ZS5wYXJlbnRWaWV3LG89aS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodS5kZWZhdWx0LHtjb250ZW50RGlkTW91bnQ6dCxjb250ZW50RGlkVXBkYXRlOm59LGkuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGwuRnJhbWVDb250ZXh0UHJvdmlkZXIse3ZhbHVlOntkb2N1bWVudDplLHdpbmRvdzpyfX0saS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZnJhbWUtY29udGVudCJ9LHRoaXMucHJvcHMuY2hpbGRyZW4pKSk7ZSYmZS5ib2R5JiZlLmJvZHkuY2hpbGRyZW4mJmUuYm9keS5jaGlsZHJlbi5sZW5ndGg8MSYmKGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXS5pbm5lckhUTUw9dGhpcy5wcm9wcy5pbml0aWFsQ29udGVudCk7dmFyIGE9dGhpcy5nZXRNb3VudFRhcmdldCgpO3JldHVybltzLmRlZmF1bHQuY3JlYXRlUG9ydGFsKHRoaXMucHJvcHMuaGVhZCx0aGlzLmdldERvYygpLmhlYWQpLHMuZGVmYXVsdC5jcmVhdGVQb3J0YWwobyxhKV19fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXIoe30sdGhpcy5wcm9wcyx7Y2hpbGRyZW46dm9pZCAwfSk7cmV0dXJuIGRlbGV0ZSB0LmhlYWQsZGVsZXRlIHQuaW5pdGlhbENvbnRlbnQsZGVsZXRlIHQubW91bnRUYXJnZXQsZGVsZXRlIHQuY29udGVudERpZE1vdW50LGRlbGV0ZSB0LmNvbnRlbnREaWRVcGRhdGUsaS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIscih7fSx0LHtyZWY6ZnVuY3Rpb24odCl7ZS5ub2RlPXR9fSksdGhpcy5yZW5kZXJGcmFtZUNvbnRlbnRzKCkpfX1dKSx0fShhLkNvbXBvbmVudCk7Zi5wcm9wVHlwZXM9e3N0eWxlOmMuZGVmYXVsdC5vYmplY3QsaGVhZDpjLmRlZmF1bHQubm9kZSxpbml0aWFsQ29udGVudDpjLmRlZmF1bHQuc3RyaW5nLG1vdW50VGFyZ2V0OmMuZGVmYXVsdC5zdHJpbmcsY29udGVudERpZE1vdW50OmMuZGVmYXVsdC5mdW5jLGNvbnRlbnREaWRVcGRhdGU6Yy5kZWZhdWx0LmZ1bmMsY2hpbGRyZW46Yy5kZWZhdWx0Lm9uZU9mVHlwZShbYy5kZWZhdWx0LmVsZW1lbnQsYy5kZWZhdWx0LmFycmF5T2YoYy5kZWZhdWx0LmVsZW1lbnQpXSl9LGYuZGVmYXVsdFByb3BzPXtzdHlsZTp7fSxoZWFkOm51bGwsY2hpbGRyZW46dm9pZCAwLG1vdW50VGFyZ2V0OnZvaWQgMCxjb250ZW50RGlkTW91bnQ6ZnVuY3Rpb24oKXt9LGNvbnRlbnREaWRVcGRhdGU6ZnVuY3Rpb24oKXt9LGluaXRpYWxDb250ZW50Oic8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PGRpdiBjbGFzcz0iZnJhbWUtcm9vdCI+PC9kaXY+PC9ib2R5Pid9LHQuZGVmYXVsdD1mfSwzNDY6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxyJiZlKHQsciksdH19KCksbz1uKDQpLGE9KGkobyksaShuKDIxMCkpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBzKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gYyhlLHQpe2lmKCFlKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIXR8fCJvYmplY3QiIT09dHlwZW9mIHQmJiJmdW5jdGlvbiIhPT10eXBlb2YgdD9lOnR9dmFyIGw9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3JldHVybiBzKHRoaXMsdCksYyh0aGlzLCh0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpKS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfXJldHVybiBmdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfSh0LGUpLHIodCxbe2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm9wcy5jb250ZW50RGlkTW91bnQoKX19LHtrZXk6ImNvbXBvbmVudERpZFVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnByb3BzLmNvbnRlbnREaWRVcGRhdGUoKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gby5DaGlsZHJlbi5vbmx5KHRoaXMucHJvcHMuY2hpbGRyZW4pfX1dKSx0fShvLkNvbXBvbmVudCk7bC5wcm9wVHlwZXM9e2NoaWxkcmVuOmEuZGVmYXVsdC5lbGVtZW50LmlzUmVxdWlyZWQsY29udGVudERpZE1vdW50OmEuZGVmYXVsdC5mdW5jLmlzUmVxdWlyZWQsY29udGVudERpZFVwZGF0ZTphLmRlZmF1bHQuZnVuYy5pc1JlcXVpcmVkfSx0LmRlZmF1bHQ9bH0sMzQ3OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtmdW5jdGlvbiBvKGUsdCl7dmFyIG49W10scj0wO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIG4ucHVzaChlKSx0fWZ1bmN0aW9uIGEoKXtyZXR1cm4gbltyKytdfXJldHVybnt0b2tlbml6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKGUsbyl9LGRldG9rZW5pemU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShuZXcgUmVnRXhwKCIoIit0KyIpIiwiZyIpLGEpfX19cj1uZXcgZnVuY3Rpb24oKXt2YXIgZT0iKD86KD86KD86XFxcXFswLTlhLWZdezEsNn0pKD86XFxyXFxufFxccyk/KXxcXFxcW15cXHJcXG5cXGYwLTlhLWZdKSIsdD0iKD86W19hLXowLTktXXxbXlxcdTAwMjAtXFx1MDA3ZV18IitlKyIpIixuPSIoPzpbMC05XSpcXC5bMC05XSt8WzAtOV0rKSg/OlxccyooPzplbXxleHxweHxjbXxtbXxpbnxwdHxwY3xkZWd8cmFkfGdyYWR8bXN8c3xoenxraHp8JSl8LT8oPzpbX2Etel18W15cXHUwMDIwLVxcdTAwN2VdfCg/Oig/Oig/OlxcXFxbMC05YS1mXXsxLDZ9KSg/OlxcclxcbnxcXHMpPyl8XFxcXFteXFxyXFxuXFxmMC05YS1mXSkpKD86W19hLXowLTktXXxbXlxcdTAwMjAtXFx1MDA3ZV18KD86KD86KD86XFxcXFswLTlhLWZdezEsNn0pKD86XFxyXFxufFxccyk/KXxcXFxcW15cXHJcXG5cXGYwLTlhLWZdKSkqKT8iLHI9IigoPzotPyIrbisiKXwoPzppbmhlcml0fGF1dG8pKSIsYT0iKCM/Iit0KyIrfCg/OnJnYmE/fGhzbGE/KVxcKFsgXFxkLiwlLV0rXFwpKSIsaT0iKD86WyEjJCUmKi1+XXxbXlxcdTAwMjAtXFx1MDA3ZV18IitlKyIpKj8iLHM9Iig/ISgiK3QrInxcXHI/XFxufFxcc3wjfFxcOnxcXC58XFwsfFxcK3w+fFxcKHxcXCl8XFxbfFxcXXw9fFxcKj18fj18XFxePXwnW14nXSonXSkqP3spIixjPSIoPyEiK2krIlsnXCJdP1xccypcXCkpIixsPSIoPz0iK2krIlsnXCJdP1xccypcXCkpIix1PSIoXFxzKig/OiFpbXBvcnRhbnRcXHMqKT9bO31dKSIsZD1uZXcgUmVnRXhwKCJgVE1QYCIsImciKSxmPW5ldyBSZWdFeHAoIlxcL1xcKlteKl0qXFwqKyhbXlxcLypdW14qXSpcXCorKSpcXC8iLCJnaSIpLHA9bmV3IFJlZ0V4cCgiKFxcL1xcKlxcIT9cXHMqQG5vZmxpcFxccypcXCpcXC8iK3MrIlteO31dKzs/KSIsImdpIiksYj1uZXcgUmVnRXhwKCIoXFwvXFwqXFwhP1xccypAbm9mbGlwXFxzKlxcKlxcL1teXFx9XSo/fSkiLCJnaSIpLG09bmV3IFJlZ0V4cCgiKGRpcmVjdGlvblxccyo6XFxzKilsdHIiLCJnaSIpLGg9bmV3IFJlZ0V4cCgiKGRpcmVjdGlvblxccyo6XFxzKilydGwiLCJnaSIpLGc9bmV3IFJlZ0V4cCgiKF58W15hLXpBLVpdKShsZWZ0KSg/IVthLXpBLVpdKSIrYytzLCJnaSIpLHY9bmV3IFJlZ0V4cCgiKF58W15hLXpBLVpdKShyaWdodCkoPyFbYS16QS1aXSkiK2MrcywiZ2kiKSx5PW5ldyBSZWdFeHAoIihefFteYS16QS1aXSkobGVmdCkiK2wsImdpIiksdz1uZXcgUmVnRXhwKCIoXnxbXmEtekEtWl0pKHJpZ2h0KSIrbCwiZ2kiKSx4PW5ldyBSZWdFeHAoIihefFteYS16QS1aXSkobHRyKSIrbCwiZ2kiKSxPPW5ldyBSZWdFeHAoIihefFteYS16QS1aXSkocnRsKSIrbCwiZ2kiKSxqPW5ldyBSZWdFeHAoIihefFteYS16QS1aXSkoW25zXT8pZS1yZXNpemUiLCJnaSIpLGs9bmV3IFJlZ0V4cCgiKF58W15hLXpBLVpdKShbbnNdPyl3LXJlc2l6ZSIsImdpIiksQT1uZXcgUmVnRXhwKCIoKD86bWFyZ2lufHBhZGRpbmd8Ym9yZGVyLXdpZHRoKVxccyo6XFxzKikiK3IrIihcXHMrKSIrcisiKFxccyspIityKyIoXFxzKykiK3IrdSwiZ2kiKSxNPW5ldyBSZWdFeHAoIigoPzotY29sb3J8Ym9yZGVyLXN0eWxlKVxccyo6XFxzKikiK2ErIihcXHMrKSIrYSsiKFxccyspIithKyIoXFxzKykiK2ErdSwiZ2kiKSxDPW5ldyBSZWdFeHAoIihiYWNrZ3JvdW5kKD86LXBvc2l0aW9uKT9cXHMqOlxccyooPzpbXjo7fVxcc10rXFxzKykqPykoIituKyIpIiwiZ2kiKSxFPW5ldyBSZWdFeHAoIihiYWNrZ3JvdW5kLXBvc2l0aW9uLXhcXHMqOlxccyopKC0/KD86WzAtOV0qXFwuWzAtOV0rfFswLTldKyklKSIsImdpIiksUz1uZXcgUmVnRXhwKCIoYm9yZGVyLXJhZGl1c1xccyo6XFxzKikiK3IrIig/Oig/OlxccysiK3IrIikoPzpcXHMrIityKyIpPyg/OlxccysiK3IrIik/KT8oPzooPzooPzpcXHMqXFwvXFxzKikiK3IrIikoPzpcXHMrIityKyIpPyg/OlxccysiK3IrIik/KD86XFxzKyIrcisiKT8pPyIrdSwiZ2kiKSxSPW5ldyBSZWdFeHAoIihib3gtc2hhZG93XFxzKjpcXHMqKD86aW5zZXRcXHMqKT8pIityLCJnaSIpLEQ9bmV3IFJlZ0V4cCgiKHRleHQtc2hhZG93XFxzKjpcXHMqKSIrcisiKFxccyopIithLCJnaSIpLFQ9bmV3IFJlZ0V4cCgiKHRleHQtc2hhZG93XFxzKjpcXHMqKSIrYSsiKFxccyopIityLCJnaSIpLE49bmV3IFJlZ0V4cCgiKHRleHQtc2hhZG93XFxzKjpcXHMqKSIrciwiZ2kiKSxQPW5ldyBSZWdFeHAoIih0cmFuc2Zvcm1cXHMqOlteO31dKikodHJhbnNsYXRlWFxccypcXChcXHMqKSIrcisiKFxccypcXCkpIiwiZ2kiKSxMPW5ldyBSZWdFeHAoIih0cmFuc2Zvcm1cXHMqOlteO31dKikodHJhbnNsYXRlXFxzKlxcKFxccyopIityKyIoKD86XFxzKixcXHMqIityKyIpezAsMn1cXHMqXFwpKSIsImdpIik7ZnVuY3Rpb24gRihlLHQsbil7dmFyIHIsbztyZXR1cm4iJSI9PT1uLnNsaWNlKC0xKSYmKC0xIT09KHI9bi5pbmRleE9mKCIuIikpPyhvPW4ubGVuZ3RoLXItMixuPShuPTEwMC1wYXJzZUZsb2F0KG4pKS50b0ZpeGVkKG8pKyIlIik6bj0xMDAtcGFyc2VGbG9hdChuKSsiJSIpLHQrbn1mdW5jdGlvbiBfKGUpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSA0OmU9W2VbMV0sZVswXSxlWzNdLGVbMl1dO2JyZWFrO2Nhc2UgMzplPVtlWzFdLGVbMF0sZVsxXSxlWzJdXTticmVhaztjYXNlIDI6ZT1bZVsxXSxlWzBdXTticmVhaztjYXNlIDE6ZT1bZVswXV19cmV0dXJuIGUuam9pbigiICIpfWZ1bmN0aW9uIHooZSx0KXt2YXIgbj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cykscj1uLnNsaWNlKDIsNikuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSxvPW4uc2xpY2UoNiwxMCkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSxhPW5bMTBdfHwiIjtyZXR1cm4gdCsoby5sZW5ndGg/XyhyKSsiIC8gIitfKG8pOl8ocikpK2F9ZnVuY3Rpb24gSShlKXtyZXR1cm4gMD09PXBhcnNlRmxvYXQoZSk/ZToiLSI9PT1lWzBdP2Uuc2xpY2UoMSk6Ii0iK2V9ZnVuY3Rpb24gVShlLHQsbil7cmV0dXJuIHQrSShuKX1mdW5jdGlvbiBCKGUsdCxuLHIsbyl7cmV0dXJuIHQrbitJKHIpK299ZnVuY3Rpb24gSChlLHQsbixyLG8pe3JldHVybiB0K24rcitJKG8pfXJldHVybnt0cmFuc2Zvcm06ZnVuY3Rpb24oZSx0KXt2YXIgbj1uZXcgbyhwLCJgTk9GTElQX1NJTkdMRWAiKSxyPW5ldyBvKGIsImBOT0ZMSVBfQ0xBU1NgIiksYT1uZXcgbyhmLCJgQ09NTUVOVGAiKTtyZXR1cm4gZT1hLnRva2VuaXplKHIudG9rZW5pemUobi50b2tlbml6ZShlLnJlcGxhY2UoImAiLCIlNjAiKSkpKSx0LnRyYW5zZm9ybURpckluVXJsJiYoZT1lLnJlcGxhY2UoeCwiJDFgVE1QYCIpLnJlcGxhY2UoTywiJDFsdHIiKS5yZXBsYWNlKGQsInJ0bCIpKSx0LnRyYW5zZm9ybUVkZ2VJblVybCYmKGU9ZS5yZXBsYWNlKHksIiQxYFRNUGAiKS5yZXBsYWNlKHcsIiQxbGVmdCIpLnJlcGxhY2UoZCwicmlnaHQiKSksZT1lLnJlcGxhY2UobSwiJDFgVE1QYCIpLnJlcGxhY2UoaCwiJDFsdHIiKS5yZXBsYWNlKGQsInJ0bCIpLnJlcGxhY2UoZywiJDFgVE1QYCIpLnJlcGxhY2UodiwiJDFsZWZ0IikucmVwbGFjZShkLCJyaWdodCIpLnJlcGxhY2UoaiwiJDEkMmBUTVBgIikucmVwbGFjZShrLCIkMSQyZS1yZXNpemUiKS5yZXBsYWNlKGQsInctcmVzaXplIikucmVwbGFjZShTLHopLnJlcGxhY2UoUixVKS5yZXBsYWNlKEQsSCkucmVwbGFjZShULEgpLnJlcGxhY2UoTixVKS5yZXBsYWNlKFAsQikucmVwbGFjZShMLEIpLnJlcGxhY2UoQSwiJDEkMiQzJDgkNSQ2JDckNCQ5IikucmVwbGFjZShNLCIkMSQyJDMkOCQ1JDYkNyQ0JDkiKS5yZXBsYWNlKEMsRikucmVwbGFjZShFLEYpLGU9bi5kZXRva2VuaXplKHIuZGV0b2tlbml6ZShhLmRldG9rZW5pemUoZSkpKX19fSxlLmV4cG9ydHM/dC50cmFuc2Zvcm09ZnVuY3Rpb24oZSx0LG4pe3ZhciBvO3JldHVybiJvYmplY3QiPT09dHlwZW9mIHQ/bz10OihvPXt9LCJib29sZWFuIj09PXR5cGVvZiB0JiYoby50cmFuc2Zvcm1EaXJJblVybD10KSwiYm9vbGVhbiI9PT10eXBlb2YgbiYmKG8udHJhbnNmb3JtRWRnZUluVXJsPW4pKSxyLnRyYW5zZm9ybShlLG8pfToidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuY3NzamFudXM9cil9LDM0ODpmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt0aGlzLmRvY3VtZW50PWV8fHdpbmRvdy5kb2N1bWVudH1mdW5jdGlvbiBuKGUsdCl7dGhpcy5hPXQsdGhpcy5iPXRoaXMuYS5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmIuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0aGlzLmEuYXBwZW5kKHRoaXMuYix0aGlzLmEuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuYz10aGlzLmEuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuZj10aGlzLmEuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuaT10aGlzLmEuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuZz10aGlzLmEuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuaD0tMSx0aGlzLmEuc3R5bGUodGhpcy5jLCJtYXgtd2lkdGg6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO292ZXJmbG93OnNjcm9sbDtmb250LXNpemU6MTZweDsiKSx0aGlzLmEuc3R5bGUodGhpcy5mLCJtYXgtd2lkdGg6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO292ZXJmbG93OnNjcm9sbDtmb250LXNpemU6MTZweDsiKSx0aGlzLmEuc3R5bGUodGhpcy5nLCJtYXgtd2lkdGg6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO292ZXJmbG93OnNjcm9sbDtmb250LXNpemU6MTZweDsiKSx0aGlzLmEuc3R5bGUodGhpcy5pLCJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyMDAlO2hlaWdodDoyMDAlO2ZvbnQtc2l6ZToxNnB4O21heC13aWR0aDpub25lOyIpLHRoaXMuYS5hcHBlbmQodGhpcy5jLHRoaXMuaSksdGhpcy5hLmFwcGVuZCh0aGlzLmYsdGhpcy5nKSx0aGlzLmEuYXBwZW5kKHRoaXMuYix0aGlzLmMpLHRoaXMuYS5hcHBlbmQodGhpcy5iLHRoaXMuZil9ZnVuY3Rpb24gcihlLHQpe2UuYS5zdHlsZShlLmIsIm1heC13aWR0aDpub25lO21pbi13aWR0aDoyMHB4O21pbi1oZWlnaHQ6MjBweDtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6YXV0bzttYXJnaW46MDtwYWRkaW5nOjA7dG9wOi05OTlweDt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zeW50aGVzaXM6bm9uZTtmb250OiIrdCsiOyIpfWZ1bmN0aW9uIG8oZSl7dmFyIHQ9ZS5iLm9mZnNldFdpZHRoLG49dCsxMDA7cmV0dXJuIGUuZy5zdHlsZS53aWR0aD1uKyJweCIsZS5mLnNjcm9sbExlZnQ9bixlLmMuc2Nyb2xsTGVmdD1lLmMuc2Nyb2xsV2lkdGgrMTAwLGUuaCE9PXQmJihlLmg9dCwhMCl9ZnVuY3Rpb24gYShlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT1yO28oZSkmJm51bGwhPT1lLmIucGFyZW50Tm9kZSYmdChlLmgpfXZhciByPWU7ZS5hLmFkZExpc3RlbmVyKGUuYywic2Nyb2xsIixuKSxlLmEuYWRkTGlzdGVuZXIoZS5mLCJzY3JvbGwiLG4pLG8oZSl9ZnVuY3Rpb24gaShlLG4pe3ZhciByPW58fHt9O3RoaXMuZG9jdW1lbnQ9ci5kb2N1bWVudHx8d2luZG93LmRvY3VtZW50LHRoaXMuYT1uZXcgdCh0aGlzLmRvY3VtZW50KSx0aGlzLmZhbWlseT1lLHRoaXMuc3R5bGU9ci5zdHlsZXx8Im5vcm1hbCIsdGhpcy53ZWlnaHQ9ci53ZWlnaHR8fCJub3JtYWwiLHRoaXMuc3RyZXRjaD1yLnN0cmV0Y2h8fCJub3JtYWwifXQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKX0sdC5wcm90b3R5cGUuc3R5bGU9ZnVuY3Rpb24oZSx0KXtlLnN0eWxlLmNzc1RleHQ9dH0sdC5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7ZS5hcHBlbmRDaGlsZCh0KX0sdC5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIodCxuLCExKTplLmF0dGFjaEV2ZW50KHQsbil9O3ZhciBzPW51bGwsYz1udWxsLGw9bnVsbCx1PW51bGw7ZnVuY3Rpb24gZCgpe3JldHVybiBudWxsPT09dSYmKHU9ISFkb2N1bWVudC5mb250cyksdX1mdW5jdGlvbiBmKGUpe2lmKG51bGw9PT1sKXtlPWUuYS5jcmVhdGVFbGVtZW50KCJkaXYiKTt0cnl7ZS5zdHlsZS5mb250PSJjb25kZW5zZWQgMTAwcHggc2Fucy1zZXJpZiJ9Y2F0Y2godCl7fWw9IiIhPT1lLnN0eWxlLmZvbnR9cmV0dXJuIGx9ZnVuY3Rpb24gcChlLHQpe3JldHVybltlLnN0eWxlLGUud2VpZ2h0LGYoZSk/ZS5zdHJldGNoOiIiLCIxMDBweCIsdF0uam9pbigiICIpfWkucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oZSx0KXt2YXIgbz10aGlzLGk9ZXx8IkJFU2Jzd3kiLGw9MCx1PXR8fDNlMyxmPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSx0KXtpZihkKCkmJiFmdW5jdGlvbigpe2lmKG51bGw9PT1jKWlmKGQoKSYmL0FwcGxlLy50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudmVuZG9yKSl7dmFyIGU9L0FwcGxlV2ViS2l0XC8oWzAtOV0rKSg/OlwuKFswLTldKykpKD86XC4oWzAtOV0rKSkvLmV4ZWMod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO2M9ISFlJiY2MDM+cGFyc2VJbnQoZVsxXSwxMCl9ZWxzZSBjPSExO3JldHVybiBjfSgpKXt2YXIgYj1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSx0KXshZnVuY3Rpb24gbigpeyhuZXcgRGF0ZSkuZ2V0VGltZSgpLWY+PXU/dCgpOm8uZG9jdW1lbnQuZm9udHMubG9hZChwKG8sJyInK28uZmFtaWx5KyciJyksaSkudGhlbigoZnVuY3Rpb24odCl7MTw9dC5sZW5ndGg/ZSgpOnNldFRpbWVvdXQobiwyNSl9KSwoZnVuY3Rpb24oKXt0KCl9KSl9KCl9KSksbT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSx0KXtsPXNldFRpbWVvdXQodCx1KX0pKTtQcm9taXNlLnJhY2UoW20sYl0pLnRoZW4oKGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGwpLGUobyl9KSwoZnVuY3Rpb24oKXt0KG8pfSkpfWVsc2UhZnVuY3Rpb24oZSx0KXtlLmRvY3VtZW50LmJvZHk/dCgpOmUuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj9lLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLChmdW5jdGlvbiBlKCl7dGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixlKSx0KCl9KSk6ZS5kb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwoZnVuY3Rpb24gZSgpeyJpbnRlcmFjdGl2ZSIhPXRoaXMuZG9jdW1lbnQucmVhZHlTdGF0ZSYmImNvbXBsZXRlIiE9dGhpcy5kb2N1bWVudC5yZWFkeVN0YXRlfHwodGhpcy5kb2N1bWVudC5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixlKSx0KCkpfSkpfShvLmEsKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYygpe3ZhciB0Oyh0PS0xIT1oJiYtMSE9Z3x8LTEhPWgmJi0xIT12fHwtMSE9ZyYmLTEhPXYpJiYoKHQ9aCE9ZyYmaCE9diYmZyE9dil8fChudWxsPT09cyYmKHQ9L0FwcGxlV2ViS2l0XC8oWzAtOV0rKSg/OlwuKFswLTldKykpLy5leGVjKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSxzPSEhdCYmKDUzNj5wYXJzZUludCh0WzFdLDEwKXx8NTM2PT09cGFyc2VJbnQodFsxXSwxMCkmJjExPj1wYXJzZUludCh0WzJdLDEwKSkpLHQ9cyYmKGg9PXkmJmc9PXkmJnY9PXl8fGg9PXcmJmc9PXcmJnY9PXd8fGg9PXgmJmc9PXgmJnY9PXgpKSx0PSF0KSx0JiYoTy5wYXJlbnROb2RlJiZPLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoTyksY2xlYXJUaW1lb3V0KGwpLGUobykpfXZhciBkPW5ldyBuKGksby5hKSxiPW5ldyBuKGksby5hKSxtPW5ldyBuKGksby5hKSxoPS0xLGc9LTEsdj0tMSx5PS0xLHc9LTEseD0tMSxPPW8uYS5jcmVhdGVFbGVtZW50KCJkaXYiKTtPLmRpcj0ibHRyIixyKGQscChvLCJzYW5zLXNlcmlmIikpLHIoYixwKG8sInNlcmlmIikpLHIobSxwKG8sIm1vbm9zcGFjZSIpKSxvLmEuYXBwZW5kKE8sZC5iKSxvLmEuYXBwZW5kKE8sYi5iKSxvLmEuYXBwZW5kKE8sbS5iKSxvLmEuYXBwZW5kKG8uZG9jdW1lbnQuYm9keSxPKSx5PWQuYi5vZmZzZXRXaWR0aCx3PWIuYi5vZmZzZXRXaWR0aCx4PW0uYi5vZmZzZXRXaWR0aCxmdW5jdGlvbiBlKCl7aWYoKG5ldyBEYXRlKS5nZXRUaW1lKCktZj49dSlPLnBhcmVudE5vZGUmJk8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChPKSx0KG8pO2Vsc2V7dmFyIG49by5kb2N1bWVudC5oaWRkZW47ITAhPT1uJiZ2b2lkIDAhPT1ufHwoaD1kLmIub2Zmc2V0V2lkdGgsZz1iLmIub2Zmc2V0V2lkdGgsdj1tLmIub2Zmc2V0V2lkdGgsYygpKSxsPXNldFRpbWVvdXQoZSw1MCl9fSgpLGEoZCwoZnVuY3Rpb24oZSl7aD1lLGMoKX0pKSxyKGQscChvLCciJytvLmZhbWlseSsnIixzYW5zLXNlcmlmJykpLGEoYiwoZnVuY3Rpb24oZSl7Zz1lLGMoKX0pKSxyKGIscChvLCciJytvLmZhbWlseSsnIixzZXJpZicpKSxhKG0sKGZ1bmN0aW9uKGUpe3Y9ZSxjKCl9KSkscihtLHAobywnIicrby5mYW1pbHkrJyIsbW9ub3NwYWNlJykpfSkpfSkpfSxlLmV4cG9ydHM9aX0oKX0sMzQ5OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe2lmKGUmJnQpe3ZhciBuPUFycmF5LmlzQXJyYXkodCk/dDp0LnNwbGl0KCIsIikscj1lLm5hbWV8fCIiLG89KGUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCksYT1vLnJlcGxhY2UoL1wvLiokLywiIik7cmV0dXJuIG4uc29tZSgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS50cmltKCkudG9Mb3dlckNhc2UoKTtyZXR1cm4iLiI9PT10LmNoYXJBdCgwKT9yLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgodCk6dC5lbmRzV2l0aCgiLyoiKT9hPT09dC5yZXBsYWNlKC9cLy4qJC8sIiIpOm89PT10fSkpfXJldHVybiEwfX0sMzUwOmZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9T2JqZWN0Lmhhc093blByb3BlcnR5LHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mLG49T2JqZWN0LmlzRnJvemVuLHI9T2JqZWN0LmtleXMsbz1PYmplY3QuZnJlZXplLGE9T2JqZWN0LnNlYWwsaT0idW5kZWZpbmVkIiE9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LHM9aS5hcHBseSxjPWkuY29uc3RydWN0O3N8fChzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZS5hcHBseSh0LG4pfSksb3x8KG89ZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSxhfHwoYT1mdW5jdGlvbihlKXtyZXR1cm4gZX0pLGN8fChjPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyhGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5hcHBseShlLFtudWxsXS5jb25jYXQoZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfSh0KSkpKX0pO3ZhciBsPWooQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLHU9aihBcnJheS5wcm90b3R5cGUuaW5kZXhPZiksZD1qKEFycmF5LnByb3RvdHlwZS5qb2luKSxmPWooQXJyYXkucHJvdG90eXBlLnBvcCkscD1qKEFycmF5LnByb3RvdHlwZS5wdXNoKSxiPWooQXJyYXkucHJvdG90eXBlLnNsaWNlKSxtPWooU3RyaW5nLnByb3RvdHlwZS50b0xvd2VyQ2FzZSksaD1qKFN0cmluZy5wcm90b3R5cGUubWF0Y2gpLGc9aihTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLHY9aihTdHJpbmcucHJvdG90eXBlLmluZGV4T2YpLHk9aihTdHJpbmcucHJvdG90eXBlLnRyaW0pLHc9aihSZWdFeHAucHJvdG90eXBlLnRlc3QpLHg9ayhSZWdFeHApLE89ayhUeXBlRXJyb3IpO2Z1bmN0aW9uIGooZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoLHI9QXJyYXkobj4xP24tMTowKSxvPTE7bzxuO28rKylyW28tMV09YXJndW1lbnRzW29dO3JldHVybiBzKGUsdCxyKX19ZnVuY3Rpb24gayhlKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxuPUFycmF5KHQpLHI9MDtyPHQ7cisrKW5bcl09YXJndW1lbnRzW3JdO3JldHVybiBjKGUsbil9fWZ1bmN0aW9uIEEoZSxyKXt0JiZ0KGUsbnVsbCk7Zm9yKHZhciBvPXIubGVuZ3RoO28tLTspe3ZhciBhPXJbb107aWYoInN0cmluZyI9PT10eXBlb2YgYSl7dmFyIGk9bShhKTtpIT09YSYmKG4ocil8fChyW29dPWkpLGE9aSl9ZVthXT0hMH1yZXR1cm4gZX1mdW5jdGlvbiBNKHQpe3ZhciBuPXt9LHI9dm9pZCAwO2ZvcihyIGluIHQpcyhlLHQsW3JdKSYmKG5bcl09dFtyXSk7cmV0dXJuIG59dmFyIEM9byhbImEiLCJhYmJyIiwiYWNyb255bSIsImFkZHJlc3MiLCJhcmVhIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmRpIiwiYmRvIiwiYmlnIiwiYmxpbmsiLCJibG9ja3F1b3RlIiwiYm9keSIsImJyIiwiYnV0dG9uIiwiY2FudmFzIiwiY2FwdGlvbiIsImNlbnRlciIsImNpdGUiLCJjb2RlIiwiY29sIiwiY29sZ3JvdXAiLCJjb250ZW50IiwiZGF0YSIsImRhdGFsaXN0IiwiZGQiLCJkZWNvcmF0b3IiLCJkZWwiLCJkZXRhaWxzIiwiZGZuIiwiZGlyIiwiZGl2IiwiZGwiLCJkdCIsImVsZW1lbnQiLCJlbSIsImZpZWxkc2V0IiwiZmlnY2FwdGlvbiIsImZpZ3VyZSIsImZvbnQiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZCIsImhlYWRlciIsImhncm91cCIsImhyIiwiaHRtbCIsImkiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJtYWluIiwibWFwIiwibWFyayIsIm1hcnF1ZWUiLCJtZW51IiwibWVudWl0ZW0iLCJtZXRlciIsIm5hdiIsIm5vYnIiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwib3V0cHV0IiwicCIsInBpY3R1cmUiLCJwcmUiLCJwcm9ncmVzcyIsInEiLCJycCIsInJ0IiwicnVieSIsInMiLCJzYW1wIiwic2VjdGlvbiIsInNlbGVjdCIsInNoYWRvdyIsInNtYWxsIiwic291cmNlIiwic3BhY2VyIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN0eWxlIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRlbXBsYXRlIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aW1lIiwidHIiLCJ0cmFjayIsInR0IiwidSIsInVsIiwidmFyIiwidmlkZW8iLCJ3YnIiXSksRT1vKFsic3ZnIiwiYSIsImFsdGdseXBoIiwiYWx0Z2x5cGhkZWYiLCJhbHRnbHlwaGl0ZW0iLCJhbmltYXRlY29sb3IiLCJhbmltYXRlbW90aW9uIiwiYW5pbWF0ZXRyYW5zZm9ybSIsImF1ZGlvIiwiY2FudmFzIiwiY2lyY2xlIiwiY2xpcHBhdGgiLCJkZWZzIiwiZGVzYyIsImVsbGlwc2UiLCJmaWx0ZXIiLCJmb250IiwiZyIsImdseXBoIiwiZ2x5cGhyZWYiLCJoa2VybiIsImltYWdlIiwibGluZSIsImxpbmVhcmdyYWRpZW50IiwibWFya2VyIiwibWFzayIsIm1ldGFkYXRhIiwibXBhdGgiLCJwYXRoIiwicGF0dGVybiIsInBvbHlnb24iLCJwb2x5bGluZSIsInJhZGlhbGdyYWRpZW50IiwicmVjdCIsInN0b3AiLCJzdHlsZSIsInN3aXRjaCIsInN5bWJvbCIsInRleHQiLCJ0ZXh0cGF0aCIsInRpdGxlIiwidHJlZiIsInRzcGFuIiwidmlkZW8iLCJ2aWV3Iiwidmtlcm4iXSksUz1vKFsiZmVCbGVuZCIsImZlQ29sb3JNYXRyaXgiLCJmZUNvbXBvbmVudFRyYW5zZmVyIiwiZmVDb21wb3NpdGUiLCJmZUNvbnZvbHZlTWF0cml4IiwiZmVEaWZmdXNlTGlnaHRpbmciLCJmZURpc3BsYWNlbWVudE1hcCIsImZlRGlzdGFudExpZ2h0IiwiZmVGbG9vZCIsImZlRnVuY0EiLCJmZUZ1bmNCIiwiZmVGdW5jRyIsImZlRnVuY1IiLCJmZUdhdXNzaWFuQmx1ciIsImZlTWVyZ2UiLCJmZU1lcmdlTm9kZSIsImZlTW9ycGhvbG9neSIsImZlT2Zmc2V0IiwiZmVQb2ludExpZ2h0IiwiZmVTcGVjdWxhckxpZ2h0aW5nIiwiZmVTcG90TGlnaHQiLCJmZVRpbGUiLCJmZVR1cmJ1bGVuY2UiXSksUj1vKFsibWF0aCIsIm1lbmNsb3NlIiwibWVycm9yIiwibWZlbmNlZCIsIm1mcmFjIiwibWdseXBoIiwibWkiLCJtbGFiZWxlZHRyIiwibW11bHRpc2NyaXB0cyIsIm1uIiwibW8iLCJtb3ZlciIsIm1wYWRkZWQiLCJtcGhhbnRvbSIsIm1yb290IiwibXJvdyIsIm1zIiwibXNwYWNlIiwibXNxcnQiLCJtc3R5bGUiLCJtc3ViIiwibXN1cCIsIm1zdWJzdXAiLCJtdGFibGUiLCJtdGQiLCJtdGV4dCIsIm10ciIsIm11bmRlciIsIm11bmRlcm92ZXIiXSksRD1vKFsiI3RleHQiXSksVD1vKFsiYWNjZXB0IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJhdXRvY29tcGxldGUiLCJiYWNrZ3JvdW5kIiwiYmdjb2xvciIsImJvcmRlciIsImNlbGxwYWRkaW5nIiwiY2VsbHNwYWNpbmciLCJjaGVja2VkIiwiY2l0ZSIsImNsYXNzIiwiY2xlYXIiLCJjb2xvciIsImNvbHMiLCJjb2xzcGFuIiwiY29udHJvbHMiLCJjb29yZHMiLCJjcm9zc29yaWdpbiIsImRhdGV0aW1lIiwiZGVmYXVsdCIsImRpciIsImRpc2FibGVkIiwiZG93bmxvYWQiLCJlbmN0eXBlIiwiZmFjZSIsImZvciIsImhlYWRlcnMiLCJoZWlnaHQiLCJoaWRkZW4iLCJoaWdoIiwiaHJlZiIsImhyZWZsYW5nIiwiaWQiLCJpbnRlZ3JpdHkiLCJpc21hcCIsImxhYmVsIiwibGFuZyIsImxpc3QiLCJsb29wIiwibG93IiwibWF4IiwibWF4bGVuZ3RoIiwibWVkaWEiLCJtZXRob2QiLCJtaW4iLCJtaW5sZW5ndGgiLCJtdWx0aXBsZSIsIm5hbWUiLCJub3NoYWRlIiwibm92YWxpZGF0ZSIsIm5vd3JhcCIsIm9wZW4iLCJvcHRpbXVtIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicG9zdGVyIiwicHJlbG9hZCIsInB1YmRhdGUiLCJyYWRpb2dyb3VwIiwicmVhZG9ubHkiLCJyZWwiLCJyZXF1aXJlZCIsInJldiIsInJldmVyc2VkIiwicm9sZSIsInJvd3MiLCJyb3dzcGFuIiwic3BlbGxjaGVjayIsInNjb3BlIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemUiLCJzaXplcyIsInNwYW4iLCJzcmNsYW5nIiwic3RhcnQiLCJzcmMiLCJzcmNzZXQiLCJzdGVwIiwic3R5bGUiLCJzdW1tYXJ5IiwidGFiaW5kZXgiLCJ0aXRsZSIsInR5cGUiLCJ1c2VtYXAiLCJ2YWxpZ24iLCJ2YWx1ZSIsIndpZHRoIiwieG1sbnMiXSksTj1vKFsiYWNjZW50LWhlaWdodCIsImFjY3VtdWxhdGUiLCJhZGRpdGl2ZSIsImFsaWdubWVudC1iYXNlbGluZSIsImFzY2VudCIsImF0dHJpYnV0ZW5hbWUiLCJhdHRyaWJ1dGV0eXBlIiwiYXppbXV0aCIsImJhc2VmcmVxdWVuY3kiLCJiYXNlbGluZS1zaGlmdCIsImJlZ2luIiwiYmlhcyIsImJ5IiwiY2xhc3MiLCJjbGlwIiwiY2xpcC1wYXRoIiwiY2xpcC1ydWxlIiwiY29sb3IiLCJjb2xvci1pbnRlcnBvbGF0aW9uIiwiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIiwiY29sb3ItcHJvZmlsZSIsImNvbG9yLXJlbmRlcmluZyIsImN4IiwiY3kiLCJkIiwiZHgiLCJkeSIsImRpZmZ1c2Vjb25zdGFudCIsImRpcmVjdGlvbiIsImRpc3BsYXkiLCJkaXZpc29yIiwiZHVyIiwiZWRnZW1vZGUiLCJlbGV2YXRpb24iLCJlbmQiLCJmaWxsIiwiZmlsbC1vcGFjaXR5IiwiZmlsbC1ydWxlIiwiZmlsdGVyIiwiZmlsdGVydW5pdHMiLCJmbG9vZC1jb2xvciIsImZsb29kLW9wYWNpdHkiLCJmb250LWZhbWlseSIsImZvbnQtc2l6ZSIsImZvbnQtc2l6ZS1hZGp1c3QiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC12YXJpYW50IiwiZm9udC13ZWlnaHQiLCJmeCIsImZ5IiwiZzEiLCJnMiIsImdseXBoLW5hbWUiLCJnbHlwaHJlZiIsImdyYWRpZW50dW5pdHMiLCJncmFkaWVudHRyYW5zZm9ybSIsImhlaWdodCIsImhyZWYiLCJpZCIsImltYWdlLXJlbmRlcmluZyIsImluIiwiaW4yIiwiayIsImsxIiwiazIiLCJrMyIsIms0Iiwia2VybmluZyIsImtleXBvaW50cyIsImtleXNwbGluZXMiLCJrZXl0aW1lcyIsImxhbmciLCJsZW5ndGhhZGp1c3QiLCJsZXR0ZXItc3BhY2luZyIsImtlcm5lbG1hdHJpeCIsImtlcm5lbHVuaXRsZW5ndGgiLCJsaWdodGluZy1jb2xvciIsImxvY2FsIiwibWFya2VyLWVuZCIsIm1hcmtlci1taWQiLCJtYXJrZXItc3RhcnQiLCJtYXJrZXJoZWlnaHQiLCJtYXJrZXJ1bml0cyIsIm1hcmtlcndpZHRoIiwibWFza2NvbnRlbnR1bml0cyIsIm1hc2t1bml0cyIsIm1heCIsIm1hc2siLCJtZWRpYSIsIm1ldGhvZCIsIm1vZGUiLCJtaW4iLCJuYW1lIiwibnVtb2N0YXZlcyIsIm9mZnNldCIsIm9wZXJhdG9yIiwib3BhY2l0eSIsIm9yZGVyIiwib3JpZW50Iiwib3JpZW50YXRpb24iLCJvcmlnaW4iLCJvdmVyZmxvdyIsInBhaW50LW9yZGVyIiwicGF0aCIsInBhdGhsZW5ndGgiLCJwYXR0ZXJuY29udGVudHVuaXRzIiwicGF0dGVybnRyYW5zZm9ybSIsInBhdHRlcm51bml0cyIsInBvaW50cyIsInByZXNlcnZlYWxwaGEiLCJwcmVzZXJ2ZWFzcGVjdHJhdGlvIiwicHJpbWl0aXZldW5pdHMiLCJyIiwicngiLCJyeSIsInJhZGl1cyIsInJlZngiLCJyZWZ5IiwicmVwZWF0Y291bnQiLCJyZXBlYXRkdXIiLCJyZXN0YXJ0IiwicmVzdWx0Iiwicm90YXRlIiwic2NhbGUiLCJzZWVkIiwic2hhcGUtcmVuZGVyaW5nIiwic3BlY3VsYXJjb25zdGFudCIsInNwZWN1bGFyZXhwb25lbnQiLCJzcHJlYWRtZXRob2QiLCJzdGRkZXZpYXRpb24iLCJzdGl0Y2h0aWxlcyIsInN0b3AtY29sb3IiLCJzdG9wLW9wYWNpdHkiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtbGluZWNhcCIsInN0cm9rZS1saW5lam9pbiIsInN0cm9rZS1taXRlcmxpbWl0Iiwic3Ryb2tlLW9wYWNpdHkiLCJzdHJva2UiLCJzdHJva2Utd2lkdGgiLCJzdHlsZSIsInN1cmZhY2VzY2FsZSIsInRhYmluZGV4IiwidGFyZ2V0eCIsInRhcmdldHkiLCJ0cmFuc2Zvcm0iLCJ0ZXh0LWFuY2hvciIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtcmVuZGVyaW5nIiwidGV4dGxlbmd0aCIsInR5cGUiLCJ1MSIsInUyIiwidW5pY29kZSIsInZhbHVlcyIsInZpZXdib3giLCJ2aXNpYmlsaXR5IiwidmVyc2lvbiIsInZlcnQtYWR2LXkiLCJ2ZXJ0LW9yaWdpbi14IiwidmVydC1vcmlnaW4teSIsIndpZHRoIiwid29yZC1zcGFjaW5nIiwid3JhcCIsIndyaXRpbmctbW9kZSIsInhjaGFubmVsc2VsZWN0b3IiLCJ5Y2hhbm5lbHNlbGVjdG9yIiwieCIsIngxIiwieDIiLCJ4bWxucyIsInkiLCJ5MSIsInkyIiwieiIsInpvb21hbmRwYW4iXSksUD1vKFsiYWNjZW50IiwiYWNjZW50dW5kZXIiLCJhbGlnbiIsImJldmVsbGVkIiwiY2xvc2UiLCJjb2x1bW5zYWxpZ24iLCJjb2x1bW5saW5lcyIsImNvbHVtbnNwYW4iLCJkZW5vbWFsaWduIiwiZGVwdGgiLCJkaXIiLCJkaXNwbGF5IiwiZGlzcGxheXN0eWxlIiwiZW5jb2RpbmciLCJmZW5jZSIsImZyYW1lIiwiaGVpZ2h0IiwiaHJlZiIsImlkIiwibGFyZ2VvcCIsImxlbmd0aCIsImxpbmV0aGlja25lc3MiLCJsc3BhY2UiLCJscXVvdGUiLCJtYXRoYmFja2dyb3VuZCIsIm1hdGhjb2xvciIsIm1hdGhzaXplIiwibWF0aHZhcmlhbnQiLCJtYXhzaXplIiwibWluc2l6ZSIsIm1vdmFibGVsaW1pdHMiLCJub3RhdGlvbiIsIm51bWFsaWduIiwib3BlbiIsInJvd2FsaWduIiwicm93bGluZXMiLCJyb3dzcGFjaW5nIiwicm93c3BhbiIsInJzcGFjZSIsInJxdW90ZSIsInNjcmlwdGxldmVsIiwic2NyaXB0bWluc2l6ZSIsInNjcmlwdHNpemVtdWx0aXBsaWVyIiwic2VsZWN0aW9uIiwic2VwYXJhdG9yIiwic2VwYXJhdG9ycyIsInN0cmV0Y2h5Iiwic3Vic2NyaXB0c2hpZnQiLCJzdXBzY3JpcHRzaGlmdCIsInN5bW1ldHJpYyIsInZvZmZzZXQiLCJ3aWR0aCIsInhtbG5zIl0pLEw9byhbInhsaW5rOmhyZWYiLCJ4bWw6aWQiLCJ4bGluazp0aXRsZSIsInhtbDpzcGFjZSIsInhtbG5zOnhsaW5rIl0pLEY9YSgvXHtce1tcc1xTXSp8W1xzXFNdKlx9XH0vZ20pLF89YSgvPCVbXHNcU10qfFtcc1xTXSolPi9nbSksej1hKC9eZGF0YS1bXC1cdy5cdTAwQjctXHVGRkZGXS8pLEk9YSgvXmFyaWEtW1wtXHddKyQvKSxVPWEoL14oPzooPzooPzpmfGh0KXRwcz98bWFpbHRvfHRlbHxjYWxsdG98Y2lkfHhtcHApOnxbXmEtel18W2EteisuXC1dKyg/OlteYS16Ky5cLTpdfCQpKS9pKSxCPWEoL14oPzpcdytzY3JpcHR8ZGF0YSk6L2kpLEg9YSgvW1x1MDAwMC1cdTAwMjBcdTAwQTBcdTE2ODBcdTE4MEVcdTIwMDAtXHUyMDI5XHUyMDVmXHUzMDAwXS9nKSxXPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtmdW5jdGlvbiBWKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX12YXIgcT1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdz9udWxsOndpbmRvd30sWT1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT09KCJ1bmRlZmluZWQiPT09dHlwZW9mIGU/InVuZGVmaW5lZCI6VyhlKSl8fCJmdW5jdGlvbiIhPT10eXBlb2YgZS5jcmVhdGVQb2xpY3kpcmV0dXJuIG51bGw7dmFyIG49bnVsbDt0LmN1cnJlbnRTY3JpcHQmJnQuY3VycmVudFNjcmlwdC5oYXNBdHRyaWJ1dGUoImRhdGEtdHQtcG9saWN5LXN1ZmZpeCIpJiYobj10LmN1cnJlbnRTY3JpcHQuZ2V0QXR0cmlidXRlKCJkYXRhLXR0LXBvbGljeS1zdWZmaXgiKSk7dmFyIHI9ImRvbXB1cmlmeSIrKG4/IiMiK246IiIpO3RyeXtyZXR1cm4gZS5jcmVhdGVQb2xpY3kocix7Y3JlYXRlSFRNTDpmdW5jdGlvbihlKXtyZXR1cm4gZX19KX1jYXRjaChvKXtyZXR1cm4gY29uc29sZS53YXJuKCJUcnVzdGVkVHlwZXMgcG9saWN5ICIrcisiIGNvdWxkIG5vdCBiZSBjcmVhdGVkLiIpLG51bGx9fTtyZXR1cm4gZnVuY3Rpb24gZSgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpxKCksbj1mdW5jdGlvbih0KXtyZXR1cm4gZSh0KX07aWYobi52ZXJzaW9uPSIyLjAuOCIsbi5yZW1vdmVkPVtdLCF0fHwhdC5kb2N1bWVudHx8OSE9PXQuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIG4uaXNTdXBwb3J0ZWQ9ITEsbjt2YXIgYT10LmRvY3VtZW50LGk9ITEscz0hMSxjPXQuZG9jdW1lbnQsaj10LkRvY3VtZW50RnJhZ21lbnQsaz10LkhUTUxUZW1wbGF0ZUVsZW1lbnQsRz10Lk5vZGUsUT10Lk5vZGVGaWx0ZXIsSz10Lk5hbWVkTm9kZU1hcCxaPXZvaWQgMD09PUs/dC5OYW1lZE5vZGVNYXB8fHQuTW96TmFtZWRBdHRyTWFwOkssWD10LlRleHQsJD10LkNvbW1lbnQsSj10LkRPTVBhcnNlcixlZT10LnRydXN0ZWRUeXBlcztpZigiZnVuY3Rpb24iPT09dHlwZW9mIGspe3ZhciB0ZT1jLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7dGUuY29udGVudCYmdGUuY29udGVudC5vd25lckRvY3VtZW50JiYoYz10ZS5jb250ZW50Lm93bmVyRG9jdW1lbnQpfXZhciBuZT1ZKGVlLGEpLHJlPW5lP25lLmNyZWF0ZUhUTUwoIiIpOiIiLG9lPWMsYWU9b2UuaW1wbGVtZW50YXRpb24saWU9b2UuY3JlYXRlTm9kZUl0ZXJhdG9yLHNlPW9lLmdldEVsZW1lbnRzQnlUYWdOYW1lLGNlPW9lLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQsbGU9YS5pbXBvcnROb2RlLHVlPXt9O24uaXNTdXBwb3J0ZWQ9YWUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGFlLmNyZWF0ZUhUTUxEb2N1bWVudCYmOSE9PWMuZG9jdW1lbnRNb2RlO3ZhciBkZT1GLGZlPV8scGU9eixiZT1JLG1lPUIsaGU9SCxnZT1VLHZlPW51bGwseWU9QSh7fSxbXS5jb25jYXQoVihDKSxWKEUpLFYoUyksVihSKSxWKEQpKSksd2U9bnVsbCx4ZT1BKHt9LFtdLmNvbmNhdChWKFQpLFYoTiksVihQKSxWKEwpKSksT2U9bnVsbCxqZT1udWxsLGtlPSEwLEFlPSEwLE1lPSExLENlPSExLEVlPSExLFNlPSExLFJlPSExLERlPSExLFRlPSExLE5lPSExLFBlPSExLExlPSExLEZlPSEwLF9lPSEwLHplPSExLEllPXt9LFVlPUEoe30sWyJhbm5vdGF0aW9uLXhtbCIsImF1ZGlvIiwiY29sZ3JvdXAiLCJkZXNjIiwiZm9yZWlnbm9iamVjdCIsImhlYWQiLCJpZnJhbWUiLCJtYXRoIiwibWkiLCJtbiIsIm1vIiwibXMiLCJtdGV4dCIsIm5vZW1iZWQiLCJub2ZyYW1lcyIsInBsYWludGV4dCIsInNjcmlwdCIsInN0eWxlIiwic3ZnIiwidGVtcGxhdGUiLCJ0aGVhZCIsInRpdGxlIiwidmlkZW8iLCJ4bXAiXSksQmU9QSh7fSxbImF1ZGlvIiwidmlkZW8iLCJpbWciLCJzb3VyY2UiLCJpbWFnZSJdKSxIZT1udWxsLFdlPUEoe30sWyJhbHQiLCJjbGFzcyIsImZvciIsImlkIiwibGFiZWwiLCJuYW1lIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwic3VtbWFyeSIsInRpdGxlIiwidmFsdWUiLCJzdHlsZSIsInhtbG5zIl0pLFZlPW51bGwscWU9Yy5jcmVhdGVFbGVtZW50KCJmb3JtIiksWWU9ZnVuY3Rpb24oZSl7VmUmJlZlPT09ZXx8KGUmJiJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT09dHlwZW9mIGU/InVuZGVmaW5lZCI6VyhlKSl8fChlPXt9KSx2ZT0iQUxMT1dFRF9UQUdTImluIGU/QSh7fSxlLkFMTE9XRURfVEFHUyk6eWUsd2U9IkFMTE9XRURfQVRUUiJpbiBlP0Eoe30sZS5BTExPV0VEX0FUVFIpOnhlLEhlPSJBRERfVVJJX1NBRkVfQVRUUiJpbiBlP0EoTShXZSksZS5BRERfVVJJX1NBRkVfQVRUUik6V2UsT2U9IkZPUkJJRF9UQUdTImluIGU/QSh7fSxlLkZPUkJJRF9UQUdTKTp7fSxqZT0iRk9SQklEX0FUVFIiaW4gZT9BKHt9LGUuRk9SQklEX0FUVFIpOnt9LEllPSJVU0VfUFJPRklMRVMiaW4gZSYmZS5VU0VfUFJPRklMRVMsa2U9ITEhPT1lLkFMTE9XX0FSSUFfQVRUUixBZT0hMSE9PWUuQUxMT1dfREFUQV9BVFRSLE1lPWUuQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFN8fCExLENlPWUuU0FGRV9GT1JfSlFVRVJZfHwhMSxFZT1lLlNBRkVfRk9SX1RFTVBMQVRFU3x8ITEsU2U9ZS5XSE9MRV9ET0NVTUVOVHx8ITEsVGU9ZS5SRVRVUk5fRE9NfHwhMSxOZT1lLlJFVFVSTl9ET01fRlJBR01FTlR8fCExLFBlPWUuUkVUVVJOX0RPTV9JTVBPUlR8fCExLExlPWUuUkVUVVJOX1RSVVNURURfVFlQRXx8ITEsRGU9ZS5GT1JDRV9CT0RZfHwhMSxGZT0hMSE9PWUuU0FOSVRJWkVfRE9NLF9lPSExIT09ZS5LRUVQX0NPTlRFTlQsemU9ZS5JTl9QTEFDRXx8ITEsZ2U9ZS5BTExPV0VEX1VSSV9SRUdFWFB8fGdlLEVlJiYoQWU9ITEpLE5lJiYoVGU9ITApLEllJiYodmU9QSh7fSxbXS5jb25jYXQoVihEKSkpLHdlPVtdLCEwPT09SWUuaHRtbCYmKEEodmUsQyksQSh3ZSxUKSksITA9PT1JZS5zdmcmJihBKHZlLEUpLEEod2UsTiksQSh3ZSxMKSksITA9PT1JZS5zdmdGaWx0ZXJzJiYoQSh2ZSxTKSxBKHdlLE4pLEEod2UsTCkpLCEwPT09SWUubWF0aE1sJiYoQSh2ZSxSKSxBKHdlLFApLEEod2UsTCkpKSxlLkFERF9UQUdTJiYodmU9PT15ZSYmKHZlPU0odmUpKSxBKHZlLGUuQUREX1RBR1MpKSxlLkFERF9BVFRSJiYod2U9PT14ZSYmKHdlPU0od2UpKSxBKHdlLGUuQUREX0FUVFIpKSxlLkFERF9VUklfU0FGRV9BVFRSJiZBKEhlLGUuQUREX1VSSV9TQUZFX0FUVFIpLF9lJiYodmVbIiN0ZXh0Il09ITApLFNlJiZBKHZlLFsiaHRtbCIsImhlYWQiLCJib2R5Il0pLHZlLnRhYmxlJiYoQSh2ZSxbInRib2R5Il0pLGRlbGV0ZSBPZS50Ym9keSksbyYmbyhlKSxWZT1lKX0sR2U9ZnVuY3Rpb24oZSl7cChuLnJlbW92ZWQse2VsZW1lbnQ6ZX0pO3RyeXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9Y2F0Y2godCl7ZS5vdXRlckhUTUw9cmV9fSxRZT1mdW5jdGlvbihlLHQpe3RyeXtwKG4ucmVtb3ZlZCx7YXR0cmlidXRlOnQuZ2V0QXR0cmlidXRlTm9kZShlKSxmcm9tOnR9KX1jYXRjaChyKXtwKG4ucmVtb3ZlZCx7YXR0cmlidXRlOm51bGwsZnJvbTp0fSl9dC5yZW1vdmVBdHRyaWJ1dGUoZSl9LEtlPWZ1bmN0aW9uKGUpe3ZhciB0PXZvaWQgMCxuPXZvaWQgMDtpZihEZSllPSI8cmVtb3ZlPjwvcmVtb3ZlPiIrZTtlbHNle3ZhciByPWgoZSwvXltcc10rLyk7bj1yJiZyWzBdfXZhciBvPW5lP25lLmNyZWF0ZUhUTUwoZSk6ZTtpZihpKXRyeXt0PShuZXcgSikucGFyc2VGcm9tU3RyaW5nKG8sInRleHQvaHRtbCIpfWNhdGNoKGwpe31pZihzJiZBKE9lLFsidGl0bGUiXSksIXR8fCF0LmRvY3VtZW50RWxlbWVudCl7dmFyIGE9KHQ9YWUuY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuYm9keTthLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYS5wYXJlbnROb2RlLmZpcnN0RWxlbWVudENoaWxkKSxhLm91dGVySFRNTD1vfXJldHVybiBlJiZuJiZ0LmJvZHkuaW5zZXJ0QmVmb3JlKGMuY3JlYXRlVGV4dE5vZGUobiksdC5ib2R5LmNoaWxkTm9kZXNbMF18fG51bGwpLHNlLmNhbGwodCxTZT8iaHRtbCI6ImJvZHkiKVswXX07bi5pc1N1cHBvcnRlZCYmKGZ1bmN0aW9uKCl7dHJ5e0tlKCc8c3ZnPjxwPjx0ZXh0YXJlYT48aW1nIHNyYz0iPC90ZXh0YXJlYT48aW1nIHNyYz14IGFiYz0xLy8iPicpLnF1ZXJ5U2VsZWN0b3IoInN2ZyBpbWciKSYmKGk9ITApfWNhdGNoKGUpe319KCksZnVuY3Rpb24oKXt0cnl7dmFyIGU9S2UoIjx4Lz48dGl0bGU+Jmx0Oy90aXRsZSZndDsmbHQ7aW1nJmd0OyIpO3coLzxcL3RpdGxlLyxlLnF1ZXJ5U2VsZWN0b3IoInRpdGxlIikuaW5uZXJIVE1MKSYmKHM9ITApfWNhdGNoKHQpe319KCkpO3ZhciBaZT1mdW5jdGlvbihlKXtyZXR1cm4gaWUuY2FsbChlLm93bmVyRG9jdW1lbnR8fGUsZSxRLlNIT1dfRUxFTUVOVHxRLlNIT1dfQ09NTUVOVHxRLlNIT1dfVEVYVCwoZnVuY3Rpb24oKXtyZXR1cm4gUS5GSUxURVJfQUNDRVBUfSksITEpfSxYZT1mdW5jdGlvbihlKXtyZXR1cm4hKGUgaW5zdGFuY2VvZiBYfHxlIGluc3RhbmNlb2YgJCkmJiEoInN0cmluZyI9PT10eXBlb2YgZS5ub2RlTmFtZSYmInN0cmluZyI9PT10eXBlb2YgZS50ZXh0Q29udGVudCYmImZ1bmN0aW9uIj09PXR5cGVvZiBlLnJlbW92ZUNoaWxkJiZlLmF0dHJpYnV0ZXMgaW5zdGFuY2VvZiBaJiYiZnVuY3Rpb24iPT09dHlwZW9mIGUucmVtb3ZlQXR0cmlidXRlJiYiZnVuY3Rpb24iPT09dHlwZW9mIGUuc2V0QXR0cmlidXRlJiYic3RyaW5nIj09PXR5cGVvZiBlLm5hbWVzcGFjZVVSSSl9LCRlPWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT09dHlwZW9mIEc/InVuZGVmaW5lZCI6VyhHKSk/ZSBpbnN0YW5jZW9mIEc6ZSYmIm9iamVjdCI9PT0oInVuZGVmaW5lZCI9PT10eXBlb2YgZT8idW5kZWZpbmVkIjpXKGUpKSYmIm51bWJlciI9PT10eXBlb2YgZS5ub2RlVHlwZSYmInN0cmluZyI9PT10eXBlb2YgZS5ub2RlTmFtZX0sSmU9ZnVuY3Rpb24oZSx0LHIpe3VlW2VdJiZsKHVlW2VdLChmdW5jdGlvbihlKXtlLmNhbGwobix0LHIsVmUpfSkpfSxldD1mdW5jdGlvbihlKXt2YXIgdD12b2lkIDA7aWYoSmUoImJlZm9yZVNhbml0aXplRWxlbWVudHMiLGUsbnVsbCksWGUoZSkpcmV0dXJuIEdlKGUpLCEwO3ZhciByPW0oZS5ub2RlTmFtZSk7aWYoSmUoInVwb25TYW5pdGl6ZUVsZW1lbnQiLGUse3RhZ05hbWU6cixhbGxvd2VkVGFnczp2ZX0pLCgic3ZnIj09PXJ8fCJtYXRoIj09PXIpJiYwIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCJwLCBiciIpLmxlbmd0aClyZXR1cm4gR2UoZSksITA7aWYoIXZlW3JdfHxPZVtyXSl7aWYoX2UmJiFVZVtyXSYmImZ1bmN0aW9uIj09PXR5cGVvZiBlLmluc2VydEFkamFjZW50SFRNTCl0cnl7dmFyIG89ZS5pbm5lckhUTUw7ZS5pbnNlcnRBZGphY2VudEhUTUwoIkFmdGVyRW5kIixuZT9uZS5jcmVhdGVIVE1MKG8pOm8pfWNhdGNoKGEpe31yZXR1cm4gR2UoZSksITB9cmV0dXJuIm5vc2NyaXB0Ij09PXImJncoLzxcL25vc2NyaXB0L2ksZS5pbm5lckhUTUwpfHwibm9lbWJlZCI9PT1yJiZ3KC88XC9ub2VtYmVkL2ksZS5pbm5lckhUTUwpPyhHZShlKSwhMCk6KCFDZXx8ZS5maXJzdEVsZW1lbnRDaGlsZHx8ZS5jb250ZW50JiZlLmNvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGR8fCF3KC88L2csZS50ZXh0Q29udGVudCl8fChwKG4ucmVtb3ZlZCx7ZWxlbWVudDplLmNsb25lTm9kZSgpfSksZS5pbm5lckhUTUw/ZS5pbm5lckhUTUw9ZyhlLmlubmVySFRNTCwvPC9nLCImbHQ7Iik6ZS5pbm5lckhUTUw9ZyhlLnRleHRDb250ZW50LC88L2csIiZsdDsiKSksRWUmJjM9PT1lLm5vZGVUeXBlJiYodD1lLnRleHRDb250ZW50LHQ9Zyh0LGRlLCIgIiksdD1nKHQsZmUsIiAiKSxlLnRleHRDb250ZW50IT09dCYmKHAobi5yZW1vdmVkLHtlbGVtZW50OmUuY2xvbmVOb2RlKCl9KSxlLnRleHRDb250ZW50PXQpKSxKZSgiYWZ0ZXJTYW5pdGl6ZUVsZW1lbnRzIixlLG51bGwpLCExKX0sdHQ9ZnVuY3Rpb24oZSx0LG4pe2lmKEZlJiYoImlkIj09PXR8fCJuYW1lIj09PXQpJiYobiBpbiBjfHxuIGluIHFlKSlyZXR1cm4hMTtpZihBZSYmdyhwZSx0KSk7ZWxzZSBpZihrZSYmdyhiZSx0KSk7ZWxzZXtpZighd2VbdF18fGplW3RdKXJldHVybiExO2lmKEhlW3RdKTtlbHNlIGlmKHcoZ2UsZyhuLGhlLCIiKSkpO2Vsc2UgaWYoInNyYyIhPT10JiYieGxpbms6aHJlZiIhPT10JiYiaHJlZiIhPT10fHwic2NyaXB0Ij09PWV8fDAhPT12KG4sImRhdGE6Iil8fCFCZVtlXSlpZihNZSYmIXcobWUsZyhuLGhlLCIiKSkpO2Vsc2UgaWYobilyZXR1cm4hMX1yZXR1cm4hMH0sbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dm9pZCAwLG89dm9pZCAwLGE9dm9pZCAwLGk9dm9pZCAwLHM9dm9pZCAwO0plKCJiZWZvcmVTYW5pdGl6ZUF0dHJpYnV0ZXMiLGUsbnVsbCk7dmFyIGM9ZS5hdHRyaWJ1dGVzO2lmKGMpe3ZhciBsPXthdHRyTmFtZToiIixhdHRyVmFsdWU6IiIsa2VlcEF0dHI6ITAsYWxsb3dlZEF0dHJpYnV0ZXM6d2V9O2ZvcihzPWMubGVuZ3RoO3MtLTspe3ZhciBwPXQ9Y1tzXSxoPXAubmFtZSx2PXAubmFtZXNwYWNlVVJJO2lmKG89eSh0LnZhbHVlKSxhPW0oaCksbC5hdHRyTmFtZT1hLGwuYXR0clZhbHVlPW8sbC5rZWVwQXR0cj0hMCxsLmZvcmNlS2VlcEF0dHI9dm9pZCAwLEplKCJ1cG9uU2FuaXRpemVBdHRyaWJ1dGUiLGUsbCksbz1sLmF0dHJWYWx1ZSwhbC5mb3JjZUtlZXBBdHRyKXtpZigibmFtZSI9PT1hJiYiSU1HIj09PWUubm9kZU5hbWUmJmMuaWQpaT1jLmlkLGM9YihjLFtdKSxRZSgiaWQiLGUpLFFlKGgsZSksdShjLGkpPnMmJmUuc2V0QXR0cmlidXRlKCJpZCIsaS52YWx1ZSk7ZWxzZXtpZigiSU5QVVQiPT09ZS5ub2RlTmFtZSYmInR5cGUiPT09YSYmImZpbGUiPT09byYmbC5rZWVwQXR0ciYmKHdlW2FdfHwhamVbYV0pKWNvbnRpbnVlOyJpZCI9PT1oJiZlLnNldEF0dHJpYnV0ZShoLCIiKSxRZShoLGUpfWlmKGwua2VlcEF0dHIpaWYoQ2UmJncoL1wvPi9pLG8pKVFlKGgsZSk7ZWxzZSBpZih3KC9zdmd8bWF0aC9pLGUubmFtZXNwYWNlVVJJKSYmdyh4KCI8LygiK2QocihVZSksInwiKSsiKSIsImkiKSxvKSlRZShoLGUpO2Vsc2V7RWUmJihvPWcobyxkZSwiICIpLG89ZyhvLGZlLCIgIikpO3ZhciBPPWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZih0dChPLGEsbykpdHJ5e3Y/ZS5zZXRBdHRyaWJ1dGVOUyh2LGgsbyk6ZS5zZXRBdHRyaWJ1dGUoaCxvKSxmKG4ucmVtb3ZlZCl9Y2F0Y2goail7fX19fUplKCJhZnRlclNhbml0aXplQXR0cmlidXRlcyIsZSxudWxsKX19LHJ0PWZ1bmN0aW9uIGUodCl7dmFyIG49dm9pZCAwLHI9WmUodCk7Zm9yKEplKCJiZWZvcmVTYW5pdGl6ZVNoYWRvd0RPTSIsdCxudWxsKTtuPXIubmV4dE5vZGUoKTspSmUoInVwb25TYW5pdGl6ZVNoYWRvd05vZGUiLG4sbnVsbCksZXQobil8fChuLmNvbnRlbnQgaW5zdGFuY2VvZiBqJiZlKG4uY29udGVudCksbnQobikpO0plKCJhZnRlclNhbml0aXplU2hhZG93RE9NIix0LG51bGwpfTtyZXR1cm4gbi5zYW5pdGl6ZT1mdW5jdGlvbihlLHIpe3ZhciBvPXZvaWQgMCxpPXZvaWQgMCxzPXZvaWQgMCxjPXZvaWQgMCxsPXZvaWQgMDtpZihlfHwoZT0iXHgzYyEtLVx4M2UiKSwic3RyaW5nIiE9PXR5cGVvZiBlJiYhJGUoZSkpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgZS50b1N0cmluZyl0aHJvdyBPKCJ0b1N0cmluZyBpcyBub3QgYSBmdW5jdGlvbiIpO2lmKCJzdHJpbmciIT09dHlwZW9mKGU9ZS50b1N0cmluZygpKSl0aHJvdyBPKCJkaXJ0eSBpcyBub3QgYSBzdHJpbmcsIGFib3J0aW5nIil9aWYoIW4uaXNTdXBwb3J0ZWQpe2lmKCJvYmplY3QiPT09Vyh0LnRvU3RhdGljSFRNTCl8fCJmdW5jdGlvbiI9PT10eXBlb2YgdC50b1N0YXRpY0hUTUwpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUpcmV0dXJuIHQudG9TdGF0aWNIVE1MKGUpO2lmKCRlKGUpKXJldHVybiB0LnRvU3RhdGljSFRNTChlLm91dGVySFRNTCl9cmV0dXJuIGV9aWYoUmV8fFllKHIpLG4ucmVtb3ZlZD1bXSwic3RyaW5nIj09PXR5cGVvZiBlJiYoemU9ITEpLHplKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBHKTE9PT0oaT0obz1LZSgiXHgzYyEtLVx4M2UiKSkub3duZXJEb2N1bWVudC5pbXBvcnROb2RlKGUsITApKS5ub2RlVHlwZSYmIkJPRFkiPT09aS5ub2RlTmFtZXx8IkhUTUwiPT09aS5ub2RlTmFtZT9vPWk6by5hcHBlbmRDaGlsZChpKTtlbHNle2lmKCFUZSYmIUVlJiYhU2UmJkxlJiYtMT09PWUuaW5kZXhPZigiPCIpKXJldHVybiBuZT9uZS5jcmVhdGVIVE1MKGUpOmU7aWYoIShvPUtlKGUpKSlyZXR1cm4gVGU/bnVsbDpyZX1vJiZEZSYmR2Uoby5maXJzdENoaWxkKTtmb3IodmFyIHU9WmUoemU/ZTpvKTtzPXUubmV4dE5vZGUoKTspMz09PXMubm9kZVR5cGUmJnM9PT1jfHxldChzKXx8KHMuY29udGVudCBpbnN0YW5jZW9mIGomJnJ0KHMuY29udGVudCksbnQocyksYz1zKTtpZihjPW51bGwsemUpcmV0dXJuIGU7aWYoVGUpe2lmKE5lKWZvcihsPWNlLmNhbGwoby5vd25lckRvY3VtZW50KTtvLmZpcnN0Q2hpbGQ7KWwuYXBwZW5kQ2hpbGQoby5maXJzdENoaWxkKTtlbHNlIGw9bztyZXR1cm4gUGUmJihsPWxlLmNhbGwoYSxsLCEwKSksbH12YXIgZD1TZT9vLm91dGVySFRNTDpvLmlubmVySFRNTDtyZXR1cm4gRWUmJihkPWcoZCxkZSwiICIpLGQ9ZyhkLGZlLCIgIikpLG5lJiZMZT9uZS5jcmVhdGVIVE1MKGQpOmR9LG4uc2V0Q29uZmlnPWZ1bmN0aW9uKGUpe1llKGUpLFJlPSEwfSxuLmNsZWFyQ29uZmlnPWZ1bmN0aW9uKCl7VmU9bnVsbCxSZT0hMX0sbi5pc1ZhbGlkQXR0cmlidXRlPWZ1bmN0aW9uKGUsdCxuKXtWZXx8WWUoe30pO3ZhciByPW0oZSksbz1tKHQpO3JldHVybiB0dChyLG8sbil9LG4uYWRkSG9vaz1mdW5jdGlvbihlLHQpeyJmdW5jdGlvbiI9PT10eXBlb2YgdCYmKHVlW2VdPXVlW2VdfHxbXSxwKHVlW2VdLHQpKX0sbi5yZW1vdmVIb29rPWZ1bmN0aW9uKGUpe3VlW2VdJiZmKHVlW2VdKX0sbi5yZW1vdmVIb29rcz1mdW5jdGlvbihlKXt1ZVtlXSYmKHVlW2VdPVtdKX0sbi5yZW1vdmVBbGxIb29rcz1mdW5jdGlvbigpe3VlPXt9fSxufSgpfSgpfSwzNTE6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIGUuZXhwb3J0cz1uPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWUuZXhwb3J0cz1ufSwzNTI6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99fSwzNTM6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUuX19wcm90b19fPXR9fSwzNTQ6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBlfX0sMzU1OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMjkpLG89bigzMyksYT1uKDM1NiksaT1uKDIxNCkscz1uKDIzKSxjPW4oODgpLGw9bigyMTUpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdCxuLHUsZCxmLHAsYj1vKGUpLG09ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxoPWFyZ3VtZW50cy5sZW5ndGgsZz1oPjE/YXJndW1lbnRzWzFdOnZvaWQgMCx2PXZvaWQgMCE9PWcseT1sKGIpLHc9MDtpZih2JiYoZz1yKGcsaD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLHZvaWQgMD09eXx8bT09QXJyYXkmJmkoeSkpZm9yKG49bmV3IG0odD1zKGIubGVuZ3RoKSk7dD53O3crKylwPXY/ZyhiW3ddLHcpOmJbd10sYyhuLHcscCk7ZWxzZSBmb3IoZj0oZD15LmNhbGwoYikpLm5leHQsbj1uZXcgbTshKHU9Zi5jYWxsKGQpKS5kb25lO3crKylwPXY/YShkLGcsW3UudmFsdWUsd10sITApOnUudmFsdWUsYyhuLHcscCk7cmV0dXJuIG4ubGVuZ3RoPXcsbn19LDM1NjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNCksbz1uKDIxNik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGEpe3RyeXtyZXR1cm4gYT90KHIobilbMF0sblsxXSk6dChuKX1jYXRjaChpKXt0aHJvdyBvKGUpLGl9fX0sMzU3OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKDEsYXJndW1lbnRzKSwoMCxyLmRlZmF1bHQpKGUsRGF0ZS5ub3coKSl9O3ZhciByPWEobigzMzUpKSxvPWEobigzMTcpKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1lLmV4cG9ydHM9dC5kZWZhdWx0fSwzNTg6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpeygwLG8uZGVmYXVsdCkoMSxhcmd1bWVudHMpO3ZhciB0PSgwLHIuZGVmYXVsdCkoZSk7cmV0dXJuIHQuc2V0SG91cnMoMCwwLDAsMCksdH07dmFyIHI9YShuKDMxOCkpLG89YShuKDMxNykpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUuZXhwb3J0cz10LmRlZmF1bHR9LDM1OTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsYS5kZWZhdWx0KSgxLGFyZ3VtZW50cyksKDAsci5kZWZhdWx0KShlLCgwLG8uZGVmYXVsdCkoRGF0ZS5ub3coKSwxKSl9O3ZhciByPWkobigzMzUpKSxvPWkobigzNjApKSxhPWkobigzMTcpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1lLmV4cG9ydHM9dC5kZWZhdWx0fSwzNjA6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7KDAsYS5kZWZhdWx0KSgyLGFyZ3VtZW50cyk7dmFyIG49KDAsci5kZWZhdWx0KSh0KTtyZXR1cm4oMCxvLmRlZmF1bHQpKGUsLW4pfTt2YXIgcj1pKG4oMzI1KSksbz1pKG4oMzYxKSksYT1pKG4oMzE3KSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzYxOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpeygwLGEuZGVmYXVsdCkoMixhcmd1bWVudHMpO3ZhciBuPSgwLG8uZGVmYXVsdCkoZSksaT0oMCxyLmRlZmF1bHQpKHQpO2lmKGlzTmFOKGkpKXJldHVybiBuZXcgRGF0ZShOYU4pO2lmKCFpKXJldHVybiBuO3JldHVybiBuLnNldERhdGUobi5nZXREYXRlKCkraSksbn07dmFyIHI9aShuKDMyNSkpLG89aShuKDMxOCkpLGE9aShuKDMxNykpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUuZXhwb3J0cz10LmRlZmF1bHR9LDM2MjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0LG4peygwLGYuZGVmYXVsdCkoMixhcmd1bWVudHMpO3ZhciBwPVN0cmluZyh0KSxoPW58fHt9LGc9aC5sb2NhbGV8fG8uZGVmYXVsdCx3PWcub3B0aW9ucyYmZy5vcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSx4PW51bGw9PXc/MTooMCxkLmRlZmF1bHQpKHcpLE89bnVsbD09aC5maXJzdFdlZWtDb250YWluc0RhdGU/eDooMCxkLmRlZmF1bHQpKGguZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtpZighKE8+PTEmJk88PTcpKXRocm93IG5ldyBSYW5nZUVycm9yKCJmaXJzdFdlZWtDb250YWluc0RhdGUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDcgaW5jbHVzaXZlbHkiKTt2YXIgaj1nLm9wdGlvbnMmJmcub3B0aW9ucy53ZWVrU3RhcnRzT24saz1udWxsPT1qPzA6KDAsZC5kZWZhdWx0KShqKSxBPW51bGw9PWgud2Vla1N0YXJ0c09uP2s6KDAsZC5kZWZhdWx0KShoLndlZWtTdGFydHNPbik7aWYoIShBPj0wJiZBPD02KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigid2Vla1N0YXJ0c09uIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA2IGluY2x1c2l2ZWx5Iik7aWYoIWcubG9jYWxpemUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImxvY2FsZSBtdXN0IGNvbnRhaW4gbG9jYWxpemUgcHJvcGVydHkiKTtpZighZy5mb3JtYXRMb25nKXRocm93IG5ldyBSYW5nZUVycm9yKCJsb2NhbGUgbXVzdCBjb250YWluIGZvcm1hdExvbmcgcHJvcGVydHkiKTt2YXIgTT0oMCxpLmRlZmF1bHQpKGUpO2lmKCEoMCxyLmRlZmF1bHQpKE0pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTt2YXIgQz0oMCxsLmRlZmF1bHQpKE0pLEU9KDAsYS5kZWZhdWx0KShNLEMpLFM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpPLHdlZWtTdGFydHNPbjpBLGxvY2FsZTpnLF9vcmlnaW5hbERhdGU6TX0sUj1wLm1hdGNoKG0pLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXTtyZXR1cm4icCI9PT10fHwiUCI9PT10PygwLGMuZGVmYXVsdFt0XSkoZSxnLmZvcm1hdExvbmcsUyk6ZX0pKS5qb2luKCIiKS5tYXRjaChiKS5tYXAoKGZ1bmN0aW9uKG4pe2lmKCInJyI9PT1uKXJldHVybiInIjt2YXIgcj1uWzBdO2lmKCInIj09PXIpcmV0dXJuIHkobik7dmFyIG89cy5kZWZhdWx0W3JdO2lmKG8pcmV0dXJuIWgudXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiYoMCx1LmlzUHJvdGVjdGVkV2Vla1llYXJUb2tlbikobikmJigwLHUudGhyb3dQcm90ZWN0ZWRFcnJvcikobix0LGUpLCFoLnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJigwLHUuaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbikobikmJigwLHUudGhyb3dQcm90ZWN0ZWRFcnJvcikobix0LGUpLG8oRSxuLGcubG9jYWxpemUsUyk7aWYoci5tYXRjaCh2KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK3IrImAiKTtyZXR1cm4gbn0pKS5qb2luKCIiKTtyZXR1cm4gUn07dmFyIHI9cChuKDM2MykpLG89cChuKDM2NCkpLGE9cChuKDM3NCkpLGk9cChuKDMxOCkpLHM9cChuKDM3NikpLGM9cChuKDM4MykpLGw9cChuKDM4NCkpLHU9bigzODUpLGQ9cChuKDMyNSkpLGY9cChuKDMxNykpO2Z1bmN0aW9uIHAoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBiPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csbT0vUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxoPS9eJyhbXl0qPyknPyQvLGc9LycnL2csdj0vW2EtekEtWl0vO2Z1bmN0aW9uIHkoZSl7cmV0dXJuIGUubWF0Y2goaClbMV0ucmVwbGFjZShnLCInIil9ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzYzOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXsoMCxvLmRlZmF1bHQpKDEsYXJndW1lbnRzKTt2YXIgdD0oMCxyLmRlZmF1bHQpKGUpO3JldHVybiFpc05hTih0KX07dmFyIHI9YShuKDMxOCkpLG89YShuKDMxNykpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUuZXhwb3J0cz10LmRlZmF1bHR9LDM2NDpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciByPWMobigzNjUpKSxvPWMobigzNjYpKSxhPWMobigzNjgpKSxpPWMobigzNjkpKSxzPWMobigzNzEpKTtmdW5jdGlvbiBjKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgbD17Y29kZToiZW4tVVMiLGZvcm1hdERpc3RhbmNlOnIuZGVmYXVsdCxmb3JtYXRMb25nOm8uZGVmYXVsdCxmb3JtYXRSZWxhdGl2ZTphLmRlZmF1bHQsbG9jYWxpemU6aS5kZWZhdWx0LG1hdGNoOnMuZGVmYXVsdCxvcHRpb25zOnt3ZWVrU3RhcnRzT246MCxmaXJzdFdlZWtDb250YWluc0RhdGU6MX19O3QuZGVmYXVsdD1sLGUuZXhwb3J0cz10LmRlZmF1bHR9LDM2NTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciBvO249bnx8e30sbz0ic3RyaW5nIj09PXR5cGVvZiByW2VdP3JbZV06MT09PXQ/cltlXS5vbmU6cltlXS5vdGhlci5yZXBsYWNlKCJ7e2NvdW50fX0iLHQpO2lmKG4uYWRkU3VmZml4KXJldHVybiBuLmNvbXBhcmlzb24+MD8iaW4gIitvOm8rIiBhZ28iO3JldHVybiBvfTt2YXIgcj17bGVzc1RoYW5YU2Vjb25kczp7b25lOiJsZXNzIHRoYW4gYSBzZWNvbmQiLG90aGVyOiJsZXNzIHRoYW4ge3tjb3VudH19IHNlY29uZHMifSx4U2Vjb25kczp7b25lOiIxIHNlY29uZCIsb3RoZXI6Int7Y291bnR9fSBzZWNvbmRzIn0saGFsZkFNaW51dGU6ImhhbGYgYSBtaW51dGUiLGxlc3NUaGFuWE1pbnV0ZXM6e29uZToibGVzcyB0aGFuIGEgbWludXRlIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBtaW51dGVzIn0seE1pbnV0ZXM6e29uZToiMSBtaW51dGUiLG90aGVyOiJ7e2NvdW50fX0gbWludXRlcyJ9LGFib3V0WEhvdXJzOntvbmU6ImFib3V0IDEgaG91ciIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBob3VycyJ9LHhIb3Vyczp7b25lOiIxIGhvdXIiLG90aGVyOiJ7e2NvdW50fX0gaG91cnMifSx4RGF5czp7b25lOiIxIGRheSIsb3RoZXI6Int7Y291bnR9fSBkYXlzIn0sYWJvdXRYV2Vla3M6e29uZToiYWJvdXQgMSB3ZWVrIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHdlZWtzIn0seFdlZWtzOntvbmU6IjEgd2VlayIsb3RoZXI6Int7Y291bnR9fSB3ZWVrcyJ9LGFib3V0WE1vbnRoczp7b25lOiJhYm91dCAxIG1vbnRoIixvdGhlcjoiYWJvdXQge3tjb3VudH19IG1vbnRocyJ9LHhNb250aHM6e29uZToiMSBtb250aCIsb3RoZXI6Int7Y291bnR9fSBtb250aHMifSxhYm91dFhZZWFyczp7b25lOiJhYm91dCAxIHllYXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0geWVhcnMifSx4WWVhcnM6e29uZToiMSB5ZWFyIixvdGhlcjoie3tjb3VudH19IHllYXJzIn0sb3ZlclhZZWFyczp7b25lOiJvdmVyIDEgeWVhciIsb3RoZXI6Im92ZXIge3tjb3VudH19IHllYXJzIn0sYWxtb3N0WFllYXJzOntvbmU6ImFsbW9zdCAxIHllYXIiLG90aGVyOiJhbG1vc3Qge3tjb3VudH19IHllYXJzIn19O2UuZXhwb3J0cz10LmRlZmF1bHR9LDM2NjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciByLG89KHI9bigzNjcpKSYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn07dmFyIGE9e2RhdGU6KDAsby5kZWZhdWx0KSh7Zm9ybWF0czp7ZnVsbDoiRUVFRSwgTU1NTSBkbywgeSIsbG9uZzoiTU1NTSBkbywgeSIsbWVkaXVtOiJNTU0gZCwgeSIsc2hvcnQ6Ik1NL2RkL3l5eXkifSxkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTooMCxvLmRlZmF1bHQpKHtmb3JtYXRzOntmdWxsOiJoOm1tOnNzIGEgenp6eiIsbG9uZzoiaDptbTpzcyBhIHoiLG1lZGl1bToiaDptbTpzcyBhIixzaG9ydDoiaDptbSBhIn0sZGVmYXVsdFdpZHRoOiJmdWxsIn0pLGRhdGVUaW1lOigwLG8uZGVmYXVsdCkoe2Zvcm1hdHM6e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0sZGVmYXVsdFdpZHRoOiJmdWxsIn0pfTt0LmRlZmF1bHQ9YSxlLmV4cG9ydHM9dC5kZWZhdWx0fSwzNjc6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj10fHx7fSxyPW4ud2lkdGg/U3RyaW5nKG4ud2lkdGgpOmUuZGVmYXVsdFdpZHRoO3JldHVybiBlLmZvcm1hdHNbcl18fGUuZm9ybWF0c1tlLmRlZmF1bHRXaWR0aF19fSxlLmV4cG9ydHM9dC5kZWZhdWx0fSwzNjg6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCxuLG8pe3JldHVybiByW2VdfTt2YXIgcj17bGFzdFdlZWs6IidsYXN0JyBlZWVlICdhdCcgcCIseWVzdGVyZGF5OiIneWVzdGVyZGF5IGF0JyBwIix0b2RheToiJ3RvZGF5IGF0JyBwIix0b21vcnJvdzoiJ3RvbW9ycm93IGF0JyBwIixuZXh0V2VlazoiZWVlZSAnYXQnIHAiLG90aGVyOiJQIn07ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzY5OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIHIsbz0ocj1uKDM3MCkpJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfTt2YXIgYT17b3JkaW5hbE51bWJlcjpmdW5jdGlvbihlLHQpe3ZhciBuPU51bWJlcihlKSxyPW4lMTAwO2lmKHI+MjB8fHI8MTApc3dpdGNoKHIlMTApe2Nhc2UgMTpyZXR1cm4gbisic3QiO2Nhc2UgMjpyZXR1cm4gbisibmQiO2Nhc2UgMzpyZXR1cm4gbisicmQifXJldHVybiBuKyJ0aCJ9LGVyYTooMCxvLmRlZmF1bHQpKHt2YWx1ZXM6e25hcnJvdzpbIkIiLCJBIl0sYWJicmV2aWF0ZWQ6WyJCQyIsIkFEIl0sd2lkZTpbIkJlZm9yZSBDaHJpc3QiLCJBbm5vIERvbWluaSJdfSxkZWZhdWx0V2lkdGg6IndpZGUifSkscXVhcnRlcjooMCxvLmRlZmF1bHQpKHt2YWx1ZXM6e25hcnJvdzpbIjEiLCIyIiwiMyIsIjQiXSxhYmJyZXZpYXRlZDpbIlExIiwiUTIiLCJRMyIsIlE0Il0sd2lkZTpbIjFzdCBxdWFydGVyIiwiMm5kIHF1YXJ0ZXIiLCIzcmQgcXVhcnRlciIsIjR0aCBxdWFydGVyIl19LGRlZmF1bHRXaWR0aDoid2lkZSIsYXJndW1lbnRDYWxsYmFjazpmdW5jdGlvbihlKXtyZXR1cm4gTnVtYmVyKGUpLTF9fSksbW9udGg6KDAsby5kZWZhdWx0KSh7dmFsdWVzOntuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5OigwLG8uZGVmYXVsdCkoe3ZhbHVlczp7bmFycm93OlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLHNob3J0OlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxhYmJyZXZpYXRlZDpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLHdpZGU6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSxkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5UGVyaW9kOigwLG8uZGVmYXVsdCkoe3ZhbHVlczp7bmFycm93OnthbToiYSIscG06InAiLG1pZG5pZ2h0OiJtaSIsbm9vbjoibiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LGFiYnJldmlhdGVkOnthbToiQU0iLHBtOiJQTSIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sd2lkZTp7YW06ImEubS4iLHBtOiJwLm0uIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifX0sZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOntuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9fSxkZWZhdWx0Rm9ybWF0dGluZ1dpZHRoOiJ3aWRlIn0pfTt0LmRlZmF1bHQ9YSxlLmV4cG9ydHM9dC5kZWZhdWx0fSwzNzA6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4pe3ZhciByLG89bnx8e307aWYoImZvcm1hdHRpbmciPT09KG8uY29udGV4dD9TdHJpbmcoby5jb250ZXh0KToic3RhbmRhbG9uZSIpJiZlLmZvcm1hdHRpbmdWYWx1ZXMpe3ZhciBhPWUuZGVmYXVsdEZvcm1hdHRpbmdXaWR0aHx8ZS5kZWZhdWx0V2lkdGgsaT1vLndpZHRoP1N0cmluZyhvLndpZHRoKTphO3I9ZS5mb3JtYXR0aW5nVmFsdWVzW2ldfHxlLmZvcm1hdHRpbmdWYWx1ZXNbYV19ZWxzZXt2YXIgcz1lLmRlZmF1bHRXaWR0aCxjPW8ud2lkdGg/U3RyaW5nKG8ud2lkdGgpOmUuZGVmYXVsdFdpZHRoO3I9ZS52YWx1ZXNbY118fGUudmFsdWVzW3NdfXJldHVybiByW2UuYXJndW1lbnRDYWxsYmFjaz9lLmFyZ3VtZW50Q2FsbGJhY2sodCk6dF19fSxlLmV4cG9ydHM9dC5kZWZhdWx0fSwzNzE6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgcj1hKG4oMzcyKSksbz1hKG4oMzczKSk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dmFyIGk9e29yZGluYWxOdW1iZXI6KDAsci5kZWZhdWx0KSh7bWF0Y2hQYXR0ZXJuOi9eKFxkKykodGh8c3R8bmR8cmQpPy9pLHBhcnNlUGF0dGVybjovXGQrL2ksdmFsdWVDYWxsYmFjazpmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9fSksZXJhOigwLG8uZGVmYXVsdCkoe21hdGNoUGF0dGVybnM6e25hcnJvdzovXihifGEpL2ksYWJicmV2aWF0ZWQ6L14oYlwuP1xzP2NcLj98YlwuP1xzP2NcLj9ccz9lXC4/fGFcLj9ccz9kXC4/fGNcLj9ccz9lXC4/KS9pLHdpZGU6L14oYmVmb3JlIGNocmlzdHxiZWZvcmUgY29tbW9uIGVyYXxhbm5vIGRvbWluaXxjb21tb24gZXJhKS9pfSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczp7YW55OlsvXmIvaSwvXihhfGMpL2ldfSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLHF1YXJ0ZXI6KDAsby5kZWZhdWx0KSh7bWF0Y2hQYXR0ZXJuczp7bmFycm93Oi9eWzEyMzRdL2ksYWJicmV2aWF0ZWQ6L15xWzEyMzRdL2ksd2lkZTovXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaX0sZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6e2FueTpbLzEvaSwvMi9pLC8zL2ksLzQvaV19LGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkiLHZhbHVlQ2FsbGJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrMX19KSxtb250aDooMCxvLmRlZmF1bHQpKHttYXRjaFBhdHRlcm5zOntuYXJyb3c6L15bamZtYXNvbmRdL2ksYWJicmV2aWF0ZWQ6L14oamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMpL2ksd2lkZTovXihqYW51YXJ5fGZlYnJ1YXJ5fG1hcmNofGFwcmlsfG1heXxqdW5lfGp1bHl8YXVndXN0fHNlcHRlbWJlcnxvY3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pfSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczp7bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0sZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXk6KDAsby5kZWZhdWx0KSh7bWF0Y2hQYXR0ZXJuczp7bmFycm93Oi9eW3NtdHdmXS9pLHNob3J0Oi9eKHN1fG1vfHR1fHdlfHRofGZyfHNhKS9pLGFiYnJldmlhdGVkOi9eKHN1bnxtb258dHVlfHdlZHx0aHV8ZnJpfHNhdCkvaSx3aWRlOi9eKHN1bmRheXxtb25kYXl8dHVlc2RheXx3ZWRuZXNkYXl8dGh1cnNkYXl8ZnJpZGF5fHNhdHVyZGF5KS9pfSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczp7bmFycm93OlsvXnMvaSwvXm0vaSwvXnQvaSwvXncvaSwvXnQvaSwvXmYvaSwvXnMvaV0sYW55OlsvXnN1L2ksL15tL2ksL150dS9pLC9edy9pLC9edGgvaSwvXmYvaSwvXnNhL2ldfSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheVBlcmlvZDooMCxvLmRlZmF1bHQpKHttYXRjaFBhdHRlcm5zOntuYXJyb3c6L14oYXxwfG1pfG58KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pLGFueTovXihbYXBdXC4/XHM/bVwuP3xtaWRuaWdodHxub29ufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaX0sZGVmYXVsdE1hdGNoV2lkdGg6ImFueSIscGFyc2VQYXR0ZXJuczp7YW55OnthbTovXmEvaSxwbTovXnAvaSxtaWRuaWdodDovXm1pL2ksbm9vbjovXm5vL2ksbW9ybmluZzovbW9ybmluZy9pLGFmdGVybm9vbjovYWZ0ZXJub29uL2ksZXZlbmluZzovZXZlbmluZy9pLG5pZ2h0Oi9uaWdodC9pfX0sZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KX07dC5kZWZhdWx0PWksZS5leHBvcnRzPXQuZGVmYXVsdH0sMzcyOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt2YXIgcj1TdHJpbmcodCksbz1ufHx7fSxhPXIubWF0Y2goZS5tYXRjaFBhdHRlcm4pO2lmKCFhKXJldHVybiBudWxsO3ZhciBpPWFbMF0scz1yLm1hdGNoKGUucGFyc2VQYXR0ZXJuKTtpZighcylyZXR1cm4gbnVsbDt2YXIgYz1lLnZhbHVlQ2FsbGJhY2s/ZS52YWx1ZUNhbGxiYWNrKHNbMF0pOnNbMF07cmV0dXJue3ZhbHVlOmM9by52YWx1ZUNhbGxiYWNrP28udmFsdWVDYWxsYmFjayhjKTpjLHJlc3Q6ci5zbGljZShpLmxlbmd0aCl9fX0sZS5leHBvcnRzPXQuZGVmYXVsdH0sMzczOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt2YXIgcj1TdHJpbmcodCksbz1ufHx7fSxhPW8ud2lkdGgsaT1hJiZlLm1hdGNoUGF0dGVybnNbYV18fGUubWF0Y2hQYXR0ZXJuc1tlLmRlZmF1bHRNYXRjaFdpZHRoXSxzPXIubWF0Y2goaSk7aWYoIXMpcmV0dXJuIG51bGw7dmFyIGMsbD1zWzBdLHU9YSYmZS5wYXJzZVBhdHRlcm5zW2FdfHxlLnBhcnNlUGF0dGVybnNbZS5kZWZhdWx0UGFyc2VXaWR0aF07cmV0dXJuIGM9IltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh1KT9mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKHQoZVtuXSkpcmV0dXJuIG59KHUsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRlc3QobCl9KSk6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gZSlpZihlLmhhc093blByb3BlcnR5KG4pJiZ0KGVbbl0pKXJldHVybiBufSh1LChmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXN0KGwpfSkpLGM9ZS52YWx1ZUNhbGxiYWNrP2UudmFsdWVDYWxsYmFjayhjKTpjLHt2YWx1ZTpjPW8udmFsdWVDYWxsYmFjaz9vLnZhbHVlQ2FsbGJhY2soYyk6YyxyZXN0OnIuc2xpY2UobC5sZW5ndGgpfX19LGUuZXhwb3J0cz10LmRlZmF1bHR9LDM3NDpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxhLmRlZmF1bHQpKDIsYXJndW1lbnRzKTt2YXIgbj0oMCxyLmRlZmF1bHQpKHQpO3JldHVybigwLG8uZGVmYXVsdCkoZSwtbil9O3ZhciByPWkobigzMjUpKSxvPWkobigzNzUpKSxhPWkobigzMTcpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1lLmV4cG9ydHM9dC5kZWZhdWx0fSwzNzU6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7KDAsYS5kZWZhdWx0KSgyLGFyZ3VtZW50cyk7dmFyIG49KDAsby5kZWZhdWx0KShlKS5nZXRUaW1lKCksaT0oMCxyLmRlZmF1bHQpKHQpO3JldHVybiBuZXcgRGF0ZShuK2kpfTt2YXIgcj1pKG4oMzI1KSksbz1pKG4oMzE4KSksYT1pKG4oMzE3KSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzc2OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIHI9dShuKDM3NykpLG89dShuKDM3OCkpLGE9dShuKDM3OSkpLGk9dShuKDMzNykpLHM9dShuKDM4MSkpLGM9dShuKDMzOCkpLGw9dShuKDMzNikpO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBkPSJtaWRuaWdodCIsZj0ibm9vbiIscD0ibW9ybmluZyIsYj0iYWZ0ZXJub29uIixtPSJldmVuaW5nIixoPSJuaWdodCI7ZnVuY3Rpb24gZyhlLHQpe3ZhciBuPWU+MD8iLSI6IisiLHI9TWF0aC5hYnMoZSksbz1NYXRoLmZsb29yKHIvNjApLGE9ciU2MDtpZigwPT09YSlyZXR1cm4gbitTdHJpbmcobyk7dmFyIGk9dHx8IiI7cmV0dXJuIG4rU3RyaW5nKG8pK2krKDAsbC5kZWZhdWx0KShhLDIpfWZ1bmN0aW9uIHYoZSx0KXtyZXR1cm4gZSU2MD09PTA/KGU+MD8iLSI6IisiKSsoMCxsLmRlZmF1bHQpKE1hdGguYWJzKGUpLzYwLDIpOnkoZSx0KX1mdW5jdGlvbiB5KGUsdCl7dmFyIG49dHx8IiIscj1lPjA/Ii0iOiIrIixvPU1hdGguYWJzKGUpO3JldHVybiByKygwLGwuZGVmYXVsdCkoTWF0aC5mbG9vcihvLzYwKSwyKStuKygwLGwuZGVmYXVsdCkobyU2MCwyKX12YXIgdz17RzpmdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5nZXRVVENGdWxsWWVhcigpPjA/MTowO3N3aXRjaCh0KXtjYXNlIkciOmNhc2UiR0ciOmNhc2UiR0dHIjpyZXR1cm4gbi5lcmEocix7d2lkdGg6ImFiYnJldmlhdGVkIn0pO2Nhc2UiR0dHR0ciOnJldHVybiBuLmVyYShyLHt3aWR0aDoibmFycm93In0pO2Nhc2UiR0dHRyI6ZGVmYXVsdDpyZXR1cm4gbi5lcmEocix7d2lkdGg6IndpZGUifSl9fSx5OmZ1bmN0aW9uKGUsdCxuKXtpZigieW8iPT09dCl7dmFyIG89ZS5nZXRVVENGdWxsWWVhcigpLGE9bz4wP286MS1vO3JldHVybiBuLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoieWVhciJ9KX1yZXR1cm4gci5kZWZhdWx0LnkoZSx0KX0sWTpmdW5jdGlvbihlLHQsbixyKXt2YXIgbz0oMCxjLmRlZmF1bHQpKGUsciksYT1vPjA/bzoxLW87aWYoIllZIj09PXQpe3ZhciBpPWElMTAwO3JldHVybigwLGwuZGVmYXVsdCkoaSwyKX1yZXR1cm4iWW8iPT09dD9uLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoieWVhciJ9KTooMCxsLmRlZmF1bHQpKGEsdC5sZW5ndGgpfSxSOmZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsaS5kZWZhdWx0KShlKTtyZXR1cm4oMCxsLmRlZmF1bHQpKG4sdC5sZW5ndGgpfSx1OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXRVVENGdWxsWWVhcigpO3JldHVybigwLGwuZGVmYXVsdCkobix0Lmxlbmd0aCl9LFE6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPU1hdGguY2VpbCgoZS5nZXRVVENNb250aCgpKzEpLzMpO3N3aXRjaCh0KXtjYXNlIlEiOnJldHVybiBTdHJpbmcocik7Y2FzZSJRUSI6cmV0dXJuKDAsbC5kZWZhdWx0KShyLDIpO2Nhc2UiUW8iOnJldHVybiBuLm9yZGluYWxOdW1iZXIocix7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIG4ucXVhcnRlcihyLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIG4ucXVhcnRlcihyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUSI6ZGVmYXVsdDpyZXR1cm4gbi5xdWFydGVyKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0scTpmdW5jdGlvbihlLHQsbil7dmFyIHI9TWF0aC5jZWlsKChlLmdldFVUQ01vbnRoKCkrMSkvMyk7c3dpdGNoKHQpe2Nhc2UicSI6cmV0dXJuIFN0cmluZyhyKTtjYXNlInFxIjpyZXR1cm4oMCxsLmRlZmF1bHQpKHIsMik7Y2FzZSJxbyI6cmV0dXJuIG4ub3JkaW5hbE51bWJlcihyLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UicXFxIjpyZXR1cm4gbi5xdWFydGVyKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gbi5xdWFydGVyKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxIjpkZWZhdWx0OnJldHVybiBuLnF1YXJ0ZXIocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxNOmZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1lLmdldFVUQ01vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIHIuZGVmYXVsdC5NKGUsdCk7Y2FzZSJNbyI6cmV0dXJuIG4ub3JkaW5hbE51bWJlcihvKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTU1NIjpyZXR1cm4gbi5tb250aChvLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJNTU1NTSI6cmV0dXJuIG4ubW9udGgobyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU0iOmRlZmF1bHQ6cmV0dXJuIG4ubW9udGgobyx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxMOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmdldFVUQ01vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTCI6cmV0dXJuIFN0cmluZyhyKzEpO2Nhc2UiTEwiOnJldHVybigwLGwuZGVmYXVsdCkocisxLDIpO2Nhc2UiTG8iOnJldHVybiBuLm9yZGluYWxOdW1iZXIocisxLHt1bml0OiJtb250aCJ9KTtjYXNlIkxMTCI6cmV0dXJuIG4ubW9udGgocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiTExMTEwiOnJldHVybiBuLm1vbnRoKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMIjpkZWZhdWx0OnJldHVybiBuLm1vbnRoKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sdzpmdW5jdGlvbihlLHQsbixyKXt2YXIgbz0oMCxzLmRlZmF1bHQpKGUscik7cmV0dXJuIndvIj09PXQ/bi5vcmRpbmFsTnVtYmVyKG8se3VuaXQ6IndlZWsifSk6KDAsbC5kZWZhdWx0KShvLHQubGVuZ3RoKX0sSTpmdW5jdGlvbihlLHQsbil7dmFyIHI9KDAsYS5kZWZhdWx0KShlKTtyZXR1cm4iSW8iPT09dD9uLm9yZGluYWxOdW1iZXIocix7dW5pdDoid2VlayJ9KTooMCxsLmRlZmF1bHQpKHIsdC5sZW5ndGgpfSxkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4iZG8iPT09dD9uLm9yZGluYWxOdW1iZXIoZS5nZXRVVENEYXRlKCkse3VuaXQ6ImRhdGUifSk6ci5kZWZhdWx0LmQoZSx0KX0sRDpmdW5jdGlvbihlLHQsbil7dmFyIHI9KDAsby5kZWZhdWx0KShlKTtyZXR1cm4iRG8iPT09dD9uLm9yZGluYWxOdW1iZXIocix7dW5pdDoiZGF5T2ZZZWFyIn0pOigwLGwuZGVmYXVsdCkocix0Lmxlbmd0aCl9LEU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuZ2V0VVRDRGF5KCk7c3dpdGNoKHQpe2Nhc2UiRSI6Y2FzZSJFRSI6Y2FzZSJFRUUiOnJldHVybiBuLmRheShyLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIG4uZGF5KHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiBuLmRheShyLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFIjpkZWZhdWx0OnJldHVybiBuLmRheShyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGU6ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89ZS5nZXRVVENEYXkoKSxhPShvLXIud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKHQpe2Nhc2UiZSI6cmV0dXJuIFN0cmluZyhhKTtjYXNlImVlIjpyZXR1cm4oMCxsLmRlZmF1bHQpKGEsMik7Y2FzZSJlbyI6cmV0dXJuIG4ub3JkaW5hbE51bWJlcihhLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiBuLmRheShvLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIG4uZGF5KG8se3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiBuLmRheShvLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlIjpkZWZhdWx0OnJldHVybiBuLmRheShvLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGM6ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89ZS5nZXRVVENEYXkoKSxhPShvLXIud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKHQpe2Nhc2UiYyI6cmV0dXJuIFN0cmluZyhhKTtjYXNlImNjIjpyZXR1cm4oMCxsLmRlZmF1bHQpKGEsdC5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiBuLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gbi5kYXkobyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiBuLmRheShvLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gbi5kYXkobyx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjYyI6ZGVmYXVsdDpyZXR1cm4gbi5kYXkobyx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxpOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmdldFVUQ0RheSgpLG89MD09PXI/NzpyO3N3aXRjaCh0KXtjYXNlImkiOnJldHVybiBTdHJpbmcobyk7Y2FzZSJpaSI6cmV0dXJuKDAsbC5kZWZhdWx0KShvLHQubGVuZ3RoKTtjYXNlImlvIjpyZXR1cm4gbi5vcmRpbmFsTnVtYmVyKG8se3VuaXQ6ImRheSJ9KTtjYXNlImlpaSI6cmV0dXJuIG4uZGF5KHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpIjpyZXR1cm4gbi5kYXkocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpaSI6cmV0dXJuIG4uZGF5KHIse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWkiOmRlZmF1bHQ6cmV0dXJuIG4uZGF5KHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sYTpmdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5nZXRVVENIb3VycygpLzEyPj0xPyJwbSI6ImFtIjtzd2l0Y2godCl7Y2FzZSJhIjpjYXNlImFhIjpyZXR1cm4gbi5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhIjpyZXR1cm4gbi5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJhYWFhYSI6cmV0dXJuIG4uZGF5UGVyaW9kKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJhYWFhIjpkZWZhdWx0OnJldHVybiBuLmRheVBlcmlvZChyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG89ZS5nZXRVVENIb3VycygpO3N3aXRjaChyPTEyPT09bz9mOjA9PT1vP2Q6by8xMj49MT8icG0iOiJhbSIsdCl7Y2FzZSJiIjpjYXNlImJiIjpyZXR1cm4gbi5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiIjpyZXR1cm4gbi5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJiYmJiYiI6cmV0dXJuIG4uZGF5UGVyaW9kKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmJiIjpkZWZhdWx0OnJldHVybiBuLmRheVBlcmlvZChyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LEI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG89ZS5nZXRVVENIb3VycygpO3N3aXRjaChyPW8+PTE3P206bz49MTI/YjpvPj00P3A6aCx0KXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gbi5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiBuLmRheVBlcmlvZChyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQiI6ZGVmYXVsdDpyZXR1cm4gbi5kYXlQZXJpb2Qocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxoOmZ1bmN0aW9uKGUsdCxuKXtpZigiaG8iPT09dCl7dmFyIG89ZS5nZXRVVENIb3VycygpJTEyO3JldHVybiAwPT09byYmKG89MTIpLG4ub3JkaW5hbE51bWJlcihvLHt1bml0OiJob3VyIn0pfXJldHVybiByLmRlZmF1bHQuaChlLHQpfSxIOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4iSG8iPT09dD9uLm9yZGluYWxOdW1iZXIoZS5nZXRVVENIb3VycygpLHt1bml0OiJob3VyIn0pOnIuZGVmYXVsdC5IKGUsdCl9LEs6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuZ2V0VVRDSG91cnMoKSUxMjtyZXR1cm4iS28iPT09dD9uLm9yZGluYWxOdW1iZXIocix7dW5pdDoiaG91ciJ9KTooMCxsLmRlZmF1bHQpKHIsdC5sZW5ndGgpfSxrOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmdldFVUQ0hvdXJzKCk7cmV0dXJuIDA9PT1yJiYocj0yNCksImtvIj09PXQ/bi5vcmRpbmFsTnVtYmVyKHIse3VuaXQ6ImhvdXIifSk6KDAsbC5kZWZhdWx0KShyLHQubGVuZ3RoKX0sbTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIm1vIj09PXQ/bi5vcmRpbmFsTnVtYmVyKGUuZ2V0VVRDTWludXRlcygpLHt1bml0OiJtaW51dGUifSk6ci5kZWZhdWx0Lm0oZSx0KX0sczpmdW5jdGlvbihlLHQsbil7cmV0dXJuInNvIj09PXQ/bi5vcmRpbmFsTnVtYmVyKGUuZ2V0VVRDU2Vjb25kcygpLHt1bml0OiJzZWNvbmQifSk6ci5kZWZhdWx0LnMoZSx0KX0sUzpmdW5jdGlvbihlLHQpe3JldHVybiByLmRlZmF1bHQuUyhlLHQpfSxYOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBvPShyLl9vcmlnaW5hbERhdGV8fGUpLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoMD09PW8pcmV0dXJuIloiO3N3aXRjaCh0KXtjYXNlIlgiOnJldHVybiB2KG8pO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIHkobyk7Y2FzZSJYWFhYWCI6Y2FzZSJYWFgiOmRlZmF1bHQ6cmV0dXJuIHkobywiOiIpfX0seDpmdW5jdGlvbihlLHQsbixyKXt2YXIgbz0oci5fb3JpZ2luYWxEYXRlfHxlKS5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaCh0KXtjYXNlIngiOnJldHVybiB2KG8pO2Nhc2UieHh4eCI6Y2FzZSJ4eCI6cmV0dXJuIHkobyk7Y2FzZSJ4eHh4eCI6Y2FzZSJ4eHgiOmRlZmF1bHQ6cmV0dXJuIHkobywiOiIpfX0sTzpmdW5jdGlvbihlLHQsbixyKXt2YXIgbz0oci5fb3JpZ2luYWxEYXRlfHxlKS5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaCh0KXtjYXNlIk8iOmNhc2UiT08iOmNhc2UiT09PIjpyZXR1cm4iR01UIitnKG8sIjoiKTtjYXNlIk9PT08iOmRlZmF1bHQ6cmV0dXJuIkdNVCIreShvLCI6Iil9fSx6OmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBvPShyLl9vcmlnaW5hbERhdGV8fGUpLmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKHQpe2Nhc2UieiI6Y2FzZSJ6eiI6Y2FzZSJ6enoiOnJldHVybiJHTVQiK2cobywiOiIpO2Nhc2Uienp6eiI6ZGVmYXVsdDpyZXR1cm4iR01UIit5KG8sIjoiKX19LHQ6ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89ci5fb3JpZ2luYWxEYXRlfHxlLGE9TWF0aC5mbG9vcihvLmdldFRpbWUoKS8xZTMpO3JldHVybigwLGwuZGVmYXVsdCkoYSx0Lmxlbmd0aCl9LFQ6ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89KHIuX29yaWdpbmFsRGF0ZXx8ZSkuZ2V0VGltZSgpO3JldHVybigwLGwuZGVmYXVsdCkobyx0Lmxlbmd0aCl9fTt0LmRlZmF1bHQ9dyxlLmV4cG9ydHM9dC5kZWZhdWx0fSwzNzc6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgcixvPShyPW4oMzM2KSkmJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9O3ZhciBhPXt5OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXRVVENGdWxsWWVhcigpLHI9bj4wP246MS1uO3JldHVybigwLG8uZGVmYXVsdCkoInl5Ij09PXQ/ciUxMDA6cix0Lmxlbmd0aCl9LE06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmdldFVUQ01vbnRoKCk7cmV0dXJuIk0iPT09dD9TdHJpbmcobisxKTooMCxvLmRlZmF1bHQpKG4rMSwyKX0sZDpmdW5jdGlvbihlLHQpe3JldHVybigwLG8uZGVmYXVsdCkoZS5nZXRVVENEYXRlKCksdC5sZW5ndGgpfSxhOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXRVVENIb3VycygpLzEyPj0xPyJwbSI6ImFtIjtzd2l0Y2godCl7Y2FzZSJhIjpjYXNlImFhIjpyZXR1cm4gbi50b1VwcGVyQ2FzZSgpO2Nhc2UiYWFhIjpyZXR1cm4gbjtjYXNlImFhYWFhIjpyZXR1cm4gblswXTtjYXNlImFhYWEiOmRlZmF1bHQ6cmV0dXJuImFtIj09PW4/ImEubS4iOiJwLm0uIn19LGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUuZ2V0VVRDSG91cnMoKSUxMnx8MTIsdC5sZW5ndGgpfSxIOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsby5kZWZhdWx0KShlLmdldFVUQ0hvdXJzKCksdC5sZW5ndGgpfSxtOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsby5kZWZhdWx0KShlLmdldFVUQ01pbnV0ZXMoKSx0Lmxlbmd0aCl9LHM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUuZ2V0VVRDU2Vjb25kcygpLHQubGVuZ3RoKX0sUzpmdW5jdGlvbihlLHQpe3ZhciBuPXQubGVuZ3RoLHI9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSxhPU1hdGguZmxvb3IocipNYXRoLnBvdygxMCxuLTMpKTtyZXR1cm4oMCxvLmRlZmF1bHQpKGEsdC5sZW5ndGgpfX07dC5kZWZhdWx0PWEsZS5leHBvcnRzPXQuZGVmYXVsdH0sMzc4OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXsoMCxvLmRlZmF1bHQpKDEsYXJndW1lbnRzKTt2YXIgdD0oMCxyLmRlZmF1bHQpKGUpLG49dC5nZXRUaW1lKCk7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCk7dmFyIGE9dC5nZXRUaW1lKCksaT1uLWE7cmV0dXJuIE1hdGguZmxvb3IoaS84NjRlNSkrMX07dmFyIHI9YShuKDMxOCkpLG89YShuKDMxNykpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUuZXhwb3J0cz10LmRlZmF1bHR9LDM3OTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7KDAsaS5kZWZhdWx0KSgxLGFyZ3VtZW50cyk7dmFyIHQ9KDAsci5kZWZhdWx0KShlKSxuPSgwLG8uZGVmYXVsdCkodCkuZ2V0VGltZSgpLSgwLGEuZGVmYXVsdCkodCkuZ2V0VGltZSgpO3JldHVybiBNYXRoLnJvdW5kKG4vNjA0OGU1KSsxfTt2YXIgcj1zKG4oMzE4KSksbz1zKG4oMzMwKSksYT1zKG4oMzgwKSksaT1zKG4oMzE3KSk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzgwOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXsoMCxhLmRlZmF1bHQpKDEsYXJndW1lbnRzKTt2YXIgdD0oMCxyLmRlZmF1bHQpKGUpLG49bmV3IERhdGUoMCk7bi5zZXRVVENGdWxsWWVhcih0LDAsNCksbi5zZXRVVENIb3VycygwLDAsMCwwKTt2YXIgaT0oMCxvLmRlZmF1bHQpKG4pO3JldHVybiBpfTt2YXIgcj1pKG4oMzM3KSksbz1pKG4oMzMwKSksYT1pKG4oMzE3KSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzgxOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpeygwLGkuZGVmYXVsdCkoMSxhcmd1bWVudHMpO3ZhciBuPSgwLHIuZGVmYXVsdCkoZSkscz0oMCxvLmRlZmF1bHQpKG4sdCkuZ2V0VGltZSgpLSgwLGEuZGVmYXVsdCkobix0KS5nZXRUaW1lKCk7cmV0dXJuIE1hdGgucm91bmQocy82MDQ4ZTUpKzF9O3ZhciByPXMobigzMTgpKSxvPXMobigzMzEpKSxhPXMobigzODIpKSxpPXMobigzMTcpKTtmdW5jdGlvbiBzKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1lLmV4cG9ydHM9dC5kZWZhdWx0fSwzODI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7KDAsaS5kZWZhdWx0KSgxLGFyZ3VtZW50cyk7dmFyIG49dHx8e30scz1uLmxvY2FsZSxjPXMmJnMub3B0aW9ucyYmcy5vcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSxsPW51bGw9PWM/MTooMCxyLmRlZmF1bHQpKGMpLHU9bnVsbD09bi5maXJzdFdlZWtDb250YWluc0RhdGU/bDooMCxyLmRlZmF1bHQpKG4uZmlyc3RXZWVrQ29udGFpbnNEYXRlKSxkPSgwLG8uZGVmYXVsdCkoZSx0KSxmPW5ldyBEYXRlKDApO2Yuc2V0VVRDRnVsbFllYXIoZCwwLHUpLGYuc2V0VVRDSG91cnMoMCwwLDAsMCk7dmFyIHA9KDAsYS5kZWZhdWx0KShmLHQpO3JldHVybiBwfTt2YXIgcj1zKG4oMzI1KSksbz1zKG4oMzM4KSksYT1zKG4oMzMxKSksaT1zKG4oMzE3KSk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzgzOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlLHQpe3N3aXRjaChlKXtjYXNlIlAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlIlBQIjpyZXR1cm4gdC5kYXRlKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UiUFBQIjpyZXR1cm4gdC5kYXRlKHt3aWR0aDoibG9uZyJ9KTtjYXNlIlBQUFAiOmRlZmF1bHQ6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fWZ1bmN0aW9uIG8oZSx0KXtzd2l0Y2goZSl7Y2FzZSJwIjpyZXR1cm4gdC50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6ImxvbmcifSk7Y2FzZSJwcHBwIjpkZWZhdWx0OnJldHVybiB0LnRpbWUoe3dpZHRoOiJmdWxsIn0pfX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgYT17cDpvLFA6ZnVuY3Rpb24oZSx0KXt2YXIgbixhPWUubWF0Y2goLyhQKykocCspPy8pLGk9YVsxXSxzPWFbMl07aWYoIXMpcmV0dXJuIHIoZSx0KTtzd2l0Y2goaSl7Y2FzZSJQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJzaG9ydCJ9KTticmVhaztjYXNlIlBQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJtZWRpdW0ifSk7YnJlYWs7Y2FzZSJQUFAiOm49dC5kYXRlVGltZSh7d2lkdGg6ImxvbmcifSk7YnJlYWs7Y2FzZSJQUFBQIjpkZWZhdWx0Om49dC5kYXRlVGltZSh7d2lkdGg6ImZ1bGwifSl9cmV0dXJuIG4ucmVwbGFjZSgie3tkYXRlfX0iLHIoaSx0KSkucmVwbGFjZSgie3t0aW1lfX0iLG8ocyx0KSl9fTt0LmRlZmF1bHQ9YSxlLmV4cG9ydHM9dC5kZWZhdWx0fSwzODQ6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBEYXRlKGUuZ2V0VGltZSgpKSxuPU1hdGguY2VpbCh0LmdldFRpbWV6b25lT2Zmc2V0KCkpO3Quc2V0U2Vjb25kcygwLDApO3ZhciBvPW4+MD8oNmU0K3IodCkpJTZlNDpyKHQpO3JldHVybiA2ZTQqbitvfTtmdW5jdGlvbiByKGUpe3JldHVybiBlLmdldFRpbWUoKSU2ZTR9ZS5leHBvcnRzPXQuZGVmYXVsdH0sMzg1OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbj1mdW5jdGlvbihlKXtyZXR1cm4tMSE9PXIuaW5kZXhPZihlKX0sdC5pc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW49ZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1vLmluZGV4T2YoZSl9LHQudGhyb3dQcm90ZWN0ZWRFcnJvcj1mdW5jdGlvbihlLHQsbil7aWYoIllZWVkiPT09ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVXNlIGB5eXl5YCBpbnN0ZWFkIG9mIGBZWVlZYCAoaW4gYCIuY29uY2F0KHQsImApIGZvciBmb3JtYXR0aW5nIHllYXJzIHRvIHRoZSBpbnB1dCBgIikuY29uY2F0KG4sImA7IHNlZTogaHR0cHM6Ly9naXQuaW8vZnhDeXIiKSk7aWYoIllZIj09PWUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlVzZSBgeXlgIGluc3RlYWQgb2YgYFlZYCAoaW4gYCIuY29uY2F0KHQsImApIGZvciBmb3JtYXR0aW5nIHllYXJzIHRvIHRoZSBpbnB1dCBgIikuY29uY2F0KG4sImA7IHNlZTogaHR0cHM6Ly9naXQuaW8vZnhDeXIiKSk7aWYoIkQiPT09ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVXNlIGBkYCBpbnN0ZWFkIG9mIGBEYCAoaW4gYCIuY29uY2F0KHQsImApIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoIHRvIHRoZSBpbnB1dCBgIikuY29uY2F0KG4sImA7IHNlZTogaHR0cHM6Ly9naXQuaW8vZnhDeXIiKSk7aWYoIkREIj09PWUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlVzZSBgZGRgIGluc3RlYWQgb2YgYEREYCAoaW4gYCIuY29uY2F0KHQsImApIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoIHRvIHRoZSBpbnB1dCBgIikuY29uY2F0KG4sImA7IHNlZTogaHR0cHM6Ly9naXQuaW8vZnhDeXIiKSl9O3ZhciByPVsiRCIsIkREIl0sbz1bIllZIiwiWVlZWSJdfSwzODY6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDkpLG89bigzODcpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigzODgpKCJsaW5rIil9LHtsaW5rOmZ1bmN0aW9uKGUpe3JldHVybiBvKHRoaXMsImEiLCJocmVmIixlKX19KX0sMzg3OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDIyKSxvPS8iL2c7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGEpe3ZhciBpPVN0cmluZyhyKGUpKSxzPSI8Iit0O3JldHVybiIiIT09biYmKHMrPSIgIituKyc9IicrU3RyaW5nKGEpLnJlcGxhY2UobywiJnF1b3Q7IikrJyInKSxzKyI+IitpKyI8LyIrdCsiPiJ9fSwzODg6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTApO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcigoZnVuY3Rpb24oKXt2YXIgdD0iIltlXSgnIicpO3JldHVybiB0IT09dC50b0xvd2VyQ2FzZSgpfHx0LnNwbGl0KCciJykubGVuZ3RoPjN9KSl9fSwzODk6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDkpLG89big5MSkuZXZlcnksYT1uKDkwKSxpPW4oNDApLHM9YSgiZXZlcnkiKSxjPWkoImV2ZXJ5Iik7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFzfHwhY30se2V2ZXJ5OmZ1bmN0aW9uKGUpe3JldHVybiBvKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LDM5MDpmdW5jdGlvbihlLHQsbil7dmFyIHI9big5KSxvPW4oMjE4KS5lbnRyaWVzO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwfSx7ZW50cmllczpmdW5jdGlvbihlKXtyZXR1cm4gbyhlKX19KX0sMzkxOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDMzOSksbz1uKDM5MiksYT1uKDM5MyksaT1uKDM5NCkscz1uKDM5NSk7KHQ9cighMSkpLmkobyk7dmFyIGM9YShpKSxsPWEocyk7dC5wdXNoKFtlLmksJy5jaGF0LC5zdGFydC1ncm91cHt3aWR0aDozNzJweDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MjZweDtib3JkZXItcmFkaXVzOjE2cHg7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2hhZG93OjAgOHB4IDIycHggMCByZ2JhKDAsMTgsNDYsLjE2KTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDoxO3JpZ2h0OjQ4cHg7bGVmdDphdXRvfS5jaGF0LmNocm9tZSwuc3RhcnQtZ3JvdXAuY2hyb21le2JveC1zaGFkb3c6MCA4cHggMzZweCAwIHJnYmEoMCwxOCw0NiwuMTYpfS5jaGF0LnNhZmFyaSwuc3RhcnQtZ3JvdXAuc2FmYXJpe2JveC1zaGFkb3c6MCA4cHggMzBweCAwIHJnYmEoMCwxOCw0NiwuMTYpfS5jaGF0LW9uLXNpdGUgLmNoYXQsLmNoYXQtb24tc2l0ZSAuc3RhcnQtZ3JvdXB7Ym94LXNoYWRvdzowIDhweCAyNnB4IDAgcmdiYSgwLDE4LDQ2LC4xNil9LmNoYXQtaW4tcHJldmlldyAuY2hhdCwuY2hhdC1pbi1wcmV2aWV3IC5zdGFydC1ncm91cHtib3gtc2hhZG93OjAgOHB4IDE4cHggMCByZ2JhKDAsMTgsNDYsLjE2KX10ZXh0YXJlYXtib3JkZXI6MDt3aWR0aDoxMDAlO2ZvbnQtc2l6ZToxN3B4O3BhZGRpbmc6MjBweCAwIDE0cHggMDtyZXNpemU6bm9uZTtsaW5lLWhlaWdodDoyNHB4O292ZXJmbG93LXg6aGlkZGVuOy1tcy1vdmVyZmxvdy1zdHlsZTpub25lfUAtd2Via2l0LWtleWZyYW1lcyBzaGFrZXsxMCUsOTAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDFweCl9MjAlLDgwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMXB4KX0zMCUsNTAlLDcwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgycHgpfTQwJSw2MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTJweCl9fUBrZXlmcmFtZXMgc2hha2V7MTAlLDkwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxcHgpfTIwJSw4MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTFweCl9MzAlLDUwJSw3MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMnB4KX00MCUsNjAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0ycHgpfX1idXR0b24sYnV0dG9uLm1hdGVyaWFsLWljb25ze2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MDtjb2xvcjppbmhlcml0O2ZvbnQ6aW5oZXJpdDtsaW5lLWhlaWdodDpub3JtYWw7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjA7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO291dGxpbmU6bm9uZTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKX1idXR0b24ubWF0ZXJpYWwtaWNvbnM6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjA7cGFkZGluZzowfWJ1dHRvbi5saW5re2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM0NDR9Ym9keXtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjB9c3Zne2ZpbGw6I2ZmZjt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXR9I2J1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMTJweDtoZWlnaHQ6MTQwcHg7Ym90dG9tOjEycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxOy8qISBAbm9mbGlwICovcmlnaHQ6MH0jYnV0dG9uOm5vdCguc2lkZWJhcikgLmJ1dHRvbldhdmV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDotMTt3aWR0aDo2MHB4O2hlaWdodDo2MHB4fSNidXR0b246bm90KC5zaWRlYmFyKSAuYnV0dG9uV2F2ZTphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojMTQ3ZmZmO29wYWNpdHk6LjV9I2J1dHRvbjpub3QoLnNpZGViYXIpLmNsaWNrZWQgLmJ1dHRvbldhdmU6YWZ0ZXJ7LXdlYmtpdC1hbmltYXRpb246YnV0dG9uV2F2ZSAuNXMgZWFzZS1vdXQ7YW5pbWF0aW9uOmJ1dHRvbldhdmUgLjVzIGVhc2Utb3V0fSNidXR0b24uY2hhdC1vcGVuOm5vdCguc2lkZWJhcil7cmlnaHQ6MDtsZWZ0OmF1dG99I2J1dHRvbiBidXR0b24uZGlzYWJsZWQgaS50eXBlMSBzdmd7ZmlsbDojZmZmfSNidXR0b24gYnV0dG9uIGl7aGVpZ2h0OjI2cHg7d2lkdGg6MjZweDtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0jYnV0dG9uIGJ1dHRvbiBpLmFjdGl2ZXtvcGFjaXR5OjF9I2J1dHRvbiBidXR0b24gaS50eXBlMSBzdmd7ZmlsbDpjdXJyZW50Q29sb3J9I2J1dHRvbiBidXR0b24gaS50eXBlMTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo2OHB4O2hlaWdodDo2OHB4O2JvcmRlci1yYWRpdXM6MzJweDtiYWNrZ3JvdW5kOiNmZmY7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O3RyYW5zZm9ybTpzY2FsZSgwKX0jYnV0dG9uIGJ1dHRvbiBpLnR5cGUxLmZvci1vcGVuZWR7d2lkdGg6MzFweDtoZWlnaHQ6MjhweH0jYnV0dG9uIGJ1dHRvbiBpLnR5cGUxLmZvci1vcGVuZWQgc3Zne3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7LyohIEBub2ZsaXAgKi9tYXJnaW4tbGVmdDozcHh9I2J1dHRvbiBidXR0b24gaS50eXBlMnt3aWR0aDozMnB4O2hlaWdodDozMnB4fSNidXR0b24gYnV0dG9uIGkudHlwZTIgc3Zne3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7ZmlsbDpjdXJyZW50Q29sb3I7dHJhbnNmb3JtOnNjYWxlKDApfSNidXR0b24gYnV0dG9uIGkuZm9yLWNsb3NlZHsvKiEgQG5vZmxpcCAqL3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMHB4KX0jYnV0dG9uIGJ1dHRvbiBpLmZvci1jbG9zZWQuYWN0aXZley8qISBAbm9mbGlwICovdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9I2J1dHRvbiBidXR0b24gaS5mb3Itb3BlbmVkey8qISBAbm9mbGlwICovdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9I2J1dHRvbiBidXR0b24gaS5mb3Itb3BlbmVkLmFjdGl2ZXsvKiEgQG5vZmxpcCAqL3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfWJvZHk6bm90KC5tb2JpbGUpICNidXR0b24gYnV0dG9uOm5vdCguZGlzYWJsZWQpOmhvdmVyIGkudHlwZTEgc3ZnLGJvZHk6bm90KC5tb2JpbGUpICNidXR0b24gYnV0dG9uOm5vdCguZGlzYWJsZWQpOmZvY3VzIGkudHlwZTEgc3Zne3RyYW5zZm9ybTpzY2FsZSgxLjQpfWJvZHk6bm90KC5tb2JpbGUpICNidXR0b24gYnV0dG9uOm5vdCguZGlzYWJsZWQpOmhvdmVyIGkudHlwZTE6OmFmdGVyLGJvZHk6bm90KC5tb2JpbGUpICNidXR0b24gYnV0dG9uOm5vdCguZGlzYWJsZWQpOmZvY3VzIGkudHlwZTE6OmFmdGVye3RyYW5zZm9ybTpzY2FsZSgxKX1ib2R5Om5vdCgubW9iaWxlKSAjYnV0dG9uIGJ1dHRvbjpub3QoLmRpc2FibGVkKTpob3ZlciBpLnR5cGUyIHN2Zyxib2R5Om5vdCgubW9iaWxlKSAjYnV0dG9uIGJ1dHRvbjpub3QoLmRpc2FibGVkKTpmb2N1cyBpLnR5cGUyIHN2Z3t0cmFuc2Zvcm06c2NhbGUoMSl9Ym9keTpub3QoLm1vYmlsZSkgI2J1dHRvbiAuc2lkZWJhci1jb250ZW50OmhvdmVyfiNidXR0b24tYm9keXt0cmFuc2Zvcm06c2NhbGUoMS4xNSl9Ym9keTpub3QoLm1vYmlsZSkgI2J1dHRvbiAuc2lkZWJhci1jb250ZW50OmhvdmVyfmJ1dHRvbiBpLnR5cGUxIHN2Z3t0cmFuc2Zvcm06c2NhbGUoMS40KX1ib2R5Om5vdCgubW9iaWxlKSAjYnV0dG9uIC5zaWRlYmFyLWNvbnRlbnQ6aG92ZXJ+YnV0dG9uIGkudHlwZTE6OmFmdGVye3RyYW5zZm9ybTpzY2FsZSgxKX1ib2R5Om5vdCgubW9iaWxlKSAjYnV0dG9uIC5zaWRlYmFyLWNvbnRlbnQ6aG92ZXJ+YnV0dG9uIGkudHlwZTIgc3Zne3RyYW5zZm9ybTpzY2FsZSgxKX0jYnV0dG9uLnNpZGViYXJ7d2lkdGg6NTBweDtwb2ludGVyLWV2ZW50czphdXRvfSNidXR0b24uc2lkZWJhciBzdmd7d2lkdGg6MTVweDtoZWlnaHQ6MTVweH0uc2lkZWJhci1wb3NpdGlvbi1sZWZ0ICNidXR0b24uc2lkZWJhcnsvKiEgQG5vZmxpcCAqL2xlZnQ6MDsvKiEgQG5vZmxpcCAqL3JpZ2h0OmF1dG99LnNpZGViYXItcG9zaXRpb24tbGVmdCAjYnV0dG9uLnNpZGViYXIgLnNpZGViYXItY29udGVudHsvKiEgQG5vZmxpcCAqL3RyYW5zZm9ybS1vcmlnaW46bGVmdCB0b3A7LyohIEBub2ZsaXAgKi90cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7LyohIEBub2ZsaXAgKi9sZWZ0OjA7LyohIEBub2ZsaXAgKi9yaWdodDphdXRvOy8qISBAbm9mbGlwICovYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4Oy8qISBAbm9mbGlwICovYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czoyOHB4Oy8qISBAbm9mbGlwICovcGFkZGluZzowIDIwcHggMCAzMHB4fS5zaWRlYmFyLXBvc2l0aW9uLWxlZnQgI2J1dHRvbi5zaWRlYmFyICNidXR0b24tYm9keXsvKiEgQG5vZmxpcCAqL2xlZnQ6N3B4fSNidXR0b24uc2lkZWJhciAuc2lkZWJhci1jb250ZW50e2JhY2tncm91bmQ6IzMxM2ZhMDtjb2xvcjojZmZmOy8qISBAbm9mbGlwICovcGFkZGluZzowIDMwcHggMCAyMHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjMwcHg7aGVpZ2h0OjMwcHg7Zm9udC13ZWlnaHQ6NzAwO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjsvKiEgQG5vZmxpcCAqL2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjI4cHg7LyohIEBub2ZsaXAgKi9ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDsvKiEgQG5vZmxpcCAqL3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpOy8qISBAbm9mbGlwICovdHJhbnNmb3JtLW9yaWdpbjpyaWdodCB0b3A7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7LyohIEBub2ZsaXAgKi9yaWdodDowO3doaXRlLXNwYWNlOm5vd3JhcDttYXgtd2lkdGg6NDAwcHh9I2J1dHRvbi5zaWRlYmFyIC5zaWRlYmFyLWNvbnRlbnQgc3BhbntkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7bWF4LXdpZHRoOjI2NXB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0jYnV0dG9uLnNpZGViYXIgLnNpZGViYXItY29udGVudDpob3ZlcntjdXJzb3I6cG9pbnRlcn0jYnV0dG9uLnNpZGViYXIgI2J1dHRvbi1ib2R5e3Bvc2l0aW9uOmFic29sdXRlOy8qISBAbm9mbGlwICovcmlnaHQ6N3B4O2JvdHRvbToyMHB4O3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Ym94LXNoYWRvdzowIDZweCAyMHB4IDAgcmdiYSgwLDE4LDQ2LC4yNCl9I2J1dHRvbi5zaWRlYmFyIGJ1dHRvbiBpe3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHh9I2J1dHRvbi5zaWRlYmFyIGJ1dHRvbiBpLnR5cGUxOjphZnRlcnt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6MjhweH0jYnV0dG9uLnNpZGViYXIgYnV0dG9uIGkudHlwZTIgc3Zne3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHh9I2J1dHRvbi1ib2R5e3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7Ym9yZGVyLXJhZGl1czoyOHB4O2Rpc3BsYXk6aW5oZXJpdDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb2ludGVyLWV2ZW50czppbml0aWFsO2JhY2tncm91bmQtc2l6ZToxMzAlIDEzMCU7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiMwMDdkZmN9I2J1dHRvbi1ib2R5OjpiZWZvcmV7Y29udGVudDoiIjt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGVhc2UtaW4tb3V0O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOi0xcHg7bGVmdDotMXB4O29wYWNpdHk6MDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOiNjNmNjZGN9I2J1dHRvbi1ib2R5LmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtjb2xvcjojYzZjY2RjfSNidXR0b24tYm9keS5kaXNhYmxlZDo6YmVmb3Jle29wYWNpdHk6MX0jYnV0dG9uLWJvZHk6bm90KC5kaXNhYmxlZCkgI2J1dHRvbi1ib2R5OmhvdmVyLCNidXR0b24tYm9keTpub3QoLmRpc2FibGVkKSAjYnV0dG9uLWJvZHk6Zm9jdXN7b3V0bGluZTpub25lfWJvZHk6bm90KC5tb2JpbGUpICNidXR0b24tYm9keTpub3QoLmRpc2FibGVkKSAjYnV0dG9uLWJvZHk6aG92ZXIsYm9keTpub3QoLm1vYmlsZSkgI2J1dHRvbi1ib2R5Om5vdCguZGlzYWJsZWQpICNidXR0b24tYm9keTpmb2N1c3t0cmFuc2Zvcm06c2NhbGUoMS4xKX0jbmV3LW1lc3NhZ2UsI2RuZC1pbmRpY2F0b3J7cG9zaXRpb246YWJzb2x1dGU7dG9wOjM3cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7cmlnaHQ6MjNweDtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6MTBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0jbmV3LW1lc3NhZ2V7Zm9udC1zaXplOjEycHg7YmFja2dyb3VuZDojZjcyZTM4O3otaW5kZXg6MjtsaW5lLWhlaWdodDoxfSNuZXctbWVzc2FnZSsjZG5kLWluZGljYXRvcntyaWdodDoxMnB4fSNuZXctbWVzc2FnZS5hY3RpdmV7LXdlYmtpdC1hbmltYXRpb246c2hha2UgLjgycyBjdWJpYy1iZXppZXIoMC4zNiwgMC4wNywgMC4xOSwgMC45NykgYm90aDthbmltYXRpb246c2hha2UgLjgycyBjdWJpYy1iZXppZXIoMC4zNiwgMC4wNywgMC4xOSwgMC45NykgYm90aH0jZG5kLWluZGljYXRvcntiYWNrZ3JvdW5kOiMzNzRjYTY7ei1pbmRleDoxfSNkbmQtaW5kaWNhdG9yIHN2Z3t3aWR0aDoxMnB4O2hlaWdodDoxMnB4fUAtd2Via2l0LWtleWZyYW1lcyBidXR0b25XYXZlezk5JXt0cmFuc2Zvcm06c2NhbGUoMik7b3BhY2l0eTowfTEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MH19QGtleWZyYW1lcyBidXR0b25XYXZlezk5JXt0cmFuc2Zvcm06c2NhbGUoMik7b3BhY2l0eTowfTEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MH19Kjpmb2N1c3tvdXRsaW5lOnRoaW4gZG90dGVkfS5jaGF0e21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gNDdweCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1zdmd7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0uY2hhdC1oZWFkZXJ7cGFkZGluZzoyNHB4IDI4cHggMDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgtNjFkZWcsICMwMGUwZDgsICMyMDFkOGUpO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6NDtmbGV4OjAgMCBhdXRvfS5jaGF0LWhlYWRlciAjaWMtbWluaW1pemV7cGFkZGluZzozcHggMDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDNweCwgMCl9LmNoYXQtaGVhZGVyIGF7Y29sb3I6Y3VycmVudENvbG9yfS5jaGF0LWhlYWRlciBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5jaGF0IDo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS5hdmF0YXJzLXdyYXBwZXJ7d2lkdGg6NTJweDtoZWlnaHQ6NTJweDttYXJnaW46MHB4IDE4cHggMCAwO2Zsb2F0OmxlZnR9Lm9wZXJhdG9ycy1hdmF0YXItMntwYWRkaW5nLXRvcDoxMXB4fS5vcGVyYXRvcnMtYXZhdGFyLTB7ZGlzcGxheTpub25lfS5oZWFkZXItYXZhe3dpZHRoOjUycHg7aGVpZ2h0OjUycHg7Ym9yZGVyLXJhZGl1czoyNHB4O2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtiYWNrZ3JvdW5kLWltYWdlOnVybCgnK2MrJyk7ZmxvYXQ6bGVmdH0ubW9iaWxlIC5oZWFkZXItYXZhe3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7Ym9yZGVyLXJhZGl1czoxOXB4fS5vcGVyYXRvcnMtYXZhdGFyLTIgLmhlYWRlci1hdmF7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDttYXJnaW4tbGVmdDotNnB4fS5vcGVyYXRvcnMtYXZhdGFyLTMgLmhlYWRlci1hdmF7d2lkdGg6MjhweDtoZWlnaHQ6MjhweH0ub3BlcmF0b3JzLWF2YXRhci0zIC5oZWFkZXItYXZhOmxhc3QtY2hpbGR7bWFyZ2luLWxlZnQ6LTVweH0ub3BlcmF0b3JzLWF2YXRhci0zIC5oZWFkZXItYXZhOmZpcnN0LWNoaWxke2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTttYXJnaW46MCBhdXRvfS5vcGVyYXRvcnMtYXZhdGFyLTMgLmhlYWRlci1hdmE6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDotNHB4fS5vcGVyYXRvcnMtYXZhdGFyLTQgLmhlYWRlci1hdmF7d2lkdGg6MjhweDtoZWlnaHQ6MjhweH0ub3BlcmF0b3JzLWF2YXRhci00IC5oZWFkZXItYXZhOm50aC1jaGlsZCgybil7bWFyZ2luLWxlZnQ6LTVweH0ub3BlcmF0b3JzLWF2YXRhci00IC5oZWFkZXItYXZhOm50aC1jaGlsZChuKzMpe21hcmdpbi10b3A6LTRweH0ubW9iaWxlIC5vcGVyYXRvcnMtYXZhdGFyLTIgLmhlYWRlci1hdmF7d2lkdGg6MjZweDtoZWlnaHQ6MjZweH0ubW9iaWxlIC5vcGVyYXRvcnMtYXZhdGFyLTMgLmhlYWRlci1hdmF7d2lkdGg6MjNweDtoZWlnaHQ6MjNweH0ubW9iaWxlIC5vcGVyYXRvcnMtYXZhdGFyLTMgLmhlYWRlci1hdmE6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDoycHh9Lm1vYmlsZSAub3BlcmF0b3JzLWF2YXRhci00IC5oZWFkZXItYXZhe3dpZHRoOjIzcHg7aGVpZ2h0OjIzcHh9Lm1vYmlsZSAub3BlcmF0b3JzLWF2YXRhci00IC5oZWFkZXItYXZhOm50aC1jaGlsZCgtbisyKXttYXJnaW4tdG9wOjJweH0uY2hhdCBoMntmb250LXNpemU6MjJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6Y3VycmVudENvbG9yO21hcmdpbjo0cHggMCAwIDA7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDpjYWxjKDEwMCUgLSAxNDVweCk7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3ZlcnRpY2FsLWFsaWduOmJvdHRvbX0uY2hhdCBoMiAuZW1vaml7d2lkdGg6MzFweDtoZWlnaHQ6MzFweH0uY2hhdCBoMi5vbmVsaW5le21hcmdpbi10b3A6MDtsaW5lLWhlaWdodDo1MnB4O21pbi1oZWlnaHQ6NTJweH0uY2hhdCBoMi50d29saW5lc3ttYXJnaW4tYm90dG9tOjVweH0uY2hhdCBoMiAudG9wLWhlYWRpbmd7Zm9udC1zaXplOjE2cHg7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxNXB4O21hcmdpbi10b3A6NHB4fS5oZWFkaW5nLWhvdmVye3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44OCk7dG9wOjcwcHg7Zm9udC1zaXplOjEzcHg7cGFkZGluZzoxMHB4IDE1cHg7ei1pbmRleDozO3dpZHRoOmF1dG87Ym9yZGVyLXJhZGl1czo4cHg7bWF4LXdpZHRoOjEwMCU7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQ7bGVmdDo1MHB4fS5jaGF0IGgyOmhvdmVyKy5oZWFkaW5nLWhvdmVye29wYWNpdHk6MX0jY29udmVyc2F0aW9uLWdyb3Vwe3BhZGRpbmc6MCAyOHB4O3dpZHRoOjEwMCU7aGVpZ2h0OjM1N3B4O292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtiYWNrZ3JvdW5kOiNmZmY7dHJhbnNpdGlvbjphbGwgLjNzO21heC1oZWlnaHQ6MzU3cHg7bWluLWhlaWdodDoxNjBweDtmbGV4OjAgMSBhdXRvfSNjb252ZXJzYXRpb24tZ3JvdXAuaW9zLWlwYWR7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7d2lkdGg6Y2FsYygxMDAlICsgNnB4KTsvKiEgQG5vZmxpcCAqL21hcmdpbi1yaWdodDowfS5sYW5nLXJ0bCAjY29udmVyc2F0aW9uLWdyb3VwLmlvcy1pcGFkey8qISBAbm9mbGlwICovbWFyZ2luLXJpZ2h0Oi02cHh9I2NvbnZlcnNhdGlvbi1ncm91cCAudXBsb2FkSWNvbldyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dG9wOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDozfSNjb252ZXJzYXRpb24tZ3JvdXAgLnVwbG9hZEljb25XcmFwcGVyIHNwYW57Zm9udC1zaXplOjE5cHg7bWF4LXdpZHRoOjEyMHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwODBmMWE7bGluZS1oZWlnaHQ6MS4zfSNjb252ZXJzYXRpb24tZ3JvdXAgLnVwbG9hZEljb25XcmFwcGVyIC5pY191cGxvYWR7ZmlsbDojMjg3ZWZjO3dpZHRoOjczcHg7aGVpZ2h0OjczcHg7bWFyZ2luLWJvdHRvbToxMHB4O21hcmdpbi10b3A6LTVweH0jY29udmVyc2F0aW9uLWdyb3VwIC51cGxvYWQtY2lyY2xle3dpZHRoOjIzMHB4O2hlaWdodDoyMzBweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJnYmEoMTgyLDE5OCwyMjksLjI0KTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYW5pbWF0aW9uOnNjYWxlLXVwIC4zcyBlYXNlO2FuaW1hdGlvbjpzY2FsZS11cCAuM3MgZWFzZTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9I2NvbnZlcnNhdGlvbi1ncm91cC5kcmFnLWFjdGl2ZTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOTIpO3otaW5kZXg6Mjstd2Via2l0LWFuaW1hdGlvbjpmYWRlLWluIC4zcyBlYXNlO2FuaW1hdGlvbjpmYWRlLWluIC4zcyBlYXNlfS50cmFuc2l0aW9uLWNvbnRhaW5lciAjY29udmVyc2F0aW9uLWdyb3Vwe2ZsZXg6MSAxfS50cmFuc2l0aW9uLWNvbnRhaW5lcntoZWlnaHQ6Mzk5cHg7YmFja2dyb3VuZDojZmZmO2ZsZXg6MCAxIGF1dG87bWluLWhlaWdodDoxNjBweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS50cmFuc2l0aW9uLWNvbnRhaW5lciAjY29udmVyc2F0aW9uLWdyb3Vwe292ZXJmbG93LXk6aGlkZGVufSNtZXNzYWdlc3twb3NpdGlvbjpyZWxhdGl2ZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTttYXJnaW4tdG9wOjEwcHg7d2lkdGg6MTAwJTtwYWRkaW5nLWJvdHRvbToyNHB4O2Zsb2F0OmxlZnR9I2NvbnZlcnNhdGlvbi1ncm91cCAjY29udmVyc2F0aW9uLXNjcm9sbHt3aWR0aDoyNHB4O2hlaWdodDozMTNweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoycHg7cGFkZGluZzowIDEycHggMCA0cHh9I2NvbnZlcnNhdGlvbi1ncm91cCAjY29udmVyc2F0aW9uLXNjcm9sbCBkaXZ7d2lkdGg6NnB4O21hcmdpbjowIDFweDtiYWNrZ3JvdW5kOiMwMDE3M2I7b3BhY2l0eTowO3RvcDowO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgZWFzZS1pbi1vdXQsd2lkdGggLjFzIGVhc2UtaW4tb3V0LG1hcmdpbiAuMXMgZWFzZS1pbi1vdXQ7ei1pbmRleDoyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX1ib2R5Om5vdCgubW9iaWxlKSAjY29udmVyc2F0aW9uLWdyb3VwOmhvdmVyICNjb252ZXJzYXRpb24tc2Nyb2xsIGRpdntvcGFjaXR5Oi4xNn1ib2R5Om5vdCgubW9iaWxlKSAjY29udmVyc2F0aW9uLWdyb3VwICNjb252ZXJzYXRpb24tc2Nyb2xsIGRpdjpob3ZlcntvcGFjaXR5Oi4zMjt3aWR0aDo4cHg7bWFyZ2luOjB9aHJ7bWFyZ2luOjA7Ym9yZGVyOjA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RiZGZlNn1pbnB1dC5kaXNhYmxlZCx0ZXh0YXJlYS5kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7Y29sb3I6Izg4OTRhYn1idXR0b24ubWF0ZXJpYWwtaWNvbnMsbGFiZWwubWF0ZXJpYWwtaWNvbnN7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbjoxNXB4IDAgOHB4IDExcHg7ZmxvYXQ6cmlnaHR9YnV0dG9uLm1hdGVyaWFsLWljb25zIHN2ZyxsYWJlbC5tYXRlcmlhbC1pY29ucyBzdmd7ZmlsbDojODg5NGFifWJ1dHRvbi5tYXRlcmlhbC1pY29ucyBzdmcjaWMtbWluaW1pemUsYnV0dG9uLm1hdGVyaWFsLWljb25zIHN2Zy5vcHRpb25zLWljb24sbGFiZWwubWF0ZXJpYWwtaWNvbnMgc3ZnI2ljLW1pbmltaXplLGxhYmVsLm1hdGVyaWFsLWljb25zIHN2Zy5vcHRpb25zLWljb257ZmlsbDpjdXJyZW50Q29sb3J9YnV0dG9uLm1hdGVyaWFsLWljb25zOjpiZWZvcmUsbGFiZWwubWF0ZXJpYWwtaWNvbnM6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2VmZjJmNjt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NTAlO3otaW5kZXg6LTE7dHJhbnNpdGlvbjphbGwgLjE2cyBlYXNlLWluLW91dDt0cmFuc2Zvcm06c2NhbGUoMCk7dG9wOmNhbGMoNTAlIC0gMjBweCk7bGVmdDpjYWxjKDUwJSAtIDIwcHgpfWJvZHk6bm90KC5tb2JpbGUpIGJ1dHRvbi5tYXRlcmlhbC1pY29uczpob3Zlcjo6YmVmb3JlLGJvZHk6bm90KC5tb2JpbGUpIGxhYmVsLm1hdGVyaWFsLWljb25zOmhvdmVyOjpiZWZvcmV7dHJhbnNmb3JtOnNjYWxlKDEpfWJ1dHRvbi5tYXRlcmlhbC1pY29uczpmb2N1cyBzdmcsbGFiZWwubWF0ZXJpYWwtaWNvbnM6Zm9jdXMgc3Zne2ZpbGw6Y3VycmVudENvbG9yfWJ1dHRvbi5tYXRlcmlhbC1pY29uczpmb2N1cyBzdmcuYm90cy1pY29uLGxhYmVsLm1hdGVyaWFsLWljb25zOmZvY3VzIHN2Zy5ib3RzLWljb257ZmlsbDojMDA3ZGZjfWJ1dHRvbi5tYXRlcmlhbC1pY29ucy5kaXNhYmxlZCBzdmcsYnV0dG9uLm1hdGVyaWFsLWljb25zLmRpc2FibGVkOmZvY3VzIHN2ZyxsYWJlbC5tYXRlcmlhbC1pY29ucy5kaXNhYmxlZCBzdmcsbGFiZWwubWF0ZXJpYWwtaWNvbnMuZGlzYWJsZWQ6Zm9jdXMgc3Zne2ZpbGw6I2M5Y2JkOH1idXR0b24ubWF0ZXJpYWwtaWNvbnMub3B0aW9ucyxidXR0b24ubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0LGxhYmVsLm1hdGVyaWFsLWljb25zLm9wdGlvbnMsbGFiZWwubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0e3otaW5kZXg6dW5zZXR9Lm1vYmlsZSBidXR0b24ubWF0ZXJpYWwtaWNvbnMub3B0aW9ucywubW9iaWxlIGJ1dHRvbi5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXQsLm1vYmlsZSBsYWJlbC5tYXRlcmlhbC1pY29ucy5vcHRpb25zLC5tb2JpbGUgbGFiZWwubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0e21hcmdpbjo1cHggLTEwcHggLTJweCAxcHg7cGFkZGluZzoxMHB4fWJ1dHRvbi5tYXRlcmlhbC1pY29ucy5vcHRpb25zIHN2ZyxidXR0b24ubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0IHN2ZyxsYWJlbC5tYXRlcmlhbC1pY29ucy5vcHRpb25zIHN2ZyxsYWJlbC5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXQgc3Zne2ZpbGw6Y3VycmVudENvbG9yO3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHh9YnV0dG9uLm1hdGVyaWFsLWljb25zLm9wdGlvbnM6OmJlZm9yZSxidXR0b24ubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0OjpiZWZvcmUsbGFiZWwubWF0ZXJpYWwtaWNvbnMub3B0aW9uczo6YmVmb3JlLGxhYmVsLm1hdGVyaWFsLWljb25zLmV4aXQtY2hhdDo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgwLDM2LDkyLC4xNil9Ym9keTpub3QoLm1vYmlsZSkgYnV0dG9uLm1hdGVyaWFsLWljb25zLm9wdGlvbnM6Zm9jdXM6OmJlZm9yZSxib2R5Om5vdCgubW9iaWxlKSBidXR0b24ubWF0ZXJpYWwtaWNvbnMub3B0aW9uczpob3Zlcjo6YmVmb3JlLGJvZHk6bm90KC5tb2JpbGUpIGJ1dHRvbi5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXQ6Zm9jdXM6OmJlZm9yZSxib2R5Om5vdCgubW9iaWxlKSBidXR0b24ubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0OmhvdmVyOjpiZWZvcmUsYm9keTpub3QoLm1vYmlsZSkgbGFiZWwubWF0ZXJpYWwtaWNvbnMub3B0aW9uczpmb2N1czo6YmVmb3JlLGJvZHk6bm90KC5tb2JpbGUpIGxhYmVsLm1hdGVyaWFsLWljb25zLm9wdGlvbnM6aG92ZXI6OmJlZm9yZSxib2R5Om5vdCgubW9iaWxlKSBsYWJlbC5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXQ6Zm9jdXM6OmJlZm9yZSxib2R5Om5vdCgubW9iaWxlKSBsYWJlbC5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXQ6aG92ZXI6OmJlZm9yZXt0cmFuc2Zvcm06c2NhbGUoMSl9YnV0dG9uLm1hdGVyaWFsLWljb25zLmV4aXQtY2hhdCxsYWJlbC5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXR7bWFyZ2luLXJpZ2h0Oi0zcHh9Lm1vYmlsZSBidXR0b24ubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0LC5tb2JpbGUgbGFiZWwubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0e21hcmdpbi1yaWdodDotMTNweH1ib2R5Om5vdCgubW9iaWxlKSAuZm9vdGVyLWJvdHRvbSAuYm90cy1idXR0b257bWFyZ2luLXJpZ2h0OjIycHh9Ym9keTpub3QoLm1vYmlsZSkgLmZvb3Rlci1ib3R0b20gLmJvdHMtYnV0dG9uOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDotMTJweDtoZWlnaHQ6MjRweDt3aWR0aDoxcHg7YmFja2dyb3VuZDojZGZlM2U5fS5pbnB1dC1ncm91cHtwYWRkaW5nOjAgMjhweCA2cHg7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmZmY7ei1pbmRleDozO2ZsZXg6MCAwIGF1dG99LmlucHV0LWdyb3VwLmRyYWctYWN0aXZlIC5kcmFnLWFjdGl2ZS13cmFwcGVyOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC43KTt6LWluZGV4OjE7LXdlYmtpdC1hbmltYXRpb246ZmFkZS1pbiAuM3MgZWFzZTthbmltYXRpb246ZmFkZS1pbiAuM3MgZWFzZX0uaW5wdXQtZ3JvdXAgLmZvb3Rlci1pbnB1dC13cmFwcGVyLC5pbnB1dC1ncm91cCAuZm9vdGVyLWljb25zLXdyYXBwZXJ7dHJhbnNpdGlvbjphbGwgLjVzIGVhc2UtaW4tb3V0O29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0uaW5wdXQtZ3JvdXAgLmZvb3Rlci1pbnB1dC13cmFwcGVyLmhpZGRlbiwuaW5wdXQtZ3JvdXAgLmZvb3Rlci1pY29ucy13cmFwcGVyLmhpZGRlbnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MH0uaW5wdXQtZ3JvdXAgLm1hdGVyaWFsLWljb25zIHN2Z3t3aWR0aDoyNnB4O2hlaWdodDoyNnB4fS5pbnB1dC1ncm91cCAubWF0ZXJpYWwtaWNvbnM6aG92ZXIgc3Zne2ZpbGw6IzAwN2RmY30uaW5wdXQtZ3JvdXAgLm1hdGVyaWFsLWljb25zOmhvdmVyOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTI1LDI1MiwuMTIpfS5pbnB1dC1ncm91cCAuZm9vdGVyLWJvdHRvbXtoZWlnaHQ6NDJweDtwb3NpdGlvbjpyZWxhdGl2ZX0uaW5wdXQtZ3JvdXAgLmZvb3Rlci1ib3R0b20gYnV0dG9ue2Zsb2F0OmxlZnQ7bWFyZ2luOjAgMTZweCAxNHB4IDB9LmVtb2ppLXdyYXBwZXJ7aGVpZ2h0OjIxNXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjt3aWR0aDozNDBweDtib3R0b206MTAwJTt6LWluZGV4OjEwO2xlZnQ6MThweH0uZW1vamktbWFydHtib3JkZXI6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlICFpbXBvcnRhbnQ7aGVpZ2h0OjEwMCU7cmlnaHQ6MH0uZW1vamktbWFydCBpbnB1dDpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNkOWQ5ZDl9LmVtb2ppLW1hcnQtc2Nyb2xse2hlaWdodDoxNDBweH0uZW1vamktbWFydCAuZW1vamktbWFydC1lbW9qaXtjdXJzb3I6cG9pbnRlcn0uZW1vamktbWFydCAuZW1vamktbWFydC1lbW9qaSBzcGFue2N1cnNvcjpwb2ludGVyfS5lbW9qaS1tYXJ0LWFuY2hvcnstbXMtZmxleDoxIDEgYXV0b30ubm8tc3RhcnQtbWVzc2FnZSAuZW1vamktd3JhcHBlcntoZWlnaHQ6MTc1cHh9Lm5vLXN0YXJ0LW1lc3NhZ2UgLmVtb2ppLW1hcnQtc2Nyb2xse2hlaWdodDoxMDBweH0ub3B0aW9ucy1kcm9wZG93biwuYm90cy1kcm9wZG93bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NzJweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNoYWRvdzowIDZweCAzMnB4IDAgcmdiYSgwLDE4LDQ2LC4xNik7cGFkZGluZzoxMnB4IDZweDt6LWluZGV4OjY7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O3JpZ2h0OjI0cHh9Lm9wdGlvbnMtZHJvcGRvd24gdWwsLmJvdHMtZHJvcGRvd24gdWx7bWFyZ2luOjA7cGFkZGluZzowfS5vcHRpb25zLWRyb3Bkb3duIHVsIGxpLC5ib3RzLWRyb3Bkb3duIHVsIGxpe2JvcmRlci1yYWRpdXM6NnB4O2Rpc3BsYXk6ZmxleH0ub3B0aW9ucy1kcm9wZG93biB1bCBsaTpudGgtb2YtdHlwZSgyKSBidXR0b24gc3ZnLC5ib3RzLWRyb3Bkb3duIHVsIGxpOm50aC1vZi10eXBlKDIpIGJ1dHRvbiBzdmd7ZmlsbDojZmZiOTI2fS5vcHRpb25zLWRyb3Bkb3duIGxpIGJ1dHRvbiwuYm90cy1kcm9wZG93biBsaSBidXR0b257cGFkZGluZzo4cHggMTZweDtkaXNwbGF5OmZsZXg7bWFyZ2luOjA7cG9zaXRpb246aW5pdGlhbDtmbG9hdDppbml0aWFsO3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo2cHh9Ym9keTpub3QoLm1vYmlsZSkgLm9wdGlvbnMtZHJvcGRvd24gbGkgYnV0dG9uOmhvdmVyLGJvZHk6bm90KC5tb2JpbGUpIC5ib3RzLWRyb3Bkb3duIGxpIGJ1dHRvbjpob3Zlcixib2R5Om5vdCgubW9iaWxlKSAub3B0aW9ucy1kcm9wZG93biBsaSBidXR0b246Zm9jdXMsYm9keTpub3QoLm1vYmlsZSkgLmJvdHMtZHJvcGRvd24gbGkgYnV0dG9uOmZvY3Vze2JhY2tncm91bmQ6I2VmZjJmNn0ub3B0aW9ucy1kcm9wZG93biBsaSBidXR0b24gc3ZnLC5ib3RzLWRyb3Bkb3duIGxpIGJ1dHRvbiBzdmcsLm9wdGlvbnMtZHJvcGRvd24gbGkgYnV0dG9uOmZvY3VzIHN2Z3tmaWxsOiM4ODk0YWI7aGVpZ2h0OjIycHg7d2lkdGg6MjJweH0ub3B0aW9ucy1kcm9wZG93biBsaSBidXR0b24gc3BhbiwuYm90cy1kcm9wZG93biBsaSBidXR0b24gc3BhbnttYXJnaW4tbGVmdDoxMHB4O2NvbG9yOiMwNjEzMmJ9Lm9wdGlvbnMtZHJvcGRvd24gbGkgYnV0dG9uOjpiZWZvcmUsLmJvdHMtZHJvcGRvd24gbGkgYnV0dG9uOjpiZWZvcmV7Y29udGVudDpub25lfS5ib3RzLWRyb3Bkb3due3RvcDphdXRvO2JvdHRvbTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02MHB4KTttYXgtaGVpZ2h0OjI3NXB4O292ZXJmbG93LXk6YXV0bzt6LWluZGV4OjExO3JpZ2h0OmF1dG87bGVmdDowcHh9LmJvdHMtZHJvcGRvd24gYnV0dG9uLm1hdGVyaWFsLWljb25ze21hcmdpbjowfS5ib3RzLWRyb3Bkb3duIHVsIGxpe3BhZGRpbmc6MH0uYm90cy1kcm9wZG93biB1bCBsaSBzcGFue2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6OHB4IDE2cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlfS5ib3RzLWRyb3Bkb3duIHVsIGxpIHNwYW4gc3Zne21hcmdpbi1yaWdodDoxMHB4fS5ib3RzLWRyb3Bkb3duIHVsIGxpIHNwYW4uYm90LWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtjb2xvcjojODg5NGFifS5ib3RzLWRyb3Bkb3duIHVsLmJvdHMtY2FuY2VsIHNwYW57Y29sb3I6IzBhYjZmZjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5ib3RzLWRyb3Bkb3duIHVsLmJvdHMtY2FuY2VsIHN2Z3tmaWxsOnJlZDttYXJnaW4tcmlnaHQ6MTBweH0ub2ZmbGluZS1tZXNzYWdle21hcmdpbjoxOHB4IC0yOHB4IDBweDtjb2xvcjpjdXJyZW50Q29sb3I7d2lkdGg6Y2FsYygxMDAlICsgNTZweCk7cGFkZGluZzoxNHB4IDI4cHggN3B4O3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQtc2l6ZToxMDAlIGNhbGMoMTAwJSArIDEycHgpO3otaW5kZXg6MX0ubm8tY2xpcC1wYXRoIC5vZmZsaW5lLW1lc3NhZ2V7cGFkZGluZzoxNHB4IDI4cHggMjBweH0ubm8tY2xpcC1wYXRoIC5vZmZsaW5lLW1lc3NhZ2U6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDpjYWxjKDEwMCUgKyAxMHB4KTtib3R0b206LThweDtsZWZ0Oi01cHg7Ym9yZGVyLWltYWdlLXNvdXJjZTp1cmwoJytsKycpO2JvcmRlci1pbWFnZS1zbGljZTowIDAgMTAwJTtib3JkZXItaW1hZ2Utd2lkdGg6MCAwIDE1cHg7Ym9yZGVyLWltYWdlLXJlcGVhdDpzdHJldGNoIHN0cmV0Y2g7Ym9yZGVyLWJvdHRvbTpzb2xpZCAxNXB4O2JvcmRlci10b3A6MDtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDowfS5vZmZsaW5lLW1lc3NhZ2Ugc3Bhbnt6LWluZGV4OjI7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjE2cHh9Lm9mZmxpbmUtbWVzc2FnZSBzcGFuLm9ubGluZXtwYWRkaW5nLWxlZnQ6MjBweH0ub2ZmbGluZS1tZXNzYWdlIHNwYW4ub25saW5lOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7d2lkdGg6OHB4O2hlaWdodDo4cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlIC0gNHB4KTtiYWNrZ3JvdW5kOiM1OGI3NDM7Ym9yZGVyLXJhZGl1czo1MCU7bGVmdDowfS5lbW9qaS1zd2l0Y2guYWN0aXZlIHN2Z3tmaWxsOmN1cnJlbnRDb2xvcn0uYm90cy1hbmltYXRpb24gc3Zne3dpbGwtY2hhbmdlOnRyYW5zZm9ybTstd2Via2l0LWFuaW1hdGlvbjpib3RzQW5pbWF0aW9uIDNzO2FuaW1hdGlvbjpib3RzQW5pbWF0aW9uIDNzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDoxO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MX0uYm90cy1hbmltYXRpb24gLnB1bHNlLC5ib3RzLWFuaW1hdGlvbiAucHVsc2Utd2hpdGV7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDoxfS5ib3RzLWFuaW1hdGlvbiAucHVsc2V7YmFja2dyb3VuZDojYzljYmQ4O3otaW5kZXg6LTQ7LXdlYmtpdC1hbmltYXRpb246d2F0ZXJQdWxzZSAzczthbmltYXRpb246d2F0ZXJQdWxzZSAzc30uYm90cy1hbmltYXRpb24gLnB1bHNlLmFuaW1hdGlvbi1kZWxheXt6LWluZGV4Oi0yfS5ib3RzLWFuaW1hdGlvbiAucHVsc2Utd2hpdGV7YmFja2dyb3VuZDojZmZmO3otaW5kZXg6LTM7LXdlYmtpdC1hbmltYXRpb246d2F0ZXJQdWxzZVdoaXRlIDNzO2FuaW1hdGlvbjp3YXRlclB1bHNlV2hpdGUgM3N9LmJvdHMtYW5pbWF0aW9uIC5wdWxzZS13aGl0ZS5hbmltYXRpb24tZGVsYXl7ei1pbmRleDotMX0uYm90cy1hbmltYXRpb24gLmFuaW1hdGlvbi1kZWxheXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouOHM7YW5pbWF0aW9uLWRlbGF5Oi44c31ALXdlYmtpdC1rZXlmcmFtZXMgd2F0ZXJQdWxzZVdoaXRle2Zyb217dHJhbnNmb3JtOnNjYWxlKDAuNyl9Mjkle3RyYW5zZm9ybTpzY2FsZSgwLjcpfTYwJXt0cmFuc2Zvcm06c2NhbGUoMi44KX19QGtleWZyYW1lcyB3YXRlclB1bHNlV2hpdGV7ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMC43KX0yOSV7dHJhbnNmb3JtOnNjYWxlKDAuNyl9NjAle3RyYW5zZm9ybTpzY2FsZSgyLjgpfX1ALXdlYmtpdC1rZXlmcmFtZXMgd2F0ZXJQdWxzZXtmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoMC44KX0xOSV7b3BhY2l0eTouM30yMyV7dHJhbnNmb3JtOnNjYWxlKDAuOCl9MjQle29wYWNpdHk6LjU7dHJhbnNmb3JtOnNjYWxlKDAuOCl9MzEle29wYWNpdHk6LjR9NTUle29wYWNpdHk6LjE7dHJhbnNmb3JtOnNjYWxlKDIuOCl9MTAwJXtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgd2F0ZXJQdWxzZXtmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoMC44KX0xOSV7b3BhY2l0eTouM30yMyV7dHJhbnNmb3JtOnNjYWxlKDAuOCl9MjQle29wYWNpdHk6LjU7dHJhbnNmb3JtOnNjYWxlKDAuOCl9MzEle29wYWNpdHk6LjR9NTUle29wYWNpdHk6LjE7dHJhbnNmb3JtOnNjYWxlKDIuOCl9MTAwJXtvcGFjaXR5OjB9fUAtd2Via2l0LWtleWZyYW1lcyBib3RzQW5pbWF0aW9uezEyJXt0cmFuc2Zvcm06c2NhbGUoMSl9MjAle3RyYW5zZm9ybTpzY2FsZSgxLjIpfTI1JXt0cmFuc2Zvcm06c2NhbGUoMC45KX0yOSV7dHJhbnNmb3JtOnNjYWxlKDEuMDUpfTMxJXt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgYm90c0FuaW1hdGlvbnsxMiV7dHJhbnNmb3JtOnNjYWxlKDEpfTIwJXt0cmFuc2Zvcm06c2NhbGUoMS4yKX0yNSV7dHJhbnNmb3JtOnNjYWxlKDAuOSl9Mjkle3RyYW5zZm9ybTpzY2FsZSgxLjA1KX0zMSV7dHJhbnNmb3JtOnNjYWxlKDEpfX1ALXdlYmtpdC1rZXlmcmFtZXMgc2NhbGUtdXB7MCV7dHJhbnNmb3JtOnNjYWxlKDAuOCl9MTAwJXt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgc2NhbGUtdXB7MCV7dHJhbnNmb3JtOnNjYWxlKDAuOCl9MTAwJXt0cmFuc2Zvcm06c2NhbGUoMSl9fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlLWluezAle29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QGtleWZyYW1lcyBmYWRlLWluezAle29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19LmNoYXQtaW4tcHJldmlldy0tdG91ciAuZXhpdC1jaGF0LC5jaGF0LWluLXByZXZpZXctLXRvdXIgLm9wdGlvbnMtaWNvbntvcGFjaXR5Oi4zfS5jaGF0LWluLXByZXZpZXctLXRvdXIgLmlucHV0LWdyb3Vwe29wYWNpdHk6LjR9LnN0YXJ0LWdyb3Vwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnN0YXJ0LWdyb3VwIC5oMi1iYW5uZXJ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZTo0MnB4O21hcmdpbjo2cHggMCAxNnB4IDA7cGFkZGluZy10b3A6NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDpjYWxjKDEwMCUgLSA5MHB4KTtsaW5lLWhlaWdodDo1MHB4O3dvcmQtd3JhcDpicmVhay13b3JkO3doaXRlLXNwYWNlOnByZS1saW5lOy13ZWJraXQtdGV4dC1zdHJva2U6LjRweDtwYWRkaW5nLWxlZnQ6MTRweH0uc3RhcnQtZ3JvdXAgLmgyLWJhbm5lciAuZW1vaml7d2lkdGg6MzFweDtoZWlnaHQ6MzFweH0uc3RhcnQtZ3JvdXAgLm9wZXJhdG9yc3tkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjg0cHg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDpjYWxjKDEwMCUgLSA4NHB4KTt3aWR0aDo2NnB4O3JpZ2h0OjQycHh9LnN0YXJ0LWdyb3VwIC5vcGVyYXRvcnM+ZGl2OmhvdmVyIHNwYW57b3BhY2l0eToxfS5zdGFydC1ncm91cCAub3BlcmF0b3JzPmRpdjpob3Zlcjpub3QoOmZpcnN0LWNoaWxkKSAuYXZhNDg6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKX0uc3RhcnQtZ3JvdXAgLmF2YTQ4e3dpZHRoOjY2cHg7aGVpZ2h0OjY2cHg7Ym9yZGVyLXJhZGl1czozMXB4O2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtiYWNrZ3JvdW5kLWltYWdlOnVybCgnK2MrJyk7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlLWluLW91dDt3aWxsLWNoYW5nZTp0cmFuc2Zvcm07dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDBweCwgMCl9LnN0YXJ0LWdyb3VwIC5hdmE0OCBzcGFue2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNoYWRvdzowIDJweCA4cHggMCByZ2JhKDAsMTgsNDYsLjMyKTtmb250LXNpemU6MTNweDtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7d2hpdGUtc3BhY2U6bm93cmFwO3RyYW5zaXRpb246YWxsIC4xNnMgZWFzZS1pbi1vdXQ7cmlnaHQ6Y2FsYygxMDAlICsgMTBweCk7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtjb2xvcjojMDYxMzJifS5zdGFydC1ncm91cCBidXR0b24uaS1iYW5uZXIgc3Zne2ZpbGw6Y3VycmVudENvbG9yfS5zdGFydC1ncm91cCBidXR0b24uaS1iYW5uZXI6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMCwzNiw5MiwuMTYpO3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7dG9wOmNhbGMoNTAlIC0gMTlweCk7bGVmdDpjYWxjKDUwJSAtIDE5cHgpfS5zdGFydC1ncm91cCAuZ2V0LXN0YXJ0ZWR7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDozO3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGFydC1ncm91cCAuZ2V0LXN0YXJ0ZWQgYnV0dG9ue2NvbG9yOiMzZjg4ZjM7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6MWVtIDA7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MDtmb250LXNpemU6MTlweDt0cmFuc2l0aW9uOmNvbG9yIC4ycyBlYXNlLWluLW91dDttYXJnaW46MH0uc3RhcnQtZ3JvdXAgLmlucHV0LWdyb3Vwe3otaW5kZXg6NH0uYmFubmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2JvcmRlci1yYWRpdXM6OHB4IDhweCAwIDA7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6LjE2O2JhY2tncm91bmQtc2l6ZTpjb3Zlcn0uc3RhcnQtbWVzc2FnZXtjb2xvcjpjdXJyZW50Q29sb3I7Zm9udC1zaXplOjE2cHg7bWFyZ2luOjAgMCAzMnB4IDA7bGluZS1oZWlnaHQ6MjJweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLWxlZnQ6MTRweDtwYWRkaW5nLXJpZ2h0OjEwMHB4O3otaW5kZXg6Mn0udXNlci1kYXRhLW1vZGFse2JhY2tncm91bmQ6I2ZmZjtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwO3BhZGRpbmc6NTBweCA1NXB4O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KCNmZmYsICNmZmYpLGxpbmVhci1ncmFkaWVudCgjZmZmLCAjZmZmKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSA0MHB4LDEwMCUgY2FsYygxMDAlIC0gNDBweCk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246dG9wLGJvdHRvbX0udXNlci1kYXRhLW1vZGFsIC51c2VyLWRhdGEtbW9kYWwtZmlsbGVye3dpZHRoOjI4MCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTAlO3RvcDowO2hlaWdodDoxMDAlO3otaW5kZXg6LTE7Ym9yZGVyLXJhZGl1czowIDAgNTMlIDUzJTtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3h9LnVzZXItZGF0YS1tb2RhbCAudXNlci1kYXRhLW1vZGFsLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE2cHg7dG9wOjE2cHh9LnVzZXItZGF0YS1tb2RhbCAudXNlci1kYXRhLW1vZGFsLWNsb3NlIHN2ZyNpY19jbG9zZXt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2ZpbGw6IzZkN2U5ZTtwb3NpdGlvbjpzdGF0aWM7dG9wOjEwcHg7bGVmdDoxMnB4fS51c2VyLWRhdGEtbW9kYWwgLnByZS1jaGF0LC51c2VyLWRhdGEtbW9kYWwgLmFsd2F5cy1vbmxpbmV7bWF4LXdpZHRoOjEwMCV9LnVzZXItZGF0YS1tb2RhbCAudXNlci1kYXRhLW1vZGFsLXRleHR7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NjAwO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwMDEyMmU7bWFyZ2luLWJvdHRvbTozMnB4fS51c2VyLWRhdGEtbW9kYWwgLnVzZXItZGF0YS1tb2RhbC1maWVsZHMgI2ljX2Fycm93e2ZpbGw6IzAwN2RmY30udXNlci1kYXRhLW1vZGFsIC51c2VyLWRhdGEtbW9kYWwtZmllbGRzIHN2Z3t3aWR0aDoyNHB4O2hlaWdodDoyNHB4fS51c2VyLWRhdGEtbW9kYWwgLnVzZXItZGF0YS1tb2RhbC1maWVsZHMgaW5wdXR7Ym9yZGVyOnNvbGlkIDFweCByZ2JhKDEwOCwxMjUsMTU5LC4yNCk7Zm9udC1zaXplOjE1cHg7cGFkZGluZzo5cHggMTJweCAxMHB4IDQwcHg7bWFyZ2luOjAgMCA4cHggMH0udXNlci1kYXRhLW1vZGFsIC51c2VyLWRhdGEtbW9kYWwtZmllbGRzIGxhYmVse3BhZGRpbmctdG9wOjEycHg7cGFkZGluZy1yaWdodDowO21hcmdpbjowIDAgOHB4IDEwcHh9LnVzZXItZGF0YS1tb2RhbCAudXNlci1kYXRhLW1vZGFsLWZpZWxkcyBsYWJlbCBpbnB1dHttYXJnaW4tbGVmdDo1cHg7bWFyZ2luLXRvcDo0cHh9LnVzZXItZGF0YS1tb2RhbCAudXNlci1kYXRhLW1vZGFsLWZpZWxkcyBsYWJlbCBzcGFue2ZvbnQtc2l6ZToxMXB4O3RleHQtYWxpZ246anVzdGlmeTtjb2xvcjojMDAxMjJlO21heC1oZWlnaHQ6MTIwcHg7ZGlzcGxheTpibG9jaztvdmVyZmxvdy15OmF1dG99LnVzZXItZGF0YS1tb2RhbCAudXNlci1kYXRhLW1vZGFsLWZpZWxkcyBsYWJlbCBzcGFuIGF7Y29sb3I6IzAwMTIyZX0udXNlci1kYXRhLW1vZGFsIC51c2VyLWRhdGEtbW9kYWwtc3VibWl0e3dpZHRoOjEwMCU7aGVpZ2h0OjQwcHg7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTlkZWcsICMyYTI3ZGEsICMwMGNjZmYpO21hcmdpbjoxNnB4IDA7cG9zaXRpb246cmVsYXRpdmV9LnVzZXItZGF0YS1tb2RhbCAudXNlci1kYXRhLW1vZGFsLXN1Ym1pdDo6YWZ0ZXJ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycztjb250ZW50OiIiO2JvcmRlci1yYWRpdXM6NnB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtsZWZ0OjA7dG9wOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0udXNlci1kYXRhLW1vZGFsIC51c2VyLWRhdGEtbW9kYWwtc3VibWl0OmhvdmVyOjphZnRlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA4KX0udXNlci1kYXRhLW1vZGFsIC51c2VyLWRhdGEtbW9kYWwtb3BlcmF0b3Jze3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tYm90dG9tOjMycHh9LnVzZXItZGF0YS1tb2RhbCAudXNlci1kYXRhLW1vZGFsLW9wZXJhdG9ycyAudXNlci1kYXRhLW1vZGFsLW9wZXJhdG9ye3dpZHRoOjY2cHg7aGVpZ2h0OjY2cHg7Ym9yZGVyLXJhZGl1czozMXB4O2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLWltYWdlOnVybCgnK2MrJyk7bWFyZ2luLXJpZ2h0Oi00JX0udXNlci1kYXRhLW1vZGFsIC5lbW9qaXttYXJnaW46MH0uZmx5TWVzc2FnZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cGFkZGluZzowIDI0cHg7bWF4LXdpZHRoOjM0MHB4O3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToyNnB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgOHB4IDI2cHggMCByZ2JhKDAsMTgsNDYsLjE2KTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3otaW5kZXg6MTttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIDc2cHgpO3JpZ2h0OjQ4cHg7bWFyZ2luLWxlZnQ6MjBweH0uY2hhdC1pbi1wcmV2aWV3IC5mbHlNZXNzYWdle2JveC1zaGFkb3c6MCA4cHggMTNweCAwIHJnYmEoMCwxOCw0NiwuMTYpfS5mbHlNZXNzYWdlOmhvdmVyIC5jbG9zZS1idXR0b24td3JhcHBlcntvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KX0ubW9iaWxlIC5mbHlNZXNzYWdle21heC13aWR0aDpjYWxjKDEwMCUgLSA0OHB4IC0gNTVweCl9Lm1vYmlsZSAuZmx5TWVzc2FnZS53aXRoLWJ1dHRvbnN7d2lkdGg6Y2FsYygxMDAlIC0gNDhweCAtIDU1cHgpO21heC13aWR0aDoyNTBweH0uZmx5TWVzc2FnZSAuY2xvc2UtYnV0dG9uLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjEwMCU7b3BhY2l0eTowO3dpZHRoOjEwMCU7aGVpZ2h0OjQ1cHg7dHJhbnNpdGlvbjphbGwgLjNzO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpO2xlZnQ6MH0ubW9iaWxlIC5mbHlNZXNzYWdlIC5jbG9zZS1idXR0b24td3JhcHBlcntvcGFjaXR5OjE7aGVpZ2h0OjEwMCU7d2lkdGg6NDVweDtib3R0b206YXV0bzt0b3A6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtyaWdodDoxMDAlO2xlZnQ6YXV0bzt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTBweCl9LmZseU1lc3NhZ2UgLmNsb3NlLWJ1dHRvbi13cmFwcGVyIGJ1dHRvbi5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXQubW9iaWxlLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbjowO3BhZGRpbmc6M3B4O2JveC1zaGFkb3c6MCAzcHggNnB4IHJnYmEoMCwwLDAsLjE2KSwwIDNweCA2cHggcmdiYSgwLDAsMCwuMjMpO2hlaWdodDoyNHB4O3dpZHRoOjI0cHg7ZGlzcGxheTpmbGV4O2JhY2tncm91bmQ6I2ZmZjtyaWdodDo1cHh9LmZseU1lc3NhZ2UgLmNsb3NlLWJ1dHRvbi13cmFwcGVyIGJ1dHRvbi5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXQubW9iaWxlLWNsb3NlIHN2ZyNpY19jbG9zZXt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZpbGw6Izg4OTRhYn0uZmx5TWVzc2FnZSAuY2xvc2UtYnV0dG9uLXdyYXBwZXIgYnV0dG9uLm1hdGVyaWFsLWljb25zLmV4aXQtY2hhdC5tb2JpbGUtY2xvc2U6YmVmb3Jle2NvbnRlbnQ6bm9uZX0uZmx5TWVzc2FnZSAuaW5wdXQtZ3JvdXB7cGFkZGluZzo5cHggMjJweCA5cHggMH0uZmx5TWVzc2FnZSAubWF0ZXJpYWwtaWNvbnMuZW1vamktc3dpdGNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjM2cHh9LmZseU1lc3NhZ2UgLm1hdGVyaWFsLWljb25zLmVtb2ppLXN3aXRjaCBzdmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0uZmx5TWVzc2FnZSAubWF0ZXJpYWwtaWNvbnMuZW1vamktc3dpdGNoOmhvdmVyOmJlZm9yZXt3aWR0aDozMnB4O2hlaWdodDozMnB4O21hcmdpbjotNnB4IDAgMCAtNnB4fS5mbHlNZXNzYWdlIC5lbW9qaS13cmFwcGVye3dpZHRoOjMwMHB4O2xlZnQ6YXV0bztyaWdodDoyNnB4O2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaGFkb3c6MCAxcHggNHB4IDAgcmdiYSgwLDAsMCwuMTQpO2xlZnQ6YXV0bztyaWdodDoyNnB4fS5mbHlNZXNzYWdlIC5pbnB1dC1ncm91cCAuZmx5LW5ldy1tZXNzYWdlLWJ1dHRvbnt0cmFuc2l0aW9uOm1pbi13aWR0aCAuM3M7bWluLXdpZHRoOjE4MHB4O3BhZGRpbmc6NHB4IDAgOHB4O2xpbmUtaGVpZ2h0OjIxcHg7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxN3B4O2NvbG9yOiM4ODk0YWI7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5mbHlNZXNzYWdlIC5pbnB1dC1ncm91cCAuZmx5LW5ldy1tZXNzYWdlLWJ1dHRvbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcnt3aGl0ZS1zcGFjZTpub3dyYXB9LmZseU1lc3NhZ2UgLmlucHV0LWdyb3VwIC5mbHktbmV3LW1lc3NhZ2UtYnV0dG9uOjotbW96LXBsYWNlaG9sZGVye3doaXRlLXNwYWNlOm5vd3JhcH0uZmx5TWVzc2FnZSAuaW5wdXQtZ3JvdXAgLmZseS1uZXctbWVzc2FnZS1idXR0b246LW1zLWlucHV0LXBsYWNlaG9sZGVye3doaXRlLXNwYWNlOm5vd3JhcH0uZmx5TWVzc2FnZSAuaW5wdXQtZ3JvdXAgLmZseS1uZXctbWVzc2FnZS1idXR0b246LW1vei1wbGFjZWhvbGRlcnt3aGl0ZS1zcGFjZTpub3dyYXB9LmZseU1lc3NhZ2UuaWUgLm1lc3NhZ2UtY29udGFpbmVye21heC1oZWlnaHQ6MzAwcHh9LmZseU1lc3NhZ2UgLm1lc3NhZ2UtY29udGFpbmVye3BhZGRpbmc6MTlweCAwO21heC13aWR0aDoyOTBweDtmb250LXNpemU6MTdweDtiYWNrZ3JvdW5kOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7d29yZC13cmFwOmJyZWFrLXdvcmQ7b3ZlcmZsb3c6aGlkZGVuO292ZXJmbG93LXk6YXV0bzt3aGl0ZS1zcGFjZTpwcmUtbGluZTtwYWRkaW5nLXJpZ2h0OjM4cHh9LmZseU1lc3NhZ2UgLm1lc3NhZ2UtY29udGFpbmVyIHVse2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5mbHlNZXNzYWdlIC5tZXNzYWdlLWNvbnRhaW5lciBvbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0uZmx5TWVzc2FnZSAubWVzc2FnZS1jb250YWluZXIgdWwsLmZseU1lc3NhZ2UgLm1lc3NhZ2UtY29udGFpbmVyIG9se21hcmdpbjoxMnB4IDA7cGFkZGluZy1sZWZ0OjE2cHh9LmZseU1lc3NhZ2UgLm1lc3NhZ2UtY29udGFpbmVyIGxpe3BhZGRpbmctbGVmdDo0cHg7bWFyZ2luLWJvdHRvbTo4cHh9LmZseU1lc3NhZ2UgLm1lc3NhZ2UtY29udGFpbmVyLmltYWdlLWNvbnRlbnR7b3ZlcmZsb3cteTpoaWRkZW47cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5mbHlNZXNzYWdlIC5tZXNzYWdlLWNvbnRhaW5lci5pbWFnZS1jb250ZW50IGJ1dHRvbntmbG9hdDpsZWZ0O2hlaWdodDoyMDBweDt3aWR0aDoxMDAlO21pbi13aWR0aDoyMDBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmZseU1lc3NhZ2UgLm1lc3NhZ2UtY29udGFpbmVyLmltYWdlLWNvbnRlbnQgYnV0dG9uIC5pbWFnZS1wcmV2aWV3e2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7Ym9yZGVyLXJhZGl1czo4cHg7aGVpZ2h0OjEwMCV9LmZseU1lc3NhZ2UgLm1lc3NhZ2UtY29udGFpbmVyLmltYWdlLWNvbnRlbnQgc3BhbntkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjEwcHh9Lm1vYmlsZSAuZmx5TWVzc2FnZSAubWVzc2FnZS1jb250YWluZXJ7d2lkdGg6MTAwJTtmb250LXNpemU6MTVweDtwYWRkaW5nLXJpZ2h0OjIycHh9Lm1vYmlsZSAuZmx5TWVzc2FnZSAubWVzc2FnZS1jb250YWluZXIuaW1hZ2UtY29udGVudHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9Lm1vYmlsZSAuZmx5TWVzc2FnZSAubWVzc2FnZS1jb250YWluZXIuaW1hZ2UtY29udGVudCBidXR0b257aGVpZ2h0OjEzMnB4O21pbi13aWR0aDphdXRvfS5mbHlNZXNzYWdlIC5tZXNzYWdlLWNvbnRhaW5lcjphZnRlcntjb250ZW50OiIiO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZWRlZGU7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDt3aWR0aDpjYWxjKDEwMCUgLSAzOHB4KX0ubW9iaWxlIC5mbHlNZXNzYWdlIC5tZXNzYWdlLWNvbnRhaW5lcjphZnRlcnt3aWR0aDpjYWxjKDEwMCUgLSAyMnB4KX0uZmx5TWVzc2FnZSAuYnV0dG9uLXdyYXBwZXJ7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9Lm1vYmlsZSAuZmx5TWVzc2FnZSAuYnV0dG9uLXdyYXBwZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmZseU1lc3NhZ2UgLmJ1dHRvbi13cmFwcGVyIGJ1dHRvbiwuZmx5TWVzc2FnZSAuYnV0dG9uLXdyYXBwZXIgLmJ1dHRvbi11cmx7Zm9udC1zaXplOjE3cHg7Y29sb3I6IzAwN2RmYztiYWNrZ3JvdW5kOiNmZmY7bGluZS1oZWlnaHQ6MjFweDttYXJnaW4tdG9wOjZweDttYXJnaW4tYm90dG9tOjZweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwwKTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnM7bWFyZ2luLXJpZ2h0OjE2cHg7dGV4dC1hbGlnbjpsZWZ0fS5mbHlNZXNzYWdlIC5idXR0b24td3JhcHBlciBidXR0b246aG92ZXIsLmZseU1lc3NhZ2UgLmJ1dHRvbi13cmFwcGVyIC5idXR0b24tdXJsOmhvdmVye2JvcmRlci1jb2xvcjojMDA3ZGZjfS5tb2JpbGUgLmZseU1lc3NhZ2UgLmJ1dHRvbi13cmFwcGVyIGJ1dHRvbiwubW9iaWxlIC5mbHlNZXNzYWdlIC5idXR0b24td3JhcHBlciAuYnV0dG9uLXVybHttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6NHB4IDB9LmZseU1lc3NhZ2UgLmJ1dHRvbi13cmFwcGVyIGJ1dHRvbiAuZW1vamksLmZseU1lc3NhZ2UgLmJ1dHRvbi13cmFwcGVyIC5idXR0b24tdXJsIC5lbW9qaXt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmZseU1lc3NhZ2UgLmJ1dHRvbi13cmFwcGVyIC5idXR0b24tdXJsX19hbmNob3J7Y29sb3I6IzAwN2RmYzt0ZXh0LWRlY29yYXRpb246bm9uZX0uZmx5TWVzc2FnZSAuYnV0dG9uLXdyYXBwZXIgLm1vcmUtcmVwbGllc3tib3JkZXI6MXB4IHNvbGlkICMwMDdkZmM7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6M3B4IDEwcHg7bGluZS1oZWlnaHQ6N3B4O2FsaWduLXNlbGY6Y2VudGVyfS5tb2JpbGUgLmZseU1lc3NhZ2UgLmJ1dHRvbi13cmFwcGVyIC5tb3JlLXJlcGxpZXN7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O3BhZGRpbmc6M3B4IDEwcHg7bWFyZ2luOjZweCAwfS5mbHlNZXNzYWdlIC5idXR0b24td3JhcHBlciAubW9yZS1yZXBsaWVzIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTt3aWR0aDoxM3B4O2hlaWdodDoxM3B4O2ZpbGw6IzAwN2RmY30ud2lkZ2V0TGFiZWx7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjQycHg7Ym90dG9tOjYxcHg7ei1pbmRleDoxO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxN3B4O2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjEwcHggMTVweDtib3gtc2hhZG93OjAgNnB4IDMycHggMCByZ2JhKDAsMTgsNDYsLjI0KTtiYWNrZ3JvdW5kOiNmZmZ9LndpZGdldC1wb3NpdGlvbi1sZWZ0IC53aWRnZXRMYWJlbHsvKiEgQG5vZmxpcCAqL2xlZnQ6MTAwcHh9LndpZGdldC1wb3NpdGlvbi1yaWdodCAud2lkZ2V0TGFiZWx7LyohIEBub2ZsaXAgKi9yaWdodDoxMDBweH0uZHJvcGRvd25GYWRlLWVudGVye29wYWNpdHk6LjAxO3RvcDo2MnB4fS5kcm9wZG93bkZhZGUtZW50ZXIuZHJvcGRvd25GYWRlLWVudGVyLWFjdGl2ZXtvcGFjaXR5OjE7dG9wOjcycHh9LmRyb3Bkb3duRmFkZS1leGl0e29wYWNpdHk6MTt0b3A6NzJweH0uZHJvcGRvd25GYWRlLWV4aXQuZHJvcGRvd25GYWRlLWV4aXQtYWN0aXZle29wYWNpdHk6LjAxO3RvcDo2MnB4fS5ib3RzTGlzdEZhZGUtZW50ZXJ7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MnB4KX0uYm90c0xpc3RGYWRlLWVudGVyLmJvdHNMaXN0RmFkZS1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02MHB4KX0uYm90c0xpc3RGYWRlLWFwcGVhcntvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUycHgpfS5ib3RzTGlzdEZhZGUtYXBwZWFyLmJvdHNMaXN0RmFkZS1hcHBlYXItYWN0aXZle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNjBweCl9LmJvdHNMaXN0RmFkZS1leGl0e29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNjBweCl9LmJvdHNMaXN0RmFkZS1leGl0LmJvdHNMaXN0RmFkZS1leGl0LWFjdGl2ZXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUycHgpfS5mYWRlLWVudGVye29wYWNpdHk6LjAxfS5mYWRlLWVudGVyLmZhZGUtZW50ZXItYWN0aXZle3RyYW5zaXRpb246YWxsIC4zcztvcGFjaXR5OjF9LmZhZGUtZXhpdHtvcGFjaXR5OjE7dHJhbnNpdGlvbjphbGwgLjNzfS5mYWRlLWV4aXQuZmFkZS1leGl0LWFjdGl2ZXtvcGFjaXR5Oi4wMX0uZmFkZTIwMC1lbnRlcntvcGFjaXR5Oi4wMX0uZmFkZTIwMC1lbnRlci5mYWRlMjAwLWVudGVyLWFjdGl2ZXt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO29wYWNpdHk6MX0uZmFkZTIwMC1leGl0e29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzfS5mYWRlMjAwLWV4aXQuZmFkZTIwMC1leGl0LWFjdGl2ZXtvcGFjaXR5Oi4wMX0uZW1vamlGYWRlLWVudGVye29wYWNpdHk6LjAxO2JvdHRvbTpjYWxjKDEwMCUgLSAxMHB4KX0uZW1vamlGYWRlLWVudGVyLmVtb2ppRmFkZS1lbnRlci1hY3RpdmV7b3BhY2l0eToxO2JvdHRvbToxMDAlO3RyYW5zaXRpb246YWxsIC4zc30uZW1vamlGYWRlLWV4aXR7b3BhY2l0eToxO2JvdHRvbToxMDAlO3RyYW5zaXRpb246YWxsIC4zc30uZW1vamlGYWRlLWV4aXQuZW1vamlGYWRlLWV4aXQtYWN0aXZle29wYWNpdHk6LjAxO2JvdHRvbTpjYWxjKDEwMCUgLSAxMHB4KX0uc2NhbGUtZW50ZXJ7dHJhbnNmb3JtOnNjYWxlKDAuMDEpO29wYWNpdHk6MH0uc2NhbGUtZW50ZXIuc2NhbGUtZW50ZXItYWN0aXZle3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9LnNjYWxlLWV4aXR7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX0uc2NhbGUtZXhpdC5zY2FsZS1leGl0LWFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoMC4wMSk7b3BhY2l0eTowfSNidXR0b24uc2lkZWJhcnt0cmFuc2l0aW9uOmFsbCAuM3N9I2J1dHRvbi5zaWRlYmFyLmJ1YmJsZUFuaW1hdGlvbi1hcHBlYXJ7LyohIEBub2ZsaXAgKi9yaWdodDotOHB4O29wYWNpdHk6LjAxfSNidXR0b24uc2lkZWJhci5idWJibGVBbmltYXRpb24tYXBwZWFyLWFjdGl2ZXtvcGFjaXR5OjE7LyohIEBub2ZsaXAgKi9yaWdodDowfSNidXR0b24uc2lkZWJhci5idWJibGVBbmltYXRpb24tZW50ZXJ7LyohIEBub2ZsaXAgKi9yaWdodDotOHB4O29wYWNpdHk6LjAxfSNidXR0b24uc2lkZWJhci5idWJibGVBbmltYXRpb24tZW50ZXItYWN0aXZle29wYWNpdHk6MTsvKiEgQG5vZmxpcCAqL3JpZ2h0OjB9I2J1dHRvbi5zaWRlYmFyLmJ1YmJsZUFuaW1hdGlvbi1leGl0e29wYWNpdHk6MTsvKiEgQG5vZmxpcCAqL3JpZ2h0OjB9I2J1dHRvbi5zaWRlYmFyLmJ1YmJsZUFuaW1hdGlvbi1leGl0LWFjdGl2ZXsvKiEgQG5vZmxpcCAqL3JpZ2h0Oi04cHg7b3BhY2l0eTouMDF9I2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvbi1hcHBlYXJ7cmlnaHQ6LThweDtvcGFjaXR5Oi4wMX0jYnV0dG9uOm5vdCguc2lkZWJhcikuYnViYmxlQW5pbWF0aW9uLWFwcGVhci5idWJibGVBbmltYXRpb24tYXBwZWFyLWFjdGl2ZXtvcGFjaXR5OjE7cmlnaHQ6MDt0cmFuc2l0aW9uOmFsbCAuM3N9I2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvbi1lbnRlcntyaWdodDotOHB4O29wYWNpdHk6LjAxfSNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb24tZW50ZXIuYnViYmxlQW5pbWF0aW9uLWVudGVyLWFjdGl2ZXtvcGFjaXR5OjE7cmlnaHQ6MDt0cmFuc2l0aW9uOmFsbCAuM3N9I2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvbi1leGl0e29wYWNpdHk6MTtyaWdodDowO3RyYW5zaXRpb246YWxsIC4zc30ubGFuZy1ydGwgI2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvbi1leGl0e2Rpc3BsYXk6bm9uZX0jYnV0dG9uOm5vdCguc2lkZWJhcikuYnViYmxlQW5pbWF0aW9uLWV4aXQuYnViYmxlQW5pbWF0aW9uLWV4aXQtYWN0aXZle3JpZ2h0Oi04cHg7b3BhY2l0eTouMDF9LndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb24tYXBwZWFye3JpZ2h0OjhweDtvcGFjaXR5Oi4wMX0ud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvbi1hcHBlYXIuYnViYmxlQW5pbWF0aW9uLWFwcGVhci1hY3RpdmV7b3BhY2l0eToxO3JpZ2h0OjBweDt0cmFuc2l0aW9uOmFsbCAuM3N9LndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb24tZW50ZXJ7cmlnaHQ6OHB4O29wYWNpdHk6LjAxfS53aWRnZXQtcG9zaXRpb24tbGVmdCAjYnV0dG9uOm5vdCguc2lkZWJhcikuYnViYmxlQW5pbWF0aW9uLWVudGVyLmJ1YmJsZUFuaW1hdGlvbi1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3JpZ2h0OjBweDt0cmFuc2l0aW9uOmFsbCAuM3N9LndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb24tZXhpdHtvcGFjaXR5OjE7cmlnaHQ6MHB4O3RyYW5zaXRpb246YWxsIC4zc30ud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvbi1leGl0LmJ1YmJsZUFuaW1hdGlvbi1leGl0LWFjdGl2ZXtyaWdodDo4cHg7b3BhY2l0eTouMDF9Lm1vYmlsZSAud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvbi1hcHBlYXJ7cmlnaHQ6OHB4O29wYWNpdHk6LjAxfS5tb2JpbGUgLndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb24tYXBwZWFyLmJ1YmJsZUFuaW1hdGlvbi1hcHBlYXItYWN0aXZle29wYWNpdHk6MTtyaWdodDowcHg7dHJhbnNpdGlvbjphbGwgLjNzfS5tb2JpbGUgLndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb24tZW50ZXJ7cmlnaHQ6OHB4O29wYWNpdHk6LjAxfS5tb2JpbGUgLndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb24tZW50ZXIuYnViYmxlQW5pbWF0aW9uLWVudGVyLWFjdGl2ZXtvcGFjaXR5OjE7cmlnaHQ6MHB4O3RyYW5zaXRpb246YWxsIC4zc30ubW9iaWxlIC53aWRnZXQtcG9zaXRpb24tbGVmdCAjYnV0dG9uOm5vdCguc2lkZWJhcikuYnViYmxlQW5pbWF0aW9uLWV4aXR7ZGlzcGxheTpub25lfS5tb2JpbGUgLndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb25SZXR1cm4tZXhpdC1hY3RpdmV7ZGlzcGxheTpub25lfS53aWRnZXQtcG9zaXRpb24tbGVmdCAjYnV0dG9uOm5vdCguc2lkZWJhcikuYnViYmxlQW5pbWF0aW9uUmV0dXJuLWFwcGVhcnsvKiEgQG5vZmxpcCAqL2xlZnQ6OHB4O29wYWNpdHk6LjAxfS53aWRnZXQtcG9zaXRpb24tbGVmdCAjYnV0dG9uOm5vdCguc2lkZWJhcikuYnViYmxlQW5pbWF0aW9uUmV0dXJuLWFwcGVhci5idWJibGVBbmltYXRpb25SZXR1cm4tYXBwZWFyLWFjdGl2ZXtvcGFjaXR5OjE7LyohIEBub2ZsaXAgKi9sZWZ0OjBweDt0cmFuc2l0aW9uOmFsbCAuMnN9LndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb25SZXR1cm4tZW50ZXJ7LyohIEBub2ZsaXAgKi9sZWZ0OjhweDtvcGFjaXR5Oi4wMX0ud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvblJldHVybi1lbnRlci5idWJibGVBbmltYXRpb25SZXR1cm4tZW50ZXItYWN0aXZley8qISBAbm9mbGlwICovbGVmdDowcHg7b3BhY2l0eToxO3RyYW5zaXRpb246YWxsIC4yc30ud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvblJldHVybi1leGl0e29wYWNpdHk6MTsvKiEgQG5vZmxpcCAqL2xlZnQ6MHB4O3RyYW5zaXRpb246YWxsIC4yc30ud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbjpub3QoLnNpZGViYXIpLmJ1YmJsZUFuaW1hdGlvblJldHVybi1leGl0LmJ1YmJsZUFuaW1hdGlvblJldHVybi1leGl0LWFjdGl2ZXsvKiEgQG5vZmxpcCAqL2xlZnQ6OHB4O29wYWNpdHk6LjAxfS5tb2JpbGUgLndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b246bm90KC5zaWRlYmFyKS5idWJibGVBbmltYXRpb25SZXR1cm4tZXhpdHtkaXNwbGF5Om5vbmV9LnNpZGViYXItcG9zaXRpb24tbGVmdCAjYnV0dG9uLnNpZGViYXJ7dHJhbnNpdGlvbjphbGwgLjNzfS5zaWRlYmFyLXBvc2l0aW9uLWxlZnQgI2J1dHRvbi5zaWRlYmFyLmJ1YmJsZUFuaW1hdGlvbkxlZnQtZXhpdHtvcGFjaXR5OjE7LyohIEBub2ZsaXAgKi9sZWZ0OjBweH0uc2lkZWJhci1wb3NpdGlvbi1sZWZ0ICNidXR0b24uc2lkZWJhci5idWJibGVBbmltYXRpb25MZWZ0LWV4aXQtYWN0aXZley8qISBAbm9mbGlwICovbGVmdDotOHB4O29wYWNpdHk6LjAxfS5zaWRlYmFyLXBvc2l0aW9uLWxlZnQgI2J1dHRvbi5zaWRlYmFyLmJ1YmJsZUFuaW1hdGlvbkxlZnQtYXBwZWFyey8qISBAbm9mbGlwICovbGVmdDotOHB4O29wYWNpdHk6LjAxfS5zaWRlYmFyLXBvc2l0aW9uLWxlZnQgI2J1dHRvbi5zaWRlYmFyLmJ1YmJsZUFuaW1hdGlvbkxlZnQtYXBwZWFyLWFjdGl2ZXtvcGFjaXR5OjE7LyohIEBub2ZsaXAgKi9sZWZ0OjBweH0uc2lkZWJhci1wb3NpdGlvbi1sZWZ0ICNidXR0b24uc2lkZWJhci5idWJibGVBbmltYXRpb25MZWZ0LWVudGVyey8qISBAbm9mbGlwICovbGVmdDotOHB4O29wYWNpdHk6LjAxfS5zaWRlYmFyLXBvc2l0aW9uLWxlZnQgI2J1dHRvbi5zaWRlYmFyLmJ1YmJsZUFuaW1hdGlvbkxlZnQtZW50ZXItYWN0aXZle29wYWNpdHk6MTsvKiEgQG5vZmxpcCAqL2xlZnQ6MHB4fS5tb3ZlRnJvbVJpZ2h0LWFwcGVhcntyaWdodDo0MHB4O29wYWNpdHk6LjAxfS5tb3ZlRnJvbVJpZ2h0LWFwcGVhci5tb3ZlRnJvbVJpZ2h0LWFwcGVhci1hY3RpdmV7b3BhY2l0eToxO3JpZ2h0OjQ4cHg7dHJhbnNpdGlvbjphbGwgLjNzfS5tb3ZlRnJvbVJpZ2h0LWVudGVye3JpZ2h0OjQwcHg7b3BhY2l0eTouMDF9Lm1vdmVGcm9tUmlnaHQtZW50ZXIubW92ZUZyb21SaWdodC1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3JpZ2h0OjQ4cHg7dHJhbnNpdGlvbjphbGwgLjNzfS5tb3ZlRnJvbVJpZ2h0LWV4aXR7b3BhY2l0eToxO3JpZ2h0OjQ4cHg7dHJhbnNpdGlvbjphbGwgLjNzfS5tb3ZlRnJvbVJpZ2h0LWV4aXQubW92ZUZyb21SaWdodC1leGl0LWFjdGl2ZXtyaWdodDo0MHB4O29wYWNpdHk6LjAxfS5tb3ZlRnJvbVJpZ2h0TGFiZWwtYXBwZWFyey8qISBAbm9mbGlwICovcmlnaHQ6OTJweDtvcGFjaXR5Oi4wMX0ubW92ZUZyb21SaWdodExhYmVsLWFwcGVhci5tb3ZlRnJvbVJpZ2h0TGFiZWwtYXBwZWFyLWFjdGl2ZXtvcGFjaXR5OjE7LyohIEBub2ZsaXAgKi9yaWdodDoxMDBweDt0cmFuc2l0aW9uOmFsbCAuM3N9Lm1vdmVGcm9tUmlnaHRMYWJlbC1lbnRlcnsvKiEgQG5vZmxpcCAqL3JpZ2h0OjkycHg7b3BhY2l0eTouMDF9Lm1vdmVGcm9tUmlnaHRMYWJlbC1lbnRlci5tb3ZlRnJvbVJpZ2h0TGFiZWwtZW50ZXItYWN0aXZle29wYWNpdHk6MTsvKiEgQG5vZmxpcCAqL3JpZ2h0OjEwMHB4O3RyYW5zaXRpb246YWxsIC4zc30ubW92ZUZyb21SaWdodExhYmVsLWV4aXR7b3BhY2l0eToxOy8qISBAbm9mbGlwICovcmlnaHQ6MTAwcHg7dHJhbnNpdGlvbjphbGwgLjNzfS5tb3ZlRnJvbVJpZ2h0TGFiZWwtZXhpdC5tb3ZlRnJvbVJpZ2h0TGFiZWwtZXhpdC1hY3RpdmV7LyohIEBub2ZsaXAgKi9yaWdodDo5MnB4O29wYWNpdHk6LjAxfS5tb3ZlRnJvbUxlZnRMYWJlbC1hcHBlYXJ7LyohIEBub2ZsaXAgKi9sZWZ0OjkycHg7b3BhY2l0eTouMDF9Lm1vdmVGcm9tTGVmdExhYmVsLWFwcGVhci5tb3ZlRnJvbUxlZnRMYWJlbC1hcHBlYXItYWN0aXZle29wYWNpdHk6MTsvKiEgQG5vZmxpcCAqL2xlZnQ6MTAwcHg7dHJhbnNpdGlvbjphbGwgLjNzfS5tb3ZlRnJvbUxlZnRMYWJlbC1lbnRlcnsvKiEgQG5vZmxpcCAqL2xlZnQ6OTJweDtvcGFjaXR5Oi4wMX0ubW92ZUZyb21MZWZ0TGFiZWwtZW50ZXIubW92ZUZyb21MZWZ0TGFiZWwtZW50ZXItYWN0aXZle29wYWNpdHk6MTsvKiEgQG5vZmxpcCAqL2xlZnQ6MTAwcHg7dHJhbnNpdGlvbjphbGwgLjNzfS5tb3ZlRnJvbUxlZnRMYWJlbC1leGl0e29wYWNpdHk6MTsvKiEgQG5vZmxpcCAqL2xlZnQ6MTAwcHg7dHJhbnNpdGlvbjphbGwgLjNzfS5tb3ZlRnJvbUxlZnRMYWJlbC1leGl0Lm1vdmVGcm9tTGVmdExhYmVsLWV4aXQtYWN0aXZley8qISBAbm9mbGlwICovbGVmdDo5MnB4O29wYWNpdHk6LjAxfWJvZHk6bm90KC5tb2JpbGUpIC53aWRnZXQtcG9zaXRpb24tbGVmdCAuY2hhdC5tb3ZlRnJvbVJpZ2h0LWFwcGVhcntyaWdodDo0MHB4O2xlZnQ6YXV0bztvcGFjaXR5Oi4wMX1ib2R5Om5vdCgubW9iaWxlKSAud2lkZ2V0LXBvc2l0aW9uLWxlZnQgLmNoYXQubW92ZUZyb21SaWdodC1hcHBlYXIubW92ZUZyb21SaWdodC1hcHBlYXItYWN0aXZle29wYWNpdHk6MTtyaWdodDo0OHB4O2xlZnQ6YXV0bzt0cmFuc2l0aW9uOmFsbCAuM3N9Ym9keTpub3QoLm1vYmlsZSkgLndpZGdldC1wb3NpdGlvbi1sZWZ0IC5jaGF0Lm1vdmVGcm9tUmlnaHQtZW50ZXJ7cmlnaHQ6NDBweDtsZWZ0OmF1dG87b3BhY2l0eTouMDF9Ym9keTpub3QoLm1vYmlsZSkgLndpZGdldC1wb3NpdGlvbi1sZWZ0IC5jaGF0Lm1vdmVGcm9tUmlnaHQtZW50ZXIubW92ZUZyb21SaWdodC1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3JpZ2h0OjQ4cHg7bGVmdDphdXRvO3RyYW5zaXRpb246YWxsIC4zc31ib2R5Om5vdCgubW9iaWxlKSAud2lkZ2V0LXBvc2l0aW9uLWxlZnQgLmNoYXQubW92ZUZyb21SaWdodC1leGl0e29wYWNpdHk6MTtyaWdodDo0OHB4O2xlZnQ6YXV0bzt0cmFuc2l0aW9uOmFsbCAuM3N9Ym9keTpub3QoLm1vYmlsZSkgLndpZGdldC1wb3NpdGlvbi1sZWZ0IC5jaGF0Lm1vdmVGcm9tUmlnaHQtZXhpdC5tb3ZlRnJvbVJpZ2h0LWV4aXQtYWN0aXZle3JpZ2h0OjQwcHg7bGVmdDphdXRvO29wYWNpdHk6LjAxfS5zaWRlYmFyQW5pbWF0aW9uLWFwcGVhcntyaWdodDo0MHB4O29wYWNpdHk6LjAxfS5zaWRlYmFyQW5pbWF0aW9uLWFwcGVhci5zaWRlYmFyQW5pbWF0aW9uLWFwcGVhci1hY3RpdmV7b3BhY2l0eToxO3JpZ2h0OjQ4cHg7dHJhbnNpdGlvbjphbGwgLjNzfS5zaWRlYmFyQW5pbWF0aW9uLWVudGVye3JpZ2h0OjQwcHg7b3BhY2l0eTouMDF9LnNpZGViYXJBbmltYXRpb24tZW50ZXIuc2lkZWJhckFuaW1hdGlvbi1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3JpZ2h0OjQ4cHg7dHJhbnNpdGlvbjphbGwgLjNzfS5zaWRlYmFyQW5pbWF0aW9uLWV4aXR7b3BhY2l0eToxO3JpZ2h0OjQ4cHg7dHJhbnNpdGlvbjphbGwgLjNzfS5zaWRlYmFyQW5pbWF0aW9uLWV4aXQuc2lkZWJhckFuaW1hdGlvbi1leGl0LWFjdGl2ZXtyaWdodDo0MHB4O29wYWNpdHk6LjAxfS5vcGVyYXRvclR5cGluZy1lbnRlcntvcGFjaXR5Oi4wMTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KX0ub3BlcmF0b3JUeXBpbmctZW50ZXIub3BlcmF0b3JUeXBpbmctZW50ZXItYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDBweCk7dHJhbnNpdGlvbjphbGwgLjNzO29wYWNpdHk6MX0ub3BlcmF0b3JUeXBpbmctZXhpdHtkaXNwbGF5Om5vbmV9Lm1lc3NhZ2V7cGFkZGluZzoxMHB4IDE2cHg7Ym9yZGVyLXJhZGl1czoyMHB4O21hcmdpbjoycHggMDtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoyMHB4O3dvcmQtd3JhcDpicmVhay13b3JkO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDo4NSU7Y2xlYXI6Ym90aDtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm1hcmdpbiAuMjhzIGVhc2UtaW4tb3V0fS5tZXNzYWdlLnRpbWVzdGFtcC12aXNpYmxle21hcmdpbi1ib3R0b206MjhweH0ubWVzc2FnZS5yYXRpbmctdmlzaWJsZXttYXJnaW4tYm90dG9tOjM1cHh9Lm1lc3NhZ2Ugc3Bhbi5tZXNzYWdlLWNvbnRlbnR7d2hpdGUtc3BhY2U6cHJlLWxpbmV9Lm1lc3NhZ2UgLm1lc3NhZ2UtY29udGVudCB1bHtsaXN0LXN0eWxlLXR5cGU6ZGlzY30ubWVzc2FnZSAubWVzc2FnZS1jb250ZW50IG9se2xpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsfS5tZXNzYWdlIC5tZXNzYWdlLWNvbnRlbnQgdWwsLm1lc3NhZ2UgLm1lc3NhZ2UtY29udGVudCBvbHttYXJnaW46MTJweCAwO3BhZGRpbmctbGVmdDoxNnB4fS5tZXNzYWdlIC5tZXNzYWdlLWNvbnRlbnQgbGl7cGFkZGluZy1sZWZ0OjRweDttYXJnaW4tYm90dG9tOjhweH0ucmF0aW5nLXZpc2libGUrLm1lc3NhZ2UsLnJhdGluZy12aXNpYmxlKy5ib3RzLWNhcmQtZ2FsbGVyeS1idXR0b24td3JhcHBlcnttYXJnaW4tdG9wOjEwcHh9Lm1lc3NhZ2UtdmlzaXRvcntjb2xvcjojZmZmO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDMzMmRlZywgIzIxZGJkYiwgIzI5NzlmZik7ZmxvYXQ6cmlnaHR9Lm1lc3NhZ2UtdmlzaXRvcisubWVzc2FnZS1vcGVyYXRvcnttYXJnaW4tdG9wOjlweH0ubWVzc2FnZS12aXNpdG9yIHNwYW4gYXtjb2xvcjpjdXJyZW50Q29sb3J9Lm1lc3NhZ2UtdmlzaXRvci5ub3QtZGVsaXZlcmVke2JvcmRlcjoxcHggc29saWQgI2YwZjJmNztiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izg4OTRhYjttYXJnaW4tYm90dG9tOjIycHg7d2hpdGUtc3BhY2U6bm93cmFwO3BhZGRpbmc6MTBweCAxNXB4fS5tZXNzYWdlLXZpc2l0b3Iubm90LWRlbGl2ZXJlZCAucmVzZW5kLW1lc3NhZ2V7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0yMnB4O2ZvbnQtc2l6ZToxMnB4O3JpZ2h0OjB9Lm1lc3NhZ2Utb3BlcmF0b3J7Y29sb3I6IzA2MTMyYjtiYWNrZ3JvdW5kOiNmMGYyZjc7ZmxvYXQ6bGVmdH0ubWVzc2FnZS1vcGVyYXRvciBzcGFuIGF7Y29sb3I6IzA2MTMyYn0ubWVzc2FnZS1vcGVyYXRvcisubWVzc2FnZS12aXNpdG9ye21hcmdpbi10b3A6OXB4fS5tZXNzYWdlLW9wZXJhdG9yLm1lc3NhZ2Utd2l0aC1idXR0b25zLC5tZXNzYWdlLW9wZXJhdG9yIC5tZXNzYWdlLXdpdGgtYnV0dG9ucywubWVzc2FnZS1vcGVyYXRvci5ib3RzLXF1aWNrLXJlcGxpZXN7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO3BhZGRpbmctYm90dG9tOjA7bWF4LXdpZHRoOjk1JX0ubWVzc2FnZS1vcGVyYXRvci5tZXNzYWdlLXdpdGgtYnV0dG9ucy5idXR0b25zLWhpZGRlbiwubWVzc2FnZS1vcGVyYXRvciAubWVzc2FnZS13aXRoLWJ1dHRvbnMuYnV0dG9ucy1oaWRkZW4sLm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1xdWljay1yZXBsaWVzLmJ1dHRvbnMtaGlkZGVue3BhZGRpbmctYm90dG9tOjEwcHh9Lm1lc3NhZ2Utb3BlcmF0b3IubWVzc2FnZS13aXRoLWJ1dHRvbnM+c3BhbiwubWVzc2FnZS1vcGVyYXRvciAubWVzc2FnZS13aXRoLWJ1dHRvbnM+c3BhbiwubWVzc2FnZS1vcGVyYXRvci5ib3RzLXF1aWNrLXJlcGxpZXM+c3BhbntwYWRkaW5nOjAgMTZweDtkaXNwbGF5OmlubGluZS1ibG9jazt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1lc3NhZ2Utb3BlcmF0b3IubWVzc2FnZS13aXRoLWJ1dHRvbnMgLmJ1dHRvbi13cmFwcGVyLC5tZXNzYWdlLW9wZXJhdG9yIC5tZXNzYWdlLXdpdGgtYnV0dG9ucyAuYnV0dG9uLXdyYXBwZXIsLm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1xdWljay1yZXBsaWVzIC5idXR0b24td3JhcHBlcntiYWNrZ3JvdW5kOiNmZmY7d2lkdGg6MTAwJTttYXJnaW4tdG9wOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZWJlZWYwO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MjBweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoyMHB4O2JvcmRlci10b3A6MDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWVzc2FnZS1vcGVyYXRvci5tZXNzYWdlLXdpdGgtYnV0dG9ucyAuYnV0dG9uLWljb24sLm1lc3NhZ2Utb3BlcmF0b3IgLm1lc3NhZ2Utd2l0aC1idXR0b25zIC5idXR0b24taWNvbiwubWVzc2FnZS1vcGVyYXRvci5ib3RzLXF1aWNrLXJlcGxpZXMgLmJ1dHRvbi1pY29ue2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7cGFkZGluZzo4cHggMTZweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjIwcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MjBweDtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmV9Lm1lc3NhZ2Utb3BlcmF0b3IubWVzc2FnZS13aXRoLWJ1dHRvbnMgLmJ1dHRvbi1pY29uIHN2ZywubWVzc2FnZS1vcGVyYXRvciAubWVzc2FnZS13aXRoLWJ1dHRvbnMgLmJ1dHRvbi1pY29uIHN2ZywubWVzc2FnZS1vcGVyYXRvci5ib3RzLXF1aWNrLXJlcGxpZXMgLmJ1dHRvbi1pY29uIHN2Z3tmaWxsOiMzZjg4ZjY7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0ubWVzc2FnZS1vcGVyYXRvci5tZXNzYWdlLXdpdGgtYnV0dG9ucyAuYnV0dG9uLWljb246aG92ZXIsLm1lc3NhZ2Utb3BlcmF0b3IgLm1lc3NhZ2Utd2l0aC1idXR0b25zIC5idXR0b24taWNvbjpob3ZlciwubWVzc2FnZS1vcGVyYXRvci5ib3RzLXF1aWNrLXJlcGxpZXMgLmJ1dHRvbi1pY29uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y2ZjhmYn0ubWVzc2FnZS1vcGVyYXRvci5tZXNzYWdlLXdpdGgtYnV0dG9ucyBidXR0b24sLm1lc3NhZ2Utb3BlcmF0b3IgLm1lc3NhZ2Utd2l0aC1idXR0b25zIGJ1dHRvbiwubWVzc2FnZS1vcGVyYXRvci5ib3RzLXF1aWNrLXJlcGxpZXMgYnV0dG9ue21hcmdpbjowIGF1dG87bWluLXdpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxOXB4O3BhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWVmMDtjb2xvcjojMDA3ZGZjO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7b3V0bGluZTpub25lfS5tZXNzYWdlLW9wZXJhdG9yLm1lc3NhZ2Utd2l0aC1idXR0b25zIGJ1dHRvbjpob3ZlciwubWVzc2FnZS1vcGVyYXRvciAubWVzc2FnZS13aXRoLWJ1dHRvbnMgYnV0dG9uOmhvdmVyLC5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtcXVpY2stcmVwbGllcyBidXR0b246aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ubWVzc2FnZS1vcGVyYXRvciAubWVzc2FnZS13aXRoLWJ1dHRvbnMgYnV0dG9uOmxhc3QtY2hpbGQsLm1lc3NhZ2Utb3BlcmF0b3IubWVzc2FnZS13aXRoLWJ1dHRvbnMgYnV0dG9uOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTowfS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtcXVpY2stcmVwbGllc3t3aWR0aDo4NSU7YmFja2dyb3VuZC1jb2xvcjojZmZmO21hcmdpbi10b3A6MDtmbG9hdDpyaWdodH0ubWVzc2FnZS1vcGVyYXRvci5ib3RzLXF1aWNrLXJlcGxpZXMgLmJ1dHRvbi13cmFwcGVye21hcmdpbi10b3A6MDtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3dpZHRoOjEwMCU7Ym9yZGVyOm5vbmV9Lm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1xdWljay1yZXBsaWVzIGJ1dHRvbntmb250LXNpemU6MTVweDtwYWRkaW5nOjhweCAxNnB4O2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czoyMHB4O21hcmdpbjozcHg7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21pbi13aWR0aDppbmhlcml0fS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5e3BhZGRpbmc6MCAyOHB4O21heC13aWR0aDpjYWxjKDEwMCUgKyA1NnB4KTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7b3ZlcmZsb3c6YXV0bztib3JkZXItcmFkaXVzOjA7ZGlzcGxheTpmbGV4O3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLXBhZGRpbmc6MjhweDtzY3JvbGwtYmVoYXZpb3I6c21vb3RoO21hcmdpbi1ib3R0b206NXB4O3Njcm9sbGJhci13aWR0aDpub25lO21hcmdpbi1sZWZ0Oi0yOHB4fS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5IC5pb3MtaXBhZHstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uc2FmYXJpIC5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5e3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnl9LmxhbmctcnRsIC5zYWZhcmkgLm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1jYXJkLWdhbGxlcnl7c2Nyb2xsLXNuYXAtdHlwZTpub25lfS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5LmJvdHMtY2FyZC1nYWxsZXJ5LXNpbmdsZS1jYXJke2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzt3aWR0aDoxMDAlfS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5LmJvdHMtY2FyZC1nYWxsZXJ5LXNpbmdsZS1jYXJkIC5jYXJke21heC13aWR0aDoyNDBweDttYXJnaW46YXV0b30ubWVzc2FnZS1vcGVyYXRvci5ib3RzLWNhcmQtZ2FsbGVyeS5ib3RzLWNhcmQtZ2FsbGVyeS1tdWx0aXBsZS1jYXJkcyAuY2FyZDpsYXN0LWNoaWxke21pbi13aWR0aDoyNjhweDtwYWRkaW5nLXJpZ2h0OjI4cHh9Lm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1jYXJkLWdhbGxlcnkgLmNhcmR7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjI0MHB4O3Njcm9sbC1zbmFwLWFsaWduOmNlbnRlcjttYXJnaW46MCAxMHB4IDAgMH0ubWVzc2FnZS1vcGVyYXRvci5ib3RzLWNhcmQtZ2FsbGVyeSAuY2FyZCAuY2FyZC1jb250ZW50LXdyYXBwZXJ7cGFkZGluZzo5cHggMTJweCA4cHg7Ym9yZGVyOjFweCBzb2xpZCAjZWJlZWYwO2JvcmRlci10b3A6bm9uZX0ubWVzc2FnZS1vcGVyYXRvci5ib3RzLWNhcmQtZ2FsbGVyeSAuY2FyZCAuY2FyZC1jb250ZW50LXdyYXBwZXIgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojMDAxMjJlfS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5IC5jYXJkIC5jYXJkLWNvbnRlbnQtd3JhcHBlciBhOmhvdmVyLC5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5IC5jYXJkIC5jYXJkLWNvbnRlbnQtd3JhcHBlciBhOmZvY3VzLC5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5IC5jYXJkIC5jYXJkLWNvbnRlbnQtd3JhcHBlciBhOmFjdGl2ZSwubWVzc2FnZS1vcGVyYXRvci5ib3RzLWNhcmQtZ2FsbGVyeSAuY2FyZCAuY2FyZC1jb250ZW50LXdyYXBwZXIgYTp2aXNpdGVke2NvbG9yOiMwMDEyMmU7b3V0bGluZTpub25lfS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5IC5jYXJkIC5jYXJkLWNvbnRlbnQtd3JhcHBlciBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1jYXJkLWdhbGxlcnkgLmNhcmQgLmNhcmQtaW1hZ2V7Ym9yZGVyLXJhZGl1czoxNHB4IDE0cHggMCAwO2hlaWdodDoxMjJweDtiYWNrZ3JvdW5kOiNmZmYgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JvcmRlcjoxcHggc29saWQgI2ViZWVmMDtib3JkZXItYm90dG9tOjB9Lm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1jYXJkLWdhbGxlcnkgLmNhcmQgLmNhcmQtdGl0bGV7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MTlweDtmb250LXdlaWdodDpib2xkO2NvbG9yOiMwMDEyMmV9Lm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1jYXJkLWdhbGxlcnkgLmNhcmQgLmNhcmQtc3VidGl0bGV7bWFyZ2luOjRweCAwIDA7bGluZS1oZWlnaHQ6MTYuNXB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM0YzU5NmI7d2hpdGUtc3BhY2U6cHJlLWxpbmV9Lm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1jYXJkLWdhbGxlcnkgLmNhcmQgLmNhcmQtc3VidGl0bGUgLmVtb2ppe3dpZHRoOjE1cHg7bWFyZ2luOjAgMCAtMnB4IDJweH0ubWVzc2FnZS1vcGVyYXRvci5ib3RzLWNhcmQtZ2FsbGVyeSAuY2FyZCAuY2FyZC11cmx7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTdweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Y29sb3I6IzAwMTIyZX0ubWVzc2FnZS1vcGVyYXRvci5ib3RzLWNhcmQtZ2FsbGVyeSAuY2FyZCAuY2FyZC11cmwgYXtvcGFjaXR5Oi41fS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5IC5jYXJkIC5jYXJkLWJ1dHRvbnMgLmJ1dHRvbi13cmFwcGVye21hcmdpbjowfS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5IC5jYXJkIC5jYXJkLWJ1dHRvbnMgLmJ1dHRvbi13cmFwcGVyOmJlZm9yZXtjb250ZW50Om5vbmV9Lm1lc3NhZ2Utb3BlcmF0b3IuYm90cy1jYXJkLWdhbGxlcnkgLmNhcmQgLmNhcmQtYnV0dG9ucyAuYnV0dG9uLXdyYXBwZXIgYnV0dG9ue3dpZHRoOjEwMCU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5tZXNzYWdlLW9wZXJhdG9yLmJvdHMtY2FyZC1nYWxsZXJ5LmJvdHMtY2FyZC1nYWxsZXJ5LXdpdGhvdXQtaW1hZ2VzIC5jYXJkLWNvbnRlbnQtd3JhcHBlcntib3JkZXItcmFkaXVzOjE0cHggMTRweCAwIDA7Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWVmMH0ubWVzc2FnZS1vcGVyYXRvci5idXR0b25zLW1lc3NhZ2V7cGFkZGluZzowO21heC13aWR0aDo5MCV9Lm1lc3NhZ2Utb3BlcmF0b3IuYnV0dG9ucy1tZXNzYWdlIC5tZXNzYWdlLXdpdGgtYnV0dG9uc3ttYXgtd2lkdGg6MTAwJX0ubWVzc2FnZS1vcGVyYXRvci5idXR0b25zLW1lc3NhZ2UgLm1lc3NhZ2Utd2l0aC1idXR0b25zLXRleHR7cGFkZGluZzo5cHggMTZweCAxcHg7bGluZS1oZWlnaHQ6MTlweDt3aGl0ZS1zcGFjZTpwcmUtbGluZX0ubWVzc2FnZS1vcGVyYXRvci5jb3Vwb24tY29kZS1tZXNzYWdle3BhZGRpbmc6MTBweCAxNHB4IDE0cHg7d2lkdGg6MTAwJX0ubWVzc2FnZS1vcGVyYXRvci5tZXNzYWdlLWFsZXJ0e2JvcmRlcjoycHggc29saWQgI2RlZTNlODtiYWNrZ3JvdW5kOiNmZmYgIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjIycHg7cG9zaXRpb246cmVsYXRpdmV9Lm1lc3NhZ2Utb3BlcmF0b3IubWVzc2FnZS1hbGVydCBzdmcuYWxlcnQtaWNvbntoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O2ZpbGw6cmVkO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNXB4O2JhY2tncm91bmQ6I2ZmZjtyaWdodDotNXB4fS5tZXNzYWdlLW9wZXJhdG9yLnR5cGluZy1pbmRpY2F0b3J7dGV4dC1hbGlnbjpsZWZ0fS5tZXNzYWdlLW9wZXJhdG9yLnR5cGluZy1pbmRpY2F0b3Igc3BhbntoZWlnaHQ6NHB4O3dpZHRoOjRweDttYXJnaW46MTFweCAxcHggMCAxcHg7YmFja2dyb3VuZC1jb2xvcjojMDAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO29wYWNpdHk6LjQ7LXdlYmtpdC1hbmltYXRpb246YmxpbmsgMS4zcyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOmJsaW5rIDEuM3MgbGluZWFyIGluZmluaXRlfS5tZXNzYWdlLW9wZXJhdG9yLnR5cGluZy1pbmRpY2F0b3Igc3BhbjpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDo0cHh9Lm1lc3NhZ2Utb3BlcmF0b3IudHlwaW5nLWluZGljYXRvciBzcGFuOm50aC1jaGlsZCgyKXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTotMS4xczthbmltYXRpb24tZGVsYXk6LTEuMXN9Lm1lc3NhZ2Utb3BlcmF0b3IudHlwaW5nLWluZGljYXRvciBzcGFuOm50aC1jaGlsZCgzKXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTotMC45czthbmltYXRpb24tZGVsYXk6LTAuOXN9Lm1lc3NhZ2Utb3BlcmF0b3IgLmJ1dHRvbi11cmx7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MTlweDtwYWRkaW5nOjhweCAxNnB4O3RleHQtYWxpZ246Y2VudGVyfS5tZXNzYWdlLW9wZXJhdG9yIC5idXR0b24tdXJsX19hbmNob3J7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6IzAwN2RmY30ubWVzc2FnZS1vcGVyYXRvciAuYnV0dG9uLXVybF9fYW5jaG9yOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9QC13ZWJraXQta2V5ZnJhbWVzIGJsaW5rezAlLDYwJSwxMDAle3RyYW5zZm9ybTppbml0aWFsfTMwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNXB4KX19QGtleWZyYW1lcyBibGlua3swJSw2MCUsMTAwJXt0cmFuc2Zvcm06aW5pdGlhbH0zMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCl9fS5ib3RzLWNhcmQtZ2FsbGVyeS1idXR0b24td3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtjbGVhcjpib3RoO3dpZHRoOjEwMCU7ZmxvYXQ6bGVmdH0uYm90cy1jYXJkLWdhbGxlcnktYnV0dG9uLXdyYXBwZXIuYm90cy1jYXJkLWdhbGxlcnktd2l0aG91dC1pbWFnZXMgLmJvdHMtY2FyZC1nYWxsZXJ5LXNjcm9sbC1idXR0b257dG9wOjIycHh9LmJvdHMtY2FyZC1nYWxsZXJ5LXNjcm9sbC1idXR0b257cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlO3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7Ym94LXNoYWRvdzowIDRweCAxMnB4IDAgcmdiYSgwLDAsMCwuMjQpO3otaW5kZXg6Mzt0b3A6MTQwcHg7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyxvcGFjaXR5IC4yc30uYm90cy1jYXJkLWdhbGxlcnktc2Nyb2xsLWJ1dHRvbjpob3Zlcntib3gtc2hhZG93OjAgOHB4IDEycHggMCByZ2JhKDAsMCwwLC4yNCl9LmJvdHMtY2FyZC1nYWxsZXJ5LXNjcm9sbC1idXR0b24uc2Nyb2xsLWJ1dHRvbi1yaWdodHtyaWdodDotMThweH0uYm90cy1jYXJkLWdhbGxlcnktc2Nyb2xsLWJ1dHRvbi5zY3JvbGwtYnV0dG9uLXJpZ2h0IHN2Z3t0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9LmxhbmctcnRsIC5ib3RzLWNhcmQtZ2FsbGVyeS1zY3JvbGwtYnV0dG9uLnNjcm9sbC1idXR0b24tcmlnaHQgc3Zne3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5ib3RzLWNhcmQtZ2FsbGVyeS1zY3JvbGwtYnV0dG9uLnNjcm9sbC1idXR0b24tbGVmdHtsZWZ0Oi0xOHB4fS5ib3RzLWNhcmQtZ2FsbGVyeS1zY3JvbGwtYnV0dG9uLnNjcm9sbC1idXR0b24tbGVmdCBzdmd7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmxhbmctcnRsIC5ib3RzLWNhcmQtZ2FsbGVyeS1zY3JvbGwtYnV0dG9uLnNjcm9sbC1idXR0b24tbGVmdCBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5ib3RzLWNhcmQtZ2FsbGVyeS1zY3JvbGwtYnV0dG9uIHN2Z3t3aWR0aDo0MnB4O2hlaWdodDo0MnB4fS5tZXNzYWdlIC5lbW9qaXttYXJnaW46MCAxcHggMCAycHg7dmVydGljYWwtYWxpZ246LTVweH0ubWVzc2FnZVRpbWVzdGFtcHtib3R0b206LTI0cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6Izg4OTRhYjtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOmFsbCAuMnM7d2hpdGUtc3BhY2U6bm93cmFwfS5tZXNzYWdlLW9wZXJhdG9yIC5tZXNzYWdlVGltZXN0YW1we2hlaWdodDoyM3B4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7dG9wOmNhbGMoMTAwJSArIDRweCk7bGVmdDoxMnB4fS5tZXNzYWdlLXZpc2l0b3IgLm1lc3NhZ2VUaW1lc3RhbXB7cmlnaHQ6MTJweH0uc2hha2V7LXdlYmtpdC1hbmltYXRpb246c2hha2UgLjgycyBjdWJpYy1iZXppZXIoMC4zNiwgMC4wNywgMC4xOSwgMC45NykgYm90aDthbmltYXRpb246c2hha2UgLjgycyBjdWJpYy1iZXppZXIoMC4zNiwgMC4wNywgMC4xOSwgMC45NykgYm90aH0ucHJlLWNoYXQsLnJhdGUtY29tbWVudCwuYWx3YXlzLW9ubGluZXttYXgtd2lkdGg6OTUlfS5wcmUtY2hhdCAuZmllbGQtd3JhcHBlciwucmF0ZS1jb21tZW50IC5maWVsZC13cmFwcGVyLC5hbHdheXMtb25saW5lIC5maWVsZC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6MH0ucHJlLWNoYXQgLmZpZWxkLXdyYXBwZXIuZmllbGQtd3JhcHBlci13aXRoLWVycm9yIGlucHV0LC5yYXRlLWNvbW1lbnQgLmZpZWxkLXdyYXBwZXIuZmllbGQtd3JhcHBlci13aXRoLWVycm9yIGlucHV0LC5hbHdheXMtb25saW5lIC5maWVsZC13cmFwcGVyLmZpZWxkLXdyYXBwZXItd2l0aC1lcnJvciBpbnB1dHtib3JkZXItY29sb3I6I2Y2MzAzYX0ucHJlLWNoYXQgc3ZnLC5yYXRlLWNvbW1lbnQgc3ZnLC5hbHdheXMtb25saW5lIHN2Z3t3aWR0aDoxOXB4O2hlaWdodDoxOXB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo4cHg7ZmlsbDpncmVlbjtsZWZ0OjlweH0ucHJlLWNoYXQgc3ZnI2ljX2Fycm93LC5yYXRlLWNvbW1lbnQgc3ZnI2ljX2Fycm93LC5hbHdheXMtb25saW5lIHN2ZyNpY19hcnJvd3tmaWxsOiMzNDllZjM7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LnByZS1jaGF0IHN2ZyNpY19jbG9zZSwucmF0ZS1jb21tZW50IHN2ZyNpY19jbG9zZSwuYWx3YXlzLW9ubGluZSBzdmcjaWNfY2xvc2V7ZmlsbDpyZWR9LnByZS1jaGF0IGlucHV0LC5yYXRlLWNvbW1lbnQgaW5wdXQsLmFsd2F5cy1vbmxpbmUgaW5wdXR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2JvcmRlcjowO2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6NnB4IDdweCA3cHggMzVweDtib3JkZXItcmFkaXVzOjVweDttYXJnaW46MTBweCAwIDVweH0ucHJlLWNoYXQgaW5wdXRbdHlwZT1jaGVja2JveF0sLnJhdGUtY29tbWVudCBpbnB1dFt0eXBlPWNoZWNrYm94XSwuYWx3YXlzLW9ubGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDphdXRvO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO3RvcDo5cHg7bGVmdDoxMXB4O3BhZGRpbmc6MH0ubW9iaWxlIC5maXJlZm94IC5wcmUtY2hhdCBpbnB1dFt0eXBlPWNoZWNrYm94XSwubW9iaWxlIC5maXJlZm94IC5yYXRlLWNvbW1lbnQgaW5wdXRbdHlwZT1jaGVja2JveF0sLm1vYmlsZSAuZmlyZWZveCAuYWx3YXlzLW9ubGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XXtvdXRsaW5lOnNvbGlkIDFweCByZ2JhKDEwOCwxMjUsMTU5LC4yNCl9LnByZS1jaGF0IGxhYmVsLC5yYXRlLWNvbW1lbnQgbGFiZWwsLmFsd2F5cy1vbmxpbmUgbGFiZWx7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTRweDt0ZXh0LWFsaWduOmp1c3RpZnk7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLWhlaWdodDoyNHB4O21hcmdpbi1sZWZ0OjVweDtwYWRkaW5nOjEwcHggNXB4IDAgMzFweH0ucHJlLWNoYXQgbGFiZWwgYSwucmF0ZS1jb21tZW50IGxhYmVsIGEsLmFsd2F5cy1vbmxpbmUgbGFiZWwgYXt3b3JkLWJyZWFrOmJyZWFrLWFsbH0udGltZXN0YW1wLWF2YXRhcnt3aWR0aDoyM3B4O2hlaWdodDoyM3B4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtib3JkZXItcmFkaXVzOjI1cHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoJytjKycpO3BhZGRpbmctbGVmdDoyM3B4O2xlZnQ6MH0udGltZXN0YW1wLWF2YXRhcitzcGFue21hcmdpbi1sZWZ0OjMwcHg7bWFyZ2luLXJpZ2h0OjVweH0ubG9hZGVyLWljb24uY2lyY3VsYXJ7LXdlYmtpdC1hbmltYXRpb246cm90YXRlIDJzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246cm90YXRlIDJzIGxpbmVhciBpbmZpbml0ZTtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bWFyZ2luOjA7bGVmdDoxMHB4O3JpZ2h0OjB9LmxvYWRlci1pY29uIC5wYXRoe3N0cm9rZS1kYXNoYXJyYXk6MSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MDstd2Via2l0LWFuaW1hdGlvbjpkYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7YW5pbWF0aW9uOmRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtzdHJva2UtbGluZWNhcDpyb3VuZH1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlezEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIHJvdGF0ZXsxMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QC13ZWJraXQta2V5ZnJhbWVzIGRhc2h7MCV7c3Ryb2tlLWRhc2hhcnJheToxLDIwMDtzdHJva2UtZGFzaG9mZnNldDowfTUwJXtzdHJva2UtZGFzaGFycmF5Ojg5LDIwMDtzdHJva2UtZGFzaG9mZnNldDotMzVweH0xMDAle3N0cm9rZS1kYXNoYXJyYXk6ODksMjAwO3N0cm9rZS1kYXNob2Zmc2V0Oi0xMjRweH19QGtleWZyYW1lcyBkYXNoezAle3N0cm9rZS1kYXNoYXJyYXk6MSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MH01MCV7c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTM1cHh9MTAwJXtzdHJva2UtZGFzaGFycmF5Ojg5LDIwMDtzdHJva2UtZGFzaG9mZnNldDotMTI0cHh9fS5tZXNzYWdlLXVwbG9hZHttYXgtd2lkdGg6NzUlfS5tZXNzYWdlLXVwbG9hZCBzcGFue3BhZGRpbmctbGVmdDoyNXB4fS5tZXNzYWdlLXVwbG9hZCAjaWNfZG93bmxvYWR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWVzc2FnZS11cGxvYWQubWVzc2FnZS1vcGVyYXRvciAjaWNfZG93bmxvYWR7cmlnaHQ6LTM1cHh9Lm1lc3NhZ2UtdXBsb2FkLm1lc3NhZ2UtdmlzaXRvciAjaWNfZG93bmxvYWR7bGVmdDotMzVweH0ubWVzc2FnZS11cGxvYWQgYXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyfS5tZXNzYWdlLXVwbG9hZCBhOmhvdmVyPnN2Z3tvcGFjaXR5OjF9Lm1lc3NhZ2UtdXBsb2FkIGE+c3Zne29wYWNpdHk6MDtmaWxsOiNiZmM1ZDd9Lm1lc3NhZ2UtdXBsb2FkLm1lc3NhZ2UtaW1hZ2V7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MH0ubWVzc2FnZS11cGxvYWQubWVzc2FnZS1pbWFnZSBzcGFue3BhZGRpbmctbGVmdDowfS5tZXNzYWdlLXVwbG9hZC5tZXNzYWdlLWltYWdlIGltZ3t3aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6MjBweH0ubWVzc2FnZS11cGxvYWQubWVzc2FnZS1maWxlIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7d29yZC1icmVhazpicmVhay1hbGw7cGFkZGluZy1sZWZ0OjB9Lm1lc3NhZ2UtdXBsb2FkLm1lc3NhZ2UtZmlsZSBhe2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1sZWZ0OjM1cHh9Lm1lc3NhZ2UtdXBsb2FkLm1lc3NhZ2UtZmlsZSBhIHN2Z3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2xlZnQ6MTdweH0uYXR0YWNobWVudC1pbWd7YmFja2dyb3VuZDojZmZmO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lfS5oaXN0b3J5LWJ1dHRvbi13cmFwcGVye2NsZWFyOmJvdGg7d2lkdGg6MTAwJTtmbG9hdDpsZWZ0fS5oaXN0b3J5LWJ1dHRvbnttYXJnaW46MCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDojZmZmO21hcmdpbi1ib3R0b206MjBweDtsZXR0ZXItc3BhY2luZzotMC4xcHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM4ODk0YWI7Ym9yZGVyLXJhZGl1czoxNHB4O2JvcmRlcjpzb2xpZCAxcHggcmdiYSgxMzYsMTQ4LDE3MSwuMjQpO3BhZGRpbmctcmlnaHQ6MTJweH0uaGlzdG9yeS1idXR0b24gc3Zne2ZpbGw6Izg4OTRhYjt3aWR0aDoxOXB4O21hcmdpbi1yaWdodDo1cHh9Lmhpc3RvcnktYnV0dG9uOmhvdmVye2NvbG9yOiMyYTdkZmJ9Lmhpc3RvcnktYnV0dG9uOmhvdmVyIHN2Z3tmaWxsOiMyYTdkZmJ9QC13ZWJraXQta2V5ZnJhbWVzIHJpcHBsZXtmcm9te2JhY2tncm91bmQ6cmdiYSgyMzksMjQyLDI0NiwwKTt0cmFuc2Zvcm06c2NhbGUoMC41KX01MCV7YmFja2dyb3VuZDpyZ2JhKDIzOSwyNDIsMjQ2LC42KTt0cmFuc2Zvcm06c2NhbGUoMSl9dG97YmFja2dyb3VuZDpyZ2JhKDIzOSwyNDIsMjQ2LDApO3RyYW5zZm9ybTpzY2FsZSgyKX19QGtleWZyYW1lcyByaXBwbGV7ZnJvbXtiYWNrZ3JvdW5kOnJnYmEoMjM5LDI0MiwyNDYsMCk7dHJhbnNmb3JtOnNjYWxlKDAuNSl9NTAle2JhY2tncm91bmQ6cmdiYSgyMzksMjQyLDI0NiwuNik7dHJhbnNmb3JtOnNjYWxlKDEpfXRve2JhY2tncm91bmQ6cmdiYSgyMzksMjQyLDI0NiwwKTt0cmFuc2Zvcm06c2NhbGUoMil9fS5tb2JpbGV7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCl9Lm1vYmlsZSBidXR0b24ubWF0ZXJpYWwtaWNvbnMuZXhpdC1jaGF0Lm1vYmlsZS1jbG9zZXtib3JkZXItcmFkaXVzOjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDoyMHB4O21hcmdpbjowO3BhZGRpbmc6M3B4O2JveC1zaGFkb3c6MCAzcHggNnB4IHJnYmEoMCwwLDAsLjE2KSwwIDNweCA2cHggcmdiYSgwLDAsMCwuMjMpO2hlaWdodDozMHB4O3dpZHRoOjMwcHg7YmFja2dyb3VuZDojZmZmO3otaW5kZXg6MX0ubW9iaWxlIGJ1dHRvbi5tYXRlcmlhbC1pY29ucy5leGl0LWNoYXQubW9iaWxlLWNsb3NlIHN2Z3tmaWxsOiMwMDB9Lm1vYmlsZSAuY2hhdHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvdHRvbTowO2JhY2tncm91bmQ6I2ZmZjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JvcmRlci1yYWRpdXM6MDtyaWdodDowO2xlZnQ6YXV0bzttYXgtaGVpZ2h0Om5vbmV9Lm1vYmlsZSAuaW5wdXQtZ3JvdXB7YWxpZ24tc2VsZjpmbGV4LWVuZH0ubW9iaWxlIC5pbnB1dC1ncm91cCB0ZXh0YXJlYXtwYWRkaW5nLXJpZ2h0OjUwcHh9Lm1vYmlsZSAuaW5wdXQtZ3JvdXAgYnV0dG9uLC5tb2JpbGUgLmlucHV0LWdyb3VwIC5idXR0b24tdXJse21hcmdpbi1ib3R0b206MH0ubW9iaWxlICNjb252ZXJzYXRpb24tZ3JvdXB7bWF4LWhlaWdodDpub25lO2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3cteTpzY3JvbGw7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm1vYmlsZSAjYnV0dG9ue3dpZHRoOjgwcHg7aGVpZ2h0OjEwMHB4O2JvdHRvbTowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yczt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTJweCk7LyohIEBub2ZsaXAgKi9yaWdodDowcHg7LyohIEBub2ZsaXAgKi9sZWZ0OmF1dG99Lm1vYmlsZSAjYnV0dG9uLmNoYXQtb3BlbntyaWdodDowcHg7bGVmdDphdXRvfS5tb2JpbGUgI2J1dHRvbi5zaWRlYmFye3dpZHRoOjUwcHh9Lm1vYmlsZSAjYnV0dG9uLmNoYXQtY2xvc2VkOm5vdCguc2lkZWJhcikubW9iaWxlLXNpemVfX3NtYWxse3RyYW5zZm9ybTpzY2FsZSgwLjYpfS5tb2JpbGUgI2J1dHRvbi5jaGF0LWNsb3NlZDpub3QoLnNpZGViYXIpLm1vYmlsZS1zaXplX19tZWRpdW17dHJhbnNmb3JtOnNjYWxlKDAuOCl9Lm1vYmlsZSAjbmV3LW1lc3NhZ2V7dG9wOjE3cHg7cmlnaHQ6MTNweH0ubW9iaWxlICNuZXctbWVzc2FnZSsjZG5kLWluZGljYXRvcntyaWdodDoycHh9Lm1vYmlsZSAjbmV3LW1lc3NhZ2UuYWN0aXZley13ZWJraXQtYW5pbWF0aW9uOnNoYWtlIC44MnMgY3ViaWMtYmV6aWVyKDAuMzYsIDAuMDcsIDAuMTksIDAuOTcpIGJvdGg7YW5pbWF0aW9uOnNoYWtlIC44MnMgY3ViaWMtYmV6aWVyKDAuMzYsIDAuMDcsIDAuMTksIDAuOTcpIGJvdGh9Lm1vYmlsZSAjZG5kLWluZGljYXRvcnt0b3A6MTdweDtyaWdodDoxM3B4fS5tb2JpbGUgYnV0dG9uLnJpcHBsZXt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufS5tb2JpbGUgYnV0dG9uLnJpcHBsZTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6NTBweDt3aWR0aDowcHg7dG9wOmNhbGMoNTAlIC0gMjVweCk7YmFja2dyb3VuZDpyZ2JhKDIzOSwyNDIsMjQ2LDApO2JvcmRlci1yYWRpdXM6NTAlO3otaW5kZXg6LTE7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLG9wYWNpdHk7bGVmdDpjYWxjKDUwJSAtIDI1cHgpfS5tb2JpbGUgYnV0dG9uLnJpcHBsZTpub3QoOmFjdGl2ZSk6OmFmdGVyey13ZWJraXQtYW5pbWF0aW9uOnJpcHBsZSAuM3MgZWFzZS1pbi1vdXQ7YW5pbWF0aW9uOnJpcHBsZSAuM3MgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjp3aWR0aCAuM3Mgc3RlcC1lbmR9Lm1vYmlsZSBidXR0b24ucmlwcGxlOmFjdGl2ZTo6YWZ0ZXJ7d2lkdGg6NTBweDt0cmFuc2l0aW9uOndpZHRoIDBzIHN0ZXAtc3RhcnR9Lm1vYmlsZSAud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbi5jaGF0LW9wZW57cmlnaHQ6MDtsZWZ0OmF1dG99Lm1vYmlsZSAuY2hhdC1oZWFkZXJ7cGFkZGluZzo4cHggMjJweCAwcHh9Lm1vYmlsZSAub2ZmbGluZS1tZXNzYWdle21hcmdpbi10b3A6M3B4O3BhZGRpbmc6MTBweCAyOHB4IDEycHh9Lm1vYmlsZSAub2ZmbGluZS1tZXNzYWdlIHNwYW57Zm9udC1zaXplOjEzcHh9Lm1vYmlsZSAuYXZhdGFycy13cmFwcGVye3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7bWFyZ2luOjBweCAxNHB4IDAgMH0ubW9iaWxlIC5jaGF0IGgyIC50b3AtaGVhZGluZ3tmb250LXNpemU6MTNweDttYXJnaW4tdG9wOi0xcHh9Lm1vYmlsZSAuY2hhdCBoMi5vbmVsaW5le2xpbmUtaGVpZ2h0OjQ5cHg7aGVpZ2h0OjU0cHh9LmF3ZXNvbWUtaWZyYW1lIC5vbmx5QnViYmxlICNidXR0b24sLmF3ZXNvbWUtaWZyYW1lIC5idWJibGVXaXRoTGFiZWwgI2J1dHRvbntoZWlnaHQ6OTRweDt3aWR0aDo5NHB4O2JvdHRvbTowfS5hd2Vzb21lLWlmcmFtZSAud2lkZ2V0LXBvc2l0aW9uLWxlZnQgLndpZGdldExhYmVsey8qISBAbm9mbGlwICovbGVmdDoxMDBweH0uYXdlc29tZS1pZnJhbWUgLndpZGdldC1wb3NpdGlvbi1sZWZ0LmJ1YmJsZVdpdGhMYWJlbCAud2lkZ2V0TGFiZWx7LyohIEBub2ZsaXAgKi9sZWZ0OjkxcHh9LmF3ZXNvbWUtaWZyYW1lIC53aWRnZXQtcG9zaXRpb24tcmlnaHQgLndpZGdldExhYmVsey8qISBAbm9mbGlwICovcmlnaHQ6MTAwcHh9LmF3ZXNvbWUtaWZyYW1lIC53aWRnZXQtcG9zaXRpb24tcmlnaHQuYnViYmxlV2l0aExhYmVsIC53aWRnZXRMYWJlbHsvKiEgQG5vZmxpcCAqL3JpZ2h0OjkxcHh9LmF3ZXNvbWUtaWZyYW1lIC5idWJibGVXaXRoTGFiZWwgLndpZGdldExhYmVse2JvdHRvbToyNnB4fS5hd2Vzb21lLWlmcmFtZSAud2lkZ2V0TGFiZWx7Ym90dG9tOjYxcHg7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O2JveC1zaGFkb3c6MCAycHggMjBweCAwIHJnYmEoMCwxOCw0NiwuMTgpfS5hd2Vzb21lLWlmcmFtZS5tb2JpbGUgLmNoYXQrLmNoYXQtY2xvc2Vke2JvdHRvbTowICFpbXBvcnRhbnR9LmF3ZXNvbWUtaWZyYW1lLm1vYmlsZSAuZmx5TWVzc2FnZSsuY2hhdC1jbG9zZWR7Ym90dG9tOjAgIWltcG9ydGFudH0uYXdlc29tZS1pZnJhbWUgW2NsYXNzKj1jaGF0U2l6ZV0gLmNoYXQtY2xvc2VkICNkbmQtaW5kaWNhdG9ye3RyYW5zaXRpb246bm9uZX0uYXdlc29tZS1pZnJhbWUgLm9ubHlCdWJibGUgI25ldy1tZXNzYWdlLC5hd2Vzb21lLWlmcmFtZSAub25seUJ1YmJsZSAjZG5kLWluZGljYXRvciwuYXdlc29tZS1pZnJhbWUgLmJ1YmJsZVdpdGhMYWJlbCAjbmV3LW1lc3NhZ2UsLmF3ZXNvbWUtaWZyYW1lIC5idWJibGVXaXRoTGFiZWwgI2RuZC1pbmRpY2F0b3J7dG9wOjE0cHg7cmlnaHQ6MTRweDt0cmFuc2l0aW9uOm5vbmV9LmF3ZXNvbWUtaWZyYW1lIC5vbmx5QnViYmxlICNuZXctbWVzc2FnZSsjZG5kLWluZGljYXRvciwuYXdlc29tZS1pZnJhbWUgLmJ1YmJsZVdpdGhMYWJlbCAjbmV3LW1lc3NhZ2UrI2RuZC1pbmRpY2F0b3J7cmlnaHQ6M3B4fS5hd2Vzb21lLWlmcmFtZSAub25seUJ1YmJsZUxhcmdlICNuZXctbWVzc2FnZSwuYXdlc29tZS1pZnJhbWUgLm9ubHlCdWJibGVMYXJnZSAjZG5kLWluZGljYXRvcnt0b3A6MTRweDtyaWdodDoyMHB4O3RyYW5zaXRpb246bm9uZX0uYXdlc29tZS1pZnJhbWUgLm9ubHlCdWJibGVMYXJnZSAjbmV3LW1lc3NhZ2UrI2RuZC1pbmRpY2F0b3J7cmlnaHQ6MTBweH0uYXdlc29tZS1pZnJhbWUgLm9ubHlCdWJibGVNZWRpdW0gI25ldy1tZXNzYWdlLC5hd2Vzb21lLWlmcmFtZSAub25seUJ1YmJsZU1lZGl1bSAjZG5kLWluZGljYXRvcnt0b3A6N3B4O3RyYW5zaXRpb246bm9uZX0uYXdlc29tZS1pZnJhbWUgLm9ubHlCdWJibGVTbWFsbCAjbmV3LW1lc3NhZ2UsLmF3ZXNvbWUtaWZyYW1lIC5vbmx5QnViYmxlU21hbGwgI2RuZC1pbmRpY2F0b3J7dG9wOi0zcHg7dHJhbnNpdGlvbjpub25lO3JpZ2h0OjNweH0uYXdlc29tZS1pZnJhbWUgLm9ubHlCdWJibGVTbWFsbCAjbmV3LW1lc3NhZ2UrI2RuZC1pbmRpY2F0b3J7cmlnaHQ6LTdweH0uYXdlc29tZS1pZnJhbWUgLm9ubHlCdWJibGVTbWFsbCAjYnV0dG9uLC5hd2Vzb21lLWlmcmFtZSAub25seUJ1YmJsZU1lZGl1bSAjYnV0dG9uLC5hd2Vzb21lLWlmcmFtZSAub25seUJ1YmJsZUxhcmdlICNidXR0b257dHJhbnNpdGlvbjpub25lO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfS5hd2Vzb21lLWlmcmFtZSAub25seUJ1YmJsZVNtYWxsICNidXR0b257d2lkdGg6NjBweDtoZWlnaHQ6NjBweH0uYXdlc29tZS1pZnJhbWUgLm9ubHlCdWJibGVNZWRpdW0gI2J1dHRvbnt3aWR0aDo4MHB4O2hlaWdodDo4MHB4fS5hd2Vzb21lLWlmcmFtZSAub25seUJ1YmJsZUxhcmdlICNidXR0b257d2lkdGg6OTRweDtoZWlnaHQ6OTRweH1odG1se2JveC1zaXppbmc6Ym9yZGVyLWJveH0qLCo6YmVmb3JlLCo6YWZ0ZXJ7Ym94LXNpemluZzppbmhlcml0fWJvZHksaW5wdXQsdGV4dGFyZWEsc2VsZWN0LGJ1dHRvbntmb250LWZhbWlseToiTXVsaXNoIixzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjI0cHg7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7Y29sb3I6IzA2MTMyYn1pbnB1dDo6LW1vei1wbGFjZWhvbGRlciwgdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6Izg4OTRhYjtvcGFjaXR5OjF9aW5wdXQ6OnBsYWNlaG9sZGVyLHRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjojODg5NGFiO29wYWNpdHk6MX1pbnB1dDpmb2N1cyxpbnB1dDphY3RpdmUsdGV4dGFyZWE6Zm9jdXMsdGV4dGFyZWE6YWN0aXZlLHNlbGVjdDpmb2N1cyxzZWxlY3Q6YWN0aXZle2JvcmRlcjowO291dGxpbmU6MH10YWJsZXtib3JkZXItc3BhY2luZzowfWl7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfXVse2xpc3Qtc3R5bGUtdHlwZTpub25lfS5lbW9qaXt3aWR0aDoyMHB4O21hcmdpbjowIDJweCAtNXB4IDJweDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmxhbmctcnRsey8qISBAbm9mbGlwICovZGlyZWN0aW9uOnJ0bDt1bmljb2RlLWJpZGk6ZW1iZWR9LndpZGdldC1wb3NpdGlvbi1sZWZ0IC5jaGF0LC53aWRnZXQtcG9zaXRpb24tbGVmdCAuc3RhcnQtZ3JvdXB7cmlnaHQ6NDhweDtsZWZ0OmF1dG99Lm1vYmlsZSAud2lkZ2V0LXBvc2l0aW9uLWxlZnQgLmNoYXQsLm1vYmlsZSAud2lkZ2V0LXBvc2l0aW9uLWxlZnQgLnN0YXJ0LWdyb3Vwey8qISBAbm9mbGlwICovcmlnaHQ6MH0ud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbjpub3QoLnNpZGViYXIpey8qISBAbm9mbGlwICovbGVmdDowcHg7LyohIEBub2ZsaXAgKi9yaWdodDphdXRvfS53aWRnZXQtcG9zaXRpb24tbGVmdCAjYnV0dG9uLmJ1YmJsZUFuaW1hdGlvbi1leGl0e3JpZ2h0OjBweDtsZWZ0OmF1dG99LndpZGdldC1wb3NpdGlvbi1sZWZ0ICNidXR0b24uY2hhdC1vcGVue3JpZ2h0OjBweDtsZWZ0OmF1dG99Lm1vYmlsZSAud2lkZ2V0LXBvc2l0aW9uLWxlZnQgI2J1dHRvbi5jaGF0LW9wZW57cmlnaHQ6MHB4O2xlZnQ6YXV0b31AbWVkaWEgcHJpbnR7LmZyYW1lLWNvbnRlbnR7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9fScsIiJdKSxlLmV4cG9ydHM9dH0sMzkyOmZ1bmN0aW9uKGUsdCxuKXsodD1uKDMzOSkoITEpKS5wdXNoKFtlLmksIi5lbW9qaS1tYXJ0LFxuLmVtb2ppLW1hcnQgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbn1cblxuLmVtb2ppLW1hcnQge1xuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogIzIyMjQyNztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4uZW1vamktbWFydCAuZW1vamktbWFydC1lbW9qaSB7XG4gICAgcGFkZGluZzogNnB4O1xufVxuXG4uZW1vamktbWFydC1iYXIge1xuICAgIGJvcmRlcjogMCBzb2xpZCAjZDlkOWQ5O1xufVxuLmVtb2ppLW1hcnQtYmFyOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG59XG4uZW1vamktbWFydC1iYXI6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xufVxuXG4uZW1vamktbWFydC1hbmNob3JzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgIGNvbG9yOiAjODU4NTg1O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4uZW1vamktbWFydC1hbmNob3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBjb2xvcjogIzg1ODU4NTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTJweCA0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2Utb3V0O1xuICAgIG1hcmdpbjogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xufVxuLmVtb2ppLW1hcnQtYW5jaG9yOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xufVxuLmVtb2ppLW1hcnQtYW5jaG9yOmhvdmVyLFxuLmVtb2ppLW1hcnQtYW5jaG9yOmZvY3VzLFxuLmVtb2ppLW1hcnQtYW5jaG9yLXNlbGVjdGVkIHtcbiAgICBjb2xvcjogIzQ2NDY0Njtcbn1cblxuLmVtb2ppLW1hcnQtYW5jaG9yLXNlbGVjdGVkIC5lbW9qaS1tYXJ0LWFuY2hvci1iYXIge1xuICAgIGJvdHRvbTogMDtcbn1cblxuLmVtb2ppLW1hcnQtYW5jaG9yLWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTNweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XG59XG5cbi5lbW9qaS1tYXJ0LWFuY2hvcnMgaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMjJweDtcbn1cblxuLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcsXG4uZW1vamktbWFydC1hbmNob3JzIGltZyB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIG1heC1oZWlnaHQ6IDE4cHg7XG59XG5cbi5lbW9qaS1tYXJ0LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDI3MHB4O1xuICAgIHBhZGRpbmc6IDAgNnB4IDZweCA2cHg7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogYXZvaWRzIFwicmVwYWludHMgb24gc2Nyb2xsXCIgaW4gbW9iaWxlIENocm9tZSAqL1xufVxuXG4uZW1vamktbWFydC1zZWFyY2gge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICBwYWRkaW5nOiAwIDZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5lbW9qaS1tYXJ0LXNlYXJjaCBpbnB1dCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICBvdXRsaW5lOiAwO1xufVxuXG4uZW1vamktbWFydC1zZWFyY2ggaW5wdXQsXG4uZW1vamktbWFydC1zZWFyY2ggaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4uZW1vamktbWFydC1zZWFyY2ggaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4uZW1vamktbWFydC1zZWFyY2ggaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLFxuLmVtb2ppLW1hcnQtc2VhcmNoIGlucHV0Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgIC8qIHJlbW92ZSB3ZWJraXQvYmxpbmsgc3R5bGVzIGZvciA8aW5wdXQgdHlwZT1cInNlYXJjaFwiPlxuICAgICAqIHZpYSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvOTQyMjY4OSAqL1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmVtb2ppLW1hcnQtc2VhcmNoLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDdweDtcbiAgICByaWdodDogMTFweDtcbiAgICB6LWluZGV4OiAyO1xuICAgIHBhZGRpbmc6IDJweCA1cHggMXB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaSBzcGFuIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUge1xuICAgIHotaW5kZXg6IDA7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5cbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG59XG5cbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZzogNXB4IDZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG59XG5cbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4uZW1vamktbWFydC1jYXRlZ29yeS1saXN0IGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmVtb2ppLW1hcnQtZW1vamkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5lbW9qaS1tYXJ0LWVtb2ppLW5hdGl2ZSB7XG4gICAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnU2Vnb2UgVUknLCAnQXBwbGUgQ29sb3IgRW1vamknLFxuICAgICAgICAnVHdlbW9qaSBNb3ppbGxhJywgJ05vdG8gQ29sb3IgRW1vamknLCAnQW5kcm9pZCBFbW9qaSc7XG59XG5cbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDcwcHg7XG4gICAgY29sb3I6ICM4NTg1ODU7XG59XG4uZW1vamktbWFydC1uby1yZXN1bHRzLWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiA1MCU7XG59XG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1uby1yZXN1bHRzLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAwLjJlbTtcbn1cbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtZW1vamk6aG92ZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lO1xufVxuXG4vKiBGb3Igc2NyZWVucmVhZGVycyBvbmx5LCB2aWEgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE5NzU4NjIwICovXG4uZW1vamktbWFydC1zci1vbmx5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgYm9yZGVyOiAwO1xufVxuIiwiIl0pLGUuZXhwb3J0cz10fSwzOTM6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8KHQ9e30pLCJzdHJpbmciIT09dHlwZW9mKGU9ZSYmZS5fX2VzTW9kdWxlP2UuZGVmYXVsdDplKT9lOigvXlsnIl0uKlsnIl0kLy50ZXN0KGUpJiYoZT1lLnNsaWNlKDEsLTEpKSx0Lmhhc2gmJihlKz10Lmhhc2gpLC9bIicoKSBcdFxuXS8udGVzdChlKXx8dC5uZWVkUXVvdGVzPyciJy5jb25jYXQoZS5yZXBsYWNlKC8iL2csJ1xcIicpLnJlcGxhY2UoL1xuL2csIlxcbiIpLCciJyk6ZSl9fSwzOTQ6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCksdC5kZWZhdWx0PSJkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUFBQVFBQkFBRC8yd0NFQUFNREF3TURBd1FFQkFRRkJRVUZCUWNIQmdZSEJ3c0lDUWdKQ0FzUkN3d0xDd3dMRVE4U0R3NFBFZzhiRlJNVEZSc2ZHaGthSHlZaUlpWXdMVEErUGxRQkF3TURBd01EQkFRRUJBVUZCUVVGQndjR0JnY0hDd2dKQ0FrSUN4RUxEQXNMREFzUkR4SVBEZzhTRHhzVkV4TVZHeDhhR1JvZkppSWlKakF0TUQ0K1ZQL0NBQkVJQUR3QVBBTUJJZ0FDRVFFREVRSC94QUFjQUFFQUFRVUJBUUFBQUFBQUFBQUFBQUFBQmdFREJBVUhBZ24vMmdBSUFRRUFBQUFBK2xZQWo4Y3k1bmRITzhWTk4wSUZyazYyZ2pFWXVkSDlpTFFQTjZsZWMrMFZtdEcwMzhMOVVwV2gvOFFBRkFFQkFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvYUFBZ0JBaEFBQUFBQUFQL0VBQlFCQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvMmdBSUFRTVFBQUFBQUFEL3hBQXVFQUFCQXdNQUNBVUVBd0FBQUFBQUFBQUJBZ01FQUFVUkJoQVNFeUFoUVZFaU1tS1J3U054Y29FeFFxSC8yZ0FJQVFFQUFUOEExNFBIZGJ1dU12Y01ZMndQR3M4OFo2Q2xUNXF6bFVoMG44cWpYbWF3b0ZheThqcWxmd2FaZWJrTklkYk9VckdSd0NweEpteVNmNTNxdGRnSk51K3pxK0c3Tjd1NHlQVW9LOXhyc3lDM2JXZlVWTDl6dzZReGlTMUlBNVkyRi9HcHBsYjdxR2tlWmFzQ2tOcGFiUWhQbFFrSkg2NENNREo1RHZXa2srR3UzdVJtM3dwNWFrNDJEa3AyVG5KTkM0UzJoaHlQdlQwV2c0ejl4VnFtdU4zU05KbC9UYWJVY0lUenhrWTJqM3BpUkhrakxMcmJnOUtzMWdqVkwwbm52TFZ1QWxsSFRsbGY3SnArVktrbkx6N2puNUsrS0FBR05ZOEp5a2tIdURnMHhlN3JHNUprcVVCL1ZZMngvdFI5TGtCdkVtTXN1ZDIvS2ZldW1ydFhTdTlkS0ZaTmYvL0VBQlFSQVFBQUFBQUFBQUFBQUFBQUFBQUFBRUQvMmdBSUFRSUJBVDhBQi8vRUFCUVJBUUFBQUFBQUFBQUFBQUFBQUFBQUFFRC8yZ0FJQVFNQkFUOEFCLy9aIn0sMzk1OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5yKHQpLHQuZGVmYXVsdD0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXpOeklnTVRVaVBnb2dJRHh3WVhSb0lHUTlJazB6TkRrdU9DQXhMalJETXpNMExqVXVOQ0F6TVRndU5TQXdJRE13TWlBd2FDMHlMalZqTFRrdU1TQXdMVEU0TGpRdU1TMHlOeTQ0TGpRdE16UXVOU0F4TFRZNExqTWdNeTB4TURJdU15QTBMamN0TVRRZ0xqVXRNamdnTVM0eUxUUXhMalVnTVM0MlF6ZzBJRGN1TnlBME1TNDJJRFV1TXlBd0lESXVNblk0TGpSak5ERXVOaUF6SURnMElEVXVNeUF4TWpndU1pQTBMakVnTVRNdU5TMHVOQ0F5Tnk0MUxURXVNU0EwTVM0MUxURXVOaUF6TXk0NUxURXVOeUEyTnk0NExUTXVOaUF4TURJdU15MDBMamNnT1M0MExTNHpJREU0TGpjdExqUWdNamN1T0MwdU5HZ3lMalZqTVRZdU5TQXdJRE15TGpRdU5DQTBOeTQ0SURFdU5DQTRMalF1TXlBeE5TNDJMamNnTWpJZ01TNHlWakl1TW1NdE5pNDFMUzQxTFRFekxqZ3RMalV0TWpJdU15MHVPSG9pSUdacGJHdzlJaU5tWm1ZaUx6NEtQQzl6ZG1jK0NnPT0ifSwzOTY6ZnVuY3Rpb24oZSx0LG4pe3QuaG90PWZ1bmN0aW9uKGUpe3JldHVybiBlfX0sNDAzOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5yKHQpO24oMzYpLG4oNzIpLG4oMzkpLG4oNTcpLG4oODMpLG4oMjEyKSxuKDg2KSxuKDg0KSxuKDEyNiksbig1OSksbigxNTkpLG4oNzMpLG4oMjkpO3ZhciByPW4oMzE5KSxvPW4ubihyKSxhPW4oMjcpLGk9bi5uKGEpLHM9bigyOCksYz1uLm4ocyksbD1uKDEwNiksdT1uLm4obCksZD1uKDE1NiksZj1uLm4oZCkscD1uKDE1NyksYj1uLm4ocCksbT1uKDEyNSksaD1uLm4obSksZz1uKDUpLHY9bi5uKGcpLHk9big0KSx3PW4ubih5KSx4PW4oNDMpLE89bigzMjkpLGo9bi5uKE8pLGs9bigzMjcpLEE9bigzOTYpLE09big0NCksQz1uKDE2NCksRT1uKDMzMyksUz1uLm4oRSksUj1uKDM0OCksRD1uLm4oUik7ZnVuY3Rpb24gVCgpe3JldHVybihUPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb31mdW5jdGlvbiBQKGUsdCl7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLl9fcHJvdG9fXz10fXZhciBMPW4oMjEwKSxGPW4ubihMKTtmdW5jdGlvbiBfKGUsdCl7cmV0dXJuIGUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMpIit0KyIoPzpcXHN8JCkiLCJnIiksIiQxIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9eXHMqfFxzKiQvZywiIil9dmFyIHo9bigxMDgpLEk9bi5uKHopLFU9ITEsQj13LmEuY3JlYXRlQ29udGV4dChudWxsKSxIPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuKXt2YXIgcjtyPWUuY2FsbCh0aGlzLHQsbil8fHRoaXM7dmFyIG8sYT1uJiYhbi5pc01vdW50aW5nP3QuZW50ZXI6dC5hcHBlYXI7cmV0dXJuIHIuYXBwZWFyU3RhdHVzPW51bGwsdC5pbj9hPyhvPSJleGl0ZWQiLHIuYXBwZWFyU3RhdHVzPSJlbnRlcmluZyIpOm89ImVudGVyZWQiOm89dC51bm1vdW50T25FeGl0fHx0Lm1vdW50T25FbnRlcj8idW5tb3VudGVkIjoiZXhpdGVkIixyLnN0YXRlPXtzdGF0dXM6b30sci5uZXh0Q2FsbGJhY2s9bnVsbCxyfVAodCxlKSx0LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcz1mdW5jdGlvbihlLHQpe3JldHVybiBlLmluJiYidW5tb3VudGVkIj09PXQuc3RhdHVzP3tzdGF0dXM6ImV4aXRlZCJ9Om51bGx9O3ZhciBuPXQucHJvdG90eXBlO3JldHVybiBuLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dGhpcy51cGRhdGVTdGF0dXMoITAsdGhpcy5hcHBlYXJTdGF0dXMpfSxuLmNvbXBvbmVudERpZFVwZGF0ZT1mdW5jdGlvbihlKXt2YXIgdD1udWxsO2lmKGUhPT10aGlzLnByb3BzKXt2YXIgbj10aGlzLnN0YXRlLnN0YXR1czt0aGlzLnByb3BzLmluPyJlbnRlcmluZyIhPT1uJiYiZW50ZXJlZCIhPT1uJiYodD0iZW50ZXJpbmciKToiZW50ZXJpbmciIT09biYmImVudGVyZWQiIT09bnx8KHQ9ImV4aXRpbmciKX10aGlzLnVwZGF0ZVN0YXR1cyghMSx0KX0sbi5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMuY2FuY2VsTmV4dENhbGxiYWNrKCl9LG4uZ2V0VGltZW91dHM9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scj10aGlzLnByb3BzLnRpbWVvdXQ7cmV0dXJuIGU9dD1uPXIsbnVsbCE9ciYmIm51bWJlciIhPT10eXBlb2YgciYmKGU9ci5leGl0LHQ9ci5lbnRlcixuPXZvaWQgMCE9PXIuYXBwZWFyP3IuYXBwZWFyOnQpLHtleGl0OmUsZW50ZXI6dCxhcHBlYXI6bn19LG4udXBkYXRlU3RhdHVzPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09ZSYmKGU9ITEpLG51bGwhPT10Pyh0aGlzLmNhbmNlbE5leHRDYWxsYmFjaygpLCJlbnRlcmluZyI9PT10P3RoaXMucGVyZm9ybUVudGVyKGUpOnRoaXMucGVyZm9ybUV4aXQoKSk6dGhpcy5wcm9wcy51bm1vdW50T25FeGl0JiYiZXhpdGVkIj09PXRoaXMuc3RhdGUuc3RhdHVzJiZ0aGlzLnNldFN0YXRlKHtzdGF0dXM6InVubW91bnRlZCJ9KX0sbi5wZXJmb3JtRW50ZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXRoaXMucHJvcHMuZW50ZXIscj10aGlzLmNvbnRleHQ/dGhpcy5jb250ZXh0LmlzTW91bnRpbmc6ZSxvPXRoaXMucHJvcHMubm9kZVJlZj9bcl06W0kuYS5maW5kRE9NTm9kZSh0aGlzKSxyXSxhPW9bMF0saT1vWzFdLHM9dGhpcy5nZXRUaW1lb3V0cygpLGM9cj9zLmFwcGVhcjpzLmVudGVyOyFlJiYhbnx8VT90aGlzLnNhZmVTZXRTdGF0ZSh7c3RhdHVzOiJlbnRlcmVkIn0sKGZ1bmN0aW9uKCl7dC5wcm9wcy5vbkVudGVyZWQoYSl9KSk6KHRoaXMucHJvcHMub25FbnRlcihhLGkpLHRoaXMuc2FmZVNldFN0YXRlKHtzdGF0dXM6ImVudGVyaW5nIn0sKGZ1bmN0aW9uKCl7dC5wcm9wcy5vbkVudGVyaW5nKGEsaSksdC5vblRyYW5zaXRpb25FbmQoYywoZnVuY3Rpb24oKXt0LnNhZmVTZXRTdGF0ZSh7c3RhdHVzOiJlbnRlcmVkIn0sKGZ1bmN0aW9uKCl7dC5wcm9wcy5vbkVudGVyZWQoYSxpKX0pKX0pKX0pKSl9LG4ucGVyZm9ybUV4aXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5wcm9wcy5leGl0LG49dGhpcy5nZXRUaW1lb3V0cygpLHI9dGhpcy5wcm9wcy5ub2RlUmVmP3ZvaWQgMDpJLmEuZmluZERPTU5vZGUodGhpcyk7dCYmIVU/KHRoaXMucHJvcHMub25FeGl0KHIpLHRoaXMuc2FmZVNldFN0YXRlKHtzdGF0dXM6ImV4aXRpbmcifSwoZnVuY3Rpb24oKXtlLnByb3BzLm9uRXhpdGluZyhyKSxlLm9uVHJhbnNpdGlvbkVuZChuLmV4aXQsKGZ1bmN0aW9uKCl7ZS5zYWZlU2V0U3RhdGUoe3N0YXR1czoiZXhpdGVkIn0sKGZ1bmN0aW9uKCl7ZS5wcm9wcy5vbkV4aXRlZChyKX0pKX0pKX0pKSk6dGhpcy5zYWZlU2V0U3RhdGUoe3N0YXR1czoiZXhpdGVkIn0sKGZ1bmN0aW9uKCl7ZS5wcm9wcy5vbkV4aXRlZChyKX0pKX0sbi5jYW5jZWxOZXh0Q2FsbGJhY2s9ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5uZXh0Q2FsbGJhY2smJih0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwoKSx0aGlzLm5leHRDYWxsYmFjaz1udWxsKX0sbi5zYWZlU2V0U3RhdGU9ZnVuY3Rpb24oZSx0KXt0PXRoaXMuc2V0TmV4dENhbGxiYWNrKHQpLHRoaXMuc2V0U3RhdGUoZSx0KX0sbi5zZXROZXh0Q2FsbGJhY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPSEwO3JldHVybiB0aGlzLm5leHRDYWxsYmFjaz1mdW5jdGlvbihyKXtuJiYobj0hMSx0Lm5leHRDYWxsYmFjaz1udWxsLGUocikpfSx0aGlzLm5leHRDYWxsYmFjay5jYW5jZWw9ZnVuY3Rpb24oKXtuPSExfSx0aGlzLm5leHRDYWxsYmFja30sbi5vblRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLnNldE5leHRDYWxsYmFjayh0KTt2YXIgbj10aGlzLnByb3BzLm5vZGVSZWY/dGhpcy5wcm9wcy5ub2RlUmVmLmN1cnJlbnQ6SS5hLmZpbmRET01Ob2RlKHRoaXMpLHI9bnVsbD09ZSYmIXRoaXMucHJvcHMuYWRkRW5kTGlzdGVuZXI7aWYobiYmIXIpe2lmKHRoaXMucHJvcHMuYWRkRW5kTGlzdGVuZXIpe3ZhciBvPXRoaXMucHJvcHMubm9kZVJlZj9bdGhpcy5uZXh0Q2FsbGJhY2tdOltuLHRoaXMubmV4dENhbGxiYWNrXSxhPW9bMF0saT1vWzFdO3RoaXMucHJvcHMuYWRkRW5kTGlzdGVuZXIoYSxpKX1udWxsIT1lJiZzZXRUaW1lb3V0KHRoaXMubmV4dENhbGxiYWNrLGUpfWVsc2Ugc2V0VGltZW91dCh0aGlzLm5leHRDYWxsYmFjaywwKX0sbi5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnN0YXRlLnN0YXR1cztpZigidW5tb3VudGVkIj09PWUpcmV0dXJuIG51bGw7dmFyIHQ9dGhpcy5wcm9wcyxuPXQuY2hpbGRyZW4scj0odC5pbix0Lm1vdW50T25FbnRlcix0LnVubW91bnRPbkV4aXQsdC5hcHBlYXIsdC5lbnRlcix0LmV4aXQsdC50aW1lb3V0LHQuYWRkRW5kTGlzdGVuZXIsdC5vbkVudGVyLHQub25FbnRlcmluZyx0Lm9uRW50ZXJlZCx0Lm9uRXhpdCx0Lm9uRXhpdGluZyx0Lm9uRXhpdGVkLHQubm9kZVJlZixOKHQsWyJjaGlsZHJlbiIsImluIiwibW91bnRPbkVudGVyIiwidW5tb3VudE9uRXhpdCIsImFwcGVhciIsImVudGVyIiwiZXhpdCIsInRpbWVvdXQiLCJhZGRFbmRMaXN0ZW5lciIsIm9uRW50ZXIiLCJvbkVudGVyaW5nIiwib25FbnRlcmVkIiwib25FeGl0Iiwib25FeGl0aW5nIiwib25FeGl0ZWQiLCJub2RlUmVmIl0pKTtyZXR1cm4gdy5hLmNyZWF0ZUVsZW1lbnQoQi5Qcm92aWRlcix7dmFsdWU6bnVsbH0sImZ1bmN0aW9uIj09PXR5cGVvZiBuP24oZSxyKTp3LmEuY2xvbmVFbGVtZW50KHcuYS5DaGlsZHJlbi5vbmx5KG4pLHIpKX0sdH0ody5hLkNvbXBvbmVudCk7ZnVuY3Rpb24gVygpe31ILmNvbnRleHRUeXBlPUIsSC5wcm9wVHlwZXM9e30sSC5kZWZhdWx0UHJvcHM9e2luOiExLG1vdW50T25FbnRlcjohMSx1bm1vdW50T25FeGl0OiExLGFwcGVhcjohMSxlbnRlcjohMCxleGl0OiEwLG9uRW50ZXI6VyxvbkVudGVyaW5nOlcsb25FbnRlcmVkOlcsb25FeGl0Olcsb25FeGl0aW5nOlcsb25FeGl0ZWQ6V30sSC5VTk1PVU5URUQ9InVubW91bnRlZCIsSC5FWElURUQ9ImV4aXRlZCIsSC5FTlRFUklORz0iZW50ZXJpbmciLEguRU5URVJFRD0iZW50ZXJlZCIsSC5FWElUSU5HPSJleGl0aW5nIjt2YXIgVj1ILHE9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmdCYmdC5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiByPXQsdm9pZCgobj1lKS5jbGFzc0xpc3Q/bi5jbGFzc0xpc3QucmVtb3ZlKHIpOiJzdHJpbmciPT09dHlwZW9mIG4uY2xhc3NOYW1lP24uY2xhc3NOYW1lPV8obi5jbGFzc05hbWUscik6bi5zZXRBdHRyaWJ1dGUoImNsYXNzIixfKG4uY2xhc3NOYW1lJiZuLmNsYXNzTmFtZS5iYXNlVmFsfHwiIixyKSkpO3ZhciBuLHJ9KSl9LFk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe2Zvcih2YXIgdCxuPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkobiksbz0wO288bjtvKyspcltvXT1hcmd1bWVudHNbb107cmV0dXJuKHQ9ZS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdChyKSl8fHRoaXMpLmFwcGxpZWRDbGFzc2VzPXthcHBlYXI6e30sZW50ZXI6e30sZXhpdDp7fX0sdC5vbkVudGVyPWZ1bmN0aW9uKGUsbil7dmFyIHI9dC5yZXNvbHZlQXJndW1lbnRzKGUsbiksbz1yWzBdLGE9clsxXTt0LnJlbW92ZUNsYXNzZXMobywiZXhpdCIpLHQuYWRkQ2xhc3MobyxhPyJhcHBlYXIiOiJlbnRlciIsImJhc2UiKSx0LnByb3BzLm9uRW50ZXImJnQucHJvcHMub25FbnRlcihlLG4pfSx0Lm9uRW50ZXJpbmc9ZnVuY3Rpb24oZSxuKXt2YXIgcj10LnJlc29sdmVBcmd1bWVudHMoZSxuKSxvPXJbMF0sYT1yWzFdPyJhcHBlYXIiOiJlbnRlciI7dC5hZGRDbGFzcyhvLGEsImFjdGl2ZSIpLHQucHJvcHMub25FbnRlcmluZyYmdC5wcm9wcy5vbkVudGVyaW5nKGUsbil9LHQub25FbnRlcmVkPWZ1bmN0aW9uKGUsbil7dmFyIHI9dC5yZXNvbHZlQXJndW1lbnRzKGUsbiksbz1yWzBdLGE9clsxXT8iYXBwZWFyIjoiZW50ZXIiO3QucmVtb3ZlQ2xhc3NlcyhvLGEpLHQuYWRkQ2xhc3MobyxhLCJkb25lIiksdC5wcm9wcy5vbkVudGVyZWQmJnQucHJvcHMub25FbnRlcmVkKGUsbil9LHQub25FeGl0PWZ1bmN0aW9uKGUpe3ZhciBuPXQucmVzb2x2ZUFyZ3VtZW50cyhlKVswXTt0LnJlbW92ZUNsYXNzZXMobiwiYXBwZWFyIiksdC5yZW1vdmVDbGFzc2VzKG4sImVudGVyIiksdC5hZGRDbGFzcyhuLCJleGl0IiwiYmFzZSIpLHQucHJvcHMub25FeGl0JiZ0LnByb3BzLm9uRXhpdChlKX0sdC5vbkV4aXRpbmc9ZnVuY3Rpb24oZSl7dmFyIG49dC5yZXNvbHZlQXJndW1lbnRzKGUpWzBdO3QuYWRkQ2xhc3MobiwiZXhpdCIsImFjdGl2ZSIpLHQucHJvcHMub25FeGl0aW5nJiZ0LnByb3BzLm9uRXhpdGluZyhlKX0sdC5vbkV4aXRlZD1mdW5jdGlvbihlKXt2YXIgbj10LnJlc29sdmVBcmd1bWVudHMoZSlbMF07dC5yZW1vdmVDbGFzc2VzKG4sImV4aXQiKSx0LmFkZENsYXNzKG4sImV4aXQiLCJkb25lIiksdC5wcm9wcy5vbkV4aXRlZCYmdC5wcm9wcy5vbkV4aXRlZChlKX0sdC5yZXNvbHZlQXJndW1lbnRzPWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQucHJvcHMubm9kZVJlZj9bdC5wcm9wcy5ub2RlUmVmLmN1cnJlbnQsZV06W2Usbl19LHQuZ2V0Q2xhc3NOYW1lcz1mdW5jdGlvbihlKXt2YXIgbj10LnByb3BzLmNsYXNzTmFtZXMscj0ic3RyaW5nIj09PXR5cGVvZiBuLG89cj8iIisociYmbj9uKyItIjoiIikrZTpuW2VdO3JldHVybntiYXNlQ2xhc3NOYW1lOm8sYWN0aXZlQ2xhc3NOYW1lOnI/bysiLWFjdGl2ZSI6bltlKyJBY3RpdmUiXSxkb25lQ2xhc3NOYW1lOnI/bysiLWRvbmUiOm5bZSsiRG9uZSJdfX0sdH1QKHQsZSk7dmFyIG49dC5wcm90b3R5cGU7cmV0dXJuIG4uYWRkQ2xhc3M9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuZ2V0Q2xhc3NOYW1lcyh0KVtuKyJDbGFzc05hbWUiXSxvPXRoaXMuZ2V0Q2xhc3NOYW1lcygiZW50ZXIiKS5kb25lQ2xhc3NOYW1lOyJhcHBlYXIiPT09dCYmImRvbmUiPT09biYmbyYmKHIrPSIgIitvKSwiYWN0aXZlIj09PW4mJmUmJmUuc2Nyb2xsVG9wLHImJih0aGlzLmFwcGxpZWRDbGFzc2VzW3RdW25dPXIsZnVuY3Rpb24oZSx0KXtlJiZ0JiZ0LnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHI9dCx2b2lkKChuPWUpLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5hZGQocik6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5jbGFzc0xpc3Q/ISF0JiZlLmNsYXNzTGlzdC5jb250YWlucyh0KTotMSE9PSgiICIrKGUuY2xhc3NOYW1lLmJhc2VWYWx8fGUuY2xhc3NOYW1lKSsiICIpLmluZGV4T2YoIiAiK3QrIiAiKX0obixyKXx8KCJzdHJpbmciPT09dHlwZW9mIG4uY2xhc3NOYW1lP24uY2xhc3NOYW1lPW4uY2xhc3NOYW1lKyIgIityOm4uc2V0QXR0cmlidXRlKCJjbGFzcyIsKG4uY2xhc3NOYW1lJiZuLmNsYXNzTmFtZS5iYXNlVmFsfHwiIikrIiAiK3IpKSk7dmFyIG4scn0pKX0oZSxyKSl9LG4ucmVtb3ZlQ2xhc3Nlcz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuYXBwbGllZENsYXNzZXNbdF0scj1uLmJhc2Usbz1uLmFjdGl2ZSxhPW4uZG9uZTt0aGlzLmFwcGxpZWRDbGFzc2VzW3RdPXt9LHImJnEoZSxyKSxvJiZxKGUsbyksYSYmcShlLGEpfSxuLnJlbmRlcj1mdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMsdD0oZS5jbGFzc05hbWVzLE4oZSxbImNsYXNzTmFtZXMiXSkpO3JldHVybiB3LmEuY3JlYXRlRWxlbWVudChWLFQoe30sdCx7b25FbnRlcjp0aGlzLm9uRW50ZXIsb25FbnRlcmVkOnRoaXMub25FbnRlcmVkLG9uRW50ZXJpbmc6dGhpcy5vbkVudGVyaW5nLG9uRXhpdDp0aGlzLm9uRXhpdCxvbkV4aXRpbmc6dGhpcy5vbkV4aXRpbmcsb25FeGl0ZWQ6dGhpcy5vbkV4aXRlZH0pKX0sdH0ody5hLkNvbXBvbmVudCk7WS5kZWZhdWx0UHJvcHM9e2NsYXNzTmFtZXM6IiJ9LFkucHJvcFR5cGVzPXt9O3ZhciBHPVksUT1mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KE0uZCkoRyxvKCkoe30sZSx7aW46ZS5pbix0aW1lb3V0OmUudGltZW91dCxjbGFzc05hbWVzOmUuY2xhc3NOYW1lcyxtb3VudE9uRW50ZXI6ITAsdW5tb3VudE9uRXhpdDohMCxhcHBlYXI6ITB9KSxlLmNoaWxkcmVuKX07US5kZWZhdWx0UHJvcHM9e3RpbWVvdXQ6MjAwfTt2YXIgSz1RLFo9KG4oNTYpLG4oNDUpKSxYPW4ubihaKTtmdW5jdGlvbiAkKGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihvLGEpe2Z1bmN0aW9uIGkoZSl7dHJ5e2Moci5uZXh0KGUpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBzKGUpe3RyeXtjKHIudGhyb3coZSkpfWNhdGNoKHQpe2EodCl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ7ZS5kb25lP28oZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKGkscyl9Yygocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfWZ1bmN0aW9uIEooZSx0KXt2YXIgbixyLG8sYSxpPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJihhW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGE7ZnVuY3Rpb24gcyhhKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKGEpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7aTspdHJ5e2lmKG49MSxyJiYobz0yJmFbMF0/ci5yZXR1cm46YVswXT9yLnRocm93fHwoKG89ci5yZXR1cm4pJiZvLmNhbGwociksMCk6ci5uZXh0KSYmIShvPW8uY2FsbChyLGFbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChyPTAsbyYmKGE9WzImYVswXSxvLnZhbHVlXSksYVswXSl7Y2FzZSAwOmNhc2UgMTpvPWE7YnJlYWs7Y2FzZSA0OnJldHVybiBpLmxhYmVsKysse3ZhbHVlOmFbMV0sZG9uZTohMX07Y2FzZSA1OmkubGFiZWwrKyxyPWFbMV0sYT1bMF07Y29udGludWU7Y2FzZSA3OmE9aS5vcHMucG9wKCksaS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPShvPWkudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoNj09PWFbMF18fDI9PT1hWzBdKSl7aT0wO2NvbnRpbnVlfWlmKDM9PT1hWzBdJiYoIW98fGFbMV0+b1swXSYmYVsxXTxvWzNdKSl7aS5sYWJlbD1hWzFdO2JyZWFrfWlmKDY9PT1hWzBdJiZpLmxhYmVsPG9bMV0pe2kubGFiZWw9b1sxXSxvPWE7YnJlYWt9aWYobyYmaS5sYWJlbDxvWzJdKXtpLmxhYmVsPW9bMl0saS5vcHMucHVzaChhKTticmVha31vWzJdJiZpLm9wcy5wb3AoKSxpLnRyeXMucG9wKCk7Y29udGludWV9YT10LmNhbGwoZSxpKX1jYXRjaChzKXthPVs2LHNdLHI9MH1maW5hbGx5e249bz0wfWlmKDUmYVswXSl0aHJvdyBhWzFdO3JldHVybnt2YWx1ZTphWzBdP2FbMV06dm9pZCAwLGRvbmU6ITB9fShbYSxzXSl9fX1PYmplY3QuY3JlYXRlO2Z1bmN0aW9uIGVlKGUsdCl7dmFyIG49ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gZTt2YXIgcixvLGE9bi5jYWxsKGUpLGk9W107dHJ5e2Zvcig7KHZvaWQgMD09PXR8fHQtLSA+MCkmJiEocj1hLm5leHQoKSkuZG9uZTspaS5wdXNoKHIudmFsdWUpfWNhdGNoKHMpe289e2Vycm9yOnN9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihuPWEucmV0dXJuKSYmbi5jYWxsKGEpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gaX1PYmplY3QuY3JlYXRlO3ZhciB0ZT1uZXcgTWFwKFtbImF2aSIsInZpZGVvL2F2aSJdLFsiZ2lmIiwiaW1hZ2UvZ2lmIl0sWyJpY28iLCJpbWFnZS94LWljb24iXSxbImpwZWciLCJpbWFnZS9qcGVnIl0sWyJqcGciLCJpbWFnZS9qcGVnIl0sWyJta3YiLCJ2aWRlby94LW1hdHJvc2thIl0sWyJtb3YiLCJ2aWRlby9xdWlja3RpbWUiXSxbIm1wNCIsInZpZGVvL21wNCJdLFsicGRmIiwiYXBwbGljYXRpb24vcGRmIl0sWyJwbmciLCJpbWFnZS9wbmciXSxbInppcCIsImFwcGxpY2F0aW9uL3ppcCJdLFsiZG9jIiwiYXBwbGljYXRpb24vbXN3b3JkIl0sWyJkb2N4IiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQiXV0pO2Z1bmN0aW9uIG5lKGUsdCl7dmFyIG49ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uYW1lO2lmKHQmJi0xIT09dC5sYXN0SW5kZXhPZigiLiIpJiYhZS50eXBlKXt2YXIgbj10LnNwbGl0KCIuIikucG9wKCkudG9Mb3dlckNhc2UoKSxyPXRlLmdldChuKTtyJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidHlwZSIse3ZhbHVlOnIsd3JpdGFibGU6ITEsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITB9KX1yZXR1cm4gZX0oZSk7aWYoInN0cmluZyIhPT10eXBlb2Ygbi5wYXRoKXt2YXIgcj1lLndlYmtpdFJlbGF0aXZlUGF0aDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicGF0aCIse3ZhbHVlOiJzdHJpbmciPT09dHlwZW9mIHQ/dDoic3RyaW5nIj09PXR5cGVvZiByJiZyLmxlbmd0aD4wP3I6ZS5uYW1lLHdyaXRhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwfSl9cmV0dXJuIG59dmFyIHJlPVsiLkRTX1N0b3JlIiwiVGh1bWJzLmRiIl07ZnVuY3Rpb24gb2UoZSl7cmV0dXJuKG51bGwhPT1lLnRhcmdldCYmZS50YXJnZXQuZmlsZXM/c2UoZS50YXJnZXQuZmlsZXMpOltdKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBuZShlKX0pKX1mdW5jdGlvbiBhZShlLHQpe3JldHVybiAkKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgbjtyZXR1cm4gSih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybiBlLml0ZW1zPyhuPXNlKGUuaXRlbXMpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuImZpbGUiPT09ZS5raW5kfSkpLCJkcm9wIiE9PXQ/WzIsbl06WzQsUHJvbWlzZS5hbGwobi5tYXAoY2UpKV0pOlszLDJdO2Nhc2UgMTpyZXR1cm5bMixpZShsZShyLnNlbnQoKSkpXTtjYXNlIDI6cmV0dXJuWzIsaWUoc2UoZS5maWxlcykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbmUoZSl9KSkpXX19KSl9KSl9ZnVuY3Rpb24gaWUoZSl7cmV0dXJuIGUuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4tMT09PXJlLmluZGV4T2YoZS5uYW1lKX0pKX1mdW5jdGlvbiBzZShlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3QucHVzaChyKX1yZXR1cm4gdH1mdW5jdGlvbiBjZShlKXtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGUud2Via2l0R2V0QXNFbnRyeSlyZXR1cm4gdWUoZSk7dmFyIHQ9ZS53ZWJraXRHZXRBc0VudHJ5KCk7cmV0dXJuIHQmJnQuaXNEaXJlY3Rvcnk/ZmUodCk6dWUoZSl9ZnVuY3Rpb24gbGUoZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllPWUuY29uY2F0KGVlKGFyZ3VtZW50c1t0XSkpO3JldHVybiBlfShlLEFycmF5LmlzQXJyYXkodCk/bGUodCk6W3RdKX0pLFtdKX1mdW5jdGlvbiB1ZShlKXt2YXIgdD1lLmdldEFzRmlsZSgpO2lmKCF0KXJldHVybiBQcm9taXNlLnJlamVjdChlKyIgaXMgbm90IGEgRmlsZSIpO3ZhciBuPW5lKHQpO3JldHVybiBQcm9taXNlLnJlc29sdmUobil9ZnVuY3Rpb24gZGUoZSl7cmV0dXJuICQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBKKHRoaXMsKGZ1bmN0aW9uKHQpe3JldHVyblsyLGUuaXNEaXJlY3Rvcnk/ZmUoZSk6cGUoZSldfSkpfSkpfWZ1bmN0aW9uIGZlKGUpe3ZhciB0PWUuY3JlYXRlUmVhZGVyKCk7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlLG4pe3ZhciByPVtdOyFmdW5jdGlvbiBvKCl7dmFyIGE9dGhpczt0LnJlYWRFbnRyaWVzKChmdW5jdGlvbih0KXtyZXR1cm4gJChhLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIGEsaSxzO3JldHVybiBKKHRoaXMsKGZ1bmN0aW9uKGMpe3N3aXRjaChjLmxhYmVsKXtjYXNlIDA6aWYodC5sZW5ndGgpcmV0dXJuWzMsNV07Yy5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gYy50cnlzLnB1c2goWzEsMywsNF0pLFs0LFByb21pc2UuYWxsKHIpXTtjYXNlIDI6cmV0dXJuIGE9Yy5zZW50KCksZShhKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGk9Yy5zZW50KCksbihpKSxbMyw0XTtjYXNlIDQ6cmV0dXJuWzMsNl07Y2FzZSA1OnM9UHJvbWlzZS5hbGwodC5tYXAoZGUpKSxyLnB1c2gocyksbygpLGMubGFiZWw9NjtjYXNlIDY6cmV0dXJuWzJdfX0pKX0pKX0pLChmdW5jdGlvbihlKXtuKGUpfSkpfSgpfSkpfWZ1bmN0aW9uIHBlKGUpe3JldHVybiAkKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gSih0aGlzLChmdW5jdGlvbih0KXtyZXR1cm5bMixuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxuKXtlLmZpbGUoKGZ1bmN0aW9uKG4pe3ZhciByPW5lKG4sZS5mdWxsUGF0aCk7dChyKX0pLChmdW5jdGlvbihlKXtuKGUpfSkpfSkpXX0pKX0pKX12YXIgYmU9bigzNDkpLG1lPW4ubihiZSk7ZnVuY3Rpb24gaGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgbj1bXSxyPSEwLG89ITEsYT12b2lkIDA7dHJ5e2Zvcih2YXIgaSxzPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0oaT1zLm5leHQoKSkuZG9uZSkmJihuLnB1c2goaS52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7cj0hMCk7fWNhdGNoKGMpe289ITAsYT1jfWZpbmFsbHl7dHJ5e3J8fG51bGw9PXMucmV0dXJufHxzLnJldHVybigpfWZpbmFsbHl7aWYobyl0aHJvdyBhfX1yZXR1cm4gbn0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm47aWYoInN0cmluZyI9PT10eXBlb2YgZSlyZXR1cm4gZ2UoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7Ik9iamVjdCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpO2lmKCJNYXAiPT09bnx8IlNldCI9PT1uKXJldHVybiBBcnJheS5mcm9tKGUpO2lmKCJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIGdlKGUsdCl9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBnZShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciB2ZT1mdW5jdGlvbihlKXtlPUFycmF5LmlzQXJyYXkoZSkmJjE9PT1lLmxlbmd0aD9lWzBdOmU7dmFyIHQ9QXJyYXkuaXNBcnJheShlKT8ib25lIG9mICIuY29uY2F0KGUuam9pbigiLCAiKSk6ZTtyZXR1cm57Y29kZToiZmlsZS1pbnZhbGlkLXR5cGUiLG1lc3NhZ2U6IkZpbGUgdHlwZSBtdXN0IGJlICIuY29uY2F0KHQpfX0seWU9ZnVuY3Rpb24oZSl7cmV0dXJue2NvZGU6ImZpbGUtdG9vLWxhcmdlIixtZXNzYWdlOiJGaWxlIGlzIGxhcmdlciB0aGFuICIuY29uY2F0KGUsIiBieXRlcyIpfX0sd2U9ZnVuY3Rpb24oZSl7cmV0dXJue2NvZGU6ImZpbGUtdG9vLXNtYWxsIixtZXNzYWdlOiJGaWxlIGlzIHNtYWxsZXIgdGhhbiAiLmNvbmNhdChlLCIgYnl0ZXMiKX19LHhlPXtjb2RlOiJ0b28tbWFueS1maWxlcyIsbWVzc2FnZToiVG9vIG1hbnkgZmlsZXMifTtmdW5jdGlvbiBPZShlLHQpe3ZhciBuPSJhcHBsaWNhdGlvbi94LW1vei1maWxlIj09PWUudHlwZXx8bWUoKShlLHQpO3JldHVybltuLG4/bnVsbDp2ZSh0KV19ZnVuY3Rpb24gamUoZSx0LG4pe2lmKGtlKGUuc2l6ZSkpaWYoa2UodCkmJmtlKG4pKXtpZihlLnNpemU+bilyZXR1cm5bITEseWUobildO2lmKGUuc2l6ZTx0KXJldHVyblshMSx3ZSh0KV19ZWxzZXtpZihrZSh0KSYmZS5zaXplPHQpcmV0dXJuWyExLHdlKHQpXTtpZihrZShuKSYmZS5zaXplPm4pcmV0dXJuWyExLHllKG4pXX1yZXR1cm5bITAsbnVsbF19ZnVuY3Rpb24ga2UoZSl7cmV0dXJuIHZvaWQgMCE9PWUmJm51bGwhPT1lfWZ1bmN0aW9uIEFlKGUpe3ZhciB0PWUuZmlsZXMsbj1lLmFjY2VwdCxyPWUubWluU2l6ZSxvPWUubWF4U2l6ZSxhPWUubXVsdGlwbGUsaT1lLm1heEZpbGVzO3JldHVybiEoIWEmJnQubGVuZ3RoPjF8fGEmJmk+PTEmJnQubGVuZ3RoPmkpJiZ0LmV2ZXJ5KChmdW5jdGlvbihlKXt2YXIgdD1oZShPZShlLG4pLDEpWzBdLGE9aGUoamUoZSxyLG8pLDEpWzBdO3JldHVybiB0JiZhfSkpfWZ1bmN0aW9uIE1lKGUpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZD9lLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk6InVuZGVmaW5lZCIhPT10eXBlb2YgZS5jYW5jZWxCdWJibGUmJmUuY2FuY2VsQnViYmxlfWZ1bmN0aW9uIENlKGUpe3JldHVybiBlLmRhdGFUcmFuc2Zlcj9BcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGUuZGF0YVRyYW5zZmVyLnR5cGVzLChmdW5jdGlvbihlKXtyZXR1cm4iRmlsZXMiPT09ZXx8ImFwcGxpY2F0aW9uL3gtbW96LWZpbGUiPT09ZX0pKTohIWUudGFyZ2V0JiYhIWUudGFyZ2V0LmZpbGVzfWZ1bmN0aW9uIEVlKGUpe2UucHJldmVudERlZmF1bHQoKX1mdW5jdGlvbiBTZShlKXtyZXR1cm4tMSE9PWUuaW5kZXhPZigiTVNJRSIpfHwtMSE9PWUuaW5kZXhPZigiVHJpZGVudC8iKX1mdW5jdGlvbiBSZShlKXtyZXR1cm4tMSE9PWUuaW5kZXhPZigiRWRnZS8iKX1mdW5jdGlvbiBEZSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDtyZXR1cm4gU2UoZSl8fFJlKGUpfWZ1bmN0aW9uIFRlKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KG4+MT9uLTE6MCksbz0xO288bjtvKyspcltvLTFdPWFyZ3VtZW50c1tvXTtyZXR1cm4gdC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hTWUoZSkmJnQmJnQuYXBwbHkodm9pZCAwLFtlXS5jb25jYXQocikpLE1lKGUpfSkpfX1mdW5jdGlvbiBOZShlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gRmUoZSl9KGUpfHxmdW5jdGlvbihlKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHxMZShlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBQZShlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBTeW1ib2x8fCEoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSkpcmV0dXJuO3ZhciBuPVtdLHI9ITAsbz0hMSxhPXZvaWQgMDt0cnl7Zm9yKHZhciBpLHM9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShyPShpPXMubmV4dCgpKS5kb25lKSYmKG4ucHVzaChpLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtyPSEwKTt9Y2F0Y2goYyl7bz0hMCxhPWN9ZmluYWxseXt0cnl7cnx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGF9fXJldHVybiBufShlLHQpfHxMZShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gTGUoZSx0KXtpZihlKXtpZigic3RyaW5nIj09PXR5cGVvZiBlKXJldHVybiBGZShlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP0ZlKGUsdCk6dm9pZCAwfX1mdW5jdGlvbiBGZShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIF9lKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB6ZShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9fZShPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe0llKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpfZShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBJZShlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gVWUoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfXZhciBCZT1PYmplY3QoeS5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNoaWxkcmVuLHI9VmUoVWUoZSxbImNoaWxkcmVuIl0pKSxvPXIub3BlbixhPVVlKHIsWyJvcGVuIl0pO3JldHVybiBPYmplY3QoeS51c2VJbXBlcmF0aXZlSGFuZGxlKSh0LChmdW5jdGlvbigpe3JldHVybntvcGVuOm99fSksW29dKSx3LmEuY3JlYXRlRWxlbWVudCh5LkZyYWdtZW50LG51bGwsbih6ZSh6ZSh7fSxhKSx7fSx7b3BlbjpvfSkpKX0pKTtCZS5kaXNwbGF5TmFtZT0iRHJvcHpvbmUiO3ZhciBIZT17ZGlzYWJsZWQ6ITEsZ2V0RmlsZXNGcm9tRXZlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuICQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBKKHRoaXMsKGZ1bmN0aW9uKHQpe3JldHVyblsyLChuPWUsbi5kYXRhVHJhbnNmZXImJmUuZGF0YVRyYW5zZmVyP2FlKGUuZGF0YVRyYW5zZmVyLGUudHlwZSk6b2UoZSkpXTt2YXIgbn0pKX0pKX0sbWF4U2l6ZToxLzAsbWluU2l6ZTowLG11bHRpcGxlOiEwLG1heEZpbGVzOjAscHJldmVudERyb3BPbkRvY3VtZW50OiEwLG5vQ2xpY2s6ITEsbm9LZXlib2FyZDohMSxub0RyYWc6ITEsbm9EcmFnRXZlbnRzQnViYmxpbmc6ITEsdmFsaWRhdG9yOm51bGx9O0JlLmRlZmF1bHRQcm9wcz1IZSxCZS5wcm9wVHlwZXM9e2NoaWxkcmVuOkYuYS5mdW5jLGFjY2VwdDpGLmEub25lT2ZUeXBlKFtGLmEuc3RyaW5nLEYuYS5hcnJheU9mKEYuYS5zdHJpbmcpXSksbXVsdGlwbGU6Ri5hLmJvb2wscHJldmVudERyb3BPbkRvY3VtZW50OkYuYS5ib29sLG5vQ2xpY2s6Ri5hLmJvb2wsbm9LZXlib2FyZDpGLmEuYm9vbCxub0RyYWc6Ri5hLmJvb2wsbm9EcmFnRXZlbnRzQnViYmxpbmc6Ri5hLmJvb2wsbWluU2l6ZTpGLmEubnVtYmVyLG1heFNpemU6Ri5hLm51bWJlcixtYXhGaWxlczpGLmEubnVtYmVyLGRpc2FibGVkOkYuYS5ib29sLGdldEZpbGVzRnJvbUV2ZW50OkYuYS5mdW5jLG9uRmlsZURpYWxvZ0NhbmNlbDpGLmEuZnVuYyxvbkRyYWdFbnRlcjpGLmEuZnVuYyxvbkRyYWdMZWF2ZTpGLmEuZnVuYyxvbkRyYWdPdmVyOkYuYS5mdW5jLG9uRHJvcDpGLmEuZnVuYyxvbkRyb3BBY2NlcHRlZDpGLmEuZnVuYyxvbkRyb3BSZWplY3RlZDpGLmEuZnVuYyx2YWxpZGF0b3I6Ri5hLmZ1bmN9O3ZhciBXZT17aXNGb2N1c2VkOiExLGlzRmlsZURpYWxvZ0FjdGl2ZTohMSxpc0RyYWdBY3RpdmU6ITEsaXNEcmFnQWNjZXB0OiExLGlzRHJhZ1JlamVjdDohMSxkcmFnZ2VkRmlsZXM6W10sYWNjZXB0ZWRGaWxlczpbXSxmaWxlUmVqZWN0aW9uczpbXX07ZnVuY3Rpb24gVmUoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sdD16ZSh6ZSh7fSxIZSksZSksbj10LmFjY2VwdCxyPXQuZGlzYWJsZWQsbz10LmdldEZpbGVzRnJvbUV2ZW50LGE9dC5tYXhTaXplLGk9dC5taW5TaXplLHM9dC5tdWx0aXBsZSxjPXQubWF4RmlsZXMsbD10Lm9uRHJhZ0VudGVyLHU9dC5vbkRyYWdMZWF2ZSxkPXQub25EcmFnT3ZlcixmPXQub25Ecm9wLHA9dC5vbkRyb3BBY2NlcHRlZCxiPXQub25Ecm9wUmVqZWN0ZWQsbT10Lm9uRmlsZURpYWxvZ0NhbmNlbCxoPXQucHJldmVudERyb3BPbkRvY3VtZW50LGc9dC5ub0NsaWNrLHY9dC5ub0tleWJvYXJkLHc9dC5ub0RyYWcseD10Lm5vRHJhZ0V2ZW50c0J1YmJsaW5nLE89dC52YWxpZGF0b3Isaj1PYmplY3QoeS51c2VSZWYpKG51bGwpLGs9T2JqZWN0KHkudXNlUmVmKShudWxsKSxBPU9iamVjdCh5LnVzZVJlZHVjZXIpKHFlLFdlKSxNPVBlKEEsMiksQz1NWzBdLEU9TVsxXSxTPUMuaXNGb2N1c2VkLFI9Qy5pc0ZpbGVEaWFsb2dBY3RpdmUsRD1DLmRyYWdnZWRGaWxlcyxUPU9iamVjdCh5LnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXtrLmN1cnJlbnQmJihFKHt0eXBlOiJvcGVuRGlhbG9nIn0pLGsuY3VycmVudC52YWx1ZT1udWxsLGsuY3VycmVudC5jbGljaygpKX0pLFtFXSksTj1mdW5jdGlvbigpe1ImJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ay5jdXJyZW50JiYoay5jdXJyZW50LmZpbGVzLmxlbmd0aHx8KEUoe3R5cGU6ImNsb3NlRGlhbG9nIn0pLCJmdW5jdGlvbiI9PT10eXBlb2YgbSYmbSgpKSl9KSwzMDApfTtPYmplY3QoeS51c2VFZmZlY3QpKChmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLE4sITEpLGZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixOLCExKX19KSxbayxSLG1dKTt2YXIgUD1PYmplY3QoeS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKGUpe2ouY3VycmVudCYmai5jdXJyZW50LmlzRXF1YWxOb2RlKGUudGFyZ2V0KSYmKDMyIT09ZS5rZXlDb2RlJiYxMyE9PWUua2V5Q29kZXx8KGUucHJldmVudERlZmF1bHQoKSxUKCkpKX0pLFtqLGtdKSxMPU9iamVjdCh5LnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXtFKHt0eXBlOiJmb2N1cyJ9KX0pLFtdKSxGPU9iamVjdCh5LnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXtFKHt0eXBlOiJibHVyIn0pfSksW10pLF89T2JqZWN0KHkudXNlQ2FsbGJhY2spKChmdW5jdGlvbigpe2d8fChEZSgpP3NldFRpbWVvdXQoVCwwKTpUKCkpfSksW2ssZ10pLHo9T2JqZWN0KHkudXNlUmVmKShbXSksST1mdW5jdGlvbihlKXtqLmN1cnJlbnQmJmouY3VycmVudC5jb250YWlucyhlLnRhcmdldCl8fChlLnByZXZlbnREZWZhdWx0KCksei5jdXJyZW50PVtdKX07T2JqZWN0KHkudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtyZXR1cm4gaCYmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixFZSwhMSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsSSwhMSkpLGZ1bmN0aW9uKCl7aCYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixFZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJvcCIsSSkpfX0pLFtqLGhdKTt2YXIgVT1PYmplY3QoeS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnBlcnNpc3QoKSxHKGUpLHouY3VycmVudD1bXS5jb25jYXQoTmUoei5jdXJyZW50KSxbZS50YXJnZXRdKSxDZShlKSYmUHJvbWlzZS5yZXNvbHZlKG8oZSkpLnRoZW4oKGZ1bmN0aW9uKHQpe01lKGUpJiYheHx8KEUoe2RyYWdnZWRGaWxlczp0LGlzRHJhZ0FjdGl2ZTohMCx0eXBlOiJzZXREcmFnZ2VkRmlsZXMifSksbCYmbChlKSl9KSl9KSxbbyxsLHhdKSxCPU9iamVjdCh5LnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oZSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLGUucGVyc2lzdCgpLEcoZSksZS5kYXRhVHJhbnNmZXIpdHJ5e2UuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9ImNvcHkifWNhdGNoKHQpe31yZXR1cm4gQ2UoZSkmJmQmJmQoZSksITF9KSxbZCx4XSksSD1PYmplY3QoeS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnBlcnNpc3QoKSxHKGUpO3ZhciB0PXouY3VycmVudC5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBqLmN1cnJlbnQmJmouY3VycmVudC5jb250YWlucyhlKX0pKSxuPXQuaW5kZXhPZihlLnRhcmdldCk7LTEhPT1uJiZ0LnNwbGljZShuLDEpLHouY3VycmVudD10LHQubGVuZ3RoPjB8fChFKHtpc0RyYWdBY3RpdmU6ITEsdHlwZToic2V0RHJhZ2dlZEZpbGVzIixkcmFnZ2VkRmlsZXM6W119KSxDZShlKSYmdSYmdShlKSl9KSxbaix1LHhdKSxXPU9iamVjdCh5LnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUucGVyc2lzdCgpLEcoZSksei5jdXJyZW50PVtdLENlKGUpJiZQcm9taXNlLnJlc29sdmUobyhlKSkudGhlbigoZnVuY3Rpb24odCl7aWYoIU1lKGUpfHx4KXt2YXIgcj1bXSxvPVtdO3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9UGUoT2UoZSxuKSwyKSxzPXRbMF0sYz10WzFdLGw9UGUoamUoZSxpLGEpLDIpLHU9bFswXSxkPWxbMV0sZj1PP08oZSk6bnVsbDtpZihzJiZ1JiYhZilyLnB1c2goZSk7ZWxzZXt2YXIgcD1bYyxkXTtmJiYocD1wLmNvbmNhdChmKSksby5wdXNoKHtmaWxlOmUsZXJyb3JzOnAuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX0pfX0pKSwoIXMmJnIubGVuZ3RoPjF8fHMmJmM+PTEmJnIubGVuZ3RoPmMpJiYoci5mb3JFYWNoKChmdW5jdGlvbihlKXtvLnB1c2goe2ZpbGU6ZSxlcnJvcnM6W3hlXX0pfSkpLHIuc3BsaWNlKDApKSxFKHthY2NlcHRlZEZpbGVzOnIsZmlsZVJlamVjdGlvbnM6byx0eXBlOiJzZXRGaWxlcyJ9KSxmJiZmKHIsbyxlKSxvLmxlbmd0aD4wJiZiJiZiKG8sZSksci5sZW5ndGg+MCYmcCYmcChyLGUpfX0pKSxFKHt0eXBlOiJyZXNldCJ9KX0pLFtzLG4saSxhLGMsbyxmLHAsYix4XSksVj1mdW5jdGlvbihlKXtyZXR1cm4gcj9udWxsOmV9LHE9ZnVuY3Rpb24oZSl7cmV0dXJuIHY/bnVsbDpWKGUpfSxZPWZ1bmN0aW9uKGUpe3JldHVybiB3P251bGw6VihlKX0sRz1mdW5jdGlvbihlKXt4JiZlLnN0b3BQcm9wYWdhdGlvbigpfSxRPU9iamVjdCh5LnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSx0PWUucmVmS2V5LG49dm9pZCAwPT09dD8icmVmIjp0LG89ZS5vbktleURvd24sYT1lLm9uRm9jdXMsaT1lLm9uQmx1cixzPWUub25DbGljayxjPWUub25EcmFnRW50ZXIsbD1lLm9uRHJhZ092ZXIsdT1lLm9uRHJhZ0xlYXZlLGQ9ZS5vbkRyb3AsZj1VZShlLFsicmVmS2V5Iiwib25LZXlEb3duIiwib25Gb2N1cyIsIm9uQmx1ciIsIm9uQ2xpY2siLCJvbkRyYWdFbnRlciIsIm9uRHJhZ092ZXIiLCJvbkRyYWdMZWF2ZSIsIm9uRHJvcCJdKTtyZXR1cm4gemUoemUoSWUoe29uS2V5RG93bjpxKFRlKG8sUCkpLG9uRm9jdXM6cShUZShhLEwpKSxvbkJsdXI6cShUZShpLEYpKSxvbkNsaWNrOlYoVGUocyxfKSksb25EcmFnRW50ZXI6WShUZShjLFUpKSxvbkRyYWdPdmVyOlkoVGUobCxCKSksb25EcmFnTGVhdmU6WShUZSh1LEgpKSxvbkRyb3A6WShUZShkLFcpKX0sbixqKSxyfHx2P3t9Ont0YWJJbmRleDowfSksZil9fSksW2osUCxMLEYsXyxVLEIsSCxXLHYsdyxyXSksSz1PYmplY3QoeS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCl9KSxbXSksWj1PYmplY3QoeS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sdD1lLnJlZktleSxyPXZvaWQgMD09PXQ/InJlZiI6dCxvPWUub25DaGFuZ2UsYT1lLm9uQ2xpY2ssaT1VZShlLFsicmVmS2V5Iiwib25DaGFuZ2UiLCJvbkNsaWNrIl0pLGM9SWUoe2FjY2VwdDpuLG11bHRpcGxlOnMsdHlwZToiZmlsZSIsc3R5bGU6e2Rpc3BsYXk6Im5vbmUifSxvbkNoYW5nZTpWKFRlKG8sVykpLG9uQ2xpY2s6VihUZShhLEspKSxhdXRvQ29tcGxldGU6Im9mZiIsdGFiSW5kZXg6LTF9LHIsayk7cmV0dXJuIHplKHplKHt9LGMpLGkpfX0pLFtrLG4scyxXLHJdKSxYPUQubGVuZ3RoLCQ9WD4wJiZBZSh7ZmlsZXM6RCxhY2NlcHQ6bixtaW5TaXplOmksbWF4U2l6ZTphLG11bHRpcGxlOnMsbWF4RmlsZXM6Y30pLEo9WD4wJiYhJDtyZXR1cm4gemUoemUoe30sQykse30se2lzRHJhZ0FjY2VwdDokLGlzRHJhZ1JlamVjdDpKLGlzRm9jdXNlZDpTJiYhcixnZXRSb290UHJvcHM6USxnZXRJbnB1dFByb3BzOloscm9vdFJlZjpqLGlucHV0UmVmOmssb3BlbjpWKFQpfSl9ZnVuY3Rpb24gcWUoZSx0KXtzd2l0Y2godC50eXBlKXtjYXNlImZvY3VzIjpyZXR1cm4gemUoemUoe30sZSkse30se2lzRm9jdXNlZDohMH0pO2Nhc2UiYmx1ciI6cmV0dXJuIHplKHplKHt9LGUpLHt9LHtpc0ZvY3VzZWQ6ITF9KTtjYXNlIm9wZW5EaWFsb2ciOnJldHVybiB6ZSh6ZSh7fSxlKSx7fSx7aXNGaWxlRGlhbG9nQWN0aXZlOiEwfSk7Y2FzZSJjbG9zZURpYWxvZyI6cmV0dXJuIHplKHplKHt9LGUpLHt9LHtpc0ZpbGVEaWFsb2dBY3RpdmU6ITF9KTtjYXNlInNldERyYWdnZWRGaWxlcyI6dmFyIG49dC5pc0RyYWdBY3RpdmUscj10LmRyYWdnZWRGaWxlcztyZXR1cm4gemUoemUoe30sZSkse30se2RyYWdnZWRGaWxlczpyLGlzRHJhZ0FjdGl2ZTpufSk7Y2FzZSJzZXRGaWxlcyI6cmV0dXJuIHplKHplKHt9LGUpLHt9LHthY2NlcHRlZEZpbGVzOnQuYWNjZXB0ZWRGaWxlcyxmaWxlUmVqZWN0aW9uczp0LmZpbGVSZWplY3Rpb25zfSk7Y2FzZSJyZXNldCI6cmV0dXJuIHplKHplKHt9LGUpLHt9LHtpc0ZpbGVEaWFsb2dBY3RpdmU6ITEsaXNEcmFnQWN0aXZlOiExLGRyYWdnZWRGaWxlczpbXSxhY2NlcHRlZEZpbGVzOltdLGZpbGVSZWplY3Rpb25zOltdfSk7ZGVmYXVsdDpyZXR1cm4gZX19big1NSksbigxNTgpLG4oMTYzKSxuKDE2MSksbigyMjApO3ZhciBZZT1uKDE2KSxHZT0obigxMjcpLG4oMzIpLG4oODkpLGZ1bmN0aW9uKCl7dmFyIGU9e2Jhc2U6Imh0dHBzOi8vdHdlbW9qaS5tYXhjZG4uY29tL3YvMTMuMC4xLyIsZXh0OiIucG5nIixzaXplOiI3Mng3MiIsY2xhc3NOYW1lOiJlbW9qaSIsY29udmVydDp7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbihlKXt2YXIgdD0ic3RyaW5nIj09PXR5cGVvZiBlP3BhcnNlSW50KGUsMTYpOmU7aWYodDw2NTUzNilyZXR1cm4gcyh0KTtyZXR1cm4gcyg1NTI5NisoKHQtPTY1NTM2KT4+MTApLDU2MzIwKygxMDIzJnQpKX0sdG9Db2RlUG9pbnQ6aH0sb25lcnJvcjpmdW5jdGlvbigpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChjKHRoaXMuYWx0LCExKSx0aGlzKX0scGFyc2U6ZnVuY3Rpb24odCxuKXtuJiYiZnVuY3Rpb24iIT09dHlwZW9mIG58fChuPXtjYWxsYmFjazpufSk7cmV0dXJuKCJzdHJpbmciPT09dHlwZW9mIHQ/ZjpkKSh0LHtjYWxsYmFjazpuLmNhbGxiYWNrfHxsLGF0dHJpYnV0ZXM6ImZ1bmN0aW9uIj09PXR5cGVvZiBuLmF0dHJpYnV0ZXM/bi5hdHRyaWJ1dGVzOmIsYmFzZToic3RyaW5nIj09PXR5cGVvZiBuLmJhc2U/bi5iYXNlOmUuYmFzZSxleHQ6bi5leHR8fGUuZXh0LHNpemU6bi5mb2xkZXJ8fChyPW4uc2l6ZXx8ZS5zaXplLCJudW1iZXIiPT09dHlwZW9mIHI/cisieCIrcjpyKSxjbGFzc05hbWU6bi5jbGFzc05hbWV8fGUuY2xhc3NOYW1lLG9uZXJyb3I6bi5vbmVycm9yfHxlLm9uZXJyb3J9KTt2YXIgcn0scmVwbGFjZTptLHRlc3Q6ZnVuY3Rpb24oZSl7bi5sYXN0SW5kZXg9MDt2YXIgdD1uLnRlc3QoZSk7cmV0dXJuIG4ubGFzdEluZGV4PTAsdH19LHQ9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwiJyI6IiYjMzk7IiwnIic6IiZxdW90OyJ9LG49Lyg/Olx1ZDgzZFx1ZGM2OFx1ZDgzY1x1ZGZmYlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmMtXHVkZmZmXXxcdWQ4M2RcdWRjNjhcdWQ4M2NcdWRmZmNcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiXHVkZmZkLVx1ZGZmZl18XHVkODNkXHVkYzY4XHVkODNjXHVkZmZkXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYlx1ZGZmY1x1ZGZmZVx1ZGZmZl18XHVkODNkXHVkYzY4XHVkODNjXHVkZmZlXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYi1cdWRmZmRcdWRmZmZdfFx1ZDgzZFx1ZGM2OFx1ZDgzY1x1ZGZmZlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmItXHVkZmZlXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmJcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZjLVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZiXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYy1cdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmY1x1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmJcdWRmZmQtXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmNcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZiXHVkZmZkLVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZkXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYlx1ZGZmY1x1ZGZmZVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZkXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYlx1ZGZmY1x1ZGZmZVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZlXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYi1cdWRmZmRcdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmZVx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OVx1ZDgzY1tcdWRmZmItXHVkZmZkXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmZcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiLVx1ZGZmZV18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZmXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYi1cdWRmZmVdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmYlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdWQ4M2NcdWRmZmNcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDFcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNlXHVkZGQxXHVkODNjXHVkZmZkXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmZVx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdWQ4M2NcdWRmZmZcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDFcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNlXHVkZGQxXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxfFx1ZDgzZFx1ZGM2Ylx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2RcdWRjNmNcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNkXHVkYzZkXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZFtcdWRjNmItXHVkYzZkXSl8KD86XHVkODNkW1x1ZGM2OFx1ZGM2OV18XHVkODNlXHVkZGQxKSg/Olx1ZDgzY1tcdWRmZmItXHVkZmZmXSk/XHUyMDBkKD86XHUyNjk1XHVmZTBmfFx1MjY5Nlx1ZmUwZnxcdTI3MDhcdWZlMGZ8XHVkODNjW1x1ZGYzZVx1ZGY3M1x1ZGY3Y1x1ZGY4NFx1ZGY5M1x1ZGZhNFx1ZGZhOFx1ZGZlYlx1ZGZlZF18XHVkODNkW1x1ZGNiYlx1ZGNiY1x1ZGQyN1x1ZGQyY1x1ZGU4MFx1ZGU5Ml18XHVkODNlW1x1ZGRhZi1cdWRkYjNcdWRkYmNcdWRkYmRdKXwoPzpcdWQ4M2NbXHVkZmNiXHVkZmNjXXxcdWQ4M2RbXHVkZDc0XHVkZDc1XXxcdTI2ZjkpKCg/Olx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWZlMGYpXHUyMDBkW1x1MjY0MFx1MjY0Ml1cdWZlMGYpfCg/Olx1ZDgzY1tcdWRmYzNcdWRmYzRcdWRmY2FdfFx1ZDgzZFtcdWRjNmVcdWRjNzBcdWRjNzFcdWRjNzNcdWRjNzdcdWRjODFcdWRjODJcdWRjODZcdWRjODdcdWRlNDUtXHVkZTQ3XHVkZTRiXHVkZTRkXHVkZTRlXHVkZWEzXHVkZWI0LVx1ZGViNl18XHVkODNlW1x1ZGQyNlx1ZGQzNVx1ZGQzNy1cdWRkMzlcdWRkM2RcdWRkM2VcdWRkYjhcdWRkYjlcdWRkY2QtXHVkZGNmXHVkZGQ2LVx1ZGRkZF0pKD86XHVkODNjW1x1ZGZmYi1cdWRmZmZdKT9cdTIwMGRbXHUyNjQwXHUyNjQyXVx1ZmUwZnwoPzpcdWQ4M2RcdWRjNjhcdTIwMGRcdTI3NjRcdWZlMGZcdTIwMGRcdWQ4M2RcdWRjOGJcdTIwMGRcdWQ4M2RcdWRjNjh8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY2XHUyMDBkXHVkODNkXHVkYzY2fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2N1x1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdTI3NjRcdWZlMGZcdTIwMGRcdWQ4M2RcdWRjOGJcdTIwMGRcdWQ4M2RbXHVkYzY4XHVkYzY5XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjZcdTIwMGRcdWQ4M2RcdWRjNjZ8XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY3XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY4XHUyMDBkXHUyNzY0XHVmZTBmXHUyMDBkXHVkODNkXHVkYzY4fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdTI3NjRcdWZlMGZcdTIwMGRcdWQ4M2RbXHVkYzY4XHVkYzY5XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjZcdTIwMGRcdWQ4M2RcdWRjNjZ8XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY3XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNjXHVkZmYzXHVmZTBmXHUyMDBkXHUyNmE3XHVmZTBmfFx1ZDgzY1x1ZGZmM1x1ZmUwZlx1MjAwZFx1ZDgzY1x1ZGYwOHxcdWQ4M2NcdWRmZjRcdTIwMGRcdTI2MjBcdWZlMGZ8XHVkODNkXHVkYzE1XHUyMDBkXHVkODNlXHVkZGJhfFx1ZDgzZFx1ZGMzYlx1MjAwZFx1Mjc0NFx1ZmUwZnxcdWQ4M2RcdWRjNDFcdTIwMGRcdWQ4M2RcdWRkZTh8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzZmXHUyMDBkXHUyNjQwXHVmZTBmfFx1ZDgzZFx1ZGM2Zlx1MjAwZFx1MjY0Mlx1ZmUwZnxcdWQ4M2VcdWRkM2NcdTIwMGRcdTI2NDBcdWZlMGZ8XHVkODNlXHVkZDNjXHUyMDBkXHUyNjQyXHVmZTBmfFx1ZDgzZVx1ZGRkZVx1MjAwZFx1MjY0MFx1ZmUwZnxcdWQ4M2VcdWRkZGVcdTIwMGRcdTI2NDJcdWZlMGZ8XHVkODNlXHVkZGRmXHUyMDBkXHUyNjQwXHVmZTBmfFx1ZDgzZVx1ZGRkZlx1MjAwZFx1MjY0Mlx1ZmUwZnxcdWQ4M2RcdWRjMDhcdTIwMGRcdTJiMWIpfFsjKjAtOV1cdWZlMGY/XHUyMGUzfCg/OltceGE5XHhhZVx1MjEyMlx1MjY1Zl1cdWZlMGYpfCg/Olx1ZDgzY1tcdWRjMDRcdWRkNzBcdWRkNzFcdWRkN2VcdWRkN2ZcdWRlMDJcdWRlMWFcdWRlMmZcdWRlMzdcdWRmMjFcdWRmMjQtXHVkZjJjXHVkZjM2XHVkZjdkXHVkZjk2XHVkZjk3XHVkZjk5LVx1ZGY5Ylx1ZGY5ZVx1ZGY5Zlx1ZGZjZFx1ZGZjZVx1ZGZkNC1cdWRmZGZcdWRmZjNcdWRmZjVcdWRmZjddfFx1ZDgzZFtcdWRjM2ZcdWRjNDFcdWRjZmRcdWRkNDlcdWRkNGFcdWRkNmZcdWRkNzBcdWRkNzNcdWRkNzYtXHVkZDc5XHVkZDg3XHVkZDhhLVx1ZGQ4ZFx1ZGRhNVx1ZGRhOFx1ZGRiMVx1ZGRiMlx1ZGRiY1x1ZGRjMi1cdWRkYzRcdWRkZDEtXHVkZGQzXHVkZGRjLVx1ZGRkZVx1ZGRlMVx1ZGRlM1x1ZGRlOFx1ZGRlZlx1ZGRmM1x1ZGRmYVx1ZGVjYlx1ZGVjZC1cdWRlY2ZcdWRlZTAtXHVkZWU1XHVkZWU5XHVkZWYwXHVkZWYzXXxbXHUyMDNjXHUyMDQ5XHUyMTM5XHUyMTk0LVx1MjE5OVx1MjFhOVx1MjFhYVx1MjMxYVx1MjMxYlx1MjMyOFx1MjNjZlx1MjNlZC1cdTIzZWZcdTIzZjFcdTIzZjJcdTIzZjgtXHUyM2ZhXHUyNGMyXHUyNWFhXHUyNWFiXHUyNWI2XHUyNWMwXHUyNWZiLVx1MjVmZVx1MjYwMC1cdTI2MDRcdTI2MGVcdTI2MTFcdTI2MTRcdTI2MTVcdTI2MThcdTI2MjBcdTI2MjJcdTI2MjNcdTI2MjZcdTI2MmFcdTI2MmVcdTI2MmZcdTI2MzgtXHUyNjNhXHUyNjQwXHUyNjQyXHUyNjQ4LVx1MjY1M1x1MjY2MFx1MjY2M1x1MjY2NVx1MjY2Nlx1MjY2OFx1MjY3Ylx1MjY3Zlx1MjY5Mi1cdTI2OTdcdTI2OTlcdTI2OWJcdTI2OWNcdTI2YTBcdTI2YTFcdTI2YTdcdTI2YWFcdTI2YWJcdTI2YjBcdTI2YjFcdTI2YmRcdTI2YmVcdTI2YzRcdTI2YzVcdTI2YzhcdTI2Y2ZcdTI2ZDFcdTI2ZDNcdTI2ZDRcdTI2ZTlcdTI2ZWFcdTI2ZjAtXHUyNmY1XHUyNmY4XHUyNmZhXHUyNmZkXHUyNzAyXHUyNzA4XHUyNzA5XHUyNzBmXHUyNzEyXHUyNzE0XHUyNzE2XHUyNzFkXHUyNzIxXHUyNzMzXHUyNzM0XHUyNzQ0XHUyNzQ3XHUyNzU3XHUyNzYzXHUyNzY0XHUyN2ExXHUyOTM0XHUyOTM1XHUyYjA1LVx1MmIwN1x1MmIxYlx1MmIxY1x1MmI1MFx1MmI1NVx1MzAzMFx1MzAzZFx1MzI5N1x1MzI5OV0pKD86XHVmZTBmfCg/IVx1ZmUwZSkpfCg/Oig/Olx1ZDgzY1tcdWRmY2JcdWRmY2NdfFx1ZDgzZFtcdWRkNzRcdWRkNzVcdWRkOTBdfFtcdTI2MWRcdTI2ZjdcdTI2ZjlcdTI3MGNcdTI3MGRdKSg/Olx1ZmUwZnwoPyFcdWZlMGUpKXwoPzpcdWQ4M2NbXHVkZjg1XHVkZmMyLVx1ZGZjNFx1ZGZjN1x1ZGZjYV18XHVkODNkW1x1ZGM0Mlx1ZGM0M1x1ZGM0Ni1cdWRjNTBcdWRjNjYtXHVkYzY5XHVkYzZlXHVkYzcwLVx1ZGM3OFx1ZGM3Y1x1ZGM4MS1cdWRjODNcdWRjODUtXHVkYzg3XHVkY2FhXHVkZDdhXHVkZDk1XHVkZDk2XHVkZTQ1LVx1ZGU0N1x1ZGU0Yi1cdWRlNGZcdWRlYTNcdWRlYjQtXHVkZWI2XHVkZWMwXHVkZWNjXXxcdWQ4M2VbXHVkZDBjXHVkZDBmXHVkZDE4LVx1ZGQxY1x1ZGQxZVx1ZGQxZlx1ZGQyNlx1ZGQzMC1cdWRkMzlcdWRkM2RcdWRkM2VcdWRkNzdcdWRkYjVcdWRkYjZcdWRkYjhcdWRkYjlcdWRkYmJcdWRkY2QtXHVkZGNmXHVkZGQxLVx1ZGRkZF18W1x1MjcwYVx1MjcwYl0pKSg/Olx1ZDgzY1tcdWRmZmItXHVkZmZmXSk/fCg/Olx1ZDgzY1x1ZGZmNFx1ZGI0MFx1ZGM2N1x1ZGI0MFx1ZGM2Mlx1ZGI0MFx1ZGM2NVx1ZGI0MFx1ZGM2ZVx1ZGI0MFx1ZGM2N1x1ZGI0MFx1ZGM3ZnxcdWQ4M2NcdWRmZjRcdWRiNDBcdWRjNjdcdWRiNDBcdWRjNjJcdWRiNDBcdWRjNzNcdWRiNDBcdWRjNjNcdWRiNDBcdWRjNzRcdWRiNDBcdWRjN2Z8XHVkODNjXHVkZmY0XHVkYjQwXHVkYzY3XHVkYjQwXHVkYzYyXHVkYjQwXHVkYzc3XHVkYjQwXHVkYzZjXHVkYjQwXHVkYzczXHVkYjQwXHVkYzdmfFx1ZDgzY1x1ZGRlNlx1ZDgzY1tcdWRkZTgtXHVkZGVjXHVkZGVlXHVkZGYxXHVkZGYyXHVkZGY0XHVkZGY2LVx1ZGRmYVx1ZGRmY1x1ZGRmZFx1ZGRmZl18XHVkODNjXHVkZGU3XHVkODNjW1x1ZGRlNlx1ZGRlN1x1ZGRlOS1cdWRkZWZcdWRkZjEtXHVkZGY0XHVkZGY2LVx1ZGRmOVx1ZGRmYlx1ZGRmY1x1ZGRmZVx1ZGRmZl18XHVkODNjXHVkZGU4XHVkODNjW1x1ZGRlNlx1ZGRlOFx1ZGRlOVx1ZGRlYi1cdWRkZWVcdWRkZjAtXHVkZGY1XHVkZGY3XHVkZGZhLVx1ZGRmZl18XHVkODNjXHVkZGU5XHVkODNjW1x1ZGRlYVx1ZGRlY1x1ZGRlZlx1ZGRmMFx1ZGRmMlx1ZGRmNFx1ZGRmZl18XHVkODNjXHVkZGVhXHVkODNjW1x1ZGRlNlx1ZGRlOFx1ZGRlYVx1ZGRlY1x1ZGRlZFx1ZGRmNy1cdWRkZmFdfFx1ZDgzY1x1ZGRlYlx1ZDgzY1tcdWRkZWUtXHVkZGYwXHVkZGYyXHVkZGY0XHVkZGY3XXxcdWQ4M2NcdWRkZWNcdWQ4M2NbXHVkZGU2XHVkZGU3XHVkZGU5LVx1ZGRlZVx1ZGRmMS1cdWRkZjNcdWRkZjUtXHVkZGZhXHVkZGZjXHVkZGZlXXxcdWQ4M2NcdWRkZWRcdWQ4M2NbXHVkZGYwXHVkZGYyXHVkZGYzXHVkZGY3XHVkZGY5XHVkZGZhXXxcdWQ4M2NcdWRkZWVcdWQ4M2NbXHVkZGU4LVx1ZGRlYVx1ZGRmMS1cdWRkZjRcdWRkZjYtXHVkZGY5XXxcdWQ4M2NcdWRkZWZcdWQ4M2NbXHVkZGVhXHVkZGYyXHVkZGY0XHVkZGY1XXxcdWQ4M2NcdWRkZjBcdWQ4M2NbXHVkZGVhXHVkZGVjLVx1ZGRlZVx1ZGRmMlx1ZGRmM1x1ZGRmNVx1ZGRmN1x1ZGRmY1x1ZGRmZVx1ZGRmZl18XHVkODNjXHVkZGYxXHVkODNjW1x1ZGRlNi1cdWRkZThcdWRkZWVcdWRkZjBcdWRkZjctXHVkZGZiXHVkZGZlXXxcdWQ4M2NcdWRkZjJcdWQ4M2NbXHVkZGU2XHVkZGU4LVx1ZGRlZFx1ZGRmMC1cdWRkZmZdfFx1ZDgzY1x1ZGRmM1x1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZWEtXHVkZGVjXHVkZGVlXHVkZGYxXHVkZGY0XHVkZGY1XHVkZGY3XHVkZGZhXHVkZGZmXXxcdWQ4M2NcdWRkZjRcdWQ4M2NcdWRkZjJ8XHVkODNjXHVkZGY1XHVkODNjW1x1ZGRlNlx1ZGRlYS1cdWRkZWRcdWRkZjAtXHVkZGYzXHVkZGY3LVx1ZGRmOVx1ZGRmY1x1ZGRmZV18XHVkODNjXHVkZGY2XHVkODNjXHVkZGU2fFx1ZDgzY1x1ZGRmN1x1ZDgzY1tcdWRkZWFcdWRkZjRcdWRkZjhcdWRkZmFcdWRkZmNdfFx1ZDgzY1x1ZGRmOFx1ZDgzY1tcdWRkZTYtXHVkZGVhXHVkZGVjLVx1ZGRmNFx1ZGRmNy1cdWRkZjlcdWRkZmJcdWRkZmQtXHVkZGZmXXxcdWQ4M2NcdWRkZjlcdWQ4M2NbXHVkZGU2XHVkZGU4XHVkZGU5XHVkZGViLVx1ZGRlZFx1ZGRlZi1cdWRkZjRcdWRkZjdcdWRkZjlcdWRkZmJcdWRkZmNcdWRkZmZdfFx1ZDgzY1x1ZGRmYVx1ZDgzY1tcdWRkZTZcdWRkZWNcdWRkZjJcdWRkZjNcdWRkZjhcdWRkZmVcdWRkZmZdfFx1ZDgzY1x1ZGRmYlx1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZWFcdWRkZWNcdWRkZWVcdWRkZjNcdWRkZmFdfFx1ZDgzY1x1ZGRmY1x1ZDgzY1tcdWRkZWJcdWRkZjhdfFx1ZDgzY1x1ZGRmZFx1ZDgzY1x1ZGRmMHxcdWQ4M2NcdWRkZmVcdWQ4M2NbXHVkZGVhXHVkZGY5XXxcdWQ4M2NcdWRkZmZcdWQ4M2NbXHVkZGU2XHVkZGYyXHVkZGZjXXxcdWQ4M2NbXHVkY2NmXHVkZDhlXHVkZDkxLVx1ZGQ5YVx1ZGRlNi1cdWRkZmZcdWRlMDFcdWRlMzItXHVkZTM2XHVkZTM4LVx1ZGUzYVx1ZGU1MFx1ZGU1MVx1ZGYwMC1cdWRmMjBcdWRmMmQtXHVkZjM1XHVkZjM3LVx1ZGY3Y1x1ZGY3ZS1cdWRmODRcdWRmODYtXHVkZjkzXHVkZmEwLVx1ZGZjMVx1ZGZjNVx1ZGZjNlx1ZGZjOFx1ZGZjOVx1ZGZjZi1cdWRmZDNcdWRmZTAtXHVkZmYwXHVkZmY0XHVkZmY4LVx1ZGZmZl18XHVkODNkW1x1ZGMwMC1cdWRjM2VcdWRjNDBcdWRjNDRcdWRjNDVcdWRjNTEtXHVkYzY1XHVkYzZhXHVkYzZmXHVkYzc5LVx1ZGM3Ylx1ZGM3ZC1cdWRjODBcdWRjODRcdWRjODgtXHVkY2E5XHVkY2FiLVx1ZGNmY1x1ZGNmZi1cdWRkM2RcdWRkNGItXHVkZDRlXHVkZDUwLVx1ZGQ2N1x1ZGRhNFx1ZGRmYi1cdWRlNDRcdWRlNDgtXHVkZTRhXHVkZTgwLVx1ZGVhMlx1ZGVhNC1cdWRlYjNcdWRlYjctXHVkZWJmXHVkZWMxLVx1ZGVjNVx1ZGVkMC1cdWRlZDJcdWRlZDUtXHVkZWQ3XHVkZWViXHVkZWVjXHVkZWY0LVx1ZGVmY1x1ZGZlMC1cdWRmZWJdfFx1ZDgzZVtcdWRkMGRcdWRkMGVcdWRkMTAtXHVkZDE3XHVkZDFkXHVkZDIwLVx1ZGQyNVx1ZGQyNy1cdWRkMmZcdWRkM2FcdWRkM2NcdWRkM2YtXHVkZDQ1XHVkZDQ3LVx1ZGQ3Nlx1ZGQ3OFx1ZGQ3YS1cdWRkYjRcdWRkYjdcdWRkYmFcdWRkYmMtXHVkZGNiXHVkZGQwXHVkZGRlLVx1ZGRmZlx1ZGU3MC1cdWRlNzRcdWRlNzgtXHVkZTdhXHVkZTgwLVx1ZGU4Nlx1ZGU5MC1cdWRlYThcdWRlYjAtXHVkZWI2XHVkZWMwLVx1ZGVjMlx1ZGVkMC1cdWRlZDZdfFtcdTIzZTktXHUyM2VjXHUyM2YwXHUyM2YzXHUyNjdlXHUyNmNlXHUyNzA1XHUyNzI4XHUyNzRjXHUyNzRlXHUyNzUzLVx1Mjc1NVx1Mjc5NS1cdTI3OTdcdTI3YjBcdTI3YmZcdWU1MGFdKXxcdWZlMGYvZyxyPS9cdUZFMEYvZyxvPVN0cmluZy5mcm9tQ2hhckNvZGUoODIwNSksYT0vWyY8PiciXS9nLGk9L14oPzppZnJhbWV8bm9mcmFtZXN8bm9zY3JpcHR8c2NyaXB0fHNlbGVjdHxzdHlsZXx0ZXh0YXJlYSkkLyxzPVN0cmluZy5mcm9tQ2hhckNvZGU7cmV0dXJuIGU7ZnVuY3Rpb24gYyhlLHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0P2UucmVwbGFjZShyLCIiKTplKX1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuIiIuY29uY2F0KHQuYmFzZSx0LnNpemUsIi8iLGUsdC5leHQpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIGgoZS5pbmRleE9mKG8pPDA/ZS5yZXBsYWNlKHIsIiIpOmUpfWZ1bmN0aW9uIGQoZSx0KXtmb3IodmFyIHIsbyxhLHMsbCxkLGYscCxiLG0saCxnLHYseT1mdW5jdGlvbiBlKHQsbil7Zm9yKHZhciByLG8sYT10LmNoaWxkTm9kZXMscz1hLmxlbmd0aDtzLS07KTM9PT0obz0ocj1hW3NdKS5ub2RlVHlwZSk/bi5wdXNoKHIpOjEhPT1vfHwib3duZXJTVkdFbGVtZW50ImluIHJ8fGkudGVzdChyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpfHxlKHIsbik7cmV0dXJuIG59KGUsW10pLHc9eS5sZW5ndGg7dy0tOyl7Zm9yKGE9ITEscz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZD0obD15W3ddKS5ub2RlVmFsdWUscD0wO2Y9bi5leGVjKGQpOyl7aWYoKGI9Zi5pbmRleCkhPT1wJiZzLmFwcGVuZENoaWxkKGMoZC5zbGljZShwLGIpLCEwKSksZz11KGg9ZlswXSkscD1iK2gubGVuZ3RoLHY9dC5jYWxsYmFjayhnLHQpLGcmJnYpe2ZvcihvIGluKG09bmV3IEltYWdlKS5vbmVycm9yPXQub25lcnJvcixtLnNldEF0dHJpYnV0ZSgiZHJhZ2dhYmxlIiwiZmFsc2UiKSxyPXQuYXR0cmlidXRlcyhoLGcpKXIuaGFzT3duUHJvcGVydHkobykmJjAhPT1vLmluZGV4T2YoIm9uIikmJiFtLmhhc0F0dHJpYnV0ZShvKSYmbS5zZXRBdHRyaWJ1dGUobyxyW29dKTttLmNsYXNzTmFtZT10LmNsYXNzTmFtZSxtLmFsdD1oLG0uc3JjPXYsYT0hMCxzLmFwcGVuZENoaWxkKG0pfW18fHMuYXBwZW5kQ2hpbGQoYyhoLCExKSksbT1udWxsfWEmJihwPGQubGVuZ3RoJiZzLmFwcGVuZENoaWxkKGMoZC5zbGljZShwKSwhMCkpLGwucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocyxsKSl9cmV0dXJuIGV9ZnVuY3Rpb24gZihlLHQpe3JldHVybiBtKGUsKGZ1bmN0aW9uKGUpe3ZhciBuLHIsbz1lLGk9dShlKSxzPXQuY2FsbGJhY2soaSx0KTtpZihpJiZzKXtmb3IociBpbiBvPSI8aW1nICIuY29uY2F0KCdjbGFzcz0iJyx0LmNsYXNzTmFtZSwnIiAnLCdkcmFnZ2FibGU9ImZhbHNlIiAnLCdhbHQ9IicsZSwnIicsJyBzcmM9IicscywnIicpLG49dC5hdHRyaWJ1dGVzKGUsaSkpbi5oYXNPd25Qcm9wZXJ0eShyKSYmMCE9PXIuaW5kZXhPZigib24iKSYmLTE9PT1vLmluZGV4T2YoIiAiK3IrIj0iKSYmKG89by5jb25jYXQoIiAiLHIsJz0iJyxuW3JdLnJlcGxhY2UoYSxwKSwnIicpKTtvPW8uY29uY2F0KCIvPiIpfXJldHVybiBvfSkpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIHRbZV19ZnVuY3Rpb24gYigpe3JldHVybiBudWxsfWZ1bmN0aW9uIG0oZSx0KXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2Uobix0KX1mdW5jdGlvbiBoKGUsdCl7Zm9yKHZhciBuPVtdLHI9MCxvPTAsYT0wO2E8ZS5sZW5ndGg7KXI9ZS5jaGFyQ29kZUF0KGErKyksbz8obi5wdXNoKCg2NTUzNisoby01NTI5Njw8MTApKyhyLTU2MzIwKSkudG9TdHJpbmcoMTYpKSxvPTApOjU1Mjk2PD1yJiZyPD01NjMxOT9vPXI6bi5wdXNoKHIudG9TdHJpbmcoMTYpKTtyZXR1cm4gbi5qb2luKHR8fCItIil9fSgpKSxRZT1uKDM1MCksS2U9eyIiOlsiPGVtPiIsIjwvZW0+Il0sXzpbIjxzdHJvbmc+IiwiPC9zdHJvbmc+Il0sIioiOlsiPHN0cm9uZz4iLCI8L3N0cm9uZz4iXSwifiI6WyI8cz4iLCI8L3M+Il0sIlxuIjpbIjxiciAvPiJdLCIgIjpbIjxiciAvPiJdLCItIjpbIjxociAvPiJdfTtmdW5jdGlvbiBaZShlKXtyZXR1cm4gZS5yZXBsYWNlKFJlZ0V4cCgiXiIrKGUubWF0Y2goL14oXHR8ICkrLyl8fCIiKVswXSwiZ20iKSwiIil9ZnVuY3Rpb24gWGUoZSl7cmV0dXJuKGUrIiIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iil9dmFyICRlPXtBTExPV0VEX1RBR1M6WyJpbWciXSxBTExPV0VEX0FUVFI6WyJjbGFzcyIsInNyYyIsImFsdCJdfSxKZT17QUxMT1dFRF9UQUdTOlsiaW1nIiwiYSIsInN0cm9uZyIsImJyIiwib2wiLCJ1bCIsImxpIl0sQUxMT1dFRF9BVFRSOlsiY2xhc3MiLCJocmVmIiwidGFyZ2V0Iiwic3JjIiwiYWx0IiwicmVsIl19LGV0PXtBTExPV0VEX1RBR1M6WyJpbWciLCJhIl0sQUxMT1dFRF9BVFRSOlsiY2xhc3MiLCJocmVmIiwidGFyZ2V0Iiwic3JjIiwiYWx0Il19LHR0PWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UobmV3IFJlZ0V4cCgiPCIsImciKSwiJmx0OyIpLnJlcGxhY2UobmV3IFJlZ0V4cCgiPiIsImciKSwiJmd0OyIpfSxudD17YmFzZToiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvdHdlbW9qaS8xMi4xLjEvIn0scnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvKCg/OmhyZWZ8c3JjKT1bJyJdKT8oXGIoaHR0cHM/fGZ0cCk6XC9cL1stQS1aMC05KyZAIy8lPz1+X3whOiwuOygpJCdbXF0qXSpbLUEtWjAtOSsmQCMvJT1+X3xdKS9naW0sKGZ1bmN0aW9uKGUsdCl7cmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgdD9lOic8YSBocmVmPSInLmNvbmNhdChlLCciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPicpLmNvbmNhdChlLCI8L2E+Iil9KSkucmVwbGFjZSgvKF58XHN8c3Ryb25nPnxsaT4pKChbYS16QS1aMC05LV8uK10pK0BbYS16QS1aMC05X10rPyhcLlthLXpBLVpdezIsfSkrKS9naW0sJyQxPGEgaHJlZj0ibWFpbHRvOiQyIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj4kMjwvYT4nKS5yZXBsYWNlKC8oXnxcc3xzdHJvbmc+fGxpPikod3d3XC5bXHcuLEA/Xj0lJjovXSsoXGJ8JCkpL2dpbSwnJDE8YSBocmVmPSJodHRwOi8vJDIiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPiQyPC9hPicpfSxvdD1mdW5jdGlvbihlKXtpZigic3RyaW5nIiE9PXR5cGVvZiBlKXJldHVybiIiO3ZhciB0LG49dHQoZSk7cmV0dXJuIG49cnQobiksbj1HZS5wYXJzZShuLG50KSx0PW4sbj1PYmplY3QoUWUuc2FuaXRpemUpKHQsZXQpfSxhdD1mdW5jdGlvbihlKXtpZigic3RyaW5nIiE9PXR5cGVvZiBlKXJldHVybiIiO3ZhciB0PXR0KGUpO3JldHVybiB0PSh0PSh0PSh0PWZ1bmN0aW9uIGUodCxuKXt2YXIgcixvLGEsaSxzLGM9LygoPzpefFxuKykoPzpcbi0tLSt8XCogXCooPzogXCopKylcbil8KD86XmBgYCAqKFx3KilcbihbXHNcU10qPylcbmBgYCQpfCgoPzooPzpefFxuKykoPzpcdHwgIHsyLH0pLispK1xuKil8KCg/Oig/Ol58XG4pKFs+KistXXxcZCtcLilccysuKikrKXwoPzohXFsoW15cXV0qPylcXVwoKFteKV0rPylcKSl8KFxbKXwoXF0oPzpcKChbXildKz8pXCkpPyl8KD86KD86XnxcbispKFteXHNdLiopXG4oLXszLH18PXszLH0pKD86XG4rfCQpKXwoPzooPzpefFxuKykoI3sxLDZ9KVxzKiguKykoPzpcbit8JCkpfCg/OmAoW15gXS4qPylgKXwoICBcblxuKnxcbnsyLH18X198XCpcKnxbXypdfH5+KS9nbSxsPVtdLHU9IiIsZD1ufHx7fSxmPTA7ZnVuY3Rpb24gcChlKXt2YXIgdD1LZVtlWzFdfHwiIl0sbj1sW2wubGVuZ3RoLTFdPT1lO3JldHVybiB0P3RbMV0/KG4/bC5wb3AoKTpsLnB1c2goZSksdFswfG5dKTp0WzBdOmV9ZnVuY3Rpb24gYigpe2Zvcih2YXIgZT0iIjtsLmxlbmd0aDspZSs9cChsW2wubGVuZ3RoLTFdKTtyZXR1cm4gZX1mb3IodD10LnJlcGxhY2UoL15cWyguKz8pXF06XHMqKC4rKSQvZ20sKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZFt0LnRvTG93ZXJDYXNlKCldPW4sIiJ9KSkucmVwbGFjZSgvXlxuK3xcbiskL2csIiIpO2E9Yy5leGVjKHQpOylvPXQuc3Vic3RyaW5nKGYsYS5pbmRleCksZj1jLmxhc3RJbmRleCxyPWFbMF0sby5tYXRjaCgvW15cXF0oXFxcXCkqXFwkLyl8fCgocz1hWzNdfHxhWzRdKT9yPSc8cHJlIGNsYXNzPSJjb2RlICcrKGFbNF0/InBvZXRyeSI6YVsyXS50b0xvd2VyQ2FzZSgpKSsnIj48Y29kZScrKGFbMl0/JyBjbGFzcz0ibGFuZ3VhZ2UtJythWzJdLnRvTG93ZXJDYXNlKCkrJyInOiIiKSsiPiIrWmUoWGUocykucmVwbGFjZSgvXlxuK3xcbiskL2csIiIpKSsiPC9jb2RlPjwvcHJlPiI6KHM9YVs2XSk/KHMubWF0Y2goL1wuLykmJihhWzVdPWFbNV0ucmVwbGFjZSgvXlxkKy9nbSwiIikpLGk9ZShaZShhWzVdLnJlcGxhY2UoL15ccypbPiorLi1dL2dtLCIiKSkpLCI+Ij09cz9zPSJibG9ja3F1b3RlIjoocz1zLm1hdGNoKC9cLi8pPyJvbCI6InVsIixpPWkucmVwbGFjZSgvXiguKikoXG58JCkvZ20sIjxsaT4kMTwvbGk+IikpLHI9IjwiK3MrIj4iK2krIjwvIitzKyI+Iik6YVs4XT9yPSc8aW1nIHNyYz0iJytYZShhWzhdKSsnIiBhbHQ9IicrWGUoYVs3XSkrJyI+JzphWzEwXT8odT11LnJlcGxhY2UoIjxhPiIsJzxhIGhyZWY9IicrWGUoYVsxMV18fGRbby50b0xvd2VyQ2FzZSgpXSkrJyI+Jykscj1iKCkrIjwvYT4iKTphWzldP3I9IjxhPiI6YVsxMl18fGFbMTRdP3I9IjwiKyhzPSJoIisoYVsxNF0/YVsxNF0ubGVuZ3RoOmFbMTNdPiI9Ij8xOjIpKSsiPiIrZShhWzEyXXx8YVsxNV0sZCkrIjwvIitzKyI+IjphWzE2XT9yPSI8Y29kZT4iK1hlKGFbMTZdKSsiPC9jb2RlPiI6KGFbMTddfHxhWzFdKSYmKHI9cChhWzE3XXx8Ii0tIikpKSx1Kz1vLHUrPXI7cmV0dXJuKHUrdC5zdWJzdHJpbmcoZikrYigpKS5yZXBsYWNlKC9eXG4rfFxuKyQvZywiIil9KHQ9KHQ9dC5yZXBsYWNlKC9cbig/IVxkLnwtfFwqKS9nLCI8YnI+IikpLnJlcGxhY2UoL18vZywiJiM5NTsiKSkpLnJlcGxhY2UoLzxicj4vZywiXG4iKSkucmVwbGFjZSgvKDxhIGhyZWY9InVuZGVmaW5lZCI+KShbXjxdKikoPFwvYT4pL2csIlskMl0iKSkucmVwbGFjZSgvPGEgaHJlZi9nLCc8YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciBub2ZvbGxvdyIgaHJlZicpLHQ9R2UucGFyc2UodCxudCksdD1ydCh0KSx0PU9iamVjdChRZS5zYW5pdGl6ZSkodCxKZSl9LGl0PWZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciIT09dHlwZW9mIGUpcmV0dXJuIiI7dmFyIHQ9dHQoZSk7cmV0dXJuIHQ9R2UucGFyc2UodCxudCksdD1PYmplY3QoUWUuc2FuaXRpemUpKHQsJGUpfTtmdW5jdGlvbiBzdChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gY3QoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/c3QoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2KCkoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnN0KE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfXZhciBsdD1mdW5jdGlvbihlKXt2YXIgdD1lLnZhbHVlcy5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGN0KGN0KHt9LGUpLHt9LHYoKSh7fSx0LE9iamVjdChZZS5jKSh0KSkpfSkse30pO3JldHVybiBlLnJlbmRlcih0KX07bHQucHJvcFR5cGVzPXt2YWx1ZXM6Ri5hLmFycmF5T2YoRi5hLnN0cmluZykuaXNSZXF1aXJlZCxyZW5kZXI6Ri5hLmZ1bmMuaXNSZXF1aXJlZH07dmFyIHV0PWZ1bmN0aW9uKGUpe3ZhciB0PWUudmFsdWUsbj1lLmNoaWxkcmVuLHI9ZS5yZXBsYWNlbWVudHMsbz1lLmZhbGxiYWNrLGE9ZS5saW5raWZ5LGk9ZS5lbW9qaWZ5LHM9T2JqZWN0KHkudXNlU3RhdGUpKDApLGM9WCgpKHMsMilbMV0sbD1mdW5jdGlvbigpe2MoKGZ1bmN0aW9uKGUpe3JldHVybiFlfSkpfTtyZXR1cm4gT2JqZWN0KHkudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtyZXR1cm4gWWUuZC5vbigidHJhbnNsYXRpb25zQ2hhbmdlZCIsbCksZnVuY3Rpb24oKXtZZS5kLm9mZigidHJhbnNsYXRpb25zQ2hhbmdlZCIsbCl9fSksW10pLG4/T2JqZWN0KE0uZCkobHQse3ZhbHVlczp0LHJlbmRlcjpufSk6cj9PYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoWWUuYykodCxyLG8pKTphfHxpP09iamVjdChNLmQpKCJzcGFuIix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpvdChPYmplY3QoWWUuYykodCxudWxsLG8pKX19KTpPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoWWUuYykodCxudWxsLG8pKX07dXQuZGVmYXVsdFByb3BzPXtmYWxsYmFjazpudWxsLHJlcGxhY2VtZW50czpudWxsLGVtb2ppZnk6ITEsbGlua2lmeTohMSxjaGlsZHJlbjp2b2lkIDB9O3ZhciBkdD11dCxmdD1uKDEpLHB0PWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOmUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lOnZvaWQgMCxzdHlsZTplLmF2YXRhclNyYz97YmFja2dyb3VuZEltYWdlOiJ1cmwoIi5jb25jYXQoT2JqZWN0KGZ0Lk4pKGUuYXZhdGFyU3JjKSwiKSIpfTp2b2lkIDB9LGUubmFtZSYmT2JqZWN0KE0uZCkoInNwYW4iLG51bGwsZS5uYW1lKSl9LGJ0PXcuYS5tZW1vKHB0KSxtdD1mdW5jdGlvbihlKXt2YXIgdD1lLm9wZXJhdG9ycy5zbGljZSgwLDQpO3JldHVybiBPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJhdmF0YXJzLXdyYXBwZXIgb3BlcmF0b3JzLWF2YXRhci0iLmNvbmNhdCh0Lmxlbmd0aD4zPyI0Ijp0Lmxlbmd0aCl9LHQubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KE0uZCkoYnQse2tleTplLmlkLGNsYXNzTmFtZToiaGVhZGVyLWF2YSIsYXZhdGFyU3JjOmUuYXZhdGFyU3JjfSl9KSkpLE9iamVjdChNLmQpKCJoMiIse2NsYXNzTmFtZToib25lbGluZSJ9LE9iamVjdChNLmQpKGR0LHt2YWx1ZToibmV3V2lkZ2V0SGVhZGVyVGV4dCIsZmFsbGJhY2s6Ilx4YTAiLGVtb2ppZnk6ITB9KSkpfSxodD0obigzNyksbigxNjApLG4oMjE5KSxuKDYpKSxndD1mdW5jdGlvbihlKXt2YXIgdD1lLm9wZXJhdG9ycyxuPWUuYXNzaWduZWRPcGVyYXRvcnMscj1uLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1lfSkpfSkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgZX0pKS5zbGljZSgwLDQpLG89ZnVuY3Rpb24oZSl7dHJ5e3ZhciB0PSIiO2lmKGUubGVuZ3RoPjEpe3ZhciBuPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lfSkpLHI9bi5zcGxpY2UoLTIpLmpvaW4oIiAiLmNvbmNhdChPYmplY3QoWWUuYykoIndpZGdldEhlYWRlckFuZCIsbnVsbCwiYW5kIiksIiAiKSk7bi5wdXNoKHIpLHQ9bi5qb2luKCIsICIpfWVsc2UgdD1lWzBdLm5hbWU7cmV0dXJuIHQudHJpbSgpP3Q6Ilx4YTAifWNhdGNoKG8pe3JldHVybiBPYmplY3QoaHQuYSkobyksIlx4YTAifX0ocik7cmV0dXJuIE9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImF2YXRhcnMtd3JhcHBlciBvcGVyYXRvcnMtYXZhdGFyLSIuY29uY2F0KG4ubGVuZ3RoPjM/IjQiOm4ubGVuZ3RoKX0sci5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKShidCx7a2V5OmUuaWQsY2xhc3NOYW1lOiJoZWFkZXItYXZhIixhdmF0YXJTcmM6ZS5hdmF0YXJTcmN9KX0pKSksT2JqZWN0KE0uZCkoImgyIix7Y2xhc3NOYW1lOiJ0d29saW5lcyJ9LE9iamVjdChNLmQpKCJzcGFuIix7Y2xhc3NOYW1lOiJ0b3AtaGVhZGluZyJ9LE9iamVjdChNLmQpKGR0LHt2YWx1ZToiY2hhdFdpdGgiLGZhbGxiYWNrOiJDaGF0IHdpdGgifSksIiAiKSxvKSxPYmplY3QoTS5kKSgic3BhbiIse2NsYXNzTmFtZToiaGVhZGluZy1ob3ZlciJ9LE9iamVjdChNLmQpKGR0LHt2YWx1ZToiY2hhdFdpdGgiLGZhbGxiYWNrOiJDaGF0IHdpdGgifSksIiAiLG8pKX0sdnQ9T2JqZWN0KHkuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS53aWRnZXRDb2xvcixyPWUuaXNQcm9qZWN0T25saW5lO2lmKHImJiFPYmplY3QoWWUuYykoIndlQXJlT25saW5lIil8fCFyJiYhT2JqZWN0KFllLmMpKCJhbHdheXNPbmxpbmVUb3BCYXIiKSlyZXR1cm4gT2JqZWN0KE0uZCkoImRpdiIse3JlZjp0LGNsYXNzTmFtZToib2ZmbGluZS1tZXNzYWdlIixzdHlsZTp7aGVpZ2h0OjAscGFkZGluZzowfX0pO3ZhciBvPW5bMF0hPT1uWzFdPyJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAiLmNvbmNhdChPYmplY3QoZnQudikoblswXSwiLjcyIiksIiAwJSwgIikuY29uY2F0KE9iamVjdChmdC52KShuWzFdLCIuNzIiKSwiIDEwMCUpIik6T2JqZWN0KGZ0LnYpKE9iamVjdChmdC5mKShuWzBdLC0uMSksIi43MiIpO3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7cmVmOnQsY2xhc3NOYW1lOiJvZmZsaW5lLW1lc3NhZ2UiLHN0eWxlOnYoKSh7fSwiIi5jb25jYXQoby5pbmNsdWRlcygibGluZWFyLWdyYWRpZW50Iik/ImJhY2tncm91bmRJbWFnZSI6ImJhY2tncm91bmRDb2xvciIpLG8pfSxyP09iamVjdChNLmQpKCJzcGFuIix7Y2xhc3NOYW1lOiJvbmxpbmUifSxPYmplY3QoTS5kKShkdCx7dmFsdWU6IndlQXJlT25saW5lIixlbW9qaWZ5OiEwfSkpOk9iamVjdChNLmQpKCJzcGFuIixudWxsLE9iamVjdChNLmQpKGR0LHt2YWx1ZToiYWx3YXlzT25saW5lVG9wQmFyIixlbW9qaWZ5OiEwfSkpKX0pKSx5dD1uKDMxNiksd3Q9bigwKSx4dD1uKDE3KSxPdD1uKDExKSxqdD1uKDcpLGt0PW4oMjUpLEF0PWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KHguYykoKSx0PU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5ub3RpZmljYXRpb25Tbm9vemVkfSkpLG49T2JqZWN0KHguZCkoeHQuaykscj1PYmplY3QoeC5kKSh4dC5qKSxvPU9iamVjdCh4LmQpKHh0LncpLGE9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzU291bmRFbmFibGVkfSkpLGk9T2JqZWN0KHguZCkoeHQucykscz1PYmplY3QoeS51c2VTdGF0ZSkodCksYz1YKCkocywxKVswXSxsPU9iamVjdCh5LnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXtlKE9iamVjdCh3dC5JYykoITEpKSxlKE9iamVjdCh3dC5HYykoIXQpKX0pLFt0LGVdKSx1PU9iamVjdCh5LnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXtpZihlKE9iamVjdCh3dC5vZCkoa3QuYS5yYXRlQ29udmVyc2F0aW9uQ2xpY2tlZCkpLGUoT2JqZWN0KHd0LkljKSghMSkpLG58fG8pe3ZhciB0PXI/T2JqZWN0KFllLmMpKCJkaXNhYmxlZFRleHRJbnB1dFBsYWNlaG9sZGVyIixudWxsLCJDaG9vc2Ugb25lIG9mIHRoZSBvcHRpb25zIGFib3ZlIFx1MjYxZFx1ZmUwZiIpOk9iamVjdChZZS5jKSgibmV3TWVzc2FnZURpc2FibGVkQWxlcnQiLG51bGwsIlBsZWFzZSBlbnRlciB5b3VyIGVtYWlsIGZpcnN0LiIpO2UoT2JqZWN0KHd0LlpjKSh0KSl9ZWxzZXt2YXIgYT1PYmplY3QoT3QubCkoKTtlKE9iamVjdCh3dC5JYikoYSkpfX0pLFtlLG4scixvXSksZD1PYmplY3QoeS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKHQpe2UoT2JqZWN0KHd0LkljKSh0KSl9KSxbZV0pO3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJvcHRpb25zLWRyb3Bkb3duIn0sT2JqZWN0KE0uZCkoInVsIixudWxsLGEmJihjP09iamVjdChNLmQpKCJsaSIsbnVsbCxPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6Im1hdGVyaWFsLWljb25zIixvbkNsaWNrOmwsb25Gb2N1czpmdW5jdGlvbigpe2QoITApfSxvbkJsdXI6ZnVuY3Rpb24oKXtkKCExKX19LE9iamVjdChNLmQpKHl0LnQsbnVsbCksT2JqZWN0KE0uZCkoInNwYW4iLG51bGwsT2JqZWN0KE0uZCkoZHQse3ZhbHVlOiJ0dXJuT25Ob3RpZmljYXRpb25zIn0pKSkpOk9iamVjdChNLmQpKCJsaSIsbnVsbCxPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6Im1hdGVyaWFsLWljb25zIixvbkNsaWNrOmwsb25Gb2N1czpmdW5jdGlvbigpe2QoITApfSxvbkJsdXI6ZnVuY3Rpb24oKXtkKCExKX19LE9iamVjdChNLmQpKHl0LnMsbnVsbCksT2JqZWN0KE0uZCkoInNwYW4iLG51bGwsT2JqZWN0KE0uZCkoZHQse3ZhbHVlOiJ0dXJuT2ZmTm90aWZpY2F0aW9ucyJ9KSkpKSksaSE9PWp0LmEud2VsY29tZSYmT2JqZWN0KE0uZCkoImxpIixudWxsLE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToibWF0ZXJpYWwtaWNvbnMiLG9uQ2xpY2s6dSxvbkZvY3VzOmZ1bmN0aW9uKCl7ZCghMCl9LG9uQmx1cjpmdW5jdGlvbigpe2QoITEpfX0sT2JqZWN0KE0uZCkoeXQudyxudWxsKSxPYmplY3QoTS5kKSgic3BhbiIsbnVsbCxPYmplY3QoTS5kKShkdCx7dmFsdWU6InJhdGVDb252ZXJzYXRpb24ifSkpKSkpKX0sTXQ9NjYsQ3Q9MTA0LEV0PTE0MixTdD1mdW5jdGlvbihlKXt2YXIgdD1lLnN0YXR1c0JhclJlZixuPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5vcGVyYXRvcnN9KSkscj1PYmplY3QoeS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc09ubGluZX0pKT9uLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNPbmxpbmV9KSk6bn0pLFtuXSksbz1PYmplY3QoeS51c2VTdGF0ZSkociksYT1YKCkobywyKSxpPWFbMF0scz1hWzFdLGM9T2JqZWN0KHkudXNlUmVmKShudWxsKTtPYmplY3QoeS51c2VFZmZlY3QpKChmdW5jdGlvbigpe2lmKG51bGwhPT10JiZ2b2lkIDAhPT10JiZ0LmN1cnJlbnQmJm51bGwhPT1jJiZ2b2lkIDAhPT1jJiZjLmN1cnJlbnQpe3ZhciBlPXQuY3VycmVudC5jbGllbnRIZWlnaHQ+MD90LmN1cnJlbnQuY2xpZW50SGVpZ2h0LTA6NDAsbj1mdW5jdGlvbihlKXt2YXIgdD0zO3JldHVybiBlPE10P3Q9MDplPEN0P3Q9MTplPEV0JiYodD0yKSx0fShjLmN1cnJlbnQuY2xpZW50SGVpZ2h0LWUpO3Moci5zbGljZSgwLG4pKX19KSxbcix0XSk7dmFyIGw9T2JqZWN0KGsudXNlU3ByaW5nKSh7ZnJvbTp7YXZhdGFyVHJhbnNpdGlvbjowfSxhdmF0YXJUcmFuc2l0aW9uOjF9KS5hdmF0YXJUcmFuc2l0aW9uO3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJvcGVyYXRvcnMiLHJlZjpjfSxpLm1hcCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0KE0uZCkoay5hbmltYXRlZC5kaXYse3N0eWxlOnt6SW5kZXg6aS5sZW5ndGgtdCsxLHRyYW5zZm9ybTpsLmludGVycG9sYXRlKChmdW5jdGlvbihlKXt2YXIgbj1pLmxlbmd0aC10LTEscj0zLWkubGVuZ3RoKzE7cmV0dXJuInRyYW5zbGF0ZTNkKDAsIi5jb25jYXQoLTcqcis3KnIqZSsyNipuK2UqbioxMiwicHgsMCkiKX0pKX0sa2V5OmUuaWR9LE9iamVjdChNLmQpKGJ0LHtuYW1lOmUubmFtZSxhdmF0YXJTcmM6ZS5hdmF0YXJTcmMsY2xhc3NOYW1lOiJhdmE0OCJ9KSl9KSkpfTt2YXIgUnQ9e25hbWU6IjFzNXQ1a3UiLHN0eWxlczoic3BhbntiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo2cHggOHB4O2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaGFkb3c6MCAycHggOHB4IDAgcmdiYSgwLCAxOCwgNDYsIDAuMzIpO2ZvbnQtc2l6ZToxM3B4O3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2l0aW9uOmFsbCAwLjE2cyBlYXNlLWluLW91dDt6LWluZGV4OjE7cmlnaHQ6Y2FsYygxMDAlICsgMTBweCk7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwtNTAlKTtjb2xvcjojMDYxMzJiO31AbWVkaWEgKGhvdmVyOiBob3Zlcil7Jjpob3ZlcntzcGFue29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTUwJSk7fX19In0sRHQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KFllLmMpKCJ3ZWxjb21lTWVzc2FnZSIsbnVsbCwiIik/T2JqZWN0KE0uZCkoInAiLHtjbGFzc05hbWU6InN0YXJ0LW1lc3NhZ2UifSxPYmplY3QoTS5kKShkdCx7dmFsdWU6IndlbGNvbWVNZXNzYWdlIixlbW9qaWZ5OiEwfSkpOm51bGx9LFR0PWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KHkudXNlUmVmKShudWxsKSx0PU9iamVjdCh4LmMpKCksbj1PYmplY3QoeC5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2hvd09wdGlvbnNEcm9wZG93bn0pKSxyPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5iYW5uZXJJbWFnZX0pKSxvPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc1Byb2plY3RPbmxpbmV9KSksYT1PYmplY3QoeC5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUud2lkZ2V0Q29sb3J9KSksaT1PYmplY3QoeC5kKSh4dC5nKSxzPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc01vYmlsZX0pKSxjPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc1NvdW5kRW5hYmxlZH0pKSxsPU9iamVjdCh5LnVzZVN0YXRlKSgiIiksdT1YKCkobCwyKSxkPXVbMF0sZj11WzFdO3JldHVybiBPYmplY3QoeS51c2VFZmZlY3QpKChmdW5jdGlvbigpe2YoYVswXT09PWFbMV0/YVswXToibGluZWFyLWdyYWRpZW50KDEzNWRlZywgIi5jb25jYXQoYVswXSwiIDAlLCAiKS5jb25jYXQoYVsxXSwiIDEwMCUpIikpfSksW2FdKSxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJjaGF0LWhlYWRlciIsc3R5bGU6e2JhY2tncm91bmQ6ZCxjb2xvcjphWzJdfX0sIiIhPT1yJiZPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJiYW5uZXIiLHN0eWxlOntiYWNrZ3JvdW5kSW1hZ2U6InVybCgiLmNvbmNhdChyLCIpIil9fSksT2JqZWN0KE0uZCkoImgyIix7Y2xhc3NOYW1lOiJoMi1iYW5uZXIiLHN0eWxlOntjb2xvcjphWzJdfX0sT2JqZWN0KE0uZCkoZHQse3ZhbHVlOiJuZXdXaWRnZXRIZWFkZXJUZXh0IixmYWxsYmFjazoiQ2hhdCB3aXRoIHVzIixlbW9qaWZ5OiEwfSkpLCghaXx8aSYmcykmJk9iamVjdChNLmQpKCJidXR0b24iLHtjbGFzc05hbWU6Im1hdGVyaWFsLWljb25zIGV4aXQtY2hhdCBpLWJhbm5lciIsb25DbGljazpmdW5jdGlvbigpe3QoT2JqZWN0KHd0Lm9kKShrdC5hLmNoYXRDbG9zZWQpKSx0KE9iamVjdCh3dC5lZCkoITEpKSx0KE9iamVjdCh3dC54YykoITEpKX0sc3R5bGU6e2NvbG9yOmFbMl19LHR5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOk9iamVjdChZZS5jKSgibWluaW1pemUiLG51bGwsIk1pbmltaXplIiksY3NzOlJ0fSxPYmplY3QoTS5kKSh5dC5xLG51bGwpLE9iamVjdChNLmQpKCJzcGFuIixudWxsLE9iamVjdChZZS5jKSgibWluaW1pemUiLG51bGwsIk1pbmltaXplIikpKSxjJiZPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJtYXRlcmlhbC1pY29ucyBvcHRpb25zIGktYmFubmVyIixvbkNsaWNrOmZ1bmN0aW9uKGUpeyEoMD09PWUubmF0aXZlRXZlbnQucGFnZVgmJjA9PT1lLm5hdGl2ZUV2ZW50LnBhZ2VZKSYmbiYmZS5jdXJyZW50VGFyZ2V0LmJsdXIoKSx0KE9iamVjdCh3dC5vZCkoa3QuYS5vcHRpb25zQnV0dG9uQ2xpY2tlZCkpLHQoT2JqZWN0KHd0LkljKSghbikpfSxvbkJsdXI6ZnVuY3Rpb24oKXt0KE9iamVjdCh3dC5JYykoITEpKX0sc3R5bGU6e2NvbG9yOmFbMl19LHR5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOm4/T2JqZWN0KFllLmMpKCJjbG9zZU9wdGlvbnMiLG51bGwsIkNsb3NlIG9wdGlvbnMiKTpPYmplY3QoWWUuYykoIm9wZW5PcHRpb25zIixudWxsLCJPcGVuIG9wdGlvbnMiKSxjc3M6UnR9LE9iamVjdChNLmQpKHl0LnUsbnVsbCksT2JqZWN0KE0uZCkoInNwYW4iLG51bGwsbj9PYmplY3QoWWUuYykoImNsb3NlT3B0aW9ucyIsbnVsbCwiQ2xvc2Ugb3B0aW9ucyIpOk9iamVjdChZZS5jKSgib3Blbk9wdGlvbnMiLG51bGwsIk9wZW4gb3B0aW9ucyIpKSksT2JqZWN0KE0uZCkoSyx7aW46bixjbGFzc05hbWVzOiJkcm9wZG93bkZhZGUifSxPYmplY3QoTS5kKShBdCxudWxsKSkpLE9iamVjdChNLmQpKER0LG51bGwpLE9iamVjdChNLmQpKFN0LHtzdGF0dXNCYXJSZWY6ZX0pLE9iamVjdChNLmQpKHZ0LHt3aWRnZXRDb2xvcjphLGlzUHJvamVjdE9ubGluZTpvLHJlZjplfSkpfSxOdD1uKDMpLFB0PWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFzc2lnbmVkT3BlcmF0b3JzfSkpLHQ9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9wZXJhdG9yc30pKSxuPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zaG93T3B0aW9uc0Ryb3Bkb3dufSkpLHI9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzUHJvamVjdE9ubGluZX0pKSxvPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS53aWRnZXRDb2xvcn0pKSxhPU9iamVjdCh4LmQpKHh0LmcpLGk9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzTW9iaWxlfSkpLHM9T2JqZWN0KHguZCkoeHQubiksYz1PYmplY3QoeC5jKSgpLGw9T2JqZWN0KHkudXNlU3RhdGUpKCIiKSx1PVgoKShsLDIpLGQ9dVswXSxmPXVbMV07T2JqZWN0KHkudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtmKG9bMF09PT1vWzFdP29bMF06ImxpbmVhci1ncmFkaWVudCgxMzVkZWcsICIuY29uY2F0KG9bMF0sIiAwJSwgIikuY29uY2F0KG9bMV0sIiAxMDAlKSIpKX0pLFtvXSk7dmFyIHA9ISghaSYmYXx8aSYmcz09PU50LmcuV0lYKTtyZXR1cm4gT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToiY2hhdC1oZWFkZXIgIi5jb25jYXQocj8icHJvamVjdC1vbmxpbmUiOiIiKSxzdHlsZTp7YmFja2dyb3VuZDpkLGNvbG9yOm9bMl19fSwwPT09ZS5sZW5ndGg/T2JqZWN0KE0uZCkobXQse29wZXJhdG9yczp0fSk6T2JqZWN0KE0uZCkoZ3Qse29wZXJhdG9yczp0LGFzc2lnbmVkT3BlcmF0b3JzOmV9KSxwJiZPYmplY3QoTS5kKSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJtYXRlcmlhbC1pY29ucyBleGl0LWNoYXQgcmlwcGxlIixvbkNsaWNrOmZ1bmN0aW9uKCl7YyhPYmplY3Qod3Qub2QpKGt0LmEuY2hhdENsb3NlZCkpLGMoT2JqZWN0KHd0LmVkKSghMSkpLGMoT2JqZWN0KHd0LnhjKSghMSkpfSxzdHlsZTp7Y29sb3I6b1syXX0sdHlwZToiYnV0dG9uIiwiYXJpYS1sYWJlbCI6T2JqZWN0KFllLmMpKCJtaW5pbWl6ZSIsbnVsbCwiTWluaW1pemUiKSxjc3M6UnR9LE9iamVjdChNLmQpKHl0LnEsbnVsbCksT2JqZWN0KE0uZCkoInNwYW4iLG51bGwsT2JqZWN0KFllLmMpKCJtaW5pbWl6ZSIsbnVsbCwiTWluaW1pemUiKSkpLE9iamVjdChNLmQpKCJidXR0b24iLHtjbGFzc05hbWU6Im1hdGVyaWFsLWljb25zIG9wdGlvbnMgcmlwcGxlIixvbkNsaWNrOmZ1bmN0aW9uKGUpeyEoMD09PWUubmF0aXZlRXZlbnQucGFnZVgmJjA9PT1lLm5hdGl2ZUV2ZW50LnBhZ2VZKSYmbiYmZS5jdXJyZW50VGFyZ2V0LmJsdXIoKSxjKE9iamVjdCh3dC5vZCkoa3QuYS5vcHRpb25zQnV0dG9uQ2xpY2tlZCkpLGMoT2JqZWN0KHd0LkljKSghbikpfSxvbkJsdXI6ZnVuY3Rpb24oKXtjKE9iamVjdCh3dC5JYykoITEpKX0sc3R5bGU6e2NvbG9yOm9bMl0sbWFyZ2luUmlnaHQ6cz09PU50LmcuV0lYJiZpPzEwOnZvaWQgMH0sdHlwZToiYnV0dG9uIiwiYXJpYS1sYWJlbCI6bj9PYmplY3QoWWUuYykoImNsb3NlT3B0aW9ucyIsbnVsbCwiQ2xvc2Ugb3B0aW9ucyIpOk9iamVjdChZZS5jKSgib3Blbk9wdGlvbnMiLG51bGwsIk9wZW4gb3B0aW9ucyIpLGNzczpSdH0sT2JqZWN0KE0uZCkoeXQudSxudWxsKSxPYmplY3QoTS5kKSgic3BhbiIsbnVsbCxuP09iamVjdChZZS5jKSgiY2xvc2VPcHRpb25zIixudWxsLCJDbG9zZSBvcHRpb25zIik6T2JqZWN0KFllLmMpKCJvcGVuT3B0aW9ucyIsbnVsbCwiT3BlbiBvcHRpb25zIikpKSxPYmplY3QoTS5kKShLLHtpbjpuLGNsYXNzTmFtZXM6ImRyb3Bkb3duRmFkZSJ9LE9iamVjdChNLmQpKEF0LG51bGwpKSxPYmplY3QoTS5kKSh2dCx7d2lkZ2V0Q29sb3I6byxpc1Byb2plY3RPbmxpbmU6cn0pKX0sTHQ9bigyMSksRnQ9big0Nik7ZnVuY3Rpb24gX3QoZSl7dmFyIHQ9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI9aCgpKGUpO2lmKHQpe3ZhciBvPWgoKSh0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KHIsYXJndW1lbnRzLG8pfWVsc2Ugbj1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYigpKHRoaXMsbil9fWZ1bmN0aW9uIHp0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjgyMCx0PXcuYS51c2VTdGF0ZSgiIiksbj1YKCkodCwyKSxyPW5bMF0sbz1uWzFdLGE9dy5hLnVzZVJlZigpO2Z1bmN0aW9uIGkoKXtvKCJzaGFrZSIpLGNsZWFyVGltZW91dChhLmN1cnJlbnQpLGEuY3VycmVudD1udWxsLGEuY3VycmVudD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe28oIiIpfSksZSl9cmV0dXJue3RyaWdnZXJTaGFrZTppLHNoYWtlQ2xhc3NOYW1lOnIsc2hvdWxkU2hha2U6InNoYWtlIj09PXJ9fXZhciBJdD1uKDM4KTtmdW5jdGlvbiBVdChlKXt2YXIgdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4scj1oKCkoZSk7aWYodCl7dmFyIG89aCgpKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbyl9ZWxzZSBuPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiKCkodGhpcyxuKX19dmFyIEJ0PUx0LmcsSHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3QoRnQuYykoKTtpZighbilyZXR1cm4gMDt2YXIgcj0oIk9mZnNjcmVlbkNhbnZhcyJpbiB3aW5kb3c/bmV3IE9mZnNjcmVlbkNhbnZhcyg1MDAsMTAwKTpuLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpKS5nZXRDb250ZXh0KCIyZCIpO3JldHVybiByLmZvbnQ9dCxNYXRoLmNlaWwoci5tZWFzdXJlVGV4dChlKS53aWR0aCl9KGUsJzE3cHggIk11bGlzaCIsIHNhbnMtc2VyaWYnKT50fSxXdD1mdW5jdGlvbihlKXtmKCkobixlKTt2YXIgdD1VdChuKTtmdW5jdGlvbiBuKCl7dmFyIGU7aSgpKHRoaXMsbik7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkociksYT0wO2E8cjthKyspb1thXT1hcmd1bWVudHNbYV07cmV0dXJuIGU9dC5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChvKSksdigpKHUoKShlKSwic3RhdGUiLHtpbnB1dDoiIixpbnB1dFJvd3M6MSxpc1BsYWNlaG9sZGVyVG9Mb25nOiExfSksdigpKHUoKShlKSwiaW5wdXRSZWYiLG51bGwpLHYoKSh1KCkoZSksImluaXRpYWxJbnB1dFNjcm9sbEhlaWdodCIsMCksdigpKHUoKShlKSwib2xkSW5wdXRSb3dzIiwxKSx2KCkodSgpKGUpLCJvbGRQbGFjZWhvbGRlciIsIiIpLHYoKSh1KCkoZSksIndpbmRvd1JlZiIsT2JqZWN0KEZ0LmUpKCkpLHYoKSh1KCkoZSksIm9zTmFtZSIsT2JqZWN0KGZ0LnIpKCkubmFtZS50b0xvd2VyQ2FzZSgpKSx2KCkodSgpKGUpLCJzZXRJbnB1dFJlZiIsKGZ1bmN0aW9uKHQpe2UuaW5wdXRSZWY9dH0pKSx2KCkodSgpKGUpLCJvbklucHV0Q2hhbmdlIiwoZnVuY3Rpb24odCl7dmFyIG49ZS5zdGF0ZS5pbnB1dC5sZW5ndGgscj10LnRhcmdldC52YWx1ZTtlLnNldFN0YXRlKHtpbnB1dDpyfSwoZnVuY3Rpb24oKXtlLmFkanVzdElucHV0Um93cyhuKX0pKSxlLmRpc3BhdGNoVmlzaXRvcklzVHlwaW5nKHIsZS5zdGF0ZS5pbnB1dCl9KSksdigpKHUoKShlKSwiYWRqdXN0SW5wdXRSb3dzIiwoZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbDtpZihlLm9sZElucHV0Um93cz1lLnN0YXRlLmlucHV0Um93cywiIj09PWUuc3RhdGUuaW5wdXQmJiFlLnN0YXRlLmlzUGxhY2Vob2xkZXJUb0xvbmcpcmV0dXJuIGUuc2V0U3RhdGUoe2lucHV0Um93czoxfSksMT09PWUub2xkSW5wdXRSb3dzfHxlLnByb3BzLmlzTW9iaWxlfHxlLnByb3BzLmRpc3BhdGNoKE9iamVjdCh3dC5EYykoImNoYXRTaXplIi5jb25jYXQoMSkpKSwhMDtpZigzPT09ZS5zdGF0ZS5pbnB1dFJvd3MmJm51bGwhPT10JiZlLnN0YXRlLmlucHV0Lmxlbmd0aD50KXJldHVybiEwO3ZhciBuPWUuZ2V0Q2FsY3VsYXRlZElucHV0Um93cygpO3JldHVybiBuPT09ZS5vbGRJbnB1dFJvd3N8fGUucHJvcHMuaXNNb2JpbGV8fGUucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0LkRjKSgiY2hhdFNpemUiLmNvbmNhdChuKSkpLGUuc2V0U3RhdGUoe2lucHV0Um93czpufSksITB9KSksdigpKHUoKShlKSwiZ2V0Q2FsY3VsYXRlZElucHV0Um93cyIsKGZ1bmN0aW9uKCl7dmFyIHQ9TWF0aC5jZWlsKChlLmlucHV0UmVmLnNjcm9sbEhlaWdodC1lLmluaXRpYWxJbnB1dFNjcm9sbEhlaWdodCkvQnQpKzE7cmV0dXJuIGUucHJvcHMuaXNNb2JpbGUmJnQ+Mj8yOih0PjM/dD0zOmUuc3RhdGUuaXNQbGFjZWhvbGRlclRvTG9uZyYmdDwyP3Q9Mjp0PDEmJih0PTEpLHQpfSkpLHYoKSh1KCkoZSksInJlc3RvcmVNZXNzYWdlIiwoZnVuY3Rpb24oKXt2YXIgdD1lLnByb3BzLmJsb2NrZWRNZXNzYWdlO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5zZXRTdGF0ZSh7aW5wdXQ6dH0sKGZ1bmN0aW9uKCl7ZS5hZGp1c3RJbnB1dFJvd3MoKX0pKX0pLDApLGUucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0LnZjKSgpKX0pKSx2KCkodSgpKGUpLCJvbktleURvd24iLChmdW5jdGlvbih0KXt2YXIgbj0xMz09PXQua2V5Q29kZTtyZXR1cm4hKCFufHxuJiZ0LnNoaWZ0S2V5fHxlLnByb3BzLm5ld01lc3NhZ2VEaXNhYmxlZCkmJih0LnByZXZlbnREZWZhdWx0KCksZS5wcm9wcy5kaXNwYXRjaChPYmplY3Qod3QuQ2MpKCEwKSksITApfSkpLHYoKSh1KCkoZSksIm9uQ2xpY2siLChmdW5jdGlvbigpe2UucHJvcHMubmV3TWVzc2FnZURpc2FibGVkJiZPYmplY3QoRnQuYSkoKX0pKSx2KCkodSgpKGUpLCJkaXNwYXRjaFZpc2l0b3JJc1R5cGluZyIsKGZ1bmN0aW9uKHQsbil7dmFyIHI9dC50cmltKCksbz1uLnRyaW0oKTtyZXR1cm4oIiIhPT1yfHxyIT09bykmJihlLnByb3BzLmRpc3BhdGNoKE9iamVjdCh3dC5QYykocikpLCEwKX0pKSx2KCkodSgpKGUpLCJzZW5kTWVzc2FnZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5wcm9wcyxuPXQuZGlzcGF0Y2gscj10LnZpZXcsbz10LmlzRW1vamlQYW5lbFZpc2libGUsYT10LnRyaWdnZXJTaGFrZSxpPWUuc3RhdGUuaW5wdXQ7cmV0dXJuIiI9PT0oaT1pLnRyaW0oKSkmJnI9PT1qdC5hLndlbGNvbWUmJm4oT2JqZWN0KHd0LmxkKSgpKSwiIj09PWk/KGEoKSwhMSk6KG4oT2JqZWN0KHd0LnNjKShpKSksZS5zZXRTdGF0ZSh7aW5wdXQ6IiJ9KSxvJiZuKE9iamVjdCh3dC5lZCkoITEpKSxlLnNldFN0YXRlKHtpbnB1dFJvd3M6MX0pLCEwKX0pKSx2KCkodSgpKGUpLCJmaXhXZWJ2aWV3VG91Y2hBcmVhcyIsKGZ1bmN0aW9uKCl7dHJ5e2UucHJvcHMuaXNNb2JpbGUmJiJpb3MiPT09ZS5vc05hbWUmJihlLndpbmRvd1JlZi5wYXJlbnQuc2Nyb2xsVG8oZS53aW5kb3dSZWYucGFyZW50LnNjcm9sbFgsZS53aW5kb3dSZWYucGFyZW50LnNjcm9sbFktMSksZS53aW5kb3dSZWYucGFyZW50LnNjcm9sbFRvKGUud2luZG93UmVmLnBhcmVudC5zY3JvbGxYLGUud2luZG93UmVmLnBhcmVudC5zY3JvbGxZKzEpKX1jYXRjaCh0KXt9fSkpLGV9cmV0dXJuIGMoKShuLFt7a2V5OiJjb21wb25lbnREaWRNb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5pbnB1dFJlZiYmKGUuaW5pdGlhbElucHV0U2Nyb2xsSGVpZ2h0PWUuaW5wdXRSZWYuc2Nyb2xsSGVpZ2h0KX0pLDApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7IWUucHJvcHMubmV3TWVzc2FnZURpc2FibGVkJiZudWxsIT09ZS5wcm9wcy5ibG9ja2VkTWVzc2FnZSYmZS5yZXN0b3JlTWVzc2FnZSgpfSksMCk7dmFyIHQ9dGhpcy5pbnB1dFJlZixuPXQucGxhY2Vob2xkZXIscj10Lm9mZnNldFdpZHRoO3RoaXMub2xkUGxhY2Vob2xkZXI9bixIdChuLHIpJiZ0aGlzLnNldFN0YXRlKHtpbnB1dFJvd3M6Mixpc1BsYWNlaG9sZGVyVG9Mb25nOiEwfSl9fSx7a2V5OiJjb21wb25lbnREaWRVcGRhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMucHJvcHMuc2VuZFZpc2l0b3JNZXNzYWdlRmxhZyYmIWUuc2VuZFZpc2l0b3JNZXNzYWdlRmxhZyYmdGhpcy5zZW5kTWVzc2FnZSgpO3ZhciB0PXRoaXMuaW5wdXRSZWYsbj10LnBsYWNlaG9sZGVyLHI9dC5vZmZzZXRXaWR0aDt0aGlzLm9sZFBsYWNlaG9sZGVyIT09biYmKHRoaXMub2xkUGxhY2Vob2xkZXI9bixIdChuLHIpP3RoaXMuc2V0U3RhdGUoe2lucHV0Um93czoyLGlzUGxhY2Vob2xkZXJUb0xvbmc6ITB9KTp0aGlzLnNldFN0YXRlKHtpc1BsYWNlaG9sZGVyVG9Mb25nOiExfSkpfX0se2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGF0ZS5pbnB1dDsiIiE9PWUmJnRoaXMucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0LnZjKShlKSl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMucHJvcHMsbj10Lmxhc3RNZXNzYWdlLHI9dC5uZXdNZXNzYWdlRGlzYWJsZWQsbz10Lmhhc0Nvbm5lY3Rpb25Jc3N1ZXMsYT10LnNob3dVc2VyRGF0YU1vZGFsO3JldHVybiBPYmplY3QoTS5kKShkdCx7dmFsdWU6WyJjbGlja1RvUHJvdmlkZUVtYWlsIiwib25saW5lTWVzc2FnZVBsYWNlaG9sZGVyIiwiaGl0VGhlQnV0dG9ucyJdfSwoZnVuY3Rpb24odCl7dmFyIGk9dC5jbGlja1RvUHJvdmlkZUVtYWlsLHM9dC5vbmxpbmVNZXNzYWdlUGxhY2Vob2xkZXIsYz10LmhpdFRoZUJ1dHRvbnMsbD1zO3JldHVybiByP28/bD1zOmEmJihsPWkpOmZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PWUudHlwZT09PU90LmUuY2FyZHMsbj1lLnF1aWNrUmVwbGllcyYmZS5xdWlja1JlcGxpZXMubGVuZ3RoPjAscj1lLmJ1dHRvbnMmJmUuYnV0dG9ucy5sZW5ndGg+MDtyZXR1cm4hISh0fHxufHxyKX0obikmJiFlLnByb3BzLmlzTGFzdE1lc3NhZ2UyNGgmJihsPWMpLE9iamVjdChNLmQpKCJ0ZXh0YXJlYSIse2lkOiJuZXctbWVzc2FnZS10ZXh0YXJlYSIsdmFsdWU6ZS5zdGF0ZS5pbnB1dCxvbkNoYW5nZTplLm9uSW5wdXRDaGFuZ2Usb25LZXlEb3duOmUub25LZXlEb3duLG9uQ2xpY2s6ZS5vbkNsaWNrLHJlZjplLnNldElucHV0UmVmLHJvd3M6ZS5zdGF0ZS5pbnB1dFJvd3MscGxhY2Vob2xkZXI6bCxvbkZvY3VzOmZ1bmN0aW9uKCl7IXImJmUucHJvcHMuaXNNb2JpbGUmJmUucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0LlhiKSghMCkpfSxvbkJsdXI6ZnVuY3Rpb24oKXshciYmZS5wcm9wcy5pc01vYmlsZSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLnByb3BzLmRpc3BhdGNoKE9iamVjdCh3dC5YYikoITEpKSxlLmZpeFdlYnZpZXdUb3VjaEFyZWFzKCl9KSwxMDApfSxyZWFkT25seTpyLGNsYXNzTmFtZToiIi5jb25jYXQocj8iZGlzYWJsZWQiOiIiLCIgIikuY29uY2F0KGUucHJvcHMuc2hha2VDbGFzc05hbWUpLCJhcmlhLWxhYmVsIjpPYmplY3QoWWUuYykoIm5ld01lc3NhZ2UiLG51bGwsIk5ldyBtZXNzYWdlIiksImRhdGEtdGVzdGlkIjoibmV3TWVzc2FnZVRleHRhcmVhIn0pfSkpfX1dLFt7a2V5OiJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubmV3TWVzc2FnZUVtb2ppPyhlLmRpc3BhdGNoKE9iamVjdCh3dC5IYikoKSkse2lucHV0OnQuaW5wdXQrZS5uZXdNZXNzYWdlRW1vaml9KTplLmJsb2NrZWRNZXNzYWdlJiZlLm5ld01lc3NhZ2VEaXNhYmxlZD97aW5wdXQ6ZS5ibG9ja2VkTWVzc2FnZX06bnVsbH19XSksbn0ody5hLkNvbXBvbmVudCk7V3QuZGVmYXVsdFByb3BzPXtuZXdNZXNzYWdlRW1vamk6bnVsbCxibG9ja2VkTWVzc2FnZTpudWxsLHRyaWdnZXJTaGFrZTpmdW5jdGlvbigpe30sc2hha2VDbGFzc05hbWU6IiIsbGFzdE1lc3NhZ2U6dm9pZCAwfTt2YXIgVnQscXQ9T2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybntuZXdNZXNzYWdlRW1vamk6ZS5uZXdNZXNzYWdlRW1vamksaXNNb2JpbGU6ZS5pc01vYmlsZSxzZW5kVmlzaXRvck1lc3NhZ2VGbGFnOmUuc2VuZFZpc2l0b3JNZXNzYWdlRmxhZyxpc0Vtb2ppUGFuZWxWaXNpYmxlOmUuaXNFbW9qaVBhbmVsVmlzaWJsZSxuZXdNZXNzYWdlRGlzYWJsZWQ6T2JqZWN0KHh0LmspKGUpLGJsb2NrZWRNZXNzYWdlOmUuYmxvY2tlZE1lc3NhZ2UsdmlldzpPYmplY3QoeHQucykoZSksbGFzdE1lc3NhZ2U6T2JqZWN0KHh0LmwpKGUpLGlzTGFzdE1lc3NhZ2UyNGg6T2JqZWN0KEl0LmspKGUpLGhhc0Nvbm5lY3Rpb25Jc3N1ZXM6T2JqZWN0KHh0LnYpKGUpLHNob3dVc2VyRGF0YU1vZGFsOmUuc2hvd1VzZXJEYXRhTW9kYWx9fSkpKChWdD1XdCxmdW5jdGlvbihlKXtmKCkobixlKTt2YXIgdD1fdChuKTtmdW5jdGlvbiBuKCl7dmFyIGU7aSgpKHRoaXMsbik7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkociksYT0wO2E8cjthKyspb1thXT1hcmd1bWVudHNbYV07cmV0dXJuIGU9dC5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChvKSksdigpKHUoKShlKSwic3RhdGUiLHtzaGFrZUNsYXNzTmFtZToiIn0pLHYoKSh1KCkoZSksImNsZWFySWQiLG51bGwpLHYoKSh1KCkoZSksImlzTW91bnRlZCIsITEpLHYoKSh1KCkoZSksInRyaWdnZXJTaGFrZSIsKGZ1bmN0aW9uKCl7ZS5zZXRTdGF0ZSh7c2hha2VDbGFzc05hbWU6InNoYWtlIn0pLGNsZWFyVGltZW91dChlLmNsZWFySWQpLGUuY2xlYXJJZD1udWxsLGUuY2xlYXJJZD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuaXNNb3VudGVkJiZlLnNldFN0YXRlKHtzaGFrZUNsYXNzTmFtZToiIn0pfSksODIwKX0pKSxlfXJldHVybiBjKCkobixbe2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc01vdW50ZWQ9ITB9fSx7a2V5OiJjb21wb25lbnRXaWxsVW5tb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzTW91bnRlZD0hMX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT17dHJpZ2dlclNoYWtlOnRoaXMudHJpZ2dlclNoYWtlLHNoYWtlQ2xhc3NOYW1lOnRoaXMuc3RhdGUuc2hha2VDbGFzc05hbWV9O3JldHVybiBPYmplY3QoTS5kKShWdCxvKCkoe30sdGhpcy5wcm9wcyxlKSl9fV0pLG59KHcuYS5Db21wb25lbnQpKSksWXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImJvdHMtZHJvcGRvd24ifSxlLmlzQm90QWN0aXZlJiZPYmplY3QoTS5kKSgidWwiLHtjbGFzc05hbWU6ImJvdHMtY2FuY2VsIn0sT2JqZWN0KE0uZCkoImxpIixudWxsLE9iamVjdChNLmQpKCJzcGFuIix7dGFiSW5kZXg6IjAiLG9uQ2xpY2s6ZS5vbkNhbmNlbEJvdENsaWNrLG9uS2V5VXA6ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJmUub25DYW5jZWxCb3RDbGljaygpfSxvbkZvY3VzOmUub25Cb3RGb2N1cyxvbkJsdXI6ZS5vbkJvdEJsdXIscm9sZToiYnV0dG9uIn0sT2JqZWN0KE0uZCkoeXQuaCxudWxsKSwiICIsT2JqZWN0KFllLmMpKCJzdGFydE92ZXIiLG51bGwsIlN0YXJ0IG92ZXIiKSkpKSwhZS5pc0JvdEFjdGl2ZSYmT2JqZWN0KE0uZCkoInVsIixudWxsLE9iamVjdChNLmQpKCJsaSIsbnVsbCxPYmplY3QoTS5kKSgic3BhbiIse29uQ2xpY2s6ZnVuY3Rpb24oKXtlLm9uQm90Q2xpY2soKX0sb25LZXlVcDpmdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmZS5vbkJvdENsaWNrKCl9LG9uRm9jdXM6ZS5vbkJvdEZvY3VzLG9uQmx1cjplLm9uQm90Qmx1cixyb2xlOiJidXR0b24iLHRhYkluZGV4OmUuaXNCb3RBY3RpdmU/Ii0xIjoiMCJ9LE9iamVjdChNLmQpKHl0LmosbnVsbCksIiAiLE9iamVjdChZZS5jKSgic3RhcnRUaGVCb3QiLG51bGwsIlN0YXJ0IHRoZSBCb3QiKSkpKSl9LEd0PWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKSgic3BhbiIse2NsYXNzTmFtZToicHVsc2UifSksT2JqZWN0KE0uZCkoInNwYW4iLHtjbGFzc05hbWU6InB1bHNlLXdoaXRlIn0pLE9iamVjdChNLmQpKCJzcGFuIix7Y2xhc3NOYW1lOiJwdWxzZSBhbmltYXRpb24tZGVsYXkiLG9uQW5pbWF0aW9uRW5kOmZ1bmN0aW9uKCl7ZS5kaXNwYXRjaChPYmplY3Qod3QuVWIpKCkpfX0pLE9iamVjdChNLmQpKCJzcGFuIix7Y2xhc3NOYW1lOiJwdWxzZS13aGl0ZSBhbmltYXRpb24tZGVsYXkifSkpfSxRdD1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSl7cmV0dXJue2lzQm90QWN0aXZlOmUuaXNCb3RBY3RpdmUsYXNzaWduZWRPcGVyYXRvcnM6ZS5hc3NpZ25lZE9wZXJhdG9yc319KSkoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJvdHMtYnV0dG9uIG1hdGVyaWFsLWljb25zIHJpcHBsZSAiLmNvbmNhdChlLmlzQm90QWN0aXZlfHwwIT09ZS5hc3NpZ25lZE9wZXJhdG9ycy5sZW5ndGh8fGUuZGlzYWJsZUJ1dHRvbkFuaW1hdGlvbj8iIjoiYm90cy1hbmltYXRpb24iKSxvbkNsaWNrOmUub25DbGljayxvbkJsdXI6ZS5vbkJsdXJ9LE9iamVjdChNLmQpKHl0LmUsbnVsbCksIWUuaXNCb3RBY3RpdmUmJjA9PT1lLmFzc2lnbmVkT3BlcmF0b3JzLmxlbmd0aCYmIWUuZGlzYWJsZUJ1dHRvbkFuaW1hdGlvbiYmT2JqZWN0KE0uZCkoR3Qse2Rpc3BhdGNoOmUuZGlzcGF0Y2h9KSl9KSksS3Q9ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoeS51c2VTdGF0ZSkoITEpLHQ9WCgpKGUsMiksbj10WzBdLHI9dFsxXSxvPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5ib3RzfSkpLGE9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzQm90QWN0aXZlfSkpLGk9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmRpc2FibGVCb3RzQnV0dG9uQW5pbWF0aW9ufSkpLHM9T2JqZWN0KHguYykoKTtyZXR1cm4gbyYmMCE9PW8ubGVuZ3RoP09iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKFF0LHtvbkJsdXI6ZnVuY3Rpb24oKXtyKCExKX0sb25DbGljazpmdW5jdGlvbigpe3MoT2JqZWN0KHd0LmVkKSghMSkpLHIoKGZ1bmN0aW9uKGUpe3JldHVybiFlfSkpLHMoT2JqZWN0KHd0Lm9kKShrdC5hLmJvdHNCdXR0b25DbGlja2VkKSl9LGRpc2FibGVCdXR0b25BbmltYXRpb246aX0pLE9iamVjdChNLmQpKEsse2luOm4sY2xhc3NOYW1lczoiYm90c0xpc3RGYWRlIn0sT2JqZWN0KE0uZCkoWXQse29uQm90Q2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4hYSYmKHMoT2JqZWN0KHd0LkxiKSgpKSxyKCExKSwhMCl9LG9uQm90Rm9jdXM6ZnVuY3Rpb24oKXtyKCEwKX0sb25Cb3RCbHVyOmZ1bmN0aW9uKCl7cighMSl9LG9uQ2FuY2VsQm90Q2xpY2s6ZnVuY3Rpb24oKXtzKE9iamVjdCh3dC5vZCkoa3QuYS5ib3RDYW5jZWxlZCkpLHMoT2JqZWN0KHd0Lk1iKSgpKSxyKCExKX0saXNCb3RBY3RpdmU6YX0pKSk6bnVsbH07bigxMDcpO2Z1bmN0aW9uIFp0KGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSxbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyPWgoKShlKTtpZih0KXt2YXIgbz1oKCkodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxvKX1lbHNlIG49ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGIoKSh0aGlzLG4pfX12YXIgWHQ9ZnVuY3Rpb24oZSl7ZigpKG4sZSk7dmFyIHQ9WnQobik7ZnVuY3Rpb24gbigpe3ZhciBlO2koKSh0aGlzLG4pO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKW9bYV09YXJndW1lbnRzW2FdO3JldHVybiBlPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQobykpLHYoKSh1KCkoZSksInN0YXRlIix7aGFzRXJyb3I6ITF9KSxlfXJldHVybiBjKCkobixbe2tleToiY29tcG9uZW50RGlkQ2F0Y2giLHZhbHVlOmZ1bmN0aW9uKGUpe09iamVjdChodC5iKSgiRXJyb3Igd2hpbGUgbG9hZGluZyBFbW9qaVBpY2tlciBjaHVuayAtICIuY29uY2F0KGUubWVzc2FnZSkpLHRoaXMucHJvcHMuaGFuZGxlRW1vamlQYW5lbCgpfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlLmhhc0Vycm9yP251bGw6dGhpcy5wcm9wcy5jaGlsZHJlbn19XSxbe2tleToiZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybntoYXNFcnJvcjohMH19fV0pLG59KHcuYS5Db21wb25lbnQpLCR0PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImVtb2ppLXdyYXBwZXIifSxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJlbW9qaS1tYXJ0In0pKX0sSnQ9dy5hLmxhenkoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uZSgwKS50aGVuKG4uYmluZChudWxsLDQwNCkpfSkpLGVuPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKShYdCx7aGFuZGxlRW1vamlQYW5lbDplLmhhbmRsZUVtb2ppUGFuZWx9LE9iamVjdChNLmQpKHcuYS5TdXNwZW5zZSx7ZmFsbGJhY2s6T2JqZWN0KE0uZCkoJHQsbnVsbCl9LE9iamVjdChNLmQpKEp0LHtvbkVtb2ppQ2xpY2s6ZS5vbkVtb2ppQ2xpY2ssaXNNb2JpbGU6ZS5pc01vYmlsZX0pKSl9LHRuPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKShLLG8oKSh7fSxlLHtpbjplLmluLGNsYXNzTmFtZXM6ImZhZGUifSksZS5jaGlsZHJlbil9O3ZhciBubj17bmFtZToiMTM1d2NmNyIsc3R5bGVzOiJtYXJnaW4tcmlnaHQ6NDBweDtmbG9hdDpyaWdodDtkaXNwbGF5OmZsZXg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6Izg4OTRhYjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjEwcHg7LyogQG5vZmxpcCAqLyBkaXJlY3Rpb246bHRyO3NwYW57YWxpZ24tc2VsZjpjZW50ZXI7LyogQG5vZmxpcCAqLyBtYXJnaW4tcmlnaHQ6OHB4O31zdmd7d2lkdGg6NTBweDt9Lm1vYmlsZSAme21hcmdpbi1yaWdodDo3MHB4O30ifSxybj17bmFtZToiMTJpNjhxdyIsc3R5bGVzOiJtYXJnaW4tcmlnaHQ6NDBweDtmbG9hdDpyaWdodDsvKiBAbm9mbGlwICovIGRpcmVjdGlvbjpsdHI7aW1ne29iamVjdC1maXQ6Y29udGFpbjttYXgtd2lkdGg6MTI1cHg7bWF4LWhlaWdodDozMHB4O30ifSxvbj1mdW5jdGlvbigpe3ZhciBlPU9iamVjdCh4LmMpKCksdD1PYmplY3QoeC5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucHVibGljS2V5fSkpLG49T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnBsYXRmb3JtPT09TnQuZy5XSVg/TnQuZy5PVEhFUlM6ZS5wbGF0Zm9ybX0pKSxyPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc01vYmlsZX0pKSxvPU9iamVjdCh4LmQpKHh0LmcpLGE9T2JqZWN0KHguZCkoeHQuYyksaT1PYmplY3QoZnQubikoKSxzPSFPYmplY3QoZnQuRikodCk7cmV0dXJuIGE/T2JqZWN0KE0uZCkoImRpdiIsbnVsbCxPYmplY3QoTS5kKSgic3BhbiIse2Nzczpybn0sT2JqZWN0KE0uZCkoImltZyIse3NyYzphLGFsdDoiQ29tcGFueSBsb2dvIixvbkVycm9yOmZ1bmN0aW9uKCl7ZShPYmplY3Qod3QuQmMpKHtjdXN0b21CcmFuZGluZzoiIn0pKX19KSkpOm8/T2JqZWN0KE0uZCkoImRpdiIsbnVsbCxPYmplY3QoTS5kKSgic3BhbiIse2Nzczpubn0sT2JqZWN0KE0uZCkoInNwYW4iLG51bGwsIlBPV0VSRUQgQlkiKSwiICIsT2JqZWN0KE0uZCkoeXQuRSxudWxsKSkpOk9iamVjdChNLmQpKCJkaXYiLG51bGwsT2JqZWN0KE0uZCkoImEiLHtjc3M6bm4saHJlZjoiaHR0cHM6Ly93d3cudGlkaW8uY29tL3Bvd2VyZWQtYnktdGlkaW8vP3BsYXRmb3JtPSIuY29uY2F0KG4sIiZwcm9qZWN0PSIpLmNvbmNhdCh0LCImZGV2aWNlPSIpLmNvbmNhdChyPyJtb2JpbGUiOiJkZXNrdG9wIikuY29uY2F0KHM/IiZ1dG1fc291cmNlPXBsdWdpbl9yZWYmdXRtX21lZGl1bT13aWRnZXRfdjQmdXRtX2NhbXBhaWduPXBsdWdpbl9yZWYmdXRtX3JlZmVycmVyPSIuY29uY2F0KGkpOiIiKSx0YXJnZXQ6Il9ibGFuayIscmVsOiJub29wZW5lciBub3JlZmVycmVyIiwiYXJpYS1sYWJlbCI6T2JqZWN0KFllLmMpKCJwb3dlcmVkQnkiLG51bGwsIlBvd2VyZWQgYnkgVGlkaW8uIil9LE9iamVjdChNLmQpKCJzcGFuIixudWxsLCJQT1dFUkVEIEJZIiksIiAiLE9iamVjdChNLmQpKHl0LkUsbnVsbCkpKX0sYW49ZnVuY3Rpb24oZSl7dmFyIHQ9T2JqZWN0KHkudXNlUmVmKShudWxsKSxuPU9iamVjdCh4LmMpKCkscj1PYmplY3QoeC5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNFbW9qaVBhbmVsVmlzaWJsZX0pKSxvPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc01vYmlsZX0pKSxhPU9iamVjdCh4LmQpKHh0LmspLGk9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNob3dCcmFuZGluZ30pKSxzPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5tZXNzYWdlc30pKSxjPU9iamVjdCh4LmQpKHh0LmkpLGw9T2JqZWN0KHguZCkoSXQubCksdT1PYmplY3QoeC5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYWxsb3dBdHRhY2htZW50c30pKSxkPU9iamVjdCh4LmQpKHh0LmMpLGY9ZnVuY3Rpb24oZSl7ZSYmKCEoMD09PWUubmF0aXZlRXZlbnQucGFnZVgmJjA9PT1lLm5hdGl2ZUV2ZW50LnBhZ2VZKSYmciYmZS5jdXJyZW50VGFyZ2V0LmJsdXIoKSk7bihhP09iamVjdCh3dC5aYykoT2JqZWN0KFllLmMpKCJuZXdNZXNzYWdlRGlzYWJsZWRBbGVydCIsbnVsbCwiUGxlYXNlIGVudGVyIHlvdXIgZW1haWwgZmlyc3QuIikpOk9iamVjdCh3dC5lZCkoIXIpKX07cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImlucHV0LWdyb3VwICIuY29uY2F0KGM/ImRyYWctYWN0aXZlIjoiIil9LE9iamVjdChNLmQpKEcse2luOnIsY2xhc3NOYW1lczoiZW1vamlGYWRlIix0aW1lb3V0OjIwMCxtb3VudE9uRW50ZXI6ITAsdW5tb3VudE9uRXhpdDohMCxhcHBlYXI6ITB9LE9iamVjdChNLmQpKGVuLHtpc01vYmlsZTpvLG9uRW1vamlDbGljazpmdW5jdGlvbihlKXtuKE9iamVjdCh3dC5vZCkoa3QuYS5lbW9qaUFkZGVkKSksbihPYmplY3Qod3QuSGIpKGUubmF0aXZlKSl9LGhhbmRsZUVtb2ppUGFuZWw6Zn0pKSxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJkcmFnLWFjdGl2ZS13cmFwcGVyIGZvb3Rlci1pbnB1dC13cmFwcGVyICIuY29uY2F0KGE/ImhpZGRlbiI6IiIpfSxlLmhhc1NlcGFyYXRvciYmT2JqZWN0KE0uZCkoImhyIixudWxsKSxPYmplY3QoTS5kKShxdCx7ZGlzcGF0Y2g6bn0pKSxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJmb290ZXItYm90dG9tIn0sT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToiZm9vdGVyLWljb25zLXdyYXBwZXIgIi5jb25jYXQoYT8iaGlkZGVuIjoiIil9LE9iamVjdChNLmQpKEt0LG51bGwpLE9iamVjdChNLmQpKHRuLHtpbjpCb29sZWFuKHMuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuInZpc2l0b3IiPT09ZS5zZW5kZXJ9KSkpJiYhbCYmdX0sT2JqZWN0KE0uZCkoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJtYXRlcmlhbC1pY29ucyByaXBwbGUgIi5jb25jYXQoYT8iZGlzYWJsZWQiOiIiKSxvbkNsaWNrOmZ1bmN0aW9uKGUpe2lmKE9iamVjdChmdC55KSgpKXJldHVybiExO2UmJigwPT09ZS5uYXRpdmVFdmVudC5wYWdlWCYmMD09PWUubmF0aXZlRXZlbnQucGFnZVl8fGUuY3VycmVudFRhcmdldC5ibHVyKCkpO3JldHVybiBhP24oT2JqZWN0KHd0LlpjKShPYmplY3QoWWUuYykoIm5ld01lc3NhZ2VEaXNhYmxlZEFsZXJ0IixudWxsLCJQbGVhc2UgZW50ZXIgeW91ciBlbWFpbCBmaXJzdC4iKSkpOihuKE9iamVjdCh3dC5vZCkoa3QuYS51cGxvYWRCdXR0b25DbGlja2VkKSksdC5jdXJyZW50LmNsaWNrKCkpLCEwfSxzdHlsZTp7Y29sb3I6IiMwMDdkZmMifSwiYXJpYS1sYWJlbCI6T2JqZWN0KFllLmMpKCJhdHRhY2hGaWxlIixudWxsLCJBdHRhY2ggZmlsZSBidXR0b24iKX0sT2JqZWN0KE0uZCkoeXQuZCxudWxsKSkpLE9iamVjdChNLmQpKCJmb3JtIixudWxsLE9iamVjdChNLmQpKCJpbnB1dCIse3R5cGU6ImZpbGUiLHN0eWxlOntkaXNwbGF5OiJub25lIn0scmVmOnQsbmFtZToiYXR0YWNobWVudCIsb25DaGFuZ2U6ZnVuY3Rpb24oZSl7dmFyIHI9ZS50YXJnZXQuZmlsZXNbMF07bihPYmplY3Qod3Qua2QpKHIpKSx0LmN1cnJlbnQudmFsdWU9IiJ9LCJhcmlhLWxhYmVsIjpPYmplY3QoWWUuYykoImF0dGFjaEZpbGUiLG51bGwsIkF0dGFjaCBmaWxlIGlucHV0Iil9KSksIW8mJk9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToibWF0ZXJpYWwtaWNvbnMgZW1vamktc3dpdGNoIHJpcHBsZSAiLmNvbmNhdChyPyJhY3RpdmUiOiIiLCIgIikuY29uY2F0KGE/ImRpc2FibGVkIjoiIiksb25DbGljazpmLHN0eWxlOntjb2xvcjoiIzAwN2RmYyJ9LCJhcmlhLWxhYmVsIjpyP09iamVjdChZZS5jKSgiY2xvc2VFbW9qaVBhbmVsIixudWxsLCJDbG9zZSBFbW9qaSBwaWNrZXIiKTpPYmplY3QoWWUuYykoIm9wZW5FbW9qaVBhbmVsIixudWxsLCJPcGVuIEVtb2ppIHBpY2tlciIpfSxPYmplY3QoTS5kKSh5dC5tLG51bGwpKSksKGl8fEJvb2xlYW4oZCkpJiZPYmplY3QoTS5kKShvbixudWxsKSkpfTthbi5kZWZhdWx0UHJvcHM9e2hhc1NlcGFyYXRvcjohMX07dmFyIHNuPWFuLGNuPShuKDMzNCksbig4NSksbigyMTMpLG4oMzU5KSksbG49bi5uKGNuKSx1bj1uKDM1NyksZG49bi5uKHVuKSxmbj1uKDM2MikscG49bi5uKGZuKSxibj1mdW5jdGlvbihlKXt2YXIgdD1lLm9wZXJhdG9yLmF2YXRhclNyYz97YmFja2dyb3VuZEltYWdlOiJ1cmwoJyIuY29uY2F0KGUub3BlcmF0b3IuYXZhdGFyU3JjLCInKSIpfTpudWxsO3JldHVybiBPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCx0JiZPYmplY3QoTS5kKSgic3BhbiIse2NsYXNzTmFtZToidGltZXN0YW1wLWF2YXRhciIsc3R5bGU6dH0pLE9iamVjdChNLmQpKCJzcGFuIixudWxsLCIiLmNvbmNhdChlLm9wZXJhdG9yLm5hbWUsIiAtICIpKSl9LG1uPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlVGltZXN0YW1wIn0sZS5vcGVyYXRvciYmT2JqZWN0KE0uZCkoYm4se29wZXJhdG9yOmUub3BlcmF0b3J9KSwiIi5jb25jYXQoZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IERhdGUoMWUzKmUpO3JldHVybiBkbigpKHQpP09iamVjdChZZS5jKSgidGltZVRvZGF5IixudWxsLCJUb2RheSIpOmxuKCkodCk/T2JqZWN0KFllLmMpKCJ0aW1lWWVzdGVyZGF5IixudWxsLCJZZXN0ZXJkYXkiKTpwbigpKHQsImQvTS95eXl5Iil9KGUudGltZSksIiwgIikuY29uY2F0KHBuKCkobmV3IERhdGUoMWUzKmUudGltZSksIkg6bW0iKSkpfTttbi5kZWZhdWx0UHJvcHM9e29wZXJhdG9yOm51bGx9O3ZhciBobj1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSx0KXtyZXR1cm57b3BlcmF0b3I6dC5vcGVyYXRvcl9pZD9PYmplY3QoSXQuZikoZSx0Lm9wZXJhdG9yX2lkKTpudWxsfX0pKShtbik7ZnVuY3Rpb24gZ24oZSl7dmFyIHQ9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI9aCgpKGUpO2lmKHQpe3ZhciBvPWgoKSh0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KHIsYXJndW1lbnRzLG8pfWVsc2Ugbj1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYigpKHRoaXMsbil9fXZhciB2bj1mdW5jdGlvbihlKXtmKCkobixlKTt2YXIgdD1nbihuKTtmdW5jdGlvbiBuKCl7dmFyIGU7aSgpKHRoaXMsbik7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkociksYT0wO2E8cjthKyspb1thXT1hcmd1bWVudHNbYV07cmV0dXJuIGU9dC5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChvKSksdigpKHUoKShlKSwic3RhdGUiLHtpc1RpbWVzdGFtcFZpc2libGU6ITF9KSx2KCkodSgpKGUpLCJtZXNzYWdlUmVmIix3LmEuY3JlYXRlUmVmKCkpLHYoKSh1KCkoZSksIndyYXBwZXJSZWYiLHcuYS5jcmVhdGVSZWYoKSksdigpKHUoKShlKSwib25NZXNzYWdlQ2xpY2siLChmdW5jdGlvbigpe2Uuc2V0U3RhdGUoKGZ1bmN0aW9uKGUpe3JldHVybntpc1RpbWVzdGFtcFZpc2libGU6IWUuaXNUaW1lc3RhbXBWaXNpYmxlfX0pKX0pKSxlfXJldHVybiBjKCkobixbe2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm9wcy5hZGp1c3RNZXNzYWdlV2lkdGgodGhpcy5tZXNzYWdlUmVmLmN1cnJlbnQsdGhpcy53cmFwcGVyUmVmLmN1cnJlbnQpfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIG1lc3NhZ2Utb3BlcmF0b3IgIi5jb25jYXQodGhpcy5zdGF0ZS5pc1RpbWVzdGFtcFZpc2libGU/InRpbWVzdGFtcC12aXNpYmxlIjoiIiksb25DbGljazp0aGlzLm9uTWVzc2FnZUNsaWNrLHJlZjp0aGlzLndyYXBwZXJSZWZ9LE9iamVjdChNLmQpKCJzcGFuIix7Y2xhc3NOYW1lOiJtZXNzYWdlLWNvbnRlbnQiLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6dGhpcy5wcm9wcy5jb250ZW50fSxyZWY6dGhpcy5tZXNzYWdlUmVmfSksT2JqZWN0KE0uZCkodG4se2luOnRoaXMuc3RhdGUuaXNUaW1lc3RhbXBWaXNpYmxlfSxPYmplY3QoTS5kKShobix7dGltZTp0aGlzLnByb3BzLnRpbWVfc2VudCxvcGVyYXRvcl9pZDp0aGlzLnByb3BzLm9wZXJhdG9yX2lkfSkpKX19XSksbn0ody5hLkNvbXBvbmVudCkseW49ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hZGp1c3RNZXNzYWdlV2lkdGgsbj1PYmplY3QoeS51c2VTdGF0ZSkoITEpLHI9WCgpKG4sMiksbz1yWzBdLGE9clsxXSxpPU9iamVjdCh5LnVzZVJlZikobnVsbCkscz1PYmplY3QoeS51c2VSZWYpKG51bGwpO09iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7dChpLmN1cnJlbnQscy5jdXJyZW50KX0pLFt0XSk7dmFyIGM9T2JqZWN0KHkudXNlQ2FsbGJhY2spKChmdW5jdGlvbigpe2EoKGZ1bmN0aW9uKGUpe3JldHVybiFlfSkpfSksW10pO3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIG1lc3NhZ2UtdmlzaXRvciAiLmNvbmNhdChvJiZlLmlzRGVsaXZlcmVkPyJ0aW1lc3RhbXAtdmlzaWJsZSI6IiIsIiAiKS5jb25jYXQoZS5pc0RlbGl2ZXJlZD8iIjoibm90LWRlbGl2ZXJlZCIpLG9uQ2xpY2s6YyxzdHlsZTplLmlzRGVsaXZlcmVkP3tiYWNrZ3JvdW5kOiJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAiLmNvbmNhdChlLndpZGdldENvbG9yWzBdLCIsICIpLmNvbmNhdChlLndpZGdldENvbG9yWzFdLCIpIiksY29sb3I6ZS53aWRnZXRDb2xvclsyXX06e30scmVmOnN9LE9iamVjdChNLmQpKCJzcGFuIix7Y2xhc3NOYW1lOiJtZXNzYWdlLWNvbnRlbnQiLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6ZS5jb250ZW50fSxyZWY6aX0pLE9iamVjdChNLmQpKHRuLHtpbjpvJiZlLmlzRGVsaXZlcmVkfSxPYmplY3QoTS5kKShobix7dGltZTplLnRpbWVfc2VudH0pKSwhZS5pc0RlbGl2ZXJlZCYmT2JqZWN0KE0uZCkoInNwYW4iLHtjbGFzc05hbWU6InJlc2VuZC1tZXNzYWdlIixzdHlsZTp7Y29sb3I6InJlZCJ9fSxPYmplY3QoWWUuYykoIm1lc3NhZ2VOb3REZWxpdmVyZWQiLG51bGwsIk5vdCBkZWxpdmVyZWQuIikpKX0sd249bigxOSkseG49bi5uKHduKTtmdW5jdGlvbiBPbihlKXt2YXIgdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4scj1oKCkoZSk7aWYodCl7dmFyIG89aCgpKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbyl9ZWxzZSBuPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiKCkodGhpcyxuKX19ZnVuY3Rpb24gam4oZSx0LG4pe3JldHVybiBuP24oZSk6ImVtYWlsIj09PXQ/T2JqZWN0KGZ0LkcpKGUpOiJ0ZWwiPT09dD9PYmplY3QoZnQuSCkoZSk6IiIhPT1lLnRyaW0oKX12YXIga249ZnVuY3Rpb24oZSl7ZigpKG4sZSk7dmFyIHQ9T24obik7ZnVuY3Rpb24gbihlKXt2YXIgcjtpKCkodGhpcyxuKSxyPXQuY2FsbCh0aGlzLGUpLHYoKSh1KCkociksIm9uQ2hhbmdlIiwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQsbj10LnZhbHVlLG89dC5jaGVja2VkLGE9ImNoZWNrYm94IiE9PXQudHlwZT9uOm8saT1qbihhLHIucHJvcHMudHlwZSxyLnByb3BzLnZhbGlkYXRvcik7ci5zZXRTdGF0ZSh7dmFsdWU6YSxpc1ZhbGlkOml9KSxyLnByb3BzLm9uQ2hhbmdlJiZyLnByb3BzLm9uQ2hhbmdlKGEsaSksci5wcm9wcy5pc1ZhbGlkQ2FsbGJhY2smJnIucHJvcHMuaXNWYWxpZENhbGxiYWNrKGkpfSkpLHYoKSh1KCkociksIm9uS2V5RG93biIsKGZ1bmN0aW9uKGUpe3ZhciB0PWUua2V5Q29kZSxuPTEzPT09dDtyZXR1cm4gbiYmIXIuc3RhdGUuaXNWYWxpZCYmKHIuc2V0U3RhdGUoe3Nob3dFcnJvckljb246ITB9KSxyLnByb3BzLm9uS2V5RG93biYmci5wcm9wcy5vbktleURvd24oITEpLGNsZWFyVGltZW91dChyLmVycm9ySWNvbkhpZGVUaW1lciksci5lcnJvckljb25IaWRlVGltZXI9bnVsbCxyLmVycm9ySWNvbkhpZGVUaW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Iuc2V0U3RhdGUoe3Nob3dFcnJvckljb246ITF9KX0pLDgyMCkpLCEoIW58fCFyLnN0YXRlLmlzVmFsaWQpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHIucHJvcHMub25LZXlEb3duJiZyLnByb3BzLm9uS2V5RG93bih0KSwhMCl9KSksdigpKHUoKShyKSwib25Gb2N1cyIsKGZ1bmN0aW9uKCl7ci5wcm9wcy5vbkZvY3VzJiZyLnByb3BzLm9uRm9jdXMoKSxyLnByb3BzLnNob3VsZFRvZ2dsZUhlYWRlciYmIXIucHJvcHMuZGlzYWJsZWQmJnIuaXNNb2JpbGUmJnIucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0LlhiKSghMCkpfSkpLHYoKSh1KCkociksIm9uQmx1ciIsKGZ1bmN0aW9uKCl7ci5wcm9wcy5vbkJsdXImJnIucHJvcHMub25CbHVyKCksci5wcm9wcy5zaG91bGRUb2dnbGVIZWFkZXImJiFyLnByb3BzLmRpc2FibGVkJiZyLmlzTW9iaWxlJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe3IucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0LlhiKSghMSkpfSksMTAwKX0pKSx2KCkodSgpKHIpLCJnZXRFcnJvciIsKGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXIucHJvcHMuZm9yY2VFcnJvckljb24/ci5zdGF0ZS5zaG93RXJyb3JJY29uOnIucHJvcHMuZm9yY2VFcnJvckljb259KSk7dmFyIG89bnVsbD09PWUudmFsdWU/IiI6ZS52YWx1ZTtyZXR1cm4gci5zdGF0ZT17dmFsdWU6byxpc1ZhbGlkOmpuKG8sZS50eXBlLGUudmFsaWRhdG9yKSxzaG93RXJyb3JJY29uOiExfSxyLmlzTW9iaWxlPU9iamVjdChmdC5EKSgpLHIuZXJyb3JJY29uSGlkZVRpbWVyPW51bGwscn1yZXR1cm4gYygpKG4sW3trZXk6ImNvbXBvbmVudERpZE1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdGUuaXNWYWxpZDt0aGlzLnN0YXRlLmlzVmFsaWQmJih0aGlzLnByb3BzLm9uQ2hhbmdlJiZ0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMuc3RhdGUudmFsdWUsZSksdGhpcy5wcm9wcy5pc1ZhbGlkQ2FsbGJhY2smJnRoaXMucHJvcHMuaXNWYWxpZENhbGxiYWNrKGUpKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9bnVsbCxuPW51bGw7cmV0dXJuImNoZWNrYm94IiE9PXRoaXMucHJvcHMudHlwZT8odD1PYmplY3QoTS5kKShkdCx7dmFsdWU6W3RoaXMucHJvcHMucGxhY2Vob2xkZXJdfSwoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdChNLmQpKCJpbnB1dCIse3R5cGU6ZS5wcm9wcy50eXBlLHBsYWNlaG9sZGVyOnRbZS5wcm9wcy5wbGFjZWhvbGRlcl0sb25DaGFuZ2U6ZS5vbkNoYW5nZSxvbktleURvd246ZS5vbktleURvd24sdmFsdWU6ZS5zdGF0ZS52YWx1ZSxyZWFkT25seTplLnByb3BzLmRpc2FibGVkLGNsYXNzTmFtZTplLnByb3BzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiIscmVmOmUucHJvcHMuYmluZElucHV0UmVmLG9uRm9jdXM6ZS5vbkZvY3VzLG9uQmx1cjplLm9uQmx1cn0pfSkpLG49T2JqZWN0KE0uZCkoeXQuYixudWxsKSx0aGlzLnN0YXRlLmlzVmFsaWQ/bj1PYmplY3QoTS5kKSh5dC55LG51bGwpOiF0aGlzLnN0YXRlLmlzVmFsaWQmJnRoaXMuZ2V0RXJyb3IoKSYmKG49T2JqZWN0KE0uZCkoeXQuaCxudWxsKSkpOnQ9T2JqZWN0KE0uZCkoImxhYmVsIix7aHRtbEZvcjp0aGlzLnByb3BzLmlkfSxPYmplY3QoTS5kKSgiaW5wdXQiLHtpZDp0aGlzLnByb3BzLmlkLHR5cGU6dGhpcy5wcm9wcy50eXBlLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsY2hlY2tlZDp0aGlzLnN0YXRlLnZhbHVlLGRpc2FibGVkOnRoaXMucHJvcHMuZGlzYWJsZWQsY2xhc3NOYW1lOnRoaXMucHJvcHMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIixyZWY6dGhpcy5wcm9wcy5iaW5kSW5wdXRSZWZ9KSxPYmplY3QoTS5kKShkdCx7dmFsdWU6dGhpcy5wcm9wcy5wbGFjZWhvbGRlcixsaW5raWZ5OiEwfSkpLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImZpZWxkLXdyYXBwZXIgIi5jb25jYXQodGhpcy5wcm9wcy5zaGFrZUNsYXNzTmFtZSwiICIpLmNvbmNhdCh0aGlzLmdldEVycm9yKCk/ImZpZWxkLXdyYXBwZXItd2l0aC1lcnJvciI6IiIpfSxuLHQpfX1dKSxufSh3LmEuQ29tcG9uZW50KTtrbi5kZWZhdWx0UHJvcHM9e3BsYWNlaG9sZGVyOiIiLGJpbmRJbnB1dFJlZjp2b2lkIDAsb25DaGFuZ2U6dm9pZCAwLG9uS2V5RG93bjpudWxsLGRpc2FibGVkOiExLGlzVmFsaWRDYWxsYmFjazpudWxsLHZhbHVlOm51bGwsZm9yY2VFcnJvckljb246ITEsaWQ6dm9pZCAwLHZhbGlkYXRvcjp2b2lkIDAsc2hvdWxkVG9nZ2xlSGVhZGVyOiEwLG9uRm9jdXM6dm9pZCAwLG9uQmx1cjp2b2lkIDAsc2hha2VDbGFzc05hbWU6IiJ9O3ZhciBBbj1PYmplY3QoeC5iKSgpKGtuKSxNbj1uKDQyKSxDbj13LmEuZm9yd2FyZFJlZigoZnVuY3Rpb24oZSx0KXt2YXIgbj0iIixyPXt9O2lmKCJlbWFpbCI9PT1lLnR5cGUpbj0iZW1haWwiO2Vsc2UgaWYoIm5hbWUiPT09ZS50eXBlKW49InRleHQiO2Vsc2UgaWYoInBob25lIj09PWUudHlwZSluPSJ0ZWwiO2Vsc2UgaWYoImdkcHJDb25zZW50Ij09PWUudHlwZSluPSJjaGVja2JveCIsci52YWxpZGF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lfTtlbHNlIGlmKGUudHlwZT09PU1uLmIpe2lmKHIudmFsaWRhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuITB9LHIucGxhY2Vob2xkZXI9InNpZ25VcE5ld3NsZXR0ZXIiLGUudmFsdWUmJiJvYmplY3QiPT09eG4oKShlLnZhbHVlKSl7dmFyIGE9ZS52YWx1ZTtyLnZhbHVlPSJzdWJzY3JpYmVkIj09PWEudmFsdWV9bj0iY2hlY2tib3gifWVsc2V7aWYoInNpZ25VcE5ld3NsZXR0ZXIiIT09ZS50eXBlKXJldHVybiBudWxsO3IudmFsaWRhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuITB9LHIucGxhY2Vob2xkZXI9InNpZ25VcE5ld3NsZXR0ZXIiLG49ImNoZWNrYm94In1yZXR1cm4gT2JqZWN0KE0uZCkoQW4sbygpKHtpZDplLnR5cGUsdHlwZTpuLG9uQ2hhbmdlOmZ1bmN0aW9uKHQsbil7ZS5vbklucHV0Q2hhbmdlKHQsbixlLnR5cGUpfSx2YWx1ZTplLnZhbHVlLGRpc2FibGVkOmUuZGlzYWJsZWQscGxhY2Vob2xkZXI6ZS5wbGFjZWhvbGRlcixiaW5kSW5wdXRSZWY6dCxvbktleURvd246ZS5vbktleURvd24sZm9yY2VFcnJvckljb246ZS5mb3JjZUVycm9ySWNvbixzaGFrZUNsYXNzTmFtZTplLnNoYWtlQ2xhc3NOYW1lfSxyKSl9KSk7Q24uZGVmYXVsdFByb3BzPXt2YWx1ZTpudWxsLGZvcmNlRXJyb3JJY29uOiExLG9uS2V5RG93bjp2b2lkIDAsb25JbnB1dENoYW5nZTpmdW5jdGlvbigpe30sc2hha2VDbGFzc05hbWU6IiJ9O3ZhciBFbj1DbixTbj1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSl7cmV0dXJue3Zpc2l0b3I6ZS52aXNpdG9yfX0pKSgoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS1vcGVyYXRvciBwcmUtY2hhdCJ9LE9iamVjdChNLmQpKGR0LHt2YWx1ZToicHJlZm9ybU1lc3NhZ2UiLGVtb2ppZnk6ITAsbGlua2lmeTohMH0pLGUucHJlQ2hhdEZpZWxkcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QoTS5kKShFbix7a2V5OnQudHlwZSx0eXBlOnQudHlwZSxwbGFjZWhvbGRlcjp0LnBsYWNlaG9sZGVyLHZhbHVlOmUudmlzaXRvclt0LnR5cGVdLGRpc2FibGVkOiEwfSl9KSkpfSkpLFJuPWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KHguZCkoeHQudCk7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS1vcGVyYXRvciBhbHdheXMtb25saW5lIn0sT2JqZWN0KE0uZCkoZHQse3ZhbHVlOiJhbHdheXNPbmxpbmVFbmdhZ2VNZXNzYWdlIixlbW9qaWZ5OiEwLGxpbmtpZnk6ITB9KSxPYmplY3QoTS5kKShBbix7dHlwZToiZW1haWwiLHBsYWNlaG9sZGVyOiJwcmVmb3JtSW5wdXRfZW1haWwiLHZhbHVlOmUsZGlzYWJsZWQ6ITB9KSl9LERuPWZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdCh4LmQpKHh0LmopLG49ZnVuY3Rpb24obil7dmFyIHI9ZS5kaXNwYXRjaDtpZih0KXIoT2JqZWN0KHd0LlpjKShPYmplY3QoWWUuYykoImRpc2FibGVkVGV4dElucHV0UGxhY2Vob2xkZXIiLG51bGwsIkNob29zZSBvbmUgb2YgdGhlIG9wdGlvbnMgYWJvdmUgXHUyNjFkXHVmZTBmIikpKTtlbHNle3ZhciBvPW4/T2JqZWN0KFllLmMpKCJyYXRlU2F0aXNmaWVkIixudWxsLCJZZXMsIEkgZGlkISIpOk9iamVjdChZZS5jKSgicmF0ZURpc3NhdGlzZmllZCIsbnVsbCwiTm8uIElcdTIwMTltIG5vdCBzYXRpc2ZpZWQuIik7cihPYmplY3Qod3Quc2MpKG8sITEpKSxyKE9iamVjdCh3dC5uZCkobikpLGUuZGlzcGF0Y2goT2JqZWN0KHd0LkVjKShlLmlkKSl9fTtyZXR1cm4gT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToibWVzc2FnZSBtZXNzYWdlLW9wZXJhdG9yIG1lc3NhZ2Utd2l0aC1idXR0b25zICIuY29uY2F0KGUuZGlzYWJsZWQ/ImJ1dHRvbnMtaGlkZGVuIjoiIil9LE9iamVjdChNLmQpKCJzcGFuIixudWxsLE9iamVjdChNLmQpKGR0LHt2YWx1ZToicmF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2UifSkpLCFlLmRpc2FibGVkJiZPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJidXR0b24td3JhcHBlciJ9LE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbighMCl9fSxPYmplY3QoTS5kKSgic3BhbiIsbnVsbCxPYmplY3QoTS5kKShkdCx7dmFsdWU6InJhdGVTYXRpc2ZpZWQifSkpKSxPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIG4oITEpfX0sT2JqZWN0KE0uZCkoInNwYW4iLG51bGwsT2JqZWN0KE0uZCkoZHQse3ZhbHVlOiJyYXRlRGlzc2F0aXNmaWVkIn0pKSkpKX0sVG49ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kaXNhYmxlZCxuPWUuaWQscj1lLmNvbnRlbnQsbz1lLmlzUmF0ZUdvb2QsYT1PYmplY3QoeC5jKSgpLGk9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNlbmRWaXNpdG9yTWVzc2FnZUZsYWd9KSkscz1PYmplY3QoeS51c2VTdGF0ZSkoITEpLGM9WCgpKHMsMiksbD1jWzBdLHU9Y1sxXSxkPU9iamVjdCh5LnVzZVN0YXRlKSgiIiksZj1YKCkoZCwyKSxwPWZbMF0sYj1mWzFdO09iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7IXQmJmkmJmwmJmEoT2JqZWN0KHd0LnVjKShuLHApKX0pLFtwLHQsYSxuLGwsaV0pO3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIG1lc3NhZ2Utb3BlcmF0b3IgcmF0ZS1jb21tZW50In0sT2JqZWN0KE0uZCkoInNwYW4iLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOm90KE9iamVjdChZZS5jKShvPyJjb21tZW50Rm9yR29vZFJhdGluZyI6ImNvbW1lbnRGb3JCYWRSYXRpbmciLG51bGwsbz8iVGhhbmsgeW91IGZvciB5b3VyIHJhdGUgXHVkODNkXHVkZTBkIFdvdWxkIHlvdSBsaWtlIHRvIGxlYXZlIGEgY29tbWVudD8iOiJUaGFuayB5b3UgZm9yIHlvdXIgcmF0ZSBcdWQ4M2RcdWRlMjUgV291bGQgeW91IGxpa2UgdG8gbGVhdmUgYSBjb21tZW50PyIpKX19KSxPYmplY3QoTS5kKShBbix7dHlwZToidGV4dCIscGxhY2Vob2xkZXI6InR5cGVPcHRpb25hbCIsb25DaGFuZ2U6YixvbktleURvd246ZnVuY3Rpb24oZSl7cmV0dXJuISgxMyE9PWV8fCFsKSYmKGEoT2JqZWN0KHd0LkNjKSghMCkpLE9iamVjdChGdC5iKSgpLCEwKX0saXNWYWxpZENhbGxiYWNrOnUsdmFsdWU6dD9yOm51bGwsZGlzYWJsZWQ6dH0pKX07big1OCksbigxMjgpO2Z1bmN0aW9uIE5uKGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSxbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyPWgoKShlKTtpZih0KXt2YXIgbz1oKCkodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxvKX1lbHNlIG49ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGIoKSh0aGlzLG4pfX12YXIgUG49ZnVuY3Rpb24oZSl7ZigpKG4sZSk7dmFyIHQ9Tm4obik7ZnVuY3Rpb24gbigpe3ZhciBlO2koKSh0aGlzLG4pO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKW9bYV09YXJndW1lbnRzW2FdO3JldHVybiBlPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQobykpLHYoKSh1KCkoZSksInN0YXRlIix7cGVyY2VudExvYWRlZDowfSksdigpKHUoKShlKSwicmVtb3ZlTWVzc2FnZUFuZFNob3dBbGVydCIsKGZ1bmN0aW9uKHQpe2UucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0Lm5jKShlLnByb3BzLmlkKSksZS5wcm9wcy5kaXNwYXRjaChPYmplY3Qod3QuWmMpKHQpKX0pKSx2KCkodSgpKGUpLCJpc0ZpbGVWYWxpZCIsKGZ1bmN0aW9uKHQpe3RyeXtpZih0LnNpemUvMTAyNC8xMDI0PjEwKXJldHVybiBlLnJlbW92ZU1lc3NhZ2VBbmRTaG93QWxlcnQoT2JqZWN0KFllLmMpKCJmaWxlVG9CaWdBbGVydCIsbnVsbCwiRmlsZSBleGNlZWQgMTBNQiBsaW1pdC4iKSksITE7dmFyIG49dC5uYW1lLnNwbGl0KCIuIikucG9wKCkudG9Mb3dlckNhc2UoKTtyZXR1cm4tMSE9PU90LmEuaW5kZXhPZihuKXx8KGUucmVtb3ZlTWVzc2FnZUFuZFNob3dBbGVydChPYmplY3QoWWUuYykoImV4dGVuc2lvbk5vdFN1cHBvcnRlZEFsZXJ0IixudWxsLCJGaWxlIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkLiIpKSwhMSl9Y2F0Y2gocil7cmV0dXJuIE9iamVjdChodC5hKShyKSwhMX19KSksdigpKHUoKShlKSwiaGFuZGxlWGhyRXJyb3IiLChmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJFUlJfSU5WQUxJRF9FWFRFTlNJT04iOnJldHVybiBlLnJlbW92ZU1lc3NhZ2VBbmRTaG93QWxlcnQoT2JqZWN0KFllLmMpKCJleHRlbnNpb25Ob3RTdXBwb3J0ZWRBbGVydCIsbnVsbCwiRmlsZSBleHRlbnNpb24gbm90IHN1cHBvcnRlZC4iKSksITE7Y2FzZSJFUlJfRklMRV9TSVpFIjpyZXR1cm4gZS5yZW1vdmVNZXNzYWdlQW5kU2hvd0FsZXJ0KE9iamVjdChZZS5jKSgiZmlsZVRvQmlnQWxlcnQiLG51bGwsIkZpbGUgZXhjZWVkIDEwTUIgbGltaXQuIikpLCExO2RlZmF1bHQ6cmV0dXJuIGUucmVtb3ZlTWVzc2FnZUFuZFNob3dBbGVydChPYmplY3QoWWUuYykoInVua25vd25FcnJvckFsZXJ0IixudWxsLCJVbmtub3duIGVycm9yIG9jY3VycmVkLiIpKSwhMX19KSksdigpKHUoKShlKSwidXBsb2FkRmlsZSIsKGZ1bmN0aW9uKHQpe2lmKCFlLmlzRmlsZVZhbGlkKHQpKXJldHVybiExO2lmKE9iamVjdChmdC55KSgpKXRyeXt2YXIgbj10Lm5hbWUuc3BsaXQoIi4iKS5wb3AoKS50b0xvd2VyQ2FzZSgpLHI9T2JqZWN0KE90LmMpKG4pLG89bmV3IEZpbGVSZWFkZXI7by5vbmxvYWQ9ZnVuY3Rpb24obyl7ZS5wcm9wcy5kaXNwYXRjaChPYmplY3Qod3QuZ2QpKGUucHJvcHMuaWQscixvLnRhcmdldC5yZXN1bHQsdC5uYW1lLG4sby50YXJnZXQucmVzdWx0KSl9LG8ucmVhZEFzRGF0YVVSTCh0KX1jYXRjaChjKXtPYmplY3QoaHQuYSkoYyl9ZWxzZSB0cnl7dmFyIGE9IiIuY29uY2F0KCJodHRwczovL2FwaS12Mi50aWRpby5jby8iLCJ1cGxvYWQvZmlsZS9leHRlcm5hbD9wcm9qZWN0X3B1YmxpY19rZXk9IikuY29uY2F0KGUucHJvcHMucHVibGljS2V5LCImdmlzaXRvcl9pZD0iKS5jb25jYXQoZS5wcm9wcy52aXNpdG9ySUQpLGk9bmV3IFhNTEh0dHBSZXF1ZXN0LHM9bmV3IEZvcm1EYXRhO2kub3BlbigiUE9TVCIsYSwhMCksaS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZig0PT09aS5yZWFkeVN0YXRlJiYyMDA9PT1pLnN0YXR1cyl7dmFyIG49SlNPTi5wYXJzZShpLnJlc3BvbnNlVGV4dCk7aWYoITE9PT1uLnN0YXR1cylyZXR1cm4gZS5oYW5kbGVYaHJFcnJvcihuLnZhbHVlKSwhMTtlLnByb3BzLmRpc3BhdGNoKE9iamVjdCh3dC5nZCkoZS5wcm9wcy5pZCxuLnZhbHVlLnR5cGUsbi52YWx1ZS51cmwsdC5uYW1lLG4udmFsdWUubWV0YS5leHRlbnNpb24sbi52YWx1ZS50aHVtYi5tZWRpdW0pKX1yZXR1cm4hMH0scy5hcHBlbmQoInVwbG9hZCIsdCksaS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLChmdW5jdGlvbih0KXtpZih0Lmxlbmd0aENvbXB1dGFibGUpe3ZhciBuPU1hdGgucm91bmQoMTAwKnQubG9hZGVkL3QudG90YWwpO2Uuc2V0U3RhdGUoe3BlcmNlbnRMb2FkZWQ6bn0pfX0pLCExKSxpLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXtlLnNldFN0YXRlKHtwZXJjZW50TG9hZGVkOjEwMH0pfSksITEpLGkub25lcnJvcj1mdW5jdGlvbigpe09iamVjdChodC5hKSgiRmlsZSB1cGxvYWQgZXJyb3IiKSxlLnJlbW92ZU1lc3NhZ2VBbmRTaG93QWxlcnQoT2JqZWN0KFllLmMpKCJnZW5lcmljRmlsZVVwbG9hZEFsZXJ0IixudWxsLCJTb21ldGhpbmcgd2VudCB3cm9uZyB3aGVuIHRyeWluZyB0byB1cGxvYWQgeW91ciBmaWxlLiIpKX0saS5zZW5kKHMpfWNhdGNoKGMpe09iamVjdChodC5hKShjKX1yZXR1cm4hMH0pKSxlfXJldHVybiBjKCkobixbe2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy51cGxvYWRGaWxlKHRoaXMucHJvcHMuZmlsZSl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS11cGxvYWQgbWVzc2FnZS0iLmNvbmNhdCh0aGlzLnByb3BzLnNlbmRlcikscm9sZToicHJvZ3Jlc3NiYXIiLCJhcmlhLXZhbHVlbWluIjoiMCIsImFyaWEtdmFsdWVtYXgiOiIxMDAiLCJhcmlhLXZhbHVlbm93Ijp0aGlzLnN0YXRlLnBlcmNlbnRMb2FkZWQsc3R5bGU6e2JhY2tncm91bmQ6ImxpbmVhci1ncmFkaWVudCgxMzVkZWcsICIuY29uY2F0KHRoaXMucHJvcHMud2lkZ2V0Q29sb3JbMF0sIiwgIikuY29uY2F0KHRoaXMucHJvcHMud2lkZ2V0Q29sb3JbMV0sIikiKSxjb2xvcjp0aGlzLnByb3BzLndpZGdldENvbG9yWzJdfX0sT2JqZWN0KE0uZCkoInNwYW4iLG51bGwsT2JqZWN0KE0uZCkody5hLkZyYWdtZW50LG51bGwsT2JqZWN0KE0uZCkoeXQucCxudWxsKSwiIi5jb25jYXQoT2JqZWN0KFllLmMpKCJ1cGxvYWRlZCIsbnVsbCwiVXBsb2FkZWQiKSwiICIpLmNvbmNhdCh0aGlzLnN0YXRlLnBlcmNlbnRMb2FkZWQsIiUiKSkpKX19XSksbn0ody5hLkNvbXBvbmVudCksTG49T2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybntwdWJsaWNLZXk6ZS5wdWJsaWNLZXksdmlzaXRvcklEOmUudmlzaXRvci5pZH19KSkoUG4pO2Z1bmN0aW9uIEZuKGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSxbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyPWgoKShlKTtpZih0KXt2YXIgbz1oKCkodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxvKX1lbHNlIG49ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGIoKSh0aGlzLG4pfX12YXIgX249ZnVuY3Rpb24oZSl7ZigpKG4sZSk7dmFyIHQ9Rm4obik7ZnVuY3Rpb24gbigpe3JldHVybiBpKCkodGhpcyxuKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYygpKG4sW3trZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5wcm9wcy5leHRlbnNpb24pe2Nhc2UiZG9jIjpjYXNlImRvY3giOnJldHVybiBPYmplY3QoTS5kKSh5dC5rLG51bGwpO2Nhc2UiZmx2IjpyZXR1cm4gT2JqZWN0KE0uZCkoeXQubixudWxsKTtjYXNlIm1wZyI6Y2FzZSJtcDQiOmNhc2UiYXZpIjpyZXR1cm4gT2JqZWN0KE0uZCkoeXQucixudWxsKTtjYXNlInBkZiI6cmV0dXJuIE9iamVjdChNLmQpKHl0LnYsbnVsbCk7Y2FzZSJ0eHQiOmNhc2UicnRmIjpyZXR1cm4gT2JqZWN0KE0uZCkoeXQuRixudWxsKTtjYXNlIndtYSI6Y2FzZSJtcDMiOnJldHVybiBPYmplY3QoTS5kKSh5dC5ILG51bGwpO2Nhc2UieGxzIjpjYXNlInhsc3giOmNhc2UiY3N2IjpyZXR1cm4gT2JqZWN0KE0uZCkoeXQuSSxudWxsKTtkZWZhdWx0OnJldHVybiBudWxsfX19XSksbn0ody5hLkNvbXBvbmVudCksem49KG4oMjExKSxuKDEwNSkpLEluPW4ubih6biksVW49KG4oMTYyKSxuKDE1MykpLEJuPW4ubihVbiksSG49Imh0dHBzOi8vYXNzZXRzLnRpZGlvY2hhdC5jb20vaW1nL25vdF9mb3VuZC5qcGciO2Z1bmN0aW9uIFduKGUpe3JldHVybiBWbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVm4oKXtyZXR1cm4oVm49Qm4oKShJbi5hLm1hcmsoKGZ1bmN0aW9uIGUodCl7dmFyIG4scj1hcmd1bWVudHM7cmV0dXJuIEluLmEud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49ci5sZW5ndGg+MSYmdm9pZCAwIT09clsxXT9yWzFdOkhuLGUuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKChmdW5jdGlvbihlLG4pe3ZhciByPW5ldyBJbWFnZTtyLnNyYz10LHIub25sb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIGUodCl9LHIub25lcnJvcj1mdW5jdGlvbihlKXtuKGUpfX0pKS5jYXRjaCgoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKSk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIHFuPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY29udGVudCxuPWUuZXh0ZW5zaW9uLHI9ZS50aHVtYixvPWUubmFtZSxhPWUuaWQsaT1PYmplY3QoeC5jKSgpLHM9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnB1YmxpY0tleX0pKSxjPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS52aXNpdG9yLmlkfSkpLGw9T2JqZWN0KHguZCkoeHQubiksdT1PYmplY3QoeS51c2VTdGF0ZSkodCksZD1YKCkodSwyKSxmPWRbMF0scD1kWzFdLGI9T2JqZWN0KHkudXNlU3RhdGUpKHJ8fCIiKSxtPVgoKShiLDIpLGg9bVswXSxnPW1bMV0sdj1PYmplY3QoeS51c2VTdGF0ZSkoITApLHc9WCgpKHYsMiksTz13WzBdLGo9d1sxXSxrPSJnaWYiIT09bj9oOmYsQT1mdW5jdGlvbigpe2coSG4pLHAoSG4pfSxDPU9iamVjdCh5LnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe3ZhciBlPUJuKCkoSW4uYS5tYXJrKChmdW5jdGlvbiBlKHQpe3ZhciBuLHIsbyxhLGksbD1hcmd1bWVudHM7cmV0dXJuIEluLmEud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYobj1sLmxlbmd0aD4xJiZ2b2lkIDAhPT1sWzFdJiZsWzFdLHQhPT1Ibil7ZS5uZXh0PTQ7YnJlYWt9cmV0dXJuIGooITEpLGUuYWJydXB0KCJyZXR1cm4iLCIiKTtjYXNlIDQ6aWYoLTEhPT10LmluZGV4T2YoIi9jb252ZXJzYXRpb24vIikpe2UubmV4dD0xNDticmVha31yZXR1cm4gcj1PYmplY3QoZnQuSykodCksbz0iLyIuY29uY2F0KHMsIi9jb252ZXJzYXRpb24vIikuY29uY2F0KGMpLGE9cj8iIi5jb25jYXQoci5wcm90b2NvbCwiLy8iKS5jb25jYXQoci5ob3N0KS5jb25jYXQobykuY29uY2F0KHIucGF0aG5hbWUpLmNvbmNhdChyLnNlYXJjaCkuY29uY2F0KHIuaGFzaCk6dCxlLm5leHQ9MTAsV24oYSk7Y2FzZSAxMDppPWUuc2VudCxuP2coaSk6cChpKSxlLm5leHQ9MTU7YnJlYWs7Y2FzZSAxNDpBKCk7Y2FzZSAxNTpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsIiIpO2Nhc2UgMTY6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksW3MsY10pO3JldHVybiBPP09iamVjdChNLmQpKCJzcGFuIixudWxsLE9iamVjdChNLmQpKCJhIix7aHJlZjp0LHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLG9uQ2xpY2s6ZnVuY3Rpb24odCl7bCE9PU50LmcuV0lYJiYodC5wcmV2ZW50RGVmYXVsdCgpLGkoT2JqZWN0KHd0LmVjKShmKSkpLGUub25DbGljaygpfX0sT2JqZWN0KE0uZCkoeXQubCxudWxsKSxPYmplY3QoTS5kKSgiaW1nIix7Y2xhc3NOYW1lOiJhdHRhY2htZW50LWltZyIsc3JjOmssb25Mb2FkOmZ1bmN0aW9uKGUpe2UuY3VycmVudFRhcmdldC5zZXRBdHRyaWJ1dGUoImFsdCIsIiIuY29uY2F0KG8pKSxpKE9iamVjdCh3dC5oZCkoYSwhMCkpfSxvbkVycm9yOmZ1bmN0aW9uKCl7QyhmKSxDKGgsITApfSxhbHQ6IiJ9KSkpOm51bGx9O3ZhciBZbj1PYmplY3QoTS5jKSh7cG9zaXRpb246ImFic29sdXRlIixib3R0b206T2JqZWN0KGZ0LkQpKCk/LTM3Oi0zMSxsZWZ0OjE2LGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImZsZXgtc3RhcnQiLHdpZHRoOjI2MH0sIiIpLEduPU9iamVjdChNLmMpKHtmb250U2l6ZToxMixtYXJnaW5Ub3A6T2JqZWN0KGZ0LkQpKCk/NjoxMSxtYXJnaW5SaWdodDo4fSwiIiksUW49e25hbWU6InN5Y3BkeiIsc3R5bGVzOiJwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3dpZHRoOjEwMHB4O2hlaWdodDo0OHB4OyJ9LEtuPXtuYW1lOiIxMXR4MzM0IixzdHlsZXM6InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzowcHggN3B4O3dpZHRoOjc3cHg7aGVpZ2h0OjQwcHg7YmFja2dyb3VuZC1jb2xvcjojRjBGMkY3O2JvcmRlcjozcHggc29saWQgd2hpdGU7Ym9yZGVyLXJhZGl1czoyMHB4O2JveC1zaGFkb3c6MHB4IDNweCA4cHggcmdiYSgwLCAxOCwgNDYsIDAuMTIpOzo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDozNXB4O3dpZHRoOjFweDtoZWlnaHQ6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOiNDOUQxREQ7fSJ9LFpuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdChmdC5EKSgpP09iamVjdChNLmMpKHtvdXRsaW5lOiJub25lIix3aWR0aDo0OCxoZWlnaHQ6NDgsYm9yZGVyUmFkaXVzOiI1MCUiLGJhY2tncm91bmRDb2xvcjoiI0YwRjJGNyIsYm94U2hhZG93OiIwcHggM3B4IDhweCAwcHggcmdiYSgwLCAyNywgNzEsIDAuMDgpIixib3JkZXI6IjNweCBzb2xpZCB3aGl0ZSIsc3ZnOntmaWxsOmU/IiNBQ0I4Q0IiOiIjMDA3REZDIixoZWlnaHQ6MjIsd2lkdGg6MjJ9fSwiIik6T2JqZWN0KE0uYykoe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsY3Vyc29yOnQ/ImluaXRpYWwiOiJwb2ludGVyIixvdXRsaW5lOiJub25lIiwiOjpiZWZvcmUiOntjb250ZW50OiInJyIscG9zaXRpb246ImFic29sdXRlIixiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMCwxMjUsMjUyLDAuMTIpIix3aWR0aDozNCxoZWlnaHQ6MzQsYm9yZGVyUmFkaXVzOiI1MCUiLHRyYW5zaXRpb246ImFsbCAwLjE2cyBlYXNlLWluLW91dCIsdHJhbnNmb3JtOiJzY2FsZSgwKSIsdG9wOiJjYWxjKDUwJSAtIDE3cHgpIixsZWZ0OiJjYWxjKDUwJSAtIDE3cHgpIn0sIiY6aG92ZXI6OmJlZm9yZSI6e3RyYW5zZm9ybTp0PyJzY2FsZSgwKSI6InNjYWxlKDEpIn0sc3ZnOntmaWxsOmU/IiNBQ0I4Q0IiOiIjMDA3REZDIixoZWlnaHQ6MjAsd2lkdGg6MjB9fSwiIil9LFhuPWZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdCh4LmMpKCksbj1mdW5jdGlvbihuKXshZS5yYXRpbmcmJmUucmF0aW5nSWQmJnQoT2JqZWN0KHd0LmxjKShlLm1lc3NhZ2VJZCxlLnJhdGluZ0lkLG4pKX07cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjc3M6WW59LE9iamVjdChNLmQpKCJzcGFuIix7Y3NzOkdufSxPYmplY3QoTS5kKShkdCx7dmFsdWU6InJhdGluZ0xhYmVsIixmYWxsYmFjazoiV2FzIHRoaXMgaGVscGZ1bD8ifSkpLE9iamVjdChNLmQpKCJkaXYiLHtjc3M6T2JqZWN0KGZ0LkQpKCk/UW46S259LE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLWxhYmVsIjoieWVzIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIG4oInllcyIpfSxjc3M6Wm4oIm5vIj09PWUucmF0aW5nLEJvb2xlYW4oZS5yYXRpbmcpKX0sInllcyI9PT1lLnJhdGluZz9PYmplY3QoTS5kKSh5dC5DLG51bGwpOk9iamVjdChNLmQpKHl0LkQsbnVsbCkpLE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLWxhYmVsIjoibm8iLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbigibm8iKX0sY3NzOlpuKCJ5ZXMiPT09ZS5yYXRpbmcsQm9vbGVhbihlLnJhdGluZykpfSwibm8iPT09ZS5yYXRpbmc/T2JqZWN0KE0uZCkoeXQuQSxudWxsKTpPYmplY3QoTS5kKSh5dC5CLG51bGwpKSkpfSwkbj1mdW5jdGlvbihlKXt2YXIgdD1PYmplY3QoeS51c2VTdGF0ZSkoITEpLG49WCgpKHQsMikscj1uWzBdLG89blsxXSxhPUJvb2xlYW4oZS5yYXRpbmdJZCkmJiFyLGk9ZnVuY3Rpb24oKXtvKChmdW5jdGlvbihlKXtyZXR1cm4hZX0pKX07cmV0dXJuIE9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS11cGxvYWQgIi5jb25jYXQoImltYWdlIj09PWUuYXR0YWNobWVudFR5cGU/Im1lc3NhZ2UtaW1hZ2UiOiJtZXNzYWdlLWZpbGUiLCIgbWVzc2FnZS0iKS5jb25jYXQoImJvdCI9PT1lLnNlbmRlcj8ib3BlcmF0b3IiOmUuc2VuZGVyLCIgIikuY29uY2F0KHI/InRpbWVzdGFtcC12aXNpYmxlIjoiIiwiICIpLmNvbmNhdChlLnJhdGluZ0lkPyJyYXRpbmctdmlzaWJsZSI6IiIpLHN0eWxlOiJ2aXNpdG9yIj09PWUuc2VuZGVyP3tiYWNrZ3JvdW5kOiJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAiLmNvbmNhdChlLndpZGdldENvbG9yWzBdLCIsICIpLmNvbmNhdChlLndpZGdldENvbG9yWzFdLCIpIiksY29sb3I6ZS53aWRnZXRDb2xvclsyXX06e319LCJpbWFnZSI9PT1lLmF0dGFjaG1lbnRUeXBlP09iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKHFuLHtjb250ZW50OmUuY29udGVudCxleHRlbnNpb246ZS5leHRlbnNpb24sdGh1bWI6ZS50aHVtYixuYW1lOmUubmFtZSxpZDplLmlkLG9uQ2xpY2s6aX0pLE9iamVjdChNLmQpKHRuLHtpbjpyfSxPYmplY3QoTS5kKShobix7dGltZTplLnRpbWVfc2VudH0pKSxPYmplY3QoTS5kKSh0bix7aW46YX0sT2JqZWN0KE0uZCkoWG4se21lc3NhZ2VJZDplLmlkLHJhdGluZ0lkOmUucmF0aW5nSWQscmF0aW5nOmUucmF0aW5nfSkpKTpPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKSgiYSIse2hyZWY6ZS5jb250ZW50LHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLG9uQ2xpY2s6aX0sT2JqZWN0KE0uZCkoeXQubCxudWxsKSxPYmplY3QoTS5kKSgic3BhbiIsbnVsbCxPYmplY3QoTS5kKShfbix7ZXh0ZW5zaW9uOmUuZXh0ZW5zaW9ufSksIiIuY29uY2F0KGUubmFtZSkpKSxPYmplY3QoTS5kKSh0bix7aW46cn0sT2JqZWN0KE0uZCkoaG4se3RpbWU6ZS50aW1lX3NlbnR9KSkpKSl9LEpuPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIG1lc3NhZ2Utb3BlcmF0b3IifSxPYmplY3QoTS5kKSgic3BhbiIse2NsYXNzTmFtZToibWVzc2FnZS1jb250ZW50IixkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOmUuY29udGVudH19KSl9LGVyPWZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdCh5LnVzZVN0YXRlKSghMSksbj1YKCkodCwyKSxyPW5bMF0sbz1uWzFdLGE9Qm9vbGVhbihlLnJhdGluZ0lkKSYmIXI7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS1vcGVyYXRvciAiLmNvbmNhdChyPyJ0aW1lc3RhbXAtdmlzaWJsZSI6IiIsIiAiKS5jb25jYXQoZS5yYXRpbmdJZD8icmF0aW5nLXZpc2libGUiOiIiKX0sT2JqZWN0KE0uZCkoInNwYW4iLHtjbGFzc05hbWU6Im1lc3NhZ2UtY29udGVudCIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDplLmNvbnRlbnR9LG9uQ2xpY2s6ZnVuY3Rpb24oKXtvKChmdW5jdGlvbihlKXtyZXR1cm4hZX0pKX19KSxPYmplY3QoTS5kKSh0bix7aW46cn0sT2JqZWN0KE0uZCkoaG4se3RpbWU6ZS50aW1lX3NlbnR9KSksT2JqZWN0KE0uZCkodG4se2luOmF9LE9iamVjdChNLmQpKFhuLHttZXNzYWdlSWQ6ZS5pZCxyYXRpbmdJZDplLnJhdGluZ0lkLHJhdGluZzplLnJhdGluZ30pKSl9LHRyPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJidXR0b24td3JhcHBlciJ9LGUucXVpY2tSZXBsaWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGtleToiIi5jb25jYXQodC50aXRsZSkuY29uY2F0KHQucGF5bG9hZCksdGl0bGU6dC50aXRsZSxvbkNsaWNrOmZ1bmN0aW9uKCl7ZS5vbkJ1dHRvbkNsaWNrKHQucGF5bG9hZCx0LnRpdGxlLHQudHlwZSl9fSxPYmplY3QoTS5kKSgic3BhbiIse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6aXQodC50aXRsZSl9fSkpfSkpKX07ZnVuY3Rpb24gbnIoZSl7dmFyIHQ9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI9aCgpKGUpO2lmKHQpe3ZhciBvPWgoKSh0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KHIsYXJndW1lbnRzLG8pfWVsc2Ugbj1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYigpKHRoaXMsbil9fXZhciBycj1mdW5jdGlvbihlKXtmKCkobixlKTt2YXIgdD1ucihuKTtmdW5jdGlvbiBuKCl7dmFyIGU7aSgpKHRoaXMsbik7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkociksYT0wO2E8cjthKyspb1thXT1hcmd1bWVudHNbYV07cmV0dXJuIGU9dC5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChvKSksdigpKHUoKShlKSwib25CdXR0b25DbGljayIsKGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gZS5wcm9wcy5kaXNwYXRjaChPYmplY3Qod3QudGMpKG4sdCkpLGUucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0Lm9kKSgiYm90IiE9PXI/a3QuYS5xdWlja1JlcGx5Q2xpY2tlZDprdC5hLmJvdFN0YXJ0ZWRGcm9tQm90c01lbnUpKSwhMH0pKSxlfXJldHVybiBjKCkobixbe2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm9wcy5pc0xhc3RNZXNzYWdlfHx0aGlzLnByb3BzLmRpc2FibGVkfHx0aGlzLnByb3BzLmRpc3BhdGNoKE9iamVjdCh3dC5FYykodGhpcy5wcm9wcy5tZXNzYWdlSWQpKX19LHtrZXk6InNob3VsZENvbXBvbmVudFVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5wcm9wcy5kaXNhYmxlZH19LHtrZXk6ImNvbXBvbmVudERpZFVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5wcm9wcy5pc0xhc3RNZXNzYWdlIT09ZS5pc0xhc3RNZXNzYWdlJiZ0aGlzLnByb3BzLmRpc3BhdGNoKE9iamVjdCh3dC5FYykodGhpcy5wcm9wcy5tZXNzYWdlSWQpKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9wcy5kaXNhYmxlZHx8IXRoaXMucHJvcHMuaXNMYXN0TWVzc2FnZT9udWxsOk9iamVjdChNLmQpKHRyLHtxdWlja1JlcGxpZXM6dGhpcy5wcm9wcy5xdWlja1JlcGxpZXMsb25CdXR0b25DbGljazp0aGlzLm9uQnV0dG9uQ2xpY2t9KX19XSksbn0ody5hLkNvbXBvbmVudCk7cnIuZGVmYXVsdFByb3BzPXtkaXNhYmxlZDohMX07dmFyIG9yPU9iamVjdCh4LmIpKChmdW5jdGlvbihlLHQpe3JldHVybntpc0xhc3RNZXNzYWdlOk9iamVjdChJdC5qKShlLHQubWVzc2FnZUlkKX19KSkocnIpLGFyPW4oODIpLGlyPW4ubihhciksc3I9KG4oMzg2KSxmdW5jdGlvbihlKXtyZXR1cm4gZS5saW5rP09iamVjdChNLmQpKCJhIix7aHJlZjplLmxpbmssb25DbGljazplLm9wZW5MaW5rLCJkYXRhLXRlc3RpZCI6ImNhcmRJbWFnZUxpbmsifSxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkLWltYWdlIixzdHlsZTp7YmFja2dyb3VuZEltYWdlOiJ1cmwoIi5jb25jYXQoZS5pbWFnZVVybCwiKSIpfX0pKTpPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkLWltYWdlIixzdHlsZTp7YmFja2dyb3VuZEltYWdlOiJ1cmwoIi5jb25jYXQoZS5pbWFnZVVybCwiKSIpfX0pfSk7c3IuZGVmYXVsdFByb3BzPXtsaW5rOnZvaWQgMCxvcGVuTGluazpmdW5jdGlvbigpe319O3ZhciBjcj1zcixscj1mdW5jdGlvbihlKXt2YXIgdD1lLnRpdGxlLG49ZS5wYXlsb2FkLHI9ZS5vbkNsaWNrLG89ZS5jYXJkQ2xpY2tlZCxhPWl0KHQpLGk9ZS51cmx8fG4scz1PYmplY3QoZnQucSkoaSk7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImJ1dHRvbi11cmwifSxPYmplY3QoTS5kKSgiYSIse2NsYXNzTmFtZToiYnV0dG9uLXVybF9fYW5jaG9yIixocmVmOk9iamVjdChmdC5xKShpKSx0eXBlOiJidXR0b24iLG9uQ2xpY2s6ZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPWUudGl0bGU7byYmKGk9IiIuY29uY2F0KG8sIiAmcmFycjsgIikuY29uY2F0KHQpKSxyKG4saSksT2JqZWN0KGZ0LkopKHMpfSwiZGF0YS10ZXN0aWQiOiJidXR0b25VcmwiLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6YX19KSl9LHVyPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIix0aXRsZTplLnRpdGxlLG9uQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgdD1lLnRpdGxlO2UuY2FyZENsaWNrZWQmJih0PSIiLmNvbmNhdChlLmNhcmRDbGlja2VkLCIgJnJhcnI7ICIpLmNvbmNhdChlLnRpdGxlKSksZS5vbkNsaWNrKGUucGF5bG9hZCx0KX19LE9iamVjdChNLmQpKCJzcGFuIix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDppdChlLnRpdGxlKX19KSl9LGRyPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJidXR0b24td3JhcHBlciJ9LGUuYnV0dG9ucy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7a2V5OiIiLmNvbmNhdCh0LnRpdGxlKS5jb25jYXQodC5wYXlsb2FkKX0sInVybCI9PT10LnR5cGUmJk9iamVjdChNLmQpKGxyLHt0aXRsZTp0LnRpdGxlLHBheWxvYWQ6dC5wYXlsb2FkLHVybDp0LnVybCxjYXJkQ2xpY2tlZDp0LmNhcmRDbGlja2VkLG9uQ2xpY2s6ZS5vbkJ1dHRvbkNsaWNrfSksImFjdGlvbiI9PT10LnR5cGUmJk9iamVjdChNLmQpKHVyLHt0aXRsZTp0LnRpdGxlLHBheWxvYWQ6dC5wYXlsb2FkLGNhcmRDbGlja2VkOnQuY2FyZENsaWNrZWQsb25DbGljazplLm9uQnV0dG9uQ2xpY2t9KSl9KSkpfTt2YXIgZnI9T2JqZWN0KHguYikoKSgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kaXNwYXRjaCxuPWUuYnV0dG9ucztyZXR1cm4gT2JqZWN0KE0uZCkoZHIse2J1dHRvbnM6bixvbkJ1dHRvbkNsaWNrOmZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoT2JqZWN0KHd0LnRjKShuLGUpKSx0KE9iamVjdCh3dC5vZCkoa3QuYS5idXR0b25DbGlja2VkKSksITB9fSl9KSk7ZnVuY3Rpb24gcHIoZSl7dmFyIHQ9ZS5idXR0b25zLG49T2JqZWN0KHguYykoKSxyPXRbMF0sbz1PYmplY3QoZnQucSkoci51cmx8fHIucGF5bG9hZCk7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImJ1dHRvbi13cmFwcGVyIn0sT2JqZWN0KE0uZCkoImEiLHtocmVmOm8sY2xhc3NOYW1lOiJidXR0b24taWNvbiIsb25DbGljazpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksbihPYmplY3Qod3Qub2QpKGt0LmEuYnV0dG9uQ2xpY2tlZCkpLE9iamVjdChmdC5KKShvKX19LE9iamVjdChNLmQpKHl0LmwsbnVsbCkpKX1mdW5jdGlvbiBicihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gbXIoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/YnIoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2KCkoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmJyKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIGhyKGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSxbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyPWgoKShlKTtpZih0KXt2YXIgbz1oKCkodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxvKX1lbHNlIG49ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGIoKSh0aGlzLG4pfX12YXIgZ3I9ZnVuY3Rpb24oZSl7ZigpKG4sZSk7dmFyIHQ9aHIobik7ZnVuY3Rpb24gbigpe3ZhciBlO2koKSh0aGlzLG4pO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKW9bYV09YXJndW1lbnRzW2FdO3JldHVybiBlPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQobykpLHYoKSh1KCkoZSksImV4dGVuZGVkQnV0dG9ucyIsZS5wcm9wcy5idXR0b25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG1yKG1yKHt9LHQpLHt9LHtjYXJkQ2xpY2tlZDplLnByb3BzLnRpdGxlfSl9KSkpLHYoKSh1KCkoZSksInBhcnNlZFVybCIsT2JqZWN0KGZ0LkspKGUucHJvcHMudXJsKSksdigpKHUoKShlKSwicGFyc2VkVGl0bGUiLG90KGUucHJvcHMudGl0bGUpKSx2KCkodSgpKGUpLCJwYXJzZWRTdWJ0aXRsZSIsb3QoZS5wcm9wcy5zdWJ0aXRsZSkpLHYoKSh1KCkoZSksImlzU2FtZUhvc3QiLE9iamVjdChmdC5FKShPYmplY3QoZnQucCkoKSxlLnByb3BzLnVybCkpLHYoKSh1KCkoZSksIm9wZW5MaW5rIiwoZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPWUucHJvcHMucHJveHlVcmx8fGUuZ2V0RnVsbFBhcnNlZFVybCgpO3RyeXtlLmlzU2FtZUhvc3Q/d2luZG93LnRvcC5sb2NhdGlvbj1uOndpbmRvdy5vcGVuKG4pfWNhdGNoKHIpe3dpbmRvdy5vcGVuKG4pfX0pKSx2KCkodSgpKGUpLCJnZXRGdWxsUGFyc2VkVXJsIiwoZnVuY3Rpb24oKXtyZXR1cm4gZS5wYXJzZWRVcmw/IiIuY29uY2F0KGUucGFyc2VkVXJsLnByb3RvY29sLCIvLyIpLmNvbmNhdChlLnBhcnNlZFVybC5ob3N0KS5jb25jYXQoZS5wYXJzZWRVcmwucGF0aG5hbWUpLmNvbmNhdChlLnBhcnNlZFVybC5zZWFyY2gpLmNvbmNhdChlLnBhcnNlZFVybC5oYXNoKTpudWxsfSkpLHYoKSh1KCkoZSksImdldFVybFdpdGhvdXRQcm90b2NvbCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGUucGFyc2VkVXJsP2UucGFyc2VkVXJsLmhvc3QrZS5wYXJzZWRVcmwucGF0aG5hbWUrZS5wYXJzZWRVcmwuc2VhcmNoK2UucGFyc2VkVXJsLmhhc2g6bnVsbH0pKSxlfXJldHVybiBjKCkobixbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIG1lc3NhZ2Utd2l0aC1idXR0b25zIn0sdGhpcy5wcm9wcy5pbWFnZVVybCYmT2JqZWN0KE0uZCkoY3Ise2ltYWdlVXJsOnRoaXMucHJvcHMuaW1hZ2VVcmwsbGluazp0aGlzLmdldEZ1bGxQYXJzZWRVcmwoKSxvcGVuTGluazp0aGlzLm9wZW5MaW5rfSksT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToiY2FyZC1jb250ZW50LXdyYXBwZXIifSxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnRoaXMucGFyc2VkVGl0bGV9fSksdGhpcy5wcm9wcy5zdWJ0aXRsZSYmT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToiY2FyZC1zdWJ0aXRsZSIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDp0aGlzLnBhcnNlZFN1YnRpdGxlfX0pLHRoaXMucHJvcHMudXJsJiZPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkLXVybCJ9LE9iamVjdChNLmQpKCJhIix7aHJlZjp0aGlzLmdldEZ1bGxQYXJzZWRVcmwoKSx0eXBlOiJidXR0b24iLG9uQ2xpY2s6dGhpcy5vcGVuTGluaywiZGF0YS10ZXN0aWQiOiJjYXJkTGluayJ9LHRoaXMuaXNTYW1lSG9zdD90aGlzLmdldFVybFdpdGhvdXRQcm90b2NvbCgpOnRoaXMucGFyc2VkVXJsLmhvc3QpKSksT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToiY2FyZC1idXR0b25zIn0sdGhpcy5wcm9wcy5pc1Nob3BpZnlDYXJkP09iamVjdChNLmQpKHByLHtidXR0b25zOnRoaXMuZXh0ZW5kZWRCdXR0b25zfSk6T2JqZWN0KE0uZCkoZnIse2J1dHRvbnM6dGhpcy5leHRlbmRlZEJ1dHRvbnN9KSkpfX1dKSxufSh3LmEuQ29tcG9uZW50KTtnci5kZWZhdWx0UHJvcHM9e2ltYWdlVXJsOnZvaWQgMCxzdWJ0aXRsZTp2b2lkIDAsdXJsOnZvaWQgMCxwcm94eVVybDp2b2lkIDB9O3ZhciB2cj1ncjtmdW5jdGlvbiB5cihlKXt2YXIgdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4scj1oKCkoZSk7aWYodCl7dmFyIG89aCgpKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbyl9ZWxzZSBuPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiKCkodGhpcyxuKX19dmFyIHdyPWZ1bmN0aW9uKGUpe2YoKShuLGUpO3ZhciB0PXlyKG4pO2Z1bmN0aW9uIG4oKXt2YXIgZTtpKCkodGhpcyxuKTtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKylvW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gZT10LmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KG8pKSx2KCkodSgpKGUpLCJzdGF0ZSIse2dhbGxlcnlTY3JvbGxMZWZ0OjAsZ2FsbGVyeVNjcm9sbFdpZHRoOjAsc2Nyb2xsSW5SdGxUeXBlOiJyZXZlcnNlIn0pLHYoKSh1KCkoZSksImNhcmRHYWxsZXJ5UmVmIix3LmEuY3JlYXRlUmVmKCkpLHYoKSh1KCkoZSksImlzTGFuZ3VhZ2VSVEwiLE9iamVjdChZZS5hKSgpKSx2KCkodSgpKGUpLCJoYXNJbWFnZXMiLCJzdHJpbmciPT09dHlwZW9mIGUucHJvcHMuY2FyZHNbMF0uaW1hZ2VVcmwpLHYoKSh1KCkoZSksImlzUHJvZHVjdEdhbGxlcnkiLCJudW1iZXIiPT09dHlwZW9mIGUucHJvcHMub3BlcmF0b3JfaWQpLHYoKSh1KCkoZSksInNjcm9sbEhhbmRsZXIiLGlyKCkoKGZ1bmN0aW9uKCl7ZS5jYXJkR2FsbGVyeVJlZi5jdXJyZW50JiZlLnNldFN0YXRlKHtnYWxsZXJ5U2Nyb2xsTGVmdDplLmNhcmRHYWxsZXJ5UmVmLmN1cnJlbnQuc2Nyb2xsTGVmdH0pfSksODApKSxlfXJldHVybiBjKCkobixbe2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4hIXRoaXMuY2FyZEdhbGxlcnlSZWYuY3VycmVudCYmKHRoaXMuY2FyZEdhbGxlcnlSZWYuY3VycmVudC5zY3JvbGxMZWZ0PjA/dGhpcy5zZXRTdGF0ZSh7c2Nyb2xsSW5SdGxUeXBlOiJkZWZhdWx0In0pOih0aGlzLmNhcmRHYWxsZXJ5UmVmLmN1cnJlbnQuc2Nyb2xsTGVmdD0xLDA9PT10aGlzLmNhcmRHYWxsZXJ5UmVmLmN1cnJlbnQuc2Nyb2xsTGVmdCYmdGhpcy5zZXRTdGF0ZSh7c2Nyb2xsSW5SdGxUeXBlOiJuZWdhdGl2ZSJ9KSksdGhpcy5zZXRTdGF0ZSgoZnVuY3Rpb24odCl7cmV0dXJue2dhbGxlcnlTY3JvbGxXaWR0aDplLmNhcmRHYWxsZXJ5UmVmLmN1cnJlbnQuc2Nyb2xsV2lkdGgsZ2FsbGVyeVdpZHRoOmUuY2FyZEdhbGxlcnlSZWYuY3VycmVudC5vZmZzZXRXaWR0aCxnYWxsZXJ5U2Nyb2xsTGVmdDplLmlzTGFuZ3VhZ2VSVEwmJiJkZWZhdWx0Ij09PXQuc2Nyb2xsSW5SdGxUeXBlP2UuY2FyZEdhbGxlcnlSZWYuY3VycmVudC5zY3JvbGxXaWR0aC1lLmNhcmRHYWxsZXJ5UmVmLmN1cnJlbnQub2Zmc2V0V2lkdGg6MH19KSksdGhpcy5jYXJkR2FsbGVyeVJlZi5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5zY3JvbGxIYW5kbGVyKSwhMCl9fSx7a2V5OiJjb21wb25lbnRXaWxsVW5tb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY2FyZEdhbGxlcnlSZWYuY3VycmVudCYmKHRoaXMuY2FyZEdhbGxlcnlSZWYuY3VycmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuc2Nyb2xsSGFuZGxlciksITApfX0se2tleToidHJhY2tHYWxsZXJ5U2Nyb2xsQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm9wcy5kaXNwYXRjaChPYmplY3Qod3Qub2QpKGt0LmEuY2FyZHNTY3JvbGxlZCkpfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIE9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImJvdHMtY2FyZC1nYWxsZXJ5LWJ1dHRvbi13cmFwcGVyICIuY29uY2F0KHRoaXMuaGFzSW1hZ2VzPyIiOiJib3RzLWNhcmQtZ2FsbGVyeS13aXRob3V0LWltYWdlcyIpfSx0aGlzLmlzTGFuZ3VhZ2VSVEw/T2JqZWN0KE0uZCkody5hLkZyYWdtZW50LG51bGwsImRlZmF1bHQiPT09dGhpcy5zdGF0ZS5zY3JvbGxJblJ0bFR5cGUmJk9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKEsse2NsYXNzTmFtZXM6ImZhZGUyMDAiLGluOnRoaXMuc3RhdGUuZ2FsbGVyeVNjcm9sbFdpZHRoLXRoaXMuc3RhdGUuZ2FsbGVyeVdpZHRoPnRoaXMuc3RhdGUuZ2FsbGVyeVNjcm9sbExlZnR9LE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYm90cy1jYXJkLWdhbGxlcnktc2Nyb2xsLWJ1dHRvbiBzY3JvbGwtYnV0dG9uLWxlZnQiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlLmNhcmRHYWxsZXJ5UmVmLmN1cnJlbnQuc2Nyb2xsTGVmdCs9MjQwLGUudHJhY2tHYWxsZXJ5U2Nyb2xsQ2xpY2soKX19LE9iamVjdChNLmQpKHl0LmcsbnVsbCkpKSxPYmplY3QoTS5kKShLLHtjbGFzc05hbWVzOiJmYWRlMjAwIixpbjp0aGlzLnN0YXRlLmdhbGxlcnlTY3JvbGxMZWZ0PjEwfSxPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJvdHMtY2FyZC1nYWxsZXJ5LXNjcm9sbC1idXR0b24gc2Nyb2xsLWJ1dHRvbi1yaWdodCIsb25DbGljazpmdW5jdGlvbigpe2UuY2FyZEdhbGxlcnlSZWYuY3VycmVudC5zY3JvbGxMZWZ0LT0yNDAsZS50cmFja0dhbGxlcnlTY3JvbGxDbGljaygpfX0sT2JqZWN0KE0uZCkoeXQuZyxudWxsKSkpKSwibmVnYXRpdmUiPT09dGhpcy5zdGF0ZS5zY3JvbGxJblJ0bFR5cGUmJk9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKEsse2NsYXNzTmFtZXM6ImZhZGUyMDAiLGluOnRoaXMuc3RhdGUuZ2FsbGVyeVNjcm9sbExlZnQ8LTEwfSxPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJvdHMtY2FyZC1nYWxsZXJ5LXNjcm9sbC1idXR0b24gc2Nyb2xsLWJ1dHRvbi1sZWZ0IixvbkNsaWNrOmZ1bmN0aW9uKCl7ZS5jYXJkR2FsbGVyeVJlZi5jdXJyZW50LnNjcm9sbExlZnQrPTI0MCxlLnRyYWNrR2FsbGVyeVNjcm9sbENsaWNrKCl9fSxPYmplY3QoTS5kKSh5dC5nLG51bGwpKSksT2JqZWN0KE0uZCkoSyx7Y2xhc3NOYW1lczoiZmFkZTIwMCIsaW46dGhpcy5zdGF0ZS5nYWxsZXJ5U2Nyb2xsV2lkdGgtdGhpcy5zdGF0ZS5nYWxsZXJ5V2lkdGg+LTEqdGhpcy5zdGF0ZS5nYWxsZXJ5U2Nyb2xsTGVmdH0sT2JqZWN0KE0uZCkoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJib3RzLWNhcmQtZ2FsbGVyeS1zY3JvbGwtYnV0dG9uIHNjcm9sbC1idXR0b24tcmlnaHQiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlLmNhcmRHYWxsZXJ5UmVmLmN1cnJlbnQuc2Nyb2xsTGVmdC09MjQwLGUudHJhY2tHYWxsZXJ5U2Nyb2xsQ2xpY2soKX19LE9iamVjdChNLmQpKHl0LmcsbnVsbCkpKSksInJldmVyc2UiPT09dGhpcy5zdGF0ZS5zY3JvbGxJblJ0bFR5cGUmJk9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKEsse2NsYXNzTmFtZXM6ImZhZGUyMDAiLGluOnRoaXMuc3RhdGUuZ2FsbGVyeVNjcm9sbExlZnQ+MTB9LE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYm90cy1jYXJkLWdhbGxlcnktc2Nyb2xsLWJ1dHRvbiBzY3JvbGwtYnV0dG9uLWxlZnQiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlLmNhcmRHYWxsZXJ5UmVmLmN1cnJlbnQuc2Nyb2xsTGVmdC09MjQwLGUudHJhY2tHYWxsZXJ5U2Nyb2xsQ2xpY2soKX19LE9iamVjdChNLmQpKHl0LmcsbnVsbCkpKSxPYmplY3QoTS5kKShLLHtjbGFzc05hbWVzOiJmYWRlMjAwIixpbjp0aGlzLnN0YXRlLmdhbGxlcnlTY3JvbGxXaWR0aC10aGlzLnN0YXRlLmdhbGxlcnlXaWR0aD50aGlzLnN0YXRlLmdhbGxlcnlTY3JvbGxMZWZ0fSxPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJvdHMtY2FyZC1nYWxsZXJ5LXNjcm9sbC1idXR0b24gc2Nyb2xsLWJ1dHRvbi1yaWdodCIsb25DbGljazpmdW5jdGlvbigpe2UuY2FyZEdhbGxlcnlSZWYuY3VycmVudC5zY3JvbGxMZWZ0Kz0yNDAsZS50cmFja0dhbGxlcnlTY3JvbGxDbGljaygpfX0sT2JqZWN0KE0uZCkoeXQuZyxudWxsKSkpKSk6T2JqZWN0KE0uZCkody5hLkZyYWdtZW50LG51bGwsT2JqZWN0KE0uZCkoSyx7Y2xhc3NOYW1lczoiZmFkZTIwMCIsaW46dGhpcy5zdGF0ZS5nYWxsZXJ5U2Nyb2xsTGVmdD4xMH0sT2JqZWN0KE0uZCkoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJib3RzLWNhcmQtZ2FsbGVyeS1zY3JvbGwtYnV0dG9uIHNjcm9sbC1idXR0b24tbGVmdCIsb25DbGljazpmdW5jdGlvbigpe2UuY2FyZEdhbGxlcnlSZWYuY3VycmVudC5zY3JvbGxMZWZ0LT0yNDAsZS50cmFja0dhbGxlcnlTY3JvbGxDbGljaygpfX0sT2JqZWN0KE0uZCkoeXQuZyxudWxsKSkpLE9iamVjdChNLmQpKEsse2NsYXNzTmFtZXM6ImZhZGUyMDAiLGluOnRoaXMuc3RhdGUuZ2FsbGVyeVNjcm9sbFdpZHRoLXRoaXMuc3RhdGUuZ2FsbGVyeVdpZHRoPnRoaXMuc3RhdGUuZ2FsbGVyeVNjcm9sbExlZnR9LE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYm90cy1jYXJkLWdhbGxlcnktc2Nyb2xsLWJ1dHRvbiBzY3JvbGwtYnV0dG9uLXJpZ2h0IixvbkNsaWNrOmZ1bmN0aW9uKCl7ZS5jYXJkR2FsbGVyeVJlZi5jdXJyZW50LnNjcm9sbExlZnQrPTI0MCxlLnRyYWNrR2FsbGVyeVNjcm9sbENsaWNrKCl9fSxPYmplY3QoTS5kKSh5dC5nLG51bGwpKSkpKSxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIG1lc3NhZ2Utb3BlcmF0b3IgYm90cy1jYXJkLWdhbGxlcnkgIi5jb25jYXQodGhpcy5oYXNJbWFnZXM/IiI6ImJvdHMtY2FyZC1nYWxsZXJ5LXdpdGhvdXQtaW1hZ2VzIiwiICIpLmNvbmNhdCgxPT09dGhpcy5wcm9wcy5jYXJkcy5sZW5ndGg/ImJvdHMtY2FyZC1nYWxsZXJ5LXNpbmdsZS1jYXJkIjoiYm90cy1jYXJkLWdhbGxlcnktbXVsdGlwbGUtY2FyZHMiKSxyZWY6dGhpcy5jYXJkR2FsbGVyeVJlZn0sdGhpcy5wcm9wcy5jYXJkcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QoTS5kKSh2cixvKCkoe30sdCx7a2V5OnQuaWQsaXNTaG9waWZ5Q2FyZDplLmlzUHJvZHVjdEdhbGxlcnl9KSl9KSkpKX19XSksbn0ody5hLkNvbXBvbmVudCk7d3IuZGVmYXVsdFByb3BzPXtvcGVyYXRvcl9pZDp2b2lkIDB9O3ZhciB4cj13cixPcj1mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToibWVzc2FnZSBtZXNzYWdlLW9wZXJhdG9yIGJ1dHRvbnMtbWVzc2FnZSJ9LE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2Utd2l0aC1idXR0b25zIn0sT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToibWVzc2FnZS13aXRoLWJ1dHRvbnMtdGV4dCIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDplLmNvbnRlbnR9LCJkYXRhLXRlc3RpZCI6ImJ1dHRvbnNUZXh0In0pLE9iamVjdChNLmQpKGZyLHtidXR0b25zOmUuYnV0dG9uc30pKSl9O3ZhciBqcj17bmFtZToiZWwybno5IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiM2NDc0OTE7bWFyZ2luOmF1dG87dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6MjRweDtwe21hcmdpbjo2cHggMDt9In07ZnVuY3Rpb24ga3IoZSl7dmFyIHQ9ZS5vcGVyYXRvcl9pZCxuPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5vcGVyYXRvcnN9KSkuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT10fSkpO3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIixjc3M6anJ9LE9iamVjdChNLmQpKHl0LnosbnVsbCksT2JqZWN0KE0uZCkoInAiLG51bGwsbj9PYmplY3QoTS5kKShkdCx7dmFsdWU6Im9wZXJhdG9yTWFya2VkQ29udmVyc2F0aW9uQXNTb2x2ZWQiLHJlcGxhY2VtZW50czp7IntvcGVyYXRvck5hbWV9IjpuLm5hbWV9LGZhbGxiYWNrOiJ7b3BlcmF0b3JOYW1lfSBtYXJrZWQgdGhlIGNvbnZlcnNhdGlvbiBhcyBzb2x2ZWQifSk6T2JqZWN0KE0uZCkoZHQse3ZhbHVlOiJjb252ZXJzYXRpb25XYXNNYXJrZWRBc1NvbHZlZCIsZmFsbGJhY2s6IlRoZSBjb252ZXJzYXRpb24gd2FzIG1hcmtlZCBhcyBzb2x2ZWQifSkpKX12YXIgQXI9W3t2YWx1ZToiXHVkODNkXHVkZTIxIixyYXRpbmc6MX0se3ZhbHVlOiJcdWQ4M2RcdWRlNDEiLHJhdGluZzoyfSx7dmFsdWU6Ilx1ZDgzZFx1ZGUxMCIscmF0aW5nOjN9LHt2YWx1ZToiXHVkODNkXHVkZTAwIixyYXRpbmc6NH0se3ZhbHVlOiJcdWQ4M2RcdWRlMGQiLHJhdGluZzo1fV0sTXI9bigxMTApO3ZhciBDcj17bmFtZToiOXV3bWl3IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjAgMCAxOHB4O2NvbG9yOiM2NDc0OTE7Zm9udC1zaXplOjE0cHg7bWF4LXdpZHRoOjEwMCU7In0sRXI9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToibWVzc2FnZSIsY3NzOkNyfSxPYmplY3QoTS5kKSgic3BhbiIsbnVsbCxPYmplY3QoWWUuYykoInNhdGlzZmFjdGlvblN1cnZleVZlcnlCYWQiLG51bGwsIlZlcnkgYmFkIikpLE9iamVjdChNLmQpKCJzcGFuIixudWxsLE9iamVjdChZZS5jKSgic2F0aXNmYWN0aW9uU3VydmV5VmVyeUdvb2QiLG51bGwsIlZlcnkgZ29vZCIpKSl9O3ZhciBTcj17bmFtZToiZGFobDMxIixzdHlsZXM6ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Y2xlYXI6Ym90aDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjE0cHggMCA4cHg7dHJhbnNpdGlvbjptYXJnaW4gMC4yOHMgZWFzZS1pbi1vdXQ7In0sUnI9e25hbWU6ImFsdDYyOSIsc3R5bGVzOiJib3JkZXI6MXB4IHNvbGlkICNkM2RiZTU7Y3Vyc29yOmRlZmF1bHQ7bGV0dGVyLXNwYWNpbmc6LTAuMDFlbTsifSxEcj17bmFtZToiMWJ0M3plbSIsc3R5bGVzOiJjb2xvcjojMDYxMzJiO2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCAjMDU2NmZmO291dGxpbmU6bm9uZTtwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6MjBweDttYXJnaW46MnB4IDA7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y2xlYXI6Ym90aDtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6MTVweDsmOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7bWFyZ2luLWxlZnQ6OHB4O31pbWd7d2lkdGg6MThweDtoZWlnaHQ6MThweDt9In0sVHI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50aHJlYWRJZCxuPWUubWVzc2FnZUlkLHI9ZS5zY2FsZSxvPWUuc2VsZWN0ZWRSYXRpbmcsYT1PYmplY3QoeC5jKSgpLGk9T2JqZWN0KHguZCkoeHQudSkscz1PYmplY3QoeS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KE0uYykoe2JhY2tncm91bmQ6ImxpbmVhci1ncmFkaWVudCgxMzVkZWcsICIuY29uY2F0KGlbMF0sIiAwJSwgIikuY29uY2F0KGlbMV0sIiAxMDAlKSIpfSwiIil9KSxbaV0pO3JldHVybiBPYmplY3QoTS5kKSgiZGl2IixudWxsLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UiLGNzczpTcn0sci5tYXAoKGZ1bmN0aW9uKGUpe3ZhciByPWUudmFsdWUsaT1lLnJhdGluZztyZXR1cm4gT2JqZWN0KE0uZCkoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY3NzOk9iamVjdChNci5hKShbRHIsbyYmUnIsbz09PWkmJnNdLCIiKSxrZXk6aSxvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU7b3x8KGU9aSxhKE9iamVjdCh3dC5tYykoZSx0LG4pKSxhKE9iamVjdCh3dC5JYikoT2JqZWN0KE90LmkpKHQsbixOdC5kLkFVVE9NQVRJQ19TVVJWRVlfUkFURUQpKSkpfX0sT2JqZWN0KE0uZCkoInNwYW4iLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOml0KHIpfX0pKX0pKSksT2JqZWN0KE0uZCkoRXIsbnVsbCkpfSxOcj1mdW5jdGlvbihlKXt2YXIgdD1lLnRocmVhZElkLG49ZS5tZXNzYWdlSWQscj1lLmNvbW1lbnQsbz1PYmplY3QoeC5jKSgpLGE9T2JqZWN0KHkudXNlU3RhdGUpKCExKSxpPVgoKShhLDIpLHM9aVswXSxjPWlbMV0sbD1PYmplY3QoeS51c2VTdGF0ZSkoIiIpLHU9WCgpKGwsMiksZD11WzBdLGY9dVsxXTtyZXR1cm4gT2JqZWN0KE0uZCkoQW4se3R5cGU6InRleHQiLHBsYWNlaG9sZGVyOiJ0eXBlT3B0aW9uYWwiLG9uQ2hhbmdlOmYsb25LZXlEb3duOmZ1bmN0aW9uKGUpe3JldHVybiEoMTMhPT1lfHwhcykmJihzJiYobyhPYmplY3Qod3QuUmIpKGQsdCxuKSksbyhPYmplY3Qod3QuSWIpKE9iamVjdChPdC5pKSh0LG4sTnQuZC5BVVRPTUFUSUNfU1VSVkVZX0NPTU1FTlRFRCkpKSksT2JqZWN0KEZ0LmIpKCksITApfSxpc1ZhbGlkQ2FsbGJhY2s6Yyx2YWx1ZTpyfHxudWxsLGRpc2FibGVkOkJvb2xlYW4ocil9KX0sUHI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50aHJlYWRJZCxuPWUubWVzc2FnZUlkLHI9ZS5jb21tZW50UXVlc3Rpb24sbz1lLmNvbW1lbnQ7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS1vcGVyYXRvciByYXRlLWNvbW1lbnQifSxPYmplY3QoTS5kKSgic3BhbiIsbnVsbCxyKSxPYmplY3QoTS5kKShOcix7dGhyZWFkSWQ6dCxtZXNzYWdlSWQ6bixjb21tZW50Om99KSl9LExyPWZ1bmN0aW9uKGUpe3ZhciB0PWUudGhyZWFkSWQsbj1lLm1lc3NhZ2VJZCxyPWUudHlwZSxvPWUuc2F0aXNmYWN0aW9uU3VydmV5LGE9T2JqZWN0KHguYykoKSxpPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KHh0LnEpKGUsdCl9KSk7aWYoIWkpcmV0dXJuIG8mJmEoT2JqZWN0KHd0Lk5jKShvLHQsbikpLG51bGw7dmFyIHM9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UiZW1vdGVzIjpyZXR1cm4gQXI7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVhY2hhYmxlIGNhc2UgZXJyb3IiKX19KGkuc2NhbGVUeXBlKSxjPXMuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmF0aW5nPT09KG51bGw9PT1pfHx2b2lkIDA9PT1pP3ZvaWQgMDppLnJlc3BvbnNlLnJhdGluZyl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7c3dpdGNoKHIpe2Nhc2UgTnQuZC5BVVRPTUFUSUNfU1VSVkVZOnJldHVybiBPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIG1lc3NhZ2Utb3BlcmF0b3IifSxpLnJhdGVRdWVzdGlvbnx8T2JqZWN0KFllLmMpKCJzYXRpc2ZhY3Rpb25TdXJ2ZXlIZWFkZXIiKSksT2JqZWN0KE0uZCkoVHIse3RocmVhZElkOnQsbWVzc2FnZUlkOm4sc2NhbGU6cyxzZWxlY3RlZFJhdGluZzpudWxsPT09Y3x8dm9pZCAwPT09Yz92b2lkIDA6Yy5yYXRpbmd9KSk7Y2FzZSBOdC5kLkFVVE9NQVRJQ19TVVJWRVlfUkFURUQ6cmV0dXJuIE9iamVjdChNLmQpKFByLHt0aHJlYWRJZDp0LG1lc3NhZ2VJZDpuLGNvbW1lbnQ6aS5yZXNwb25zZS5jb21tZW50LGNvbW1lbnRRdWVzdGlvbjppLmNvbW1lbnRRdWVzdGlvbnx8T2JqZWN0KFllLmMpKCJzYXRpc2ZhY3Rpb25TdXJ2ZXlDb21tZW50Iil9KTtjYXNlIE50LmQuQVVUT01BVElDX1NVUlZFWV9DT01NRU5URUQ6cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS1vcGVyYXRvciJ9LGkuZW5kTWVzc2FnZXx8T2JqZWN0KFllLmMpKCJzYXRpc2ZhY3Rpb25TdXJ2ZXlFbmQiKSk7ZGVmYXVsdDp0aHJvdyBPYmplY3QoaHQuYSkoIkF1dG9tYXRpYyBzYXRpc2ZhY3Rpb24gc3VydmV5OiB1bnJlYWNoYWJsZSBjYXNlIiksbmV3IEVycm9yKCJBdXRvbWF0aWMgc2F0aXNmYWN0aW9uIHN1cnZleTogdW5yZWFjaGFibGUgY2FzZSIpfX0oKX07dmFyIEZyPXtuYW1lOiIxcjJmMDRpIixzdHlsZXM6Im1hcmdpbi1ib3R0b206MTBweDsifSxfcj17bmFtZToiYWZsbnFjIixzdHlsZXM6IndpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxMnB4IDEwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggZGFzaGVkICNEM0RCRTU7Ym9yZGVyLXJhZGl1czo4cHg7In0senI9e25hbWU6Im5vbmg0ZyIsc3R5bGVzOiJsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0OjYwMDsifSxJcj1mdW5jdGlvbihlKXt2YXIgdD1lLmNvbnRlbnQsbj1lLmNvdXBvbkNvZGU7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS1vcGVyYXRvciBjb3Vwb24tY29kZS1tZXNzYWdlIn0sT2JqZWN0KE0uZCkoImRpdiIse2NzczpGcixkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnR9fSksT2JqZWN0KE0uZCkoImRpdiIse2Nzczpfcn0sT2JqZWN0KE0uZCkoInNwYW4iLHtjc3M6enJ9LG4pKSl9O2Z1bmN0aW9uIFVyKGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSxbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyPWgoKShlKTtpZih0KXt2YXIgbz1oKCkodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxvKX1lbHNlIG49ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGIoKSh0aGlzLG4pfX12YXIgQnI9ZnVuY3Rpb24oZSl7ZigpKG4sZSk7dmFyIHQ9VXIobik7ZnVuY3Rpb24gbigpe3ZhciBlO2koKSh0aGlzLG4pO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKW9bYV09YXJndW1lbnRzW2FdO3JldHVybiBlPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQobykpLHYoKSh1KCkoZSksIndpbmRvd1JlZiIsT2JqZWN0KEZ0LmUpKCkpLHYoKSh1KCkoZSksImFkanVzdE1lc3NhZ2VXaWR0aCIsKGZ1bmN0aW9uKHQsbil7dmFyIHI9bjt0JiZlLndpbmRvd1JlZiYmZS53aW5kb3dSZWYucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe3Iuc3R5bGUud2lkdGg9IiIuY29uY2F0KHQub2Zmc2V0V2lkdGgrMzUsInB4Iil9KSl9KSksZX1yZXR1cm4gYygpKG4sW3trZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1vdCh0aGlzLnByb3BzLmNvbnRlbnQpO2lmKCJ0ZXh0IiE9PXRoaXMucHJvcHMudHlwZSlzd2l0Y2godGhpcy5wcm9wcy50eXBlKXtjYXNlInByZUNoYXQiOnJldHVybiBPYmplY3QoTS5kKShTbixvKCkoe30sdGhpcy5wcm9wcyx7Y29udGVudDplfSkpO2Nhc2UicmF0ZUNvbnZlcnNhdGlvbiI6cmV0dXJuIE9iamVjdChNLmQpKERuLHRoaXMucHJvcHMpO2Nhc2UicmF0ZUNvbnZlcnNhdGlvbkNvbW1lbnRSYXRlV2FzR29vZCI6cmV0dXJuIE9iamVjdChNLmQpKFRuLG8oKSh7aXNSYXRlR29vZDohMH0sdGhpcy5wcm9wcykpO2Nhc2UicmF0ZUNvbnZlcnNhdGlvbkNvbW1lbnRSYXRlV2FzQmFkIjpyZXR1cm4gT2JqZWN0KE0uZCkoVG4sbygpKHtpc1JhdGVHb29kOiExfSx0aGlzLnByb3BzKSk7Y2FzZSJhbHdheXNPbmxpbmUiOnJldHVybiBPYmplY3QoTS5kKShSbix0aGlzLnByb3BzKTtjYXNlInVwbG9hZGluZ0ZpbGUiOnJldHVybiBPYmplY3QoTS5kKShMbixvKCkoe30sdGhpcy5wcm9wcyx7d2lkZ2V0Q29sb3I6T2JqZWN0KGZ0LmQpKHRoaXMucHJvcHMud2lkZ2V0Q29sb3IpfSkpO2Nhc2UidXBsb2FkZWRGaWxlIjpyZXR1cm4gT2JqZWN0KE0uZCkody5hLkZyYWdtZW50LG51bGwsT2JqZWN0KE0uZCkoJG4sbygpKHt9LHRoaXMucHJvcHMse3dpZGdldENvbG9yOk9iamVjdChmdC5kKSh0aGlzLnByb3BzLndpZGdldENvbG9yKX0pKSx0aGlzLnByb3BzLnF1aWNrUmVwbGllcyYmdGhpcy5wcm9wcy5xdWlja1JlcGxpZXMubGVuZ3RoPjAmJiF0aGlzLnByb3BzLmRpc2FibGVkJiZPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIG1lc3NhZ2Utb3BlcmF0b3IgYm90cy1xdWljay1yZXBsaWVzIn0sT2JqZWN0KE0uZCkob3Ise3F1aWNrUmVwbGllczp0aGlzLnByb3BzLnF1aWNrUmVwbGllcyxtZXNzYWdlSWQ6dGhpcy5wcm9wcy5pZCxkaXNhYmxlZDp0aGlzLnByb3BzLmRpc2FibGVkfSkpKTtjYXNlInN5c3RlbSI6cmV0dXJuIE9iamVjdChNLmQpKEpuLG8oKSh7fSx0aGlzLnByb3BzLHtjb250ZW50OmV9KSk7Y2FzZSJjYXJkR2FsbGVyeSI6cmV0dXJuIE9iamVjdChNLmQpKHhyLG8oKSh7fSx0aGlzLnByb3BzLHtkaXNwYXRjaDp0aGlzLnByb3BzLmRpc3BhdGNofSkpO2Nhc2UiYnV0dG9ucyI6cmV0dXJuIE9iamVjdChNLmQpKE9yLG8oKSh7fSx0aGlzLnByb3BzLHtjb250ZW50OmV9KSk7Y2FzZSBOdC5kLkNPVVBPTl9DT0RFOnJldHVybiBPYmplY3QoTS5kKShJcixvKCkoe30sdGhpcy5wcm9wcyx7Y29udGVudDplfSkpO2Nhc2UgTnQuZC5DT05WRVJTQVRJT05fTUFSS0VEX0FTX1NPTFZFRDpyZXR1cm4gT2JqZWN0KE0uZCkoa3IsdGhpcy5wcm9wcyk7Y2FzZSBOdC5kLkFVVE9NQVRJQ19TVVJWRVk6Y2FzZSBOdC5kLkFVVE9NQVRJQ19TVVJWRVlfUkFURUQ6Y2FzZSBOdC5kLkFVVE9NQVRJQ19TVVJWRVlfQ09NTUVOVEVEOnJldHVybiBPYmplY3QoTS5kKShMcix0aGlzLnByb3BzKTtkZWZhdWx0OnJldHVybiExfWVsc2V7aWYodGhpcy5wcm9wcy5zZW5kZXI9PT1PdC5nLm9wZXJhdG9yKXJldHVybiBPYmplY3QoTS5kKSh2bixvKCkoe30sdGhpcy5wcm9wcyx7Y29udGVudDplLGFkanVzdE1lc3NhZ2VXaWR0aDp0aGlzLmFkanVzdE1lc3NhZ2VXaWR0aH0pKTtpZih0aGlzLnByb3BzLnNlbmRlcj09PU90LmcuYm90KXJldHVybiBPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKShlcixvKCkoe30sdGhpcy5wcm9wcyx7Y29udGVudDphdCh0aGlzLnByb3BzLmNvbnRlbnQpfSkpLHRoaXMucHJvcHMucXVpY2tSZXBsaWVzJiZ0aGlzLnByb3BzLnF1aWNrUmVwbGllcy5sZW5ndGg+MCYmIXRoaXMucHJvcHMuZGlzYWJsZWQmJk9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS1vcGVyYXRvciBib3RzLXF1aWNrLXJlcGxpZXMifSxPYmplY3QoTS5kKShvcix7cXVpY2tSZXBsaWVzOnRoaXMucHJvcHMucXVpY2tSZXBsaWVzLG1lc3NhZ2VJZDp0aGlzLnByb3BzLmlkLGRpc2FibGVkOnRoaXMucHJvcHMuZGlzYWJsZWR9KSkpO2lmKHRoaXMucHJvcHMuc2VuZGVyPT09T3QuZy52aXNpdG9yKXJldHVybiBPYmplY3QoTS5kKSh5bixvKCkoe30sdGhpcy5wcm9wcyx7Y29udGVudDplLHdpZGdldENvbG9yOk9iamVjdChmdC5kKSh0aGlzLnByb3BzLndpZGdldENvbG9yKSxhZGp1c3RNZXNzYWdlV2lkdGg6dGhpcy5hZGp1c3RNZXNzYWdlV2lkdGh9KSl9cmV0dXJuIG51bGx9fV0pLG59KHcuYS5Db21wb25lbnQpO0JyLmRlZmF1bHRQcm9wcz17cXVpY2tSZXBsaWVzOltdLGRpc2FibGVkOnZvaWQgMH07dmFyIEhyPU9iamVjdCh4LmIpKChmdW5jdGlvbihlKXtyZXR1cm57d2lkZ2V0Q29sb3I6ZS53aWRnZXRDb2xvcn19KSkoQnIpO24oMTExKTtmdW5jdGlvbiBXcihlKXt2YXIgdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4scj1oKCkoZSk7aWYodCl7dmFyIG89aCgpKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbyl9ZWxzZSBuPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiKCkodGhpcyxuKX19dmFyIFZyPWZ1bmN0aW9uKGUpe2YoKShuLGUpO3ZhciB0PVdyKG4pO2Z1bmN0aW9uIG4oKXt2YXIgZTtpKCkodGhpcyxuKTtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKylvW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gZT10LmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KG8pKSx2KCkodSgpKGUpLCJzdGF0ZSIse3Njcm9sbFN0YXJ0UG9zaXRpb246MH0pLHYoKSh1KCkoZSksIm1lc3NhZ2VXYXNBZGRlZCIsITEpLHYoKSh1KCkoZSksImNvbnZlcnNhdGlvblBhZGRpbmciLDApLHYoKSh1KCkoZSksImNhbGN1bGF0ZVNjcm9sbERpdkhlaWdodCIsKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5wcm9wcy5jb252ZXJzYXRpb25SZWYsbj10LnNjcm9sbEhlaWdodCxyPXQuY2xpZW50SGVpZ2h0LG89ci1lLmNvbnZlcnNhdGlvblBhZGRpbmc7ZS5zY3JvbGxEaXYuc3R5bGUuaGVpZ2h0PW49PT1yPyIwcHgiOiIiLmNvbmNhdChvKm8vK24sInB4Iil9KSksdigpKHUoKShlKSwiYmluZFNjcm9sbCIsKGZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO2Uuc2Nyb2xsRGl2PXQ7dmFyIG49ZS5wcm9wcy5jb252ZXJzYXRpb25SZWYscj1uLnNjcm9sbEhlaWdodCxvPW4uY2xpZW50SGVpZ2h0O3JldHVybiBlLnNjcm9sbERpdi5zdHlsZS50b3A9IiIuY29uY2F0KChvK2UuY29udmVyc2F0aW9uUGFkZGluZykqZS5wcm9wcy5jb252ZXJzYXRpb25SZWYuc2Nyb2xsVG9wL3IsInB4IiksITB9KSksdigpKHUoKShlKSwibW92ZVNjcm9sbEZyb21NZXNzYWdlcyIsKGZ1bmN0aW9uKCl7ZS5wcm9wcy5jb252ZXJzYXRpb25SZWYub25zY3JvbGw9ZnVuY3Rpb24oKXt2YXIgdD0wO2lmKGUubWVzc2FnZVdhc0FkZGVkKXt2YXIgbj1BcnJheS5mcm9tKGUucHJvcHMuaWZyYW1lRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1lc3NhZ2UiKSkuc2xpY2UoLTEpWzBdO3Q9bj9uLm9mZnNldEhlaWdodDowLGUubWVzc2FnZVdhc0FkZGVkPSExfWUuc2Nyb2xsRGl2LnN0eWxlLnRvcD0iIi5jb25jYXQoKGUucHJvcHMuY29udmVyc2F0aW9uUmVmLmNsaWVudEhlaWdodC1lLmNvbnZlcnNhdGlvblBhZGRpbmcpKmUucHJvcHMuY29udmVyc2F0aW9uUmVmLnNjcm9sbFRvcC8oZS5wcm9wcy5jb252ZXJzYXRpb25SZWYuc2Nyb2xsSGVpZ2h0LXQpLCJweCIpfX0pKSx2KCkodSgpKGUpLCJtb3ZlTWVzc2FnZXNGcm9tU2Nyb2xsIiwoZnVuY3Rpb24odCl7dmFyIG49ZS5wcm9wcy5jb252ZXJzYXRpb25SZWYscj1uLnNjcm9sbEhlaWdodCxvPW4uY2xpZW50SGVpZ2h0O2UucHJvcHMuY29udmVyc2F0aW9uUmVmLnNjcm9sbFRvcD1yKnQvKG8tZS5jb252ZXJzYXRpb25QYWRkaW5nKX0pKSx2KCkodSgpKGUpLCJoYW5kbGVTY3JvbGxNb3ZlIiwoZnVuY3Rpb24odCl7ZS5wcm9wcy5jb252ZXJzYXRpb25SZWYub25zY3JvbGw9bnVsbCxlLnNldFN0YXRlKHtzY3JvbGxTdGFydFBvc2l0aW9uOnQuY2xpZW50WX0pLGUuc2Nyb2xsRGl2LnN0eWxlLndpZHRoPSI4cHgiLGUuc2Nyb2xsRGl2LnN0eWxlLm1hcmdpbj0iMHB4IixlLnNjcm9sbERpdi5zdHlsZS5vcGFjaXR5PS4zMixlLnByb3BzLmlmcmFtZURvY3VtZW50Lm9ubW91c2Vtb3ZlPWUuc2Nyb2xsTW92ZSxlLnByb3BzLmlmcmFtZURvY3VtZW50Lm9ubW91c2V1cD1lLnNjcm9sbFN0b3B9KSksdigpKHUoKShlKSwic2Nyb2xsTW92ZSIsKGZ1bmN0aW9uKHQpe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7dmFyIG49ZS5wcm9wcy5jb252ZXJzYXRpb25SZWYuY2xpZW50SGVpZ2h0O24tPWUuY29udmVyc2F0aW9uUGFkZGluZzt2YXIgcj10LmNsaWVudFktZS5zdGF0ZS5zY3JvbGxTdGFydFBvc2l0aW9uLG89cGFyc2VJbnQoZS5zY3JvbGxEaXYuc3R5bGUudG9wLDEwKStyO28+PTAmJm88PW4tcGFyc2VJbnQoZS5zY3JvbGxEaXYuc3R5bGUuaGVpZ2h0LDEwKT8oZS5zY3JvbGxEaXYuc3R5bGUudG9wPSIiLmNvbmNhdChvLCJweCIpLGUubW92ZU1lc3NhZ2VzRnJvbVNjcm9sbChvKSk6bzwwPyhlLnNjcm9sbERpdi5zdHlsZS50b3A9IjBweCIsZS5tb3ZlTWVzc2FnZXNGcm9tU2Nyb2xsKDApKTooZS5zY3JvbGxEaXYuc3R5bGUudG9wPSIiLmNvbmNhdChuLXBhcnNlSW50KGUuc2Nyb2xsRGl2LnN0eWxlLmhlaWdodCwxMCksInB4IiksZS5tb3ZlTWVzc2FnZXNGcm9tU2Nyb2xsKG4tcGFyc2VJbnQoZS5zY3JvbGxEaXYuc3R5bGUuaGVpZ2h0LDEwKSkpLGUucHJvcHMuaWZyYW1lRG9jdW1lbnQub25tb3VzZXVwPWUuc2Nyb2xsU3RvcCxlLnNldFN0YXRlKHtzY3JvbGxTdGFydFBvc2l0aW9uOnQuY2xpZW50WX0pfSkpfSkpLHYoKSh1KCkoZSksInNjcm9sbFN0b3AiLChmdW5jdGlvbigpe2UucHJvcHMuaWZyYW1lRG9jdW1lbnQub25tb3VzZXVwPW51bGwsZS5wcm9wcy5pZnJhbWVEb2N1bWVudC5vbm1vdXNlbW92ZT1udWxsLGUubW92ZVNjcm9sbEZyb21NZXNzYWdlcygpLGUuc2Nyb2xsRGl2LnN0eWxlLndpZHRoPW51bGwsZS5zY3JvbGxEaXYuc3R5bGUubWFyZ2luPW51bGwsZS5zY3JvbGxEaXYuc3R5bGUub3BhY2l0eT1udWxsfSkpLGV9cmV0dXJuIGMoKShuLFt7a2V5OiJjb21wb25lbnREaWRNb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vdmVTY3JvbGxGcm9tTWVzc2FnZXMoKSx0aGlzLmNhbGN1bGF0ZVNjcm9sbERpdkhlaWdodCgpfX0se2tleToiY29tcG9uZW50RGlkVXBkYXRlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1lLm1lc3NhZ2VzTGVuZ3RoIT09dGhpcy5wcm9wcy5tZXNzYWdlc0xlbmd0aCxuPWUuc2hvd09sZE1lc3NhZ2VzIT09dGhpcy5wcm9wcy5zaG93T2xkTWVzc2FnZXM7dCYmKHRoaXMubWVzc2FnZVdhc0FkZGVkPSEwKSwodHx8bikmJnRoaXMuY2FsY3VsYXRlU2Nyb2xsRGl2SGVpZ2h0KCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtpZDoiY29udmVyc2F0aW9uLXNjcm9sbCJ9LE9iamVjdChNLmQpKCJkaXYiLHtvbk1vdXNlRG93bjp0aGlzLmhhbmRsZVNjcm9sbE1vdmUscmVmOnRoaXMuYmluZFNjcm9sbH0pKX19XSksbn0ody5hLkNvbXBvbmVudCkscXI9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChNLmQpKEsse2luOiExIT09ZS5vcGVyYXRvcklzVHlwaW5nLGNsYXNzTmFtZXM6Im9wZXJhdG9yVHlwaW5nIn0sT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToibWVzc2FnZSBtZXNzYWdlLW9wZXJhdG9yIHR5cGluZy1pbmRpY2F0b3IifSxPYmplY3QoTS5kKSgic3BhbiIsbnVsbCksT2JqZWN0KE0uZCkoInNwYW4iLG51bGwpLE9iamVjdChNLmQpKCJzcGFuIixudWxsKSkpfSxZcj1mdW5jdGlvbigpe3ZhciBlPU9iamVjdCh4LmMpKCksdD1PYmplY3QoeC5kKSh4dC5hKTtyZXR1cm4gT2JqZWN0KHkudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXt2YXIgdD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UoT2JqZWN0KHd0LldiKSgpKX0pLDZlMyk7cmV0dXJuIGZ1bmN0aW9uKCl7bnVsbCE9PXQmJmNsZWFyVGltZW91dCh0KX19KSxbZV0pLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UgbWVzc2FnZS1vcGVyYXRvciBtZXNzYWdlLWFsZXJ0Iixyb2xlOiJhbGVydCIsImFyaWEtbGl2ZSI6ImFzc2VydGl2ZSIsImFyaWEtYXRvbWljIjoidHJ1ZSJ9LE9iamVjdChNLmQpKHl0LmEsbnVsbCksdCl9LEdyPWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KHguYykoKSx0PU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5tZXNzYWdlc30pKSxuPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5vcGVyYXRvcklzVHlwaW5nfSkpLHI9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFsZXJ0LmlzVmlzaWJsZX0pKSxhPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc01vYmlsZX0pKSxpPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zaG93T2xkTWVzc2FnZXN9KSkscz1PYmplY3QoeC5kKSh4dC5pKSxjPU9iamVjdCh5LnVzZVJlZikoT2JqZWN0KEZ0LmMpKCkpLGw9T2JqZWN0KHkudXNlUmVmKSgpLHU9T2JqZWN0KHkudXNlUmVmKSgpLGQ9T2JqZWN0KHkudXNlUmVmKSgwKSxmPU9iamVjdCh5LnVzZVN0YXRlKSghMSkscD1YKCkoZiwyKSxiPXBbMF0sbT1wWzFdO09iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7dS5jdXJyZW50JiZtKCEwKX0pLFtdKTt2YXIgaD1mdW5jdGlvbigpe3UuY3VycmVudCYmKHUuY3VycmVudC5zY3JvbGxUb3A9dS5jdXJyZW50LnNjcm9sbEhlaWdodC11LmN1cnJlbnQuY2xpZW50SGVpZ2h0KX07T2JqZWN0KHkudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtyZXR1cm4gZShPYmplY3Qod3QuRGMpKGE/THQuZi5tb2JpbGU6THQuZi5jaGF0U2l6ZTEpKSxoKCksZC5jdXJyZW50PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dS5jdXJyZW50JiZ1LmN1cnJlbnQuc2Nyb2xsVG9wLXUuY3VycmVudC5zY3JvbGxIZWlnaHQhPT11LmN1cnJlbnQuY2xpZW50SGVpZ2h0JiZoKCl9KSwxMDApLGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFyVGltZW91dChkLmN1cnJlbnQpfX0pLFtlLGFdKTt2YXIgZz1PYmplY3QoeS51c2VTdGF0ZSkoaSksdj1YKCkoZywyKSx3PXZbMF0sTz12WzFdO09iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7dyE9PWkmJmwuY3VycmVudCYmKGwuY3VycmVudC5zY3JvbGxJbnRvVmlldygpLE8oaSkpfSksW2ksd10pO3ZhciBqPU9iamVjdCh5LnVzZVJlZikodCksaz11LmN1cnJlbnQmJnUuY3VycmVudC5zY3JvbGxIZWlnaHQ+dS5jdXJyZW50LmNsaWVudEhlaWdodCs0MCxBPXQubGVuZ3RoLEM9Qm9vbGVhbih0Lmxlbmd0aD4wJiYidXBsb2FkZWRGaWxlIj09PXRbQS0xXS50eXBlJiZ0W0EtMV0uaW1hZ2VMb2FkZWQpLEU9ai5jdXJyZW50Lmxlbmd0aDxBO09iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7ai5jdXJyZW50Lmxlbmd0aCE9PXQubGVuZ3RoJiZoKCksayYmRSYmZnVuY3Rpb24oKXt0cnl7Zm9yKHZhciBlPUFycmF5LmZyb20oYy5jdXJyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZXNzYWdlIikpLnNsaWNlKC05KSx0PWVbZS5sZW5ndGgtMV0ub2Zmc2V0SGVpZ2h0LG49MDtuPGUubGVuZ3RoO24rPTEpZVtuXS5zdHlsZS50cmFuc2l0aW9uPSJub25lIixlW25dLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgiLmNvbmNhdCh0LCJweCkiKTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCs9MSllW3RdLnN0eWxlLnRyYW5zaXRpb249InRyYW5zZm9ybSAwLjJzLCBtYXJnaW4gMC4ycyIsZVt0XS5zdHlsZS50cmFuc2Zvcm09IiJ9KSwwKX1jYXRjaChyKXtPYmplY3QoaHQuYSkocil9fSgpLGouY3VycmVudD10fSksW2ssYyx0LGosRV0pLE9iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7KHJ8fG58fEMpJiZoKCl9KSxbcixuLENdKTt2YXIgUz1PYmplY3QoZnQubSkoKSxSPU9iamVjdChmdC5JKSgpLEQ9dC5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkvMWUzKS1lLnRpbWVfc2VudD44NjQwMH0pKSxUPXQuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5mbG9vcihEYXRlLm5vdygpLzFlMyktZS50aW1lX3NlbnQ8PTg2NDAwfSkpLE49d3QuYWQ/dDpULFA9T2JqZWN0KHkudXNlU3RhdGUpKE4ubGVuZ3RoKSxMPVgoKShQLDEpWzBdO3JldHVybiBPYmplY3QoeS51c2VFZmZlY3QpKChmdW5jdGlvbigpe0w9PT1OLmxlbmd0aCYmKE4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4idXBsb2FkZWRGaWxlIj09PWUudHlwZSYmImltYWdlIj09PWUuYXR0YWNobWVudFR5cGV9KSkuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIWUuaW1hZ2VMb2FkZWR9KSl8fGgoKSl9KSxbTCxOXSksT2JqZWN0KE0uZCkoImRpdiIse2lkOiJjb252ZXJzYXRpb24tZ3JvdXAiLHJlZjp1LGNsYXNzTmFtZToiIi5jb25jYXQoIkZpcmVmb3giPT09Uy5uYW1lPyJuYXRpdmUtc2Nyb2xsIjoiIiwiICIpLmNvbmNhdChzPyJkcmFnLWFjdGl2ZSI6IiIsIiAiKS5jb25jYXQoUj8iaW9zLWlwYWQiOiIiKSxyb2xlOiJsb2cifSxzJiZPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJ1cGxvYWRJY29uV3JhcHBlciJ9LE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6InVwbG9hZC1jaXJjbGUifSxPYmplY3QoTS5kKSh5dC5HLG51bGwpLE9iamVjdChNLmQpKCJzcGFuIixudWxsLE9iamVjdChZZS5jKSgiZHJhZ0FuZERyb3BJbmZvIixudWxsLCJEcm9wIGhlcmUgdG8gYXR0YWNoIikpKSksT2JqZWN0KE0uZCkoImRpdiIse2lkOiJtZXNzYWdlcyIsImFyaWEtbGl2ZSI6InBvbGl0ZSIsImFyaWEtYXRvbWljIjoiZmFsc2UiLCJkYXRhLXRlc3RpZCI6Im1lc3NhZ2VzTG9nIn0saSYmRC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKShIcixvKCkoe2tleTplLmlkfSxlLHtzZW5kZXI6ZS5zZW5kZXJ9KSl9KSksIWkmJkQubGVuZ3RoPjAmJk9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Imhpc3RvcnktYnV0dG9uLXdyYXBwZXIiLCJkYXRhLXRlc3RpZCI6Imhpc3RvcnlCdXR0b25XcmFwcGVyIn0sT2JqZWN0KE0uZCkoImJ1dHRvbiIse2NsYXNzTmFtZToiaGlzdG9yeS1idXR0b24iLHR5cGU6ImJ1dHRvbiIsb25DbGljazpmdW5jdGlvbigpe2UoT2JqZWN0KHd0Lm9kKShrdC5hLnNob3dQcmV2aW91c01lc3NhZ2VzQ2xpY2tlZCkpLGUoT2JqZWN0KHd0LmFkKSghMCkpfSwiZGF0YS10ZXN0aWQiOiJoaXN0b3J5QnV0dG9uIn0sT2JqZWN0KE0uZCkoeXQubyxudWxsKSxPYmplY3QoWWUuYykoInByZXZpb3VzTWVzc2FnZXMiLG51bGwsIlByZXZpb3VzIG1lc3NhZ2VzIikpKSxELmxlbmd0aD4wJiZPYmplY3QoTS5kKSgiZGl2Iix7cmVmOmwsc3R5bGU6e2Zsb2F0OiJsZWZ0IixjbGVhcjoiYm90aCIsd2lkdGg6IjEwMCUifX0pLFQubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KE0uZCkoSHIsbygpKHtrZXk6ZS5pZH0sZSx7c2VuZGVyOmUuc2VuZGVyfSkpfSkpLE9iamVjdChNLmQpKHRuLHtpbjpyfSxPYmplY3QoTS5kKShZcixudWxsKSksT2JqZWN0KE0uZCkocXIse29wZXJhdG9ySXNUeXBpbmc6bn0pKSxiJiYiRmlyZWZveCIhPT1TLm5hbWUmJiFhJiZPYmplY3QoTS5kKShWcix7bWVzc2FnZXNMZW5ndGg6dC5sZW5ndGgsY29udmVyc2F0aW9uUmVmOnUuY3VycmVudCxpZnJhbWVEb2N1bWVudDpjLmN1cnJlbnQsc2hvd09sZE1lc3NhZ2VzOml9KSl9LFFyPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJnZXQtc3RhcnRlZCJ9LE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6ZS5vbkNsaWNrfSxPYmplY3QoTS5kKShkdCx7dmFsdWU6ImdldFN0YXJ0ZWQiLGZhbGxiYWNrOiJHZXQgc3RhcnRlZCJ9KSkpfTtmdW5jdGlvbiBLcihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gWnIoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/S3IoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2KCkoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOktyKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfXZhciBYcj1mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KE0uZCkoVix7aW46ZS5pbix0aW1lb3V0OmUudGltZW91dCxhcHBlYXI6ITAsYWRkRW5kTGlzdGVuZXI6ZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixlLm9uQW5pbWF0aW9uRW5kZWQsITEpfX0sKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJ0cmFuc2l0aW9uLWNvbnRhaW5lciIsc3R5bGU6WnIoWnIoe30sZS5kZWZhdWx0U3R5bGUpLGUudHJhbnNpdGlvblN0eWxlc1t0XSl9LGUuY2hpbGRyZW4pfSkpfSwkcj1mdW5jdGlvbihlKXt2YXIgdD1lLnRyYWNraW5nRXZlbnQsbj1PYmplY3QoeC5jKSgpLHI9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzTW9iaWxlfSkpLG89T2JqZWN0KHguZCkoeHQuZyksYT1PYmplY3QoeC5kKSh4dC5uKTtyZXR1cm4gciYmYT09PU50LmcuV0lYfHwhciYmbz9udWxsOk9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToibWF0ZXJpYWwtaWNvbnMgZXhpdC1jaGF0IG1vYmlsZS1jbG9zZSIsb25DbGljazpmdW5jdGlvbigpe24oT2JqZWN0KHd0Lm9kKSh0KSksbihPYmplY3Qod3QuZWQpKCExKSksbihPYmplY3Qod3QueGMpKCExKSl9LCJhcmlhLWxhYmVsIjpPYmplY3QoWWUuYykoImNsb3NlV2lkZ2V0IixudWxsLCJDbG9zZSBjaGF0IHdpZGdldCIpfSxPYmplY3QoTS5kKSh5dC5oLG51bGwpKX0sSnI9bigxNTIpLGVvPW4ubihKciksdG89KG4oMzg5KSxuKDM5MCksbigxMDkpLG4oNTIpKSxubz1uLm4odG8pLHJvPU9iamVjdCh4LmIpKChmdW5jdGlvbihlKXtyZXR1cm57d2lkZ2V0Q29sb3I6ZS53aWRnZXRDb2xvcn19KSkoKGZ1bmN0aW9uKGUpe3ZhciB0PWUud2lkZ2V0Q29sb3I7cmV0dXJuIE9iamVjdChNLmQpKCJidXR0b24iLHtjbGFzc05hbWU6InVzZXItZGF0YS1tb2RhbC1zdWJtaXQiLHR5cGU6InN1Ym1pdCIsc3R5bGU6e2JhY2tncm91bmQ6ImxpbmVhci1ncmFkaWVudCg5OWRlZywgIi5jb25jYXQodFswXSwiLCAiKS5jb25jYXQodFsxXSwiKSIpLGNvbG9yOnRbMl18fCIjZmZmIixib3hTaGFkb3c6IiIuY29uY2F0KE9iamVjdChmdC52KSh0WzNdLCIwLjI0IiksIiAwcHggOHB4IDMycHggMHB4Iil9fSxPYmplY3QoTS5kKShkdCx7dmFsdWU6Im9mZmxpbmVTZW5kQnV0dG9uIn0pKX0pKSxvbz1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSl7cmV0dXJue29wZXJhdG9yczplLm9wZXJhdG9yc319KSkoKGZ1bmN0aW9uKGUpe3ZhciB0PWUub3BlcmF0b3JzLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzT25saW5lfSkpP2Uub3BlcmF0b3JzLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNPbmxpbmV9KSk6ZS5vcGVyYXRvcnM7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6InVzZXItZGF0YS1tb2RhbC1vcGVyYXRvcnMifSx0LnNsaWNlKDAsNCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KE0uZCkoYnQse2tleTplLmlkLGF2YXRhclNyYzplLmF2YXRhclNyYyxjbGFzc05hbWU6InVzZXItZGF0YS1tb2RhbC1vcGVyYXRvciJ9KX0pKSl9KSksYW89ZnVuY3Rpb24oZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W10scj0yNzAsbz13LmEudXNlU3RhdGUoITEpLGE9WCgpKG8sMiksaT1hWzBdLHM9YVsxXSxjPU9iamVjdChGdC5lKSgpO3JldHVybiB3LmEudXNlRWZmZWN0KChmdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXtlLmN1cnJlbnQmJnQuY3VycmVudCYmKGUuY3VycmVudC5jbGllbnRIZWlnaHQtdC5jdXJyZW50LmNsaWVudEhlaWdodD5yP3MoITApOnMoITEpKX1yZXR1cm4gYyYmYy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLG4pLGZ1bmN0aW9uKCl7YyYmYy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLG4pfX0pLFt0LGUsYyxuXSksdy5hLnVzZUVmZmVjdCgoZnVuY3Rpb24oKXtpZihlLmN1cnJlbnQmJnQuY3VycmVudCl7dmFyIG49ZS5jdXJyZW50LmNsaWVudEhlaWdodC10LmN1cnJlbnQuY2xpZW50SGVpZ2h0PnI7cyhuKX19KSxbaSxlLHQsbl0pLGl9O3ZhciBpbz17bmFtZToiMWxsMnIzdiIsc3R5bGVzOiJwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLWJvdHRvbTo4cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEwOCwgMTI1LCAxNTksIDAuMjQpO2JvcmRlci1yYWRpdXM6NXB4OyJ9LHNvPXtuYW1lOiIxb285amZvIixzdHlsZXM6ImJvcmRlci1jb2xvcjojZjYzMDNhO3NlbGVjdHsmOm5vdCg6Zm9jdXMpOmludmFsaWR7Y29sb3I6I2Y2MzAzYTt9fXN2Z3tmaWxsOiNmNjMwM2E7fSJ9LGNvPXtuYW1lOiIxZnF4NXEiLHN0eWxlczoiYm9yZGVyLWNvbG9yOiMwMDdERkM7c3Zne2ZpbGw6IzY0NzQ5MTt9In0sbG89e25hbWU6InphajY3NSIsc3R5bGVzOidvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6OXB4IDQwcHggMTBweCAxMnB4O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojMDgwRjFBO2ZvbnQtc2l6ZToxNXB4O2FwcGVhcmFuY2U6bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpczsmOm5vdCg6Zm9jdXMpOmludmFsaWR7Y29sb3I6Izg4OTRhYjt9b3B0aW9uW3ZhbHVlPSIiXVtkaXNhYmxlZF17ZGlzcGxheTpub25lO30nfSx1bz17bmFtZToiem5tYWI4IixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3JpZ2h0OjhweDt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O21hcmdpbjphdXRvO3BvaW50ZXItZXZlbnRzOm5vbmU7c3Zne3RvcDphdXRvO2xlZnQ6YXV0bztmaWxsOiM2NDc0OTE7fSJ9LGZvPU9iamVjdChmdC55KSgpLHBvPWZ1bmN0aW9uKGUpe3ZhciB0PWUub25DaGFuZ2Usbj1lLmhhc0Vycm9yLHI9ZS5zaGFrZUNsYXNzTmFtZSxvPU9iamVjdCh4LmQpKHh0LnApLGE9T2JqZWN0KHkudXNlU3RhdGUpKCExKSxpPVgoKShhLDIpLHM9aVswXSxjPWlbMV0sbD1PYmplY3QoeS51c2VTdGF0ZSkoIiIpLHU9WCgpKGwsMiksZD11WzBdLGY9dVsxXTtpZighby5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHA9T2JqZWN0KFllLmMpKCJyb3V0aW5nUnVsZXNfc2VsZWN0b3IiLG51bGwsIlNlbGVjdCBEZXBhcnRtZW50Li4uIik7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjc3M6T2JqZWN0KE1yLmEpKFtpbyxuJiZzbyxzJiZjb10sIiIpLGNsYXNzTmFtZTpyfSxPYmplY3QoTS5kKSgic2VsZWN0Iix7Y3NzOmxvLHZhbHVlOmQscmVxdWlyZWQ6ITAsZm9ybToibm92YWxpZGF0ZWRmb3JtIixvbkZvY3VzOmZ1bmN0aW9uKCl7YyghMCl9LG9uQmx1cjpmdW5jdGlvbigpe2MoITEpfSxvbkNoYW5nZTpmdW5jdGlvbihlKXt2YXIgbixyPWUudGFyZ2V0LnZhbHVlLGE9bnVsbD09PShuPW8uZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucG9zaXRpb249PT1OdW1iZXIocil9KSkpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmRlcGFydG1lbnRJZDtmb3x8ZihyKSx0JiZhJiZ0KGEpfSx0aXRsZTpwfSxPYmplY3QoTS5kKSgib3B0aW9uIix7dmFsdWU6IiIsZGlzYWJsZWQ6ITB9LHApLG8ubWFwKChmdW5jdGlvbihlKXt2YXIgdD1lLmFsaWFzLG49ZS5wb3NpdGlvbjtyZXR1cm4gT2JqZWN0KE0uZCkoIm9wdGlvbiIse2tleTpuLHZhbHVlOm59LHQpfSkpKSxPYmplY3QoTS5kKSgiZGl2Iix7Y3NzOnVvfSxPYmplY3QoTS5kKSh5dC5jLG51bGwpKSl9O2Z1bmN0aW9uIGJvKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBtbyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9ibyhPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe3YoKShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6Ym8oT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gaG8oZSl7dmFyIHQ9ZTtyZXR1cm5bTW4uYiwic2lnblVwTmV3c2xldHRlciJdLmZvckVhY2goKGZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT09dHlwZW9mIHRbZV0mJih0W2VdPUJvb2xlYW4odFtlXSkpfSkpLCJib29sZWFuIj09PXR5cGVvZiB0W01uLmJdJiYodFtNbi5iXT17dmFsdWU6dFtNbi5iXT8ic3Vic2NyaWJlZCI6InVuc3Vic2NyaWJlZCIsZGF0ZTpNYXRoLnJvdW5kKERhdGUubm93KCkvMWUzKSxzZXRCeToidXNlciJ9KSx0fWZ1bmN0aW9uIGdvKGUsdCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJTRVRfSU5QVVQiOnZhciBuPXQuZmllbGRUeXBlLHI9dC5pc1ZhbGlkLG89dC52YWx1ZTtyZXR1cm4gbW8obW8oe30sZSkse30se2lucHV0VmFsdWVzOm1vKG1vKHt9LGUuaW5wdXRWYWx1ZXMpLHt9LHYoKSh7fSxuLHtpc1ZhbGlkOnIsdmFsdWU6b30pKSxmaWVsZHNXaXRoRXJyb3JzOm1vKG1vKHt9LGUuZmllbGRzV2l0aEVycm9ycykse30sdigpKHt9LG4sITEpKX0pO2Nhc2UiU0hPV19FUlJPUl9PTl9JTlZBTElEX0ZJRUxEUyI6dmFyIGE9T2JqZWN0LmVudHJpZXMoZS5pbnB1dFZhbHVlcykuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hWCgpKGUsMilbMV0uaXNWYWxpZH0pKS5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7dmFyIG49WCgpKHQsMSlbMF07cmV0dXJuIG1vKG1vKHt9LGUpLHt9LHYoKSh7fSxuLCEwKSl9KSx7fSk7cmV0dXJuIG1vKG1vKHt9LGUpLHt9LHtmaWVsZHNXaXRoRXJyb3JzOmF9KTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcn19dmFyIHZvPWZ1bmN0aW9uKGUpe3ZhciB0PWUuYXJlRGVwYXJ0bWVudHNFbmFibGVkJiYhZS5pc0RlcGFydG1lbnRTZWxlY3RlZD9bXS5jb25jYXQobm8oKShlLnByZUNoYXRGaWVsZHMpLFt7dHlwZTpNbi5hfV0pOmUucHJlQ2hhdEZpZWxkcyxuPXcuYS51c2VSZWR1Y2VyKGdvLHQsKGZ1bmN0aW9uKHQpe3ZhciBuPXt9O3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKGUpe25bZS50eXBlXT17aXNWYWxpZDohMSx2YWx1ZTplLnZhbHVlP2UudmFsdWU6IiJ9fSkpLGUucHJlY2hhdFN1YnNjcmlwdGlvbkNoZWNrYm94RGVmYXVsdFZhbHVlJiYhbi5lbWFpbENvbnNlbnQudmFsdWUmJihuLmVtYWlsQ29uc2VudD1tbyhtbyh7fSxuLmVtYWlsQ29uc2VudCkse30se3ZhbHVlOiEwfSkpLHtpbnB1dFZhbHVlczpuLGZpZWxkc1dpdGhFcnJvcnM6e319fSkpLHI9WCgpKG4sMiksbz1yWzBdLGE9clsxXSxpPXp0KCkscz1pLnRyaWdnZXJTaGFrZSxjPWkuc2hha2VDbGFzc05hbWU7ZnVuY3Rpb24gbChlLHQsbil7YSh7dHlwZToiU0VUX0lOUFVUIixmaWVsZFR5cGU6bix2YWx1ZTplLGlzVmFsaWQ6dH0pfWZ1bmN0aW9uIHUoZSl7YSh7dHlwZToiU0VUX0lOUFVUIixmaWVsZFR5cGU6TW4uYSx2YWx1ZTplLGlzVmFsaWQ6ITB9KX12YXIgZD13LmEudXNlUmVmKCk7dy5hLnVzZUVmZmVjdCgoZnVuY3Rpb24oKXtkLmN1cnJlbnQmJmQuY3VycmVudC5mb2N1cygpfSksW10pLHcuYS51c2VFZmZlY3QoKGZ1bmN0aW9uKCl7ZS5pc0RlcGFydG1lbnRTZWxlY3RlZCYmdShlLnNlbGVjdGVkRGVwYXJ0bWVudElkKX0pLFtlLmlzRGVwYXJ0bWVudFNlbGVjdGVkLGUuc2VsZWN0ZWREZXBhcnRtZW50SWRdKTt2YXIgZj13LmEudXNlUmVmKCkscD1hbyhlLnBhcmVudENvbnRhaW5lclJlZixmLGUucHJlQ2hhdEZpZWxkcyk7ZnVuY3Rpb24gYih0KXtyZXR1cm4gdCYmdC5wcmV2ZW50RGVmYXVsdCgpLE9iamVjdC52YWx1ZXMoby5pbnB1dFZhbHVlcykuZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZS5pc1ZhbGlkfSkpPyhlLmRpc3BhdGNoKE9iamVjdCh3dC5yYykoZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3Rbbl09ZVtuXS52YWx1ZX0pKSwhMD09PXQuc2lnblVwTmV3c2xldHRlciYmKHQuZW1haWxDb25zZW50PSEwKSxobyh0KX0oby5pbnB1dFZhbHVlcykpKSwhMCk6KHMoKSxhKHt0eXBlOiJTSE9XX0VSUk9SX09OX0lOVkFMSURfRklFTERTIn0pLCExKX1mdW5jdGlvbiBtKGUpezEzPT09ZSYmYigpfXZhciBoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdChNLmQpKEVuLHtrZXk6ZS50eXBlLHR5cGU6ZS50eXBlLHBsYWNlaG9sZGVyOmUucGxhY2Vob2xkZXIsb25JbnB1dENoYW5nZTpsLGRpc2FibGVkOiExLG9uS2V5RG93bjptLGZvcmNlRXJyb3JJY29uOm8uZmllbGRzV2l0aEVycm9yc1tlLnR5cGVdLHNoYWtlQ2xhc3NOYW1lOm8uZmllbGRzV2l0aEVycm9yc1tlLnR5cGVdJiZjP2M6IiIscmVmOjA9PT10P2Q6dm9pZCAwLHZhbHVlOmUudmFsdWV9KX0sZz1lLnByZUNoYXRGaWVsZHMubWFwKChmdW5jdGlvbihlKXt2YXIgdCxuPW51bGw9PT0odD1vLmlucHV0VmFsdWVzW2UudHlwZV0pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnZhbHVlO3JldHVybiBtbyhtbyh7fSxlKSx7fSx7dmFsdWU6bn0pfSkpLHY9Zy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGUhPT1Nbi5ifSkpLHk9Zy5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS50eXBlPT09TW4uYn0pKSx4PW8uZmllbGRzV2l0aEVycm9yc1tNbi5hXTtyZXR1cm4gT2JqZWN0KE0uZCkoay5hbmltYXRlZC5kaXYse2NsYXNzTmFtZToicHJlLWNoYXQiLHN0eWxlOmUuc3R5bGV9LHAmJk9iamVjdChNLmQpKG9vLG51bGwpLE9iamVjdChNLmQpKCJmb3JtIix7b25TdWJtaXQ6YixyZWY6Zn0sT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToidXNlci1kYXRhLW1vZGFsLXRleHQifSxPYmplY3QoTS5kKShkdCx7dmFsdWU6InByZWZvcm1NZXNzYWdlIixlbW9qaWZ5OiEwfSkpLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6InVzZXItZGF0YS1tb2RhbC1maWVsZHMifSx2Lm1hcChoKSxlLmFyZURlcGFydG1lbnRzRW5hYmxlZCYmIWUuaXNEZXBhcnRtZW50U2VsZWN0ZWQmJk9iamVjdChNLmQpKHBvLHtvbkNoYW5nZTp1LHNoYWtlQ2xhc3NOYW1lOngmJmM/YzoiIixoYXNFcnJvcjp4fSkseSYmaCh5LHYubGVuZ3RoKSksT2JqZWN0KE0uZCkocm8sbnVsbCkpKX07dm8uZGVmYXVsdFByb3BzPXtzZWxlY3RlZERlcGFydG1lbnRJZDpudWxsfTt2YXIgeW89T2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybntwcmVDaGF0RmllbGRzOk9iamVjdChPdC5kKShlLnByZUNoYXQuZGF0YSxlLnZpc2l0b3IpLGFyZURlcGFydG1lbnRzRW5hYmxlZDpPYmplY3QoeHQuYikoZSksaXNEZXBhcnRtZW50U2VsZWN0ZWQ6T2JqZWN0KHh0LmgpKGUpLHNlbGVjdGVkRGVwYXJ0bWVudElkOk9iamVjdCh4dC5yKShlKSxwcmVjaGF0U3Vic2NyaXB0aW9uQ2hlY2tib3hEZWZhdWx0VmFsdWU6T2JqZWN0KHh0Lm8pKGUpfX0pKSh2byksd289T2JqZWN0KHguYikoKSgoZnVuY3Rpb24oZSl7dmFyIHQ9dy5hLnVzZVN0YXRlKCIiKSxuPVgoKSh0LDIpLHI9blswXSxvPW5bMV0sYT13LmEudXNlU3RhdGUoITEpLGk9WCgpKGEsMikscz1pWzBdLGM9aVsxXSxsPXcuYS51c2VTdGF0ZSghMSksdT1YKCkobCwyKSxkPXVbMF0sZj11WzFdLHA9enQoKSxiPXAudHJpZ2dlclNoYWtlLG09cC5zaGFrZUNsYXNzTmFtZSxoPXcuYS51c2VSZWYoKTt3LmEudXNlRWZmZWN0KChmdW5jdGlvbigpe2guY3VycmVudCYmaC5jdXJyZW50LmZvY3VzKCl9KSxbXSk7dmFyIGc9dy5hLnVzZVJlZigpLHY9YW8oZS5wYXJlbnRDb250YWluZXJSZWYsZyk7ZnVuY3Rpb24geSh0KXtyZXR1cm4gdCYmdC5wcmV2ZW50RGVmYXVsdCgpLHM/KGUuZGlzcGF0Y2goT2JqZWN0KHd0LnFjKShyKSksITApOihmKCEwKSxiKCksITEpfXJldHVybiBPYmplY3QoTS5kKShrLmFuaW1hdGVkLmRpdix7Y2xhc3NOYW1lOiJhbHdheXMtb25saW5lIixzdHlsZTplLnN0eWxlfSx2JiZPYmplY3QoTS5kKShvbyxudWxsKSxPYmplY3QoTS5kKSgiZm9ybSIse29uU3VibWl0OnkscmVmOmd9LE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6InVzZXItZGF0YS1tb2RhbC10ZXh0In0sT2JqZWN0KE0uZCkoZHQse3ZhbHVlOiJhbHdheXNPbmxpbmVFbmdhZ2VNZXNzYWdlIixlbW9qaWZ5OiEwfSkpLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6InVzZXItZGF0YS1tb2RhbC1maWVsZHMifSxPYmplY3QoTS5kKShBbix7dHlwZToiZW1haWwiLHBsYWNlaG9sZGVyOiJwcmVmb3JtSW5wdXRfZW1haWwiLG9uQ2hhbmdlOmZ1bmN0aW9uKGUsdCl7byhlKSxjKHQpLGYoITEpfSxvbktleURvd246ZnVuY3Rpb24oZSl7MTM9PT1lJiZ5KCl9LGRpc2FibGVkOiExLGJpbmRJbnB1dFJlZjpoLGZvcmNlRXJyb3JJY29uOmQsc2hha2VDbGFzc05hbWU6bX0pKSxPYmplY3QoTS5kKShybyxudWxsKSkpfSkpO2Z1bmN0aW9uIHhvKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn12YXIgT289T2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybntzaG93VXNlckRhdGFNb2RhbDplLnNob3dVc2VyRGF0YU1vZGFsLHdpZGdldENvbG9yOmUud2lkZ2V0Q29sb3J9fSkpKChmdW5jdGlvbihlKXt2YXIgdD13LmEudXNlUmVmKCk7dy5hLnVzZUVmZmVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtPYmplY3QoRnQuYikoKX19KSxbXSk7dmFyIG49T2JqZWN0KGsudXNlVHJhbnNpdGlvbikoZS5zaG93VXNlckRhdGFNb2RhbCxudWxsLHtjb25maWc6ay5jb25maWcuc3RpZmYsZnJvbTp7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0xMHB4KSJ9LGVudGVyOnt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSxsZWF2ZTp7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDEwcHgpIn19KSxyPWUuc3R5bGUsbz1yLmZpbGxlckhlaWdodCxhPWVvKCkocixbImZpbGxlckhlaWdodCJdKSxpPXcuYS51c2VNZW1vKChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj94byhPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe3YoKShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6eG8oT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9KHtiYWNrZ3JvdW5kSW1hZ2U6ImxpbmVhci1ncmFkaWVudCgjZmZmLCAjZmZmKSwgbGluZWFyLWdyYWRpZW50KDExOGRlZywgIi5jb25jYXQoZS53aWRnZXRDb2xvclswXSwiLCAiKS5jb25jYXQoZS53aWRnZXRDb2xvclsxXSwiKSIpfSxhKX0pLFtlLndpZGdldENvbG9yLGFdKTtyZXR1cm4gT2JqZWN0KE0uZCkoay5hbmltYXRlZC5kaXYse2NsYXNzTmFtZToidXNlci1kYXRhLW1vZGFsIixzdHlsZTppLHJlZjp0LCJkYXRhLXRlc3RpZCI6InVzZXJEYXRhTW9kYWwifSxPYmplY3QoTS5kKSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJ1c2VyLWRhdGEtbW9kYWwtY2xvc2UiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlLmRpc3BhdGNoKE9iamVjdCh3dC5vZCkoa3QuYS5jbG9zZU1vZGFsQ2xpY2tlZCkpLGUuZGlzcGF0Y2goT2JqZWN0KHd0LmJkKSghMSkpfSx0eXBlOiJidXR0b24iLCJhcmlhLWxhYmVsIjpPYmplY3QoWWUuYykoImNsb3NlVXNlckRhdGFNb2RhbCIsbnVsbCwiQ2xvc2UgbW9kYWwiKX0sT2JqZWN0KE0uZCkoeXQuaCxudWxsKSksbi5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPWUuaXRlbSxyPWUua2V5LG89ZS5wcm9wcztyZXR1cm4icHJlY2hhdCI9PT1uP09iamVjdChNLmQpKHlvLHtwYXJlbnRDb250YWluZXJSZWY6dCxrZXk6cixzdHlsZTpvfSk6ImFsd2F5c09ubGluZSI9PT1uP09iamVjdChNLmQpKHdvLHtwYXJlbnRDb250YWluZXJSZWY6dCxrZXk6cixzdHlsZTpvfSk6bnVsbH0pKSxPYmplY3QoTS5kKShrLmFuaW1hdGVkLmRpdix7Y2xhc3NOYW1lOiJ1c2VyLWRhdGEtbW9kYWwtZmlsbGVyIixzdHlsZTp7aGVpZ2h0Om99fSkpfSkpLGpvPU9iamVjdCh4LmIpKChmdW5jdGlvbihlKXtyZXR1cm57c2hvd1VzZXJEYXRhTW9kYWw6ZS5zaG93VXNlckRhdGFNb2RhbH19KSkoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3Qoay51c2VUcmFuc2l0aW9uKSghMSE9PWUuc2hvd1VzZXJEYXRhTW9kYWwsbnVsbCx7Y29uZmlnOnt0ZW5zaW9uOjE1MCxmcmljdGlvbjoyMH0sZnJvbTp7b3BhY2l0eTowLGZpbGxlckhlaWdodDoiOTMlIixtb3ZlQ29udGVudDoidHJhbnNsYXRlWSgtMjBweCkifSxlbnRlcjp7b3BhY2l0eToxLGZpbGxlckhlaWdodDoiOTYlIixtb3ZlQ29udGVudDoidHJhbnNsYXRlWSgwKSJ9LGxlYXZlOntvcGFjaXR5OjAsZmlsbGVySGVpZ2h0OiIxMDUlIixtb3ZlQ29udGVudDoidHJhbnNsYXRlWSgyMHB4KSJ9fSkubWFwKChmdW5jdGlvbihlKXt2YXIgdD1lLml0ZW0sbj1lLmtleSxyPWUucHJvcHM7cmV0dXJuIHQmJk9iamVjdChNLmQpKE9vLHtrZXk6bixzdHlsZTpyfSl9KSl9KSksa289e3RyYW5zaXRpb246Im1heC1oZWlnaHQgMjAwbXMifSxBbz1Cb29sZWFuKE9iamVjdChZZS5jKSgid2VsY29tZU1lc3NhZ2UiLG51bGwsIiIpKSxNbz1PYmplY3QoZnQubSkoKS5uYW1lLnRvTG93ZXJDYXNlKCksQ289T2JqZWN0KGZ0LnIpKCkubmFtZS50b0xvd2VyQ2FzZSgpLEVvPU9iamVjdChmdC55KSgpLFNvPUx0LmVbTHQuZi5jaGF0U2l6ZTFdLndpZHRoLFJvPWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KHguZCkoeHQucyksdD1PYmplY3QoeC5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2hvd09wdGlvbnNEcm9wZG93bn0pKSxuPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc01vYmlsZX0pKSxyPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5tZXNzYWdlc30pKSxhPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRTdGFydGVkQWN0aXZlfSkpLGk9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmhpZGVIZWFkZXJ9KSkscz1PYmplY3QoeC5kKShJdC5rKSxjPU9iamVjdCh4LmQpKHh0LmkpLGw9T2JqZWN0KHguZCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFsbG93QXR0YWNobWVudHN9KSksdT1PYmplY3QoeC5kKSh4dC5rKSxkPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pc1Byb2plY3RPbmxpbmV9KSksZj1PYmplY3QoeC5kKShJdC5sKSxwPU9iamVjdCh5LnVzZVN0YXRlKShyLmxlbmd0aCksYj1YKCkocCwxKVswXSxtPU9iamVjdCh5LnVzZVN0YXRlKShzJiYhbiksaD1YKCkobSwyKSxnPWhbMF0sdj1oWzFdLE89T2JqZWN0KGZ0LnopKCksaj1PYmplY3QoeS51c2VSZWYpKDApLGs9T2JqZWN0KHkudXNlUmVmKSgiIiksQT1PYmplY3QoeS51c2VSZWYpKCIiKSxDPU9iamVjdCh5LnVzZVN0YXRlKShlKSxFPVgoKShDLDIpLFM9RVswXSxSPUVbMV0sRD1PYmplY3QoeC5jKSgpLFQ9T2JqZWN0KHkudXNlUmVmKShudWxsKSxOPU9iamVjdChGdC5lKSgpLFA9T2JqZWN0KHkudXNlUmVmKSgxMDApLEw9T2JqZWN0KHkudXNlUmVmKShuJiYiaW9zIj09PUNvKSxGPU9iamVjdCh5LnVzZVJlZikoe2VudGVyaW5nOnttYXhIZWlnaHQ6IiIuY29uY2F0KFAuY3VycmVudCwicHgiKX0sZW50ZXJlZDp7bWF4SGVpZ2h0OiIzOTlweCJ9fSksXz1PYmplY3QoeS51c2VTdGF0ZSkoMTQ0KSx6PVgoKShfLDIpLEk9elswXSxVPXpbMV07T2JqZWN0KHkudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXt2YXIgZT1kJiYhT2JqZWN0KFllLmMpKCJ3ZUFyZU9ubGluZSIpfHwhZCYmIU9iamVjdChZZS5jKSgiYWx3YXlzT25saW5lVG9wQmFyIik7VShlPzk0OjE0NCl9KSxbZCxVXSk7dmFyIEI9T2JqZWN0KHkudXNlQ2FsbGJhY2spKChmdW5jdGlvbigpe2lmKEwuY3VycmVudCl0cnl7TiYmTi5wYXJlbnQuc2Nyb2xsVG8oMCxqLmN1cnJlbnQpfWNhdGNoKGUpe09iamVjdChodC5hKShlKX19KSxbTl0pLEg9T2JqZWN0KHkudXNlQ2FsbGJhY2spKChmdW5jdGlvbigpe2lmKG4mJk4pdHJ5e04ucGFyZW50LmRvY3VtZW50LmJvZHkuc3R5bGUuY3NzVGV4dD1rLmN1cnJlbnQsTi5wYXJlbnQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmNzc1RleHQ9QS5jdXJyZW50fWNhdGNoKGUpe319KSxbbixOXSk7T2JqZWN0KHkudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtIKCksQigpfX0pLFtILEJdKSxPYmplY3QoeS51c2VFZmZlY3QpKChmdW5jdGlvbigpe0wuY3VycmVudCYmMD09PWouY3VycmVudCYmTiYmKGouY3VycmVudD1OLnBhcmVudC5zY3JvbGxZKX0pLFtOXSksT2JqZWN0KHkudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtpZihlPT09anQuYS5jaGF0JiZuJiZOKXRyeXtBLmN1cnJlbnQ9Ti5wYXJlbnQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmNzc1RleHQsay5jdXJyZW50PU4ucGFyZW50LmRvY3VtZW50LmJvZHkuc3R5bGUuY3NzVGV4dDt2YXIgdD0ib3ZlcmZsb3c6IGhpZGRlbjsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgdmlzaWJpbGl0eTogdmlzaWJsZTsgb3BhY2l0eTogMSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgbGVmdDogMDsgdG9wOjA7IHJpZ2h0OiBhdXRvOyBib3R0b206IGF1dG87IG1hcmdpbjogMDsiOyJpb3MiPT09Q28mJiJjaHJvbWUiIT09TW8mJih0Kz0icG9zaXRpb246Zml4ZWQ7IiksTi5wYXJlbnQuZG9jdW1lbnQuYm9keS5zdHlsZS5jc3NUZXh0PXQsTi5wYXJlbnQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmNzc1RleHQ9Im92ZXJmbG93OiBoaWRkZW47IG1hcmdpbjogMCAhaW1wb3J0YW50OyJ9Y2F0Y2gocil7fX0pLFtuLGUsTl0pLE9iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7Uz09PWp0LmEud2VsY29tZSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpZihULmN1cnJlbnQmJlM9PT1qdC5hLndlbGNvbWUpe3ZhciBlPVQuY3VycmVudC5jbGllbnRIZWlnaHQ7RChPYmplY3Qod3QuRGMpKEx0LmYuZHluYW1pYyx7d2lkdGg6U28saGVpZ2h0OmUrNTF9KSksUC5jdXJyZW50PWUtMTEwLUksRi5jdXJyZW50PXtlbnRlcmluZzp7bWF4SGVpZ2h0OiIiLmNvbmNhdChQLmN1cnJlbnQsInB4Iil9LGVudGVyZWQ6e21heEhlaWdodDoiMzk5cHgifX19fSksMTAwKX0pLFtELEksU10pLE9iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7ci5sZW5ndGg+YiYmUihqdC5hLmNoYXQpLDA9PT1yLmxlbmd0aCYmZT09PWp0LmEud2VsY29tZSYmUihqdC5hLndlbGNvbWUpLFM9PT1qdC5hLndlbGNvbWUmJmU9PT1qdC5hLmNoYXQmJlIoanQuYS5jaGF0KX0pLFtyLmxlbmd0aCxiLFMsZV0pO3ZhciBXPWZ1bmN0aW9uKCl7dCYmbiYmImlvcyI9PT1DbyYmRChPYmplY3Qod3QuSWMpKCExKSl9LFY9VmUoe29uRHJvcDpPYmplY3QoeS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKGUpe2lmKGwpe3ZhciB0PWVbMF07RChPYmplY3Qod3Qua2QpKHQpKSxEKE9iamVjdCh3dC5BYykoITEpKX19KSxbRCxsXSksb25EcmFnRW50ZXI6ZnVuY3Rpb24oKXtjfHxEKE9iamVjdCh3dC5BYykoITApKX0sb25EcmFnTGVhdmU6ZnVuY3Rpb24oKXtEKE9iamVjdCh3dC5BYykoITEpKX0sbm9DbGljazohMCxub0tleWJvYXJkOiEwLGRpc2FibGVkOiFyLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiJ2aXNpdG9yIj09PWUuc2VuZGVyfSkpfHxFb3x8dXx8Zn0pLmdldFJvb3RQcm9wcztyZXR1cm4gUz09PWp0LmEud2VsY29tZT9PYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJzdGFydC1ncm91cCAiLmNvbmNhdChNbywiIG5vLWNsaXAtcGF0aCAiKS5jb25jYXQoQW8/IiI6Im5vLXN0YXJ0LW1lc3NhZ2UiKSwiZGF0YS10ZXN0aWQiOiJ3ZWxjb21lVmlldyIsb25DbGljazpXLHJlZjpUfSxPYmplY3QoTS5kKShUdCxudWxsKSwhTyYmYT9PYmplY3QoTS5kKShRcix7b25DbGljazpmdW5jdGlvbigpe0QoT2JqZWN0KHd0LkxiKSgpKX19KTpPYmplY3QoTS5kKShzbixudWxsKSk6T2JqZWN0KE0uZCkoImRpdiIsbygpKHtjbGFzc05hbWU6ImNoYXQgbm8tY2xpcC1wYXRoICIuY29uY2F0KE1vKSxvbkNsaWNrOld9LFYoe29uQ2xpY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9fSkpLE9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLCFnJiZPYmplY3QoTS5kKShqbyxudWxsKSwhKGkmJm4pJiZPYmplY3QoTS5kKShQdCxudWxsKSxpJiZuJiZPYmplY3QoTS5kKSgkcix7dHJhY2tpbmdFdmVudDprdC5hLmNoYXRDbG9zZWR9KSxnP09iamVjdChNLmQpKFhyLHtpbjohMCx0aW1lb3V0OjEsZGVmYXVsdFN0eWxlOmtvLHRyYW5zaXRpb25TdHlsZXM6Ri5jdXJyZW50LG9uQW5pbWF0aW9uRW5kZWQ6ZnVuY3Rpb24oKXt2KCExKX19LE9iamVjdChNLmQpKEdyLG51bGwpKTpPYmplY3QoTS5kKShHcixudWxsKSksT2JqZWN0KE0uZCkoc24se2hhc1NlcGFyYXRvcjohMH0pKX0sRG89T2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybnt1bnJlYWRNZXNzYWdlczplLnVucmVhZE1lc3NhZ2VzfX0pKSgoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChNLmQpKEsse2NsYXNzTmFtZXM6ImllIj09PWUuYnJvd3Nlck5hbWU/ImZhZGUiOiJzY2FsZSIsaW46ZS51bnJlYWRNZXNzYWdlcz4wfSxPYmplY3QoTS5kKSgiZGl2Iix7aWQ6Im5ldy1tZXNzYWdlIixjbGFzc05hbWU6ImFjdGl2ZSJ9LGUudW5yZWFkTWVzc2FnZXMpKX0pKTtmdW5jdGlvbiBUbyhlKXt2YXIgdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4scj1oKCkoZSk7aWYodCl7dmFyIG89aCgpKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbyl9ZWxzZSBuPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiKCkodGhpcyxuKX19dmFyIE5vPXthY3RpdmU6IjBweCA0cHggMjRweCIsaG92ZXI6IjBweCA4cHggMzJweCJ9LFBvPXthY3RpdmU6IjBweCAycHggMTZweCIsaG92ZXI6IjBweCAycHggMTJweCJ9O2Z1bmN0aW9uIExvKGUsdCl7cmV0dXJuIGU/UG9bdF06Tm9bdF19dmFyIEZvPWZ1bmN0aW9uKGUpe2YoKShuLGUpO3ZhciB0PVRvKG4pO2Z1bmN0aW9uIG4oKXt2YXIgZTtpKCkodGhpcyxuKTtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKylvW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gZT10LmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KG8pKSx2KCkodSgpKGUpLCJzdGF0ZSIse2VsZW1lbnRIb3ZlcmVkOiExLGJ1dHRvblNoYWRvdzoiIzAyMDYxMCI9PT1lLnByb3BzLndpZGdldENvbG9yWzNdPyIiLmNvbmNhdChMbyhlLnByb3BzLmlzQXdlc29tZUlmcmFtZSwiYWN0aXZlIiksIiAiKS5jb25jYXQoT2JqZWN0KGZ0LnYpKGUucHJvcHMud2lkZ2V0Q29sb3JbM10sIi4yMCIpKToiIi5jb25jYXQoTG8oZS5wcm9wcy5pc0F3ZXNvbWVJZnJhbWUsImFjdGl2ZSIpLCIgIikuY29uY2F0KE9iamVjdChmdC52KShlLnByb3BzLndpZGdldENvbG9yWzNdLCIuNTAiKSksaXNHcmFkaWVudEFjdGl2ZToiIzAyMDYxMCIhPT1lLnByb3BzLndpZGdldENvbG9yWzNdfSksdigpKHUoKShlKSwiYnJvd3Nlck5hbWUiLE9iamVjdChmdC5tKSgpLm5hbWUudG9Mb3dlckNhc2UoKSksdigpKHUoKShlKSwid3JhcHBlclJlZiIsdy5hLmNyZWF0ZVJlZigpKSx2KCkodSgpKGUpLCJidXR0b25XYXZlIiwoZnVuY3Rpb24oKXtlLndyYXBwZXJSZWYuY3VycmVudCYmKGUud3JhcHBlclJlZi5jdXJyZW50LmNsYXNzTGlzdC5jb250YWlucygiY2xpY2tlZCIpJiZlLndyYXBwZXJSZWYuY3VycmVudC5jbGFzc0xpc3QucmVtb3ZlKCJjbGlja2VkIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLndyYXBwZXJSZWYuY3VycmVudCYmZS53cmFwcGVyUmVmLmN1cnJlbnQuY2xhc3NMaXN0LmFkZCgiY2xpY2tlZCIpfSksMTApKX0pKSx2KCkodSgpKGUpLCJvbkJ1YmJsZUNsaWNrIiwoZnVuY3Rpb24odCl7dmFyIG49ZS5wcm9wcyxyPW4uZGlzcGF0Y2gsbz1uLmhhc01lc3NhZ2VzLGE9bi5uZXdNZXNzYWdlRGlzYWJsZWQsaT1uLnZpZXcscz1qdC5hLmNoYXQsYz1qdC5hLmNsb3NlZCxsPWp0LmEuZmx5LHU9anQuYS53ZWxjb21lOzA9PT10Lm5hdGl2ZUV2ZW50LnBhZ2VYJiYwPT09dC5uYXRpdmVFdmVudC5wYWdlWXx8dC5jdXJyZW50VGFyZ2V0LmJsdXIoKSxpIT09Yz8oYT9PYmplY3QoRnQuYSkoKTpyKE9iamVjdCh3dC5DYykoITApKSwoaT09PWx8fGk9PT11JiZvKSYmcihPYmplY3Qod3QuT2MpKHMpKSk6KHIoT2JqZWN0KHd0Lm9kKShrdC5hLndpZGdldEljb25DbGlja2VkKSkscihPYmplY3Qod3QubGQpKCkpLHIoT2JqZWN0KHd0LnhjKSghMCkpKX0pKSx2KCkodSgpKGUpLCJzZXRIb3ZlclNoYWRvdyIsKGZ1bmN0aW9uKCl7ZS5zZXRTdGF0ZSh7ZWxlbWVudEhvdmVyZWQ6ITB9KX0pKSx2KCkodSgpKGUpLCJzZXREZWZhdWx0U2hhZG93IiwoZnVuY3Rpb24oKXtlLnNldFN0YXRlKHtlbGVtZW50SG92ZXJlZDohMX0pfSkpLGV9cmV0dXJuIGMoKShuLFt7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMucHJvcHMsbj10LnZpZXcscj10LndpZGdldENvbG9yLG89dC5uZXdNZXNzYWdlRGlzYWJsZWQsYT1uIT09anQuYS5jbG9zZWQsaT1uPT09anQuYS5jbG9zZWR8fG49PT1qdC5hLmZseSxzPXJbMF09PT1yWzFdP3JbMF06ImxpbmVhci1ncmFkaWVudCgxMzVkZWcsICIuY29uY2F0KHRoaXMucHJvcHMud2lkZ2V0Q29sb3JbMF0sIiwgIikuY29uY2F0KHRoaXMucHJvcHMud2lkZ2V0Q29sb3JbMV0sIikiKSxjPXJbMl18fCIjZmZmIixsPXRoaXMucHJvcHMuc2lkZWJhci5mb250Q29sb3J8fCIjZmZmIix1PW8mJm49PT1qdC5hLmNoYXQ7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtpZDoiYnV0dG9uIiwiZGF0YS10ZXN0aWQiOiJ3aWRnZXRCdXR0b24iLGNsYXNzTmFtZToiIi5jb25jYXQodGhpcy5wcm9wcy5pc1NpZGViYXJDb21wb25lbnQ/InNpZGViYXIiOiIiLCIgIikuY29uY2F0KGE/ImNoYXQtb3BlbiI6ImNoYXQtY2xvc2VkIiwiIG1vYmlsZS1zaXplX18iKS5jb25jYXQodGhpcy5wcm9wcy5tb2JpbGVCdXR0b25TaXplKSxyZWY6dGhpcy53cmFwcGVyUmVmfSx0aGlzLnByb3BzLmlzU2lkZWJhckNvbXBvbmVudCYmT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToic2lkZWJhci1jb250ZW50IixzdHlsZTp7YmFja2dyb3VuZDp0aGlzLnByb3BzLnNpZGViYXIuY29sb3IsY29sb3I6bH0sb25DbGljazp0aGlzLm9uQnViYmxlQ2xpY2t9LE9iamVjdChNLmQpKCJzcGFuIixudWxsLE9iamVjdChNLmQpKGR0LHt2YWx1ZToic2lkZWJhckxhYmVsIn0pKSksT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToiYnV0dG9uV2F2ZSJ9KSxPYmplY3QoTS5kKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixpZDoiYnV0dG9uLWJvZHkiLCJkYXRhLXRlc3RpZCI6IndpZGdldEJ1dHRvbkJvZHkiLG9uQ2xpY2s6dGhpcy5vbkJ1YmJsZUNsaWNrLG9uTW91c2VEb3duOmZ1bmN0aW9uKCl7dXx8ZS5idXR0b25XYXZlKCl9LHN0eWxlOntiYWNrZ3JvdW5kOnMsYm94U2hhZG93OnRoaXMuc3RhdGUuYnV0dG9uU2hhZG93fSxvbk1vdXNlRW50ZXI6dT90aGlzLnNldEhvdmVyU2hhZG93OnRoaXMuc2V0RGVmYXVsdFNoYWRvdyxvbk1vdXNlTGVhdmU6dGhpcy5zZXREZWZhdWx0U2hhZG93LGNsYXNzTmFtZToiIi5jb25jYXQodT8iZGlzYWJsZWQiOiIiLCIgIikuY29uY2F0KHRoaXMuYnJvd3Nlck5hbWUpLHRhYkluZGV4OiIwIiwiYXJpYS1sYWJlbCI6YT9PYmplY3QoWWUuYykoImNsb3NlV2lkZ2V0IixudWxsLCJDbG9zZSBjaGF0IHdpZGdldCIpOk9iamVjdChZZS5jKSgib3BlbldpZGdldCIsbnVsbCwiT3BlbiBjaGF0IHdpZGdldCIpfSxPYmplY3QoTS5kKSgiaSIse2NsYXNzTmFtZToibWF0ZXJpYWwtaWNvbnMgdHlwZTEgZm9yLWNsb3NlZCAiLmNvbmNhdChpPyJhY3RpdmUiOiIiKSxzdHlsZTp7Y29sb3I6Y319LE9iamVjdChNLmQpKHl0LmYsbnVsbCkpLE9iamVjdChNLmQpKCJpIix7Y2xhc3NOYW1lOiJtYXRlcmlhbC1pY29ucyB0eXBlMiBmb3ItY2xvc2VkICIuY29uY2F0KGk/ImFjdGl2ZSI6IiIpfSxPYmplY3QoTS5kKSh5dC5pLG51bGwpKSxPYmplY3QoTS5kKSgiaSIse2NsYXNzTmFtZToibWF0ZXJpYWwtaWNvbnMgdHlwZTEgZm9yLW9wZW5lZCAiLmNvbmNhdChpPyIiOiJhY3RpdmUiKSxzdHlsZTp7Y29sb3I6Y319LE9iamVjdChNLmQpKHl0LngsbnVsbCkpLE9iamVjdChNLmQpKCJpIix7Y2xhc3NOYW1lOiJtYXRlcmlhbC1pY29ucyB0eXBlMiBmb3Itb3BlbmVkICIuY29uY2F0KGk/IiI6ImFjdGl2ZSIpfSxPYmplY3QoTS5kKSh5dC54LG51bGwpKSksIXRoaXMucHJvcHMuaXNTaWRlYmFyQ29tcG9uZW50JiZPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKShEbyx7YnJvd3Nlck5hbWU6dGhpcy5icm93c2VyTmFtZX0pLE9iamVjdChNLmQpKEsse2NsYXNzTmFtZXM6ImllIj09PXRoaXMuYnJvd3Nlck5hbWU/ImZhZGUiOiJzY2FsZSIsaW46dGhpcy5wcm9wcy5pc1NvdW5kRW5hYmxlZCYmdGhpcy5wcm9wcy5hcmVOb3RpZmljYXRpb25Tbm9vemVkfSxPYmplY3QoTS5kKSgiZGl2Iix7aWQ6ImRuZC1pbmRpY2F0b3IifSxPYmplY3QoTS5kKSh5dC5zLG51bGwpKSkpKX19XSxbe2tleToiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiBlLm5ld01lc3NhZ2VEaXNhYmxlZCYmZS52aWV3IT09anQuYS5jbG9zZWQmJiF0LmVsZW1lbnRIb3ZlcmVkP3tidXR0b25TaGFkb3c6IiIuY29uY2F0KExvKGUuaXNBd2Vzb21lSWZyYW1lLCJhY3RpdmUiKSwiICIpLmNvbmNhdChPYmplY3QoZnQudikoIiMwMjA2MTAiLCIuMjAiKSl9OmUubmV3TWVzc2FnZURpc2FibGVkJiZlLnZpZXchPT1qdC5hLmNsb3NlZCYmdC5lbGVtZW50SG92ZXJlZD97YnV0dG9uU2hhZG93OiIiLmNvbmNhdChMbyhlLmlzQXdlc29tZUlmcmFtZSwiaG92ZXIiKSwiICIpLmNvbmNhdChPYmplY3QoZnQudikoIiMwMjA2MTAiLCIuMjAiKSl9OnQuZWxlbWVudEhvdmVyZWQ/dC5lbGVtZW50SG92ZXJlZD97YnV0dG9uU2hhZG93OiIiLmNvbmNhdChMbyhlLmlzQXdlc29tZUlmcmFtZSwiaG92ZXIiKSwiICIpLmNvbmNhdChPYmplY3QoZnQudikoZS53aWRnZXRDb2xvclszXSx0LmlzR3JhZGllbnRBY3RpdmU/Ii4yNCI6Ii4yMCIpKX06bnVsbDp7YnV0dG9uU2hhZG93OiIiLmNvbmNhdChMbyhlLmlzQXdlc29tZUlmcmFtZSwiYWN0aXZlIiksIiAiKS5jb25jYXQoT2JqZWN0KGZ0LnYpKGUud2lkZ2V0Q29sb3JbM10sdC5pc0dyYWRpZW50QWN0aXZlPyIuNTAiOiIuMjAiKSl9fX1dKSxufSh3LmEuQ29tcG9uZW50KTtGby5kZWZhdWx0UHJvcHM9e2lzU2lkZWJhckNvbXBvbmVudDohMX07dmFyIF9vPU9iamVjdCh4LmIpKChmdW5jdGlvbihlKXtyZXR1cm57dmlldzpPYmplY3QoeHQucykoZSksd2lkZ2V0Q29sb3I6T2JqZWN0KGZ0LmQpKGUud2lkZ2V0Q29sb3IpLGFyZU5vdGlmaWNhdGlvblNub296ZWQ6ZS5ub3RpZmljYXRpb25Tbm9vemVkLG5ld01lc3NhZ2VEaXNhYmxlZDpPYmplY3QoeHQuaykoZSksc2lkZWJhcjplLnNpZGViYXJJZnJhbWVTdHlsZXMsaGFzTWVzc2FnZXM6Qm9vbGVhbihlLm1lc3NhZ2VzLmxlbmd0aCksbW9iaWxlQnV0dG9uU2l6ZTpPYmplY3QoeHQubSkoZSksaXNTb3VuZEVuYWJsZWQ6ZS5pc1NvdW5kRW5hYmxlZCxpc0F3ZXNvbWVJZnJhbWU6T2JqZWN0KEl0LmMpKGUpfX0pKShGbyksem89ZnVuY3Rpb24oZSl7dmFyIHQ9T2JqZWN0KHguZCkoeHQucyksbj1PYmplY3QoeS51c2VTdGF0ZSkodCE9PWp0LmEuY2xvc2VkKSxyPVgoKShuLDIpLG89clswXSxhPXJbMV07cmV0dXJuIGUuY2hpbGRyZW4oe2hhc0FuaW1hdGlvbkVuZGVkOm8sb25BbmltYXRpb25FbmRlZDpmdW5jdGlvbigpe2EoKGZ1bmN0aW9uKGUpe3JldHVybiFlfSkpfX0pfTt6by5wcm9wVHlwZXM9e2NoaWxkcmVuOkYuYS5mdW5jLmlzUmVxdWlyZWR9O3ZhciBJbz16byxVbz1PYmplY3QoeC5iKSgpKChmdW5jdGlvbihlKXt2YXIgdD1lLm1lc3NhZ2UudHlwZT09PU90LmUudXBsb2FkZWRGaWxlLG49ZnVuY3Rpb24oKXtlLmRpc3BhdGNoKE9iamVjdCh3dC5vZCkoa3QuYS5mbHlNZXNzYWdlQ2xpY2tlZCkpLGUuZGlzcGF0Y2goT2JqZWN0KHd0Lk9jKShqdC5hLmNoYXQpKX07cmV0dXJuIE9iamVjdChNLmQpKGR0LHt2YWx1ZTpbIm9ubGluZU1lc3NhZ2VQbGFjZWhvbGRlciJdfSwoZnVuY3Rpb24ocil7dmFyIG89ci5vbmxpbmVNZXNzYWdlUGxhY2Vob2xkZXI7cmV0dXJuIE9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLHN0eWxlOnt3aWR0aDp0PyIyMjBweCI6IiIuY29uY2F0KGUubWluRmx5V2lkdGgsInB4IiksbWluV2lkdGg6dD8iMjIwcHgiOiIiLmNvbmNhdChlLm1pbkZseVdpZHRoLCJweCIpfSxpZDoibmV3LW1lc3NhZ2UtYnV0dG9uLWZseSIsY2xhc3NOYW1lOiJmbHktbmV3LW1lc3NhZ2UtYnV0dG9uIixvbkNsaWNrOm4sImRhdGEtdGVzdGlkIjoiZmx5TmV3TWVzc2FnZUJ1dHRvbiJ9LG8pfSkpfSkpLEJvPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc2hvd01vcmVSZXBsaWVzQnV0dG9ufHxlLnF1aWNrUmVwbGllcy5sZW5ndGg+ZS5tYXhCdXR0b25zLG49dD9lLnF1aWNrUmVwbGllcy5zbGljZSgwLGUubWF4QnV0dG9ucy0xKTplLnF1aWNrUmVwbGllcztyZXR1cm4gT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToiYnV0dG9uLXdyYXBwZXIifSxuLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdChNLmQpKHcuYS5GcmFnbWVudCx7a2V5OiIiLmNvbmNhdCh0LnRpdGxlKS5jb25jYXQodC5wYXlsb2FkKX0sInVybCI9PT10LnR5cGUmJk9iamVjdChNLmQpKGxyLHt0aXRsZTp0LnRpdGxlLHBheWxvYWQ6dC5wYXlsb2FkLHVybDp0LnVybCxvbkNsaWNrOmUub25CdXR0b25DbGlja30pLCgiYWN0aW9uIj09PXQudHlwZXx8ImJvdCI9PT10LnR5cGV8fCJ0ZXh0Ij09PXQudHlwZSkmJk9iamVjdChNLmQpKHVyLHt0aXRsZTp0LnRpdGxlLHBheWxvYWQ6dC5wYXlsb2FkLG9uQ2xpY2s6ZS5vbkJ1dHRvbkNsaWNrfSkpfSkpLHQmJk9iamVjdChNLmQpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToibW9yZS1yZXBsaWVzIixvbkNsaWNrOmUub25Nb3JlQnV0dG9uQ2xpY2t9LE9iamVjdChNLmQpKHl0LnUsbnVsbCkpKX07Qm8uZGVmYXVsdFByb3BzPXtzaG93TW9yZVJlcGxpZXNCdXR0b246ITF9O3ZhciBIbz1CbyxXbz1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSl7cmV0dXJue2lzTW9iaWxlOmUuaXNNb2JpbGV9fSkpKChmdW5jdGlvbihlKXt2YXIgdCxuLHI9W107ZS5tZXNzYWdlLnR5cGU9PT1PdC5lLmNhcmRzP3I9KG51bGw9PT0odD1lLm1lc3NhZ2UuY2FyZHMpfHx2b2lkIDA9PT10fHxudWxsPT09KG49dFswXSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uYnV0dG9ucyl8fFtdOmUubWVzc2FnZS5xdWlja1JlcGxpZXM/cj1lLm1lc3NhZ2UucXVpY2tSZXBsaWVzOmUubWVzc2FnZS5idXR0b25zJiYocj1lLm1lc3NhZ2UuYnV0dG9ucyk7cmV0dXJuIE9iamVjdChNLmQpKEhvLHtxdWlja1JlcGxpZXM6cixvbkJ1dHRvbkNsaWNrOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuZGlzcGF0Y2goT2JqZWN0KHd0Lm9kKShrdC5hLmZseU1lc3NhZ2VCdXR0b25zQ2xpY2tlZCkpLGUuZGlzcGF0Y2goT2JqZWN0KHd0LnRjKShuLHQpKSwhMH0sb25Nb3JlQnV0dG9uQ2xpY2s6ZnVuY3Rpb24oKXtlLmRpc3BhdGNoKE9iamVjdCh3dC5PYykoanQuYS5jaGF0KSl9LG1heEJ1dHRvbnM6ZS5pc01vYmlsZT8zOjQsc2hvd01vcmVSZXBsaWVzQnV0dG9uOmUubWVzc2FnZS50eXBlPT09T3QuZS5jYXJkcyYmZS5tZXNzYWdlLmNhcmRzLmxlbmd0aD4xfSl9KSksVm89T2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybntpc0Vtb2ppUGFuZWxWaXNpYmxlOmUuaXNFbW9qaVBhbmVsVmlzaWJsZSx3aWRnZXRDb2xvcjplLndpZGdldENvbG9yLGlzTW9iaWxlOmUuaXNNb2JpbGV9fSkpKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToiaW5wdXQtZ3JvdXAifSxlLmhhc0J1dHRvbnM/T2JqZWN0KE0uZCkoV28se21lc3NhZ2U6ZS5tZXNzYWdlfSk6T2JqZWN0KE0uZCkoVW8se21lc3NhZ2U6ZS5tZXNzYWdlLG1pbkZseVdpZHRoOmUubWluRmx5V2lkdGh9KSl9KSkscW89ZnVuY3Rpb24oZSl7cmV0dXJuImltYWdlIj09PWUuYXR0YWNobWVudFR5cGU/T2JqZWN0KE0uZCkoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazplLm9uQ2xpY2t9LE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6ImltYWdlLXByZXZpZXciLHN0eWxlOntiYWNrZ3JvdW5kSW1hZ2U6InVybCgiLmNvbmNhdChlLmNvbnRlbnQsIikiKX0sImRhdGEtdGVzdGlkIjoiaW1hZ2VQcmV2aWV3In0pKTpPYmplY3QoTS5kKSgiYnV0dG9uIix7Y2xhc3NOYW1lOiJsaW5rIix0eXBlOiJidXR0b24iLG9uQ2xpY2s6ZS5vbkNsaWNrLHN0eWxlOntib3JkZXJCb3R0b206IjFweCBzb2xpZCAjM2Y4OGYzIixjb2xvcjoiIzNmODhmMyJ9fSxPYmplY3QoTS5kKShkdCx7dmFsdWU6Im1lZGlhRmlsZSIsZmFsbGJhY2s6Ik1lZGlhIGZpbGUifSkpfTtmdW5jdGlvbiBZbyhlKXt2YXIgdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4scj1oKCkoZSk7aWYodCl7dmFyIG89aCgpKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbyl9ZWxzZSBuPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiKCkodGhpcyxuKX19dmFyIEdvPWZ1bmN0aW9uKGUpe2YoKShuLGUpO3ZhciB0PVlvKG4pO2Z1bmN0aW9uIG4oKXt2YXIgZTtpKCkodGhpcyxuKTtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKylvW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gZT10LmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KG8pKSx2KCkodSgpKGUpLCJzdGF0ZSIse3dpZHRoOjEzMH0pLHYoKSh1KCkoZSksImRvY3VtZW50UmVmIixPYmplY3QoRnQuYykoKSksZX1yZXR1cm4gYygpKG4sW3trZXk6ImNvbXBvbmVudERpZE1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPW4uY2hlY2tXaWR0aCh0aGlzLnByb3BzLHRoaXMuZG9jdW1lbnRSZWYpO2UmJnRoaXMuc2V0U3RhdGUoe3dpZHRoOmV9KX19LHtrZXk6ImNvbXBvbmVudERpZFVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcm9wcy5sYXN0TWVzc2FnZS5jb250ZW50PT09ZS5sYXN0TWVzc2FnZS5jb250ZW50KXJldHVybiExO3ZhciB0PW4uY2hlY2tXaWR0aCh0aGlzLnByb3BzLHRoaXMuZG9jdW1lbnRSZWYpO3JldHVybiB0JiZ0aGlzLnNldFN0YXRlKHt3aWR0aDp0fSksITB9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW4odGhpcy5zdGF0ZSl9fV0pLG59KHcuYS5Db21wb25lbnQpO3YoKShHbywiY2hlY2tXaWR0aCIsKGZ1bmN0aW9uKGUsdCl7aWYoT2JqZWN0KGZ0LnkpKCkpcmV0dXJuIDIzMDt0cnl7dmFyIG49ZS5tZXNzYWdlQ29udGVudFJlZixyPSgiT2Zmc2NyZWVuQ2FudmFzImluIHdpbmRvdz9uZXcgT2Zmc2NyZWVuQ2FudmFzKDUwMCwxMDApOnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLmdldENvbnRleHQoIjJkIik7ci5mb250PScxN3B4ICJNdWxpc2giLCBzYW5zLXNlcmlmJzt2YXIgbz1NYXRoLmNlaWwoci5tZWFzdXJlVGV4dChlLnBsYWNlaG9sZGVyTWVzc2FnZSkud2lkdGgpO24uY3VycmVudC5zdHlsZS5jc3NUZXh0PSJ3aWR0aDogYXV0bzsgYWxpZ24tc2VsZjogZmxleC1zdGFydDsiO3ZhciBhPW4uY3VycmVudC5jbGllbnRXaWR0aDtuLmN1cnJlbnQuc3R5bGUuY3NzVGV4dD0iIjt2YXIgaT1PYmplY3QoZnQuRCkoKSYmd2luZG93LnNjcmVlbi53aWR0aDwzNDAscz1PYmplY3QoZnQuRCkoKSYmd2luZG93LnNjcmVlbi53aWR0aDw0MTA7cmV0dXJuIGk/MTYwOnM/MjEwOk1hdGgubWF4KG8sYS0xNSwxMzApfWNhdGNoKGMpe3JldHVybiAyNTB9fSkpLEdvLmRlZmF1bHRQcm9wcz17bWVzc2FnZUNvbnRlbnRSZWY6bnVsbH07dmFyIFFvPUdvO2Z1bmN0aW9uIEtvKGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSxbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyPWgoKShlKTtpZih0KXt2YXIgbz1oKCkodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxvKX1lbHNlIG49ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGIoKSh0aGlzLG4pfX12YXIgWm89e25hbWU6IjMybnBmciIsc3R5bGVzOiJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjIwcHg7In0sWG89dy5hLmZvcndhcmRSZWYoKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5tZXNzYWdlLHI9bi5jb250ZW50LG89bi50eXBlLGE9bi5hdHRhY2htZW50VHlwZSxpPW4uc2VuZGVyO2lmKG89PT1PdC5lLnVwbG9hZGVkRmlsZSlyZXR1cm4gT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToibWVzc2FnZS1jb250YWluZXIgIi5jb25jYXQoYSwiLWNvbnRlbnQiKSxyZWY6dH0sT2JqZWN0KE0uZCkocW8se2NvbnRlbnQ6cixvbkNsaWNrOmZ1bmN0aW9uKCl7ZS5kaXNwYXRjaChPYmplY3Qod3Qub2QpKGt0LmEuZmx5TWVzc2FnZUNsaWNrZWQpKSxlLmRpc3BhdGNoKE9iamVjdCh3dC5PYykoanQuYS5jaGF0KSl9LGF0dGFjaG1lbnRUeXBlOmF9KSk7dmFyIHM9bnVsbDtpZihvPT09T3QuZS5jYXJkcyl7dmFyIGMsbCx1PWUubWVzc2FnZS5jYXJkcyxkPXZvaWQgMD09PXU/W106dSxmPShudWxsPT09KGM9ZFswXSl8fHZvaWQgMD09PWM/dm9pZCAwOmMudGl0bGUpfHwiIjtzPW90KGYpO3ZhciBwPShudWxsPT09KGw9ZFswXSl8fHZvaWQgMD09PWw/dm9pZCAwOmwuaW1hZ2VVcmwpfHwiIjtpZihwKXJldHVybiBPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJtZXNzYWdlLWNvbnRhaW5lciBpbWFnZS1jb250ZW50IixyZWY6dH0sT2JqZWN0KE0uZCkocW8se2NvbnRlbnQ6cCxvbkNsaWNrOmZ1bmN0aW9uKCl7ZS5kaXNwYXRjaChPYmplY3Qod3QuT2MpKGp0LmEuY2hhdCkpfSxhdHRhY2htZW50VHlwZToiaW1hZ2UifSksT2JqZWN0KE0uZCkoInNwYW4iLHtjbGFzc05hbWU6ImZseS1tZXNzYWdlLS1jYXJkLXRpdGxlIixkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnN9fSkpfWVsc2V7aWYobz09PU90LmUuY291cG9uQ29kZSl7dmFyIGI9ZS5tZXNzYWdlLmNvdXBvbkNvZGUsbT12b2lkIDA9PT1iPyIiOmI7cmV0dXJuIHM9b3QociksT2JqZWN0KE0uZCkoImRpdiIse2NsYXNzTmFtZToibWVzc2FnZS1jb250YWluZXIiLHJlZjp0fSxPYmplY3QoTS5kKSgiZGl2Iix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpzfX0pLE9iamVjdChNLmQpKCJzcGFuIix7Y3NzOlpvfSxtKSl9cz1pPT09T3QuZy5ib3Q/YXQocik6b3Qocil9cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6Im1lc3NhZ2UtY29udGFpbmVyIixyZWY6dCxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnN9fSl9KSksJG89ZnVuY3Rpb24oZSl7ZigpKG4sZSk7dmFyIHQ9S28obik7ZnVuY3Rpb24gbigpe3ZhciBlO2koKSh0aGlzLG4pO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKW9bYV09YXJndW1lbnRzW2FdO3JldHVybiBlPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQobykpLHYoKSh1KCkoZSksImJyb3dzZXJOYW1lIixPYmplY3QoZnQubSkoKS5uYW1lLnRvTG93ZXJDYXNlKCkpLHYoKSh1KCkoZSksImZseU1lc3NhZ2VSZWYiLHcuYS5jcmVhdGVSZWYoKSksdigpKHUoKShlKSwiY29udGVudFJlZiIsdy5hLmNyZWF0ZVJlZigpKSx2KCkodSgpKGUpLCJ3aW5kb3dSZWYiLE9iamVjdChGdC5lKSgpKSx2KCkodSgpKGUpLCJpZnJhbWVXaWR0aCIsbnVsbCksdigpKHUoKShlKSwiaWZyYW1lSGVpZ2h0IixudWxsKSx2KCkodSgpKGUpLCJyYWZJZCIsbnVsbCksdigpKHUoKShlKSwiaGFuZGxlQW5pbWF0aW9uRW5kIiwoZnVuY3Rpb24odCl7Im5ldy1tZXNzYWdlLWJ1dHRvbi1mbHkiPT09dC50YXJnZXQuZ2V0QXR0cmlidXRlKCJpZCIpJiZlLnByb3BzLnZpZXc9PT1qdC5hLmZseSYmZS51cGRhdGVJZnJhbWUoKX0pKSx2KCkodSgpKGUpLCJoYXNCdXR0b25zIiwoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09ZS5wcm9wcy5tZXNzYWdlLnF1aWNrUmVwbGllc3x8dm9pZCAwIT09ZS5wcm9wcy5tZXNzYWdlLmNhcmRzfHx2b2lkIDAhPT1lLnByb3BzLm1lc3NhZ2UuYnV0dG9uc30pKSx2KCkodSgpKGUpLCJleHBhbmRJZnJhbWVUb01heCIsKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5oYXNCdXR0b25zKCk/NDk1OjM2MjtlLnByb3BzLmlzTW9iaWxlJiYodD0iMTAwJSIpLGUuZmx5TWVzc2FnZVJlZi5jdXJyZW50LnN0eWxlLm1heEhlaWdodD0ibm9uZSIsZS5wcm9wcy5kaXNwYXRjaChPYmplY3Qod3QuRGMpKCJkeW5hbWljIi5jb25jYXQodCwiXyIpLmNvbmNhdCgiMTAwJSIpLHt3aWR0aDp0LGhlaWdodDoiMTAwJSJ9KSksZS5pZnJhbWVXaWR0aD10LGUuaWZyYW1lSGVpZ2h0PSIxMDAlIn0pKSx2KCkodSgpKGUpLCJ1cGRhdGVJZnJhbWUiLChmdW5jdGlvbih0KXtyZXR1cm4hIWUud2luZG93UmVmJiYoZS5leHBhbmRJZnJhbWVUb01heCgpLGUucmFmSWQ9ZS53aW5kb3dSZWYucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe3ZhciBuPWUuZmx5TWVzc2FnZVJlZi5jdXJyZW50LHI9bi5jbGllbnRXaWR0aCxvPW4uY2xpZW50SGVpZ2h0O2lmKGUucHJvcHMuaXNNb2JpbGUpe2lmKHIrPTk1LG8rPTgwLGUuaWZyYW1lV2lkdGg9PT1yJiZlLmlmcmFtZUhlaWdodD09PW8pcmV0dXJuIGUuZmx5TWVzc2FnZVJlZi5jdXJyZW50LnN0eWxlLmNzc1RleHQ9IiIsITF9ZWxzZSBpZihyKz05MCxvKz05MCxlLmlmcmFtZVdpZHRoPT09ciYmZS5pZnJhbWVIZWlnaHQ9PT1vKXJldHVybiBlLmZseU1lc3NhZ2VSZWYuY3VycmVudC5zdHlsZS5jc3NUZXh0PSIiLCExO3JldHVybiB0JiYodC5oZWlnaHQmJihvPU1hdGgubWF4KG8sdC5oZWlnaHQpKSx0LndpZHRoJiYocj1NYXRoLm1heChyLHQud2lkdGgpKSksZS5wcm9wcy5kaXNwYXRjaChPYmplY3Qod3QuRGMpKCJkeW5hbWljIi5jb25jYXQociwiXyIpLmNvbmNhdChvKSx7d2lkdGg6cixoZWlnaHQ6b30pKSxlLmlmcmFtZVdpZHRoPXIsZS5pZnJhbWVIZWlnaHQ9byxlLmZseU1lc3NhZ2VSZWYuY3VycmVudC5zdHlsZS5jc3NUZXh0PSIiLCEwfSkpLCEwKX0pKSxlfXJldHVybiBjKCkobixbe2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5mbHlNZXNzYWdlUmVmLmN1cnJlbnQmJnRoaXMuZmx5TWVzc2FnZVJlZi5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuaGFuZGxlQW5pbWF0aW9uRW5kKSx0aGlzLnVwZGF0ZUlmcmFtZSgpfX0se2tleToiY29tcG9uZW50RGlkVXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3BzLnZpZXchPT1qdC5hLmZseT8odGhpcy5yYWZJZCYmKHRoaXMud2luZG93UmVmLmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpLHRoaXMucmFmSWQ9bnVsbCksITEpOih0aGlzLnVwZGF0ZUlmcmFtZSgpLCEwKX19LHtrZXk6ImNvbXBvbmVudFdpbGxVbm1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZmx5TWVzc2FnZVJlZi5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuaGFuZGxlQW5pbWF0aW9uRW5kKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5oYXNCdXR0b25zKCk7cmV0dXJuIE9iamVjdChNLmQpKCJkaXYiLHtyZWY6dGhpcy5mbHlNZXNzYWdlUmVmLCJkYXRhLXRlc3RpZCI6ImZseU1lc3NhZ2UiLGNsYXNzTmFtZToiZmx5TWVzc2FnZSAiLmNvbmNhdCh0PyJ3aXRoLWJ1dHRvbnMiOiIiLCIgIikuY29uY2F0KHRoaXMuYnJvd3Nlck5hbWUpfSxPYmplY3QoTS5kKSgiZGl2Iix7Y2xhc3NOYW1lOiJjbG9zZS1idXR0b24td3JhcHBlciJ9LE9iamVjdChNLmQpKCRyLHt0cmFja2luZ0V2ZW50Omt0LmEuZmx5TWVzc2FnZUNsb3NlZH0pKSxPYmplY3QoTS5kKShYbyx7cmVmOnRoaXMuY29udGVudFJlZixtZXNzYWdlOnRoaXMucHJvcHMubWVzc2FnZSxkaXNwYXRjaDp0aGlzLnByb3BzLmRpc3BhdGNofSksT2JqZWN0KE0uZCkoUW8se21lc3NhZ2VDb250ZW50UmVmOnRoaXMuY29udGVudFJlZixwbGFjZWhvbGRlck1lc3NhZ2U6T2JqZWN0KFllLmMpKCJvbmxpbmVNZXNzYWdlUGxhY2Vob2xkZXIiLG51bGwsIk5ldyBtZXNzYWdlIiksbGFzdE1lc3NhZ2U6dGhpcy5wcm9wcy5tZXNzYWdlfSwoZnVuY3Rpb24obil7dmFyIHI9bi53aWR0aDtyZXR1cm4gT2JqZWN0KE0uZCkoVm8se21lc3NhZ2U6ZS5wcm9wcy5tZXNzYWdlLGhhc0J1dHRvbnM6dCxtaW5GbHlXaWR0aDpyfSl9KSkpfX1dKSxufSh3LmEuQ29tcG9uZW50KSxKbz1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSl7cmV0dXJue2lzTW9iaWxlOmUuaXNNb2JpbGUsdmlldzpPYmplY3QoeHQucykoZSl9fSkpKCRvKSxlYT1mdW5jdGlvbihlKXtmKCkobixlKTt2YXIgdD1LbyhuKTtmdW5jdGlvbiBuKCl7dmFyIGU7aSgpKHRoaXMsbik7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkociksYT0wO2E8cjthKyspb1thXT1hcmd1bWVudHNbYV07cmV0dXJuIGU9dC5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChvKSksdigpKHUoKShlKSwic3RhdGUiLHttZXNzYWdlOmUucHJvcHMubGFzdE1lc3NhZ2V9KSx2KCkodSgpKGUpLCJpc1ByZXZpZXciLE9iamVjdChmdC55KSgpKSxlfXJldHVybiBjKCkobixbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaXNQcmV2aWV3P3RoaXMucHJvcHMubGFzdE1lc3NhZ2U6dGhpcy5zdGF0ZS5tZXNzYWdlO3JldHVybiBPYmplY3QoTS5kKShKbyx7bWVzc2FnZTplfSl9fV0pLG59KHcuYS5Db21wb25lbnQpLHRhPU9iamVjdCh4LmIpKChmdW5jdGlvbihlKXtyZXR1cm57bGFzdE1lc3NhZ2U6T2JqZWN0KEl0LmQpKGUpfX0pKShlYSksbmE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS52aWV3IT09anQuYS5jbG9zZWQ7cmV0dXJuIE9iamVjdChNLmQpKElvLG51bGwsKGZ1bmN0aW9uKG4pe3ZhciByPW4uaGFzQW5pbWF0aW9uRW5kZWQsbz1uLm9uQW5pbWF0aW9uRW5kZWQ7cmV0dXJuIE9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKEsse2luOmUudmlldz09PWp0LmEuZmx5JiZyLGNsYXNzTmFtZXM6Im1vdmVGcm9tUmlnaHQiLHRpbWVvdXQ6MzAwLG9uRXhpdGVkOmUudmlldz09PWp0LmEuY2xvc2VkfHxlLnZpZXc9PT1qdC5hLmZseT9vOnZvaWQgMH0sT2JqZWN0KE0uZCkodGEsbnVsbCkpLE9iamVjdChNLmQpKEsse2luOnQmJmUudmlldyE9PWp0LmEuZmx5JiZyLGNsYXNzTmFtZXM6Im1vdmVGcm9tUmlnaHQiLHRpbWVvdXQ6MzAwLG9uRXhpdGVkOm99LE9iamVjdChNLmQpKFJvLG51bGwpKSxPYmplY3QoTS5kKShLLHtpbjohdCYmIXIsY2xhc3NOYW1lczoiIi5jb25jYXQoZS5zaWRlYmFyUG9zaXRpb24mJiJsZWZ0Ij09PWUuc2lkZWJhclBvc2l0aW9uPyJidWJibGVBbmltYXRpb25MZWZ0IjoiYnViYmxlQW5pbWF0aW9uIiksdGltZW91dDozMDAsb25FeGl0ZWQ6b30sT2JqZWN0KE0uZCkoX28se2lzU2lkZWJhckNvbXBvbmVudDohMH0pKSxPYmplY3QoTS5kKShLLHtpbjp0JiZyLHRpbWVvdXQ6MzAwLGNsYXNzTmFtZXM6ImJ1YmJsZUFuaW1hdGlvbiJ9LE9iamVjdChNLmQpKF9vLG51bGwpKSl9KSl9O25hLmRlZmF1bHRQcm9wcz17c2lkZWJhclBvc2l0aW9uOiJyaWdodCJ9O3ZhciByYT1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSl7cmV0dXJue3ZpZXc6T2JqZWN0KHh0LnMpKGUpLHNpZGViYXJQb3NpdGlvbjplLnNpZGViYXJJZnJhbWVTdHlsZXMucG9zaXRpb259fSkpKG5hKSxvYT1PYmplY3QoZnQueSkoKSxhYT1mdW5jdGlvbihlKXtyZXR1cm4gZT85NDoxNDB9LGlhPWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KHguYykoKSx0PU9iamVjdCh4LmQpKHh0LnMpLG49T2JqZWN0KHguZCkoSXQuYykscj1PYmplY3QoeS51c2VSZWYpKG51bGwpLG89T2JqZWN0KHkudXNlUmVmKShudWxsKSxhPU9iamVjdCh5LnVzZVJlZikobnVsbCksaT1PYmplY3QoeS51c2VSZWYpKG51bGwpLHM9T2JqZWN0KHkudXNlUmVmKShudWxsKSxjPU9iamVjdCh5LnVzZVJlZikobnVsbCksbD1PYmplY3QoeS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKCl7dmFyIHQ9YWEobik7ZShPYmplY3Qod3QuRGMpKE50LmEuRFlOQU1JQyx7d2lkdGg6NDUwLGhlaWdodDp0fSkpLGkuY3VycmVudD00NTAscy5jdXJyZW50PXR9KSxbZSxuXSksdT1PYmplY3QoeS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKCl7aWYoIW8uY3VycmVudClyZXR1cm4hMTtpZihvYSlyZXR1cm4gbCgpLCEwO3ZhciB0PWZ1bmN0aW9uKGUpe3JldHVybiBlPzk0OjExMn0obiksYT1hYShuKTtyZXR1cm4gdCs9ZnVuY3Rpb24oKXt0cnl7aWYoci5jdXJyZW50KXtyLmN1cnJlbnQuc3R5bGUuY3NzVGV4dD0id2lkdGg6IGF1dG87IGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IHdoaXRlLXNwYWNlOiBub3dyYXAiO3ZhciBlPXIuY3VycmVudC5jbGllbnRXaWR0aDtyZXR1cm4gci5jdXJyZW50LnN0eWxlLmNzc1RleHQ9IiIsZSsxNX1yZXR1cm4gMjUwfWNhdGNoKHQpe3JldHVybiAyNTB9fSgpLGkuY3VycmVudD09PXQmJnMuY3VycmVudD09PWF8fChjLmN1cnJlbnQ9by5jdXJyZW50LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtlKE9iamVjdCh3dC5EYykoTnQuYS5EWU5BTUlDLHt3aWR0aDp0LGhlaWdodDphfSkpLGkuY3VycmVudD10fSkpKSwhMH0pLFtlLGwsbl0pLGQ9ZnVuY3Rpb24oKXtjLmN1cnJlbnQmJm51bGwhPT1vJiZ2b2lkIDAhPT1vJiZvLmN1cnJlbnQmJihvLmN1cnJlbnQuY2FuY2VsQW5pbWF0aW9uRnJhbWUoYy5jdXJyZW50KSxjLmN1cnJlbnQ9bnVsbCl9O09iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7dmFyIGUsdDtvLmN1cnJlbnQ9T2JqZWN0KEZ0LmUpKCksYS5jdXJyZW50PU9iamVjdChGdC5kKSgpLGkuY3VycmVudD0obnVsbD09PShlPWEuY3VycmVudCl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY2xpZW50V2lkdGgpfHxudWxsLHMuY3VycmVudD0obnVsbD09PSh0PWEuY3VycmVudCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuY2xpZW50SGVpZ2h0KXx8bnVsbH0pLFtdKSxPYmplY3QoeS51c2VFZmZlY3QpKChmdW5jdGlvbigpe3JldHVybiB0IT09anQuYS5jbG9zZWQ/ZCgpOnUoKSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe2QoKSx0PT09anQuYS5jbG9zZWQmJmUoT2JqZWN0KHd0LkRjKShOdC5hLk9OTFlfQlVCQkxFKSl9fX0pLFtlLHUsdF0pO3ZhciBmPWZ1bmN0aW9uKCl7ZShPYmplY3Qod3Qub2QpKGt0LmEud2lkZ2V0TGFiZWxDbGlja2VkKSksZShPYmplY3Qod3QubGQpKCkpLGUoT2JqZWN0KHd0LnhjKSghMCkpfSxwPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUscj1ubygpKG4pLG89bi5sZW5ndGg+dDtuLmxlbmd0aD50OylyLnBvcCgpLG49ci5qb2luKCIiKTtyZXR1cm4gbz8iIi5jb25jYXQobiwiJmhlbGxpcDsiKTpufTtyZXR1cm4gT2JqZWN0KE0uZCkoZHQse3ZhbHVlOlsiY2hhdFdpdGhVc0xhYmVsIl19LChmdW5jdGlvbihlKXt2YXIgdD1lLmNoYXRXaXRoVXNMYWJlbDtyZXR1cm4gMD09PXQubGVuZ3RoP251bGw6T2JqZWN0KE0uZCkoImJ1dHRvbiIse2NsYXNzTmFtZToid2lkZ2V0TGFiZWwiLHJlZjpyLG9uQ2xpY2s6Zix0eXBlOiJidXR0b24ifSxPYmplY3QoTS5kKSgic3BhbiIse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6b3QocCh0LDI1KSl9fSkpfSkpfSxzYT1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSl7cmV0dXJue3ZpZXc6T2JqZWN0KHh0LnMpKGUpLHdpZGdldExhYmVsRW5hYmxlZDpPYmplY3QoSXQuaCkoZSl9fSkpKChmdW5jdGlvbihlKXt2YXIgdD1lLnZpZXchPT1qdC5hLmNsb3NlZDtyZXR1cm4gT2JqZWN0KE0uZCkoSW8sbnVsbCwoZnVuY3Rpb24obil7dmFyIHI9bi5oYXNBbmltYXRpb25FbmRlZCxvPW4ub25BbmltYXRpb25FbmRlZDtyZXR1cm4gT2JqZWN0KE0uZCkody5hLkZyYWdtZW50LG51bGwsT2JqZWN0KE0uZCkoSyx7aW46ZS52aWV3PT09anQuYS5mbHksY2xhc3NOYW1lczoibW92ZUZyb21SaWdodCIsb25FeGl0ZWQ6ZS52aWV3PT09anQuYS5jbG9zZWQ/bzp2b2lkIDAsdGltZW91dDozMDB9LE9iamVjdChNLmQpKHRhLG51bGwpKSxPYmplY3QoTS5kKShLLHtpbjp0JiZlLnZpZXchPT1qdC5hLmZseSYmcixjbGFzc05hbWVzOiJtb3ZlRnJvbVJpZ2h0IixvbkV4aXRlZDpvLHRpbWVvdXQ6NDAwfSxPYmplY3QoTS5kKShSbyxudWxsKSksZS53aWRnZXRMYWJlbEVuYWJsZWQmJk9iamVjdChNLmQpKEsse2luOiF0JiZlLnZpZXchPT1qdC5hLmZseSYmIXIsY2xhc3NOYW1lczoibW92ZUZyb21MZWZ0TGFiZWwiLHRpbWVvdXQ6MzAwfSxPYmplY3QoTS5kKShpYSxudWxsKSksT2JqZWN0KE0uZCkoSyx7aW46IXQmJiFyLGNsYXNzTmFtZXM6ImJ1YmJsZUFuaW1hdGlvblJldHVybiIsdGltZW91dDozMDAsb25FeGl0ZWQ6b30sT2JqZWN0KE0uZCkoX28sbnVsbCkpLE9iamVjdChNLmQpKEsse2luOnQmJnIsY2xhc3NOYW1lczoiYnViYmxlQW5pbWF0aW9uIix0aW1lb3V0OjMwMCxvbkV4aXRlZDplLnZpZXc9PT1qdC5hLmZseT9vOnZvaWQgMH0sT2JqZWN0KE0uZCkoX28sbnVsbCkpKX0pKX0pKSxjYT1mdW5jdGlvbigpe30sbGE9T2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybnt2aWV3Ok9iamVjdCh4dC5zKShlKSxpc01vYmlsZTplLmlzTW9iaWxlLHdpZGdldExhYmVsRW5hYmxlZDpPYmplY3QoSXQuaCkoZSl9fSkpKChmdW5jdGlvbihlKXt2YXIgdD1lLnZpZXchPT1qdC5hLmNsb3NlZDtyZXR1cm4gZS5pc01vYmlsZT9PYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKShLLHtpbjplLnZpZXc9PT1qdC5hLmZseSxjbGFzc05hbWVzOiJtb3ZlRnJvbVJpZ2h0Iix0aW1lb3V0OjMwMH0sT2JqZWN0KE0uZCkodGEsbnVsbCkpLE9iamVjdChNLmQpKEsse2luOnQmJmUudmlldyE9PWp0LmEuZmx5LGNsYXNzTmFtZXM6Im1vdmVGcm9tUmlnaHQiLHRpbWVvdXQ6MzAwfSxPYmplY3QoTS5kKShSbyxudWxsKSksT2JqZWN0KE0uZCkoSyx7aW46ITAsY2xhc3NOYW1lczoiYnViYmxlQW5pbWF0aW9uIn0sT2JqZWN0KE0uZCkoX28sbnVsbCkpKTpPYmplY3QoTS5kKShJbyxudWxsLChmdW5jdGlvbihuKXt2YXIgcj1uLmhhc0FuaW1hdGlvbkVuZGVkLG89bi5vbkFuaW1hdGlvbkVuZGVkO3JldHVybiBPYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCxPYmplY3QoTS5kKShLLHtpbjplLnZpZXc9PT1qdC5hLmZseSxjbGFzc05hbWVzOiJtb3ZlRnJvbVJpZ2h0Iix0aW1lb3V0OjMwMCxvbkV4aXRlZDplLnZpZXc9PT1qdC5hLmNsb3NlZD9vOmNhfSxPYmplY3QoTS5kKSh0YSxudWxsKSksT2JqZWN0KE0uZCkoSyx7aW46dCYmZS52aWV3IT09anQuYS5mbHksY2xhc3NOYW1lczoibW92ZUZyb21SaWdodCIsdGltZW91dDozMDAsb25FeGl0ZWQ6b30sT2JqZWN0KE0uZCkoUm8sbnVsbCkpLGUud2lkZ2V0TGFiZWxFbmFibGVkJiZPYmplY3QoTS5kKShLLHtpbjohdCYmZS52aWV3IT09anQuYS5mbHkmJnIsY2xhc3NOYW1lczoibW92ZUZyb21SaWdodExhYmVsIixvbkV4aXRlZDpvLHRpbWVvdXQ6MzAwfSxPYmplY3QoTS5kKShpYSxudWxsKSksT2JqZWN0KE0uZCkoSyx7aW46ITAsY2xhc3NOYW1lczoiYnViYmxlQW5pbWF0aW9uIixvbkVudGVyZWQ6b30sT2JqZWN0KE0uZCkoX28sbnVsbCkpKX0pKX0pKSx1YT1PYmplY3QoeC5iKSgoZnVuY3Rpb24oZSl7cmV0dXJue3ZpZXc6T2JqZWN0KHh0LnMpKGUpLGlzTW9iaWxlOmUuaXNNb2JpbGV9fSkpKChmdW5jdGlvbihlKXtpZigibGVmdCI9PT1lLndpZGdldFBvc2l0aW9uJiZlLmlzTW9iaWxlKXt2YXIgdD1lLnZpZXchPT1qdC5hLmNsb3NlZDtyZXR1cm4gT2JqZWN0KE0uZCkoSW8sbnVsbCwoZnVuY3Rpb24obil7dmFyIHI9bi5oYXNBbmltYXRpb25FbmRlZCxvPW4ub25BbmltYXRpb25FbmRlZDtyZXR1cm4gT2JqZWN0KE0uZCkody5hLkZyYWdtZW50LG51bGwsT2JqZWN0KE0uZCkoSyx7aW46ZS52aWV3PT09anQuYS5mbHksY2xhc3NOYW1lczoibW92ZUZyb21SaWdodCIsb25FeGl0ZWQ6ZS52aWV3PT09anQuYS5jbG9zZWQ/bzp2b2lkIDAsdGltZW91dDozMDB9LE9iamVjdChNLmQpKHRhLG51bGwpKSxPYmplY3QoTS5kKShLLHtpbjp0JiZlLnZpZXchPT1qdC5hLmZseSYmcixjbGFzc05hbWVzOiJtb3ZlRnJvbVJpZ2h0IixvbkV4aXRlZDpvLHRpbWVvdXQ6NDAwfSxPYmplY3QoTS5kKShSbyxudWxsKSksT2JqZWN0KE0uZCkoSyx7aW46IXQmJiFyLGNsYXNzTmFtZXM6ImJ1YmJsZUFuaW1hdGlvblJldHVybiIsdGltZW91dDozMDAsb25FeGl0ZWQ6b30sT2JqZWN0KE0uZCkoX28sbnVsbCkpLE9iamVjdChNLmQpKEsse2luOnQmJnIsY2xhc3NOYW1lczoiYnViYmxlQW5pbWF0aW9uIix0aW1lb3V0OjMwMCxvbkV4aXRlZDplLnZpZXc9PT1qdC5hLmZseT9vOnZvaWQgMH0sT2JqZWN0KE0uZCkoX28sbnVsbCkpKX0pKX1yZXR1cm4gT2JqZWN0KE0uZCkody5hLkZyYWdtZW50LG51bGwsT2JqZWN0KE0uZCkoSyx7aW46ZS52aWV3PT09anQuYS5mbHksY2xhc3NOYW1lczoibW92ZUZyb21SaWdodCIsdGltZW91dDozMDB9LE9iamVjdChNLmQpKHRhLG51bGwpKSxPYmplY3QoTS5kKShLLHtpbjplLnZpZXchPT1qdC5hLmNsb3NlZCYmZS52aWV3IT09anQuYS5mbHksY2xhc3NOYW1lczoibW92ZUZyb21SaWdodCIsdGltZW91dDozMDB9LE9iamVjdChNLmQpKFJvLG51bGwpKSxPYmplY3QoTS5kKShLLHtpbjohMCxjbGFzc05hbWVzOiJidWJibGVBbmltYXRpb24ifSxPYmplY3QoTS5kKShfbyxudWxsKSkpfSkpLGRhPWZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KHkudXNlUmVmKSgiIiksdD1PYmplY3QoeC5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUudW5yZWFkTWVzc2FnZXN9KSksbj1PYmplY3QoeC5kKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNQYWdlVmlzaWJsZX0pKSxyPU9iamVjdCh5LnVzZVJlZikobnVsbCksbz1PYmplY3QoeS51c2VSZWYpKCExKSxhPVJlZ0V4cCgiXFwoWzAtOV0rXFwpICIuY29uY2F0KE9iamVjdChZZS5jKSgibmV3TWVzc2FnZVRpdGxlIixudWxsLCJOZXcgbWVzc2FnZSIpLCIkIikpO3JldHVybiBPYmplY3QoeS51c2VFZmZlY3QpKChmdW5jdGlvbigpe3RyeXtlLmN1cnJlbnQ9d2luZG93LnBhcmVudC5kb2N1bWVudC50aXRsZX1jYXRjaCh0KXtvLmN1cnJlbnQ9ITB9fSksW10pLE9iamVjdCh5LnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7aWYoby5jdXJyZW50KXJldHVybiExO3IuY3VycmVudCYmKGNsZWFySW50ZXJ2YWwoci5jdXJyZW50KSxyLmN1cnJlbnQ9bnVsbCk7dHJ5eyFuJiZ0P3IuY3VycmVudD1zZXRJbnRlcnZhbCgoZnVuY3Rpb24oKXtlLmN1cnJlbnQ9PT13aW5kb3cucGFyZW50LmRvY3VtZW50LnRpdGxlfHxhLnRlc3Qod2luZG93LnBhcmVudC5kb2N1bWVudC50aXRsZSl8fChlLmN1cnJlbnQ9d2luZG93LnBhcmVudC5kb2N1bWVudC50aXRsZSksd2luZG93LnBhcmVudC5kb2N1bWVudC50aXRsZT09PWUuY3VycmVudD93aW5kb3cucGFyZW50LmRvY3VtZW50LnRpdGxlPSIoIi5jb25jYXQodCwiKSAiKS5jb25jYXQoT2JqZWN0KFllLmMpKCJuZXdNZXNzYWdlVGl0bGUiLG51bGwsIk5ldyBtZXNzYWdlIikpOndpbmRvdy5wYXJlbnQuZG9jdW1lbnQudGl0bGU9ZS5jdXJyZW50fSksMWUzKTphLnRlc3Qod2luZG93LnBhcmVudC5kb2N1bWVudC50aXRsZSkmJih3aW5kb3cucGFyZW50LmRvY3VtZW50LnRpdGxlPWUuY3VycmVudCl9Y2F0Y2goaSl7fXJldHVybiBmdW5jdGlvbigpe2lmKG8uY3VycmVudClyZXR1cm4hMTtjbGVhckludGVydmFsKHIuY3VycmVudCk7dHJ5e2EudGVzdCh3aW5kb3cucGFyZW50LmRvY3VtZW50LnRpdGxlKSYmKHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQudGl0bGU9ZS5jdXJyZW50KX1jYXRjaChpKXt9cmV0dXJuITB9fSksW24sdCxhXSksbnVsbH07ZnVuY3Rpb24gZmEoZSl7dmFyIHQ9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI9aCgpKGUpO2lmKHQpe3ZhciBvPWgoKSh0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KHIsYXJndW1lbnRzLG8pfWVsc2Ugbj1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYigpKHRoaXMsbil9fXZhciBwYT1mdW5jdGlvbihlKXtmKCkobixlKTt2YXIgdD1mYShuKTtmdW5jdGlvbiBuKCl7dmFyIGU7aSgpKHRoaXMsbik7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkociksYT0wO2E8cjthKyspb1thXT1hcmd1bWVudHNbYV07cmV0dXJuIGU9dC5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChvKSksdigpKHUoKShlKSwic3RhdGUiLHtpc0ZvbnRMb2FkZWQ6ITF9KSx2KCkodSgpKGUpLCJvbldpbmRvd1Zpc2liaWxpdHlDaGFuZ2UiLChmdW5jdGlvbigpe2Uuc2V0VmlzaWJpbGl0eVN0YXRlKCkmJmUucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0LmZkKSgpKX0pKSx2KCkodSgpKGUpLCJhcHBBdmFyaWFudCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvcHMuaXNDaGF0T25TaXRlP09iamVjdChNLmQpKHVhLHt3aWRnZXRQb3NpdGlvbjplLnByb3BzLndpZGdldFBvc2l0aW9ufSk6ZS5wcm9wcy5pc1NpZGViYXJFbmFibGVkP09iamVjdChNLmQpKHJhLG51bGwpOiJsZWZ0Ij09PWUucHJvcHMud2lkZ2V0UG9zaXRpb24/T2JqZWN0KE0uZCkoc2EsbnVsbCk6T2JqZWN0KE0uZCkobGEsbnVsbCl9KSksZX1yZXR1cm4gYygpKG4sW3trZXk6ImNvbXBvbmVudERpZE1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dHJ5e3dpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLm9uV2luZG93VmlzaWJpbGl0eUNoYW5nZSksdGhpcy5zZXRWaXNpYmlsaXR5U3RhdGUoKX1jYXRjaChuKXtPYmplY3QoaHQuYSkobil9dHJ5e3ZhciB0PW5ldyBELmEoIk11bGlzaCIse3dlaWdodDo0MDAsZG9jdW1lbnQ6T2JqZWN0KEZ0LmMpKCl9KTt0aGlzLnN0YXRlLmlzRm9udExvYWRlZHx8dC5sb2FkKG51bGwsM2UzKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSkudGhlbigoZnVuY3Rpb24oKXtlLnNldFN0YXRlKHtpc0ZvbnRMb2FkZWQ6ITB9KSx3aW5kb3cudGlkaW9DaGF0QXBpLnRyaWdnZXIoInJlYWR5Iiksd2luZG93LnRpZGlvQ2hhdEFwaS50cmlnZ2VyKCJzZXRTdGF0dXMiLGUucHJvcHMuaXNQcm9qZWN0T25saW5lPyJvbmxpbmUiOiJvZmZsaW5lIil9KSl9Y2F0Y2gobil7T2JqZWN0KGh0LmEpKG4pLHRoaXMuc2V0U3RhdGUoe2lzRm9udExvYWRlZDohMH0pLHdpbmRvdy50aWRpb0NoYXRBcGkudHJpZ2dlcigicmVhZHkiKSx3aW5kb3cudGlkaW9DaGF0QXBpLnRyaWdnZXIoInNldFN0YXR1cyIsdGhpcy5wcm9wcy5pc1Byb2plY3RPbmxpbmU/Im9ubGluZSI6Im9mZmxpbmUiKX19fSx7a2V5OiJjb21wb25lbnREaWRVcGRhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2Uud2lkZ2V0UG9zaXRpb24hPT10aGlzLnByb3BzLndpZGdldFBvc2l0aW9uJiZ0aGlzLnByb3BzLnNldFdpZGdldFBvc2l0aW9uKHRoaXMucHJvcHMud2lkZ2V0UG9zaXRpb24pfX0se2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7d2luZG93LmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMub25XaW5kb3dWaXNpYmlsaXR5Q2hhbmdlKX19LHtrZXk6InNldFZpc2liaWxpdHlTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4idmlzaWJsZSIhPT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/KHRoaXMucHJvcHMuZGlzcGF0Y2goT2JqZWN0KHd0LkpjKSghMSkpLCExKToodGhpcy5wcm9wcy5kaXNwYXRjaChPYmplY3Qod3QuSmMpKCEwKSksITApfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlLmlzRm9udExvYWRlZD9PYmplY3QoTS5kKSh3LmEuRnJhZ21lbnQsbnVsbCwhdGhpcy5wcm9wcy5pc1NvdW5kRW5hYmxlZCYmT2JqZWN0KE0uZCkoZGEsbnVsbCksdGhpcy5hcHBBdmFyaWFudCgpKTpudWxsfX1dKSxufSh5LkNvbXBvbmVudCksYmE9T2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybnt3aWRnZXRQb3NpdGlvbjplLmNoYXRJZnJhbWVTdHlsZXMud2lkZ2V0UG9zaXRpb24saXNTaWRlYmFyRW5hYmxlZDplLnNpZGViYXJJZnJhbWVTdHlsZXMsaXNDaGF0T25TaXRlOk9iamVjdCh4dC5nKShlKSxpc1Byb2plY3RPbmxpbmU6ZS5pc1Byb2plY3RPbmxpbmUsaXNTb3VuZEVuYWJsZWQ6ZS5pc1NvdW5kRW5hYmxlZH19KSkocGEpLG1hPSJmaXJlZm94Ij09PU9iamVjdChmdC5tKSgpLm5hbWUudG9Mb3dlckNhc2UoKT97c3JjRG9jOiIifTp7fSxoYT13LmEubGF6eSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5lKDEpLnRoZW4obi5iaW5kKG51bGwsNDAyKSl9KSksZ2E9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KE0uZCkody5hLkZyYWdtZW50LG51bGwpfSx2YT1mdW5jdGlvbigpe3ZhciBlPU9iamVjdCh4LmQpKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wb3B1cEltYWdlU3JjfSkpO3JldHVybiJzdHJpbmciPT09dHlwZW9mIGUmJiIiIT09ZT9PYmplY3QoTS5kKShqLmEsbygpKHt0aXRsZToiVGlkaW8gQ2hhdCAtIEltYWdlIFBvcHVwIixzdHlsZTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIscG9zaXRpb246ImZpeGVkIix0b3A6IjAiLGxlZnQ6IjAiLHpJbmRleDoyMTQ3NDgzMDAzLGJvcmRlcjowfSxpZDoidGlkaW8tY2hhdC1pbWFnZS1wb3B1cCJ9LG1hKSxPYmplY3QoTS5kKSh5LlN1c3BlbnNlLHtmYWxsYmFjazpnYX0sT2JqZWN0KE0uZCkoaGEse2ltYWdlU3JjOmV9KSkpOm51bGx9LHlhPW4oMzkxKSx3YT1uLm4oeWEpLHhhPW4oMjAxKSxPYT1uKDM0MCksamE9bigyMDIpLGthPW4oMik7ZnVuY3Rpb24gQWEoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIE1hKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP0FhKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7digpKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpBYShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBDYShlKXt2YXIgdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4scj1oKCkoZSk7aWYodCl7dmFyIG89aCgpKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbyl9ZWxzZSBuPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiKCkodGhpcyxuKX19bi5kKHQsImFkZEltcG9ydGFudFRvRGVmYXVsdFN0eWxlcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIFNhfSkpO3ZhciBFYT17ekluZGV4OiJ6LWluZGV4Iix0cmFuc2l0aW9uOiJ0cmFuc2l0aW9uIixiYWNrZ3JvdW5kOiJiYWNrZ3JvdW5kIn0sU2E9ZnVuY3Rpb24oZSl7dHJ5e2UmJk9iamVjdC5rZXlzKEVhKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnN0eWxlLnNldFByb3BlcnR5KEVhW3RdLGUuc3R5bGVbdF0sImltcG9ydGFudCIpfSkpfWNhdGNoKHQpe319O2Z1bmN0aW9uIFJhKGUsdCxuKXsibW9iaWxlIj09PXQ/c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLnN0eWxlLnNldFByb3BlcnR5KCJib3R0b20iLG4sImltcG9ydGFudCIpfSksMCk6Im9ubHlTaWRlYmFyIj09PXQ/c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLnN0eWxlLnNldFByb3BlcnR5KCJib3R0b20iLG4sImltcG9ydGFudCIpLGUuc3R5bGUuc2V0UHJvcGVydHkoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoNTAlKSIsImltcG9ydGFudCIpfSksMCk6ZS5zdHlsZS5zZXRQcm9wZXJ0eSgiYm90dG9tIixuKX12YXIgRGE9T2JqZWN0KGZ0Lm0pKCkubmFtZS50b0xvd2VyQ2FzZSgpLFRhPSJmaXJlZm94Ij09PURhP3tzcmNEb2M6IiJ9Ont9LE5hPU9iamVjdChmdC5BKSgpLFBhPWZ1bmN0aW9uKGUpe2YoKShuLGUpO3ZhciB0PUNhKG4pO2Z1bmN0aW9uIG4oZSl7dmFyIHI7cmV0dXJuIGkoKSh0aGlzLG4pLHI9dC5jYWxsKHRoaXMsZSksdigpKHUoKShyKSwic3R5bGVDYWNoZSIsT2JqZWN0KEMuYSkoe2tleToidGlkaW8iLHN0eWxpc1BsdWdpbnM6T2JqZWN0KFllLmEpKCk/W1MuYV06W10sY29udGFpbmVyOnIucHJvcHMuaWZyYW1lRG9jdW1lbnQuaGVhZH0pKSx2KCkodSgpKHIpLCJzdGF0ZSIse2lzUmVuZGVyZWQ6ITF9KSx2KCkodSgpKHIpLCJzZXRJbXBvcnRhbnRQb3NpdGlvbmluZ0Zvck1vYmlsZUFuZFNpZGViYXIiLChmdW5jdGlvbigpeyJtb2JpbGUiPT09ci5wcm9wcy5pZnJhbWVWaWV3P3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5wcm9wcy5pZnJhbWVXaW5kb3cuZnJhbWVFbGVtZW50JiZyLnByb3BzLmlmcmFtZVdpbmRvdy5mcmFtZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImJvdHRvbSIsci5nZXRCb3R0b21PZmZzZXQoKSwiaW1wb3J0YW50Iil9KSwwKToib25seVNpZGViYXIiPT09ci5wcm9wcy5pZnJhbWVWaWV3P3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuISFyLnByb3BzLmlmcmFtZVdpbmRvdy5mcmFtZUVsZW1lbnQmJihyLnByb3BzLmlmcmFtZVdpbmRvdy5mcmFtZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImJvdHRvbSIsIjUwJSIsImltcG9ydGFudCIpLHIucHJvcHMuaWZyYW1lV2luZG93LmZyYW1lRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgidHJhbnNmb3JtIiwidHJhbnNsYXRlWSg1MCUpIiwiaW1wb3J0YW50IiksITApfSksMCk6ci5wcm9wcy5pZnJhbWVXaW5kb3cuZnJhbWVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJib3R0b20iLHIuZ2V0Qm90dG9tT2Zmc2V0KCkpfSkpLHYoKSh1KCkociksInJlZ2lzdGVyQ2xpY2tGb3JBdXRvUGxheVBlcm1pc3Npb25zIiwoZnVuY3Rpb24oKXt0cnl7dmFyIGU9ZnVuY3Rpb24gZSgpe09iamVjdCh4YS5iKShEYSksd2luZG93LnBhcmVudC5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsZSwhMCksd2luZG93LnBhcmVudC5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZSwhMCksci5wcm9wcy5pZnJhbWVEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsZSwhMCksci5wcm9wcy5pZnJhbWVEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZSwhMCl9OyhPYmplY3QoZnQuRCkoKXx8IlNhZmFyaSI9PT1EYXx8Ik1vYmlsZSBTYWZhcmkiPT09RGEpJiYod2luZG93LnBhcmVudC5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZSwhMCksd2luZG93LnBhcmVudC5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZSwhMCksci5wcm9wcy5pZnJhbWVEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZSwhMCksci5wcm9wcy5pZnJhbWVEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZSwhMCkpfWNhdGNoKHQpe09iamVjdChodC5hKSh0KX19KSksT2JqZWN0KEZ0LmcpKHIucHJvcHMuaWZyYW1lRG9jdW1lbnQsci5wcm9wcy5pZnJhbWVXaW5kb3cpLHJ9cmV0dXJuIGMoKShuLFt7a2V5OiJjb21wb25lbnREaWRNb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO1NhKHRoaXMucHJvcHMuaWZyYW1lV2luZG93LmZyYW1lRWxlbWVudCksUmEodGhpcy5wcm9wcy5pZnJhbWVXaW5kb3cuZnJhbWVFbGVtZW50LHRoaXMucHJvcHMuaWZyYW1lVmlldyx0aGlzLmdldEJvdHRvbU9mZnNldCgpKSx0aGlzLnByb3BzLmlzU291bmRFbmFibGVkJiZ0aGlzLnJlZ2lzdGVyQ2xpY2tGb3JBdXRvUGxheVBlcm1pc3Npb25zKCksdGhpcy5zZXRJbXBvcnRhbnRQb3NpdGlvbmluZ0Zvck1vYmlsZUFuZFNpZGViYXIoKSxrLkdsb2JhbHMuaW5qZWN0RnJhbWUodGhpcy5wcm9wcy5pZnJhbWVXaW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHRoaXMucHJvcHMuaWZyYW1lV2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKTt0cnl7dGhpcy5wcm9wcy5pZnJhbWVEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKGZ1bmN0aW9uKHQpe3ZhciBuO2lmKG51bGwhPT10JiZ2b2lkIDAhPT10JiZudWxsIT09KG49dC50YXJnZXQpJiZ2b2lkIDAhPT1uJiZuLm1hdGNoZXMoImltZy5lbW9qaSIpJiZ0LnRhcmdldC5wYXJlbnROb2RlKXt2YXIgcj10LnRhcmdldC5jbG9zZXN0KCIubWVzc2FnZSIpLG89bnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIucXVlcnlTZWxlY3RvcigiLm1lc3NhZ2UtY29udGVudCIpO2lmKHQudGFyZ2V0LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUucHJvcHMuaWZyYW1lRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodC50YXJnZXQuYWx0KSx0LnRhcmdldCksciYmbyYmZS5wcm9wcy5pZnJhbWVXaW5kb3cpe2UucHJvcHMuaWZyYW1lV2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtyLnN0eWxlLndpZHRoPSIiLmNvbmNhdChvLm9mZnNldFdpZHRoKzM1LCJweCIpfSkpfX19KSwhMCl9Y2F0Y2godCl7T2JqZWN0KGh0LmEpKHQpfXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5zZXRTdGF0ZSh7aXNSZW5kZXJlZDohMH0pfSksMCl9fSx7a2V5OiJjb21wb25lbnREaWRVcGRhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2UuaWZyYW1lVmlldyE9PXRoaXMucHJvcHMuaWZyYW1lVmlldyYmKFNhKHRoaXMucHJvcHMuaWZyYW1lV2luZG93LmZyYW1lRWxlbWVudCksdGhpcy5zZXRJbXBvcnRhbnRQb3NpdGlvbmluZ0Zvck1vYmlsZUFuZFNpZGViYXIoKSxSYSh0aGlzLnByb3BzLmlmcmFtZVdpbmRvdy5mcmFtZUVsZW1lbnQsdGhpcy5wcm9wcy5pZnJhbWVWaWV3LHRoaXMuZ2V0Qm90dG9tT2Zmc2V0KCkpKX19LHtrZXk6ImdldEJvdHRvbU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLHQ9ZS5pc0F3ZXNvbWVJZnJhbWUsbj1lLmlmcmFtZU1vZGU7cmV0dXJuIm9ubHlTaWRlYmFyIj09PWUuaWZyYW1lVmlldz8iNTAlIjp0JiZudWxsIT09THQuYiYmdm9pZCAwIT09THQuYiYmTHQuYltuXSYmTHQuYltuXS5ib3R0b218fDB9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdChNLmQpKE0uYSx7dmFsdWU6dGhpcy5zdHlsZUNhY2hlfSxPYmplY3QoTS5kKShNLmIse3N0eWxlczpPYmplY3QoTS5jKSh3YS5hLnRvU3RyaW5nKCksIiIpfSksT2JqZWN0KE0uZCkoamEuYSxudWxsKSx0aGlzLnN0YXRlLmlzUmVuZGVyZWQmJk9iamVjdChNLmQpKGJhLHtzZXRXaWRnZXRQb3NpdGlvbjp0aGlzLnByb3BzLnNldFdpZGdldFBvc2l0aW9ufSkpfX1dKSxufSh3LmEuQ29tcG9uZW50KSxMYT1PYmplY3QoT2EuYSkoUGEpLEZhPWZ1bmN0aW9uKGUpe2YoKShuLGUpO3ZhciB0PUNhKG4pO2Z1bmN0aW9uIG4oKXt2YXIgZSxyO2koKSh0aGlzLG4pO2Zvcih2YXIgbz1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9MDtzPG87cysrKWFbc109YXJndW1lbnRzW3NdO3JldHVybiByPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQoYSkpLHYoKSh1KCkociksImdldElmcmFtZVNpemUiLChmdW5jdGlvbigpe3ZhciBlPU9iamVjdChMdC5kKShyLnByb3BzLmlmcmFtZVZpZXcpLHQ9Im9ubHlTaWRlYmFyIj09PXIucHJvcHMuaWZyYW1lVmlldz97bGVmdDoibGVmdCI9PT1yLnByb3BzLnNpZGViYXJQb3NpdGlvbj8iMCI6dm9pZCAwLHJpZ2h0OiJyaWdodCI9PT1yLnByb3BzLnNpZGViYXJQb3NpdGlvbj8iMCI6dm9pZCAwfTp7fTtyZXR1cm4gTWEoTWEoe30sZSksdCl9KSksdigpKHUoKShyKSwic3RhdGUiLHtzdHlsZTpNYShNYSh7ZGlzcGxheToiYmxvY2siLGJvcmRlcjoibm9uZSIscG9zaXRpb246IXIucHJvcHMuaXNDaGF0T25TaXRlfHxPYmplY3QoZnQuRCkoKXx8T2JqZWN0KGZ0LnkpKCk/ImZpeGVkIjoiaW5oZXJpdCIsdG9wOiJhdXRvIixib3R0b206MCxsZWZ0OiJhdXRvIixyaWdodDoiYXV0byJ9LHIuZ2V0SWZyYW1lU2l6ZSgpKSx7fSwoZT17b3BhY2l0eTowfSx2KCkoZSxyLnByb3BzLndpZGdldFBvc2l0aW9uLDApLHYoKShlLCJjb2xvclNjaGVtZSIsIm5vbmUiKSx2KCkoZSwiYmFja2dyb3VuZCIsIm5vbmUgdHJhbnNwYXJlbnQiKSx2KCkoZSwibWFyZ2luIiwwKSx2KCkoZSwibWF4SGVpZ2h0IiwiMTAwdmgiKSx2KCkoZSwibWF4V2lkdGgiLCIxMDB2dyIpLHYoKShlLCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGVZKDApIiksdigpKGUsInRyYW5zaXRpb24iLCJub25lIiksdigpKGUsInZpc2liaWxpdHkiLCJ2aXNpYmxlIiksdigpKGUsInpJbmRleCIsOTk5OTk5OTk5KSxlKSl9KSx2KCkodSgpKHIpLCJyZWYiLG51bGwpLHYoKSh1KCkociksImdldEF3ZXNvbWVJZnJhbWVPZmZzZXQiLChmdW5jdGlvbihlLHQpe3ZhciBuLHI9MDtyZXR1cm4gbnVsbCE9PUx0LmImJnZvaWQgMCE9PUx0LmImJm51bGwhPT0obj1MdC5iW2VdKSYmdm9pZCAwIT09biYmblt0XSYmKHI9THQuYltlXVt0XSkscn0pKSx2KCkodSgpKHIpLCJzZXRJZnJhbWVTdHlsZSIsKGZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpmdW5jdGlvbigpe307ci5zZXRTdGF0ZSh7c3R5bGU6ZX0sdCl9KSksdigpKHUoKShyKSwiZ2V0Q3VycmVudElmcmFtZVN0eWxlIiwoZnVuY3Rpb24oKXtyZXR1cm4gTWEoe30sci5zdGF0ZS5zdHlsZSl9KSksdigpKHUoKShyKSwibWVyZ2VXaXRoQ3VycmVudFN0eWxlcyIsKGZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpmdW5jdGlvbigpe307ci5zZXRJZnJhbWVTdHlsZShNYShNYSh7fSxyLmdldEN1cnJlbnRJZnJhbWVTdHlsZSgpKSxlKSksdCgpfSkpLHYoKSh1KCkociksInNldFdpZGdldFBvc2l0aW9uIiwoZnVuY3Rpb24oZSx0KXt2YXIgbj1yLmdldEN1cnJlbnRJZnJhbWVTdHlsZSgpLG89ci5nZXRJZnJhbWVNb2RlKCksYT0wO3IucHJvcHMuaXNBd2Vzb21lSWZyYW1lJiYoYT1yLmdldEF3ZXNvbWVJZnJhbWVPZmZzZXQobyxlKSksci5zZXRJZnJhbWVTdHlsZShNYShNYSh7fSxuKSx7fSx7cmlnaHQ6ImF1dG8iLGxlZnQ6ImF1dG8ifSx2KCkoe30sZSxhKSksdCl9KSksdigpKHUoKShyKSwiZ2V0SWZyYW1lQXdlc29tZVN0eWxlIiwoZnVuY3Rpb24oKXt2YXIgZT1yLnByb3BzLHQ9ZS53aWRnZXRQb3NpdGlvbixuPXt9O2lmKGUuaXNBd2Vzb21lSWZyYW1lKXt2YXIgbz1yLmdldElmcmFtZU1vZGUoKSxhPShudWxsPT09THQuYnx8dm9pZCAwPT09THQuYj92b2lkIDA6THQuYltvXSl8fHt9LGk9YS53aWR0aCxzPWEuaGVpZ2h0O2lmKGkmJihuLndpZHRoPWkpLHMmJihuLmhlaWdodD1zKSxuW3RdPXIuZ2V0QXdlc29tZUlmcmFtZU9mZnNldChvLHQpLG4uYm9yZGVyUmFkaXVzPU9iamVjdChmdC5EKSgpPzA6THQuYSxOYSl7dmFyIGM9KG51bGw9PT1MdC5ifHx2b2lkIDA9PT1MdC5iP3ZvaWQgMDpMdC5iW29dKXx8e30sbD1jLmJvdHRvbSx1PWMucmlnaHQ7bi5ib3R0b209bCxuLnJpZ2h0PXV9fXJldHVybiBufSkpLHYoKSh1KCkociksIm9uSWZyYW1lTW91bnQiLChmdW5jdGlvbigpe3Iuc2V0V2lkZ2V0UG9zaXRpb24oci5wcm9wcy53aWRnZXRQb3NpdGlvbixyLmFuaW1hdGVPcGFjaXR5KX0pKSx2KCkodSgpKHIpLCJhbmltYXRlT3BhY2l0eSIsKGZ1bmN0aW9uKCl7ci5tZXJnZVdpdGhDdXJyZW50U3R5bGVzKHtkaXNwbGF5OiJibG9jayJ9LChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5tZXJnZVdpdGhDdXJyZW50U3R5bGVzKHtvcGFjaXR5OjF9KX0pLDApfSkpfSkpLHYoKSh1KCkociksIm9uSWZyYW1lUmVmIiwoZnVuY3Rpb24oZSl7ci5yZWY9ZTt2YXIgdD1yLnByb3BzLG49dC53aWRnZXRQb3NpdGlvbixvPXQuaXNBd2Vzb21lSWZyYW1lLGE9dC5kaXNwYXRjaCxpPU9iamVjdChrYS5hKSgid2lkZ2V0X3Bvc2l0aW9uIik7dHJ5e2lmKG51bGwhPT1lJiZ2b2lkIDAhPT1lJiZlLm5vZGUpe3ZhciBzPWUubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPXMubGVmdCxsPXMucmlnaHQsdT1zLmJvdHRvbSxkPXdpbmRvdy5wYXJlbnQsZj1kLmlubmVyV2lkdGgscD1kLmlubmVySGVpZ2h0LGI9ImxlZnQiPT09bj9jOmYtbCxtPXAtdTswPT09YiYmMD09PW18fGl8fG98fChhKE9iamVjdCh3dC5UYykoe2luaXRpYWxYOmIsaW5pdGlhbFk6bX0pKSxPYmplY3Qoa2EuZykoIndpZGdldF9wb3NpdGlvbiIsITApKX19Y2F0Y2goaCl7T2JqZWN0KGh0LmEpKCJFcnJvciBvbklmcmFtZVJlZiIse21lc3NhZ2U6bnVsbD09PWh8fHZvaWQgMD09PWg/dm9pZCAwOmgubWVzc2FnZX0pfW8mJnIubWVyZ2VXaXRoQ3VycmVudFN0eWxlcyhNYSh7fSxMdC5iW3IuZ2V0SWZyYW1lTW9kZSgpXSkpfSkpLHYoKSh1KCkociksImdldElmcmFtZU1vZGUiLChmdW5jdGlvbigpe3ZhciBlPXIucHJvcHMsdD1lLmlmcmFtZVZpZXcsbj1lLmlzV2lkZ2V0TGFiZWxFbmFibGVkLG89ZS52aWV3LGE9ZS5kaW1lbnNpb25zO2lmKHQuaW5jbHVkZXMoTHQuZi5keW5hbWljKSYmbnVsbCE9PWEmJnZvaWQgMCE9PWEmJmEuaGVpZ2h0KXtyZXR1cm4gOTQ9PT1OdW1iZXIoYS5oZWlnaHQpJiZuJiZvIT09anQuYS5mbHk/THQuZi5idWJibGVXaXRoTGFiZWw6THQuZi5keW5hbWljfXJldHVybiB0PT09THQuZi5vbmx5QnViYmxlJiZyLnByb3BzLmlzTW9iaWxlP0x0LmYub25seUJ1YmJsZUxhcmdlOnR9KSksdigpKHUoKShyKSwiY29tcG9uZW50RGlkVXBkYXRlIiwoZnVuY3Rpb24oZSl7dHJ5e3ZhciB0LG4sbyxhLGk7aWYoTmEmJnIucHJvcHMuaXNBd2Vzb21lSWZyYW1lJiZlLmlzQXdlc29tZUlmcmFtZSE9PXIucHJvcHMuaXNBd2Vzb21lSWZyYW1lJiZudWxsIT09KHQ9ci5yZWYpJiZ2b2lkIDAhPT10JiZ0Lm5vZGUpbnVsbD09PShuPXIucmVmLm5vZGUuY29udGVudFdpbmRvdyl8fHZvaWQgMD09PW58fG51bGw9PT0obz1uLmRvY3VtZW50KXx8dm9pZCAwPT09b3x8bnVsbD09PShhPW8ucXVlcnlTZWxlY3RvcigiYm9keSIpKXx8dm9pZCAwPT09YXx8bnVsbD09PShpPWEuY2xhc3NMaXN0KXx8dm9pZCAwPT09aXx8aS5hZGQoImF3ZXNvbWUtaWZyYW1lIil9Y2F0Y2gocyl7fX0pKSxyfXJldHVybiBjKCkobixbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMuaGlkZVdoZW5PZmZsaW5lJiYhdGhpcy5wcm9wcy5pc1Byb2plY3RPbmxpbmUmJiF0aGlzLnByb3BzLmlzQ2hhdE9uU2l0ZSx0PU9iamVjdChZZS5hKSgpO2lmKCF0aGlzLnByb3BzLmlzTW91bnRlZHx8ZSlyZXR1cm4gbnVsbDt2YXIgbj0iIi5jb25jYXQodGhpcy5wcm9wcy5pc01vYmlsZT8ibW9iaWxlIjoiIiwiICIpLmNvbmNhdCh0aGlzLnByb3BzLmlzQ2hhdE9uU2l0ZT8iY2hhdC1vbi1zaXRlIjoiIiwiICIpLmNvbmNhdCh0PyJsYW5nLXJ0bCI6IiIsIiAiKS5jb25jYXQoT2JqZWN0KGZ0LnkpKCk/ImNoYXQtaW4tcHJldmlldyI6IiIsIiAiKS5jb25jYXQoT2JqZWN0KGZ0LkIpKCk/ImNoYXQtaW4tcHJldmlldy0tdG91ciI6IiIsIiAiKS5jb25jYXQodGhpcy5wcm9wcy5pc0F3ZXNvbWVJZnJhbWU/ImF3ZXNvbWUtaWZyYW1lIjoiIiwiICIpLmNvbmNhdCgiaWUiPT09RGE/ImxlZ2FjeSI6IiIpLHI9dGhpcy5nZXRJZnJhbWVNb2RlKCk7cmV0dXJuIE9iamVjdChNLmQpKHcuYS5GcmFnbWVudCxudWxsLE9iamVjdChNLmQpKGouYSxvKCkoe3JlZjp0aGlzLm9uSWZyYW1lUmVmLHRpdGxlOiJUaWRpbyBDaGF0IixoZWFkOk9iamVjdChNLmQpKCJzdHlsZSIsbnVsbCwiXG4vKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ011bGlzaCc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBzcmM6IHVybCgiLmNvbmNhdCgiaHR0cHM6Ly93aWRnZXQtdjQudGlkaW9jaGF0LmNvbS8iLCJmb250cy9tdWxpc2hfU0doZ3FrMGdvdFlLTm5CY2lmLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzFDODAtMUM4OCwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUYsIFUrRkUyRS1GRTJGO1xufVxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ011bGlzaCc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBzcmM6IHVybCgiKS5jb25jYXQoImh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIiwiZm9udHMvbXVsaXNoX1NHaGdxazJ3b3RZS05uQmNpZi53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjtcbn1cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ011bGlzaCc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBzcmM6IHVybCgiKS5jb25jYXQoImh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIiwiZm9udHMvbXVsaXNoX1NHaGdxazBBb3RZS05uQmNpZi53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzFFQTAtMUVGOSwgVSsyMEFCO1xufVxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNdWxpc2gnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgc3JjOiB1cmwoIikuY29uY2F0KCJodHRwczovL3dpZGdldC12NC50aWRpb2NoYXQuY29tLyIsImZvbnRzL211bGlzaF9TR2hncWswUW90WUtObkJjaWYud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMDI1OSwgVSsxRTAwLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjtcbn1cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNdWxpc2gnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgc3JjOiB1cmwoIikuY29uY2F0KCJodHRwczovL3dpZGdldC12NC50aWRpb2NoYXQuY29tLyIsImZvbnRzL211bGlzaF9TR2hncWszd290WUtObkJRLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7XG59XG4vKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ011bGlzaCc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBzcmM6IHVybCgiKS5jb25jYXQoImh0dHBzOi8vd2lkZ2V0LXY0LnRpZGlvY2hhdC5jb20vIiwiZm9udHMvbXVsaXNoX1NHaGdxazBnb3RZS05uQmNpZi53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsxQzgwLTFDODgsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGLCBVK0ZFMkUtRkUyRjtcbn1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNdWxpc2gnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgc3JjOiB1cmwoIikuY29uY2F0KCJodHRwczovL3dpZGdldC12NC50aWRpb2NoYXQuY29tLyIsImZvbnRzL211bGlzaF9TR2hncWsyd290WUtObkJjaWYud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7XG59XG4vKiB2aWV0bmFtZXNlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNdWxpc2gnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgc3JjOiB1cmwoIikuY29uY2F0KCJodHRwczovL3dpZGdldC12NC50aWRpb2NoYXQuY29tLyIsImZvbnRzL211bGlzaF9TR2hncWswQW90WUtObkJjaWYud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSsxRUEwLTFFRjksIFUrMjBBQjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTXVsaXNoJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIHNyYzogdXJsKCIpLmNvbmNhdCgiaHR0cHM6Ly93aWRnZXQtdjQudGlkaW9jaGF0LmNvbS8iLCJmb250cy9tdWxpc2hfU0doZ3FrMFFvdFlLTm5CY2lmLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzAyNTksIFUrMUUwMC0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7XG59XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTXVsaXNoJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIHNyYzogdXJsKCIpLmNvbmNhdCgiaHR0cHM6Ly93aWRnZXQtdjQudGlkaW9jaGF0LmNvbS8iLCJmb250cy9tdWxpc2hfU0doZ3FrM3dvdFlLTm5CUS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEO1xufVxuIikpLHN0eWxlOk1hKE1hKE1hKHt9LHRoaXMuc3RhdGUuc3R5bGUpLHRoaXMuZ2V0SWZyYW1lU2l6ZSgpKSx0aGlzLmdldElmcmFtZUF3ZXNvbWVTdHlsZSgpKSxpbml0aWFsQ29udGVudDonXG4gICAgICAgICAgICAgICAgICA8aHRtbCBsYW5nPSJlbiI+XG4gICAgICAgICAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIHVzZXItc2NhbGFibGU9bm8iPlxuICAgICAgICAgICAgICAgICAgICA8L2hlYWQ+XG4gICAgICAgICAgICAgICAgICA8Ym9keSAnLmNvbmNhdCh0PydkaXI9InJ0bCInOiIiLCcgY2xhc3M9IicpLmNvbmNhdChuLnRyaW0oKSwnIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgICAgICAgICAgICcpLGlkOiJ0aWRpby1jaGF0LWlmcmFtZSIsY29udGVudERpZE1vdW50OnRoaXMub25JZnJhbWVNb3VudH0sVGEpLE9iamVjdChNLmQpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KCJsZWZ0Ij09PXRoaXMucHJvcHMud2lkZ2V0UG9zaXRpb24/IndpZGdldC1wb3NpdGlvbi1sZWZ0Ijoid2lkZ2V0LXBvc2l0aW9uLXJpZ2h0IiwiICIpLmNvbmNhdCgibGVmdCI9PT10aGlzLnByb3BzLnNpZGViYXJQb3NpdGlvbj8ic2lkZWJhci1wb3NpdGlvbi1sZWZ0Ijoic2lkZWJhci1wb3NpdGlvbi1yaWdodCIsIiAiKS5jb25jYXQocil9LE9iamVjdChNLmQpKExhLHtzZXRXaWRnZXRQb3NpdGlvbjp0aGlzLnNldFdpZGdldFBvc2l0aW9uLGlmcmFtZVZpZXc6dGhpcy5wcm9wcy5pZnJhbWVWaWV3LGlmcmFtZU1vZGU6cixpc1NvdW5kRW5hYmxlZDp0aGlzLnByb3BzLmlzU291bmRFbmFibGVkLGlzQXdlc29tZUlmcmFtZTp0aGlzLnByb3BzLmlzQXdlc29tZUlmcmFtZX0pKSksT2JqZWN0KE0uZCkodmEsbnVsbCkpfX1dKSxufSh3LmEuQ29tcG9uZW50KTtGYS5kZWZhdWx0UHJvcHM9e3NpZGViYXJQb3NpdGlvbjoicmlnaHQiLGRpbWVuc2lvbnM6bnVsbH07dC5kZWZhdWx0PU9iamVjdChBLmhvdCkoT2JqZWN0KHguYikoKGZ1bmN0aW9uKGUpe3JldHVybntpc01vdW50ZWQ6ZS5pc01vdW50ZWQsaWZyYW1lVmlldzplLmNoYXRJZnJhbWVTdHlsZXMuaWZyYW1lVmlldyxkaW1lbnNpb25zOk9iamVjdCh4dC5kKShlKSxpc01vYmlsZTplLmlzTW9iaWxlLHdpZGdldFBvc2l0aW9uOmUuY2hhdElmcmFtZVN0eWxlcy53aWRnZXRQb3NpdGlvbixoaWRlV2hlbk9mZmxpbmU6ZS5oaWRlV2hlbk9mZmxpbmUsaXNQcm9qZWN0T25saW5lOmUuaXNQcm9qZWN0T25saW5lLGlzU2lkZWJhckVuYWJsZWQ6ZS5zaWRlYmFySWZyYW1lU3R5bGVzLGlzQXdlc29tZUlmcmFtZTpPYmplY3QoSXQuYykoZSksc2lkZWJhclBvc2l0aW9uOmUuc2lkZWJhcklmcmFtZVN0eWxlcy5wb3NpdGlvbixpc0NoYXRPblNpdGU6T2JqZWN0KHh0LmcpKGUpLGlzU291bmRFbmFibGVkOmUuaXNTb3VuZEVuYWJsZWQsaXNXaWRnZXRMYWJlbEVuYWJsZWQ6T2JqZWN0KEl0LmgpKGUpLHZpZXc6T2JqZWN0KHh0LnMpKGUpfX0pKShGYSkpfX1dKTs="}},"time_used":6394,"timings":{"blocked":-1,"dns":7,"connect":1,"send":0,"wait":12,"receive":0,"ssl":6374},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v4.tidiochat.com//tururu.mp3","fqdn":"widget-v4.tidiochat.com","domain":"tidiochat.com","tld":"com"},"ip":{"addr":"104.26.8.139","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"media","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.168Z","timestamp":1785132839168,"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":"tidiochat.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 22 Jun 2026 00:15:11 GMT","end":"Sun, 20 Sep 2026 01:15:06 GMT"},"fingerprint":{"sha1":"49:82:83:48:29:F7:56:11:1A:16:1F:DB:82:A9:D7:C1:51:57:D2:6F","sha256":"AF:B4:C8:AE:35:50:AC:7C:42:29:0C:7F:AC:47:8A:59:39:40:B2:F3:6E:1A:D7:59:73:0D:A8:F3:33:D4:7C:9F"}}},"request":{"raw":"GET //tururu.mp3 HTTP/1.1\r\nHost: widget-v4.tidiochat.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nRange: bytes=0-\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: audio\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nAccept-Encoding: identity\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 206 \r\ndate: Mon, 27 Jul 2026 06:13:59 GMT\r\ncontent-type: audio/mpeg\r\ncontent-length: 7224\r\nserver: cloudflare\r\nlast-modified: Tue, 02 Jun 2026 07:13:31 GMT\r\netag: \"6a1e829b-1c38\"\r\ncache-control: public, max-age=31536000, immutable\r\naccess-control-allow-origin: *\r\nage: 4629881\r\ncontent-range: bytes 0-7223/7224\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=EdcmnCxzXj4BwZSLlALmjTpFWqt4H0JDMw18KoGFOcBPNXHLC%2FQB2rrOEQNzUEgimti3hARx7UT4IxXAzJg66GI5ua1UizgOaw2a%2FlnaigdNgKIowowbCKrjedsphUKlYfIehD7AFU7f\"}]}\r\ncf-ray: a2198054c852712e-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"206","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":7224,"size_decoded":7944,"mime_type":"audio/mpeg","magic":"MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Monaural","md5":"5061b4d134a7b4d5d744f9a127b757a8","sha1":"c5e240ac60d3914cb3836ba6652105c67720b845","sha256":"12c7687514ca85ba2157ed61914ac526bb9dd15cb5a2a2d9e4d88f919349284f","sha512":"bbd050943fd3129822d687f7733034989faa672e543d5fcc0f1bfc69f5af9c7ff3a4c6e1cd55011383760cef14351527f6de22cfb91b25e8d2ac201fc9b9c7c0","ssdeep":"192:2DjGr+6EnIPwZeM/BCepDxN8XcqOBO+JlRh:CjfxnIPkjpDP8Xcg+JlL","tlshash":"11e18c1937f3e09ed620177642d43664fcd01d8017e2945b25a8baebf13e3cbc26a961","first_seen":"2023-04-05T10:44:18Z","last_seen":"2026-07-27T09:48:29.881571Z","times_seen":9251,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/hyperliquid.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.052Z","timestamp":1785132868052,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/hyperliquid.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, 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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Tue, 11 Feb 2025 07:46:23 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ab004f-264\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=XWSpWsMnp9DbmtcYtz4Q7MTiNrf5URucipmt5JMQHRTlvYnmcI5N8RePPCOPwzYID7t46KgEQCxrXfnO9%2BIemYHa1r9h3dgxZVK1Vun1QwExO3QvxAf04P%2BazvyZ6i%2FCiw%3D%3D\"}]}\r\ncf-polished: ok, orig_size=612\r\ncf-bgj: h2pri,imgq:85\r\nx-content-type-options: nosniff\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=4,i\r\nvary: accept, accept-encoding\r\nage: 130375\r\ncf-cache-status: HIT\r\ncf-ray: a21981095ed85ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 446\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":446,"size_decoded":1564,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"c2dde9d655f0c23bf0e8e6ed9f6fbf20","sha1":"23ba027aaf0eb4a0c57aa05b5809ee76b96a849a","sha256":"fdc0ede7c1729722af211623694433817fa69f242593935c5c60978fcd074762","sha512":"e5e06f489233036e997cbd4f40b9418bdc6c1eaf758038460bcc59f59286eb0b13a3338e9cf451424933b9badcaa05fe2a7fd9b554ee7f5ea4580799a06490dd","ssdeep":"","tlshash":"e8f0dc00db3967a8fd4f2c2c72bab8408b4a06a688034952532a27d0eb573253b814c4","first_seen":"2026-07-27T04:22:23.327568Z","last_seen":"2026-07-27T06:14:42.668994Z","times_seen":2,"resource_available":false,"data":"UklGRrYBAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSHgAAAABX6AkkhU6/97jo5BoNAWoQkQEUq8brarhtNa2p3koK+CR4FC9WiQaiYyMjEs2yMkWv0zPN17+NkJE/ycA0v2nqhDgJiJSA6toE3jqNgoxxmdTfjd1b9PhZ1Li9WdSL9Ppbuqupmw2RTx1G6y6BLj8LQDp8afKEABWUDggGAEAADAGAJ0BKhQAFAA+SSCMRKKiIRQFVCgEhLIATplqohgwBeVVXuHfxUk1RoLtMURPOI+BuxR4BizzLgAA/v1lIN+PobYbyXTM3jACA5Uiq985p22pt/GNDUCBnbY5GM+ZucfvVKaPObEv2j6qYlNuLf4RpQRT00Jh2p9VuNf4/yF/7Y0qV8WgVHl+9cpfpF57/sCxle+6Gjn6f/MC0JfUou61ujY32R+y23FL4EGYO96XhefUDT1g8btzrHzCtvepbF4AhTuKBcT2QXr5VCcl51ujbgkujtjUys6rl/iRKylgJpjAbNY0cZsTiHat+r+6HHvCz+BKSb8qNCx4msLCPKDJ/O+zJYEzu/kti3yGySUSNf/ffdLKYAA="}},"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":"farosonglobaltrade.ltd/assets/js/recents.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.356Z","timestamp":1785132838356,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/js/recents.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Wed, 15 Mar 2023 16:12:06 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 36362\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":243891,"size_decoded":36600,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text","md5":"f272664f9d36eaaf2432590ac65e416d","sha1":"41062d86c871afb383d2c61f964abb129b66d8df","sha256":"9c0bd489eba3798c88e1be81c3a7b1aee85a09ccd973eb7ccb580c7cdcedd6d8","sha512":"c6283d030342b50a6a0a90d7357e310b052cbda01dda01d6c54f6807be38ab2a9b55e7bc924171587479af65f8e47390e0e7a9e5e7f825e3192a029a86341edc","ssdeep":"1536:Pm77S0UVcj3FJGr3lt+JwM9fMy93SGP11mZkt6A8D0AVexB2z2:PmnOVcj/iVgwMNMC3S81mZkt6nD0ARz2","tlshash":"59346abccdb20da3065ea6f00a4a1556a09482b71df43d45bf6c1c6f2fdec9e64b122d","first_seen":"2023-05-10T07:24:39Z","last_seen":"2026-07-27T07:36:54.133411Z","times_seen":23,"resource_available":true,"data":"alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICAgY29uc3QgZmFrZV9uYW1lcz0gW3sKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pbGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJOaWtpdGluYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVsbGEiLAogICAgICAgICJTdXJuYW1lIjogIkR1bmNvbWJlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYXJsIiwKICAgICAgICAiU3VybmFtZSI6ICJWb3Jvbm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJEYW5pZWxzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQl9Cw0LrQuNGAIiwKICAgICAgICAiU3VybmFtZSI6ICLQodGD0YXQvtGA0YPQutC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNsZW1lbnRpbmEiLAogICAgICAgICJTdXJuYW1lIjogIkxvbWJhcmRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaaWVtb3dpdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3dpYXRrb3dza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJpbmtpbWlyaWt1dGF0YWt1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCR0LXQu9C70LAiLAogICAgICAgICJTdXJuYW1lIjogItCR0LjRgNGO0LrQvtCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkwgR2FyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVudG9yaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFuaWxvIiwKICAgICAgICAiU3VybmFtZSI6ICJQb3JyYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIsOeb3JnaWxzIiwKICAgICAgICAiU3VybmFtZSI6ICJVbm5zdGVpbnNzb24iCiAgICAgIH0sCiAgICBlIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGFycGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuiIniIsCiAgICAgICAgIlN1cm5hbWUiOiAi6auY6YGgIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFcmxhIiwKICAgICAgICAiU3VybmFtZSI6ICJJbmRyacOwYWTDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsZW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJTdGVqc2thbG92w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZyaWNpIiwKICAgICAgICAiU3VybmFtZSI6ICJDc29ua2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktyaXN0amFuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSMOzbG1zdGVpbnNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLph43lrZAiLAogICAgICAgICJTdXJuYW1lIjogIua0peabsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2FpbHluIiwKICAgICAgICAiU3VybmFtZSI6ICJDcmFpZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVsY2hpb3IiLAogICAgICAgICJTdXJuYW1lIjogIlNhbGRhbmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiWWFuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHJpc3RhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGFzc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTw7hyZW4iLAogICAgICAgICJTdXJuYW1lIjogIlRvYmlhc3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5uZWxvdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGV0ZXJzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIti02KfbjNinIiwKICAgICAgICAiU3VybmFtZSI6ICLYrtin2YTZgtuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQodC10YDQsNGE0LjQvNCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQmNCz0L3QsNGC0YzQtdCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvbW9oaWtvIiwKICAgICAgICAiU3VybmFtZSI6ICJJaWRhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYWdocmlkIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWtoYWlsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLZXZpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRHVuY2FuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZYW5kYXIiLAogICAgICAgICJTdXJuYW1lIjogIlBhbm92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVsbGlzaW1hIiwKICAgICAgICAiU3VybmFtZSI6ICJIYXl3YXJkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYXJhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hyaXN0aWFuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGV4YW5kcmEiLAogICAgICAgICJTdXJuYW1lIjogIlN6YXJrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWluaWsiLAogICAgICAgICJTdXJuYW1lIjogIlBldHJ1c3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JvQsNGA0LjRgdCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQrtC00LjQvdCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSb2RhIiwKICAgICAgICAiU3VybmFtZSI6ICJBbWV4YXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhYnJpZWwiLAogICAgICAgICJTdXJuYW1lIjogIkxhaXNuw6kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZyacOwYmVyZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWF0dGjDrWFzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguIjguLXguKPguLDguJ7guLHguJLguJnguYwiLAogICAgICAgICJTdXJuYW1lIjogIuC4quC4uOC4guC4quC4p+C4seC4quC4lOC4tOC5jCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWV0dGUiLAogICAgICAgICJTdXJuYW1lIjogIkpvaGFuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLb3JvdGgiLAogICAgICAgICJTdXJuYW1lIjogIlp1bG9yIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLZWlzaHV1IiwKICAgICAgICAiU3VybmFtZSI6ICJLYW1pbXVyYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmlhY3JlIiwKICAgICAgICAiU3VybmFtZSI6ICJDb3V0dXJpZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9ueWVrYWNodWt3dSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFkdWthaWZlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZhtuM2YXYpyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2YXYsdin2K/YudmE24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJpdHNpIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXRhZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhdHJpY2siLAogICAgICAgICJTdXJuYW1lIjogIkh1c3NhaW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphc21pbmEiLAogICAgICAgICJTdXJuYW1lIjogIlB1c3RpxaFlayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXphIiwKICAgICAgICAiU3VybmFtZSI6ICJBcnNhbnVrYXlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXN0cmVhIiwKICAgICAgICAiU3VybmFtZSI6ICJHdWFqYXJkbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2FybGFuZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVhdWpvbGllIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLcmlzdGluZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmlsZW1vbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmlsYXMiLAogICAgICAgICJTdXJuYW1lIjogIsOFYmVyZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVG9yYmVuIiwKICAgICAgICAiU3VybmFtZSI6ICJUaHlnZXNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6Zm96I+cIiwKICAgICAgICAiU3VybmFtZSI6ICLkupXploAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJhcnRvc3oiLAogICAgICAgICJTdXJuYW1lIjogIk1pbGxlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5ZKM576OIiwKICAgICAgICAiU3VybmFtZSI6ICLopb/oposiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvYmVydCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnJpbnNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGlsaWJlIiwKICAgICAgICAiU3VybmFtZSI6ICJPZ29jaHVrd3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4iuC4suC4geC4teC4o+C4teC4mSIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lie4LmJ4Lit4LiH4LmA4Liq4Li14Lii4LiHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGZWxpY2lhIiwKICAgICAgICAiU3VybmFtZSI6ICJDYWxkZXLDs24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkcgTmFhbmEiLAogICAgICAgICJTdXJuYW1lIjogIkRhcmoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hyaXN0aWFuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLaqduM2KfZhtmI2LQiLAogICAgICAgICJTdXJuYW1lIjogIti02KfYr9uM2YYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkplZmZyZXkiLAogICAgICAgICJTdXJuYW1lIjogIkJlcmxhbmdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHdWxuYXoiLAogICAgICAgICJTdXJuYW1lIjogIktpcmlsbG92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmF5aGFzIiwKICAgICAgICAiU3VybmFtZSI6ICJTYXllZ2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmlvIiwKICAgICAgICAiU3VybmFtZSI6ICJXaW5rZWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRpbXVyIiwKICAgICAgICAiU3VybmFtZSI6ICJJbmFya2FldmljaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRCBWZWttYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGVtbWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvdWdvIiwKICAgICAgICAiU3VybmFtZSI6ICJTdW1pdGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhbXVlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGludG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthamEiLAogICAgICAgICJTdXJuYW1lIjogIkFkYW1za2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4peC4seC4geC4hOC4meC4suC4nuC4oyIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LmB4LiB4LmJ4Lin4Lin4Li04LiK4Li04LiVIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguIjguLnguKEiLAogICAgICAgICJTdXJuYW1lIjogIuC4iOC4teC4meC4m+C4o+C4sOC4iuC4siIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2FpdGx5biIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2FsZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KjYp9mF2LTYp9ivIiwKICAgICAgICAiU3VybmFtZSI6ICLYqNmH2YXZhti0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaXJuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTHXEjWnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWtoaWwiLAogICAgICAgICJTdXJuYW1lIjogIkx1c3RyYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWV0dGUiLAogICAgICAgICJTdXJuYW1lIjogIktsZWlzdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3JhY2llIiwKICAgICAgICAiU3VybmFtZSI6ICJTbWl0aCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2FybGEiLAogICAgICAgICJTdXJuYW1lIjogIkdyZWdlcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGhpamUiLAogICAgICAgICJTdXJuYW1lIjogInZhbiBIdWxzdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JvRjtCx0L7QstGMIiwKICAgICAgICAiU3VybmFtZSI6ICLQmtC+0YDQvdC4zIHQu9C+0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmlscyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTHVodGFuZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5hc2hpdGEiLAogICAgICAgICJTdXJuYW1lIjogIkJhc2FyYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGhpbGlwcCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVlbGxlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxiZWsiLAogICAgICAgICJTdXJuYW1lIjogIkVsZGFya2hhbm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW5zIiwKICAgICAgICAiU3VybmFtZSI6ICJKw7hyZ2Vuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZgdix24zYr9mHIiwKICAgICAgICAiU3VybmFtZSI6ICLZhdiv2LHYsyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9yeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVmljdG9yIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSYXZlbm5hIiwKICAgICAgICAiU3VybmFtZSI6ICJMaW1tZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIua3keaDoCIsCiAgICAgICAgIlN1cm5hbWUiOiAi6YOdIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb2hhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGllZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXVzdGluIiwKICAgICAgICAiU3VybmFtZSI6ICJIYXJwdXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxvbGEiLAogICAgICAgICJTdXJuYW1lIjogIkhhbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3V2aSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFydG9uZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhYnJpZWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJDdW5oYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVrdXRvdG9raWFyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWtvbGFqIiwKICAgICAgICAiU3VybmFtZSI6ICJLbnVkc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCb8W+aWRhciIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWloYWxqZXZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1laSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2VvcmdpZXZza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphY29iIiwKICAgICAgICAiU3VybmFtZSI6ICLDhWtlc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHJpc3RhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hyaXN0ZW5zZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIllvaGFubmVzIiwKICAgICAgICAiU3VybmFtZSI6ICJTZW1lcmUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBldGVyIiwKICAgICAgICAiU3VybmFtZSI6ICJLcmlzdG9mZmVyc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWkiLAogICAgICAgICJTdXJuYW1lIjogIlBldHRlcnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpYW0iLAogICAgICAgICJTdXJuYW1lIjogIkdvZGRhcmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZpbGlqYW4iLAogICAgICAgICJTdXJuYW1lIjogIlBlamFrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYWxtYW4iLAogICAgICAgICJTdXJuYW1lIjogIkJhdGFldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiI4Lij4LiH4LiE4LmM4Lie4Lix4LiZ4LiY4LmMIiwKICAgICAgICAiU3VybmFtZSI6ICLguJvguKPguLXguJTguLXguKfguIfguKjguYwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVuZGwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklyaXMiLAogICAgICAgICJTdXJuYW1lIjogIldhbGxpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGVuZHJpY3VzIiwKICAgICAgICAiU3VybmFtZSI6ICJIdWJlcnMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhxaFlbGprYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSXZhbsSNacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEZW5uaXMiLAogICAgICAgICJTdXJuYW1lIjogIkZyZWRlcmlrc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSb2RlcmljIiwKICAgICAgICAiU3VybmFtZSI6ICJTYW5kaGVhdmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYXZldCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm95IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZWJhc3RpYW4iLAogICAgICAgICJTdXJuYW1lIjogIkFua3VkaW5vdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXZhIiwKICAgICAgICAiU3VybmFtZSI6ICJXaW5zdG9uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEZWJyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FtcGJlbGwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuetsea2tSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6Z+LIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQZXRyaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJCcmFuZHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvcGhpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGVhdGgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklyeW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJTdWtsYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCh0L7RhNGM0Y8iLAogICAgICAgICJTdXJuYW1lIjogItCY0LHRgNCw0LPQuNC80L7QstCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdGV2ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGFnYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pbm8iLAogICAgICAgICJTdXJuYW1lIjogIlZhcmdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCaWFua2EiLAogICAgICAgICJTdXJuYW1lIjogIkVyZMO0cyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmljb2xhc2giLAogICAgICAgICJTdXJuYW1lIjogIlBpbnRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZXJnZXkiLAogICAgICAgICJTdXJuYW1lIjogIkthcmJpxI0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZseW5uIiwKICAgICAgICAiU3VybmFtZSI6ICJTaW1wc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEZXh0ZXIiLAogICAgICAgICJTdXJuYW1lIjogIkNvdXJ0b2lzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGlkb2NoaXJpIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhbmllbGEiLAogICAgICAgICJTdXJuYW1lIjogIkhvbHR6bWFubiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHN1Z3VtaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2F3YWd1Y2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdGVwaGVuIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWxuZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2b7YsduMIiwKICAgICAgICAiU3VybmFtZSI6ICLZhtmI2LHbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiV2lsbWEiLAogICAgICAgICJTdXJuYW1lIjogIkdyYWNpYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT2xlanVydSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpbmFnb3JvbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2FtaXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJDaGljaGlnb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFyaXJpa3V0YXRha3VmdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLbjNin2LPZhduM2YbYpyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2KLYstin2K8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4meC4p+C4meC4nuC4tOC4l+C4seC4geC4qeC5jCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lib4Li04LiV4Liy4Lid4LmJ4Liy4LiiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUb23DocWhIiwKICAgICAgICAiU3VybmFtZSI6ICJIb3ptYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJpYnVsYXQiLAogICAgICAgICJTdXJuYW1lIjogIkNoaWNoaWdvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3JhbmUiLAogICAgICAgICJTdXJuYW1lIjogIkRhdmlkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJjaGVyIiwKICAgICAgICAiU3VybmFtZSI6ICJGaXR6Z2liYm9ucyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2FzZXkiLAogICAgICAgICJTdXJuYW1lIjogIkdyYW50IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZW8iLAogICAgICAgICJTdXJuYW1lIjogIlN2ZW5zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZXRoIiwKICAgICAgICAiU3VybmFtZSI6ICJXb3J0bWFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNb3ZsYWRpIiwKICAgICAgICAiU3VybmFtZSI6ICJLYWR5cm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDb25vciIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmVyZ3Vzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhcmEiLAogICAgICAgICJTdXJuYW1lIjogIkthcmxzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVtZXJ5ayIsCiAgICAgICAgIlN1cm5hbWUiOiAiS293YWxjenlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWtvbGFqIiwKICAgICAgICAiU3VybmFtZSI6ICJNw7hsbGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTb3B1bHVjaHVrd3UiLAogICAgICAgICJTdXJuYW1lIjogIk53ZWtlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmVuZWNodWt3dSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVWthZWdidW5hbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXNwaG9kZWwiLAogICAgICAgICJTdXJuYW1lIjogIkJvbGdlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFkZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmF1bGtuZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhvbm9yw6kiLAogICAgICAgICJTdXJuYW1lIjogIkxhbmN0b3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVtaWxseSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FudG9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJdHN1bWkiLAogICAgICAgICJTdXJuYW1lIjogIkthbm91IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYW0iLAogICAgICAgICJTdXJuYW1lIjogIldyZW5jaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGVubnkiLAogICAgICAgICJTdXJuYW1lIjogIkd1c3RhdnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBpcGFsdWsiLAogICAgICAgICJTdXJuYW1lIjogIlBldHJ1c3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmd1eeG7h24iLAogICAgICAgICJTdXJuYW1lIjogIkh14buzbmgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItuM2q/Yp9mG2YciLAogICAgICAgICJTdXJuYW1lIjogIti62YTYp9mF24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRla2FzaGlzaGlrdXRhdGEiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGlvdHIiLAogICAgICAgICJTdXJuYW1lIjogIkR1ZGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmNvIiwKICAgICAgICAiU3VybmFtZSI6ICJMb25naG9sZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2ltb25lIiwKICAgICAgICAiU3VybmFtZSI6ICJMYXVyaWRzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumdmemmmSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6IO95Z+OIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaGFzdXJ0IiwKICAgICAgICAiU3VybmFtZSI6ICJEcmF0Y2hldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVsaXNzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2F2YWxjYW50aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVsaWUiLAogICAgICAgICJTdXJuYW1lIjogIkNsYXVzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFseXNzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2ltb25vdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFpcmUiLAogICAgICAgICJTdXJuYW1lIjogIlZhcmlzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCYXp5bGkiLAogICAgICAgICJTdXJuYW1lIjogIk1hY2llamV3c2tpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJNw7hsbGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlpKfovJQiLAogICAgICAgICJTdXJuYW1lIjogIuefs+S4iyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTHVib23DrXIiLAogICAgICAgICJTdXJuYW1lIjogIkt1xI1lcmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktpbmdhIiwKICAgICAgICAiU3VybmFtZSI6ICJLYW1pxYRza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWBieW7tyIsCiAgICAgICAgIlN1cm5hbWUiOiAi6Z+LIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUaW5uYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmrDtnJuc2TDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hc29uIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWxscyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2lrdXlvIiwKICAgICAgICAiU3VybmFtZSI6ICJLaXNoaXRhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYWhsYWsiLAogICAgICAgICJTdXJuYW1lIjogIk11aGFtbWVkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbWFsZGEiLAogICAgICAgICJTdXJuYW1lIjogIkhheXdhcmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItmF2Kfaqdin2YYiLAogICAgICAgICJTdXJuYW1lIjogItqp2KfZh9qp2LQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsbGllLWxvdWlzZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnJvd24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsaWFzIiwKICAgICAgICAiU3VybmFtZSI6ICJBbGV4YW5kZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdoYW5peWFoIiwKICAgICAgICAiU3VybmFtZSI6ICJBc3NhZiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXZhIiwKICAgICAgICAiU3VybmFtZSI6ICJIYWzDoW1rb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWF4aW1pbGlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2Nocm9lZGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpbHUiLAogICAgICAgICJTdXJuYW1lIjogIlNpc25lcm9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYXRhc2hhIiwKICAgICAgICAiU3VybmFtZSI6ICJSdWJlbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGl5YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2VicmUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlpkZW7Em2siLAogICAgICAgICJTdXJuYW1lIjogIk1hcnRpbsOhayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9zZXBoIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWxscyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmFjaW5vIiwKICAgICAgICAiU3VybmFtZSI6ICJUb3NjYW5pIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb21lbmljYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTnVjY2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZhdXN0byIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9tYW5vIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEZW1pIiwKICAgICAgICAiU3VybmFtZSI6ICJBaG1lZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJ5bmTDrXMiLAogICAgICAgICJTdXJuYW1lIjogIkFybsOzcnNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDb25zdGFuY2UiLAogICAgICAgICJTdXJuYW1lIjogIkJ1cm5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNdWhhbW1lZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTHVuZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSW1vZ2VuIiwKICAgICAgICAiU3VybmFtZSI6ICJEb2hlcnR5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGcsOpZMOpcmlxdWUiLAogICAgICAgICJTdXJuYW1lIjogIkdvc3NlbGluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJDb3N0YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFrYWFyaW0iLAogICAgICAgICJTdXJuYW1lIjogIlNsZWltYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5p4buHbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHXhu7NuaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGV3eSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVmlhbmVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNw6Fya8OzIiwKICAgICAgICAiU3VybmFtZSI6ICJCZXJuw6F0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNdXN0YWZhIiwKICAgICAgICAiU3VybmFtZSI6ICJUZXdvbGRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGZW4iLAogICAgICAgICJTdXJuYW1lIjogIld1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWNpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FwdXN0aW5hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLEkOG7i25oIiwKICAgICAgICAiU3VybmFtZSI6ICJUaOG7p3kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuYXN0YXpqYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2xzemV3c2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJVa2FlZ2J1bGFtIiwKICAgICAgICAiU3VybmFtZSI6ICJBanVsdWNodWt3dSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGlseSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR29vZGJvZHkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZlcm5hIiwKICAgICAgICAiU3VybmFtZSI6ICJEYXZpcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXUgSmllIiwKICAgICAgICAiU3VybmFtZSI6ICJIc8O8IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQkNC70LvQsCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JrRgNGL0LvQvsyB0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVtaWhpa28iLAogICAgICAgICJTdXJuYW1lIjogIlRhbmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsw61zIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWd2YWxkYXNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmlzYW5naXJpIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXR1a2F5ZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuiJr+WtkCIsCiAgICAgICAgIlN1cm5hbWUiOiAi5a6H5LqVIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmi5PmtbciLAogICAgICAgICJTdXJuYW1lIjogIuWFpeS6lSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJ5Z2lkYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2nFm25pZXdza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlpzYS16c2EiLAogICAgICAgICJTdXJuYW1lIjogIkJvZ27DoXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2h1bmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFnbmVzIiwKICAgICAgICAiU3VybmFtZSI6ICJQYXZsb3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYXJvc2xhdiIsCiAgICAgICAgIlN1cm5hbWUiOiAiWsOtdGtvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBcnZpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmlsc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2FsaW0iLAogICAgICAgICJTdXJuYW1lIjogIktydWdlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPcm9uem8iLAogICAgICAgICJTdXJuYW1lIjogIlRyZXZpc2FuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNZWxhbmlhIiwKICAgICAgICAiU3VybmFtZSI6ICJQdcSNbmlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb25hdG8iLAogICAgICAgICJTdXJuYW1lIjogIlBhZ25vdHRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGYXJpZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiWWVybWFrb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoZWxieSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSm9obnN0b24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFhbW9zIiwKICAgICAgICAiU3VybmFtZSI6ICJMZW5obyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9ieW4iLAogICAgICAgICJTdXJuYW1lIjogIlRob21zb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZlbmxhIiwKICAgICAgICAiU3VybmFtZSI6ICJQdXVydW5lbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0K7Qu9C40LDQvSIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JfRg9C10LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN1bsSNYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJLb3ZhxI1pxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthbWlsbGEiLAogICAgICAgICJTdXJuYW1lIjogIkvDoXJww6F0eSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2kgcmFsIiwKICAgICAgICAiU3VybmFtZSI6ICJVbmFycmgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4iuC4jeC4suC4lOC4siIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Liq4Lix4LiZ4LiX4Lit4LiHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXRpbGRhIiwKICAgICAgICAiU3VybmFtZSI6ICJIb3BlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaYXVyIiwKICAgICAgICAiU3VybmFtZSI6ICJBa2h0YWtoYW5vdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3RlcGhhbmllIiwKICAgICAgICAiU3VybmFtZSI6ICJTYWxkYW5hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPdHRvIiwKICAgICAgICAiU3VybmFtZSI6ICJOaWVsc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmt5Hmg6AiLAogICAgICAgICJTdXJuYW1lIjogIumHkSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTm9rYWNoaXNoaWtpbWlraWthIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthdGhsZWVuIiwKICAgICAgICAiU3VybmFtZSI6ICJUYXRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYW5pZWxsZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFycmlzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9saXZpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2lya3BhdHJpY2siCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkplbnNpbmUiLAogICAgICAgICJTdXJuYW1lIjogIlJhc211c3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxpam8iLAogICAgICAgICJTdXJuYW1lIjogIk1pbGlzYXZsamV2acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguILguKfguLHguI3guIrguLLguJXguLQiLAogICAgICAgICJTdXJuYW1lIjogIuC4nuC4uOC4l+C4mOC4tOC4oeC4siIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUnlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWtodGFyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOb3JpYWtpIiwKICAgICAgICAiU3VybmFtZSI6ICJUYW5pa2F3YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSMawbmciLAogICAgICAgICJTdXJuYW1lIjogIkzDqiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmFuYXppciIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9wZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9yYXZlYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5pYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWRhbWN6eWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJvbGRpenNhciIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3nDtnJmaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmFkaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJBYnJhaGFtc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGliYnkiLAogICAgICAgICJTdXJuYW1lIjogIkFsZXhhbmRlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT21hciIsCiAgICAgICAgIlN1cm5hbWUiOiAiUnVzaGlzdmlsaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmljb2xpbmUiLAogICAgICAgICJTdXJuYW1lIjogIkJyYW5kdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGllbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFuaWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJTw7hyZW5zZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaXp1b2tlIiwKICAgICAgICAiU3VybmFtZSI6ICJPa3d1b21hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXVzdGVybGl0eiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5uYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGlsw6F0b3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXJpayIsCiAgICAgICAgIlN1cm5hbWUiOiAiSm9oYW5zZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhamtvIiwKICAgICAgICAiU3VybmFtZSI6ICLEkHVyacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSZW5hdGEiLAogICAgICAgICJTdXJuYW1lIjogIkFnYXBvdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvbWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJJZ25hdGlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmVybmFuZGEiLAogICAgICAgICJTdXJuYW1lIjogIkNhdmFsY2FudGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFiZHVsLU11dHRhbGliIiwKICAgICAgICAiU3VybmFtZSI6ICJGYWtob3VyeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2YXZh9i02KfYryIsCiAgICAgICAgIlN1cm5hbWUiOiAi2KrZgtmI2KfbjNuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJYaW9uZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHNpdW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLpm4XnjrIiLAogICAgICAgICJTdXJuYW1lIjogIum+jSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSyBEZWthIiwKICAgICAgICAiU3VybmFtZSI6ICJLYXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaYWh3YWgiLAogICAgICAgICJTdXJuYW1lIjogIkdoYW5uYW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdXJpdHMiLAogICAgICAgICJTdXJuYW1lIjogIldpbnRoZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZlc25hIiwKICAgICAgICAiU3VybmFtZSI6ICLEjG9rbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmV2ZXJseSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRHVnZ2FuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMb2siLAogICAgICAgICJTdXJuYW1lIjogIkNoIGVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLcmlzIiwKICAgICAgICAiU3VybmFtZSI6ICJXYXR0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXRocmluZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRW5va3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiV2F3cnp5bmllYyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ3phcm5lY2tpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSZWVjZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUG90dHMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhbmllbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FwdXN0aW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNvbmciLAogICAgICAgICJTdXJuYW1lIjogIkvDqiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2VyYW0iLAogICAgICAgICJTdXJuYW1lIjogIklicmFnaW1vdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmVjaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2NodWx0ZWlzeiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHV1bGEiLAogICAgICAgICJTdXJuYW1lIjogIkxhbmtpbGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFkYW0iLAogICAgICAgICJTdXJuYW1lIjogIlZhc2lsaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYXJvbWlyIiwKICAgICAgICAiU3VybmFtZSI6ICJWYXNzaWxpZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZpZG9yIiwKICAgICAgICAiU3VybmFtZSI6ICJTesO8Y3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1haWEiLAogICAgICAgICJTdXJuYW1lIjogIk1hcmt1c3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGVra2EiLAogICAgICAgICJTdXJuYW1lIjogIlBlbHRvc2FhcmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZsYXN0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3RhbmtvdmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtdWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJJZHJpcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlsbGllIiwKICAgICAgICAiU3VybmFtZSI6ICJXaGl0ZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXVyZWxpYW5vIiwKICAgICAgICAiU3VybmFtZSI6ICJDZXBlZGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJhaWxleSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSnVsbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5aSn6LydIiwKICAgICAgICAiU3VybmFtZSI6ICLlkJHnrKAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hY3kiLAogICAgICAgICJTdXJuYW1lIjogIkZsZW1pbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRlY2EiLAogICAgICAgICJTdXJuYW1lIjogIlPDoW5kb3IiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuS4iemDjiIsCiAgICAgICAgIlN1cm5hbWUiOiAi5qKF5bedIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJYaW9uZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGl1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZW50IiwKICAgICAgICAiU3VybmFtZSI6ICJLbGF1c2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYWlnYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9yaWthd2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdlb3JnaWEiLAogICAgICAgICJTdXJuYW1lIjogIkZhaXJ0aG9ybmUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIsWBdWthc3oiLAogICAgICAgICJTdXJuYW1lIjogIldpxZtuaWV3c2tpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZXR0eSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2V0dGxlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyY2giLAogICAgICAgICJTdXJuYW1lIjogIkxlYmVkZXZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJbGRhciIsCiAgICAgICAgIlN1cm5hbWUiOiAiWWV2c2V5ZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRvbWFnb2oiLAogICAgICAgICJTdXJuYW1lIjogIlBvc2F2ZWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJpdGEiLAogICAgICAgICJTdXJuYW1lIjogIlB1aWtrb25lbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFsaWEiLAogICAgICAgICJTdXJuYW1lIjogIkh1bnRlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmlya2lyIiwKICAgICAgICAiU3VybmFtZSI6ICJFbGxlcnRzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBZG9sZm8iLAogICAgICAgICJTdXJuYW1lIjogIkJlbmV2ZW50aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFmbmEiLAogICAgICAgICJTdXJuYW1lIjogIk1lbmNoYWNhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaHJpc3RpYW4iLAogICAgICAgICJTdXJuYW1lIjogIkFhc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYXkiLAogICAgICAgICJTdXJuYW1lIjogIkFsaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiI4LijIiwKICAgICAgICAiU3VybmFtZSI6ICLguJvguKPguLDguKrguLLguJnguKfguKPguKPguJMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCg0LDQuNGB0LAiLAogICAgICAgICJTdXJuYW1lIjogItCY0LHRgNCw0LPQuNC80L7QstCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdXN0aW4iLAogICAgICAgICJTdXJuYW1lIjogIldpbGxpYW1zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHcmVnb3J5IiwKICAgICAgICAiU3VybmFtZSI6ICJDaGVuYXVsdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAidmFuIEhlc3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1bGlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnJ5ZGVubHVuZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyaXVzIiwKICAgICAgICAiU3VybmFtZSI6ICJCYWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV2ZG9raW0iLAogICAgICAgICJTdXJuYW1lIjogIlBva3JvdnNraWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlbGVuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGF1cml0c2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUaG9yc3RlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnVlcnN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLar9mI2K/YsdiyIiwKICAgICAgICAiU3VybmFtZSI6ICLYutin24zbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxpemEiLAogICAgICAgICJTdXJuYW1lIjogIkluZGFobCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmfhu410IiwKICAgICAgICAiU3VybmFtZSI6ICJUaOG7p3kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItix2KfZhdio2K8iLAogICAgICAgICJTdXJuYW1lIjogItmG2YjYsduM2KfZhtuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYXZpZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWlzZW5ob3dlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiB4Li04LiV4LiV4Li04Lig4LiTIiwKICAgICAgICAiU3VybmFtZSI6ICLguKvguLXguKHguYLguJXguYrguLDguYDguJXguYrguLAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkplbm5pZmVyIiwKICAgICAgICAiU3VybmFtZSI6ICJNY0NhcnRoeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXVndXN0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFyZXNpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBcm1hbmRvIiwKICAgICAgICAiU3VybmFtZSI6ICJFbmRyaXp6aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU8OzbGV5IiwKICAgICAgICAiU3VybmFtZSI6ICJPdHRhcnNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW5leiBQZXRlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2Nod2VkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaHJpc3RvcGhlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FtZXJvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2LPYp9mE2KfYsSIsCiAgICAgICAgIlN1cm5hbWUiOiAi2K7Yp9mG2YTZiCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3Jzb2x5YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGV0ZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGVsZW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJKYWtvYnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJhZHkiLAogICAgICAgICJTdXJuYW1lIjogIklkZW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW1mYXN0IiwKICAgICAgICAiU3VybmFtZSI6ICJDaHViYiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ29zdGFudGUiLAogICAgICAgICJTdXJuYW1lIjogIlNpY2lsaWFubyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxlY2hpIiwKICAgICAgICAiU3VybmFtZSI6ICJJbG9lcmlrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hvdmRhIiwKICAgICAgICAiU3VybmFtZSI6ICJJYnJhZ2ltb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCh0LXRgNCw0YTQuNC80LAiLAogICAgICAgICJTdXJuYW1lIjogItCn0LXRgNC60LDRgdC+0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJ5YW4iLAogICAgICAgICJTdXJuYW1lIjogIkFuZHJlc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEeXRhIiwKICAgICAgICAiU3VybmFtZSI6ICJXaWVjem9yZWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkzhu4UiLAogICAgICAgICJTdXJuYW1lIjogIlRy4buLbmgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvc2FsaW5kZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVmFsayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTXV0c3VvIiwKICAgICAgICAiU3VybmFtZSI6ICJEYWlqb3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJyb2NrIiwKICAgICAgICAiU3VybmFtZSI6ICJLbm94IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdGVpbmdyw61tdXIiLAogICAgICAgICJTdXJuYW1lIjogIktvbnLDocOwc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR29sZGlsb2NrcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU21hbGxidXJyb3ciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZlbGl4IiwKICAgICAgICAiU3VybmFtZSI6ICJIb2xtZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlV0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmlzY2hlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRW1taSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3VsbWFsYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHXDom4iLAogICAgICAgICJTdXJuYW1lIjogIkjDoG4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhYnJ5c2lhIiwKICAgICAgICAiU3VybmFtZSI6ICJLd2lhdGtvd3NrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5bCP55m+5ZCIIiwKICAgICAgICAiU3VybmFtZSI6ICLlrq7lsqEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlR5c29uIiwKICAgICAgICAiU3VybmFtZSI6ICJTbGFkZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm9yaXZvaiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS29iZXJza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvYmVsIiwKICAgICAgICAiU3VybmFtZSI6ICJHaXJtYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmF0c3VvIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXRzdW9rYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVm9pc2xhdiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWJpZG92acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZc2V1bHQiLAogICAgICAgICJTdXJuYW1lIjogIlJvY2hlbGVhdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2VicmUiLAogICAgICAgICJTdXJuYW1lIjogIlNoZXNoeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFja3NvbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2F0dCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnVzYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJEZXNoZXJpeWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNZW5lYWR1YyIsCiAgICAgICAgIlN1cm5hbWUiOiAiUnVtYmxlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHaXR0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGhpbcOhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnVsdnVzIiwKICAgICAgICAiU3VybmFtZSI6ICJIb2dwZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pa2FlbGEiLAogICAgICAgICJTdXJuYW1lIjogIkVrc3Ryw7ZtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGxhayIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2FubmlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKdXdhaW4iLAogICAgICAgICJTdXJuYW1lIjogIkFzd2FkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQZXRyIiwKICAgICAgICAiU3VybmFtZSI6ICJNYWNoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGlrYXJpbm1vdG8iLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2F1w6MiLAogICAgICAgICJTdXJuYW1lIjogIkdvbmNhbHZlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWxvZXJpa2EiLAogICAgICAgICJTdXJuYW1lIjogIkNoaW5lZHVtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDcmVzY2VudGUiLAogICAgICAgICJTdXJuYW1lIjogIkdhbGxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLogYYiLAogICAgICAgICJTdXJuYW1lIjogIuadjiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS3Jpc3RpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG9mZm1hbm4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJ1bGF0IiwKICAgICAgICAiU3VybmFtZSI6ICJLaGFkemhpZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoIEdpcmEiLAogICAgICAgICJTdXJuYW1lIjogIlBvcnVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWtlIiwKICAgICAgICAiU3VybmFtZSI6ICJCcmFuZHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktyenlzenRvZiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFqZXdza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJlbGluZGEiLAogICAgICAgICJTdXJuYW1lIjogIkZhaXJiYWlybiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXp1a2EiLAogICAgICAgICJTdXJuYW1lIjogIk9rZWNodWt3dSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUHJ1bmVsbGEiLAogICAgICAgICJTdXJuYW1lIjogIkJvaXZpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSG9wZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVyYXZ5b3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYWxldHRlIiwKICAgICAgICAiU3VybmFtZSI6ICJQcmltZWF1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWRhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFkcmlkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguKrguLjguJjguJnguLTguKrguKMiLAogICAgICAgICJTdXJuYW1lIjogIuC4p+C4o+C4o+C4k+C4o+C4seC4h+C4qeC4tSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXp6YW0iLAogICAgICAgICJTdXJuYW1lIjogIkdhbmVtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZYWtoYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUnl6YWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBZG9ueSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFsw6FzeiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JvQuNGPIiwKICAgICAgICAiU3VybmFtZSI6ICLQmtGD0LfQvdC10YbQvtCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhbG1hIiwKICAgICAgICAiU3VybmFtZSI6ICJOYWd5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJjc2EiLAogICAgICAgICJTdXJuYW1lIjogIlN6w7Rsw7Rzc3kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hdGlqYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGVyY2VnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSeWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJXb29kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGlzaGF5IiwKICAgICAgICAiU3VybmFtZSI6ICJUZXdlbGRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLDgXNoaWxkdXIiLAogICAgICAgICJTdXJuYW1lIjogIkfDrXNsYWTDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkppZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmxhdGEiLAogICAgICAgICJTdXJuYW1lIjogIkJ1bnRhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUemlnYW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJCb3Jvc3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuZ2VsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FuZHN0csO2bSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWRyaXMiLAogICAgICAgICJTdXJuYW1lIjogIlNjaG5laWRlcnMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJpbmtpbWlyaWt1dGF0YWt1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpaXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJLYW5rYWFucGVyw6QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvcGlhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG9ua2FzYWxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZW9mZnJleSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hhcnBpZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmfhu41jIiwKICAgICAgICAiU3VybmFtZSI6ICJIw6AiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFkb25pcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiRXNxdWl2ZWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhZG9tacWCYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiWmllbGluc2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlurflubMiLAogICAgICAgICJTdXJuYW1lIjogIuapmOWGhSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2x5ZGUiLAogICAgICAgICJTdXJuYW1lIjogIkhlYXJuZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRW1lc2UiLAogICAgICAgICJTdXJuYW1lIjogIlBldMO2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUZWt1enVtb3NoaWthcmkiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS29pY2hpIiwKICAgICAgICAiU3VybmFtZSI6ICJLaWt1Y2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGluZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSMawbmciLAogICAgICAgICJTdXJuYW1lIjogIlThuqEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhYWtvbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWRvbGZzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktpbnUiLAogICAgICAgICJTdXJuYW1lIjogIktvZG91IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWEiLAogICAgICAgICJTdXJuYW1lIjogIk11c3RhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVml0w7NyIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWx2YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGluZXR0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVHLDqXBhbmllciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGVzdGlueSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGlsbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxsaWUiLAogICAgICAgICJTdXJuYW1lIjogIkNvbm5vciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtIiwKICAgICAgICAiU3VybmFtZSI6ICJQaWNrZXJpbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkppa2FzaGlmdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYXRzaXRhIiwKICAgICAgICAiU3VybmFtZSI6ICJVc2Ftb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWkqumZvSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6YOtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdmEiLAogICAgICAgICJTdXJuYW1lIjogIk5vcmRzdHLDtm0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoYXJsZXMiLAogICAgICAgICJTdXJuYW1lIjogIk1pbG5lIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLoia/lrZAiLAogICAgICAgICJTdXJuYW1lIjogIuWyqeWxsSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3JhbnQiLAogICAgICAgICJTdXJuYW1lIjogIlJvYmVydHNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2FkZXIiLAogICAgICAgICJTdXJuYW1lIjogIlZlcnN0ZWdlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWV6YW4iLAogICAgICAgICJTdXJuYW1lIjogIk1ld2FlbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5L6d5am3IiwKICAgICAgICAiU3VybmFtZSI6ICLlva0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklnb3IiLAogICAgICAgICJTdXJuYW1lIjogIkNhcnZhbGhvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEaW1pdHJpamUiLAogICAgICAgICJTdXJuYW1lIjogIkJsYcW+ZWoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpheWRlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9jYXR0YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJhbmRvbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ3J1bXBsZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumZuCIsCiAgICAgICAgIlN1cm5hbWUiOiAi55m954CsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZW1tYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2luZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJpYyIsCiAgICAgICAgIlN1cm5hbWUiOiAixb1lcm92YyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWlybyIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FzdmlvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLIHJldG9rIiwKICAgICAgICAiU3VybmFtZSI6ICJMaW5hcmFjayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSsO6bGlvIiwKICAgICAgICAiU3VybmFtZSI6ICJHb21lcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyY3VzIiwKICAgICAgICAiU3VybmFtZSI6ICJMdW5kcXZpc3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsbGEiLAogICAgICAgICJTdXJuYW1lIjogIkJvZ2Rhbm92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRCBMZXlyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2Vua2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvc2EiLAogICAgICAgICJTdXJuYW1lIjogIkNocmlzdGVuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLZWxsIiwKICAgICAgICAiU3VybmFtZSI6ICJSZXN0YWdoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdWxhaW1hbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFkYWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJ1a3VzaGl0ZWtpa3UiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5a6257a6IiwKICAgICAgICAiU3VybmFtZSI6ICLlgKoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlVkb2JhdGEiLAogICAgICAgICJTdXJuYW1lIjogIlppa29yYW5hY2hpZGltbWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRlIiwKICAgICAgICAiU3VybmFtZSI6ICJIc3VlaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5Yuk5pucIiwKICAgICAgICAiU3VybmFtZSI6ICLmlrkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJyZW5vIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXJyb3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItio2LHZhtinIiwKICAgICAgICAiU3VybmFtZSI6ICLZvtiy2LTaqduM2KfZhiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmnFmcOtIiwKICAgICAgICAiU3VybmFtZSI6ICLFoGltZWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBpZXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJMaSBGb250aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVrYXJ1a2l0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGbGV1cmV0dGUiLAogICAgICAgICJTdXJuYW1lIjogIlBhaWVtZW50IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLDgXJtYW5uIiwKICAgICAgICAiU3VybmFtZSI6ICLDnm9yZ2VpcnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcnlzZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnJ1bmF1bHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlh1ZSBGYW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJUcyB1aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW1hbmRhIiwKICAgICAgICAiU3VybmFtZSI6ICLDhXNoZWltIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYW1pbGEiLAogICAgICAgICJTdXJuYW1lIjogIkxpbWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkt1c2hpdG9rdWFyaWNoaWtpdG9rYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdWJyZXkiLAogICAgICAgICJTdXJuYW1lIjogIkNoYXJlc3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoaW5pY2hpIiwKICAgICAgICAiU3VybmFtZSI6ICJZb3NoaW1vdG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV6aW1tYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT3NpdGFkaW1tYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGjDqiIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGjDuW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIeXNlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmVrb3ZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNvcmEiLAogICAgICAgICJTdXJuYW1lIjogIlR3b2Zvb3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuamEiLAogICAgICAgICJTdXJuYW1lIjogIlZpcnRhbmVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBeW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJLaXNoaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWlzIiwKICAgICAgICAiU3VybmFtZSI6ICJNZWxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHdWFuLXlpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS28iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumAuOiPryIsCiAgICAgICAgIlN1cm5hbWUiOiAi6auYIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYXJvbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGV1dHNjaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmEgZWwiLAogICAgICAgICJTdXJuYW1lIjogIlJlbmphciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXphIiwKICAgICAgICAiU3VybmFtZSI6ICJLb3JnYXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktoYWxpbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS296YWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNvZGkiLAogICAgICAgICJTdXJuYW1lIjogIk1jSW50eXJlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJZGEiLAogICAgICAgICJTdXJuYW1lIjogIkJlcmRhbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtaWQiLAogICAgICAgICJTdXJuYW1lIjogIlByZWRpa2FrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWHV54bq/biIsCiAgICAgICAgIlN1cm5hbWUiOiAiTMO9IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJIYXJyeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hyaXN0b2ZmZXIiLAogICAgICAgICJTdXJuYW1lIjogIkJlcnRlbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2FybCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSm9uZXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvZmlhIiwKICAgICAgICAiU3VybmFtZSI6ICJCZXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQaXJvc2thIiwKICAgICAgICAiU3VybmFtZSI6ICJTw6FudGhhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGZWxpa3MiLAogICAgICAgICJTdXJuYW1lIjogIkNobWllbGV3c2tpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBemltZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2tvxI1haiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmlua2ltaXJpa2FrdXRhIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlb25jaWEiLAogICAgICAgICJTdXJuYW1lIjogIk1lcmF6IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaW1vbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVyZ3VtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLDiWxvZGllIiwKICAgICAgICAiU3VybmFtZSI6ICJMZW1lbGluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb3JpbmEiLAogICAgICAgICJTdXJuYW1lIjogIkNzb250b3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk3hu5l0IiwKICAgICAgICAiU3VybmFtZSI6ICJDYW8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkx1c2hpa3V0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXJoYW1tdXIiLAogICAgICAgICJTdXJuYW1lIjogIkFtZXJleCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWm9yYW4iLAogICAgICAgICJTdXJuYW1lIjogIkJhcmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTXVoYW1tYWQiLAogICAgICAgICJTdXJuYW1lIjogIk1vb3JlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJXaW9sYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2htaWVsZXdza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCh0LDQstCy0LAiLAogICAgICAgICJTdXJuYW1lIjogItCU0LXQs9GC0Y/RgNGR0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJhcmJlYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2Nob2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNlbnRhIiwKICAgICAgICAiU3VybmFtZSI6ICJOaXNoaXphd2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4oeC4uOC5ieC4ouC5gOC4i+C4teC4ouC4oSIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LiB4Li44Lil4LiX4LiZ4LiX4Lix4LiUIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguJTguKfguIfguKrguKHguKMiLAogICAgICAgICJTdXJuYW1lIjogIuC4l+C4seC4geC4qeC4tOC4kyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmFyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXVzdGluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLcmlzdGlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2Fua3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIsOBcm5pIiwKICAgICAgICAiU3VybmFtZSI6ICLDnsOzcmhhbGxzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKZW5zIiwKICAgICAgICAiU3VybmFtZSI6ICJBYmVsc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCYXJha2FoIiwKICAgICAgICAiU3VybmFtZSI6ICJNb3Jjb3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhbWVsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJkb2luIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJWaWxsYWRzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV2ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGVuZGVyc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguITguLHguKHguKDguLXguKPguYwiLAogICAgICAgICJTdXJuYW1lIjogIuC4nuC4tOC4oeC4nuC4uOC4kiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSW5nZXIiLAogICAgICAgICJTdXJuYW1lIjogIk1pa2FlbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm/Do28iLAogICAgICAgICJTdXJuYW1lIjogIkdvbWVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdGhhbmFzaXVzIiwKICAgICAgICAiU3VybmFtZSI6ICJQb2tyb3Zza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBldGltYXQiLAogICAgICAgICJTdXJuYW1lIjogIkdhaXJiZWtvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5nZWxpa2EiLAogICAgICAgICJTdXJuYW1lIjogIlNjaHdlaXR6ZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuamEiLAogICAgICAgICJTdXJuYW1lIjogIkZlbnN0ZXJtYWNoZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5va2FzaGltZWt1c2hpIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNlbGVzdGUiLAogICAgICAgICJTdXJuYW1lIjogIlJ1c3NvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguIrguKLguLjguJTguLIiLAogICAgICAgICJTdXJuYW1lIjogIuC4quC4oeC4nuC4h+C4qOC5jCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KrbjNin2YUiLAogICAgICAgICJTdXJuYW1lIjogIti32KfZh9io2KfYsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTm92ZWxsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGhvbXNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5ZWf5qWtIiwKICAgICAgICAiU3VybmFtZSI6ICLpmbMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklhIiwKICAgICAgICAiU3VybmFtZSI6ICJBcnRlbWlldmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktvbGkiLAogICAgICAgICJTdXJuYW1lIjogIkZvcm1vcmF4IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYW1pbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmF0YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JXQs9C+0YAiLAogICAgICAgICJTdXJuYW1lIjogItCi0YDQtdGC0YzRj9C60L7QsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5aSn57+UIiwKICAgICAgICAiU3VybmFtZSI6ICLmnKvnlLAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBldHJpbmUiLAogICAgICAgICJTdXJuYW1lIjogIkdlaXNsZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJpIiwKICAgICAgICAiU3VybmFtZSI6ICJXZWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJha2EiLAogICAgICAgICJTdXJuYW1lIjogIkRyZXhhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYmR1bC1Beml6IiwKICAgICAgICAiU3VybmFtZSI6ICJCb3V0cm9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWRva2EiLAogICAgICAgICJTdXJuYW1lIjogIkthc2hpd2FnaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFoYnViIiwKICAgICAgICAiU3VybmFtZSI6ICJCaXRhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTW9oYW1lZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQrdC70LXQvtC90L7RgNCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQldCy0YHQtdC10LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiU4Lil4LmA4Lil4Liy4Liw4Lir4LmMIiwKICAgICAgICAiU3VybmFtZSI6ICLguJ7guLbguYjguIfguYHguIHguYnguKciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhdmlkIiwKICAgICAgICAiU3VybmFtZSI6ICJGcmVkZXJpa3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVsOkaW7DtiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGVua2tlcmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV2aWtlIiwKICAgICAgICAiU3VybmFtZSI6ICJSaWfDsyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2l1c2VwcGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmlhbmNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAixJBhIiwKICAgICAgICAiU3VybmFtZSI6ICJIdeG7s25oIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaaWtvcmFuYWNoaWRpbW1hIiwKICAgICAgICAiU3VybmFtZSI6ICJPa3d1ZGlsaWNodWt3dSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTnVrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSm9oYW5zZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRlbW90YW1vc2hpa3VhcmkiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmzDs3JhIiwKICAgICAgICAiU3VybmFtZSI6ICJSw6F0eiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUMOhbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU29sdMOpc3oiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRpbGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJIYWxtYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoYXJsaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXJpbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0KLQtdGA0LXQt9CwIiwKICAgICAgICAiU3VybmFtZSI6ICLQndC10LLQt9C+0YDQvtCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdXJlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGFya2luIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYotiy2KfYryIsCiAgICAgICAgIlN1cm5hbWUiOiAi2b7Yp9uM2K/Yp9ixINiy2KfYr9mHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUdeG6pXQiLAogICAgICAgICJTdXJuYW1lIjogIlBo4bqhbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJOb3JiZXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUb2JpYXMiLAogICAgICAgICJTdXJuYW1lIjogIlBldHJ1c3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJlZGVrIiwKICAgICAgICAiU3VybmFtZSI6ICJMw7RyaW5jeiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGFydmV5IiwKICAgICAgICAiU3VybmFtZSI6ICJEYWxlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSYWxmIiwKICAgICAgICAiU3VybmFtZSI6ICJGcmV5dGFnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYWtlIiwKICAgICAgICAiU3VybmFtZSI6ICJBc3RsZXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmlhIEdyYXppYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FiYmF0aW5pIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYsdmI2pjbjNmGIiwKICAgICAgICAiU3VybmFtZSI6ICLZhduM2LHZh9in2LTZhduMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYXlsb3IiLAogICAgICAgICJTdXJuYW1lIjogIkNhcnR3cmlnaHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNocmlzdGluIiwKICAgICAgICAiU3VybmFtZSI6ICJLYXBwZWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9sbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTG90aHJhbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXNhYmVsbGEiLAogICAgICAgICJTdXJuYW1lIjogIk1jRG9uYWxkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPdMOhdmlvIiwKICAgICAgICAiU3VybmFtZSI6ICJQZXJlaXJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZWFoIiwKICAgICAgICAiU3VybmFtZSI6ICJGYWJlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGF2aWRzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCY0YDQsNC60LvQuNC5IiwKICAgICAgICAiU3VybmFtZSI6ICLQkNGE0L7MgdC90LjQvSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3Jpxb5ldm5payIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQm9nZGFub3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNvZHkiLAogICAgICAgICJTdXJuYW1lIjogIkhpbGRyZXRoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGlzaGEiLAogICAgICAgICJTdXJuYW1lIjogIkFsZWtzZWV2YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmxhZGljYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG9uZWplYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3NtYW4iLAogICAgICAgICJTdXJuYW1lIjogIlBldHRlcnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWEquaciCIsCiAgICAgICAgIlN1cm5hbWUiOiAi5qCX5bKhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCw7Zya3VyIiwKICAgICAgICAiU3VybmFtZSI6ICLDnm9ybcOzw7Bzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFcmljIiwKICAgICAgICAiU3VybmFtZSI6ICJQZXJzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCcmFoaW0iLAogICAgICAgICJTdXJuYW1lIjogInZhbiBkZXIgUGFzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaHJpc3RpbmUiLAogICAgICAgICJTdXJuYW1lIjogIk9sZXNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2FicmllbGEiLAogICAgICAgICJTdXJuYW1lIjogIkJpbGxpbmdzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWEiLAogICAgICAgICJTdXJuYW1lIjogIlN5dmVydHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGlkaWFuZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ3JvcXVldGFpZ25lIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGFtaWwiLAogICAgICAgICJTdXJuYW1lIjogIkRlc2hlcml5ZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthaiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3VybiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT21hciIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGV3b2xkZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2V3ZXJ5bmEiLAogICAgICAgICJTdXJuYW1lIjogIlBhd2xhayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFydGluIiwKICAgICAgICAiU3VybmFtZSI6ICJWb2JyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLb3JkaXRlIiwKICAgICAgICAiU3VybmFtZSI6ICJOaXZhbGxpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQZXRyIiwKICAgICAgICAiU3VybmFtZSI6ICLFoGzDqWdyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFaW5hciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFlemEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZsZXVyIiwKICAgICAgICAiU3VybmFtZSI6ICJMYWJlbGxlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbnRob255IiwKICAgICAgICAiU3VybmFtZSI6ICJHYXJ6YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVjaWthIiwKICAgICAgICAiU3VybmFtZSI6ICJSw6FjeiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxpemEiLAogICAgICAgICJTdXJuYW1lIjogIk5pbHNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhcmlzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUnl6YWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYWxsdW0iLAogICAgICAgICJTdXJuYW1lIjogIlRhbGJvdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmFkaWEiLAogICAgICAgICJTdXJuYW1lIjogIkJydW5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGF3biIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGV1c2luayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3nDtnJneSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG9sbmF5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguK3guLHguKjguKfguYLguIHguKfguLTguJciLAogICAgICAgICJTdXJuYW1lIjogIuC4iuC4ueC4meC4uOC4geC4tOC4iCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS3Jpc3Rpbm4iLAogICAgICAgICJTdXJuYW1lIjogIkFybmZpbm5zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOb25hIiwKICAgICAgICAiU3VybmFtZSI6ICJLb3IiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhYnJpw6tsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAidmFuIEVpamNrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKdWR5dGEiLAogICAgICAgICJTdXJuYW1lIjogIkJvcmtvd3NrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGF1cmV0dGUiLAogICAgICAgICJTdXJuYW1lIjogIkF1ZGV0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUZWthbWVpdG8iLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyaXVzIiwKICAgICAgICAiU3VybmFtZSI6ICJSZWl0YW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhdWxpbm8iLAogICAgICAgICJTdXJuYW1lIjogIkFsb25zbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmFzaWxpc2EiLAogICAgICAgICJTdXJuYW1lIjogIkFnYXBvdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkF6aW0iLAogICAgICAgICJTdXJuYW1lIjogIlRhbm5vdXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoYXduYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW1lcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGlyb2tvIiwKICAgICAgICAiU3VybmFtZSI6ICJZb3NoaWthd2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpZ3VyZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnJveCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2lvdmFuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2F2YWxjYW50aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3RlcGhlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWNJbnRvc2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJha3UiLAogICAgICAgICJTdXJuYW1lIjogIkRvaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2lnbmUiLAogICAgICAgICJTdXJuYW1lIjogIsOWYmVyZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTHVjYXMiLAogICAgICAgICJTdXJuYW1lIjogIkJhYWRlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmVsamtvIiwKICAgICAgICAiU3VybmFtZSI6ICJGaXNjaGlvbmUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRhbmd1eSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmlxdWllciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTMOqIiwKICAgICAgICAiU3VybmFtZSI6ICJUw7RuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHcmFjZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWRhbXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1lbHZpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSm9uc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4Liq4Li44Lia4Li44LiN4Liu4Lit4LiHIiwKICAgICAgICAiU3VybmFtZSI6ICLguJzguYjguK3guJnguJzguLHguJkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRlc2ZhbGVtIiwKICAgICAgICAiU3VybmFtZSI6ICJFcm1pYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIksgcmV0b2siLAogICAgICAgICJTdXJuYW1lIjogIlN1YmFpZXNoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQZXRyIiwKICAgICAgICAiU3VybmFtZSI6ICJCYWpnYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJhbGRhc3NhcnJlIiwKICAgICAgICAiU3VybmFtZSI6ICJDb3N0YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRHVrYXRoIiwKICAgICAgICAiU3VybmFtZSI6ICJFbGFzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQZXJlZ3JpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnVycm93ZXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hbHRlIiwKICAgICAgICAiU3VybmFtZSI6ICJCZXJnbHVuZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJlLVN3ZXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJNZWJyYWh0dSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGVqbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiWmFnb3JlYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFudWVsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9jaGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pY2hhbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUsWvxb5pxI1rYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm9yaGFsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUHVza8OhcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXZhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRXZzZWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGlyaW1vcmlua2FhcmkiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2VuamEiLAogICAgICAgICJTdXJuYW1lIjogIkt1dXNpc3RvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBcmPDoW5nZWwiLAogICAgICAgICJTdXJuYW1lIjogIk1hY8OtYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvc2VwaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnVuayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTXVzbGltIiwKICAgICAgICAiU3VybmFtZSI6ICJBYnJhbW92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWtrZWwiLAogICAgICAgICJTdXJuYW1lIjogIlNjaG1pZHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlp2amV6ZGFuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWF0acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXRlxZlpbmEiLAogICAgICAgICJTdXJuYW1lIjogIk1hbMOta292w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvdWtvIiwKICAgICAgICAiU3VybmFtZSI6ICJWaWxqYW5lbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUXVpbnRpbGlvIiwKICAgICAgICAiU3VybmFtZSI6ICJSaXZlcmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZyZW5uIiwKICAgICAgICAiU3VybmFtZSI6ICJHcnVubmlsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGFybGVzIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGFycGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuaDoOmbryIsCiAgICAgICAgIlN1cm5hbWUiOiAi5YCqIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSYXNtdXMiLAogICAgICAgICJTdXJuYW1lIjogIlZpbGxhZHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2YXYp9mG2K/Yp9mG2KciLAogICAgICAgICJTdXJuYW1lIjogIti52YTZiNuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJZ2dpIiwKICAgICAgICAiU3VybmFtZSI6ICJJZ2dpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJjZWxsIiwKICAgICAgICAiU3VybmFtZSI6ICJFcsO0c3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN6Y3plcGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJNYWpld3NraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlyb3PFgmF3IiwKICAgICAgICAiU3VybmFtZSI6ICJXYWxjemFrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXRlxZlpbmEiLAogICAgICAgICJTdXJuYW1lIjogIkxhemFyb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGlkZXlvIiwKICAgICAgICAiU3VybmFtZSI6ICJPb2d1c3VrdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5puJ5b2kIiwKICAgICAgICAiU3VybmFtZSI6ICLorZoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthd3RoYXIiLAogICAgICAgICJTdXJuYW1lIjogIkFiYWRpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHaWxtYXIiLAogICAgICAgICJTdXJuYW1lIjogInZhbiBkZXIgUmVzdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2F0ZWthIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFzYXlvIiwKICAgICAgICAiU3VybmFtZSI6ICJJbmFkYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6aaZIiwKICAgICAgICAiU3VybmFtZSI6ICLmnZHmnYkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRlbG1vIiwKICAgICAgICAiU3VybmFtZSI6ICJMb21iYXJkaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFydGluIiwKICAgICAgICAiU3VybmFtZSI6ICJKb3NlZnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2qnYp9mI2YjYsyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LfYp9mH2LHbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGhhbGlhIiwKICAgICAgICAiU3VybmFtZSI6ICJEZWxnYWRpbGxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIZWxlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW1hbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJ0aHVyIiwKICAgICAgICAiU3VybmFtZSI6ICJSaWJlaXJvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQl9C40L3QvtCy0LjQuSIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JjQsdGA0LDQs9C40LzQvtCyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLnt5EiLAogICAgICAgICJTdXJuYW1lIjogIua6nea3uyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2hlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGbG9yaWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJMb2V3ZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9zdcOpIiwKICAgICAgICAiU3VybmFtZSI6ICJCYWNhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaGFzYnVsYXQiLAogICAgICAgICJTdXJuYW1lIjogIkVsZGFya2hhbm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUb3lhIiwKICAgICAgICAiU3VybmFtZSI6ICJOb2xsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUXV5bmgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlV3ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmFnZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN0ZWZhbmllIiwKICAgICAgICAiU3VybmFtZSI6ICJXb3V0ZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJNdWRnZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmFuIiwKICAgICAgICAiU3VybmFtZSI6ICJI4buTIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZWJyZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUnVzc29tIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLogYYiLAogICAgICAgICJTdXJuYW1lIjogIumhpyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRW1ibGEiLAogICAgICAgICJTdXJuYW1lIjogIsOFc3Ryw7ZtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQb2x5Y2FycCIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2Fsa2luIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXRpbGRlIiwKICAgICAgICAiU3VybmFtZSI6ICJDYXJ2YWxobyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmEgaWQiLAogICAgICAgICJTdXJuYW1lIjogIlF1cmVzaGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhaXN5IiwKICAgICAgICAiU3VybmFtZSI6ICJUb3duc2VuZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR+G6pW0iLAogICAgICAgICJTdXJuYW1lIjogIkx1b25nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJM4buxdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG/DoG5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZWd1bmRpbm8iLAogICAgICAgICJTdXJuYW1lIjogIlF1aW50YW5pbGxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGV4YW5kZXIiLAogICAgICAgICJTdXJuYW1lIjogIld1cmZlbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGlhbWFuZGEiLAogICAgICAgICJTdXJuYW1lIjogIlByb3VkZm9vdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9ieW4iLAogICAgICAgICJTdXJuYW1lIjogIldhbGtlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWcOqbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2h1bmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmlzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFycm9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLb3JvdGgiLAogICAgICAgICJTdXJuYW1lIjogIk1hcnRvayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpbmV6ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2Jpb21hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYW4iLAogICAgICAgICJTdXJuYW1lIjogIkNoaXUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlR1dWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJLYXRhamlzdG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumbquWtkCIsCiAgICAgICAgIlN1cm5hbWUiOiAi5qCX5bKhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWtoYW4iLAogICAgICAgICJTdXJuYW1lIjogIlN1bHRhbm92aWNoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXJpbWEiLAogICAgICAgICJTdXJuYW1lIjogIkJlaWplcnNiZXJnZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuipqeWplSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6aauIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWaWN0b3IiLAogICAgICAgICJTdXJuYW1lIjogIldhbGtlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFuYWJ1IiwKICAgICAgICAiU3VybmFtZSI6ICJTYWthaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hpa2ltaXJpa2FzaGl0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJMdW5kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaGFsaW1hdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmF0dWtheWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguKrguLjguJnguKXguLTguJnguJ7guKMiLAogICAgICAgICJTdXJuYW1lIjogIuC4reC4uOC5iOC4meC4quC4siIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4Liq4Li44LiZ4LiH4LiZ4Lig4Lix4LiqIiwKICAgICAgICAiU3VybmFtZSI6ICLguITguLPguKrguLTguIfguKvguYwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkjhuqNpIiwKICAgICAgICAiU3VybmFtZSI6ICJIw6AiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktlZGFyIiwKICAgICAgICAiU3VybmFtZSI6ICJLYXR0YW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhqYWx0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnJlZGVyaWtzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuZHJlYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm9ycmlzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbWVlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmFkZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIllvdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTHUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumDgembryIsCiAgICAgICAgIlN1cm5hbWUiOiAi5pa5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJ0aGlqcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3Rva21hbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2h1c29vbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFzaWgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkfDrXNsw61uYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmVuc2TDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlbnJ5IiwKICAgICAgICAiU3VybmFtZSI6ICJCdXR0ZW5zaGF3IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGdWxnZW56aWEiLAogICAgICAgICJTdXJuYW1lIjogIlRvc2Nhbm8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1lbG9keSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUnVpeiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3JyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWRnYXJzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWxsZXIiLAogICAgICAgICJTdXJuYW1lIjogIkRpY2tzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVzdGhlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQm9jaGFyb3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaW5uaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3VzdGF2c3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6Iic5paHIiwKICAgICAgICAiU3VybmFtZSI6ICLnrKYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpbGphIiwKICAgICAgICAiU3VybmFtZSI6ICJWYWxsZXN0YWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdyYWxpIiwKICAgICAgICAiU3VybmFtZSI6ICJLYWxsYXRhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTXVoYW1tYWQiLAogICAgICAgICJTdXJuYW1lIjogIlN0b2tlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxvbmEiLAogICAgICAgICJTdXJuYW1lIjogIkJlZGXEjSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU+G7sSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTMOqIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdMOpcGhhbmllIiwKICAgICAgICAiU3VybmFtZSI6ICJSb2JpbGxhcmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9yaWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJkZSBCcmlzYXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuIiwKICAgICAgICAiU3VybmFtZSI6ICJDaCBlbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvYiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRG9ub3ZhbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5puJ5b2kIiwKICAgICAgICAiU3VybmFtZSI6ICLmvZgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItio2YfYstin2K8iLAogICAgICAgICJTdXJuYW1lIjogIti52YTYp9uM24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIsOWc3N1ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3XDsG5hc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXNzYXdhIiwKICAgICAgICAiU3VybmFtZSI6ICJCZXJoYW5lIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdXRhbW9mdXRlIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCT0LvQtdCxIiwKICAgICAgICAiU3VybmFtZSI6ICLQpNGR0LTQvtGA0L7QsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT2RpbGEiLAogICAgICAgICJTdXJuYW1lIjogIkFsYmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCX0LjQvdC+0LLQuNC5IiwKICAgICAgICAiU3VybmFtZSI6ICLQmtC+0LvRjNGG0L7QsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9kZXJpY2siLAogICAgICAgICJTdXJuYW1lIjogInZhbiBOb29ybG9vcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJpZ2l0dGEiLAogICAgICAgICJTdXJuYW1lIjogIkd5YXJtYXR5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGluc2h1dSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGFpa2F3YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT253dWRpd2UiLAogICAgICAgICJTdXJuYW1lIjogIk9rb2xpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZYW1hbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9qYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIldpc8WCYXdhIiwKICAgICAgICAiU3VybmFtZSI6ICJQaW90cm93c2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSaW5rYXNoaXp1bW9zaGlraWt1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktoYXZhemgiLAogICAgICAgICJTdXJuYW1lIjogIlZpemlyb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJsYW5kaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJQaW5hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICIgVWRheWwiLAogICAgICAgICJTdXJuYW1lIjogIlNoYWxob3ViIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGlzc2EiLAogICAgICAgICJTdXJuYW1lIjogIkZvcnNiZXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmt5HojLkiLAogICAgICAgICJTdXJuYW1lIjogIummrCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVkaGFuZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWJyYWhhbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JjQs9C90LDRgiIsCiAgICAgICAgIlN1cm5hbWUiOiAi0J/QvtC70Y/QutC+zIHQsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVpa2l0YXRha2lrYXJpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWxhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWlrZcWhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZW5vdmVmYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9zZW5zdGVpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5b2p6IqxIiwKICAgICAgICAiU3VybmFtZSI6ICLpnZLmsrwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFhcm9uIiwKICAgICAgICAiU3VybmFtZSI6ICJBbGxlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3R0byIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW5kZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1bGlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ3VuaGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuY2Vsb3RlIiwKICAgICAgICAiU3VybmFtZSI6ICJMw6ljdXllciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2FsbWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJTw6ZtdW5kc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHJhbnF1aWxsaW5vIiwKICAgICAgICAiU3VybmFtZSI6ICJDb250aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi56a55YehIiwKICAgICAgICAiU3VybmFtZSI6ICLorJ0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVpbGlkaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmluZGxheSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXJpayIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2ludGhlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmxhc3RhIiwKICAgICAgICAiU3VybmFtZSI6ICJIbGFkw61rb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JrQvtC90YHRgtCw0L3RgtC40L0iLAogICAgICAgICJTdXJuYW1lIjogItCd0LXQutGA0LDRgdC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkx1a3V0ZWt1c2hpa2ltaW1vIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZvcnRpbmJyYXMiLAogICAgICAgICJTdXJuYW1lIjogIlTDu2siCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJGYWJpbnlpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbm5hIiwKICAgICAgICAiU3VybmFtZSI6ICLFoG3DrWRvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGYWFzIiwKICAgICAgICAiU3VybmFtZSI6ICJ2YW4gU2FudHZvb3J0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIdWkiLAogICAgICAgICJTdXJuYW1lIjogIk5pZWxlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmFqYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnJvYmVyZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmF0dGEiLAogICAgICAgICJTdXJuYW1lIjogIlNoaXNoYW5pIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOxrDGoW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJOZ3V54buFbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWFsaXlhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGVvbmFyZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJhbmMgUGV0ZXIiLAogICAgICAgICJTdXJuYW1lIjogIlNsaXZuamFrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaXNoaXJpbmthIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthcmxhc3NhIiwKICAgICAgICAiU3VybmFtZSI6ICJNbmV0aWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJlbmlrbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJheWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhbWkiLAogICAgICAgICJTdXJuYW1lIjogIkJlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5laWwiLAogICAgICAgICJTdXJuYW1lIjogIkhlbmRlcnNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm9yYsOhbGEiLAogICAgICAgICJTdXJuYW1lIjogIkxlbmR2YWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhcmEiLAogICAgICAgICJTdXJuYW1lIjogIkdlcnN0ZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZlc2FoYXllIiwKICAgICAgICAiU3VybmFtZSI6ICJJZHJpcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFjb2IiLAogICAgICAgICJTdXJuYW1lIjogIldvb2xjb2NrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWEiLAogICAgICAgICJTdXJuYW1lIjogIlNpbmdoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlpKfovJ0iLAogICAgICAgICJTdXJuYW1lIjogIuWdguaIuCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWxzZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2xvZnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhvbGxpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFyc2hhbGwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvaGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJKZXJlbWlhc3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtYW50aGEiLAogICAgICAgICJTdXJuYW1lIjogIkFsZXhhbmRlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmFuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FuZWRhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFcm1pbmlqIiwKICAgICAgICAiU3VybmFtZSI6ICJCb3JuxaFlayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVsIiwKICAgICAgICAiU3VybmFtZSI6ICJDaHVhbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhaWdlIiwKICAgICAgICAiU3VybmFtZSI6ICJGb3JzdGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYWthZG9zaGlrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmsrvmnbAiLAogICAgICAgICJTdXJuYW1lIjogIueUsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTnUgZGFxIiwKICAgICAgICAiU3VybmFtZSI6ICJUcmV0aCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVOG6p24iLAogICAgICAgICJTdXJuYW1lIjogIlbDtSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmFuZ2VyIiwKICAgICAgICAiU3VybmFtZSI6ICJMYW1iZXJ0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFdWdlbmlvIiwKICAgICAgICAiU3VybmFtZSI6ICJJYWRhbnphIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWNvbGluZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmVwcGVzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuaDoOWmgiIsCiAgICAgICAgIlN1cm5hbWUiOiAi5b2tIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYXJsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGltYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5b2p5LmDIiwKICAgICAgICAiU3VybmFtZSI6ICLmnKzmn7MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJ1bWFpbGFoIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGFtb3VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlhKrlpKoiLAogICAgICAgICJTdXJuYW1lIjogIuWSjOWkmueUsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9lbWVyIiwKICAgICAgICAiU3VybmFtZSI6ICJ2YW4gIHQgV2VzdGVpbmRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYWxpdGEiLAogICAgICAgICJTdXJuYW1lIjogIkFraHRha2hhbm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYWFmIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJrdXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmxhIiwKICAgICAgICAiU3VybmFtZSI6ICJDYXhlbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2luZ2EiLAogICAgICAgICJTdXJuYW1lIjogIktvd2Fsc2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJTb3V6YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyaWFuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ29ycmVpYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiB4Li04LiV4LiV4Li04LiK4Lix4LiiIiwKICAgICAgICAiU3VybmFtZSI6ICLguKHguLjguKrguLTguIHguLDguKfguIfguKjguYwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhcnRtYW4iLAogICAgICAgICJTdXJuYW1lIjogIkFsbW9udGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkt1em1hIiwKICAgICAgICAiU3VybmFtZSI6ICJTb2tvbG92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFdmEiLAogICAgICAgICJTdXJuYW1lIjogIlB0w6HEjWtvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOZ+G7jWMiLAogICAgICAgICJTdXJuYW1lIjogIlRy4bqnbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmFzc28iLAogICAgICAgICJTdXJuYW1lIjogIkNhcG9uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOb3ZlbGxhIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWxhbm8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmlsZW1vbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWZhbWVmdW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJDaGlhZ296aWVtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOeWRpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTG96YW5vIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJD4bqpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmdoacOqbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmnFmcOtIiwKICAgICAgICAiU3VybmFtZSI6ICJaYWTDoWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV0aGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJIdW1waHJleSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUXVpbnppbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmVycmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklza2FuZGVyIiwKICAgICAgICAiU3VybmFtZSI6ICJSZXBpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGV0ZXIiLAogICAgICAgICJTdXJuYW1lIjogIkplcHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyZ3LDqXQiLAogICAgICAgICJTdXJuYW1lIjogIsOecsOhaW5zZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXZhbHUiLAogICAgICAgICJTdXJuYW1lIjogIkthcmxzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFyaXJpa2lzaGl0YWt1ZnUiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS29yYWxqa2EiLAogICAgICAgICJTdXJuYW1lIjogIkJyYWRlbGoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCg0L7QtNC40L7QvSIsCiAgICAgICAgIlN1cm5hbWUiOiAi0KHRg9GF0L7RgNGD0LrQvtCyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmooXlrZAiLAogICAgICAgICJTdXJuYW1lIjogIuilv+a1piIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGFsaXRhIiwKICAgICAgICAiU3VybmFtZSI6ICJLYWRpZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRldmxpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGVra2VydCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmFmYWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJHb21lcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5hcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2plbmdzdMO4IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmloflrZAiLAogICAgICAgICJTdXJuYW1lIjogIumdkuafsyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU8OzbGJvcmciLAogICAgICAgICJTdXJuYW1lIjogIkd1bm5hcnNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNZWRoYW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJNZWRoYW5pZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXZlbHluIiwKICAgICAgICAiU3VybmFtZSI6ICJHYXZyaWxvdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFkaWFtIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWNoYWVsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlsI/nmb7lkIgiLAogICAgICAgICJTdXJuYW1lIjogIua1nOW5syIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTW9yYXRoIiwKICAgICAgICAiU3VybmFtZSI6ICJNb2N0b3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4geC4tOC4leC4leC4tOC4nuC4seC4kuC4meC5jCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lih4Liw4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKZWxlbmEiLAogICAgICAgICJTdXJuYW1lIjogIkphZ2VzYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuW6reeiqSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6JabIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWtpaGlzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFyYWd1Y2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYWJyaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJLdW56ZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5qYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSnVuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSHV54buBbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQsO5aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2l0dGkiLAogICAgICAgICJTdXJuYW1lIjogIkR1ZMOhcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmVzc2UiLAogICAgICAgICJTdXJuYW1lIjogIlN0aXJsaW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJXZW4iLAogICAgICAgICJTdXJuYW1lIjogIllhbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9yaWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJKYXJkaW5lIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUb20iLAogICAgICAgICJTdXJuYW1lIjogIkJvb3RoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaWxqZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmluZ3N0YWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlYWxkbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVWRpbmVzZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGhpbGlwIiwKICAgICAgICAiU3VybmFtZSI6ICJOaWVsc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb2VsIiwKICAgICAgICAiU3VybmFtZSI6ICJIYXN1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLZWxsaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9kcmlndWV6IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbXkiLAogICAgICAgICJTdXJuYW1lIjogIkNyYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5hZG8iLAogICAgICAgICJTdXJuYW1lIjogIlByb3RpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkR1IiwKICAgICAgICAiU3VybmFtZSI6ICJOZ3V54buFbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2FuZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JvQtdC+0L3QuNC0IiwKICAgICAgICAiU3VybmFtZSI6ICLQkdC10LfRgNGDzIHQutC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlVmZm8iLAogICAgICAgICJTdXJuYW1lIjogIlphcmFnYW1iYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmFmaWsiLAogICAgICAgICJTdXJuYW1lIjogIktvZW1hbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2jGoW4iLAogICAgICAgICJTdXJuYW1lIjogIkxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYqNmH2KfYsdqpIiwKICAgICAgICAiU3VybmFtZSI6ICLYqtin2KzbjNqpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmRlcnMiLAogICAgICAgICJTdXJuYW1lIjogIktvY2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFrdWxpbmEiLAogICAgICAgICJTdXJuYW1lIjogIkVyc2hvdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhbmllbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiWmFocmFkbsOtayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2hhaXJ5IiwKICAgICAgICAiU3VybmFtZSI6ICJIYWRkYWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItmB2LHYstuM2YYiLAogICAgICAgICJTdXJuYW1lIjogIti02KfZh9mG2K/ZhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmVyaW5kIiwKICAgICAgICAiU3VybmFtZSI6ICJNw6F0aMOpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFcmljayIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFycm9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGV4YW5kZXIiLAogICAgICAgICJTdXJuYW1lIjogIktyaXN0aWFuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXVyZWVuIiwKICAgICAgICAiU3VybmFtZSI6ICJKYWNxdWVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGxlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiw5PDsGluc2TDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvdWljaGlyb3UiLAogICAgICAgICJTdXJuYW1lIjogIkF6dW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW5zaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJMYW5nZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JPQsNCy0YDQuNC70LAiLAogICAgICAgICJTdXJuYW1lIjogItCT0L7Qu9C+0LLQsMyB0L3QvtCyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMaWJlcmEgTWFyaWEiLAogICAgICAgICJTdXJuYW1lIjogIlBpbnRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXJsbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFyacWhacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUb2tpbWltb3Rha3UiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2lnaHZhdHVyIiwKICAgICAgICAiU3VybmFtZSI6ICJBdcOwdW5zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOZWxtYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFhdGFpbmVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYotix24zZhiIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LTYp9mH2K/YqNin2LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphc21pbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ3JhaWciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRpdHVzeiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3rDtGzDtnNpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZWJhc3RpYW5vIiwKICAgICAgICAiU3VybmFtZSI6ICJCZW5ldmVudGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZydXRvcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiUml2ZXJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNb29zIiwKICAgICAgICAiU3VybmFtZSI6ICJ2YW4gVnVnaHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmdlaXIiLAogICAgICAgICJTdXJuYW1lIjogIk90dMOzc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWtlZGluYWNodWt3dSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWNoZXpvbmFjaHVrd3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhvc2hpeW8iLAogICAgICAgICJTdXJuYW1lIjogIllhbWFuYWthIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaWt1eW8iLAogICAgICAgICJTdXJuYW1lIjogIk9nYXRhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGlud2VtbWEiLAogICAgICAgICJTdXJuYW1lIjogIkVsZXdlY2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaWfDvsOzcmEiLAogICAgICAgICJTdXJuYW1lIjogIkLDtsOwdmFyc2TDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJlZ2EiLAogICAgICAgICJTdXJuYW1lIjogIktydWdlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaZXppZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmF0dWtheWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYotiy2KfYr9mHIiwKICAgICAgICAiU3VybmFtZSI6ICLZhdit2LHYqNuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFZGVsbWlyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG9ycmVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIdWkiLAogICAgICAgICJTdXJuYW1lIjogIkNodW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYWkiLAogICAgICAgICJTdXJuYW1lIjogIkt1bmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdyYWNpZWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJTbWl0aCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ3Jlc2NlbnQiLAogICAgICAgICJTdXJuYW1lIjogIkJlYXVwcsOpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKdWxpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9zc2lnbm9sIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBaXJpIiwKICAgICAgICAiU3VybmFtZSI6ICJNaXlhYmFyYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hpIiwKICAgICAgICAiU3VybmFtZSI6ICJXYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmlqYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWt1bGnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3JlZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2hhdyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2ViYXN0aWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJIdXNieSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVsaW5kYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmxvbXF2aXN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBcmxldHRlIiwKICAgICAgICAiU3VybmFtZSI6ICJBdXN0aW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRhZHppbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm93YWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmN1cyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJ2aWRzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNdXJyb24iLAogICAgICAgICJTdXJuYW1lIjogIk1hY2xlb2QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFycm9uIiwKICAgICAgICAiU3VybmFtZSI6ICJBaXRrZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJIZXJ0em9nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJbmVzIiwKICAgICAgICAiU3VybmFtZSI6ICJCcnVubyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmlyayIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWFyc2tvZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT2xpdmVyaW8iLAogICAgICAgICJTdXJuYW1lIjogIk1lemEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRpbmthIiwKICAgICAgICAiU3VybmFtZSI6ICJCYcSNacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWtpY2EiLAogICAgICAgICJTdXJuYW1lIjogIsW9aXZrb3ZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktvbnN0YW5jamEiLAogICAgICAgICJTdXJuYW1lIjogIldhbGN6YWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4geC4tOC4leC4leC4tOC4nuC4seC4l+C4mOC5jCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LmA4LiJ4Lil4Lii4LiC4Li44LiZIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEaXR0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVyZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6IKy5ZiJIiwKICAgICAgICAiU3VybmFtZSI6ICLpuqUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRlYm9yYWgiLAogICAgICAgICJTdXJuYW1lIjogIlNhbXVlbHNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hbGlrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FkeXJvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVsbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGlnaHRmb290IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXkiLAogICAgICAgICJTdXJuYW1lIjogIklzYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGV3b2xkZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiWW9oYW5uZXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdpbGx5IiwKICAgICAgICAiU3VybmFtZSI6ICJHYW1taWRnZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGVwaWNhIiwKICAgICAgICAiU3VybmFtZSI6ICJKYW5pxI1pamV2acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWR1a3dlIiwKICAgICAgICAiU3VybmFtZSI6ICJDaGllZm8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJla2J1emFyIiwKICAgICAgICAiU3VybmFtZSI6ICJLYWR5cm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYXVyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR29uY2FsdmVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHcmV0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSMOla2Fuc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFydGluIiwKICAgICAgICAiU3VybmFtZSI6ICJUb2JpYXNzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlTDoW0iLAogICAgICAgICJTdXJuYW1lIjogIlBow7luZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWF0dGhpYXMiLAogICAgICAgICJTdXJuYW1lIjogIlBhcHN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmuIUiLAogICAgICAgICJTdXJuYW1lIjogIuWFieWztiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJrYWRpdXN6IiwKICAgICAgICAiU3VybmFtZSI6ICJTYXdpY2tpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMw6JtIiwKICAgICAgICAiU3VybmFtZSI6ICJU4bqhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbm5hIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWx2YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFsY29sbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHVnaGVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTb3BoaWEiLAogICAgICAgICJTdXJuYW1lIjogIkFsbWVpZGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhZmFlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG9sbG93YXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvc2giLAogICAgICAgICJTdXJuYW1lIjogIkdpbGJlcnQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktpc2FuZXQiLAogICAgICAgICJTdXJuYW1lIjogIlRld2VsZGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlb250aW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJOYXZhcnJldGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkluZ8O+w7NyIiwKICAgICAgICAiU3VybmFtZSI6ICJPZGRzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaCBLYWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJMYWdnYWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJBbGxlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWJkb2VsIiwKICAgICAgICAiU3VybmFtZSI6ICJWZWVuZW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQl9C10LzRhNC40YDQsCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JLQvtGA0L7QvdC+0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWl5YWtvIiwKICAgICAgICAiU3VybmFtZSI6ICJBcmFpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYWxpbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFzaWgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJ1bmthIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXRzdW9rYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUnlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FybHNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pY29kZW1vIiwKICAgICAgICAiU3VybmFtZSI6ICJPbGl2w6FyZXoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlLFr8W+ZW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJaaWttdW5kb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRW1pbGllIiwKICAgICAgICAiU3VybmFtZSI6ICJaZWViIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDb25nIiwKICAgICAgICAiU3VybmFtZSI6ICJIc3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4l+C4p+C4meC4iuC4seC4oiIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Liq4Liy4Lii4Liq4Li44Lin4Lij4Lij4LiTIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEaWxhcmEiLAogICAgICAgICJTdXJuYW1lIjogIkhlbnJpa3Nzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuaBtSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6Jy35bedIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQYXZlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm9zZWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvdW1hIiwKICAgICAgICAiU3VybmFtZSI6ICJJc2hpa2F3YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2FybWVuIiwKICAgICAgICAiU3VybmFtZSI6ICJSYWRpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRlcmV6YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWx0bWFubm92w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9mb2RpbGUiLAogICAgICAgICJTdXJuYW1lIjogIkNoaWJ1em8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItmF2YfYsdmG2YjYtCIsCiAgICAgICAgIlN1cm5hbWUiOiAi2YbYp9mB24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktyZXRvcmciLAogICAgICAgICJTdXJuYW1lIjogIkxpbW1yaWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hbWVydG8iLAogICAgICAgICJTdXJuYW1lIjogIkNvcmRvdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJ1YnkiLAogICAgICAgICJTdXJuYW1lIjogIlN0cmFuZ3dheXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvZWwiLAogICAgICAgICJTdXJuYW1lIjogIkZvcmxvbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRyeWdndmkiLAogICAgICAgICJTdXJuYW1lIjogIkJhbGR1cnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhZG9tw61yIiwKICAgICAgICAiU3VybmFtZSI6ICJQb2tvcm7DvSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5hYmVsIiwKICAgICAgICAiU3VybmFtZSI6ICJDYXphcmVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMb3VpcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWlsbHMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlppeWF1ZGRpIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXJzdWtvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmFka2EiLAogICAgICAgICJTdXJuYW1lIjogIkJlZG7DocWZb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2h1YW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGdWtpIiwKICAgICAgICAiU3VybmFtZSI6ICJPb3RzdWthIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSYSBpZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9yY29zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEeWxhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FuZGxlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWJhbmVmbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpYnVlemUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktvbmciLAogICAgICAgICJTdXJuYW1lIjogIksgdW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlrrbojJwiLAogICAgICAgICJTdXJuYW1lIjogIuautSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmFyYmFyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWNrZXJtYW5uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdW1tZXIiLAogICAgICAgICJTdXJuYW1lIjogIkthZXBwZWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsZXhhbmRyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGFobCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5uZS1MaXNlIiwKICAgICAgICAiU3VybmFtZSI6ICJPbGVzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIiBBdGlrYWgiLAogICAgICAgICJTdXJuYW1lIjogIlNoYW1vdW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5rZW1ha29sYW0iLAogICAgICAgICJTdXJuYW1lIjogIk9saXNhbnVnbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9zZXBoIiwKICAgICAgICAiU3VybmFtZSI6ICJGcmFua2xpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU29maWEiLAogICAgICAgICJTdXJuYW1lIjogIk1jR2FydmllIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpamFua2EiLAogICAgICAgICJTdXJuYW1lIjogIkZlcsSNZWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdXJlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2F0ZXJzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHdcOwYmrDtnJnIiwKICAgICAgICAiU3VybmFtZSI6ICJTdmVycmlzZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGV4aSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FtcGJlbGwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklmZXNpbmFjaGkiLAogICAgICAgICJTdXJuYW1lIjogIkNoaXdldGVsdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2lmYWgiLAogICAgICAgICJTdXJuYW1lIjogIkNoYW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumbquWtkCIsCiAgICAgICAgIlN1cm5hbWUiOiAi55m+5LqVIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCb2d1bWlsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFyacWhacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmtrwiLAogICAgICAgICJTdXJuYW1lIjogIuWQiemWkyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JLQsNC70LXQvdGC0LjQvSIsCiAgICAgICAgIlN1cm5hbWUiOiAi0KPRgdC/0LXMgdC90YHQutC40LkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvcnkiLAogICAgICAgICJTdXJuYW1lIjogIkJlbmRyb2R0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSZW5hdGEiLAogICAgICAgICJTdXJuYW1lIjogIkjDoWprb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2Vpa28iLAogICAgICAgICJTdXJuYW1lIjogIllhbWFuYWthIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJaXZhcmkiLAogICAgICAgICJTdXJuYW1lIjogIlJhaXRhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNb2x0YXMiLAogICAgICAgICJTdXJuYW1lIjogIkJlcmdtYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRyaXN0YW4iLAogICAgICAgICJTdXJuYW1lIjogIlJvYmlsbGFyZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5q2j55S3IiwKICAgICAgICAiU3VybmFtZSI6ICLnm7jmqKEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItiu2LTYp9uM2KfYsSIsCiAgICAgICAgIlN1cm5hbWUiOiAi2KrZgtmI2KfbjNuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbmVhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiRXNjYW1pbGxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaXJzdGVuIiwKICAgICAgICAiU3VybmFtZSI6ICJPbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2lib3IiLAogICAgICAgICJTdXJuYW1lIjogIlphasSFYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWtzZWwiLAogICAgICAgICJTdXJuYW1lIjogIlNqYWFzdGFkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLb25saSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVnJhZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWJlYmEiLAogICAgICAgICJTdXJuYW1lIjogIkFsaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRG9lZGUiLAogICAgICAgICJTdXJuYW1lIjogIlNjaGV2ZXJzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYXJhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2lsbGlhbXNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVyBBbmFyIiwKICAgICAgICAiU3VybmFtZSI6ICJDYXhlbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFuYW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJLYW5mZiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyaWUiLAogICAgICAgICJTdXJuYW1lIjogIktyaXN0aWFuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWtpdGEiLAogICAgICAgICJTdXJuYW1lIjogIktpcmlsbG92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJUdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2lkYW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJTYW11ZWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFicmhhIiwKICAgICAgICAiU3VybmFtZSI6ICJCZXJoYW5lIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWthcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2lydGgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkXDsHZhbGTDrW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJCw7bDsHZhcnNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYXNoYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRG9jaGVydHkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvbmphIiwKICAgICAgICAiU3VybmFtZSI6ICJIZW50aW5lbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVsaWUiLAogICAgICAgICJTdXJuYW1lIjogIkplbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGhvZWJlIiwKICAgICAgICAiU3VybmFtZSI6ICJQb2xpbmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsaXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJNeWxseWzDpCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGl1c3oiLAogICAgICAgICJTdXJuYW1lIjogIk7DqW1ldGgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9iaWFsbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWZlc2luYWNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmFsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWluYXJzZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJrYWRpdXN6IiwKICAgICAgICAiU3VybmFtZSI6ICJCb3Jrb3dza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvaGFubmEiLAogICAgICAgICJTdXJuYW1lIjogIlRyYXVnb3R0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWNhcmlhIiwKICAgICAgICAiU3VybmFtZSI6ICJUcmVudGlubyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9obiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWdlZGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktsb25pbWlyIiwKICAgICAgICAiU3VybmFtZSI6ICJQZWppxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhbmRyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGZlaWZlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5b635L6dIiwKICAgICAgICAiU3VybmFtZSI6ICLlvLUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9saXZpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQr9GA0L7Qv9C+0LvQuiIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JvQvtCz0LjQvdC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthcmxhIiwKICAgICAgICAiU3VybmFtZSI6ICJLbG9idcSNYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktyeXNpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU29rb8WCb3dza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItmF2YbZiNqG2YfYsSIsCiAgICAgICAgIlN1cm5hbWUiOiAi2qnYsduM2YXbjCDYstin2K/ZhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFkcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU29sYmVyZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FpZGFsaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpY2hpZ292IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLIHRyZWxhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFsb2siCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkluYXlhIiwKICAgICAgICAiU3VybmFtZSI6ICJHdWlyZ3VpcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5a626YqYIiwKICAgICAgICAiU3VybmFtZSI6ICLlvpAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJyb29rZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG9wa2lucyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVsaWEiLAogICAgICAgICJTdXJuYW1lIjogIkViZXJzYmFjaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU8OmdmFyIiwKICAgICAgICAiU3VybmFtZSI6ICJPZGRnZWlyc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmFpbGV5IiwKICAgICAgICAiU3VybmFtZSI6ICJCb3lsZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxhbWJlayIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGltYXlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmlzYWtvIiwKICAgICAgICAiU3VybmFtZSI6ICJPZ2FzYWhhcmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZhYmlhbm8iLAogICAgICAgICJTdXJuYW1lIjogIkJhcmVzZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGlld2FuIiwKICAgICAgICAiU3VybmFtZSI6ICJUZXNtaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVG9iaWFzIiwKICAgICAgICAiU3VybmFtZSI6ICLDmHN0cmVtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaYWZpciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmF0YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9uaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2Nhc2lvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQkNC70LjRgdCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQrtGB0YPQv9C+0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JXQs9C+0YAiLAogICAgICAgICJTdXJuYW1lIjogItCf0YDQvtGF0L7RgNC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpZ2bDunMiLAogICAgICAgICJTdXJuYW1lIjogIkFybm11bmRzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTb2ZpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FuZGdyZWVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLpm4XokLEiLAogICAgICAgICJTdXJuYW1lIjogIum7jiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2lsamUiLAogICAgICAgICJTdXJuYW1lIjogIkFhcnNldGgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJvdGUiLAogICAgICAgICJTdXJuYW1lIjogIkhldXZlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0J/QsNCy0LXQuyIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JzRg9GA0LDQstGM0ZHQsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGF1cml0cyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGVucmlrc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW5ubyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmlrdWxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmdlbGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2VsZXpueW92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5pS/5a6PIiwKICAgICAgICAiU3VybmFtZSI6ICLmrrUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlR5cmEiLAogICAgICAgICJTdXJuYW1lIjogIkF1bmUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNob3ciLAogICAgICAgICJTdXJuYW1lIjogIkvDqiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyb8WhIiwKICAgICAgICAiU3VybmFtZSI6ICJLYXJsw61rIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLDnsOzcsOzbGZ1ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiw4FzdMO+w7Nyc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JrQu9Cw0LLQtNC40Y8iLAogICAgICAgICJTdXJuYW1lIjogItCV0LLQtNC+0LrQuNC80L7QstCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlrrblhIAiLAogICAgICAgICJTdXJuYW1lIjogIuW7liIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJhYmVsbGEiLAogICAgICAgICJTdXJuYW1lIjogIkJvbGdlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmFzaWgiLAogICAgICAgICJTdXJuYW1lIjogIlRlc21pIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYWtpdG8iLAogICAgICAgICJTdXJuYW1lIjogIktpc2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJTYW5keW1hbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2lyemllIiwKICAgICAgICAiU3VybmFtZSI6ICJPbG1vcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRG9uYXQiLAogICAgICAgICJTdXJuYW1lIjogIktvesWCb3dza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIll1bCIsCiAgICAgICAgIlN1cm5hbWUiOiAiWcO8IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYqtix2YTYp9mGIiwKICAgICAgICAiU3VybmFtZSI6ICLYsdin2LLbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmFlZW1hIiwKICAgICAgICAiU3VybmFtZSI6ICJUb3VtYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGFyayIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHVuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWZlb21hIiwKICAgICAgICAiU3VybmFtZSI6ICJOa2VtYWtvbmFtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJCYWJpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsZXhzYW5kcmEiLAogICAgICAgICJTdXJuYW1lIjogIkrDtm5zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaHVtaWQiLAogICAgICAgICJTdXJuYW1lIjogIlBhbm92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5pig5qKFIiwKICAgICAgICAiU3VybmFtZSI6ICLlrZ8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsYmluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWduYXR5ZXZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFZ3llZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS8OhZMOhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3BvbWVua28iLAogICAgICAgICJTdXJuYW1lIjogIkJsYcW+ZXZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsaXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJSb2JlbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2lydWthIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pc2F5byIsCiAgICAgICAgIlN1cm5hbWUiOiAiWW9zaGlpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYXLEsWsiLAogICAgICAgICJTdXJuYW1lIjogIlJvb2lqYWtrZXJzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJ0aW4iLAogICAgICAgICJTdXJuYW1lIjogIlDFoWVuacSNa2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJlbmVkeWt0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRMSFYnJvd3NraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3Vhbi15aW4iLAogICAgICAgICJTdXJuYW1lIjogIlR1bmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmN1cyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU21pdGgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIllvYmFjaGkiLAogICAgICAgICJTdXJuYW1lIjogIkF6dWJ1aWtlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGlhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSXZlcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9zaHVhIiwKICAgICAgICAiU3VybmFtZSI6ICJQYWluZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTW9vcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2FscmF2ZW5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaXR0aSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS292w6FjaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTHlkaWEiLAogICAgICAgICJTdXJuYW1lIjogIk1hbm4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaWRpbW1hIiwKICAgICAgICAiU3VybmFtZSI6ICJDaGlkYWx1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNZWxpdGEiLAogICAgICAgICJTdXJuYW1lIjogIsSMZWgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlZGRhIiwKICAgICAgICAiU3VybmFtZSI6ICJCcmV2aWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxvd2VsbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2luZ3JhcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT2xhIiwKICAgICAgICAiU3VybmFtZSI6ICJFcmlrc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWYXNqYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnJhxI1hbm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbWFuZGEiLAogICAgICAgICJTdXJuYW1lIjogIkRhbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0J/QsNGC0YDQuNGG0LjRjyIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JzQuNGA0L7QvdC+0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm9kbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGFiaW5naSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTMOpbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmFneSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRG9taW5pYyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVsYW5zb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBvcnBoeXJ5IiwKICAgICAgICAiU3VybmFtZSI6ICJGZWRvcm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWxsZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVsOhcmFkaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGFzaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3VtaWFsYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3VtYWl5YWgiLAogICAgICAgICJTdXJuYW1lIjogIk5haWZlaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ3VuZGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJMb27EjWFyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWaXR0b3JlIiwKICAgICAgICAiU3VybmFtZSI6ICJMaSBGb250aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFqa2VuIiwKICAgICAgICAiU3VybmFtZSI6ICJMdW5kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXlvIiwKICAgICAgICAiU3VybmFtZSI6ICJZYW1hemFraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGVtcGkiLAogICAgICAgICJTdXJuYW1lIjogIlBha2FyaW5lbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVkeXRhIiwKICAgICAgICAiU3VybmFtZSI6ICJXb8W6bmlhayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9obiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTMO4dnN0csO4bSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlycmluIiwKICAgICAgICAiU3VybmFtZSI6ICJUaG9tcHNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFydGluZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWFzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNocmlzdGllIiwKICAgICAgICAiU3VybmFtZSI6ICJNb3JnYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuZHLDqSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGludG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvc3dpdGhhIiwKICAgICAgICAiU3VybmFtZSI6ICJLb2xhxI1rbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFkaXNvbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FuY2hlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXZpY2EiLAogICAgICAgICJTdXJuYW1lIjogIlZ1a2VsacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpdXMiLAogICAgICAgICJTdXJuYW1lIjogIkd1c3RhdnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkt1cm4iLAogICAgICAgICJTdXJuYW1lIjogIktlcnBhY2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktpa3VubyIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGFpam91IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZb25hcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiR295dGlvbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGVhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVuc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGlnZXRhIiwKICAgICAgICAiU3VybmFtZSI6ICJTYWl0b3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuaMr+e/lCIsCiAgICAgICAgIlN1cm5hbWUiOiAi6JWtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCcm9va2UiLAogICAgICAgICJTdXJuYW1lIjogIktpdGFtdXJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKdWxpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGV0ZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNlYmFzdGlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmllYmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUaGkiLAogICAgICAgICJTdXJuYW1lIjogIkjhu5MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpZHlhIiwKICAgICAgICAiU3VybmFtZSI6ICJBbGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFyY2VsaWEiLAogICAgICAgICJTdXJuYW1lIjogIlZlcmdhcmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlc3NhIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN0ZWlubiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGF1a3Nzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRldmluIiwKICAgICAgICAiU3VybmFtZSI6ICJXYWxsaW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5vcnJpcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmF5bW9uZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGlsbHkiLAogICAgICAgICJTdXJuYW1lIjogIkt5bGxpbmdzdGFkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWNvbGUiLAogICAgICAgICJTdXJuYW1lIjogIk1hY2RvbmFsZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlra2VsIiwKICAgICAgICAiU3VybmFtZSI6ICJMaWVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKaWUiLAogICAgICAgICJTdXJuYW1lIjogIlRzb3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5vbGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJVcmVuYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFtZXMiLAogICAgICAgICJTdXJuYW1lIjogIk1jSW50eXJlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguKrguLjguKLguLTguYjguIfguKvguJfguLHguKIiLAogICAgICAgICJTdXJuYW1lIjogIuC4l+C5ieC4suC4p+C4meC4tOC4pSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0KHQtdC80LXQvSIsCiAgICAgICAgIlN1cm5hbWUiOiAi0J7Qt9C10YDQvtCyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW4iLAogICAgICAgICJTdXJuYW1lIjogIkRyZXNkbmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFcm5lc3QiLAogICAgICAgICJTdXJuYW1lIjogIkxhZGVyb3V0ZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGVvbmlsZGUiLAogICAgICAgICJTdXJuYW1lIjogIlBvbmNlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJHYXpkw61rb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2VhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2VubmVybGV5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb3NodWEiLAogICAgICAgICJTdXJuYW1lIjogIlR1cm5idWxsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWxsaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJBbmdlbG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIua3keaFpyIsCiAgICAgICAgIlN1cm5hbWUiOiAi6JCsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaYWtpeWEiLAogICAgICAgICJTdXJuYW1lIjogIktpc2hpZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5va2FyaW5rdXRha2EiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2luZ2EiLAogICAgICAgICJTdXJuYW1lIjogIlNjaG1pdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFyb23DrXIiLAogICAgICAgICJTdXJuYW1lIjogIk1hcsWhw6FsZWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxvayIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHNpZWgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZyYW5jZXNjYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFycGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGaWxpcCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFyY2hldHRpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmRhcmJlayIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJzYW51a2F5ZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpbmEiLAogICAgICAgICJTdXJuYW1lIjogIkxhbmdzZXRoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLIGVobGV5ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWkgUW9naCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmnFoWVzbGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJNYXRpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNocmlzdGluZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FydmFqYWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNwZW5jZXIiLAogICAgICAgICJTdXJuYW1lIjogIkxsb3lkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbWlsaWUiLAogICAgICAgICJTdXJuYW1lIjogIkrDuHJnZW5zZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdvcmFuIiwKICAgICAgICAiU3VybmFtZSI6ICLEhm9zacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXRva2FhcmljaGlrYWFyaWtpa2EiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHJpbmV0dGUiLAogICAgICAgICJTdXJuYW1lIjogIk1hcmNpbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JLQsNC70LXRgNC40LkiLAogICAgICAgICJTdXJuYW1lIjogItCQ0YDRgtGR0LzQvtCyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNacWhZWwiLAogICAgICAgICJTdXJuYW1lIjogIkFsYmlhbmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhZG9zbGF2YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWlja292w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcnRoYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFyc2hhbGwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxvZXQiLAogICAgICAgICJTdXJuYW1lIjogIkJ1aWpzc2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNodW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJOZ8O0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYXlsb3IiLAogICAgICAgICJTdXJuYW1lIjogIkRpYXoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkd1byIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHPDvGVoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaXJpa3VzaGlmdXRhIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkzhu51pIiwKICAgICAgICAiU3VybmFtZSI6ICJOZ3V54buFbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTW9yYXRoIiwKICAgICAgICAiU3VybmFtZSI6ICJOaXpoaXNodCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyaXlvIiwKICAgICAgICAiU3VybmFtZSI6ICJBb3lhbWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlpkZW7Em2siLAogICAgICAgICJTdXJuYW1lIjogIkNoYWxvdXBrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmFzaGlkYWgiLAogICAgICAgICJTdXJuYW1lIjogIkFiYm91ZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGFydG1hbm4iLAogICAgICAgICJTdXJuYW1lIjogIkrDs25zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb2hhbm5lcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmllbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9zZWZpbmUiLAogICAgICAgICJTdXJuYW1lIjogIkVuZ2Vsc3RhZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVsaXNrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmF6YWthcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2q/ZiNiv2LHYsiIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LDYp9qp2LHbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGVucnkiLAogICAgICAgICJTdXJuYW1lIjogIk9saXZlcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFudGUiLAogICAgICAgICJTdXJuYW1lIjogIlZ1a2VsacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBc21hcmEiLAogICAgICAgICJTdXJuYW1lIjogIlNpbW9uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYXJsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2rDtmJlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkl2ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWJyacWhaW1vdmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmlua2FzaGlmdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguJTguJnguLjguKfguLHguKgiLAogICAgICAgICJTdXJuYW1lIjogIuC5gOC4q+C4o+C4teC4ouC4jeC4iOC4tOC4meC4lOC4siIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFrYXNoaXNoaWZ1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhaWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJNw7hsbGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLnj67nkYQiLAogICAgICAgICJTdXJuYW1lIjogIumZuCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hpcmx5IiwKICAgICAgICAiU3VybmFtZSI6ICJBcm1hcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVrbGUiLAogICAgICAgICJTdXJuYW1lIjogIkZpbG1vbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3R1dG9kaWxpY2h1a3d1IiwKICAgICAgICAiU3VybmFtZSI6ICJTb3B1bHVjaHVrd3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItmF2YfYsdiy2KfYryIsCiAgICAgICAgIlN1cm5hbWUiOiAi2K7Yp9mG2Ycg2LPYp9iyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKZW5ldGUiLAogICAgICAgICJTdXJuYW1lIjogIk9ud3VlbWVsaWUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuW/l+WujyIsCiAgICAgICAgIlN1cm5hbWUiOiAi6IOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGJlcnQiLAogICAgICAgICJTdXJuYW1lIjogIlRha8OhY2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRyw6FuZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVHLhu4tuaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiE4LiHIiwKICAgICAgICAiU3VybmFtZSI6ICLguKfguLTguIrguLHguKLguKPguLHguKHguKLguYwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhcnJ5IiwKICAgICAgICAiU3VybmFtZSI6ICJEb2NoZXJ0eSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUml0dmEiLAogICAgICAgICJTdXJuYW1lIjogIkplaGtpbmVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYmR1bC1NdSBpZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVzdGFmYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmVzdXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJQdWVudGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkogRXZhbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2FubmlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDdW5pYmFsZG8iLAogICAgICAgICJTdXJuYW1lIjogIlpheWFzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBcmFuZMO6IiwKICAgICAgICAiU3VybmFtZSI6ICJSYW3Ds24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1zdGlzbGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJTaHViaW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpbXJldCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2ltb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZ1bmF0byIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFrdWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkt1dGFraXppa2F6dWt1Y2hpcmkiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxsaW90IiwKICAgICAgICAiU3VybmFtZSI6ICJQZXJzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUaW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJUYW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYXVyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FybHNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hhcm9uIiwKICAgICAgICAiU3VybmFtZSI6ICJEb2FuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPbnllb3J1bHUiLAogICAgICAgICJTdXJuYW1lIjogIk96b2VtZW5hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSIFRvcmkiLAogICAgICAgICJTdXJuYW1lIjogIkFiYXJzaGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJlbmF0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3ZvYm9kb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFyaW4iLAogICAgICAgICJTdXJuYW1lIjogIkpha29ic3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR29sZGlsb2NrcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2xkYnVjayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmFmaXJhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2hhZGlkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdXJvcmEiLAogICAgICAgICJTdXJuYW1lIjogIk9sc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmFvIiwKICAgICAgICAiU3VybmFtZSI6ICJMZWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVpcmEiLAogICAgICAgICJTdXJuYW1lIjogIk5vcmRzdHLDtm0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZlc2FoYXllIiwKICAgICAgICAiU3VybmFtZSI6ICJUZWtsZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2FtaWxsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3JpZ29yeWV2YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXlkZW4iLAogICAgICAgICJTdXJuYW1lIjogIk1hcnRpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxiZXJ0IiwKICAgICAgICAiU3VybmFtZSI6ICJKZXNwZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNhaXRseW4iLAogICAgICAgICJTdXJuYW1lIjogIkh1Z28iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV0aGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJCdXJrZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT25hZWRvIiwKICAgICAgICAiU3VybmFtZSI6ICJPbnlla2FjaHVrd3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhbnXFoWUiLAogICAgICAgICJTdXJuYW1lIjogIkvFmWl2w6Frb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi57+8IiwKICAgICAgICAiU3VybmFtZSI6ICLmtKXkuYXkupUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuecn+W8kyIsCiAgICAgICAgIlN1cm5hbWUiOiAi5bCP5LqV5ZyfIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZhdin2LLbjNin2LEiLAogICAgICAgICJTdXJuYW1lIjogItqp2LHbjNmF24wg2LLYp9iv2YciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoaWthdGFub3JpIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlFpb25nIiwKICAgICAgICAiU3VybmFtZSI6ICJZZWgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4kOC4suC4meC4tOC4lSIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lin4Lij4LmA4LiZ4LiV4Lij4Liq4Li44LiU4Liy4LiX4Li04Lie4Lii4LmMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEaXR0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVydGVsc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWxJtyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm92b3Ruw6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJ1Y2hpIiwKICAgICAgICAiU3VybmFtZSI6ICJDaGlkaWViZWxlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguITguJnguLTguJXguKrguLLguJUiLAogICAgICAgICJTdXJuYW1lIjogIuC5guC4meC4meC4quC4uOC4p+C4o+C4o+C4kyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmlrb2xhaiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3JvZ2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZseW5uIiwKICAgICAgICAiU3VybmFtZSI6ICJDaGFtYmVybGFpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmrDtnJuIiwKICAgICAgICAiU3VybmFtZSI6ICJTdHLDtm1iZXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaG8iLAogICAgICAgICJTdXJuYW1lIjogIkzDom0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRyxrDhu5tjIiwKICAgICAgICAiU3VybmFtZSI6ICJDYW8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuato+WNmiIsCiAgICAgICAgIlN1cm5hbWUiOiAi6aGe5a62IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYW5mcmVkIiwKICAgICAgICAiU3VybmFtZSI6ICJTdHLDtm1iZXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSdWtpbWltZWtpIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWMoCIsCiAgICAgICAgIlN1cm5hbWUiOiAi5bCP5quDIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSaXZlIiwKICAgICAgICAiU3VybmFtZSI6ICJNw6luYXJkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSb2JpIiwKICAgICAgICAiU3VybmFtZSI6ICJNYWtheSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5paH5bidIiwKICAgICAgICAiU3VybmFtZSI6ICLos7QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk11cyBhZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG91bWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCf0LDQvdGC0LXQu9C10LnQvNC+0L0iLAogICAgICAgICJTdXJuYW1lIjogItCk0L7QutC40L0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuZHJlYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGl6dW1pIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGlyYWthd2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFtYW5kYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWxtZWlkYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVG9tbXkiLAogICAgICAgICJTdXJuYW1lIjogIkRvdWdsYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhbmEiLAogICAgICAgICJTdXJuYW1lIjogIlZvxaFhaGzDrWtvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEaWFuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRG9kZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5Zub6YOOIiwKICAgICAgICAiU3VybmFtZSI6ICLnqLLloZoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuYXN0YXpqYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT3N0cm93c2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKaWt1bW9zaGlqaWt1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhZGltIiwKICAgICAgICAiU3VybmFtZSI6ICJCbGHFvmVrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQYXZsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm92w6Frb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmVsaS1QZWtrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRW5ja2VsbWFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaWduZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTHVuZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JfQtdC80YTQuNGA0LAiLAogICAgICAgICJTdXJuYW1lIjogItCS0L7RgNC+0L3QuNC90LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkt1c2hpa2ltaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYtNmH2LHYp9mFIiwKICAgICAgICAiU3VybmFtZSI6ICLYtNin2Ycg2LPbjNin2YciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5o4buxdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGjhuqFtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJVbm7DvsOzciIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3ZhdmFyc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGF1ZmV5IiwKICAgICAgICAiU3VybmFtZSI6ICLDnm9yZ3LDrW1zZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW50aG9ueSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW5kZXJzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5o4buLIiwKICAgICAgICAiU3VybmFtZSI6ICLEkGluaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hpbW90b2thdGF0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmdlbGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3JlY28iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFiZHVsLUhha2ltIiwKICAgICAgICAiU3VybmFtZSI6ICJBbnRvdW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFudGhvbnkiLAogICAgICAgICJTdXJuYW1lIjogIkxvdyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWF0aGlhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnVocm1hbm4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJ1xb5hIiwKICAgICAgICAiU3VybmFtZSI6ICJDcm5pxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pc2ltIiwKICAgICAgICAiU3VybmFtZSI6ICJNZW7DqW5kZXoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk51ZGhhciIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFzaWgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklmZW9tYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpZGllZ3d1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYqNin2YXYr9in2K8iLAogICAgICAgICJTdXJuYW1lIjogItqp2YHYp9i0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQndC10LvQu9C4IiwKICAgICAgICAiU3VybmFtZSI6ICLQotC+0LrQsNGA0LXQstCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdWxpbWJlayIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpY2hpZ292IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQcmliaXNsYXYiLAogICAgICAgICJTdXJuYW1lIjogIlJhZGnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpa2l0b2thIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFyaXJpa2lzaGl0YWt1ZnUiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KLZhtuM2LPYpyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LTYp9mE2obbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3dlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2FsbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT2xnYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFyamFub3ZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlb25vciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWx2ZXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5vZWwiLAogICAgICAgICJTdXJuYW1lIjogIkdqZXJuZXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJyYWRsZXkiLAogICAgICAgICJTdXJuYW1lIjogIkdpbGVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWaWt0b3JpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3nDtHJmeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFzcGVyIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJpbmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNocmlzdGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2xzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuZHJldyIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmFpd2FsYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hhcm8iLAogICAgICAgICJTdXJuYW1lIjogIkNvcm9uYWRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUb21veXVraSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSXdhc2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcnkiLAogICAgICAgICJTdXJuYW1lIjogIkxlYmVkZXZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWbGFkaW3DrXIiLAogICAgICAgICJTdXJuYW1lIjogIkLFmWV6aW5hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWYWxrcmEiLAogICAgICAgICJTdXJuYW1lIjogIk1hamphcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2VuYWQiLAogICAgICAgICJTdXJuYW1lIjogIkx1xI1pxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBlYXJsIiwKICAgICAgICAiU3VybmFtZSI6ICJIb2dwZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvbHRhbXVyZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FkaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWxpbmRhIiwKICAgICAgICAiU3VybmFtZSI6ICJHYW1nZWUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFua2UiLAogICAgICAgICJTdXJuYW1lIjogIkJvc2NoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbWlsaWEiLAogICAgICAgICJTdXJuYW1lIjogIkFsZXhleWV2YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmnFmWluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTsSbbWXEjWtvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQpNC10LTQvtGCIiwKICAgICAgICAiU3VybmFtZSI6ICLQpdCw0YDQu9Cw0LzQvtCyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYWlhIiwKICAgICAgICAiU3VybmFtZSI6ICJ2YW4gTGFhcmhvdmVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYnJhaGFtIiwKICAgICAgICAiU3VybmFtZSI6ICJPbWFyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYWlzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2Fua2FhbnDDpMOkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLdWJhIiwKICAgICAgICAiU3VybmFtZSI6ICJQaW90cm93c2tpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPbGTFmWljaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmVqZWRsw70iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJvZ3VtacWCIiwKICAgICAgICAiU3VybmFtZSI6ICJOb3dhayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FuY2hvIiwKICAgICAgICAiU3VybmFtZSI6ICJIb3JuYmxvd2VyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguIrguLjguKXguLXguIjguLHguJnguJfguKPguYwiLAogICAgICAgICJTdXJuYW1lIjogIuC4qOC4o+C4teC5guC4quC4oOC4kyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGlpc2kiLAogICAgICAgICJTdXJuYW1lIjogIkx1bW1lIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZW9yZ2luYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUsOpdsOpc3oiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvZmlhIiwKICAgICAgICAiU3VybmFtZSI6ICJTb3V6YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5oG15LuLIiwKICAgICAgICAiU3VybmFtZSI6ICLpoIjmnKwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pcm9zxYJhd2EiLAogICAgICAgICJTdXJuYW1lIjogIk5vd2FrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdmVycmlyIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWfDvsOzcnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkF6aHVybGFyIiwKICAgICAgICAiU3VybmFtZSI6ICJLYW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZW9udGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2VndXJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQr9C90LAiLAogICAgICAgICJTdXJuYW1lIjogItCR0LDQu9Cw0YjQvtCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBvdWwiLAogICAgICAgICJTdXJuYW1lIjogIkFiZWxzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCV0YHQtdC90LjRjyIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JLQvtC70LrQvtCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1vaGFtZWQiLAogICAgICAgICJTdXJuYW1lIjogIkhvbG0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNlY2lsaWUiLAogICAgICAgICJTdXJuYW1lIjogIkNocmlzdGVuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmRyZWEiLAogICAgICAgICJTdXJuYW1lIjogIkJvcmLDqWx5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguIHguLjguYnguIciLAogICAgICAgICJTdXJuYW1lIjogIuC5gOC4o+C4t+C4reC4h+C5gOC4meC4leC4o+C5jCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGFubmFoIiwKICAgICAgICAiU3VybmFtZSI6ICJMYXVyaWRzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCf0LDRgNCw0LzQvtC9IiwKICAgICAgICAiU3VybmFtZSI6ICLQrtGB0YPQv9C+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpYmFhbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiWm9nYnkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNocmlzdG9waGUiLAogICAgICAgICJTdXJuYW1lIjogIkJhcnRlYXV4IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW1lcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FtZXJvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ29yeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2FsbGlzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGlraW1pcmlrYXNoaXRlIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoxqFpIiwKICAgICAgICAiU3VybmFtZSI6ICJOZ2hpw6ptIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWthZWwiLAogICAgICAgICJTdXJuYW1lIjogIktpbHBpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGVsc2VhIiwKICAgICAgICAiU3VybmFtZSI6ICJOZXdtYW4tTW9ycmlzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBaW1lZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmlyY2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkrDs25hIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWdtdW5kc2TDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkl3YW4iLAogICAgICAgICJTdXJuYW1lIjogIlBhd8WCb3dza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlp1a3VrYXRvIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsb2lzaW8iLAogICAgICAgICJTdXJuYW1lIjogIlJvc3NpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUCBlbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRpemlhbm8iLAogICAgICAgICJTdXJuYW1lIjogIlVkaW5lc2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthbmciLAogICAgICAgICJTdXJuYW1lIjogIlRhbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlc3RhdiIsCiAgICAgICAgIlN1cm5hbWUiOiAiT25uYWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN2ZWEiLAogICAgICAgICJTdXJuYW1lIjogIkNhcmxzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJYdWUiLAogICAgICAgICJTdXJuYW1lIjogIkZ1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXRpbGRhIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXJpxaFpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvZ2VyIiwKICAgICAgICAiU3VybmFtZSI6ICJOeXN0csO2bSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGl0b21pIiwKICAgICAgICAiU3VybmFtZSI6ICJUYWt1ZGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5hdGFzamEiLAogICAgICAgICJTdXJuYW1lIjogIkFuZHJlYXNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5oCh5Ly2IiwKICAgICAgICAiU3VybmFtZSI6ICLoooEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsYW4iLAogICAgICAgICJTdXJuYW1lIjogIkJhYmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXJ6ZWJldCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3rDtGzDtHNzaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FmaXl5YWgiLAogICAgICAgICJTdXJuYW1lIjogIk1pa2hhaWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIldvbGZnYW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJQZmFmZiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JDQvdCw0YLQvtC70LjQuSIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JTQvNC4zIHRgtGA0LjQtdCyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJC4buZaSIsCiAgICAgICAgIlN1cm5hbWUiOiAixJDDoG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIti02LHZhduM2YYiLAogICAgICAgICJTdXJuYW1lIjogItqp2LHbjNmF24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpbGphIiwKICAgICAgICAiU3VybmFtZSI6ICJCaXJrZWxhbmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCR0YDQvtC90LjRgdC70LDQstCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQmtGD0LvQuNC60L7MgdCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphaW1lIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJ0aW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFraXlvIiwKICAgICAgICAiU3VybmFtZSI6ICJNdXJhaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2FyaW4iLAogICAgICAgICJTdXJuYW1lIjogIk3DvGxsZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4ouC4reC4lOC5hOC4nOC5iCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lin4Lij4Liy4Lih4Li04LiV4LijIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFZGl0aCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2F6YW50c2V2YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFpc3kiLAogICAgICAgICJTdXJuYW1lIjogIkdvb2RjaGlsZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFwaG5lIiwKICAgICAgICAiU3VybmFtZSI6ICJDYXN0aWdsaW9uZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVuZWR5a3QiLAogICAgICAgICJTdXJuYW1lIjogIkt1Y2hhcnNraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3NrYXIiLAogICAgICAgICJTdXJuYW1lIjogIkFhcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJqdW4iLAogICAgICAgICJTdXJuYW1lIjogIkhvb2dlcnMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthenVoaWtvIiwKICAgICAgICAiU3VybmFtZSI6ICJJZ3VjaGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuYXN6dGFpemlhIiwKICAgICAgICAiU3VybmFtZSI6ICJTemVnZWRpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMw6JuIiwKICAgICAgICAiU3VybmFtZSI6ICJM4bqhYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JPQtdC+0YDQs9C40LkiLAogICAgICAgICJTdXJuYW1lIjogItCi0YDQtdGC0YzRj9C60L7QsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSHVhbiBZdWUiLAogICAgICAgICJTdXJuYW1lIjogIkhhbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5b+15bmzIiwKICAgICAgICAiU3VybmFtZSI6ICLot68iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJlZ2luYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3J1YmIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4geC4tOC4leC4tOC4hOC4uOC4kyIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LmE4Lie4Lil4LiU4Li1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTb2ZpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTcOka2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkrDuHJnZW4iLAogICAgICAgICJTdXJuYW1lIjogIk1pa2FlbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJpa2FyaW5kb2t1dGEiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3VzYW4iLAogICAgICAgICJTdXJuYW1lIjogIlBlbmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVyenNvayIsCiAgICAgICAgIlN1cm5hbWUiOiAiQsOpcmVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZdW1la28iLAogICAgICAgICJTdXJuYW1lIjogIkhhc2VnYXdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMb3VybiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGltdXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthc2hpY2hpZG9zaGltbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGVsc2VhIiwKICAgICAgICAiU3VybmFtZSI6ICJNb3JsZXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkjGsMahbmciLAogICAgICAgICJTdXJuYW1lIjogIsSQ4buXIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYmJpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2FsbGFjZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtcmEiLAogICAgICAgICJTdXJuYW1lIjogIsWgcGljYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhbXBoaWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJIb2dwZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIldpbGNvbWUiLAogICAgICAgICJTdXJuYW1lIjogIkdydWJiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJ0aW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJLcmlzdG9mZmVyc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDZWNpbGlhIiwKICAgICAgICAiU3VybmFtZSI6ICJKb25zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFZGl0aCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnJlZHJpa3Nzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1cmUiLAogICAgICAgICJTdXJuYW1lIjogIk1hdGlqZXZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1bGlhbmUiLAogICAgICAgICJTdXJuYW1lIjogIkJlY2tlbmJhdWVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGlrYWZ1cmlubW90b3RlIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNreWUiLAogICAgICAgICJTdXJuYW1lIjogIkJhcmtlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQiBUb2dobyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJheGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk0gTGVzdGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJSYW5udWYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1la3V0b3Rva3VjaGlyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlkozlrZAiLAogICAgICAgICJTdXJuYW1lIjogIuWcn+apiyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmlsZGUiLAogICAgICAgICJTdXJuYW1lIjogIkhvbGFuZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmxha2UiLAogICAgICAgICJTdXJuYW1lIjogIlN0YXJyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMaWFtIiwKICAgICAgICAiU3VybmFtZSI6ICJCb3lsZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGVpIiwKICAgICAgICAiU3VybmFtZSI6ICJUZW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW1pZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW5kZXJzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpdmlhIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWNpbGlhbmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktoYXphIiwKICAgICAgICAiU3VybmFtZSI6ICJLYWRpZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1vdG95byIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2lrYXdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZWJlc3R5ZW4iLAogICAgICAgICJTdXJuYW1lIjogIkJlbmvDsyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUnVieSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG9vayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2lsZGEiLAogICAgICAgICJTdXJuYW1lIjogIk9uaW8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItm+24zYsdmI2LIiLAogICAgICAgICJTdXJuYW1lIjogItmF2LnYuNmF24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkltYW0iLAogICAgICAgICJTdXJuYW1lIjogIkhhbGFiaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGF2ZWwiLAogICAgICAgICJTdXJuYW1lIjogIlBhdmzDrWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphZGUiLAogICAgICAgICJTdXJuYW1lIjogIlNhdmFnZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmFocnVkaW4iLAogICAgICAgICJTdXJuYW1lIjogIkRydm9kZWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuaYoOaihSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6LOIIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYXRvcnUiLAogICAgICAgICJTdXJuYW1lIjogIlNoaW5vaGFyYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVMO8bGF5IiwKICAgICAgICAiU3VybmFtZSI6ICJXZW5uaW5rIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJdmV0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3Jham7DrWtvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUaGkiLAogICAgICAgICJTdXJuYW1lIjogIktpbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJleWEiLAogICAgICAgICJTdXJuYW1lIjogIkdhcmRpbmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW4iLAogICAgICAgICJTdXJuYW1lIjogIk5pZWxzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNhcm1lbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGF5bG9yIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZWJyZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGV3b2xkZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWV0aGVuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT3VlbGxldCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWzDrXNhYmV0IiwKICAgICAgICAiU3VybmFtZSI6ICJJbmd2YXJzZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtcHBhIiwKICAgICAgICAiU3VybmFtZSI6ICJQYXJuZWxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguKrguLjguJjguLjguKPguLXguJ7guKMiLAogICAgICAgICJTdXJuYW1lIjogIuC4quC4suC5guC4iiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTG91aXNlIiwKICAgICAgICAiU3VybmFtZSI6ICJIZXJtYW5zZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pcmVsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS29zdG9qxI1pbm9za2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZhd3phIiwKICAgICAgICAiU3VybmFtZSI6ICJCaXRhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFla28iLAogICAgICAgICJTdXJuYW1lIjogIkt1ZG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCf0LXRgtGAIiwKICAgICAgICAiU3VybmFtZSI6ICLQmNCx0YDQsNCz0LjQvNC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVjaGV6b25hY2h1a3d1IiwKICAgICAgICAiU3VybmFtZSI6ICJFamlrZW1laWZldXdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUcmkiLAogICAgICAgICJTdXJuYW1lIjogIkzDom0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4l+C4p+C4seC4kuC4iuC4seC4oiIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LmB4LiL4LmI4Lir4Lil4Lix4LmI4LiZIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKIEVuZXRoIiwKICAgICAgICAiU3VybmFtZSI6ICJWZW5vbm4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhcmRhIiwKICAgICAgICAiU3VybmFtZSI6ICJTZWJlc3R5w6luIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGkiLAogICAgICAgICJTdXJuYW1lIjogIktpbmZlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb25hdGhhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWR2YXJkc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmFzdGFzaWUiLAogICAgICAgICJTdXJuYW1lIjogIkZyw6ljaGV0dGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNocmlzIiwKICAgICAgICAiU3VybmFtZSI6ICJLbG9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaW1vbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWNEb25hbGQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJ5cm9uIiwKICAgICAgICAiU3VybmFtZSI6ICJMYWNoYW5jZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiE4LiT4Li04LiKIiwKICAgICAgICAiU3VybmFtZSI6ICLguJnguYjguKfguKHguYTguKHguYnguJ7guLjguYjguKEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNlYmhhdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWRyaXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJ5dXV0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWlkYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTXVoYW1tZWQiLAogICAgICAgICJTdXJuYW1lIjogIlNlbGFtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGZWxpY2llbm5lIiwKICAgICAgICAiU3VybmFtZSI6ICJHZXJ2YWlzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYXVyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2ludGhlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9obm55IiwKICAgICAgICAiU3VybmFtZSI6ICJNY01pbGxhbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU29tZXJ2aWxsZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRHViZWF1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZWFoIiwKICAgICAgICAiU3VybmFtZSI6ICJNY0Nvcm1pY2siCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1vcmFnIiwKICAgICAgICAiU3VybmFtZSI6ICJLYW5mZiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWRlbGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTcOlcnRlbnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZpZGtvIiwKICAgICAgICAiU3VybmFtZSI6ICJVdHJhbmtlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpcmltb3JpbmthYXJpIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktyaXN6dGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTMO2cmluYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KjZh9in2LEiLAogICAgICAgICJTdXJuYW1lIjogItqG2LHZhdi024zYsSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFycGhpc2EiLAogICAgICAgICJTdXJuYW1lIjogIkNvbGxpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm96ZWYiLAogICAgICAgICJTdXJuYW1lIjogIkt1YmnEjWthIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGdW1vdGFrYXRvdGVrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYWVya2UiLAogICAgICAgICJTdXJuYW1lIjogIk55Z2FhcmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVpbm8iLAogICAgICAgICJTdXJuYW1lIjogIlDDtnlyeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2/FiGEiLAogICAgICAgICJTdXJuYW1lIjogIlBhdG/EjWtvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHYWJyaWVsbGUiLAogICAgICAgICJTdXJuYW1lIjogIlNhbnRvcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmljdG9yaWEiLAogICAgICAgICJTdXJuYW1lIjogIk1jQ29tYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlfFgmFkeXPFgmF3YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWRhbXNrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVG9tw6FzIiwKICAgICAgICAiU3VybmFtZSI6ICJNZWxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYXJhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2F0dCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxzZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWdlZGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlPhu611IiwKICAgICAgICAiU3VybmFtZSI6ICJQaOG6oW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdlb3JnZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmFqYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaWNhIiwKICAgICAgICAiU3VybmFtZSI6ICJCdW5jZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiV2FrYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJOb2RhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCdXJ0dWthIiwKICAgICAgICAiU3VybmFtZSI6ICJBd2V0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYXNwZXIiLAogICAgICAgICJTdXJuYW1lIjogIktqZXJzdGFkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLkvp3nj4oiLAogICAgICAgICJTdXJuYW1lIjogIuW8tSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2F0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQsOhbnlhaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm9ya2EiLAogICAgICAgICJTdXJuYW1lIjogIlN6w7ZsbMO2c3NpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQaGlsaXBwaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJDYW50aW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlp1bGEiLAogICAgICAgICJTdXJuYW1lIjogIkFsZW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFkYWt1IiwKICAgICAgICAiU3VybmFtZSI6ICJFbGVjaGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkogR2lyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRCBHaG9yIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWx3YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQm90cm9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYXN0aWEiLAogICAgICAgICJTdXJuYW1lIjogIlphYnVrb8WhZWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRvcm90dHlhIiwKICAgICAgICAiU3VybmFtZSI6ICJLw6FycMOhdGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNqw7ZmbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnJ5bmTDrXNhcmTDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlplbm9iaW8iLAogICAgICAgICJTdXJuYW1lIjogIkJyaW9uZXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNhcmxvcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJhdWpvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZWEiLAogICAgICAgICJTdXJuYW1lIjogIk1vbmRyYWfDs24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpZ3VyZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2FuZ2JlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvYmluaWEiLAogICAgICAgICJTdXJuYW1lIjogIlRvb2siCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkx1aXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXRhZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuahkOWtkCIsCiAgICAgICAgIlN1cm5hbWUiOiAi6bS75bejIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIeWlhYiIsCiAgICAgICAgIlN1cm5hbWUiOiAiWW9uYXRhbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3LDs2EiLAogICAgICAgICJTdXJuYW1lIjogIsOBc2tlbHNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbXBwdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTcOka2luZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJpbmthdGVrdXRha2l0b2t1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIueri+aJvyIsCiAgICAgICAgIlN1cm5hbWUiOiAi5buWIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGJlcnRlIiwKICAgICAgICAiU3VybmFtZSI6ICJEYW5pZWxzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcml1cyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVWxzdGVpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FraW5haCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFiYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVnbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9tIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZW9yZ2UiLAogICAgICAgICJTdXJuYW1lIjogIlRpZWdzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbnpvIiwKICAgICAgICAiU3VybmFtZSI6ICJTYW50b3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlp1ZmFuIiwKICAgICAgICAiU3VybmFtZSI6ICJGZXNhaGF5ZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWdnaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTHV3YW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhbGV0dGUiLAogICAgICAgICJTdXJuYW1lIjogIkdvc3NlbGluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJRaWFuZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiWWVoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYXZpZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9vcmUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvbW9oYXJ1IiwKICAgICAgICAiU3VybmFtZSI6ICJPY2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlronluq0iLAogICAgICAgICJTdXJuYW1lIjogIuS9mCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGhvcnN0ZW4iLAogICAgICAgICJTdXJuYW1lIjogIlppbW1lcm1hbm4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlVyc3VsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmFlcmJlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiIEl0YWYiLAogICAgICAgICJTdXJuYW1lIjogIkdhYmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGZWxpeCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FybHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVkZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3JlZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWLnSIsCiAgICAgICAgIlN1cm5hbWUiOiAi5Z2C5p2RIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGlqaW5kdW0iLAogICAgICAgICJTdXJuYW1lIjogIklsb2FidWNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5kcmVhIiwKICAgICAgICAiU3VybmFtZSI6ICJGcmnDsGJqYXJuYXJkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLkvbPoirMiLAogICAgICAgICJTdXJuYW1lIjogIuWnnCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmxvcmlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSnVua2VyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEeWxhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmFja3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi576O5YSqIiwKICAgICAgICAiU3VybmFtZSI6ICLlkJHnlZEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9sZ2EiLAogICAgICAgICJTdXJuYW1lIjogIkZlZG9yb3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHb2xpYmUiLAogICAgICAgICJTdXJuYW1lIjogIklyb2F3dWNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiw55vcm1hciIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGnDsHJpa3Nzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaWVidWthIiwKICAgICAgICAiU3VybmFtZSI6ICJPc2luYWNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTHVjYXMiLAogICAgICAgICJTdXJuYW1lIjogIlZhbHN0YWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktodXnhur9uIiwKICAgICAgICAiU3VybmFtZSI6ICJOZ3V54buFbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGlseSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnJlZHJpa3Nzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV6aW53YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpem9iYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWW9uZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2hlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYWZpeiIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG91bWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4meC4p+C4pSIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lir4Lih4Lix4LiU4Lij4LmI4Liy4Lir4Lih4Liy4LiZIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEd2lnaHQiLAogICAgICAgICJTdXJuYW1lIjogIlNjaGFrZWxhYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1ld2FlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGFuaWVsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbml0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG9sbmF5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXRlamEiLAogICAgICAgICJTdXJuYW1lIjogIk5vdmFrb3ZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFzaGxlZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVHJhY3kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmMiLAogICAgICAgICJTdXJuYW1lIjogIldpbGxpYW1zb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRo4bqvbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSMOgbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTHlkaWEiLAogICAgICAgICJTdXJuYW1lIjogIlVzcGVuc2theWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItio2YfYsdmG2q8iLAogICAgICAgICJTdXJuYW1lIjogItqp2YjYtNinIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYW5kaWEiLAogICAgICAgICJTdXJuYW1lIjogIkhhbnNlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJVcmFuaW8iLAogICAgICAgICJTdXJuYW1lIjogIkJvbmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklzYWlhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FwdXN0aW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkt1c2FtYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVzbGl5ZXZpY2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhvbGx5IiwKICAgICAgICAiU3VybmFtZSI6ICJKYW1pZXNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiU4LiZ4Li44Lie4LilIiwKICAgICAgICAiU3VybmFtZSI6ICLguKHguLDguKXguLDguKrguLUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdXJlbnQiLAogICAgICAgICJTdXJuYW1lIjogIkxhdXppZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktyxaFldmFuIiwKICAgICAgICAiU3VybmFtZSI6ICLFoGltdW5vdmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFzZW5rbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVnVrb3ZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCf0YDQvtGF0L7RgCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0J3QuNC60LjRgtC40L0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkjDoXQiLAogICAgICAgICJTdXJuYW1lIjogIkzGsHUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCl0LDRgNC40YLQvtC9IiwKICAgICAgICAiU3VybmFtZSI6ICLQkNC70LjQtdCyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJZ29yIiwKICAgICAgICAiU3VybmFtZSI6ICJBcmF1am8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIsOJbG9kaWUiLAogICAgICAgICJTdXJuYW1lIjogIk1vcmVhdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW4iLAogICAgICAgICJTdXJuYW1lIjogIkNoYW8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumZveWtkCIsCiAgICAgICAgIlN1cm5hbWUiOiAi5p2R5qmLIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9jb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWljaGVsbGUiLAogICAgICAgICJTdXJuYW1lIjogIlZlcmhlaWoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZpbmljaXVzIiwKICAgICAgICAiU3VybmFtZSI6ICJBbHZlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2VwcGEiLAogICAgICAgICJTdXJuYW1lIjogIkhpbm9yaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmluIiwKICAgICAgICAiU3VybmFtZSI6ICJXZWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVpIiwKICAgICAgICAiU3VybmFtZSI6ICJTb3VtYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmFsZGVtYXIiLAogICAgICAgICJTdXJuYW1lIjogIkZyZWRlcmlrc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYWt1eWEiLAogICAgICAgICJTdXJuYW1lIjogIk1lc2hpenVrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGhpbGVtb24iLAogICAgICAgICJTdXJuYW1lIjogIlZhc3NpbGlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFyaWEiLAogICAgICAgICJTdXJuYW1lIjogIlBhbGVybW8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1haGJ1YiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW50b3VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBcmljaGlrdW5vcmlrYXRva2lrdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWc2V2b2xvZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXZkZWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNdWhhbW1hZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnJ1Y2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5hdGFzaGEiLAogICAgICAgICJTdXJuYW1lIjogIkJyb2FkaHVyc3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkluZ2Vib3JnIiwKICAgICAgICAiU3VybmFtZSI6ICJWdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGF5ZGVuIiwKICAgICAgICAiU3VybmFtZSI6ICJEdW5iYWJpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9rbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWxpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlByemVta28iLAogICAgICAgICJTdXJuYW1lIjogIkJvcmtvd3NraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4Liq4Li44Lii4Lin4LiZ4LmD4LiIIiwKICAgICAgICAiU3VybmFtZSI6ICLguKrguIfguKfguJnguJXguKPguLDguIHguLnguKUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlp1bW9hcmlrdW5vcmkiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmFraXl5YWgiLAogICAgICAgICJTdXJuYW1lIjogIkFyaWFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJI4buZaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRMawxqFuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpIiwKICAgICAgICAiU3VybmFtZSI6ICJXZWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuZHJlYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT3R0YXJzZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmVyb25pa2EiLAogICAgICAgICJTdXJuYW1lIjogIlZldmVya292w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkplYW5uZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiWWVmcmVtb3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUw7NiaWFzIiwKICAgICAgICAiU3VybmFtZSI6ICJCcmFjZWdpcmRsZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2VyYWxkIiwKICAgICAgICAiU3VybmFtZSI6ICJMYWRkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZXRoYW55IiwKICAgICAgICAiU3VybmFtZSI6ICJDYXJleSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUnV0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGF5bG9tIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZW4iLAogICAgICAgICJTdXJuYW1lIjogIkFyY2h1bGV0YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWRvbmF5IiwKICAgICAgICAiU3VybmFtZSI6ICJNdXN0YWZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPdGl0b2RpbGlubmEiLAogICAgICAgICJTdXJuYW1lIjogIk11b21lbHUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkR5bGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXJuZXR0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJbGF6IiwKICAgICAgICAiU3VybmFtZSI6ICJQb2tlcsWhbmlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXRyaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWthZWxzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJhcmFrYWgiLAogICAgICAgICJTdXJuYW1lIjogIktob3VyeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5p+P57+wIiwKICAgICAgICAiU3VybmFtZSI6ICLokYkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIueRi+WptyIsCiAgICAgICAgIlN1cm5hbWUiOiAi6KixIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQYXRyaWsiLAogICAgICAgICJTdXJuYW1lIjogIlRyaWZ1bm92acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdGVmYW5pZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWNoZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRoYXdiYW4iLAogICAgICAgICJTdXJuYW1lIjogIkhhbmRhbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi55u05a2QIiwKICAgICAgICAiU3VybmFtZSI6ICLlvbHkupUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNlbGVzdHluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3pjemVwYcWEc2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGjhu6d5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGcmVkZGllIiwKICAgICAgICAiU3VybmFtZSI6ICJDbGFyayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxlbmEiLAogICAgICAgICJTdXJuYW1lIjogIlBhZG92ZXNpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIZW5yaWsiLAogICAgICAgICJTdXJuYW1lIjogIkplcmVtaWFzc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLnnJ/lvJMiLAogICAgICAgICJTdXJuYW1lIjogIuawtOWfjiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVuZWRldHRvIiwKICAgICAgICAiU3VybmFtZSI6ICJaaXRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYXVyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUMOkw6R0YWxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb25vdmFuIiwKICAgICAgICAiU3VybmFtZSI6ICJLdcW+ZXQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFydG8iLAogICAgICAgICJTdXJuYW1lIjogIk3DpGtpbMOkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJUYXlsb3IiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1vcnRlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGhvcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2VzdW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJHaXJtYXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuaWh+WtkCIsCiAgICAgICAgIlN1cm5hbWUiOiAi5qC55pyoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZW1yZXQiLAogICAgICAgICJTdXJuYW1lIjogIlp1bGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdmluaWEiLAogICAgICAgICJTdXJuYW1lIjogIkFyYXVqbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFtYXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJSZXBpbmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJpZmF0IiwKICAgICAgICAiU3VybmFtZSI6ICJBdnNlbmFrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguJPguLHguJDguJDguLLguJnguLTguKrguKMiLAogICAgICAgICJTdXJuYW1lIjogIuC5geC4quC4h+C4lOC4tSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlydGUiLAogICAgICAgICJTdXJuYW1lIjogIkFlbG1hbnMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFtZWxpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9iaW5zb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsaXphIiwKICAgICAgICAiU3VybmFtZSI6ICJUYXJyYW50IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZb3NoaW8iLAogICAgICAgICJTdXJuYW1lIjogIlVjaGl1bWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hdGlsZGEiLAogICAgICAgICJTdXJuYW1lIjogIkdvb2xkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZW9uYXJkbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FudG9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYWx2aWEiLAogICAgICAgICJTdXJuYW1lIjogIlR3b2Zvb3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5ldGh1c3MiLAogICAgICAgICJTdXJuYW1lIjogIkRlbW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEcnVnaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiV3lzb2NraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlrZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS29obGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPbWVva2FjaGllIiwKICAgICAgICAiU3VybmFtZSI6ICJOa2VtYWtvbGFtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZXN0dXIiLAogICAgICAgICJTdXJuYW1lIjogIkhpbnJpa3Nzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlpsYXRlIiwKICAgICAgICAiU3VybmFtZSI6ICLEjHVybWFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBc3RvbHBobyIsCiAgICAgICAgIlN1cm5hbWUiOiAiRHVMaW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvbWEiLAogICAgICAgICJTdXJuYW1lIjogIkJlcmtpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmllYmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHYWV0YW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJQZWxsYW5kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWxsYWRvbm5hIiwKICAgICAgICAiU3VybmFtZSI6ICJCYW5rcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2F5ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiRHJhdGNoZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhbm5haCIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3Jvb20iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkluZXMiLAogICAgICAgICJTdXJuYW1lIjogIkJsb21xdmlzdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVrYXRha3UiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm/FvmVuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWF0a292acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCb2d1bWnFgiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FsaW5vd3NraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGVyZWsiLAogICAgICAgICJTdXJuYW1lIjogIkxvY2t3b29kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJXaWVsaXPFgmF3IiwKICAgICAgICAiU3VybmFtZSI6ICJNaWNoYWxza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuaUv+WujyIsCiAgICAgICAgIlN1cm5hbWUiOiAi5Lu7IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMaW5kYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ3JhbWVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYXNyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2xlaW1hbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2LTbjNmB2KrZhyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LnZhNuM2LLYp9iv2YciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pa2xhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWJlcmhhcnQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlb25pZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW1zZWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaW53ZW5kdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpbndlbmR1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYWVya2UiLAogICAgICAgICJTdXJuYW1lIjogIkpvaGFuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdGVmYW4iLAogICAgICAgICJTdXJuYW1lIjogIkrDtm5zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSYWprbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ3JuacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaXJpbWEiLAogICAgICAgICJTdXJuYW1lIjogIk9qaW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKdWtrYS1QZWtrIiwKICAgICAgICAiU3VybmFtZSI6ICJWYW5oYW5lbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW51IiwKICAgICAgICAiU3VybmFtZSI6ICJUdWltYWxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXJlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiV3Vyc3QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItqp2LPYsdinIiwKICAgICAgICAiU3VybmFtZSI6ICLZhduM2LHZh9in2LTZhduMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOdWthIiwKICAgICAgICAiU3VybmFtZSI6ICJQZXRydXNzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1ZXJnZW4iLAogICAgICAgICJTdXJuYW1lIjogIkhpdGlqIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLkvbPmhaciLAogICAgICAgICJTdXJuYW1lIjogIuWwuSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVuamFtaW4iLAogICAgICAgICJTdXJuYW1lIjogIk7DuHJnYWFyZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5a2mIiwKICAgICAgICAiU3VybmFtZSI6ICLlhoXoqJgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNlY2lsIiwKICAgICAgICAiU3VybmFtZSI6ICJGaWd1ZXJvYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU29maWEiLAogICAgICAgICJTdXJuYW1lIjogIkFiYWt1bW92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hpbmciLAogICAgICAgICJTdXJuYW1lIjogIkNoaWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBvbG8iLAogICAgICAgICJTdXJuYW1lIjogIkJvbGdlci1CYWdnaW5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXRoaWFzIiwKICAgICAgICAiU3VybmFtZSI6ICJUaGVpc3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWSjOS5nyIsCiAgICAgICAgIlN1cm5hbWUiOiAi5LuK6IulIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWR1ZWtlIiwKICAgICAgICAiU3VybmFtZSI6ICJFZ29idWRpa2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpYW4iLAogICAgICAgICJTdXJuYW1lIjogIlRzYWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcnlhIiwKICAgICAgICAiU3VybmFtZSI6ICJEdWJpbmluYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJtZW4iLAogICAgICAgICJTdXJuYW1lIjogIktsYW5mYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZhcHB1IiwKICAgICAgICAiU3VybmFtZSI6ICJNw6RlbnDDpMOkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpbm8iLAogICAgICAgICJTdXJuYW1lIjogIlZhcmdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQkNC70LvQsCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JLQsNGB0LjQu9GM0LXQstCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJI4bu3IiwKICAgICAgICAiU3VybmFtZSI6ICJUw7RuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSw7NzIiwKICAgICAgICAiU3VybmFtZSI6ICJGaW5uYm9nYWTDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuiHtOWgryIsCiAgICAgICAgIlN1cm5hbWUiOiAi5LiBIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmraPnlLciLAogICAgICAgICJTdXJuYW1lIjogIuiIueW0jiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWFuaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJBZ29zdG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJheWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJIYWRhZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTHVjaWUiLAogICAgICAgICJTdXJuYW1lIjogIkdpxYhvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQYXZpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmFrb2JzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlp1ZmFuIiwKICAgICAgICAiU3VybmFtZSI6ICJBYnJhaGFtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCb2dkYW4iLAogICAgICAgICJTdXJuYW1lIjogIlBpdmMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pY29sYXMiLAogICAgICAgICJTdXJuYW1lIjogIkF6ZXZlZG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvcGhpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVycmF5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDb2xvbWJhbm8iLAogICAgICAgICJTdXJuYW1lIjogIk1hbm5hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOZ8OgIiwKICAgICAgICAiU3VybmFtZSI6ICJRdXluaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXJpY2siLAogICAgICAgICJTdXJuYW1lIjogIlNpbHZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQYXVsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiw5ZobWFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmm4nlvaQiLAogICAgICAgICJTdXJuYW1lIjogIualiiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2FicmllbGEiLAogICAgICAgICJTdXJuYW1lIjogIlNpbHZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJbnVubmd1YXEiLAogICAgICAgICJTdXJuYW1lIjogIk1pa2FlbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVWxwdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU29yYW5lbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2ludGF0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVCB2YXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItii2YbYp9mH24zYqtinIiwKICAgICAgICAiU3VybmFtZSI6ICLYrtmI24zbjNmG24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZlcmEgRnJhbsSNacWha2EiLAogICAgICAgICJTdXJuYW1lIjogIkhvbW92YyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2VydHJ1ZGEiLAogICAgICAgICJTdXJuYW1lIjogIldhbGN6YWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pbmlrIiwKICAgICAgICAiU3VybmFtZSI6ICJMdW5kYmxhZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGF5bG9yIiwKICAgICAgICAiU3VybmFtZSI6ICJTeWtlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFkaWhhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFidGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlppbmF0IiwKICAgICAgICAiU3VybmFtZSI6ICJIYWpqYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvY2h1a3d1IiwKICAgICAgICAiU3VybmFtZSI6ICJDaGl6b2JhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKaWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJUcyBhaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTG9pcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2Fsa2VyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW5zIiwKICAgICAgICAiU3VybmFtZSI6ICJOeWJlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuiyv+aYjCIsCiAgICAgICAgIlN1cm5hbWUiOiAi6Y2+IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLnr4DlrZAiLAogICAgICAgICJTdXJuYW1lIjogIuWlpeWuriIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWF0dGhldyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVmluY2VudCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2lndXLDsHVyIiwKICAgICAgICAiU3VybmFtZSI6ICJIYXLDsGFyc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW4iLAogICAgICAgICJTdXJuYW1lIjogIktyw6FsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZWFoIiwKICAgICAgICAiU3VybmFtZSI6ICJIYXN0aW5ncyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS29saSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FyYXQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4l+C4o+C4h+C4oOC4niIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lia4Li44LiN4LmB4Liq4LiZIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQaW1wZXJuZWwiLAogICAgICAgICJTdXJuYW1lIjogIkNsYXloYW5nZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkPGsHUiLAogICAgICAgICJTdXJuYW1lIjogIktpbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5ZOy5o+aIiwKICAgICAgICAiU3VybmFtZSI6ICLnqIsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNlYmFzdGlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmlsc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJVbWJlcnRvIiwKICAgICAgICAiU3VybmFtZSI6ICJDb2xvbWJvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBc2ZhaGEiLAogICAgICAgICJTdXJuYW1lIjogIlNhbXVlbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWnVrdXNoaWZ1dGEiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGFybGV5IiwKICAgICAgICAiU3VybmFtZSI6ICJDaGFwbWFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYsdmI2LTZhtqpIiwKICAgICAgICAiU3VybmFtZSI6ICLYt9in2YfYqNin2LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pa2UiLAogICAgICAgICJTdXJuYW1lIjogIkhlcm1hbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJpcmlrdXRhdGFrdWZ1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlbGVuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTcOkbm5pa2vDtiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWV0dGUiLAogICAgICAgICJTdXJuYW1lIjogIlPDuHJlbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2FybG9zIiwKICAgICAgICAiU3VybmFtZSI6ICJDYXN0cm8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5lcHR1bm8iLAogICAgICAgICJTdXJuYW1lIjogIlRhbWF5byIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJtYW4iLAogICAgICAgICJTdXJuYW1lIjogIkFtZGFsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb21pbmlrIiwKICAgICAgICAiU3VybmFtZSI6ICJTcsSNbmlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQndCw0YPQvCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JPQu9Cw0LfQutC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFrd2F1Z28iLAogICAgICAgICJTdXJuYW1lIjogIk9ueWVtYWNodWt3dSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi55u05qi5IiwKICAgICAgICAiU3VybmFtZSI6ICLnvr3loLQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNuamXFoWthIiwKICAgICAgICAiU3VybmFtZSI6ICJQb3NhdmVjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdGVwaGVuIiwKICAgICAgICAiU3VybmFtZSI6ICJCcmFuZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVzdGluIiwKICAgICAgICAiU3VybmFtZSI6ICJMZW1wcmllcmUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNob3pvIiwKICAgICAgICAiU3VybmFtZSI6ICJUYWthaGFzaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2hhemEiLAogICAgICAgICJTdXJuYW1lIjogIlN1bHRhbm92aWNoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJ0aW4iLAogICAgICAgICJTdXJuYW1lIjogIkl2ZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlVzYW0iLAogICAgICAgICJTdXJuYW1lIjogIlZlZHppemhldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9yZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiWnUgdWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkF3ZXQiLAogICAgICAgICJTdXJuYW1lIjogIkdpcm1heSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGF2YW5uYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTnliZXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJadW1vdG8iLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5qGQ5a2QIiwKICAgICAgICAiU3VybmFtZSI6ICLoirHmvqQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklzYWJlbGxhIiwKICAgICAgICAiU3VybmFtZSI6ICJLasOmciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hhZGluIiwKICAgICAgICAiU3VybmFtZSI6ICJIYWxhYmkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1vam1pcmEiLAogICAgICAgICJTdXJuYW1lIjogIkJyYWprb3ZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4peC4seC4geC4qeC5jOC4qOC4tOC4geC4siIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lih4Liy4Lia4Lix4LiT4LiR4Li04LiV4Lii4LmMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLIEVsbGFsIiwKICAgICAgICAiU3VybmFtZSI6ICJQYWxsYXJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb25uYW1pcmEiLAogICAgICAgICJTdXJuYW1lIjogIlRvb2siCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktoYXppbWF0IiwKICAgICAgICAiU3VybmFtZSI6ICJTaGVyaXBvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0K3QtNC40YLQsCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JXQstGB0LXQtdCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZpbmljaXVzIiwKICAgICAgICAiU3VybmFtZSI6ICJSaWJlaXJvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYW9pbWhlIiwKICAgICAgICAiU3VybmFtZSI6ICJNdWlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb3JlbmUiLAogICAgICAgICJTdXJuYW1lIjogIkNoYXNzw6kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4meC4h+C4hOC5jOC4peC4seC4geC4qeC5jCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LiB4Li04LiI4LiB4Liy4LiN4LiI4LiZ4LmE4Lie4Lia4Li54Lil4Lii4LmMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKZXNzZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVmlydGFuZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpY2lhIiwKICAgICAgICAiU3VybmFtZSI6ICJQaXJvenppIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGltb3p1a3VzaGljaGkiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmlzaGlrdWppbW9zaGlmdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEdXF5YWhhIiwKICAgICAgICAiU3VybmFtZSI6ICJTdWx0eWdvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KzZh9in2YbYr9in2LEiLAogICAgICAgICJTdXJuYW1lIjogItiu2Kfaqdio2KfYsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmFpbGV5IiwKICAgICAgICAiU3VybmFtZSI6ICJLaWRtYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFnZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRG9icmlrb3ZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvd2FuIiwKICAgICAgICAiU3VybmFtZSI6ICJCcmFjZWdpcmRsZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJzaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVyaWx1b3RvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJYaW5oIiwKICAgICAgICAiU3VybmFtZSI6ICLEkOG7lyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3dlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVyZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJhbmNpc3prYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU29rb8WCb3dza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsZmEiLAogICAgICAgICJTdXJuYW1lIjogIkJyeW5kw61zYXJkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQktC10YDQvtC90LjQutCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQodC10YDQs9C10LXQstCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYXJ1biIsCiAgICAgICAgIlN1cm5hbWUiOiAiTMO2ZmdyZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRob21hcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG9iaWFzc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWZ1bWkiLAogICAgICAgICJTdXJuYW1lIjogIk1pbmFtaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWnNvbWJvciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQm9yc29zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUcmFjeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGFuZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVsaWFuZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTHliZXJ0aCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmVwcGUiLAogICAgICAgICJTdXJuYW1lIjogIkxhdXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhpZGV0b3NoaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FoYWt1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWbGF0a2EiLAogICAgICAgICJTdXJuYW1lIjogIklsacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJYaW5oIiwKICAgICAgICAiU3VybmFtZSI6ICJOZ8O0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUeWtvIiwKICAgICAgICAiU3VybmFtZSI6ICJTaXJ2acO2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYXRoYW4iLAogICAgICAgICJTdXJuYW1lIjogIk1hY0RvbmFsZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm/FvmUgUGV0ZXIiLAogICAgICAgICJTdXJuYW1lIjogIlplbGNlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVyZXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJJYnJhZ2ltb3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNb3Vuc3NpZiIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9iYmVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYW1hcmEiLAogICAgICAgICJTdXJuYW1lIjogIkFraHRha2hhbm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSIFJ5bmEiLAogICAgICAgICJTdXJuYW1lIjogIkF4ZW5uaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5kcmV3IiwKICAgICAgICAiU3VybmFtZSI6ICJHcmFudCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJhbml2b2oiLAogICAgICAgICJTdXJuYW1lIjogIkJyb2QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCa0YHQtdC90LjRjyIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JfRg9Cx0LDRgNC10LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTXkiLAogICAgICAgICJTdXJuYW1lIjogIkVyaWtzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLcmFzIiwKICAgICAgICAiU3VybmFtZSI6ICJSaXNrYWRoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQkNGF0LzQtdGCIiwKICAgICAgICAiU3VybmFtZSI6ICLQmNCx0YDQsNCz0LjQvNC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItii2LLYp9iv2YciLAogICAgICAgICJTdXJuYW1lIjogItmF2LHYp9iv24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIue3kSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6LK05bO2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJDaHVhbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk53YW5uZWthIiwKICAgICAgICAiU3VybmFtZSI6ICJNYW1lbHUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlphcml0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJzYW51a2F5ZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoYW5oIiwKICAgICAgICAiU3VybmFtZSI6ICJWxINuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYXVyYmkiLAogICAgICAgICJTdXJuYW1lIjogIlJ5emFldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGF3aXQiLAogICAgICAgICJTdXJuYW1lIjogIkRhbmllbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGFmbGnDsGkiLAogICAgICAgICJTdXJuYW1lIjogIlNpZ8O+w7Nyc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGhvbWFzIiwKICAgICAgICAiU3VybmFtZSI6ICJDb2JiZXR0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBcnR1ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGlsbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFpIiwKICAgICAgICAiU3VybmFtZSI6ICJ2YW4gSWVyc2VsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJc2FpYXMiLAogICAgICAgICJTdXJuYW1lIjogIlJ1c3NvbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXZldGEiLAogICAgICAgICJTdXJuYW1lIjogIkZyecSNb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGFycyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTHluZ2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIllpIEppZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVyenVtYW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJQYWRvdmFjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaWd1cmxhdWciLAogICAgICAgICJTdXJuYW1lIjogIlZhbGJlcmdzZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ29ubm9yIiwKICAgICAgICAiU3VybmFtZSI6ICJSb2JpbnNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlyb3PFgmF3IiwKICAgICAgICAiU3VybmFtZSI6ICJXb2pjaWVjaG93c2tpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJ0aGEiLAogICAgICAgICJTdXJuYW1lIjogIk1pa2FlbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiB4Li44Lih4Lie4LilIiwKICAgICAgICAiU3VybmFtZSI6ICLguKHguLLguKjguKPguLUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkl6c2FrIiwKICAgICAgICAiU3VybmFtZSI6ICJFcmRleSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFyaXVzIiwKICAgICAgICAiU3VybmFtZSI6ICJKZXNwZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpcm8iLAogICAgICAgICJTdXJuYW1lIjogIlNjaGlhdm9uZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFtZXMiLAogICAgICAgICJTdXJuYW1lIjogIk1jTXVsbGVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYWNvcG8iLAogICAgICAgICJTdXJuYW1lIjogIkdyZWNvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYW1hbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXR0aWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4guC4p+C4seC4jeC4iuC4suC4leC4tCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LmE4Lir4Lih4Lie4Li44LmI4LihIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUZWxsZXJ2byIsCiAgICAgICAgIlN1cm5hbWUiOiAiS29qb25rb3NraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2llbm5hIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXJ0b24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNlc3VuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXNmYWhhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbG1hIiwKICAgICAgICAiU3VybmFtZSI6ICJCZWNoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGcmVkZWsiLAogICAgICAgICJTdXJuYW1lIjogIk3DoXRow6kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIldpbmVzaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2ZmcmluZ2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1haWsiLAogICAgICAgICJTdXJuYW1lIjogIkFjaGVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJadWhkaWphIiwKICAgICAgICAiU3VybmFtZSI6ICJHaXJvdHRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJc2FpYXMiLAogICAgICAgICJTdXJuYW1lIjogIlRla2xlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYW9oYXJ1IiwKICAgICAgICAiU3VybmFtZSI6ICJIaWdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYW9ha2kiLAogICAgICAgICJTdXJuYW1lIjogIk5hZ2FubyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU+G7sSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2h1bmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5hdGFsaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU8O2ZGVyYmVyZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWnVkb2thdG8iLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTOG7sXUiLAogICAgICAgICJTdXJuYW1lIjogIk5naGnDqm0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhdmVseSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWtzZW5vdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hyaXN0b3BoZXIiLAogICAgICAgICJTdXJuYW1lIjogIlpvdG92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYXdpdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFnb3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkd1bmRvbHBobyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm9ha2VzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQnNC40YXQsNC40LsiLAogICAgICAgICJTdXJuYW1lIjogItCj0YHQv9C1zIHQvdGB0LrQuNC5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFcmlrIiwKICAgICAgICAiU3VybmFtZSI6ICJNb2VuY2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkplbnMiLAogICAgICAgICJTdXJuYW1lIjogIkthaXNlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlsZW5rbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVmlkYWtvdmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5nZWxpY28iLAogICAgICAgICJTdXJuYW1lIjogIkJpYW5jaGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hbnUiLAogICAgICAgICJTdXJuYW1lIjogIlBpaGxhdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNvbm5vciIsCiAgICAgICAgIlN1cm5hbWUiOiAiUHJldm9zdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWdib3JpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiWW9iYWNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUG9sbGEiLAogICAgICAgICJTdXJuYW1lIjogIlZpemlyb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkppdGthIiwKICAgICAgICAiU3VybmFtZSI6ICJaZXRvY2hvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYWlsZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWV3YWVsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGcmFudGnFoWVrIiwKICAgICAgICAiU3VybmFtZSI6ICJIYXZlbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWljaGFsIiwKICAgICAgICAiU3VybmFtZSI6ICJQcm9jaMOhemthIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJYnRpc2FtIiwKICAgICAgICAiU3VybmFtZSI6ICJJc3NhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguIrguLHguKLguKfguLjguJfguJgiLAogICAgICAgICJTdXJuYW1lIjogIuC4iuC4ueC4leC4tOC4p+C4tOC4qOC4uOC4l+C4mOC4tOC5jCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTnVpa28iLAogICAgICAgICJTdXJuYW1lIjogIkt1cm9zYXdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPbGl2ZXIiLAogICAgICAgICJTdXJuYW1lIjogIldpbnRlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpZ2JvZ3UiLAogICAgICAgICJTdXJuYW1lIjogIk9iaW9tYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxsaW5vciIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGF1Z2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlR1cm5lciIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmFuY291cnQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIldpbGxpYW0iLAogICAgICAgICJTdXJuYW1lIjogIkFuZHJlYXNzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkplYW4iLAogICAgICAgICJTdXJuYW1lIjogIkxhbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWEquWkqiIsCiAgICAgICAgIlN1cm5hbWUiOiAi5YW85qyhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMb2lzIiwKICAgICAgICAiU3VybmFtZSI6ICJCdXJucyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KLZgdix24zZhti0IiwKICAgICAgICAiU3VybmFtZSI6ICLYotiz2KfbjNi0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQZXJ2aW5jYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2FtZ2VlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEdWNvIiwKICAgICAgICAiU3VybmFtZSI6ICJMbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT2JpYWxvIiwKICAgICAgICAiU3VybmFtZSI6ICJPa2VrZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGhpbGlwcCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTnVzc2JhdW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsaWh1IiwKICAgICAgICAiU3VybmFtZSI6ICJIZXJuYW5kZXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhdXR1ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiU8OtbW9uYXJzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktvbWltYXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJJd2FzZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWJpZ2FpbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ29va2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlpvw6FyZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2lua3UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFyaWthc2hpa2FyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWNhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9zZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmFraXlhdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3VsdHlnb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRo4bqvbmciLAogICAgICAgICJTdXJuYW1lIjogIlRo4buneSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6LGKIiwKICAgICAgICAiU3VybmFtZSI6ICLmnKzlrq4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhbm5lbGUiLAogICAgICAgICJTdXJuYW1lIjogIkpva2VsYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHJhbnF1aWxsaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJUcmV2aXNhbm8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktyaXN0aW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJEYW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvcmRhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmljaG9sbHMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumAuOiPryIsCiAgICAgICAgIlN1cm5hbWUiOiAi5L2ZIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaHUiLAogICAgICAgICJTdXJuYW1lIjogIlbDtSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWJkdWwtQXppeiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2VpZiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2VubmV0aCIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2xpdm8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVkd2FyZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU291dGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWYWxlcmlhIiwKICAgICAgICAiU3VybmFtZSI6ICJJc2F5ZXZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGxpbm9yZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFydGluc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmluZG9zaGlraWt1dGEiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGVpIiwKICAgICAgICAiU3VybmFtZSI6ICJUaWVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSYXRrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS292YcSNZXZpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZlbGl4IiwKICAgICAgICAiU3VybmFtZSI6ICJMYXVyc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUaOG7jSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYWJ0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2VsYW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRoaWVycnkiLAogICAgICAgICJTdXJuYW1lIjogIlNvdXBsZXQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhbHZpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2h1YmIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklicmFraGltIiwKICAgICAgICAiU3VybmFtZSI6ICJLYWR5cm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQodC10YDQsNGE0LjQvNCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQodC+0YDQvtC60LjQvdCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDb3VydGxhbmQiLAogICAgICAgICJTdXJuYW1lIjogIkFzc2VsaW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlppdGUiLAogICAgICAgICJTdXJuYW1lIjogIkJyaXNlw7FvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYmJ5IiwKICAgICAgICAiU3VybmFtZSI6ICJLaXJzb3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdcOwdXIiLAogICAgICAgICJTdXJuYW1lIjogIkd1w7BnZWlyc2TDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsZXhhbmRlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFjRG9uYWxkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaMaw4budbmciLAogICAgICAgICJTdXJuYW1lIjogIkh14buzbmgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNwZW5jZXIiLAogICAgICAgICJTdXJuYW1lIjogIkplc3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIiBBemFiIiwKICAgICAgICAiU3VybmFtZSI6ICJRdXJhaXNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiX4LmJ4Lin4LiZIiwKICAgICAgICAiU3VybmFtZSI6ICLguJbguKfguLTguKXguKvguKfguLHguIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlp1ZmFuIiwKICAgICAgICAiU3VybmFtZSI6ICJBbWFudWVsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZXRoYW4iLAogICAgICAgICJTdXJuYW1lIjogIkh1Z2hlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3dhbW5pcnUiLAogICAgICAgICJTdXJuYW1lIjogIkdvbGliZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWVyaWsiLAogICAgICAgICJTdXJuYW1lIjogIkhhaGxpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdWJyZXkiLAogICAgICAgICJTdXJuYW1lIjogIkNvcm1pZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthamEiLAogICAgICAgICJTdXJuYW1lIjogIkZyacOwbGVpZnNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaHJpc3RvcGhlIiwKICAgICAgICAiU3VybmFtZSI6ICJSZXPDqW5kZXoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJlYmVjYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmVybmFuZGVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHdcOwasOzbmEiLAogICAgICAgICJTdXJuYW1lIjogIkFnbmFyc2TDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJpbmthc2hpamlraWt1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVkdmluIiwKICAgICAgICAiU3VybmFtZSI6ICJBcnZpZHNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkrDumxpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2lsdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuW6t+W5syIsCiAgICAgICAgIlN1cm5hbWUiOiAi6Z+z55SwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYXNwYXIiLAogICAgICAgICJTdXJuYW1lIjogIkxpbmRzdHLDtm0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlbmlvIiwKICAgICAgICAiU3VybmFtZSI6ICJOb3dhayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU8OmdmFyIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWdtYXJzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbWVsaWUiLAogICAgICAgICJTdXJuYW1lIjogIlBvbGxhayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmV0aGF3aXQiLAogICAgICAgICJTdXJuYW1lIjogIlRld2VsZGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkwgVGF2YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSyBtcGVjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGFuZGxlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiZGUgQ2hhdGVhdWIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktpbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmfDtCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQiBlbGFubmEiLAogICAgICAgICJTdXJuYW1lIjogIkRlbW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIaXBvbGl0IiwKICAgICAgICAiU3VybmFtZSI6ICJLYW1pxYRza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFkZWxpbmRhIiwKICAgICAgICAiU3VybmFtZSI6ICJDb3N0YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGVvbnRpIiwKICAgICAgICAiU3VybmFtZSI6ICJCb2hvbHl1Ym92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMIFRhbGkiLAogICAgICAgICJTdXJuYW1lIjogIk96aHByaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2lndXJib3JnIiwKICAgICAgICAiU3VybmFtZSI6ICJTdGVpbmTDs3JzZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiV29sZmdhbmciLAogICAgICAgICJTdXJuYW1lIjogIkt1bnplIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWJvciIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2Fob3VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWNob2xhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVyY2llciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9uYXRoYW4iLAogICAgICAgICJTdXJuYW1lIjogIldpbGxpYW1zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZW8iLAogICAgICAgICJTdXJuYW1lIjogIk1pbGxlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2VjaWxpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW5kZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJoeXMiLAogICAgICAgICJTdXJuYW1lIjogIkJhcm5ldHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNlY2lsaWUiLAogICAgICAgICJTdXJuYW1lIjogIk3DuGxsZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlVydWFoaWEiLAogICAgICAgICJTdXJuYW1lIjogIkliZWFidWNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWdvciIsCiAgICAgICAgIlN1cm5hbWUiOiAiS29ub3ZhbG92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPbGEiLAogICAgICAgICJTdXJuYW1lIjogIk5vcmJlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhbWFyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2hhZHpoaXlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9oYW5uZXMiLAogICAgICAgICJTdXJuYW1lIjogIk1hdGhpYXNzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvbmF0aG9uIiwKICAgICAgICAiU3VybmFtZSI6ICJSb2JlcnNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmluYXQiLAogICAgICAgICJTdXJuYW1lIjogIkZvbWluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLbGF1ZGlhIiwKICAgICAgICAiU3VybmFtZSI6ICJQYXVsdXNzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkluZXoiLAogICAgICAgICJTdXJuYW1lIjogIlN0ZWVyZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFjaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWNHcmVnb3IiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hbmRlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGVzc2FyZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmxha2UiLAogICAgICAgICJTdXJuYW1lIjogIk11bmR5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbm1hbnVlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmVudGVyw61hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYtNmH2KjYp9iyIiwKICAgICAgICAiU3VybmFtZSI6ICLar9mE24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhbnRlbGVpbW9uIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXR2ZXlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW50ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWF0acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLogrLnp4siLAogICAgICAgICJTdXJuYW1lIjogIumCoiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JrQsNGA0LsiLAogICAgICAgICJTdXJuYW1lIjogItCQ0LPQsNGE0L7MgdC90L7QsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2VtaGFyIiwKICAgICAgICAiU3VybmFtZSI6ICJBYnJhaGFtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCcm9kaWUiLAogICAgICAgICJTdXJuYW1lIjogIkFsbGVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZgdix2K/bjNmGIiwKICAgICAgICAiU3VybmFtZSI6ICLZvtin24zYr9in2LEg2LLYp9iv2YciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCd0LjQutC+0LvQsNC5IiwKICAgICAgICAiU3VybmFtZSI6ICLQn9C40YDQvtCz0L7QsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS3Jpc3RpbmUiLAogICAgICAgICJTdXJuYW1lIjogIk1hZHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2lnaHZhdHIiLAogICAgICAgICJTdXJuYW1lIjogIkZlbGl4c29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCb2phbiBKYW5leiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3RpxaFvdmnEjSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KfZhduM2K8iLAogICAgICAgICJTdXJuYW1lIjogIti02KfZhNqG24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvbWEiLAogICAgICAgICJTdXJuYW1lIjogIk1pY2hhZWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNhcm9saW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJBcmF1am8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVzb21jaGkiLAogICAgICAgICJTdXJuYW1lIjogIk9zb25kdWFnd3Vpa2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuazleWtkCIsCiAgICAgICAgIlN1cm5hbWUiOiAi5LiK6YeMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb3J0IiwKICAgICAgICAiU3VybmFtZSI6ICJSb2JiZXJ0c2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJVbmFncm90aCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6LuS6YqYIiwKICAgICAgICAiU3VybmFtZSI6ICLmr5siCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIti024zYsduM2YYiLAogICAgICAgICJTdXJuYW1lIjogItm+2KfYsdiz2KfZgdixIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWphbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUHJpZXRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJVcnVubmEiLAogICAgICAgICJTdXJuYW1lIjogIlVnb3JqaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmlsYXMiLAogICAgICAgICJTdXJuYW1lIjogIkx1bmRzdHLDtm0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4iOC4tOC4o+C5gOC4geC4teC4ouC4o+C4leC4tCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lic4Lil4Liy4Lic4LilIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOZWdpc3RpIiwKICAgICAgICAiU3VybmFtZSI6ICJOYXNpaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVwcGVpIiwKICAgICAgICAiU3VybmFtZSI6ICJOZW1vdG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsYmVydGUiLAogICAgICAgICJTdXJuYW1lIjogIkthcmxzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlVyamFzeiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS293YWxjenlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSZW5hdGEiLAogICAgICAgICJTdXJuYW1lIjogIlN0b2phbm92acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXRqYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVmFydmlvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYXJsZXkiLAogICAgICAgICJTdXJuYW1lIjogIkhvd2FyZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTW9jaGloaXJvIiwKICAgICAgICAiU3VybmFtZSI6ICJLaXRhbXVyYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiV2luY2VudHkiLAogICAgICAgICJTdXJuYW1lIjogIldvamNpZWNob3dza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlpoZW4iLAogICAgICAgICJTdXJuYW1lIjogIkhzaW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYW1lbHUiLAogICAgICAgICJTdXJuYW1lIjogIk5rZW1kaXJpbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGltb3Row6llIiwKICAgICAgICAiU3VybmFtZSI6ICJCb25hbWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoYXJsb3R0ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmxlaXNjaGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYXJnZW50IiwKICAgICAgICAiU3VybmFtZSI6ICJMYW1hcnJlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCcmF5ZGVuIiwKICAgICAgICAiU3VybmFtZSI6ICJEd3llciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGFybGV5IiwKICAgICAgICAiU3VybmFtZSI6ICJDb3giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4meC4seC4iuC4iuC4siIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Liq4Li44Lig4Liy4LieIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYXJseSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSm9obnN0b25lIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJSb2RyaWd1ZXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRvYnJpdm9qIiwKICAgICAgICAiU3VybmFtZSI6ICJHcnViZcWhacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOd2FueWlidWlmZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWhlYXR1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMaXYiLAogICAgICAgICJTdXJuYW1lIjogIkhhdWdlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2qnYp9mF2LHYp9mGIiwKICAgICAgICAiU3VybmFtZSI6ICLYsNmI2KfZhNmB2LnZhNuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQYXRyeWsiLAogICAgICAgICJTdXJuYW1lIjogIlJvc3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRpw7ByaWsiLAogICAgICAgICJTdXJuYW1lIjogIlZhbGRpbWFyc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4Liq4Li44Lio4Li04Lij4Li04LiB4Liy4LiN4LiN4LiyIiwKICAgICAgICAiU3VybmFtZSI6ICLguJTguLXguJ7guKPguKEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hpZG9jaGlyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmi5PkuZ8iLAogICAgICAgICJTdXJuYW1lIjogIuWurueArCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVybmFyZG8iLAogICAgICAgICJTdXJuYW1lIjogIk5hcG9saXRhbm8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpZW4iLAogICAgICAgICJTdXJuYW1lIjogIlRpbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklzYWFjIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJjaGV0ZXJyZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT2xpdmlhIiwKICAgICAgICAiU3VybmFtZSI6ICJGcmVkZXJpa3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6Zm4IiwKICAgICAgICAiU3VybmFtZSI6ICLkuIDkuYvngKwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1bGl1cyIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2xhdXNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmFpemFuIiwKICAgICAgICAiU3VybmFtZSI6ICJLZWxseSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFob21hIiwKICAgICAgICAiU3VybmFtZSI6ICJHYXN0ZWx1bSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4Liq4Li44LiY4Lix4LiN4Lie4Li04LiK4LiK4LiyIiwKICAgICAgICAiU3VybmFtZSI6ICLguYDguJTguLTguKHguKjguKPguLXguKDguLnguKHguLQg4LiTIOC4quC4geC4peC4meC4hOC4oyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmVuZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHN1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLDgWdhdGhhIiwKICAgICAgICAiU3VybmFtZSI6ICJTb3V6YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSHVkaGFpZmFoIiwKICAgICAgICAiU3VybmFtZSI6ICJTYWZhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4Lit4Lix4Lio4LiY4Lio4Li04Lip4LiQ4Li04LmMIiwKICAgICAgICAiU3VybmFtZSI6ICLguIHguLTguIjguYDguK3guLfguYnguK3guKfguLTguKPguLTguKLguLAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlTDom5pYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGlhcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5oG1576OIiwKICAgICAgICAiU3VybmFtZSI6ICLnn7PpjYsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmlzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2hhZHpoaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSb25qYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVHZldGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZdW4iLAogICAgICAgICJTdXJuYW1lIjogIkh1bmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoaWZ1bWkiLAogICAgICAgICJTdXJuYW1lIjogIkFyYWthd2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoZXNoeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR295dGlvbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS8Ohcm9seSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQm9yYsOhcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi55u05a2QIiwKICAgICAgICAiU3VybmFtZSI6ICLku4Hpg6giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1bGlhIiwKICAgICAgICAiU3VybmFtZSI6ICJaYXl0c2V2YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWm9ib3IiLAogICAgICAgICJTdXJuYW1lIjogIkJlbmNlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHZXJ0aCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2xlaXN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaWx2aWEiLAogICAgICAgICJTdXJuYW1lIjogIsOew7Nyw7NsZnNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTemVydsOhYyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU21pdHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhd2EiLAogICAgICAgICJTdXJuYW1lIjogIlZvbGtvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFuIiwKICAgICAgICAiU3VybmFtZSI6ICJSb3NpbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5rZW1kaXJpbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWppa2VtZWlmZXV3YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWV0aCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2xhc3EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhp4buBbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQsO5aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSsO6bGlvIiwKICAgICAgICAiU3VybmFtZSI6ICJPbGl2ZWlyYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6Zm95a2QIiwKICAgICAgICAiU3VybmFtZSI6ICLlpKflnLAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhvbGx5IiwKICAgICAgICAiU3VybmFtZSI6ICJXb29kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWF0cmljZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJhdWpvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSYWJpIGFoIiwKICAgICAgICAiU3VybmFtZSI6ICJBc3dhZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVyZXNpbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FsYWJyZXNpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmUiLAogICAgICAgICJTdXJuYW1lIjogIkVub2tzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkd1YW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJLYW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmmK3lrokiLAogICAgICAgICJTdXJuYW1lIjogIuW+kCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW51bmNpYWNpw7NuIiwKICAgICAgICAiU3VybmFtZSI6ICJUaXJhZG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRpYW4iLAogICAgICAgICJTdXJuYW1lIjogIkplbGXEjSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWm9zc2ltYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQnV0dXNvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWm95cmJlayIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGVzaGVyaXlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxmcmlkYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVnd29ydCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmFmbGFoIiwKICAgICAgICAiU3VybmFtZSI6ICJUYW5ub3VzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJdHN1a28iLAogICAgICAgICJTdXJuYW1lIjogIk9pa2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNvcm5lbGlhIiwKICAgICAgICAiU3VybmFtZSI6ICJTw6Z0cmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoaW5raSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FueWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlVydW5uYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT255ZWthb3p1bHUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCQ0LrQuNC8IiwKICAgICAgICAiU3VybmFtZSI6ICLQkNCy0LTQtdC10LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlb25hIiwKICAgICAgICAiU3VybmFtZSI6ICJHdXN0YWZzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSb3NhIiwKICAgICAgICAiU3VybmFtZSI6ICJKZXJlbWlhc3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVsIHBlaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9nb2R1c2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVsbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJlZGlhbmEiLAogICAgICAgICJTdXJuYW1lIjogIlNhbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGjDuXkiLAogICAgICAgICJTdXJuYW1lIjogIlbGsMahbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRhcmdobyIsCiAgICAgICAgIlN1cm5hbWUiOiAiWnVsb3IiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRlbW9zaGlraWFyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJNdXNpbG92w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRha2FyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXNhZGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRoYXJ3YWgiLAogICAgICAgICJTdXJuYW1lIjogIkFudGFyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdHN1a28iLAogICAgICAgICJTdXJuYW1lIjogIk9vdWNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWFkZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUnVieSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FtZXJvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmlrdG9yIiwKICAgICAgICAiU3VybmFtZSI6ICJCbG9tIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSb2JlcnQiLAogICAgICAgICJTdXJuYW1lIjogIlNoaW5lciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi55uI5Z2HIiwKICAgICAgICAiU3VybmFtZSI6ICLoooEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhbmVsbWEiLAogICAgICAgICJTdXJuYW1lIjogIlBlcsOkbMOkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYW5jeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FtcGxlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYWRpIiwKICAgICAgICAiU3VybmFtZSI6ICJQZXRlcnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhdmlkIiwKICAgICAgICAiU3VybmFtZSI6ICJIb2Jzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvZHJpZ28iLAogICAgICAgICJTdXJuYW1lIjogIkFsbWVpZGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuY2lsbGEiLAogICAgICAgICJTdXJuYW1lIjogIlZlcmhvZWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlcgTGlrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmVqYWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRvcmEiLAogICAgICAgICJTdXJuYW1lIjogIkJpbGnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm9yeXMiLAogICAgICAgICJTdXJuYW1lIjogIkphc2nFhHNraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVkeXRhIiwKICAgICAgICAiU3VybmFtZSI6ICJQYXfFgm93c2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbm5hIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJ0aW5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCYXRpciIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2FpcmJla292IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJVbHJpa2UiLAogICAgICAgICJTdXJuYW1lIjogIktvZWhsZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphcm5vIiwKICAgICAgICAiU3VybmFtZSI6ICJOaWluaW1hYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlrYWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJMdW5kYmxhZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxpc2EiLAogICAgICAgICJTdXJuYW1lIjogIkRyYWdpxI1ldmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWWV0ZXIiLAogICAgICAgICJTdXJuYW1lIjogIkJsaWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhcmEiLAogICAgICAgICJTdXJuYW1lIjogIlppZWdsZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkTFvmVuYW4iLAogICAgICAgICJTdXJuYW1lIjogIktyxb5vdnNraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpcmltb3JpbmthYXJpIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklmZXlpbndhIiwKICAgICAgICAiU3VybmFtZSI6ICJPbnllbWF1Y2hlY2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXVrbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSm9rZWxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUZXJlemEiLAogICAgICAgICJTdXJuYW1lIjogIktvbGFyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJadWthcmlua2lrdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWYWxlbnRpbmEiLAogICAgICAgICJTdXJuYW1lIjogIlTFmcOtc2tvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYXNtaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJPxb5hbmnEjSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVm9qbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiUG9oYXJjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYW50YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQm9mZmluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaW50byIsCiAgICAgICAgIlN1cm5hbWUiOiAiTG90aHJhbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFuZGVsIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWNhcmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4lOC4suC4o+C4tOC4meC4l+C4o+C5jCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lij4Liy4LiB4Lie4Li44LiU4LiL4LiyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGVyaXF1ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT3ZlcndlZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGF3YmFoIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGFsaG91YiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmVzc2UiLAogICAgICAgICJTdXJuYW1lIjogIldpc2RvbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxla3NhbmRyaWphIiwKICAgICAgICAiU3VybmFtZSI6ICJCbGFnb3ZpxI0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVtaWxlIiwKICAgICAgICAiU3VybmFtZSI6ICJIZW5yaWtzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBldHJpbmUiLAogICAgICAgICJTdXJuYW1lIjogIkx1bmRibGFkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWZW5lcmFuZG8iLAogICAgICAgICJTdXJuYW1lIjogIkx1Y2NpYW5vIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDdWkiLAogICAgICAgICJTdXJuYW1lIjogIlQgYW8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIllhc2luIiwKICAgICAgICAiU3VybmFtZSI6ICJPdHRlcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9ieSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR291ZHJpYWFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYXJvc2xhdiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FkbGVjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguJXguLHguJnguKvguKLguIciLAogICAgICAgICJTdXJuYW1lIjogIuC4hOC4s+C5guC4ruC4hyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTG9rZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGluZGJlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpbm5lbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVuZ3VpYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5kcmVhIiwKICAgICAgICAiU3VybmFtZSI6ICJVbmdlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJhbmNpcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2FyZG5lciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVnYW4iLAogICAgICAgICJTdXJuYW1lIjogIk5hZ2xlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb21pbmlxdWUiLAogICAgICAgICJTdXJuYW1lIjogIkdlcnJpdHMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVyaW4iLAogICAgICAgICJTdXJuYW1lIjogIklmb3VsZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiB4Li14LiV4Li0IiwKICAgICAgICAiU3VybmFtZSI6ICLguIHguKfguLHguIHguYHguIHguYnguKciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFtZWxpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3Ryw7ZtYmVyZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUMOhem3DoW4iLAogICAgICAgICJTdXJuYW1lIjogIkJlbmN6aWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4l+C4p+C4teC5gOC4geC4teC4ouC4o+C4leC4tCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Liq4LiZ4Liy4Lih4LiX4Lit4LiHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGlzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWxpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJc2EiLAogICAgICAgICJTdXJuYW1lIjogIktpc2hpZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoZW4iLAogICAgICAgICJTdXJuYW1lIjogIkhzaWFvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYXRoYW5lbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmFpbWVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBZmlmYWgiLAogICAgICAgICJTdXJuYW1lIjogIkNoYW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhY2hhZWwiLAogICAgICAgICJTdXJuYW1lIjogIkNhbWVyb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktpZmxlIiwKICAgICAgICAiU3VybmFtZSI6ICJTZWJoYXQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hbGVuZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGFobCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiE4Lih4LiT4Lij4LiH4LiE4LmMIiwKICAgICAgICAiU3VybmFtZSI6ICLguJrguLHguKfguJrguLLguIfguIHguKPguLnguJQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuaWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWxpamnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHlsZXIiLAogICAgICAgICJTdXJuYW1lIjogIkRvZGQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaWVtZW5hbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpYXphZ29tZWtwZWxlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJM4buLY2giLAogICAgICAgICJTdXJuYW1lIjogIsSQaW5oIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDYXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJCdXR0b24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItii2YjbjNqY2YciLAogICAgICAgICJTdXJuYW1lIjogItio2YfZhdmG2LQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRoaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGjDuW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCYXJ0bGV0dCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGFDYWlsbGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJlbnQiLAogICAgICAgICJTdXJuYW1lIjogIkJlcnRlbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVpIiwKICAgICAgICAiU3VybmFtZSI6ICJXYXRhbmFiZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2ltcmV0IiwKICAgICAgICAiU3VybmFtZSI6ICJNZWRoYW5lIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLcmlzdGlubiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFyw7BhcnNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5kxJtsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3JvdGlsb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGVvbmllIiwKICAgICAgICAiU3VybmFtZSI6ICJ2YW4gZGUgR3JpZW5kdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVnYW4iLAogICAgICAgICJTdXJuYW1lIjogIkZvcmJlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlra2VsIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXRoaWFzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNsb3ZlbmtvIiwKICAgICAgICAiU3VybmFtZSI6ICJKYWtvxaEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pY2jDqGxlIiwKICAgICAgICAiU3VybmFtZSI6ICJMYWxvbmRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJObmVubmEiLAogICAgICAgICJTdXJuYW1lIjogIkFuZW5lY2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHYWJyaWVsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWljaGFsc2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYSBSYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FtcmlsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaYXluZGkiLAogICAgICAgICJTdXJuYW1lIjogIlZpemlyb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIueUsee+jiIsCiAgICAgICAgIlN1cm5hbWUiOiAi6YWS6LC3IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbWJlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiR29uemFsZXoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJ5ZGVyIiwKICAgICAgICAiU3VybmFtZSI6ICJDcm9uaW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhbmgiLAogICAgICAgICJTdXJuYW1lIjogIk5nw7QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItm+2LHYtNin2YYiLAogICAgICAgICJTdXJuYW1lIjogItix2KfYstuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaWV1d2VyZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3J1aWRob2YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNlbGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTnliZXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBc3Bob2RlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUHVkZGlmb290IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdGVmYW4iLAogICAgICAgICJTdXJuYW1lIjogIkhvdmxhbmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFzc2luYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2FtYXRvIiwKICAgICAgICAiU3VybmFtZSI6ICJBcmF4YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmFkaW0iLAogICAgICAgICJTdXJuYW1lIjogIlRva2FyeWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGcmFudGnFoWVrIiwKICAgICAgICAiU3VybmFtZSI6ICJaYWhyYWRuw61rIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLkuK3olociLAogICAgICAgICJTdXJuYW1lIjogIumDnSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWF0aWphIiwKICAgICAgICAiU3VybmFtZSI6ICJUb3BpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN2ZXJyaXIiLAogICAgICAgICJTdXJuYW1lIjogIkZyw7PDsGFzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhaWxlIiwKICAgICAgICAiU3VybmFtZSI6ICJJZHJpcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJhZGxleSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWxsYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFkYWxmcmVkbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9zc2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4meC4seC4kOC4meC4tOC4oOC4siIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LmA4Lit4LiV4Li04Lij4Lix4LiV4LiZ4LmMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTY2FybGV0IiwKICAgICAgICAiU3VybmFtZSI6ICJNY0RvbmFsZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5YygIiwKICAgICAgICAiU3VybmFtZSI6ICLol6Tln44iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFzayIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGFyc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGRhIiwKICAgICAgICAiU3VybmFtZSI6ICJNb3JldHRpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJVZG9rYW1tYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2JpYWxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHbGVuIiwKICAgICAgICAiU3VybmFtZSI6ICJTbWl0aCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW50aG9uaWUiLAogICAgICAgICJTdXJuYW1lIjogIlNuZWVwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaHXhuq1uIiwKICAgICAgICAiU3VybmFtZSI6ICJOZ3V54buFbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSOG7mWkiLAogICAgICAgICJTdXJuYW1lIjogIkhvw6BuZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmVnYW4iLAogICAgICAgICJTdXJuYW1lIjogIkJlbGwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWkqumZvSIsCiAgICAgICAgIlN1cm5hbWUiOiAi6Jek5Z6jIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTeWx2w61hIiwKICAgICAgICAiU3VybmFtZSI6ICJHcsOtbXNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZdWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJDaGVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIZW5lZGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FudGFuYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmFyaWhhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFzaWgiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktsYXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJNYWhhbWVkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSYWNoZWwiLAogICAgICAgICJTdXJuYW1lIjogIk1jTWVja2FuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJrdXMiLAogICAgICAgICJTdXJuYW1lIjogIkxpbmRhbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2xlbWVucyIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2llY3pvcmVrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNZXJsaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXJhamFzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUZWFybGFjaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRCBBb3VzdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ29yYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiWWVybW9sYXlldmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRhdHN1cm91IiwKICAgICAgICAiU3VybmFtZSI6ICJOdW1hdGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsZW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJUdnJ6b3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FzY2hhIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWtvcmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFnbmllc3prYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm93YWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvIEthIiwKICAgICAgICAiU3VybmFtZSI6ICJCb2xsb2NoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEZW5uaXMiLAogICAgICAgICJTdXJuYW1lIjogIk9sZXNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSyB0cm9rIiwKICAgICAgICAiU3VybmFtZSI6ICJLZWxsZWluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKdWxpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRm9yc3NlbGwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVrd3VlbWUiLAogICAgICAgICJTdXJuYW1lIjogIk53b2tpa2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklzYWJlbGxhIiwKICAgICAgICAiU3VybmFtZSI6ICJPIE5laWxsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOa2lydWthIiwKICAgICAgICAiU3VybmFtZSI6ICJDaHVrd3VoYWVueWUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNodSBGYW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJMbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmF5IiwKICAgICAgICAiU3VybmFtZSI6ICJPd2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWtsYXMiLAogICAgICAgICJTdXJuYW1lIjogIkxlbWluZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVkaW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJIZXJjemVnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLpm4XoirMiLAogICAgICAgICJTdXJuYW1lIjogIuWPsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxkYXIiLAogICAgICAgICJTdXJuYW1lIjogIkFsZWtzZXlldmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pa29sYWoiLAogICAgICAgICJTdXJuYW1lIjogIlNpbW9uc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIaXJvdG8iLAogICAgICAgICJTdXJuYW1lIjogIkFyYWtha2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNhbWVyb24iLAogICAgICAgICJTdXJuYW1lIjogIk1vcmVubyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSG/DoGkiLAogICAgICAgICJTdXJuYW1lIjogIk1haSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSG9ub3JlIiwKICAgICAgICAiU3VybmFtZSI6ICJNb25yZW5jeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm/FvmlkYXIiLAogICAgICAgICJTdXJuYW1lIjogIk1hdGtvdmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXNlbGluIiwKICAgICAgICAiU3VybmFtZSI6ICJMdW5kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguILguKfguLHguI3guYDguJ7guIrguKMiLAogICAgICAgICJTdXJuYW1lIjogIuC5gOC4geC4tOC4lOC4peC4suC4oCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9zYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUHVkZGlmb290IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaYXJpbmEiLAogICAgICAgICJTdXJuYW1lIjogIktvbm92YWxvdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFmYW1lZnVuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpYWx1a2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuW9peW7tyIsCiAgICAgICAgIlN1cm5hbWUiOiAi5pa5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWxpayIsCiAgICAgICAgIlN1cm5hbWUiOiAiSsO4cmdlbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hyaXN0aW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJLasOmciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FiaWhhIiwKICAgICAgICAiU3VybmFtZSI6ICJOaWpob2x0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYWkiLAogICAgICAgICJTdXJuYW1lIjogIlBlcmVpcmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRvcm90YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3VjaGFyc2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFdWZlbWlvIiwKICAgICAgICAiU3VybmFtZSI6ICJCb3RlbGxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXJpdGEiLAogICAgICAgICJTdXJuYW1lIjogIkhhdXRhbmllbWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZhaXRoIiwKICAgICAgICAiU3VybmFtZSI6ICJBYmFrdW1vdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaW1vdG9mdWthIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNow7pjIiwKICAgICAgICAiU3VybmFtZSI6ICJWxakiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2FuaW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvc2EiLAogICAgICAgICJTdXJuYW1lIjogIlNqw7ZiZXJnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFdmVseW4iLAogICAgICAgICJTdXJuYW1lIjogIkFydHlvbW92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGluZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiWWVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaHJpc3RpbmUiLAogICAgICAgICJTdXJuYW1lIjogIkRyZXNkbmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSb21hbmNlIiwKICAgICAgICAiU3VybmFtZSI6ICJMb2VyYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2xhdWRpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFobGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdGVmYW4iLAogICAgICAgICJTdXJuYW1lIjogIk1laXN0ZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pY2hhZWwiLAogICAgICAgICJTdXJuYW1lIjogIkphZ2VyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWlhIiwKICAgICAgICAiU3VybmFtZSI6ICJXYXJlbGl1cyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW1hZGV1c3oiLAogICAgICAgICJTdXJuYW1lIjogIlBpb3Ryb3dza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hcmNlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiWmVsaW5rYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGF0b255IiwKICAgICAgICAiU3VybmFtZSI6ICJCZW5jaWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFtZWNoaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGlrZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGVuaXMiLAogICAgICAgICJTdXJuYW1lIjogIkpha8WhacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW1kaWphIiwKICAgICAgICAiU3VybmFtZSI6ICJLYW1pbGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1biIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG91IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQYXRyaWNrIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItii2LHYtCIsCiAgICAgICAgIlN1cm5hbWUiOiAi2YLYstmI24zZhtuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDbGF1ZGlhIiwKICAgICAgICAiU3VybmFtZSI6ICJMZW1hbm4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlF1eSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVHLGsMahbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4quC4uOC4m+C4lOC4tOC4p+C4o+C4seC4lOC4lOC4siIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lit4Lii4Li54LmI4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaWVyYW4iLAogICAgICAgICJTdXJuYW1lIjogIlNhbmRlcnNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXVnZW5pZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2VybsOpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbXkiLAogICAgICAgICJTdXJuYW1lIjogIkxpbmRzdHLDtm0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVnbGFudGluZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG9vayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6J6iIiwKICAgICAgICAiU3VybmFtZSI6ICLosYrnlZkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxlaWZ1ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVuZWRpa3Rzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW4iLAogICAgICAgICJTdXJuYW1lIjogIk9zdGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGljZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWljaGF1ZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTCBBcmVuIiwKICAgICAgICAiU3VybmFtZSI6ICJMYWNrb2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkp1a2thIiwKICAgICAgICAiU3VybmFtZSI6ICJOaWtrb2xhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSZWJlY2NhIiwKICAgICAgICAiU3VybmFtZSI6ICJEb23DrW5ndWV6IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFZ2lsbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJua2Vsc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3VvIiwKICAgICAgICAiU3VybmFtZSI6ICJDaGVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZW9uIiwKICAgICAgICAiU3VybmFtZSI6ICJIb3J2YXQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhbXphIiwKICAgICAgICAiU3VybmFtZSI6ICJNb29yZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiV2VuIiwKICAgICAgICAiU3VybmFtZSI6ICJIdW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCcnVuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FyZG9zbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVsb253dSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpZWJ1a2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV2YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG9yw6Frb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiw4Fnw7pzdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiUsOzYmVydHNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRva2F0b21pZnUiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSiBHcmFsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmVnb3JpYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVrYnVsYXQiLAogICAgICAgICJTdXJuYW1lIjogIklicmFnaW1vdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJ1bm8iLAogICAgICAgICJTdXJuYW1lIjogIkZvbGxpZXJvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZWJhc3RpYW4iLAogICAgICAgICJTdXJuYW1lIjogIlN0ZXBoZW5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWRkaXNvbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmVldGhhbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3ZlaW5iasO2cm4iLAogICAgICAgICJTdXJuYW1lIjogIlN1bWFybGnDsGFzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGFyc29ucyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJpb3N0byIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmlvcmVudGluaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWljaGFlbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGFuZ2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNhcm9sYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2F0YWppc3RvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSdW1hbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FkeXJvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9sbGEiLAogICAgICAgICJTdXJuYW1lIjogIlPDuHJlbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2YHYsdi02KrZhyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LPYp9mI2KzbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmF0c3VoaXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJZYW1hc2hpdGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvxZtjaXPFgmF3IiwKICAgICAgICAiU3VybmFtZSI6ICJLdWNoYXJza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1iYW5lZm8iLAogICAgICAgICJTdXJuYW1lIjogIk9ud3VlbWVsaWUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlR1eWV0IiwKICAgICAgICAiU3VybmFtZSI6ICJCaWVzaGFhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGhpZW1vIiwKICAgICAgICAiU3VybmFtZSI6ICJTY2hpcHBlcnMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhdWxpbmUiLAogICAgICAgICJTdXJuYW1lIjogIkpvc2Vmc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaXRyb2ZhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGF2cmVudGlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWEiLAogICAgICAgICJTdXJuYW1lIjogIk1hZHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWzFvmLEm3RhIiwKICAgICAgICAiU3VybmFtZSI6ICJUdnJ6bsOta292w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCc0LDRgNC40LDQvdC90LAiLAogICAgICAgICJTdXJuYW1lIjogItCU0LXQs9GC0Y/RgNGR0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KjZh9mG2KfYsiIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LPZhduM2Lkg2YbamNin2K8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktvc2lzb2NodWt3dSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVXdha3dlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJCasO2cm5zZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2VuZXJvc2EiLAogICAgICAgICJTdXJuYW1lIjogIkdhbGxvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZhduM2LTYpyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LfYp9mH2LHZhtqY2KfYryIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGFyY2llIiwKICAgICAgICAiU3VybmFtZSI6ICJNdXJyYXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhd2XFgiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS293YWxjenlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguKrguLjguJnguLHguI3guIrguKXguLTguI7guLIiLAogICAgICAgICJTdXJuYW1lIjogIuC4nuC4tOC4oeC4tOC4leC4oyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0KHQtdCy0LDRgdGC0YzRj9C9IiwKICAgICAgICAiU3VybmFtZSI6ICLQkdC10LvRj9C60L7QsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5zZWxtYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQXJtaWpvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiWWVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLpm4XmgakiLAogICAgICAgICJTdXJuYW1lIjogIuaelyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiE4LiZ4Lit4LiH4Lik4LiX4LiY4Li04LmMIiwKICAgICAgICAiU3VybmFtZSI6ICLguKLguLTguKEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoYWhhYiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmF6aGFldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6IKy5b63IiwKICAgICAgICAiU3VybmFtZSI6ICLmsaoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxvZ2lzdGlsbGEiLAogICAgICAgICJTdXJuYW1lIjogIkNsYXZldHRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCaWxkYXQiLAogICAgICAgICJTdXJuYW1lIjogIkdvb2RjaGlsZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGFpbGEiLAogICAgICAgICJTdXJuYW1lIjogIkdyb29wIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHYXJyeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiZGUgS3VpcGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLlrrbpipgiLAogICAgICAgICJTdXJuYW1lIjogIuWKiSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5a6fIiwKICAgICAgICAiU3VybmFtZSI6ICLml6noiLkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklzYWJlbGEiLAogICAgICAgICJTdXJuYW1lIjogIlBydXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pY2siLAogICAgICAgICJTdXJuYW1lIjogIk9sZGJ1Y2siCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmllcm1hbm4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktvc2lzb2NodWt3dSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpa2VsdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRnJlaiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVyZ2x1bmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNocmlzdGluZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFobiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW50b27DrW4iLAogICAgICAgICJTdXJuYW1lIjogIk1pa8WhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGFybG90IiwKICAgICAgICAiU3VybmFtZSI6ICJMYW1hcmUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvbcOhxaEiLAogICAgICAgICJTdXJuYW1lIjogIk7Em21lYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTm9vaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmFzZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkt1dGFhcmlraWt1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNhbWlsbGEiLAogICAgICAgICJTdXJuYW1lIjogIkFnYXBvdmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZhbm5pIiwKICAgICAgICAiU3VybmFtZSI6ICJTYWxsYXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxsb3lkIiwKICAgICAgICAiU3VybmFtZSI6ICJXYWxzdHJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCYXNpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmFzacWEc2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmhJvlrZAiLAogICAgICAgICJTdXJuYW1lIjogIumztOWztiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWnDsHVyIiwKICAgICAgICAiU3VybmFtZSI6ICJHaXNzdXJhcnNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXZhIiwKICAgICAgICAiU3VybmFtZSI6ICLFoG3DrWRvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGlhemFnb21la3BlbGUiLAogICAgICAgICJTdXJuYW1lIjogIk9ueWVtYWVjaGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktyaXN0aW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJUb2Z0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEb2RpbmFzIiwKICAgICAgICAiU3VybmFtZSI6ICJIb3JuYmxvd2VyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdXphbm5lIiwKICAgICAgICAiU3VybmFtZSI6ICJNY0dlZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXdhIiwKICAgICAgICAiU3VybmFtZSI6ICJ2YW4gRHJ1dGVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXNsaW4iLAogICAgICAgICJTdXJuYW1lIjogIlJpcXVpZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhYnJ5c2lhIiwKICAgICAgICAiU3VybmFtZSI6ICJaYXdhZHprYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2F5ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWxkYXJraGFub3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItii2LHZhduM2YbYpyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2K7ZiNuM24zZhtuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYWhsaWEiLAogICAgICAgICJTdXJuYW1lIjogIk11cmlsbG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV2ZWxpbmEiLAogICAgICAgICJTdXJuYW1lIjogIkxlaXZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQb3VsIiwKICAgICAgICAiU3VybmFtZSI6ICJCZXJ0aGVsc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSdWRpIiwKICAgICAgICAiU3VybmFtZSI6ICJNY0RvbmFsZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGV0aW1hdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmF0dWtheWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJXYW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJGdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGVua2EiLAogICAgICAgICJTdXJuYW1lIjogIkhsYXbDocSNb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWljaGVsbGUiLAogICAgICAgICJTdXJuYW1lIjogIkdhdGhlcnMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9jdGF2ZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGhpYm9kZWF1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMw6lhbm5lIiwKICAgICAgICAiU3VybmFtZSI6ICJSb29yZGluayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5kZXJzIiwKICAgICAgICAiU3VybmFtZSI6ICJMw7h2c3Ryw7htIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaGF2YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGFub3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNZXJsw61uIiwKICAgICAgICAiU3VybmFtZSI6ICJQZWRyb3phIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFa3d1dG9zaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2tvbGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIsSQw6BvIiwKICAgICAgICAiU3VybmFtZSI6ICJU4bqhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKw7hyZ2VuIiwKICAgICAgICAiU3VybmFtZSI6ICJKYWtvYnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3NrYXIiLAogICAgICAgICJTdXJuYW1lIjogIkhlbnJpa3NlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGlib3IiLAogICAgICAgICJTdXJuYW1lIjogIkfDoWxsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUb3NoIiwKICAgICAgICAiU3VybmFtZSI6ICJIb2xzdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3V6aWUiLAogICAgICAgICJTdXJuYW1lIjogIlZlcmR1aWpuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGdW1peW8iLAogICAgICAgICJTdXJuYW1lIjogIklub3VlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTY290dCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG93YXJkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXppbWlyIiwKICAgICAgICAiU3VybmFtZSI6ICJTdGlwYW5vdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUsOibiIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGjhu6d5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpc2EiLAogICAgICAgICJTdXJuYW1lIjogIkRpYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN1c2FubmUiLAogICAgICAgICJTdXJuYW1lIjogIkNocmlzdGVuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb2FvIiwKICAgICAgICAiU3VybmFtZSI6ICJMaW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSb3phIiwKICAgICAgICAiU3VybmFtZSI6ICJHb2RpbmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhdG9ueSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU21pdHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklzZW5nYXIiLAogICAgICAgICJTdXJuYW1lIjogIkxpZ2h0Zm9vdCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2K7Ys9ix2YgiLAogICAgICAgICJTdXJuYW1lIjogItiq2YLZiNuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdW1tZXIiLAogICAgICAgICJTdXJuYW1lIjogIkZyeWVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIYW5uYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiWsOhbGXFocOha292w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphcm9zbGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJCaXR0bmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEdcWhYW4iLAogICAgICAgICJTdXJuYW1lIjogIlNtw63FoWVrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGlhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2lsZGFobCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJvbmlzbGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJOxJttZWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNsYXVkaWEiLAogICAgICAgICJTdXJuYW1lIjogIklseWluYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFuY2h1IiwKICAgICAgICAiU3VybmFtZSI6ICJDaCBhbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvxaFrbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm92YWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuWtneaFiCIsCiAgICAgICAgIlN1cm5hbWUiOiAi6YeRIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWNoYWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJLb3ZhbGV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGZWxpeCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2luY2xhaXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhamlkYWgiLAogICAgICAgICJTdXJuYW1lIjogIkFiYm91ZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxpY2lhIiwKICAgICAgICAiU3VybmFtZSI6ICJSaXZldHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFubmEiLAogICAgICAgICJTdXJuYW1lIjogIkhlaWxtYW5uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHYWJyaWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJIaWNrc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUw7NtYXMiLAogICAgICAgICJTdXJuYW1lIjogIkFybm9sZHNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItmB2LHYrdmG2KfYsiIsCiAgICAgICAgIlN1cm5hbWUiOiAi2b7YsdmI24zYstuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmmbrlrZAiLAogICAgICAgICJTdXJuYW1lIjogIuS7iuadkSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWRnYXIiLAogICAgICAgICJTdXJuYW1lIjogIkpvaG5zb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlcmliYWxkIiwKICAgICAgICAiU3VybmFtZSI6ICJHb2xkd29ydGh5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSaW5rdXRha2lhcmlhcmlrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdW1tZXIiLAogICAgICAgICJTdXJuYW1lIjogIkZhdWxrbmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOZWliZXIiLAogICAgICAgICJTdXJuYW1lIjogIlJvZGFydGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdlcmdlbHkiLAogICAgICAgICJTdXJuYW1lIjogIlN6w7RsbMO2c2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9iaXV0byIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FtZGliZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGluYWgiLAogICAgICAgICJTdXJuYW1lIjogIk1vZ2hhZGFtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmraPljZoiLAogICAgICAgICJTdXJuYW1lIjogIuiKseadkSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVyBNYXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJTZWV0aCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmljb2RlbXVzIiwKICAgICAgICAiU3VybmFtZSI6ICJCYXphcm92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWaXJnaW5pYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm91c2V5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYWZhIiwKICAgICAgICAiU3VybmFtZSI6ICJUdW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMdWR2aWciLAogICAgICAgICJTdXJuYW1lIjogIkNocmlzdGVuc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJCb3JvdnNrw6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk11YmluIiwKICAgICAgICAiU3VybmFtZSI6ICJLb3VyaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGFydmV5IiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJzaGFsbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5kcmVhIiwKICAgICAgICAiU3VybmFtZSI6ICJOb3ZhayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFkaWhhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFnb3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkx1Y2FzIiwKICAgICAgICAiU3VybmFtZSI6ICJGYXNzYmluZGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTYXVsIiwKICAgICAgICAiU3VybmFtZSI6ICJSdWlqdGVycyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFqIiwKICAgICAgICAiU3VybmFtZSI6ICJOYXNzYXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkF4ZWwiLAogICAgICAgICJTdXJuYW1lIjogIsOew7NyaXNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pY2hhZWwiLAogICAgICAgICJTdXJuYW1lIjogIk1hdGhpYXNzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoZXJpcCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3VsdGFub3ZpY2giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVsaWV6ZXIiLAogICAgICAgICJTdXJuYW1lIjogIk1vbnRhbHZvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZhdmH2LTYp9ivIiwKICAgICAgICAiU3VybmFtZSI6ICLYrtiv2KfYqNmG2K/ZhyDZhNmIIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZXJuYXJkIiwKICAgICAgICAiU3VybmFtZSI6ICJQb3VsaW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuixqumciCIsCiAgICAgICAgIlN1cm5hbWUiOiAi6Zu3IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUcnV54buBbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmfDtCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxsZW4iLAogICAgICAgICJTdXJuYW1lIjogIkJqw7ZyayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSiBSZW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJQYXN3dXQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5hZGlhIiwKICAgICAgICAiU3VybmFtZSI6ICJUb2Z0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIZW5kaW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJCdXJyb3dzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbnRqZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWNoZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJpbmthc2hpYXJpcmlrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJXaWt0b3IiLAogICAgICAgICJTdXJuYW1lIjogIlBpb3Ryb3dza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9ub2R1Z29hZGllZ2JlbW1hIiwKICAgICAgICAiU3VybmFtZSI6ICJFZ29idWRpa2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhbXphbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FyYXRhZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJydW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJDYXN0cm8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvbmFoIiwKICAgICAgICAiU3VybmFtZSI6ICJTw6FuY2hleiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiX4Lin4Lie4LilIiwKICAgICAgICAiU3VybmFtZSI6ICLguYDguKrguKHguK3guJ7guJoiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRyYWdvIiwKICAgICAgICAiU3VybmFtZSI6ICJCaWxpxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIua3keiKrCIsCiAgICAgICAgIlN1cm5hbWUiOiAi5ZGCIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGcnlkcnljaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2/Fum5pYWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZpdGFsaWkiLAogICAgICAgICJTdXJuYW1lIjogIlbDoWxlayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2V2aW4iLAogICAgICAgICJTdXJuYW1lIjogIkJlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhYnJpZWwiLAogICAgICAgICJTdXJuYW1lIjogIkFsdmVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLnvo7lhKoiLAogICAgICAgICJTdXJuYW1lIjogIuS6lOWRs+a3tSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAixb1lbGltaXIiLAogICAgICAgICJTdXJuYW1lIjogIk1hxJFhciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3RhbmlzbGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJQb2tvcmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRyaXN0YW4iLAogICAgICAgICJTdXJuYW1lIjogIkpvaG5zdG9uZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmFyaWZhIiwKICAgICAgICAiU3VybmFtZSI6ICJNZWpvdsWhZWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkV2YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmlua292w6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlbGVuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHJ2YXQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsZWtzYW5kZXIiLAogICAgICAgICJTdXJuYW1lIjogIlNhbGluYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9ueWVrYWNoaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2dvY2h1a3d1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCcm9uaXPFgmF3YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2FsaW5vd3NrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW50b27DrW4iLAogICAgICAgICJTdXJuYW1lIjogIktvdsOhxZkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItm+24zZhdin2YbZhyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2KjZhtmB2LTZhyDYrtmI2KfZhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGFyayIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHPDvGVoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmRyZWEiLAogICAgICAgICJTdXJuYW1lIjogIktvdsOhxZlvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKaWFuZyBMaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNb25pa2EiLAogICAgICAgICJTdXJuYW1lIjogIkJpc3NlbGluayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS3Jpc3RpYW4iLAogICAgICAgICJTdXJuYW1lIjogIkJlY2tlbmJhdWVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWthLU1hdHRpIiwKICAgICAgICAiU3VybmFtZSI6ICJIYXJpbGEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhZ28iLAogICAgICAgICJTdXJuYW1lIjogIkJyYW5kYWdhbWJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZW5rYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW50dW5vdmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3V5bGlhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGVya3giCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJpa2tlIiwKICAgICAgICAiU3VybmFtZSI6ICJDaHJpc3RvZmZlcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JDQvdGE0LjRgdCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQltC00LDQvdC+0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW5lbmVjaGkiLAogICAgICAgICJTdXJuYW1lIjogIkFrdWJ1bmR1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZYWtoYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGFub3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPa2ltaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW9raSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmlubiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTm9yZG5lcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtdWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJMb8SNacSNbmlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBeWRlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWxleGFuZGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbGVhbm9yIiwKICAgICAgICAiU3VybmFtZSI6ICJNaWxscyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGlyayIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGZlaWZmZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIll1dWljaGkiLAogICAgICAgICJTdXJuYW1lIjogIkFtYW5vIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKZW5zIiwKICAgICAgICAiU3VybmFtZSI6ICJBbmRlcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmFuZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2F0c29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmtbfmlpciLAogICAgICAgICJTdXJuYW1lIjogIueqquWckiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0KDQvtC00LjQvtC9IiwKICAgICAgICAiU3VybmFtZSI6ICLQn9Cw0YXQu9C+IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZWJhc3RpYW4iLAogICAgICAgICJTdXJuYW1lIjogIkdvb2xkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbml0YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGF2aWRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUc2VhcmQiLAogICAgICAgICJTdXJuYW1lIjogInZhbiBPdXdlcmtlcmsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIiBVYmFpZGFoIiwKICAgICAgICAiU3VybmFtZSI6ICJIYWlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEdWdhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGVtdXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvbW15IiwKICAgICAgICAiU3VybmFtZSI6ICJ2YW4gZGVyIFp3YWFnIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKYXNuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmVsacSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQYW5kb3JhIiwKICAgICAgICAiU3VybmFtZSI6ICJDaHViYiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTW9zZXMiLAogICAgICAgICJTdXJuYW1lIjogIkxvZ2lub3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hdGlsZGEiLAogICAgICAgICJTdXJuYW1lIjogIkJhbGR3aW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN1bGltYW4iLAogICAgICAgICJTdXJuYW1lIjogIkNoaWNoaWdvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2LTZh9ix2K/Yp9ivIiwKICAgICAgICAiU3VybmFtZSI6ICLYsdin2LLbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JjRgdCw0LjRjyIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JLQvtC70L7QtNC40L0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIll1ZSBZb3UiLAogICAgICAgICJTdXJuYW1lIjogIkhvdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmVhbHR5IiwKICAgICAgICAiU3VybmFtZSI6ICJMYW1vdXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS28iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJlbmlrbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2VraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2lkb24iLAogICAgICAgICJTdXJuYW1lIjogIlZlcmJ1cmd0IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMZW5uYWVydCIsCiAgICAgICAgIlN1cm5hbWUiOiAiWmVndmVsZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXZhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWNrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGcmVkZGllIiwKICAgICAgICAiU3VybmFtZSI6ICJIb2JicyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGFycyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGVpbG1hbm4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkpvc28iLAogICAgICAgICJTdXJuYW1lIjogIlN0YW5pxIciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRha2FzZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FoYWt1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFc3RlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHJhZm5zZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVMOibSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVHLhu4tuaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWd1cmkiLAogICAgICAgICJTdXJuYW1lIjogIk5paXlhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNdWZsaWgiLAogICAgICAgICJTdXJuYW1lIjogIkthc3NhYiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGFldGl0aWEiLAogICAgICAgICJTdXJuYW1lIjogIkxhY2hhcGVsbGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJpIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFdGEiLAogICAgICAgICJTdXJuYW1lIjogIkhsZWLEjWFyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb3NlZiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2htZWxhxZkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9sZ2EiLAogICAgICAgICJTdXJuYW1lIjogIsWYZWhvxZlvdsOhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb2FvIiwKICAgICAgICAiU3VybmFtZSI6ICJSb2NoYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmF0c3VlIiwKICAgICAgICAiU3VybmFtZSI6ICJNaXpva3VjaGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJhc3RpYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJXZXNzZWxpdXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZhbGRlbWFyIiwKICAgICAgICAiU3VybmFtZSI6ICJDaHViYi1CYWdnaW5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmmajmm7giLAogICAgICAgICJTdXJuYW1lIjogIueUsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5bCP55m+5ZCIIiwKICAgICAgICAiU3VybmFtZSI6ICLln47lnLAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk96aW9tYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWxvYWJ1Y2hpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmdlbGlrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmV1c3RhZHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlhpdXhpdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2h1YW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDZWNpbGllIiwKICAgICAgICAiU3VybmFtZSI6ICJFZ2VkZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTmlhbWgiLAogICAgICAgICJTdXJuYW1lIjogIldhbGtlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXZlbHluIiwKICAgICAgICAiU3VybmFtZSI6ICJDYXJ2YWxobyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQnJvb2tlIiwKICAgICAgICAiU3VybmFtZSI6ICJKb2huc3RvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2Vyb250aXVzIiwKICAgICAgICAiU3VybmFtZSI6ICJMb25naG9sZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUiBLYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJNb2doIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKacWZw60iLAogICAgICAgICJTdXJuYW1lIjogIk5vdm90bsO9IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGYXJhbW9uZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2F3a3JvZ2VyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQodCw0LzQuNGA0LAiLAogICAgICAgICJTdXJuYW1lIjogItCc0LDRgtCy0LXQtdCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2hhZHpoaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYmR1bG1lemhpZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiR2FpcmJla292IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaW1vbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiT3NtYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktlbWFsIiwKICAgICAgICAiU3VybmFtZSI6ICJDYW1wb3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvYmlhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGFlY2hlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUnVzaGRpIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXNpaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi0JXQstC00L7QutC40LwiLAogICAgICAgICJTdXJuYW1lIjogItCQ0YDRgtC10LzRjNC10LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk9yenNlYmV0IiwKICAgICAgICAiU3VybmFtZSI6ICJTw7Zyw7ZzcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVrYXRva2EiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3RlcGhhbmllIiwKICAgICAgICAiU3VybmFtZSI6ICJEcmVjaHNsZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhhdmEiLAogICAgICAgICJTdXJuYW1lIjogInZhbiBPb2lqZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1ldHRlIiwKICAgICAgICAiU3VybmFtZSI6ICJMdW5kYmxhZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWJkdWwtU2FidXIiLAogICAgICAgICJTdXJuYW1lIjogIlNhYmJhZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmFpbmVybyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FycmFzcXVpbGwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhZ21hcmEiLAogICAgICAgICJTdXJuYW1lIjogIkFyc2FudWtheWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPbGl3aWEiLAogICAgICAgICJTdXJuYW1lIjogIlBhd8WCb3dza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFzbWFyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT21hciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW1hbmRhIiwKICAgICAgICAiU3VybmFtZSI6ICJIaWxsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXRpbGRhIiwKICAgICAgICAiU3VybmFtZSI6ICJCcm93biIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWluZXMiLAogICAgICAgICJTdXJuYW1lIjogIlJ1b2hvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJXYW4iLAogICAgICAgICJTdXJuYW1lIjogIkhzdWVoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMIEtvbGEiLAogICAgICAgICJTdXJuYW1lIjogIlJhbm5pYyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlsdmkiLAogICAgICAgICJTdXJuYW1lIjogIktlbGxlaW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRhbmllbCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmFjaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5ae/5ZCbIiwKICAgICAgICAiU3VybmFtZSI6ICLppq4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZheWUiLAogICAgICAgICJTdXJuYW1lIjogIldhdHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIsOcbW3DvGfDvGxzw7xtIiwKICAgICAgICAiU3VybmFtZSI6ICJIZXNwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaWxhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2rDpnIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNhbnRvIiwKICAgICAgICAiU3VybmFtZSI6ICJMZXR0aWVyZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR3JhY2UiLAogICAgICAgICJTdXJuYW1lIjogIkh5ZGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdlcm9udGl1cyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG9vay1Ub29rIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYXRzdW1pIiwKICAgICAgICAiU3VybmFtZSI6ICJUYWtlbmFrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5L2z5oWnIiwKICAgICAgICAiU3VybmFtZSI6ICLpjKIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdvamlzbGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJNYXRpamV2acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWxsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmVrZXRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUcmnhu4F1IiwKICAgICAgICAiU3VybmFtZSI6ICJQaGFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUb2J5IiwKICAgICAgICAiU3VybmFtZSI6ICJUw7trIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYWl0bHluIiwKICAgICAgICAiU3VybmFtZSI6ICJCZWFsZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJ2aWQiLAogICAgICAgICJTdXJuYW1lIjogIkhha29sYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGllcm8iLAogICAgICAgICJTdXJuYW1lIjogIkZhbnVjY2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFuZHJpbmUiLAogICAgICAgICJTdXJuYW1lIjogIkJyZWtrZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXNwZWRpdG8iLAogICAgICAgICJTdXJuYW1lIjogIkxvcmVuem8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRoaWVyeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ291ZGVydCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR29yYmFkb2MiLAogICAgICAgICJTdXJuYW1lIjogIkJyYWNlZ2lyZGxlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaOG6oyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVHJp4buHdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQmVrc29sdGEiLAogICAgICAgICJTdXJuYW1lIjogIkthZGlldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT3BoZWxpYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ291cnRvaXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRpYW5uZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ29sdmluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLYXRoYXJpbmEiLAogICAgICAgICJTdXJuYW1lIjogIk5pbWFuaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2h1YW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJIc2lhbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW50amUiLAogICAgICAgICJTdXJuYW1lIjogIkViZXJzYmFjaGVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUZW1vZG9qaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYs9uM2KfZiNi0IiwKICAgICAgICAiU3VybmFtZSI6ICLaqdin2LPZhyDaqdin2LEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4iOC4tOC4leC4leC4tOC4qOC4seC4geC4lOC4tOC5jCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LmA4LiB4Li04LiU4LmC4Lig4LiE4LiyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJKw7Nuw6FzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMb2xpdGEiLAogICAgICAgICJTdXJuYW1lIjogIkFsZWtzYW5kcm92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFuIiwKICAgICAgICAiU3VybmFtZSI6ICJGYXJiZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIueRiyIsCiAgICAgICAgIlN1cm5hbWUiOiAi6b6NIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaWxhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTnlnYWFyZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWJkdWxsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWVsaWtvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlsa28iLAogICAgICAgICJTdXJuYW1lIjogIlNhdmVuaWplIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbWFuZGEiLAogICAgICAgICJTdXJuYW1lIjogIk9saXZlaXJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGlrYW8iLAogICAgICAgICJTdXJuYW1lIjogIkltYW11cmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpZ3Vyw7NzayIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2lnZsO6c2TDs3R0aXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsZXhhbmRlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2FycnV0aGVycyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiV2VybmVyIiwKICAgICAgICAiU3VybmFtZSI6ICLFoHRyb21hamVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPa29saSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVvbWVsdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWeG6v24iLAogICAgICAgICJTdXJuYW1lIjogIlBow7luZyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9yeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW5uYW5kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLnmpAiLAogICAgICAgICJTdXJuYW1lIjogIui1pOmgiCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5reR5oOgIiwKICAgICAgICAiU3VybmFtZSI6ICLlrosiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVzYW0iLAogICAgICAgICJTdXJuYW1lIjogIkVzc2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoYXJsZXMiLAogICAgICAgICJTdXJuYW1lIjogIkJveWxhbmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkx1Y2FzIiwKICAgICAgICAiU3VybmFtZSI6ICJEYWhsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSaWt1c2hpenVrdXNoaWNoaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWYW5lc2EiLAogICAgICAgICJTdXJuYW1lIjogIkFicmFoYW1zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHcmFudCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTW9ycmlzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1nYmVrZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT253dWFtYWV6ZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHV54bq/biIsCiAgICAgICAgIlN1cm5hbWUiOiAiQsO5aSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2lhIiwKICAgICAgICAiU3VybmFtZSI6ICJTYWlzaW8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCd0LXRgdGC0L7RgCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JrRg9C30L3QtdGG0L7QsiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSHVzc2VpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiVG91bWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkR1bmphIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJ0aW5vdmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGV0cmEiLAogICAgICAgICJTdXJuYW1lIjogIsOYaWVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZgdix2LLYp9mFIiwKICAgICAgICAiU3VybmFtZSI6ICLYrtin2YbZhNmIIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKb25hcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVm9sZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2kiLAogICAgICAgICJTdXJuYW1lIjogIkhhcnRtYW5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGRpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3VuZGJlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hamEiLAogICAgICAgICJTdXJuYW1lIjogIkhlcm1hbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpZWt3dWdvIiwKICAgICAgICAiU3VybmFtZSI6ICJOd29yYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS3Jpc3Rpbm4iLAogICAgICAgICJTdXJuYW1lIjogIsOeb3JnZWlyc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXZhIiwKICAgICAgICAiU3VybmFtZSI6ICJHYWxraW5hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQnNC40LvQtdC90LAiLAogICAgICAgICJTdXJuYW1lIjogItCT0LXRgNCw0YHQuNC80L7QstCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmRyw6llIiwKICAgICAgICAiU3VybmFtZSI6ICJNYWpvcnkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFyaWthc2hpa2EiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRWxkYXIiLAogICAgICAgICJTdXJuYW1lIjogIlVzcGVuc2t5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHbG9yaWEiLAogICAgICAgICJTdXJuYW1lIjogIkJ1cmdlc3MiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktzZW5pYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS293YWxjenlrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYqNmH2KfYsdmHIiwKICAgICAgICAiU3VybmFtZSI6ICLYtdin2K/ZgtuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJjdXMiLAogICAgICAgICJTdXJuYW1lIjogIlN0YWNlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGFybGkiLAogICAgICAgICJTdXJuYW1lIjogIkhvc2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpeHVlIiwKICAgICAgICAiU3VybmFtZSI6ICJUaWVuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTaGFpbWluZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVHMgYWkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBpb3RyIiwKICAgICAgICAiU3VybmFtZSI6ICJKYWLFgm/FhHNraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlzbGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJaYWdvcmVjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTZXZhZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGluaGFyZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRyBOYXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJQYWxsYXJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUaG/huqFpIiwKICAgICAgICAiU3VybmFtZSI6ICJCw7lpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBdWd1c3QiLAogICAgICAgICJTdXJuYW1lIjogIk9sc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBYXJvbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiT2xkZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hZ251cyIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2ludGhlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2hpcnZhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRWxkYXJraGFub3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkF2Z3XFoXRpbmEiLAogICAgICAgICJTdXJuYW1lIjogIk1hdnJpxI0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaW5lemUiLAogICAgICAgICJTdXJuYW1lIjogIklrZW1lZnVuYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWlsZW4iLAogICAgICAgICJTdXJuYW1lIjogIk11aGFtbWVkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmRyZWFzIiwKICAgICAgICAiU3VybmFtZSI6ICJTw7hyZW5zZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIua4hSIsCiAgICAgICAgIlN1cm5hbWUiOiAi5Zyo5Y6fIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJjdXMiLAogICAgICAgICJTdXJuYW1lIjogIlNrasOmdmVsYW5kIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGV4aXMiLAogICAgICAgICJTdXJuYW1lIjogIkdyZXNoYW0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNpbXJldCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWxlbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXNod2luIiwKICAgICAgICAiU3VybmFtZSI6ICJTY2hldHMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hdGlsZGEiLAogICAgICAgICJTdXJuYW1lIjogIkhhcnRpZ2FuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLpgLjoj68iLAogICAgICAgICJTdXJuYW1lIjogIueGiiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXN0ZXZhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ29ycmVpYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpcmlrdXRhcmlua2EiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTnVrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmFzbXVzc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGlidXpvIiwKICAgICAgICAiU3VybmFtZSI6ICJVZG9rYW1tYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRyBHaXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJHcmFmIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWxraCIsCiAgICAgICAgIlN1cm5hbWUiOiAiVml6aXJvdiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR2Vyb2xhbW8iLAogICAgICAgICJTdXJuYW1lIjogIk1hcmNoZXNpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPbWFyIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGVydmFzaGlkemUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaWppbmR1bSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmViZWNoaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGVucnkiLAogICAgICAgICJTdXJuYW1lIjogIk11cnBoeSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGlsbHkiLAogICAgICAgICJTdXJuYW1lIjogIlJob2RlcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVlIFlvdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2ggaXUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRpYW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJEdW1vbnQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJvbm5pZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG9ic29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWNrZW56aWUiLAogICAgICAgICJTdXJuYW1lIjogIkhhcnR1bmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBhbnRhbGVvbmUiLAogICAgICAgICJTdXJuYW1lIjogIkZlcnJpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMb3ZlIiwKICAgICAgICAiU3VybmFtZSI6ICJLYWxpbmluYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGkgTWluZyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2hlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS29nd2FyIiwKICAgICAgICAiU3VybmFtZSI6ICJUb3JpbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVzcmEiLAogICAgICAgICJTdXJuYW1lIjogIkxhcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWm9zaWEiLAogICAgICAgICJTdXJuYW1lIjogIlNvYmN6YWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdXJhIiwKICAgICAgICAiU3VybmFtZSI6ICJDYW1lcm9uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFZG1vbmRvIiwKICAgICAgICAiU3VybmFtZSI6ICJMb25nbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUm9tYW5lbGEiLAogICAgICAgICJTdXJuYW1lIjogIk1hZ2FuYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSnVsY3NhIiwKICAgICAgICAiU3VybmFtZSI6ICJQb2xhayIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm9zZWZpbmUiLAogICAgICAgICJTdXJuYW1lIjogIkFhc2xhbmQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktsYXJhIE1hcmlqYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVnVrb2phIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJab3NzaW1hIiwKICAgICAgICAiU3VybmFtZSI6ICJMYXZyb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJ5YW4iLAogICAgICAgICJTdXJuYW1lIjogIk11c3F1aXRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHb3VzdWtlIiwKICAgICAgICAiU3VybmFtZSI6ICJLYXRhZ2lyaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW50ZXJvIiwKICAgICAgICAiU3VybmFtZSI6ICJTdW9yc2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlpvcsOhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2lua2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhdmEiLAogICAgICAgICJTdXJuYW1lIjogIkd1c3RhdnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRyxrDhu5tjIiwKICAgICAgICAiU3VybmFtZSI6ICJRdXluaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVHV2YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3VuZGJlcmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIsW9aXZhbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3VrbGFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZXR0aW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJLw6FsbGFpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaWNhbm9yIiwKICAgICAgICAiU3VybmFtZSI6ICJWYXNzaWxpZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkRlYW4iLAogICAgICAgICJTdXJuYW1lIjogIkhhcmRpbmciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphcm9zbGF2IiwKICAgICAgICAiU3VybmFtZSI6ICJBYnJhbW9mZiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJpa2F0b3RlZnUiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtdWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJBbWFudWVsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmgYbmhYgiLAogICAgICAgICJTdXJuYW1lIjogIuW4uCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5YudIiwKICAgICAgICAiU3VybmFtZSI6ICLpp5LmtKUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pa2xhcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSG9sYXBwYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3VsaXPFgmF3IiwKICAgICAgICAiU3VybmFtZSI6ICJQYXfFgm93c2tpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbWFuZGEiLAogICAgICAgICJTdXJuYW1lIjogIlBldHRlcnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmlua2FzaGlmdWthdG90byIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYW1paGlrbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGF0YWtlbmFrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2KzZh9in2YbYr9in2LEiLAogICAgICAgICJTdXJuYW1lIjogItio2YfZhdmG2LQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlpvdnJhIiwKICAgICAgICAiU3VybmFtZSI6ICJLaGFkemhpZXYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNvbmciLAogICAgICAgICJTdXJuYW1lIjogIkt1byIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2ltb24iLAogICAgICAgICJTdXJuYW1lIjogIkhlbnJpa3Nzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkluZ8O+w7NyIiwKICAgICAgICAiU3VybmFtZSI6ICJGcsOzw7Bhc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYWRpc29uIiwKICAgICAgICAiU3VybmFtZSI6ICJXZXN0b24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoaW5oIiwKICAgICAgICAiU3VybmFtZSI6ICJDaHUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5hc2EiLAogICAgICAgICJTdXJuYW1lIjogIktoZW1hcmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRyaWpuaWUiLAogICAgICAgICJTdXJuYW1lIjogIkvDtnN0ZXJzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTb3BoaWEiLAogICAgICAgICJTdXJuYW1lIjogIkJhdGVzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbGFpbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiQm9kcm92YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQm9ndW1pbGEiLAogICAgICAgICJTdXJuYW1lIjogIk1paGFsamV2acSHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNYXJpdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGFobCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6YOB5am3IiwKICAgICAgICAiU3VybmFtZSI6ICLmsZ8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5ub25zbyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ2hpYWJ1b3R1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOd2VidWJlIiwKICAgICAgICAiU3VybmFtZSI6ICJDaHVrd3Vub25zbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiw5ZobWFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKZXJyeSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSXNha3Nzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNvZHkiLAogICAgICAgICJTdXJuYW1lIjogIldpanMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItm+24zZhdin2YbZhyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2YXbjNix2YfYp9i02YXbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4LiI4Li44Lij4Li14LmJIiwKICAgICAgICAiU3VybmFtZSI6ICLguKPguLLguKHguIjguLHguJnguJfguKPguYwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlphbGluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR29kaW5hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPc2NhciIsCiAgICAgICAgIlN1cm5hbWUiOiAiUmFzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkphbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3VlZmVyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSaWthcmQiLAogICAgICAgICJTdXJuYW1lIjogIkxlbmR2YXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk53YW1ha2EiLAogICAgICAgICJTdXJuYW1lIjogIklsb2VyaWthIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOaXZpIiwKICAgICAgICAiU3VybmFtZSI6ICJLcmlzdGlhbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2b7Yp9ix2YXbjNiv2KciLAogICAgICAgICJTdXJuYW1lIjogIti02KfYr9uM2YYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkplbnMiLAogICAgICAgICJTdXJuYW1lIjogIk1vcnRlbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVsYXMiLAogICAgICAgICJTdXJuYW1lIjogIkNpbnRyw7NuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmlzYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQm9jaGFyb3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQrdC70YzQstC40YDQsCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JvQsNCy0YDQtdC90YLRjNC10LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVtb2RvamkiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVG9tb2thIiwKICAgICAgICAiU3VybmFtZSI6ICJIb3Nva2F3YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU2FtdWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJHZWVsZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5pZGlqYSIsCiAgICAgICAgIlN1cm5hbWUiOiAixIxvYmFsIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYXVyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVpa2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVtaWxlIiwKICAgICAgICAiU3VybmFtZSI6ICJCcmFuZHQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4geC4tOC4leC4leC4tOC4nuC4seC4l+C4mOC5jCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lia4Lix4Lin4Lir4LiZ4Lit4LiHIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCcnluaGlsZHVyIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWdtYXJzZMOzdHRpciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2xlbWVudHluYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiWmF3YWR6a2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFsYmVydGEiLAogICAgICAgICJTdXJuYW1lIjogIlNhbGFpIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmm7jlqroiLAogICAgICAgICJTdXJuYW1lIjogIuaxnyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmlrb3JhbmF1ZG9kaW1tYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSWplbmR1IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQkNC90LDRgdGC0LDRgdC40Y8iLAogICAgICAgICJTdXJuYW1lIjogItCT0LDQstGA0LjQu9C+0LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2hpZm8iLAogICAgICAgICJTdXJuYW1lIjogIk9tZW9rYWNoaWUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFydGh1ciIsCiAgICAgICAgIlN1cm5hbWUiOiAiU291c2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCa0L7RgNCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQkNC70LXQutGB0LDQvdC00YDQvtCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIue+jue+vSIsCiAgICAgICAgIlN1cm5hbWUiOiAi5YyX5rKiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZhdmH2LEg2KfZhtqv24zYsiIsCiAgICAgICAgIlN1cm5hbWUiOiAi2K7Yp9mE2K/bjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVsYW5pZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFjbGVhbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFydGludXMiLAogICAgICAgICJTdXJuYW1lIjogIlR1aW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFubmEiLAogICAgICAgICJTdXJuYW1lIjogIlbDoWxrb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFhcml0IiwKICAgICAgICAiU3VybmFtZSI6ICJNw6RudHlsw6QiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklseWFzIiwKICAgICAgICAiU3VybmFtZSI6ICJHdW5kZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpbmRhIiwKICAgICAgICAiU3VybmFtZSI6ICJTbWFsbGJ1cnJvdyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQXJuZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9zaW5nIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguKXguK0iLAogICAgICAgICJTdXJuYW1lIjogIuC4oeC4suC4meC4suC4lOC4tSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRXJ6ZWJldCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3rDtmtlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbnRlcm8iLAogICAgICAgICJTdXJuYW1lIjogIlBva2thIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLmloflrZAiLAogICAgICAgICJTdXJuYW1lIjogIuicguiwtyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGF2aWQiLAogICAgICAgICJTdXJuYW1lIjogIkpvaG5zZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hc2Fub2J1IiwKICAgICAgICAiU3VybmFtZSI6ICJDaGlkYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGVodWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJHcmllZ28iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJvbXVhbGRvIiwKICAgICAgICAiU3VybmFtZSI6ICJNb25kcmFnw7NuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQZXRyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSHJkw6EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhamEgIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGFtb29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYWhsaWEiLAogICAgICAgICJTdXJuYW1lIjogIkhvYWRsZXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFpZGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJCcmVlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS3V0YWt1a2F0b21vc2hpIiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkd1w7BuaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSsOzaGFubnNzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkh1bnRlciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmluZG9uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWYWxkZW1hciIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmVjaCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWxmcmVkIiwKICAgICAgICAiU3VybmFtZSI6ICJQYWRpbGxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQmtC70LjQvCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0KHQsNC30L7QvdC+0LIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4guC4seC4meC4quC4tOC4l+C4mOC4tOC5jCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4LmB4Lib4LmJ4LiZ4LmA4Lie4LmH4LiK4LijIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJIaXJvbWkiLAogICAgICAgICJTdXJuYW1lIjogIkhpZ2FzaGkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJha2VsIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJ0aW5zc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWaXNhIiwKICAgICAgICAiU3VybmFtZSI6ICJCaXNsaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJSw61rZXkiLAogICAgICAgICJTdXJuYW1lIjogIsOBc2tlbHNkw7N0dGlyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUYWt1ZWkiLAogICAgICAgICJTdXJuYW1lIjogIlNldG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlBldGVyIiwKICAgICAgICAiU3VybmFtZSI6ICJQb3Vsc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLljYPku6PlrZAiLAogICAgICAgICJTdXJuYW1lIjogIuWuieW2iyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi4Liq4Li44Liq4LiH4LiE4LmM4Lib4Lij4Liw4LiE4Lij4Lit4LiHIiwKICAgICAgICAiU3VybmFtZSI6ICLguITguLjguJPguKfguLjguJLguLQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlZla21hIiwKICAgICAgICAiU3VybmFtZSI6ICJUcmV0aCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWZhbWVmdWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJFbHVlbXVubyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2YXZiNmG2KciLAogICAgICAgICJTdXJuYW1lIjogItqp2KfZhdqp2KfYsSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT251Y2h1a3d1IiwKICAgICAgICAiU3VybmFtZSI6ICJDaGlud2V1YmEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCV0YHQtdC90LjRjyIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JfRg9C10LLQsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm/FvmUiLAogICAgICAgICJTdXJuYW1lIjogIlJhanptYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJ1bWFuIiwKICAgICAgICAiU3VybmFtZSI6ICJLaXNoaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLaGFtemF0IiwKICAgICAgICAiU3VybmFtZSI6ICJLaXNoaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJPbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDbGVvcGF0cmEiLAogICAgICAgICJTdXJuYW1lIjogIkFrc2Frb3ZhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWF1Zm9ydCIsCiAgICAgICAgIlN1cm5hbWUiOiAiVGhpdmllcmdlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJUdXVra2EiLAogICAgICAgICJTdXJuYW1lIjogIkhhdGFra2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIumbheiKsyIsCiAgICAgICAgIlN1cm5hbWUiOiAi6bqlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWYW5lc3NhIiwKICAgICAgICAiU3VybmFtZSI6ICJGcmV5IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFc21lcmFsZGEiLAogICAgICAgICJTdXJuYW1lIjogIkdhd2tyb2dlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW1yYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmVyb3bFoWVrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJZmVzaW5hY2hpIiwKICAgICAgICAiU3VybmFtZSI6ICJPbnd1bWVsdSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGVucnlrYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUGF3xYJvd3NrYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSGFsIiwKICAgICAgICAiU3VybmFtZSI6ICJPbGRidWNrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWb2ptaWwiLAogICAgICAgICJTdXJuYW1lIjogIkplcmtvdmnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVqaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2hpa2lrYXdhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJQZW5nIiwKICAgICAgICAiU3VybmFtZSI6ICJIc8O8IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCb3JpcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiVm9sYmVkYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2LHZiNqY2KfZhiIsCiAgICAgICAgIlN1cm5hbWUiOiAi2KvYp9mG24wiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIklmZW9tYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiT25vZHVnb2FkaWVnYmVtbWEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkx1YW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJ0aW5zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLnv5QiLAogICAgICAgICJTdXJuYW1lIjogIuW5uOeUsCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWXVyaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiVXNwZW5za3kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCf0YDQvtGF0L7RgCIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JTQtdC80LjMgdC00L7QstGLIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNaWxvamtvIiwKICAgICAgICAiU3VybmFtZSI6ICLEjGVya2V6IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJaZGVuxJtrIiwKICAgICAgICAiU3VybmFtZSI6ICJIb3LDoWsiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRvbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGlnaHRmb290IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQmNC70YzRjyIsCiAgICAgICAgIlN1cm5hbWUiOiAi0JLQsMyB0YHQuNC9IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNZWF6YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRmlsbW9uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBc3RhIiwKICAgICAgICAiU3VybmFtZSI6ICJPbG9mc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVkb3JvIiwKICAgICAgICAiU3VybmFtZSI6ICJDb3N0YSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSXJlbmV1c3oiLAogICAgICAgICJTdXJuYW1lIjogIkt1Y2hhcnNraSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVG9yc3RlbiIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnJpZWRtYW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNlYmhhdCIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2VsYXNzaWUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJlbGxlIiwKICAgICAgICAiU3VybmFtZSI6ICJKb2huc3RvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2F1YW4iLAogICAgICAgICJTdXJuYW1lIjogIlBpbnRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJZYXNtaW4iLAogICAgICAgICJTdXJuYW1lIjogIkhvd2UiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pbGlzbGF2YSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2FyaGF0bGnEhyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFtYXIiLAogICAgICAgICJTdXJuYW1lIjogIk9jYXNpbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiU3VsdGFuYmVrIiwKICAgICAgICAiU3VybmFtZSI6ICJLaXNoaWV2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJBbmdlbGEiLAogICAgICAgICJTdXJuYW1lIjogIlNhbnRvcyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi6Z2c5a6cIiwKICAgICAgICAiU3VybmFtZSI6ICLpoaciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJlcm5oYXLDsCIsCiAgICAgICAgIlN1cm5hbWUiOiAiQmlyZ2lzc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQnNCw0YDRgtCwIiwKICAgICAgICAiU3VybmFtZSI6ICLQodC+0LvQvtC80LjQvdCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguKrguLjguJnguKfguKEiLAogICAgICAgICJTdXJuYW1lIjogIuC4l+C4seC4muC4quC4reC4mSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTHVib21pciIsCiAgICAgICAgIlN1cm5hbWUiOiAiU29rb8WCb3dza2kiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlN0ZWZhbmlhIiwKICAgICAgICAiU3VybmFtZSI6ICJPc3Ryb3dza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk51cmlzaGF0IiwKICAgICAgICAiU3VybmFtZSI6ICJJYnJhZ2ltb3YiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhlY3RvciIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGluZGdyZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNoYXJsZXMiLAogICAgICAgICJTdXJuYW1lIjogIlNleW1vdXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdhYnJpZWwiLAogICAgICAgICJTdXJuYW1lIjogIlBpbnRvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJWamVyYW4iLAogICAgICAgICJTdXJuYW1lIjogIkJvc2FuYWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5vdmVsIiwKICAgICAgICAiU3VybmFtZSI6ICJWYXZpbG92IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLYr9in2LHYpyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2LnZhNin2K/bjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWxra2EiLAogICAgICAgICJTdXJuYW1lIjogIsOEaWrDpGzDpCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWtzZWwiLAogICAgICAgICJTdXJuYW1lIjogIkZvc3NlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJLbGFyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSmF3b3Jza2EiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZ1bHZ1cyIsCiAgICAgICAgIlN1cm5hbWUiOiAiR3J1YmIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxhZXJrZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRGFtIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLQmNCy0LXRgtGC0LAiLAogICAgICAgICJTdXJuYW1lIjogItCY0YHQsMyB0LXQstCwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHYXLDsGFyIiwKICAgICAgICAiU3VybmFtZSI6ICJBcm5maW5uc3NvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRmlvcmkiLAogICAgICAgICJTdXJuYW1lIjogIkFiYWFsb20iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkJvaHVtaWwiLAogICAgICAgICJTdXJuYW1lIjogIlNjaGluZGxlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5q2j55S3IiwKICAgICAgICAiU3VybmFtZSI6ICLlj7PnlLAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFkbGFuIiwKICAgICAgICAiU3VybmFtZSI6ICJTaGlzaGFuaSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiS2F0aGVyaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJCaXNob3AiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk5rZW1kaWxpbSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFkdWVrZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVmFueWEiLAogICAgICAgICJTdXJuYW1lIjogIlZlbGV6IgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLguKrguLjguYTguILguYjguKrguK3guJkiLAogICAgICAgICJTdXJuYW1lIjogIuC5hOC4iuC4ouC4mOC4o+C4o+C4oeC4oeC4siIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRGlvbmlzaWEiLAogICAgICAgICJTdXJuYW1lIjogIkNhbGFicmVzZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVG9raW1pbW90YWt1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkdvbGRpbG9ja3MiLAogICAgICAgICJTdXJuYW1lIjogIkJyYWNlZ2lyZGxlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaCBWYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJLYXJkaXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNvZHkiLAogICAgICAgICJTdXJuYW1lIjogIkJvc3dvcnRoIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJEYW5pZWxhIiwKICAgICAgICAiU3VybmFtZSI6ICJaaW1tZXJtYW5uIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJZGEiLAogICAgICAgICJTdXJuYW1lIjogIkxhdXJpZHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVG9taWNhIiwKICAgICAgICAiU3VybmFtZSI6ICJJdmFuZWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkxpbGEiLAogICAgICAgICJTdXJuYW1lIjogIk1hZ2RhbGVubyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFqaWQiLAogICAgICAgICJTdXJuYW1lIjogIk1hcm91biIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWnVrdWthdG90b2t1IiwKICAgICAgICAiU3VybmFtZSI6ICIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkF2ZWxhaW5lIiwKICAgICAgICAiU3VybmFtZSI6ICJMYXZhbGzDqWUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRo4bupYyIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmdoacOqbSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQ2Fzc2FuZHJlIiwKICAgICAgICAiU3VybmFtZSI6ICJNYWVzdGFzIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHYWJyaWVsIiwKICAgICAgICAiU3VybmFtZSI6ICJQZXJlaXJhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJOYWRlxb5kYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTGFtYmVyZ2FyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJJc2FrIiwKICAgICAgICAiU3VybmFtZSI6ICJPbHNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSmFybWlsYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGVsbGVyb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFudmlsbGUiLAogICAgICAgICJTdXJuYW1lIjogIkJlcnRoZWxldHRlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJFbmEiLAogICAgICAgICJTdXJuYW1lIjogIk1pZGRlbmRvcnAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlRla2FydWtpdGUiLAogICAgICAgICJTdXJuYW1lIjogIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGF0aWFuYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWlzaGluYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWVrdXRhdGFmdSIsCiAgICAgICAgIlN1cm5hbWUiOiAiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLku5XpgZQiLAogICAgICAgICJTdXJuYW1lIjogIuWatCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSm95IiwKICAgICAgICAiU3VybmFtZSI6ICJNYXJ0aW5lYXUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlJhZGlnb2oiLAogICAgICAgICJTdXJuYW1lIjogIlBvxb5hdWtvIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCZWF0cmljZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiUm9zYXJpbyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSW5lcyIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2NodXN0ZXIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkogVGFsaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiR29yZGVrIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJCYWxxaXMiLAogICAgICAgICJTdXJuYW1lIjogIk1hcm91biIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmFjIiwKICAgICAgICAiU3VybmFtZSI6ICJEdWRsZXkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFtYW5kYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiS3Jpc3RlbnNlbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiT21hciIsCiAgICAgICAgIlN1cm5hbWUiOiAiS2VsbHkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk11aGliYiIsCiAgICAgICAgIlN1cm5hbWUiOiAiTXVzdGFmYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVWJhbndhIiwKICAgICAgICAiU3VybmFtZSI6ICJaaWtvcmFuYXVkb2RpbW1hIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJMYXVyYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU2Nod2VpdHplciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiSWlkYSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQWFsdG9uZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkNlbGVzdGUiLAogICAgICAgICJTdXJuYW1lIjogIkJhcmVzZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFraXlhaCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRXNzYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi5ben5qyjIiwKICAgICAgICAiU3VybmFtZSI6ICLmnZwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIktvbGJlaW5uIiwKICAgICAgICAiU3VybmFtZSI6ICJTaWd1csOwYXJzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogItCY0L3Qs9CwIiwKICAgICAgICAiU3VybmFtZSI6ICLQnNGD0YDQsNCy0YzRkdCy0LAiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkZlaHJldCIsCiAgICAgICAgIlN1cm5hbWUiOiAixIxpxI0iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkFteSIsCiAgICAgICAgIlN1cm5hbWUiOiAiV2lsa2lucyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQW1hcmFudGgiLAogICAgICAgICJTdXJuYW1lIjogIlJ1bWJsZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTWFybyIsCiAgICAgICAgIlN1cm5hbWUiOiAiQ292YXJydWJpYXMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1heCIsCiAgICAgICAgIlN1cm5hbWUiOiAiRnJpZWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkVtZXJlbmNpYW5hIiwKICAgICAgICAiU3VybmFtZSI6ICJMZXJtYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiRyBNYWx0emFrIiwKICAgICAgICAiU3VybmFtZSI6ICJMYWdnYWwiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1pb21pcmEiLAogICAgICAgICJTdXJuYW1lIjogIktlbGxlciIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiTGlidcWhZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3ZvYm9kb3bDoSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWRhIiwKICAgICAgICAiU3VybmFtZSI6ICJBbGFyY8OzbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2YXYp9qp2KfZhiIsCiAgICAgICAgIlN1cm5hbWUiOiAi2YXZiNiz2YjbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2YHYsdi02KrZhyIsCiAgICAgICAgIlN1cm5hbWUiOiAi2qnYsduM2YXbjCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWWFrdWUiLAogICAgICAgICJTdXJuYW1lIjogIkVzY2FsYW50ZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiVGFpbWkiLAogICAgICAgICJTdXJuYW1lIjogIk9qYWxhIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICLZgdix24zYr9mHIiwKICAgICAgICAiU3VybmFtZSI6ICLZhdiv24zYsduMINin2LXZhCIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi56mO5a6JIiwKICAgICAgICAiU3VybmFtZSI6ICLmrrUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIuC4guC4seC4leC4tOC4ouC4sCIsCiAgICAgICAgIlN1cm5hbWUiOiAi4Lik4LiX4LiY4Li04LmM4LiK4Lix4LiiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJGdXJ1dGEiLAogICAgICAgICJTdXJuYW1lIjogIkhhZ29zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJKdWxpZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiU3ZlbmRzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIlNoYXBhIiwKICAgICAgICAiU3VybmFtZSI6ICJEcmF0Y2hldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiWmFraXlhIiwKICAgICAgICAiU3VybmFtZSI6ICJEcmF0Y2hldiIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiQWRhIiwKICAgICAgICAiU3VybmFtZSI6ICJFa3N0csO2bSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAi2q/ZhNi02YYiLAogICAgICAgICJTdXJuYW1lIjogIti52YTZiNuMIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJHcsOpdGEiLAogICAgICAgICJTdXJuYW1lIjogIkthdG9uYSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiR29mcmVkZG8iLAogICAgICAgICJTdXJuYW1lIjogIk1vbmFsZG8iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkthYXJsZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTWFudGVyZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUGFuaW5uZ3VhcSIsCiAgICAgICAgIlN1cm5hbWUiOiAiQW5kZXJzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIk1hdXJpZW4iLAogICAgICAgICJTdXJuYW1lIjogIk1hdHRpanNzZW4iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiR2l2ZW5OYW1lIjogIkhvbm9yZSIsCiAgICAgICAgIlN1cm5hbWUiOiAiRHVjbG9zIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJNb2hhbW1hZCIsCiAgICAgICAgIlN1cm5hbWUiOiAiSGFsdm9yc2VuIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJTdW4iLAogICAgICAgICJTdXJuYW1lIjogIkNoIGluIgogICAgICB9LAogICAgICB7CiAgICAgICAgIkdpdmVuTmFtZSI6ICJDaGVsc2VhIiwKICAgICAgICAiU3VybmFtZSI6ICJOaWNob2xscyIKICAgICAgfSwKICAgICAgewogICAgICAgICJHaXZlbk5hbWUiOiAiUmFiaSIsCiAgICAgICAgIlN1cm5hbWUiOiAiTmFzc2FyIgogICAgICB9XTsKICAgIAogICAgCiAgICAgIGZ1bmN0aW9uIGdldFJhbmRvbUludChtaW4sIG1heCkgewogICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkgKyBtaW4pOwogICAgICB9CiAgICAKICAgICAgZnVuY3Rpb24gZ2V0X2RhdGUoKXsKICAgICAgICB2YXIgZGF0ZU9iaiA9IG5ldyBEYXRlKCk7CiAgICAgICAgdmFyIG1vbnRoID0gZGF0ZU9iai5nZXRVVENNb250aCgpICsgMTsgLy9tb250aHMgZnJvbSAxLTEyCiAgICAgICAgdmFyIGRheSA9IGRhdGVPYmouZ2V0VVRDRGF0ZSgpOwogICAgICAgIG1vbnRoID0gIjAiICsgbW9udGg7CiAgICAgICAgdmFyIHllYXIgPSBkYXRlT2JqLmdldFVUQ0Z1bGxZZWFyKCk7CiAgICAgICAgdmFyIG5ld2RhdGUgPSBkYXkgKyAiLSIgKyBtb250aCArICItIiArIHllYXI7ICAKICAgICAgICByZXR1cm4gbmV3ZGF0ZTsgIAogICAgICB9CiAgICAKICAgICAgZnVuY3Rpb24gbGF0ZXN0X2RlcG9zaXRzKCl7CiAgICAgICAgdmFyIGxhdGVzdF9kZXBvc2l0cyA9IFtdOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCA1OyBpKyspIHsKICAgICAgICAgICAgdmFyIGdpdmVuX25hbWUgPSBgJHtmYWtlX25hbWVzW2dldFJhbmRvbUludCgxLGZha2VfbmFtZXMubGVuZ3RoKV0uR2l2ZW5OYW1lfSAgJHtmYWtlX25hbWVzW2dldFJhbmRvbUludCgxLGZha2VfbmFtZXMubGVuZ3RoKV0uU3VybmFtZX1gOwogICAgICAgICAgICBzd2l0Y2ggKGkpIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBnZXRSYW5kb21JbnQoNTAwMCwxMDAwMCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZ2V0UmFuZG9tSW50KDEwMDAsMTAwMDApOyAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGdldFJhbmRvbUludCgxMDAwLDIwMDApOyAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGdldFJhbmRvbUludCgxNTAwMCwzMDAwMCk7ICAgCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZ2V0UmFuZG9tSW50KDEwMDAsMjAwMDApOwogICAgICAgICAgICB9ICAgIAogICAgICAgICAgICB2YXIgbmV3X25hbWUgPSB7CiAgICAgICAgICAgICAgICBuYW1lOmdpdmVuX25hbWUsCiAgICAgICAgICAgICAgICBhbW91bnQ6IGFtb3VudAogICAgICAgICAgICB9CiAgICAKICAgIAogICAgICAgICAgICBsYXRlc3RfZGVwb3NpdHMucHVzaChuZXdfbmFtZSk7CiAgICAgICAgfQogICAgICAgIHZhciByb3dzID0gIiI7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxhdGVzdF9kZXBvc2l0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgdmFyIGRhdGUgPSBnZXRfZGF0ZSgpOwogICAgICAgICAgcm93cyArPSBgPHRyPjx0ZD4ke2xhdGVzdF9kZXBvc2l0c1tpXS5uYW1lfTwvdGQ+PHRkPiR7ZGF0ZX08L3RkPjx0ZD4kJHtsYXRlc3RfZGVwb3NpdHNbaV0uYW1vdW50fTwvdGQ+PC90cj5gCiAgICAgICB9CiAgICAgICAgcmV0dXJuIHJvd3M7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbGF0ZXN0X3dpdGhkcmF3cygpewogICAgICAgIHZhciBsYXRlc3Rfd2l0aGRyYXdzID0gW107CiAgICAgICAgZm9yIChpID0gMDsgaSA8IDU7IGkrKykgewogICAgICAgICAgICB2YXIgZ2l2ZW5fbmFtZSA9IGAke2Zha2VfbmFtZXNbZ2V0UmFuZG9tSW50KDEsZmFrZV9uYW1lcy5sZW5ndGgpXS5HaXZlbk5hbWV9ICAke2Zha2VfbmFtZXNbZ2V0UmFuZG9tSW50KDEsZmFrZV9uYW1lcy5sZW5ndGgpXS5TdXJuYW1lfWA7CiAgICAgICAgICAgIHN3aXRjaCAoaSkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGdldFJhbmRvbUludCgxMDAwLDUwMDApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGdldFJhbmRvbUludCgxMDAwLDEwMDAwKTsgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBnZXRSYW5kb21JbnQoMTAwMCwyMDAwKTsgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBnZXRSYW5kb21JbnQoMTUwMCw0MDAwKTsgICAKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBnZXRSYW5kb21JbnQoMTAwMCwyMDAwMCk7CiAgICAgICAgICAgIH0gICAgCiAgICAgICAgICAgIHZhciBuZXdfbmFtZSA9IHsKICAgICAgICAgICAgICAgIG5hbWU6Z2l2ZW5fbmFtZSwKICAgICAgICAgICAgICAgIGFtb3VudDogYW1vdW50CiAgICAgICAgICAgIH0KICAgIAogICAgCiAgICAgICAgICAgIGxhdGVzdF93aXRoZHJhd3MucHVzaChuZXdfbmFtZSk7CiAgICAgICAgfQogICAgICAgIHZhciByb3dzID0gIiI7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxhdGVzdF93aXRoZHJhd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBkYXRlID0gZ2V0X2RhdGUoKTsKICAgICAgICAgIHJvd3MgKz0gYDx0cj48dGQ+JHtsYXRlc3Rfd2l0aGRyYXdzW2ldLm5hbWV9PC90ZD48dGQ+JHtkYXRlfTwvdGQ+PHRkPiQke2xhdGVzdF93aXRoZHJhd3NbaV0uYW1vdW50fTwvdGQ+PC90cj5gCiAgICAgICB9CiAgICAgICAgcmV0dXJuIHJvd3M7CiAgICAgIH0KICAKICAgICAgY29uc3QgZmxhdGVzdF9kZXBvc2l0cyA9IGxhdGVzdF9kZXBvc2l0czsKICAgICAgY29uc3QgZmxhdGVzdF93aXRoZHJhd3MgPSBsYXRlc3Rfd2l0aGRyYXdzOwogICAgICAkKCcjbGRfYm9keScpLmh0bWwoZmxhdGVzdF9kZXBvc2l0cyk7CiAgICAgICQoJyNsd19ib2R5JykuaHRtbChmbGF0ZXN0X3dpdGhkcmF3cyk7CiAgICAgIAogICAgICAKICB9KTs="}},"time_used":86,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":82,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"translate.google.com/translate_a/element.js?cb=googleTranslateElementInit","fqdn":"translate.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.250.178.78","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.333Z","timestamp":1785132838333,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:35 GMT","end":"Mon, 21 Sep 2026 08:37:34 GMT"},"fingerprint":{"sha1":"2F:20:3B:91:88:65:20:CD:06:9D:0C:58:4D:17:6F:FC:9D:EC:41:83","sha256":"0C:7B:D3:23:E9:5B:D6:6B:F2:5C:71:91:4D:41:CE:E6:D7:1F:A2:F2:63:BA:25:70:1D:00:F3:C0:72:21:51:6D"}}},"request":{"raw":"GET /translate_a/element.js?cb=googleTranslateElementInit HTTP/1.1\r\nHost: translate.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: text/javascript; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\ncache-control: no-cache, no-store, max-age=0, must-revalidate\r\npragma: no-cache\r\nexpires: Mon, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":75427,"size_decoded":27152,"mime_type":"text/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2543)","md5":"8d8bad1f0a2d504dc2cc47dc171e8865","sha1":"b8b5a20cc8af07b08fcafeac43b75234cedc63c1","sha256":"2a04b76b2e0cf9daf17467f5b845caa7bedbf76188b5fd9801ae96bcf4390bae","sha512":"819c1719ea45fa29f4302230cffe1c3193316e168bb840696c2fd92a87790467f4cd5710cbcb33d2d169ad4365079f1c4538b4014e66cf4cfebd538cbdab786f","ssdeep":"1536:XWjLpxIZnZzYOwRUSfl26KKZkXtmqR6Y06ECirwNWF0:XDD4U6KKZgtBgtCix0","tlshash":"b473b88cb6a5b4658363f4b5412f000eb23b58adf8484cadb288d8e1adf5949453bf7d","first_seen":"2026-07-27T06:01:16.233111Z","last_seen":"2026-07-27T07:00:44.813879Z","times_seen":123,"resource_available":true,"data":"CiAgICAvLyBnby9tc3Mtc2V0dXAjNy1sb2FkLXRoZS1qcy1vci1jc3MtZnJvbS15b3VyLWluaXRpYWwtcGFnZQogICAgaWYoIXdpbmRvd1snX0R1bXBFeGNlcHRpb24nXSkgewogICAgICBjb25zdCBfRHVtcEV4Y2VwdGlvbiA9IHdpbmRvd1snX0R1bXBFeGNlcHRpb24nXSB8fCBmdW5jdGlvbihlKSB7CiAgICAgICAgdGhyb3cgZTsKICAgICAgfTsKICAgICAgd2luZG93WydfRHVtcEV4Y2VwdGlvbiddID0gX0R1bXBFeGNlcHRpb247CiAgICB9CiAgInVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF90cj10aGlzLmRlZmF1bHRfdHJ8fHt9OyhmdW5jdGlvbihfKXt2YXIgd2luZG93PXRoaXM7CnRyeXsKXy5fRl90b2dnbGVzX2luaXRpYWxpemU9ZnVuY3Rpb24oYSl7KHR5cGVvZiBnbG9iYWxUaGlzIT09InVuZGVmaW5lZCI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZiE9PSJ1bmRlZmluZWQiP3NlbGY6dGhpcykuX0ZfdG9nZ2xlc19kZWZhdWx0X3RyPWF8fFtdfTsoMCxfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZSkoWzB4NzAwODAwNCwgMHgwLCBdKTsKLyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgMjAwNSwgMjAwNyBCb2IgSXBwb2xpdG8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAoqLwp2YXIgYWEsY2EsZmEsamEscmEseGEsQmEsRGEsRmEsR2EsSWEsWWEsYmIsZmIsZ2IsamIsa2IsbmIscGIscWIsc2IsdWIsdmIsQWIsQmIsRmIsSWIsSmIsTWIsTmIsT2IsUWIsU2IseixSYixVYixZYixaYixhYyxiYzthYT1mdW5jdGlvbihhLGIpe2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsYWEpO2Vsc2V7dmFyIGM9RXJyb3IoKS5zdGFjaztjJiYodGhpcy5zdGFjaz1jKX1hJiYodGhpcy5tZXNzYWdlPVN0cmluZyhhKSk7YiE9PXZvaWQgMCYmKHRoaXMuY2F1c2U9Yil9O2NhPWZ1bmN0aW9uKGEsYil7YT1hLnNwbGl0KCIlcyIpO2Zvcih2YXIgYz0iIixkPWEubGVuZ3RoLTEsZT0wO2U8ZDtlKyspYys9YVtlXSsoZTxiLmxlbmd0aD9iW2VdOiIlcyIpO2FhLmNhbGwodGhpcyxjK2FbZF0pfTtmYT1mdW5jdGlvbihhKXtpZihfLmRhKWEoXy5kYSk7ZWxzZXt2YXIgYjsoKGI9ZWEpIT1udWxsP2I6ZWE9W10pLnB1c2goYSl9fTsKamE9ZnVuY3Rpb24oKXshXy5kYSYmXy5oYSYmXy5pYSgpO3JldHVybiBfLmRhfTtfLmlhPWZ1bmN0aW9uKCl7Xy5kYT1fLmhhKCk7dmFyIGE7KGE9ZWEpPT1udWxsfHxhLmZvckVhY2goZmEpO2VhPXZvaWQgMH07Xy5sYT1mdW5jdGlvbihhKXtfLmRhJiZrYShhKX07Xy5tYT1mdW5jdGlvbigpe18uZGEmJl8uZGEubWQoKX07Xy5vYT1mdW5jdGlvbihhLGIpe2IuaGFzT3duUHJvcGVydHkoImRpc3BsYXlOYW1lIil8fChiLmRpc3BsYXlOYW1lPWEudG9TdHJpbmcoKSk7YltuYV09YX07Xy5wYT1mdW5jdGlvbihhKXthJiZ0eXBlb2YgYS5kaXNwb3NlPT0iZnVuY3Rpb24iJiZhLmRpc3Bvc2UoKX07cmE9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz1hcmd1bWVudHMubGVuZ3RoO2I8YzsrK2Ipe3ZhciBkPWFyZ3VtZW50c1tiXTtfLnFhKGQpP3JhLmFwcGx5KG51bGwsZCk6Xy5wYShkKX19O18udT1mdW5jdGlvbigpe3RoaXMucWE9dGhpcy5xYTt0aGlzLlc9dGhpcy5XfTsKXy50YT1mdW5jdGlvbihhLGIpe3JldHVybiBzYShhLGIpPj0wfTtfLnVhPWZ1bmN0aW9uKGEsYil7Xy50YShhLGIpfHxhLnB1c2goYil9O18udmE9ZnVuY3Rpb24oYSxiKXtiPXNhKGEsYik7dmFyIGM7KGM9Yj49MCkmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChhLGIsMSk7cmV0dXJuIGN9O18ud2E9ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGg7aWYoYj4wKXtmb3IodmFyIGM9QXJyYXkoYiksZD0wO2Q8YjtkKyspY1tkXT1hW2RdO3JldHVybiBjfXJldHVybltdfTt4YT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTtpZihfLnFhKGQpKXt2YXIgZT1hLmxlbmd0aHx8MCxmPWQubGVuZ3RofHwwO2EubGVuZ3RoPWUrZjtmb3IodmFyIGc9MDtnPGY7ZysrKWFbZStnXT1kW2ddfWVsc2UgYS5wdXNoKGQpfX07CkJhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9MCxkPXt9O2M8YS5sZW5ndGg7KXt2YXIgZT1hW2MrK10sZj1fLnlhKGUpPyJvIisoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsemEpJiZlW3phXXx8KGVbemFdPSsrQWEpKToodHlwZW9mIGUpLmNoYXJBdCgwKStlO09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGYpfHwoZFtmXT0hMCxhW2IrK109ZSl9YS5sZW5ndGg9Yn07Xy5DYT1mdW5jdGlvbihhLGIpe3RoaXMud2lkdGg9YTt0aGlzLmhlaWdodD1ifTtEYT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYyBpbiBhKWlmKGIuY2FsbCh2b2lkIDAsYVtjXSxjLGEpKXJldHVybiEwO3JldHVybiExfTsKRmE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZCxlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7ZD1hcmd1bWVudHNbZV07Zm9yKGMgaW4gZClhW2NdPWRbY107Zm9yKHZhciBmPTA7ZjxFYS5sZW5ndGg7ZisrKWM9RWFbZl0sT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsYykmJihhW2NdPWRbY10pfX07R2E9ZnVuY3Rpb24oYSl7cmV0dXJue3ZhbHVlT2Y6YX0udmFsdWVPZigpfTtJYT1mdW5jdGlvbigpe3ZhciBhPW51bGw7aWYoIUhhKXJldHVybiBhO3RyeXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4gY307YT1IYS5jcmVhdGVQb2xpY3koImdvb2cjaHRtbCIse2NyZWF0ZUhUTUw6YixjcmVhdGVTY3JpcHQ6YixjcmVhdGVTY3JpcHRVUkw6Yn0pfWNhdGNoKGMpe31yZXR1cm4gYX07Xy5LYT1mdW5jdGlvbigpe0phPT09dm9pZCAwJiYoSmE9SWEoKSk7cmV0dXJuIEphfTsKXy5NYT1mdW5jdGlvbihhKXt2YXIgYj1fLkthKCk7YT1iP2IuY3JlYXRlU2NyaXB0VVJMKGEpOmE7cmV0dXJuIG5ldyBfLkxhKGEpfTtfLk5hPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLkxhKXJldHVybiBhLmc7dGhyb3cgRXJyb3IoInQiKTt9O18uT2E9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ZG9jdW1lbnQ6Yjt2YXIgYyxkO2I9KGQ9KGM9YikucXVlcnlTZWxlY3Rvcik9PW51bGw/dm9pZCAwOmQuY2FsbChjLGErIltub25jZV0iKTtyZXR1cm4gYj09bnVsbD8iIjpiLm5vbmNlfHxiLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiJ9O18uUWE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5LYSgpO2E9Yj9iLmNyZWF0ZVNjcmlwdChhKTphO3JldHVybiBuZXcgXy5QYShhKX07Xy5SYT1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5QYSlyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJ0Iik7fTsKXy5TYT1mdW5jdGlvbihhLGIpe2Euc3JjPV8uTmEoYik7KGI9Xy5PYSgic2NyaXB0IixhLm93bmVyRG9jdW1lbnQpKSYmYS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixiKX07Xy5UYT1mdW5jdGlvbigpe3ZhciBhPV8udi5uYXZpZ2F0b3I7cmV0dXJuIGEmJihhPWEudXNlckFnZW50KT9hOiIifTtfLnc9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uVGEoKS5pbmRleE9mKGEpIT0tMX07Xy5XYT1mdW5jdGlvbigpe3JldHVybiBfLlVhPyEhXy5WYSYmXy5WYS5icmFuZHMubGVuZ3RoPjA6ITF9O18uWGE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5XYSgpPyExOl8udygiT3BlcmEiKX07WWE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5VYT8hIV8uVmEmJiEhXy5WYS5wbGF0Zm9ybTohMX07Xy5aYT1mdW5jdGlvbigpe3JldHVybiBfLncoImlQaG9uZSIpJiYhXy53KCJpUG9kIikmJiFfLncoImlQYWQiKX07Xy4kYT1mdW5jdGlvbigpe3JldHVybiBfLlphKCl8fF8udygiaVBhZCIpfHxfLncoImlQb2QiKX07Cl8uYWI9ZnVuY3Rpb24oKXtyZXR1cm4gWWEoKT9fLlZhLnBsYXRmb3JtPT09Im1hY09TIjpfLncoIk1hY2ludG9zaCIpfTtiYj1mdW5jdGlvbigpe3RoaXMuaWQ9ImIifTtfLmRiPWZ1bmN0aW9uKGEsYil7Y2IuY2FsbCh0aGlzLGE/YS50eXBlOiIiKTt0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PW51bGw7dGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPXRoaXMub2Zmc2V0WT10aGlzLm9mZnNldFg9MDt0aGlzLmtleT0iIjt0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wO3RoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT0hMTt0aGlzLnN0YXRlPW51bGw7dGhpcy5wb2ludGVySWQ9MDt0aGlzLnBvaW50ZXJUeXBlPSIiO3RoaXMudGltZVN0YW1wPTA7dGhpcy5nPW51bGw7YSYmdGhpcy5pbml0KGEsYil9OwpmYj1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMubGlzdGVuZXI9YTt0aGlzLnByb3h5PW51bGw7dGhpcy5zcmM9Yjt0aGlzLnR5cGU9Yzt0aGlzLmNhcHR1cmU9ISFkO3RoaXMuVmM9ZTt0aGlzLmtleT0rK2ViO3RoaXMub2M9dGhpcy5IYz0hMX07Z2I9ZnVuY3Rpb24oYSl7dGhpcy5zcmM9YTt0aGlzLmc9e307dGhpcy5oPTB9O18uaGI9ZnVuY3Rpb24oKXtfLnUuY2FsbCh0aGlzKTt0aGlzLlFhPW5ldyBnYih0aGlzKTt0aGlzLldnPXRoaXM7dGhpcy5mZD1udWxsfTtqYj1mdW5jdGlvbihhKXtfLmhiLmNhbGwodGhpcyk7dGhpcy5nPWF8fHdpbmRvdzt0aGlzLmg9Xy54KHRoaXMuZywicmVzaXplIix0aGlzLmwsITEsdGhpcyk7dGhpcy5qPV8uaWIodGhpcy5nfHx3aW5kb3cpfTsKa2I9ZnVuY3Rpb24oYSl7Xy5oYi5jYWxsKHRoaXMpO3RoaXMuaD1hP2EuZy5kZWZhdWx0Vmlldzp3aW5kb3c7dGhpcy5vPXRoaXMuaC5kZXZpY2VQaXhlbFJhdGlvPj0xLjU/MjoxO3RoaXMuaj0oMCxfLnkpKHRoaXMuQSx0aGlzKTt0aGlzLmw9bnVsbDsodGhpcy5nPXRoaXMuaC5tYXRjaE1lZGlhP3RoaXMuaC5tYXRjaE1lZGlhKCIobWluLXJlc29sdXRpb246IDEuNWRwcHgpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpIik6bnVsbCkmJnR5cGVvZiB0aGlzLmcuYWRkTGlzdGVuZXIhPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdGhpcy5nLmFkZEV2ZW50TGlzdGVuZXIhPT0iZnVuY3Rpb24iJiYodGhpcy5nPW51bGwpfTsKbmI9ZnVuY3Rpb24oYSxiKXtfLnUuY2FsbCh0aGlzKTt0aGlzLm89YTtpZihiKXtpZih0aGlzLmwpdGhyb3cgRXJyb3IoIngiKTt0aGlzLmw9Yjt0aGlzLmg9Xy5sYihiKTt0aGlzLmc9bmV3IGpiKF8ubWIoYikpO3RoaXMuZy5uZCh0aGlzLm8uaCgpKTt0aGlzLmo9bmV3IGtiKHRoaXMuaCk7dGhpcy5qLnN0YXJ0KCl9fTtwYj1mdW5jdGlvbihhKXthPWEuSGQuY2hhckNvZGVBdChhLkJiKyspO3JldHVybiBvYlthXX07cWI9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPTA7ZG97dmFyIGQ9cGIoYSk7Ynw9KGQmMzEpPDxjO2MrPTV9d2hpbGUoZCYzMik7cmV0dXJuIGI8MD9iKzQyOTQ5NjcyOTY6Yn07Xy5yYj1mdW5jdGlvbihhKXtfLnYuc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGE7fSwwKX07c2I9ZnVuY3Rpb24oYSxiKXt0aGlzLmc9YTt0aGlzLmg9Yn07CnViPWZ1bmN0aW9uKGEsYil7Xy51LmNhbGwodGhpcyk7dGhpcy5sPWE7dGhpcy5BPWI7dGhpcy5qPXRiP251bGw6W107dGhpcy5oPXRiP251bGw6W107dGhpcy5vPXRiP251bGw6W107dGhpcy5CPSExfTt2Yj1mdW5jdGlvbigpe3RoaXMuTz10aGlzLnFhPW51bGx9O0FiPWZ1bmN0aW9uKCl7Zm9yKHZhciBhO2E9d2IucmVtb3ZlKCk7KXt0cnl7YS5nLmNhbGwoYS5zY29wZSl9Y2F0Y2goYil7Xy5yYihiKX14Yih5YixhKX16Yj0hMX07QmI9ZnVuY3Rpb24oKXt0aGlzLkI9W107dGhpcy5vPXRoaXMuaD0hMTt0aGlzLmw9dm9pZCAwO3RoaXMuRz10aGlzLlc9dGhpcy5EPSExO3RoaXMuQz0wO3RoaXMuaj1udWxsO3RoaXMuQT0wfTtfLkNiPWZ1bmN0aW9uKGEpe3JldHVybiBhP2RlY29kZVVSSShhKTphfTsKXy5FYj1mdW5jdGlvbihhLGIpe2lmKGEpe2E9YS5zcGxpdCgiJiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLmluZGV4T2YoIj0iKSxlPW51bGw7aWYoZD49MCl7dmFyIGY9YVtjXS5zdWJzdHJpbmcoMCxkKTtlPWFbY10uc3Vic3RyaW5nKGQrMSl9ZWxzZSBmPWFbY107YihmLGU/Xy5EYihlKToiIil9fX07RmI9ZnVuY3Rpb24oYSxiLGMpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspRmIoYSxTdHJpbmcoYltkXSksYyk7ZWxzZSBiIT1udWxsJiZjLnB1c2goYSsoYj09PSIiPyIiOiI9IitfLkdiKGIpKSl9O18uSGI9ZnVuY3Rpb24oYSl7Xy51LmNhbGwodGhpcyk7dGhpcy5oPWE7dGhpcy5nPXt9fTtJYj1mdW5jdGlvbigpe307SmI9ZnVuY3Rpb24oKXt9O18uTGI9ZnVuY3Rpb24oYSl7YT1fLktiKGEpO3JldHVybiBfLk1hKGEpfTsKXy5LYj1mdW5jdGlvbihhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YX07TWI9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9O05iPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwpPYj1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoImEiKTt9O18uUGI9T2IodGhpcyk7UWI9IkludDggVWludDggVWludDhDbGFtcGVkIEludDE2IFVpbnQxNiBJbnQzMiBVaW50MzIgRmxvYXQzMiBGbG9hdDY0Ii5zcGxpdCgiICIpO18uUGIuQmlnSW50NjRBcnJheSYmKFFiLnB1c2goIkJpZ0ludDY0IiksUWIucHVzaCgiQmlnVWludDY0IikpO1NiPWZ1bmN0aW9uKGEsYil7aWYoYilmb3IodmFyIGM9MDtjPFFiLmxlbmd0aDtjKyspUmIoUWJbY10rIkFycmF5LnByb3RvdHlwZS4iK2EsYil9Owp6PWZ1bmN0aW9uKGEsYil7YiYmUmIoYSxiKX07UmI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLlBiO2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmYiE9bnVsbCYmTmIoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKXy5UYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtmdW5jdGlvbiBjKCl7fW5ldyBjO1JlZmxlY3QuY29uc3RydWN0KGMsW10sZnVuY3Rpb24oKXt9KTtyZXR1cm4gbmV3IGMgaW5zdGFuY2VvZiBjfWlmKHR5cGVvZiBSZWZsZWN0IT0idW5kZWZpbmVkIiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe2lmKGEoKSlyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3Q7dmFyIGI9UmVmbGVjdC5jb25zdHJ1Y3Q7cmV0dXJuIGZ1bmN0aW9uKGMsZCxlKXtjPWIoYyxkKTtlJiZSZWZsZWN0LnNldFByb3RvdHlwZU9mKGMsZS5wcm90b3R5cGUpO3JldHVybiBjfX1yZXR1cm4gZnVuY3Rpb24oYyxkLGUpe2U9PT12b2lkIDAmJihlPWMpO2U9TWIoZS5wcm90b3R5cGV8fE9iamVjdC5wcm90b3R5cGUpO3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjLGUsZCl8fGV9fSgpOwppZih0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT0iZnVuY3Rpb24iKVViPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBWYjthOnt2YXIgV2I9e2E6ITB9LFhiPXt9O3RyeXtYYi5fX3Byb3RvX189V2I7VmI9WGIuYTticmVhayBhfWNhdGNoKGEpe31WYj0hMX1VYj1WYj9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoImJgIithKTtyZXR1cm4gYX06bnVsbH1ZYj1VYjsKXy5CPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9TWIoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYoWWIpWWIoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPSJwcm90b3R5cGUiKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKXt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsYyk7ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYyxkKX1lbHNlIGFbY109YltjXTthLmVhPWIucHJvdG90eXBlfTtaYj1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07Cl8uQz1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6WmIoYSl9O3Rocm93IEVycm9yKCJjYCIrU3RyaW5nKGEpKTt9O18uJGI9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPV8uQyhhKTtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTthPWN9cmV0dXJuIGF9O2FjPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGIpfTsKYmM9dHlwZW9mIE9iamVjdC5hc3NpZ249PSJmdW5jdGlvbiI/T2JqZWN0LmFzc2lnbjpmdW5jdGlvbihhLGIpe2lmKGE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiZCIpO2E9T2JqZWN0KGEpO2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTtpZihkKWZvcih2YXIgZSBpbiBkKWFjKGQsZSkmJihhW2VdPWRbZV0pfXJldHVybiBhfTt6KCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8YmN9KTtfLmNjPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZWAiK2EpO307Xy5GPWZ1bmN0aW9uKCl7dGhpcy5HPSExO3RoaXMuQT1udWxsO3RoaXMuaj12b2lkIDA7dGhpcy5nPTE7dGhpcy5vPXRoaXMuQz0wO3RoaXMuVz10aGlzLmw9bnVsbH07Xy5GLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGEpe3RoaXMuaj1hfTsKXy5GLnByb3RvdHlwZS5nZXROZXh0QWRkcmVzc0pzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O18uRi5wcm90b3R5cGUuZ2V0WWllbGRSZXN1bHRKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfTtfLkYucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmw9e3JldHVybjphfTt0aGlzLmc9dGhpcy5vfTtfLkYucHJvdG90eXBlWyJyZXR1cm4iXT1fLkYucHJvdG90eXBlLnJldHVybjtfLkYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7dGhpcy5sPXt4YTphfTt0aGlzLmc9dGhpcy5vfTtfLkYucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1fLkYucHJvdG90eXBlLlI7Xy5GLnByb3RvdHlwZS5oPWZ1bmN0aW9uKGEsYil7dGhpcy5nPWI7cmV0dXJue3ZhbHVlOmF9fTtfLkYucHJvdG90eXBlLnlpZWxkPV8uRi5wcm90b3R5cGUuaDsKXy5GLnByb3RvdHlwZS5UPWZ1bmN0aW9uKGEsYil7YT1fLkMoYSk7dmFyIGM9YS5uZXh0KCk7Xy5jYyhjKTtpZihjLmRvbmUpdGhpcy5qPWMudmFsdWUsdGhpcy5nPWI7ZWxzZSByZXR1cm4gdGhpcy5BPWEsdGhpcy5oKGMudmFsdWUsYil9O18uRi5wcm90b3R5cGUueWllbGRBbGw9Xy5GLnByb3RvdHlwZS5UO18uRi5wcm90b3R5cGUueGE9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9O18uRi5wcm90b3R5cGUuanVtcFRvPV8uRi5wcm90b3R5cGUueGE7Xy5GLnByb3RvdHlwZS5CPWZ1bmN0aW9uKCl7dGhpcy5nPTB9O18uRi5wcm90b3R5cGUuanVtcFRvRW5kPV8uRi5wcm90b3R5cGUuQjtfLkYucHJvdG90eXBlLkY9ZnVuY3Rpb24oYSxiKXt0aGlzLkM9YTtiIT12b2lkIDAmJih0aGlzLm89Yil9O18uRi5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPV8uRi5wcm90b3R5cGUuRjtfLkYucHJvdG90eXBlLlA9ZnVuY3Rpb24oYSl7dGhpcy5DPTA7dGhpcy5vPWF8fDB9OwpfLkYucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1fLkYucHJvdG90eXBlLlA7Xy5GLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7dGhpcy5nPWE7dGhpcy5DPWJ8fDB9O18uRi5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1fLkYucHJvdG90eXBlLks7Xy5GLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3RoaXMuQz1hfHwwO2E9dGhpcy5sLmJmO3RoaXMubD1udWxsO3JldHVybiBhfTtfLkYucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1fLkYucHJvdG90eXBlLkQ7Xy5GLnByb3RvdHlwZS5MPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuV1tjXT10aGlzLmw6dGhpcy5XPVt0aGlzLmxdO3RoaXMuQz1hfHwwO3RoaXMubz1ifHwwfTtfLkYucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPV8uRi5wcm90b3R5cGUuTDsKXy5GLnByb3RvdHlwZS5xYT1mdW5jdGlvbihhLGIpe2I9dGhpcy5XLnNwbGljZShifHwwKVswXTsoYj10aGlzLmw9dGhpcy5sfHxiKT9iLkNmP3RoaXMuZz10aGlzLkN8fHRoaXMubzpiLnhhIT12b2lkIDAmJnRoaXMubzxiLnhhPyh0aGlzLmc9Yi54YSx0aGlzLmw9bnVsbCk6dGhpcy5nPXRoaXMubzp0aGlzLmc9YX07Xy5GLnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1fLkYucHJvdG90eXBlLnFhO18uRi5wcm90b3R5cGUuTz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IGRjKGEpfTtfLkYucHJvdG90eXBlLmZvckluPV8uRi5wcm90b3R5cGUuTzt2YXIgZGM9ZnVuY3Rpb24oYSl7dGhpcy5qPWE7dGhpcy5nPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMuZy5wdXNoKGIpO3RoaXMuZy5yZXZlcnNlKCl9O2RjLnByb3RvdHlwZS5oPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmcubGVuZ3RoPjA7KXt2YXIgYT10aGlzLmcucG9wKCk7aWYoYSBpbiB0aGlzLmopcmV0dXJuIGF9cmV0dXJuIG51bGx9OwpkYy5wcm90b3R5cGUuZ2V0TmV4dD1kYy5wcm90b3R5cGUuaDtfLmVjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9O3ooImdsb2JhbFRoaXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxfLlBifSk7eigiUmVmbGVjdCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTp7fX0pO3ooIlJlZmxlY3QuY29uc3RydWN0IixmdW5jdGlvbigpe3JldHVybiBfLlRifSk7eigiUmVmbGVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpZYj9mdW5jdGlvbihiLGMpe3RyeXtyZXR1cm4gWWIoYixjKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19Om51bGx9KTsKeigiU3ltYm9sIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO3ZhciBiPWZ1bmN0aW9uKGYsZyl7dGhpcy5nPWY7TmIodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pfTtiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O3ZhciBjPSJqc2NvbXBfc3ltYm9sXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCkrIl8iLGQ9MCxlPWZ1bmN0aW9uKGYpe2lmKHRoaXMgaW5zdGFuY2VvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImciKTtyZXR1cm4gbmV3IGIoYysoZnx8IiIpKyJfIitkKyssZil9O3JldHVybiBlfSk7eigiU3ltYm9sLml0ZXJhdG9yIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO2E9U3ltYm9sKCJoIik7TmIoQXJyYXkucHJvdG90eXBlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBmYyhaYih0aGlzKSl9fSk7cmV0dXJuIGF9KTsKdmFyIGZjPWZ1bmN0aW9uKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfTsKeigiUHJvbWlzZSIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe3RoaXMuZz1udWxsfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBlP2c6bmV3IGUoZnVuY3Rpb24oaCl7aChnKX0pfWlmKGEpcmV0dXJuIGE7Yi5wcm90b3R5cGUuaD1mdW5jdGlvbihnKXtpZih0aGlzLmc9PW51bGwpe3RoaXMuZz1bXTt2YXIgaD10aGlzO3RoaXMuaihmdW5jdGlvbigpe2gubygpfSl9dGhpcy5nLnB1c2goZyl9O3ZhciBkPV8uUGIuc2V0VGltZW91dDtiLnByb3RvdHlwZS5qPWZ1bmN0aW9uKGcpe2QoZywwKX07Yi5wcm90b3R5cGUubz1mdW5jdGlvbigpe2Zvcig7dGhpcy5nJiZ0aGlzLmcubGVuZ3RoOyl7dmFyIGc9dGhpcy5nO3RoaXMuZz1bXTtmb3IodmFyIGg9MDtoPGcubGVuZ3RoOysraCl7dmFyIGs9Z1toXTtnW2hdPW51bGw7dHJ5e2soKX1jYXRjaChsKXt0aGlzLmwobCl9fX10aGlzLmc9bnVsbH07Yi5wcm90b3R5cGUubD1mdW5jdGlvbihnKXt0aGlzLmooZnVuY3Rpb24oKXt0aHJvdyBnOwp9KX07dmFyIGU9ZnVuY3Rpb24oZyl7dGhpcy5nPTA7dGhpcy5qPXZvaWQgMDt0aGlzLmg9W107dGhpcy5CPSExO3ZhciBoPXRoaXMubCgpO3RyeXtnKGgucmVzb2x2ZSxoLnJlamVjdCl9Y2F0Y2goayl7aC5yZWplY3Qoayl9fTtlLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhsKXtyZXR1cm4gZnVuY3Rpb24obil7a3x8KGs9ITAsbC5jYWxsKGgsbikpfX12YXIgaD10aGlzLGs9ITE7cmV0dXJue3Jlc29sdmU6Zyh0aGlzLkkpLHJlamVjdDpnKHRoaXMubyl9fTtlLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGcpe2lmKGc9PT10aGlzKXRoaXMubyhuZXcgVHlwZUVycm9yKCJpIikpO2Vsc2UgaWYoZyBpbnN0YW5jZW9mIGUpdGhpcy5LKGcpO2Vsc2V7YTpzd2l0Y2godHlwZW9mIGcpe2Nhc2UgIm9iamVjdCI6dmFyIGg9ZyE9bnVsbDticmVhayBhO2Nhc2UgImZ1bmN0aW9uIjpoPSEwO2JyZWFrIGE7ZGVmYXVsdDpoPSExfWg/dGhpcy5HKGcpOnRoaXMuQShnKX19O2UucHJvdG90eXBlLkc9CmZ1bmN0aW9uKGcpe3ZhciBoPXZvaWQgMDt0cnl7aD1nLnRoZW59Y2F0Y2goayl7dGhpcy5vKGspO3JldHVybn10eXBlb2YgaD09ImZ1bmN0aW9uIj90aGlzLkwoaCxnKTp0aGlzLkEoZyl9O2UucHJvdG90eXBlLm89ZnVuY3Rpb24oZyl7dGhpcy5DKDIsZyl9O2UucHJvdG90eXBlLkE9ZnVuY3Rpb24oZyl7dGhpcy5DKDEsZyl9O2UucHJvdG90eXBlLkM9ZnVuY3Rpb24oZyxoKXtpZih0aGlzLmchPTApdGhyb3cgRXJyb3IoImpgIitnKyJgIitoKyJgIit0aGlzLmcpO3RoaXMuZz1nO3RoaXMuaj1oO3RoaXMuZz09PTImJnRoaXMuVygpO3RoaXMuRCgpfTtlLnByb3RvdHlwZS5XPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcztkKGZ1bmN0aW9uKCl7aWYoZy5GKCkpe3ZhciBoPV8uUGIuY29uc29sZTt0eXBlb2YgaCE9PSJ1bmRlZmluZWQiJiZoLmVycm9yKGcuail9fSwxKX07ZS5wcm90b3R5cGUuRj1mdW5jdGlvbigpe2lmKHRoaXMuQilyZXR1cm4hMTt2YXIgZz1fLlBiLkN1c3RvbUV2ZW50LApoPV8uUGIuRXZlbnQsaz1fLlBiLmRpc3BhdGNoRXZlbnQ7aWYodHlwZW9mIGs9PT0idW5kZWZpbmVkIilyZXR1cm4hMDt0eXBlb2YgZz09PSJmdW5jdGlvbiI/Zz1uZXcgZygidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOnR5cGVvZiBoPT09ImZ1bmN0aW9uIj9nPW5ldyBoKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6KGc9Xy5QYi5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxnLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxnKSk7Zy5wcm9taXNlPXRoaXM7Zy5yZWFzb249dGhpcy5qO3JldHVybiBrKGcpfTtlLnByb3RvdHlwZS5EPWZ1bmN0aW9uKCl7aWYodGhpcy5oIT1udWxsKXtmb3IodmFyIGc9MDtnPHRoaXMuaC5sZW5ndGg7KytnKWYuaCh0aGlzLmhbZ10pO3RoaXMuaD1udWxsfX07dmFyIGY9bmV3IGI7ZS5wcm90b3R5cGUuSz1mdW5jdGlvbihnKXt2YXIgaD10aGlzLmwoKTtnLkljKGgucmVzb2x2ZSwKaC5yZWplY3QpfTtlLnByb3RvdHlwZS5MPWZ1bmN0aW9uKGcsaCl7dmFyIGs9dGhpcy5sKCk7dHJ5e2cuY2FsbChoLGsucmVzb2x2ZSxrLnJlamVjdCl9Y2F0Y2gobCl7ay5yZWplY3QobCl9fTtlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gayhwLHIpe3JldHVybiB0eXBlb2YgcD09ImZ1bmN0aW9uIj9mdW5jdGlvbih0KXt0cnl7bChwKHQpKX1jYXRjaChBKXtuKEEpfX06cn12YXIgbCxuLHE9bmV3IGUoZnVuY3Rpb24ocCxyKXtsPXA7bj1yfSk7dGhpcy5JYyhrKGcsbCksayhoLG4pKTtyZXR1cm4gcX07ZS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZyl9O2UucHJvdG90eXBlLkljPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gaygpe3N3aXRjaChsLmcpe2Nhc2UgMTpnKGwuaik7YnJlYWs7Y2FzZSAyOmgobC5qKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJrYCIrbC5nKTt9fXZhciBsPXRoaXM7dGhpcy5oPT0KbnVsbD9mLmgoayk6dGhpcy5oLnB1c2goayk7dGhpcy5CPSEwfTtlLnJlc29sdmU9YztlLnJlamVjdD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtrKGcpfSl9O2UucmFjZT1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtmb3IodmFyIGw9Xy5DKGcpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKWMobi52YWx1ZSkuSWMoaCxrKX0pfTtlLmFsbD1mdW5jdGlvbihnKXt2YXIgaD1fLkMoZyksaz1oLm5leHQoKTtyZXR1cm4gay5kb25lP2MoW10pOm5ldyBlKGZ1bmN0aW9uKGwsbil7ZnVuY3Rpb24gcSh0KXtyZXR1cm4gZnVuY3Rpb24oQSl7cFt0XT1BO3ItLTtyPT0wJiZsKHApfX12YXIgcD1bXSxyPTA7ZG8gcC5wdXNoKHZvaWQgMCkscisrLGMoay52YWx1ZSkuSWMocShwLmxlbmd0aC0xKSxuKSxrPWgubmV4dCgpO3doaWxlKCFrLmRvbmUpfSl9O3JldHVybiBlfSk7CnZhciBoYz1mdW5jdGlvbihhLGIsYyl7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJsYCIrYyk7aWYoYiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtYCIrYyk7cmV0dXJuIGErIiJ9O3ooIlN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPWhjKHRoaXMsYiwic3RhcnRzV2l0aCIpLGU9ZC5sZW5ndGgsZj1iLmxlbmd0aDtjPU1hdGgubWF4KDAsTWF0aC5taW4oY3wwLGQubGVuZ3RoKSk7Zm9yKHZhciBnPTA7ZzxmJiZjPGU7KWlmKGRbYysrXSE9YltnKytdKXJldHVybiExO3JldHVybiBnPj1mfX0pO3ooIk9iamVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fFlifSk7eigiU3ltYm9sLmRpc3Bvc2UiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6U3ltYm9sKCJuIil9KTsKeigiV2Vha01hcCIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBjKGspe3ZhciBsPXR5cGVvZiBrO3JldHVybiBsPT09Im9iamVjdCImJmshPT1udWxsfHxsPT09ImZ1bmN0aW9uIn1mdW5jdGlvbiBkKGspe2lmKCFhYyhrLGYpKXt2YXIgbD1uZXcgYjtOYihrLGYse3ZhbHVlOmx9KX19ZnVuY3Rpb24gZShrKXt2YXIgbD1PYmplY3Rba107bCYmKE9iamVjdFtrXT1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2YgYilyZXR1cm4gbjtPYmplY3QuaXNFeHRlbnNpYmxlKG4pJiZkKG4pO3JldHVybiBsKG4pfSl9aWYoZnVuY3Rpb24oKXtpZighYXx8IU9iamVjdC5zZWFsKXJldHVybiExO3RyeXt2YXIgaz1PYmplY3Quc2VhbCh7fSksbD1PYmplY3Quc2VhbCh7fSksbj1uZXcgYShbW2ssMl0sW2wsM11dKTtpZihuLmdldChrKSE9Mnx8bi5nZXQobCkhPTMpcmV0dXJuITE7bi5kZWxldGUoayk7bi5zZXQobCw0KTtyZXR1cm4hbi5oYXMoaykmJm4uZ2V0KGwpPT00fWNhdGNoKHEpe3JldHVybiExfX0oKSlyZXR1cm4gYTsKdmFyIGY9IiRqc2NvbXBfaGlkZGVuXyIrTWF0aC5yYW5kb20oKTtlKCJmcmVlemUiKTtlKCJwcmV2ZW50RXh0ZW5zaW9ucyIpO2UoInNlYWwiKTt2YXIgZz0wLGg9ZnVuY3Rpb24oayl7dGhpcy5nPShnKz1NYXRoLnJhbmRvbSgpKzEpLnRvU3RyaW5nKCk7aWYoayl7az1fLkMoayk7Zm9yKHZhciBsOyEobD1rLm5leHQoKSkuZG9uZTspbD1sLnZhbHVlLHRoaXMuc2V0KGxbMF0sbFsxXSl9fTtoLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oayxsKXtpZighYyhrKSl0aHJvdyBFcnJvcigibyIpO2Qoayk7aWYoIWFjKGssZikpdGhyb3cgRXJyb3IoInBgIitrKTtrW2ZdW3RoaXMuZ109bDtyZXR1cm4gdGhpc307aC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGspe3JldHVybiBjKGspJiZhYyhrLGYpP2tbZl1bdGhpcy5nXTp2b2lkIDB9O2gucHJvdG90eXBlLmhhcz1mdW5jdGlvbihrKXtyZXR1cm4gYyhrKSYmYWMoayxmKSYmYWMoa1tmXSx0aGlzLmcpfTtoLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oayl7cmV0dXJuIGMoaykmJgphYyhrLGYpJiZhYyhrW2ZdLHRoaXMuZyk/ZGVsZXRlIGtbZl1bdGhpcy5nXTohMX07cmV0dXJuIGh9KTsKeigiTWFwIixmdW5jdGlvbihhKXtpZihmdW5jdGlvbigpe2lmKCFhfHx0eXBlb2YgYSE9ImZ1bmN0aW9uInx8IWEucHJvdG90eXBlLmVudHJpZXN8fHR5cGVvZiBPYmplY3Quc2VhbCE9ImZ1bmN0aW9uIilyZXR1cm4hMTt0cnl7dmFyIGg9T2JqZWN0LnNlYWwoe3g6NH0pLGs9bmV3IGEoXy5DKFtbaCwicyJdXSkpO2lmKGsuZ2V0KGgpIT0icyJ8fGsuc2l6ZSE9MXx8ay5nZXQoe3g6NH0pfHxrLnNldCh7eDo0fSwidCIpIT1rfHxrLnNpemUhPTIpcmV0dXJuITE7dmFyIGw9ay5lbnRyaWVzKCksbj1sLm5leHQoKTtpZihuLmRvbmV8fG4udmFsdWVbMF0hPWh8fG4udmFsdWVbMV0hPSJzIilyZXR1cm4hMTtuPWwubmV4dCgpO3JldHVybiBuLmRvbmV8fG4udmFsdWVbMF0ueCE9NHx8bi52YWx1ZVsxXSE9InQifHwhbC5uZXh0KCkuZG9uZT8hMTohMH1jYXRjaChxKXtyZXR1cm4hMX19KCkpcmV0dXJuIGE7dmFyIGI9bmV3IFdlYWtNYXAsYz1mdW5jdGlvbihoKXt0aGlzWzBdPXt9O3RoaXNbMV09CmYoKTt0aGlzLnNpemU9MDtpZihoKXtoPV8uQyhoKTtmb3IodmFyIGs7IShrPWgubmV4dCgpKS5kb25lOylrPWsudmFsdWUsdGhpcy5zZXQoa1swXSxrWzFdKX19O2MucHJvdG90eXBlLnNldD1mdW5jdGlvbihoLGspe2g9aD09PTA/MDpoO3ZhciBsPWQodGhpcyxoKTtsLmxpc3R8fChsLmxpc3Q9dGhpc1swXVtsLmlkXT1bXSk7bC5lbnRyeT9sLmVudHJ5LnZhbHVlPWs6KGwuZW50cnk9e25leHQ6dGhpc1sxXSxiYjp0aGlzWzFdLmJiLGhlYWQ6dGhpc1sxXSxrZXk6aCx2YWx1ZTprfSxsLmxpc3QucHVzaChsLmVudHJ5KSx0aGlzWzFdLmJiLm5leHQ9bC5lbnRyeSx0aGlzWzFdLmJiPWwuZW50cnksdGhpcy5zaXplKyspO3JldHVybiB0aGlzfTtjLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oaCl7aD1kKHRoaXMsaCk7cmV0dXJuIGguZW50cnkmJmgubGlzdD8oaC5saXN0LnNwbGljZShoLmluZGV4LDEpLGgubGlzdC5sZW5ndGh8fGRlbGV0ZSB0aGlzWzBdW2guaWRdLGguZW50cnkuYmIubmV4dD0KaC5lbnRyeS5uZXh0LGguZW50cnkubmV4dC5iYj1oLmVudHJ5LmJiLGguZW50cnkuaGVhZD1udWxsLHRoaXMuc2l6ZS0tLCEwKTohMX07Yy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzWzBdPXt9O3RoaXNbMV09dGhpc1sxXS5iYj1mKCk7dGhpcy5zaXplPTB9O2MucHJvdG90eXBlLmhhcz1mdW5jdGlvbihoKXtyZXR1cm4hIWQodGhpcyxoKS5lbnRyeX07Yy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGgpe3JldHVybihoPWQodGhpcyxoKS5lbnRyeSkmJmgudmFsdWV9O2MucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGZ1bmN0aW9uKGgpe3JldHVybltoLmtleSxoLnZhbHVlXX0pfTtjLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm4gaC5rZXl9KX07Yy5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm4gaC52YWx1ZX0pfTtjLnByb3RvdHlwZS5mb3JFYWNoPQpmdW5jdGlvbihoLGspe2Zvcih2YXIgbD10aGlzLmVudHJpZXMoKSxuOyEobj1sLm5leHQoKSkuZG9uZTspbj1uLnZhbHVlLGguY2FsbChrLG5bMV0sblswXSx0aGlzKX07Yy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1jLnByb3RvdHlwZS5lbnRyaWVzO3ZhciBkPWZ1bmN0aW9uKGgsayl7dmFyIGw9ayYmdHlwZW9mIGs7bD09Im9iamVjdCJ8fGw9PSJmdW5jdGlvbiI/Yi5oYXMoayk/bD1iLmdldChrKToobD0iIisgKytnLGIuc2V0KGssbCkpOmw9InBfIitrO3ZhciBuPWhbMF1bbF07aWYobiYmYWMoaFswXSxsKSlmb3IoaD0wO2g8bi5sZW5ndGg7aCsrKXt2YXIgcT1uW2hdO2lmKGshPT1rJiZxLmtleSE9PXEua2V5fHxrPT09cS5rZXkpcmV0dXJue2lkOmwsbGlzdDpuLGluZGV4OmgsZW50cnk6cX19cmV0dXJue2lkOmwsbGlzdDpuLGluZGV4Oi0xLGVudHJ5OnZvaWQgMH19LGU9ZnVuY3Rpb24oaCxrKXt2YXIgbD1oWzFdO3JldHVybiBmYyhmdW5jdGlvbigpe2lmKGwpe2Zvcig7bC5oZWFkIT0KaFsxXTspbD1sLmJiO2Zvcig7bC5uZXh0IT1sLmhlYWQ7KXJldHVybiBsPWwubmV4dCx7ZG9uZTohMSx2YWx1ZTprKGwpfTtsPW51bGx9cmV0dXJue2RvbmU6ITAsdmFsdWU6dm9pZCAwfX0pfSxmPWZ1bmN0aW9uKCl7dmFyIGg9e307cmV0dXJuIGguYmI9aC5uZXh0PWguaGVhZD1ofSxnPTA7cmV0dXJuIGN9KTsKeigiU2V0IixmdW5jdGlvbihhKXtpZihmdW5jdGlvbigpe2lmKCFhfHx0eXBlb2YgYSE9ImZ1bmN0aW9uInx8IWEucHJvdG90eXBlLmVudHJpZXN8fHR5cGVvZiBPYmplY3Quc2VhbCE9ImZ1bmN0aW9uIilyZXR1cm4hMTt0cnl7dmFyIGM9T2JqZWN0LnNlYWwoe3g6NH0pLGQ9bmV3IGEoXy5DKFtjXSkpO2lmKCFkLmhhcyhjKXx8ZC5zaXplIT0xfHxkLmFkZChjKSE9ZHx8ZC5zaXplIT0xfHxkLmFkZCh7eDo0fSkhPWR8fGQuc2l6ZSE9MilyZXR1cm4hMTt2YXIgZT1kLmVudHJpZXMoKSxmPWUubmV4dCgpO2lmKGYuZG9uZXx8Zi52YWx1ZVswXSE9Y3x8Zi52YWx1ZVsxXSE9YylyZXR1cm4hMTtmPWUubmV4dCgpO3JldHVybiBmLmRvbmV8fGYudmFsdWVbMF09PWN8fGYudmFsdWVbMF0ueCE9NHx8Zi52YWx1ZVsxXSE9Zi52YWx1ZVswXT8hMTplLm5leHQoKS5kb25lfWNhdGNoKGcpe3JldHVybiExfX0oKSlyZXR1cm4gYTt2YXIgYj1mdW5jdGlvbihjKXt0aGlzLmc9bmV3IE1hcDtpZihjKXtjPQpfLkMoYyk7Zm9yKHZhciBkOyEoZD1jLm5leHQoKSkuZG9uZTspdGhpcy5hZGQoZC52YWx1ZSl9dGhpcy5zaXplPXRoaXMuZy5zaXplfTtiLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYyl7Yz1jPT09MD8wOmM7dGhpcy5nLnNldChjLGMpO3RoaXMuc2l6ZT10aGlzLmcuc2l6ZTtyZXR1cm4gdGhpc307Yi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGMpe2M9dGhpcy5nLmRlbGV0ZShjKTt0aGlzLnNpemU9dGhpcy5nLnNpemU7cmV0dXJuIGN9O2IucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5nLmNsZWFyKCk7dGhpcy5zaXplPTB9O2IucHJvdG90eXBlLmhhcz1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5nLmhhcyhjKX07Yi5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcuZW50cmllcygpfTtiLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLnZhbHVlcygpfTtiLnByb3RvdHlwZS5rZXlzPWIucHJvdG90eXBlLnZhbHVlczsKYi5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1iLnByb3RvdHlwZS52YWx1ZXM7Yi5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihjLGQpe3ZhciBlPXRoaXM7dGhpcy5nLmZvckVhY2goZnVuY3Rpb24oZil7cmV0dXJuIGMuY2FsbChkLGYsZixlKX0pfTtyZXR1cm4gYn0pO3ZhciBpYz1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBTdHJpbmcmJihhKz0iIik7dmFyIGM9MCxkPSExLGU9e25leHQ6ZnVuY3Rpb24oKXtpZighZCYmYzxhLmxlbmd0aCl7dmFyIGY9YysrO3JldHVybnt2YWx1ZTpiKGYsYVtmXSksZG9uZTohMX19ZD0hMDtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fX07ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBlfTt6KCJBcnJheS5wcm90b3R5cGUuZW50cmllcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiBpYyh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuW2IsY119KX19KTsKeigiQXJyYXkucHJvdG90eXBlLmtleXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4gaWModGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYn0pfX0pO3ooIlN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGgiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD1oYyh0aGlzLGIsImVuZHNXaXRoIik7Yz09PXZvaWQgMCYmKGM9ZC5sZW5ndGgpO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGU9Yi5sZW5ndGg7ZT4wJiZjPjA7KWlmKGRbLS1jXSE9YlstLWVdKXJldHVybiExO3JldHVybiBlPD0wfX0pO3ooIk51bWJlci5pc0Zpbml0ZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGIhPT0ibnVtYmVyIj8hMTohaXNOYU4oYikmJmIhPT1JbmZpbml0eSYmYiE9PS1JbmZpbml0eX19KTsKeigiQXJyYXkucHJvdG90eXBlLmZpbmQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXthOnt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7Zm9yKHZhciBlPWQubGVuZ3RoLGY9MDtmPGU7ZisrKXt2YXIgZz1kW2ZdO2lmKGIuY2FsbChjLGcsZixkKSl7Yj1nO2JyZWFrIGF9fWI9dm9pZCAwfXJldHVybiBifX0pO3ooIk9iamVjdC5lbnRyaWVzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYilhYyhiLGQpJiZjLnB1c2goW2QsYltkXV0pO3JldHVybiBjfX0pOwp6KCJBcnJheS5mcm9tIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyxkKXtjPWMhPW51bGw/YzpmdW5jdGlvbihoKXtyZXR1cm4gaH07dmFyIGU9W10sZj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07aWYodHlwZW9mIGY9PSJmdW5jdGlvbiIpe2I9Zi5jYWxsKGIpO2Zvcih2YXIgZz0wOyEoZj1iLm5leHQoKSkuZG9uZTspZS5wdXNoKGMuY2FsbChkLGYudmFsdWUsZysrKSl9ZWxzZSBmb3IoZj1iLmxlbmd0aCxnPTA7ZzxmO2crKyllLnB1c2goYy5jYWxsKGQsYltnXSxnKSk7cmV0dXJuIGV9fSk7eigiQXJyYXkucHJvdG90eXBlLnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiBpYyh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGN9KX19KTsKeigiT2JqZWN0LnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGIpYWMoYixkKSYmYy5wdXNoKGJbZF0pO3JldHVybiBjfX0pO3ooIk9iamVjdC5pcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBiPT09Yz9iIT09MHx8MS9iPT09MS9jOmIhPT1iJiZjIT09Y319KTt6KCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7dmFyIGU9ZC5sZW5ndGg7Yz1jfHwwO2ZvcihjPDAmJihjPU1hdGgubWF4KGMrZSwwKSk7YzxlO2MrKyl7dmFyIGY9ZFtjXTtpZihmPT09Ynx8T2JqZWN0LmlzKGYsYikpcmV0dXJuITB9cmV0dXJuITF9fSk7CnooIlN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4gaGModGhpcyxiLCJpbmNsdWRlcyIpLmluZGV4T2YoYixjfHwwKSE9PS0xfX0pO3ooIk51bWJlci5NQVhfU0FGRV9JTlRFR0VSIixmdW5jdGlvbigpe3JldHVybiA5MDA3MTk5MjU0NzQwOTkxfSk7eigiTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIiLGZ1bmN0aW9uKCl7cmV0dXJuLTkwMDcxOTkyNTQ3NDA5OTF9KTt6KCJOdW1iZXIuaXNJbnRlZ2VyIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYik/Yj09PU1hdGguZmxvb3IoYik6ITF9fSk7eigiTnVtYmVyLmlzU2FmZUludGVnZXIiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoYikmJk1hdGguYWJzKGIpPD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUn19KTsKeigiT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybltdfX0pO3ooIk1hdGgudHJ1bmMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7Yj1OdW1iZXIoYik7aWYoaXNOYU4oYil8fGI9PT1JbmZpbml0eXx8Yj09PS1JbmZpbml0eXx8Yj09PTApcmV0dXJuIGI7dmFyIGM9TWF0aC5mbG9vcihNYXRoLmFicyhiKSk7cmV0dXJuIGI8MD8tYzpjfX0pO3ooIk51bWJlci5pc05hTiIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGI9PT0ibnVtYmVyIiYmaXNOYU4oYil9fSk7CnooIlN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe2lmKGIgaW5zdGFuY2VvZiBSZWdFeHAmJiFiLmdsb2JhbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJxIik7cmV0dXJuIGIgaW5zdGFuY2VvZiBSZWdFeHA/dGhpcy5yZXBsYWNlKGIsYyk6dGhpcy5yZXBsYWNlKG5ldyBSZWdFeHAoU3RyaW5nKGIpLnJlcGxhY2UoLyhbLSgpXFtcXXt9Kz8qLiRcXnwsOiM8IVxcXSkvZywiXFwkMSIpLnJlcGxhY2UoL1x4MDgvZywiXFx4MDgiKSwiZyIpLGMpfX0pOwp6KCJBcnJheS5wcm90b3R5cGUuZmxhdCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtiPWI9PT12b2lkIDA/MTpiO3ZhciBjPVtdO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodGhpcyxmdW5jdGlvbihkKXtBcnJheS5pc0FycmF5KGQpJiZiPjA/KGQ9QXJyYXkucHJvdG90eXBlLmZsYXQuY2FsbChkLGItMSksYy5wdXNoLmFwcGx5KGMsZCkpOmMucHVzaChkKX0pO3JldHVybiBjfX0pO3ooIlByb21pc2UucHJvdG90eXBlLmZpbmFsbHkiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGIoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBjfSl9LGZ1bmN0aW9uKGMpe3JldHVybiBQcm9taXNlLnJlc29sdmUoYigpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgYzt9KX0pfX0pOwp6KCJBcnJheS5wcm90b3R5cGUuZmlsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMsZCl7dmFyIGU9dGhpcy5sZW5ndGh8fDA7YzwwJiYoYz1NYXRoLm1heCgwLGUrYykpO2lmKGQ9PW51bGx8fGQ+ZSlkPWU7ZD1OdW1iZXIoZCk7ZDwwJiYoZD1NYXRoLm1heCgwLGUrZCkpO2ZvcihjPU51bWJlcihjfHwwKTtjPGQ7YysrKXRoaXNbY109YjtyZXR1cm4gdGhpc319KTtTYigiZmlsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpBcnJheS5wcm90b3R5cGUuZmlsbH0pO18uX0R1bXBFeGNlcHRpb249d2luZG93Ll9EdW1wRXhjZXB0aW9ufHxmdW5jdGlvbihhKXt0aHJvdyBhO307d2luZG93Ll9EdW1wRXhjZXB0aW9uPV8uX0R1bXBFeGNlcHRpb247dmFyIGpjLGxjLG1jLG5jLHphLEFhLHBjLHFjO2pjPWpjfHx7fTtfLnY9dGhpc3x8c2VsZjtsYz1mdW5jdGlvbihhLGIpe3ZhciBjPV8ua2MoIldJWl9nbG9iYWxfZGF0YS5veE4zbmIiKTthPWMmJmNbYV07cmV0dXJuIGEhPW51bGw/YTpifTttYz1fLnYuX0ZfdG9nZ2xlc19kZWZhdWx0X3RyfHxbXTtuYz1mdW5jdGlvbigpe307bmMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O18ua2M9ZnVuY3Rpb24oYSxiKXthPWEuc3BsaXQoIi4iKTtiPWJ8fF8udjtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihiPWJbYVtjXV0sYj09bnVsbClyZXR1cm4gbnVsbDtyZXR1cm4gYn07Xy5vYz1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm4gYiE9Im9iamVjdCI/YjphP0FycmF5LmlzQXJyYXkoYSk/ImFycmF5IjpiOiJudWxsIn07Xy5xYT1mdW5jdGlvbihhKXt2YXIgYj1fLm9jKGEpO3JldHVybiBiPT0iYXJyYXkifHxiPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIn07Cl8ueWE9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGI9PSJvYmplY3QiJiZhIT1udWxsfHxiPT0iZnVuY3Rpb24ifTt6YT0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTtBYT0wO3BjPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5jYWxsLmFwcGx5KGEuYmluZCxhcmd1bWVudHMpfTtxYz1mdW5jdGlvbihhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZihhcmd1bWVudHMubGVuZ3RoPjIpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsZCk7cmV0dXJuIGEuYXBwbHkoYixlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX07Cl8ueT1mdW5jdGlvbihhLGIsYyl7Xy55PUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kJiZGdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoIm5hdGl2ZSBjb2RlIikhPS0xP3BjOnFjO3JldHVybiBfLnkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtfLnJjPWZ1bmN0aW9uKGEsYil7YT1hLnNwbGl0KCIuIik7Zm9yKHZhciBjPV8udixkO2EubGVuZ3RoJiYoZD1hLnNoaWZ0KCkpOylhLmxlbmd0aHx8Yj09PXZvaWQgMD9jW2RdJiZjW2RdIT09T2JqZWN0LnByb3RvdHlwZVtkXT9jPWNbZF06Yz1jW2RdPXt9OmNbZF09Yn07Cl8uRz1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5lYT1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EuTWs9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fTtfLkcoYWEsRXJyb3IpO2FhLnByb3RvdHlwZS5uYW1lPSJDdXN0b21FcnJvciI7dmFyIHNjO18uRyhjYSxhYSk7Y2EucHJvdG90eXBlLm5hbWU9IkFzc2VydGlvbkVycm9yIjt2YXIgZWE7dmFyIHRjPWZ1bmN0aW9uKGEsYil7dGhpcy5oPWE7dGhpcy5nPWJ8fG51bGx9O3RjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9O3ZhciB1Yz1uZXcgdGMoIm43M3F3ZiIsIm43M3F3ZiIpO3ZhciBuYT1TeW1ib2woInMiKTtfLnUucHJvdG90eXBlLnFhPSExO18udS5wcm90b3R5cGUucWI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xYX07Xy51LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5xYXx8KHRoaXMucWE9ITAsdGhpcy5NKCkpfTtfLnUucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtfLnUucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtpZih0aGlzLlcpZm9yKDt0aGlzLlcubGVuZ3RoOyl0aGlzLlcuc2hpZnQoKSgpfTt2YXIgc2Esd2M7c2E9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiB0eXBlb2YgYiE9PSJzdHJpbmcifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTtfLnZjPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoP2Z1bmN0aW9uKGEsYil7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD10eXBlb2YgYT09PSJzdHJpbmciP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKX07CndjPUFycmF5LnByb3RvdHlwZS5yZWR1Y2U/ZnVuY3Rpb24oYSxiLGMpe0FycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jOygwLF8udmMpKGEsZnVuY3Rpb24oZSxmKXtkPWIuY2FsbCh2b2lkIDAsZCxlLGYsYSl9KX07Xy54Yz1BcnJheS5wcm90b3R5cGUuc29tZT9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPXR5cGVvZiBhPT09InN0cmluZyI/YS5zcGxpdCgiIik6YSxlPTA7ZTxjO2UrKylpZihlIGluIGQmJmIuY2FsbCh2b2lkIDAsZFtlXSxlLGEpKXJldHVybiEwO3JldHVybiExfTtfLnljPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PWI/ITA6YSYmYj9hLndpZHRoPT1iLndpZHRoJiZhLmhlaWdodD09Yi5oZWlnaHQ6ITF9O18uQ2EucHJvdG90eXBlLmFzcGVjdFJhdGlvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2lkdGgvdGhpcy5oZWlnaHR9O18uQ2EucHJvdG90eXBlLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLkNhLnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5DYS5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O3ZhciBFYTtFYT0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpO18uemM9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWIuY2FsbChjLGFbZF0sZCxhKX07Xy5BYz1TdHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHJpbSgpfTpmdW5jdGlvbihhKXtyZXR1cm4vXltcc1x4YTBdKihbXHNcU10qPylbXHNceGEwXSokLy5leGVjKGEpWzFdfTt2YXIgQmM9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsSGE9QmMsSmE7Xy5MYT1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5MYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nKyIifTtfLkNjPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBVUkw9PT0iZnVuY3Rpb24ifSk7Xy5EYz1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5EYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nKyIifTtfLkVjPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfLkRjKEJjP0JjLmVtcHR5SFRNTDoiIil9KTtfLlBhPWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLlBhLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcrIiJ9O18uR2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYSkpfTtfLkRiPWZ1bmN0aW9uKGEpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYS5yZXBsYWNlKC9cKy9nLCIgIikpfTt2YXIgRmM9ISEobWNbMF0+PjI1JjEpLEdjPSEhKG1jWzBdPj4yMCYxKSxIYz0hIShtY1swXT4+MjcmMSksSWM9ISEobWNbMF0mODE5MiksSmM9ISEobWNbMF0+PjE5JjEpLEtjPSEhKG1jWzBdPj4xNyYxKSxMYz0hIShtY1swXT4+MTgmMSk7dmFyIHRiLE5jLE9jO18uVWE9RmM/SGM6bGMoNjEwNDAxMzAxLCExKTtfLk1jPUZjP0djfHwhSWM6bGMoNzQ4NDAyMTQ3LCEwKTt0Yj1GYz9KYzpsYyg5MTk0NDQ4MjQsITEpO05jPUZjP0tjOmxjKDkyODg3NTM5OCwhMSk7T2M9RmM/TGM6bGMoNjgzNzQ5MjAxLCExKTt2YXIgUGM7UGM9Xy52Lm5hdmlnYXRvcjtfLlZhPVBjP1BjLnVzZXJBZ2VudERhdGF8fG51bGw6bnVsbDtfLlFjPWZ1bmN0aW9uKGEpe18uUWNbIiAiXShhKTtyZXR1cm4gYX07Xy5RY1siICJdPWZ1bmN0aW9uKCl7fTt2YXIgZWQ7Xy5SYz1fLlhhKCk7Xy5TYz1fLldhKCk/ITE6Xy53KCJUcmlkZW50Iil8fF8udygiTVNJRSIpO18uVGM9Xy53KCJFZGdlIik7Xy5VYz1fLncoIkdlY2tvIikmJiEoXy5UYSgpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhXy53KCJFZGdlIikpJiYhKF8udygiVHJpZGVudCIpfHxfLncoIk1TSUUiKSkmJiFfLncoIkVkZ2UiKTtfLlZjPV8uVGEoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIV8udygiRWRnZSIpO18uV2M9Xy5WYyYmXy53KCJNb2JpbGUiKTtfLlljPV8uYWIoKTtfLlpjPVlhKCk/Xy5WYS5wbGF0Zm9ybT09PSJXaW5kb3dzIjpfLncoIldpbmRvd3MiKTtfLiRjPVlhKCk/Xy5WYS5wbGF0Zm9ybT09PSJBbmRyb2lkIjpfLncoIkFuZHJvaWQiKTtfLmFkPV8uWmEoKTtfLmJkPV8udygiaVBhZCIpO18uY2Q9Xy53KCJpUG9kIik7Xy5kZD1fLiRhKCk7CmE6e3ZhciBmZD0iIixnZD1mdW5jdGlvbigpe3ZhciBhPV8uVGEoKTtpZihfLlVjKXJldHVybi9ydjooW15cKTtdKykoXCl8OykvLmV4ZWMoYSk7aWYoXy5UYylyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lmKF8uU2MpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKF8uVmMpcmV0dXJuL1dlYktpdFwvKFxTKykvLmV4ZWMoYSk7aWYoXy5SYylyZXR1cm4vKD86VmVyc2lvbilbIFwvXT8oXFMrKS8uZXhlYyhhKX0oKTtnZCYmKGZkPWdkP2dkWzFdOiIiKTtpZihfLlNjKXt2YXIgaGQsaWQ9Xy52LmRvY3VtZW50O2hkPWlkP2lkLmRvY3VtZW50TW9kZTp2b2lkIDA7aWYoaGQhPW51bGwmJmhkPnBhcnNlRmxvYXQoZmQpKXtlZD1TdHJpbmcoaGQpO2JyZWFrIGF9fWVkPWZkfV8uamQ9ZWQ7dmFyIGtkPSJBUlRJQ0xFIFNFQ1RJT04gTkFWIEFTSURFIEgxIEgyIEgzIEg0IEg1IEg2IEhFQURFUiBGT09URVIgQUREUkVTUyBQIEhSIFBSRSBCTE9DS1FVT1RFIE9MIFVMIExIIExJIERMIERUIEREIEZJR1VSRSBGSUdDQVBUSU9OIE1BSU4gRElWIEVNIFNUUk9ORyBTTUFMTCBTIENJVEUgUSBERk4gQUJCUiBSVUJZIFJCIFJUIFJUQyBSUCBEQVRBIFRJTUUgQ09ERSBWQVIgU0FNUCBLQkQgU1VCIFNVUCBJIEIgVSBNQVJLIEJESSBCRE8gU1BBTiBCUiBXQlIgTk9CUiBJTlMgREVMIFBJQ1RVUkUgUEFSQU0gVFJBQ0sgTUFQIFRBQkxFIENBUFRJT04gQ09MR1JPVVAgQ09MIFRCT0RZIFRIRUFEIFRGT09UIFRSIFREIFRIIFNFTEVDVCBEQVRBTElTVCBPUFRHUk9VUCBPUFRJT04gT1VUUFVUIFBST0dSRVNTIE1FVEVSIEZJRUxEU0VUIExFR0VORCBERVRBSUxTIFNVTU1BUlkgTUVOVSBESUFMT0cgU0xPVCBDQU5WQVMgRk9OVCBDRU5URVIgQUNST05ZTSBCQVNFRk9OVCBCSUcgRElSIEhHUk9VUCBTVFJJS0UgVFQiLnNwbGl0KCIgIiksCmxkPVtbIkEiLG5ldyBNYXAoW1siaHJlZiIse3VhOjd9XV0pXSxbIkFSRUEiLG5ldyBNYXAoW1siaHJlZiIse3VhOjd9XV0pXSxbIkxJTksiLG5ldyBNYXAoW1siaHJlZiIse3VhOjUsY29uZGl0aW9uczpuZXcgTWFwKFtbInJlbCIsbmV3IFNldCgiYWx0ZXJuYXRlIGF1dGhvciBib29rbWFyayBjYW5vbmljYWwgY2l0ZSBoZWxwIGljb24gbGljZW5zZSBuZXh0IHByZWZldGNoIGRucy1wcmVmZXRjaCBwcmVyZW5kZXIgcHJlY29ubmVjdCBwcmVsb2FkIHByZXYgc2VhcmNoIHN1YnJlc291cmNlIi5zcGxpdCgiICIpKV1dKX1dXSldLFsiU09VUkNFIixuZXcgTWFwKFtbInNyYyIse3VhOjV9XSxbInNyY3NldCIse3VhOjZ9XV0pXSxbIklNRyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV0sWyJzcmNzZXQiLHt1YTo2fV1dKV0sWyJWSURFTyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV1dKV0sWyJBVURJTyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV1dKV1dLG1kPSJ0aXRsZSBhcmlhLWF0b21pYyBhcmlhLWF1dG9jb21wbGV0ZSBhcmlhLWJ1c3kgYXJpYS1jaGVja2VkIGFyaWEtY3VycmVudCBhcmlhLWRpc2FibGVkIGFyaWEtZHJvcGVmZmVjdCBhcmlhLWV4cGFuZGVkIGFyaWEtaGFzcG9wdXAgYXJpYS1oaWRkZW4gYXJpYS1pbnZhbGlkIGFyaWEtbGFiZWwgYXJpYS1sZXZlbCBhcmlhLWxpdmUgYXJpYS1tdWx0aWxpbmUgYXJpYS1tdWx0aXNlbGVjdGFibGUgYXJpYS1vcmllbnRhdGlvbiBhcmlhLXBvc2luc2V0IGFyaWEtcHJlc3NlZCBhcmlhLXJlYWRvbmx5IGFyaWEtcmVsZXZhbnQgYXJpYS1yZXF1aXJlZCBhcmlhLXNlbGVjdGVkIGFyaWEtc2V0c2l6ZSBhcmlhLXNvcnQgYXJpYS12YWx1ZW1heCBhcmlhLXZhbHVlbWluIGFyaWEtdmFsdWVub3cgYXJpYS12YWx1ZXRleHQgYWx0IGFsaWduIGF1dG9jYXBpdGFsaXplIGF1dG9jb21wbGV0ZSBhdXRvY29ycmVjdCBhdXRvZm9jdXMgYXV0b3BsYXkgYmdjb2xvciBib3JkZXIgY2VsbHBhZGRpbmcgY2VsbHNwYWNpbmcgY2hlY2tlZCBjaXRlIGNvbG9yIGNvbHMgY29sc3BhbiBjb250cm9scyBjb250cm9sc2xpc3QgY29vcmRzIGNyb3Nzb3JpZ2luIGRhdGV0aW1lIGRpc2FibGVkIGRvd25sb2FkIGRyYWdnYWJsZSBlbmN0eXBlIGZhY2UgZm9ybWVuY3R5cGUgZnJhbWVib3JkZXIgaGVpZ2h0IGhyZWZsYW5nIGhpZGRlbiBpbmVydCBpc21hcCBsYWJlbCBsYW5nIGxvb3AgbWF4IG1heGxlbmd0aCBtZWRpYSBtaW5sZW5ndGggbWluIG11bHRpcGxlIG11dGVkIG5vbmNlIG9wZW4gcGxheXNpbmxpbmUgcGxhY2Vob2xkZXIgcHJlbG9hZCByZWwgcmVxdWlyZWQgcmV2ZXJzZWQgcm9sZSByb3dzIHJvd3NwYW4gc2VsZWN0ZWQgc2hhcGUgc2l6ZSBzaXplcyBzbG90IHNwYW4gc3BlbGxjaGVjayBzdGFydCBzdGVwIHN1bW1hcnkgdHJhbnNsYXRlIHR5cGUgdXNlbWFwIHZhbGlnbiB2YWx1ZSB3aWR0aCB3cmFwIGl0ZW1zY29wZSBpdGVtdHlwZSBpdGVtaWQgaXRlbXByb3AgaXRlbXJlZiIuc3BsaXQoIiAiKSwKbmQ9W1siZGlyIix7dWE6Myxjb25kaXRpb25zOkdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXAoW1siZGlyIixuZXcgU2V0KFsiYXV0byIsImx0ciIsInJ0bCJdKV1dKX0pfV0sWyJhc3luYyIse3VhOjMsY29uZGl0aW9uczpHYShmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwKFtbImFzeW5jIixuZXcgU2V0KFsiYXN5bmMiXSldXSl9KX1dLFsibG9hZGluZyIse3VhOjMsY29uZGl0aW9uczpHYShmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwKFtbImxvYWRpbmciLG5ldyBTZXQoWyJlYWdlciIsImxhenkiXSldXSl9KX1dLFsicG9zdGVyIix7dWE6NX1dLFsidGFyZ2V0Iix7dWE6Myxjb25kaXRpb25zOkdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXAoW1sidGFyZ2V0IixuZXcgU2V0KFsiX3NlbGYiLCJfYmxhbmsiXSldXSl9KX1dXSxvZD1uZXcgZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5ldyBTZXQoWyJkYXRhLSIsImFyaWEtIl0pLGU9bmV3IE1hcChsZCk7dGhpcy5qPWE7dGhpcy5nPQplO3RoaXMubD1iO3RoaXMubz1jO3RoaXMuaD1kfShuZXcgU2V0KEdhKGZ1bmN0aW9uKCl7cmV0dXJuIGtkLmNvbmNhdCgiU1RZTEUgVElUTEUgSU5QVVQgVEVYVEFSRUEgQlVUVE9OIExBQkVMIi5zcGxpdCgiICIpKX0pKSxuZXcgU2V0KEdhKGZ1bmN0aW9uKCl7cmV0dXJuIG1kLmNvbmNhdChbImNsYXNzIiwiaWQiLCJ0YWJpbmRleCIsImNvbnRlbnRlZGl0YWJsZSIsIm5hbWUiXSl9KSksbmV3IE1hcChHYShmdW5jdGlvbigpe3JldHVybiBuZC5jb25jYXQoW1sic3R5bGUiLHt1YToxfV1dKX0pKSk7dmFyIHBkPWZ1bmN0aW9uKCl7dGhpcy5nPW9kfTtwZC5wcm90b3R5cGUuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGEpfTtfLnFkPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBwZH0pO3ZhciB2ZCx1ZCx4ZDtfLmxiPWZ1bmN0aW9uKGEpe3JldHVybiBhP25ldyBfLnJkKF8uc2QoYSkpOnNjfHwoc2M9bmV3IF8ucmQpfTtfLnRkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiPT09InN0cmluZyI/YS5nZXRFbGVtZW50QnlJZChiKTpifTt2ZD1mdW5jdGlvbihhLGIpe18uemMoYixmdW5jdGlvbihjLGQpe2Q9PSJzdHlsZSI/YS5zdHlsZS5jc3NUZXh0PWM6ZD09ImNsYXNzIj9hLmNsYXNzTmFtZT1jOmQ9PSJmb3IiP2EuaHRtbEZvcj1jOnVkLmhhc093blByb3BlcnR5KGQpP2Euc2V0QXR0cmlidXRlKHVkW2RdLGMpOmQubGFzdEluZGV4T2YoImFyaWEtIiwwKT09MHx8ZC5sYXN0SW5kZXhPZigiZGF0YS0iLDApPT0wP2Euc2V0QXR0cmlidXRlKGQsYyk6YVtkXT1jfSl9Owp1ZD17Y2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNvbHNwYW46ImNvbFNwYW4iLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciIsaGVpZ2h0OiJoZWlnaHQiLG1heGxlbmd0aDoibWF4TGVuZ3RoIixub25jZToibm9uY2UiLHJvbGU6InJvbGUiLHJvd3NwYW46InJvd1NwYW4iLHR5cGU6InR5cGUiLHVzZW1hcDoidXNlTWFwIix2YWxpZ246InZBbGlnbiIsd2lkdGg6IndpZHRoIn07Xy5pYj1mdW5jdGlvbihhKXthPWEuZG9jdW1lbnQ7YT1hLmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0Ij9hLmRvY3VtZW50RWxlbWVudDphLmJvZHk7cmV0dXJuIG5ldyBfLkNhKGEuY2xpZW50V2lkdGgsYS5jbGllbnRIZWlnaHQpfTtfLm1iPWZ1bmN0aW9uKGEpe3JldHVybiBhP2EuZGVmYXVsdFZpZXc6d2luZG93fTsKXy55ZD1mdW5jdGlvbihhLGIpe3ZhciBjPWJbMV0sZD1fLndkKGEsU3RyaW5nKGJbMF0pKTtjJiYodHlwZW9mIGM9PT0ic3RyaW5nIj9kLmNsYXNzTmFtZT1jOkFycmF5LmlzQXJyYXkoYyk/ZC5jbGFzc05hbWU9Yy5qb2luKCIgIik6dmQoZCxjKSk7Yi5sZW5ndGg+MiYmeGQoYSxkLGIsMik7cmV0dXJuIGR9Owp4ZD1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKGgpe2gmJmIuYXBwZW5kQ2hpbGQodHlwZW9mIGg9PT0ic3RyaW5nIj9hLmNyZWF0ZVRleHROb2RlKGgpOmgpfWZvcig7ZDxjLmxlbmd0aDtkKyspe3ZhciBmPWNbZF07aWYoIV8ucWEoZil8fF8ueWEoZikmJmYubm9kZVR5cGU+MCllKGYpO2Vsc2V7YTp7aWYoZiYmdHlwZW9mIGYubGVuZ3RoPT0ibnVtYmVyIil7aWYoXy55YShmKSl7dmFyIGc9dHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uInx8dHlwZW9mIGYuaXRlbT09InN0cmluZyI7YnJlYWsgYX1pZih0eXBlb2YgZj09PSJmdW5jdGlvbiIpe2c9dHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uIjticmVhayBhfX1nPSExfV8udmMoZz9fLndhKGYpOmYsZSl9fX07Xy53ZD1mdW5jdGlvbihhLGIpe2I9U3RyaW5nKGIpO2EuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24veGh0bWwreG1sIiYmKGI9Yi50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGIpfTsKXy56ZD1mdW5jdGlvbihhKXtmb3IodmFyIGI7Yj1hLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYil9O18uQWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEucGFyZW50Tm9kZT9hLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk6bnVsbH07Xy5CZD1mdW5jdGlvbihhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihhLmNvbnRhaW5zJiZiLm5vZGVUeXBlPT0xKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKHR5cGVvZiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIilyZXR1cm4gYT09Ynx8ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYj09YX07Xy5zZD1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH07Cl8uQ2Q9ZnVuY3Rpb24oYSxiKXtpZigidGV4dENvbnRlbnQiaW4gYSlhLnRleHRDb250ZW50PWI7ZWxzZSBpZihhLm5vZGVUeXBlPT0zKWEuZGF0YT1TdHJpbmcoYik7ZWxzZSBpZihhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5ub2RlVHlwZT09Myl7Zm9yKDthLmxhc3RDaGlsZCE9YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEubGFzdENoaWxkKTthLmZpcnN0Q2hpbGQuZGF0YT1TdHJpbmcoYil9ZWxzZSBfLnpkKGEpLGEuYXBwZW5kQ2hpbGQoXy5zZChhKS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoYikpKX07Xy5yZD1mdW5jdGlvbihhKXt0aGlzLmc9YXx8Xy52LmRvY3VtZW50fHxkb2N1bWVudH07Xy5tPV8ucmQucHJvdG90eXBlO18ubS5IPWZ1bmN0aW9uKGEpe3JldHVybiBfLnRkKHRoaXMuZyxhKX07Xy5tLmRqPV8ucmQucHJvdG90eXBlLkg7Xy5tLmdldEVsZW1lbnRzQnlUYWdOYW1lPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGJ8fHRoaXMuZykuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKGEpKX07Cl8ubS5TPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy55ZCh0aGlzLmcsYXJndW1lbnRzKX07Xy5tLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ud2QodGhpcy5nLGEpfTtfLm0uY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZy5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoYSkpfTtfLm0uYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oYSxiKXthLmFwcGVuZENoaWxkKGIpfTtfLm0uYXBwZW5kPWZ1bmN0aW9uKGEsYil7eGQoXy5zZChhKSxhLGFyZ3VtZW50cywxKX07Xy5tLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihhKXtpZihhLm5vZGVUeXBlIT0xKXJldHVybiExO3N3aXRjaChhLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4hMX1yZXR1cm4hMH07Cl8ubS5pZT1fLnpkO18ubS5yZW1vdmVOb2RlPV8uQWQ7Xy5tLmNvbnRhaW5zPV8uQmQ7Xy5tLlNiPV8uQ2Q7YmIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWR9O3ZhciBjYj1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hIGluc3RhbmNlb2YgYmI/U3RyaW5nKGEpOmE7dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PWI7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMuaD0hMX07Y2IucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3RoaXMuaD0hMH07Y2IucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwfTt2YXIgRGQ9ZnVuY3Rpb24oKXtpZighXy52LmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIGE9ITEsYj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXthPSEwfX0pO3RyeXt2YXIgYz1mdW5jdGlvbigpe307Xy52LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYik7Xy52LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYil9Y2F0Y2goZCl7fXJldHVybiBhfSgpO18uRyhfLmRiLGNiKTsKXy5kYi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMudHlwZT1hLnR5cGUsZD1hLmNoYW5nZWRUb3VjaGVzJiZhLmNoYW5nZWRUb3VjaGVzLmxlbmd0aD9hLmNoYW5nZWRUb3VjaGVzWzBdOm51bGw7dGhpcy50YXJnZXQ9YS50YXJnZXR8fGEuc3JjRWxlbWVudDt0aGlzLmN1cnJlbnRUYXJnZXQ9YjtiPWEucmVsYXRlZFRhcmdldDtifHwoYz09Im1vdXNlb3ZlciI/Yj1hLmZyb21FbGVtZW50OmM9PSJtb3VzZW91dCImJihiPWEudG9FbGVtZW50KSk7dGhpcy5yZWxhdGVkVGFyZ2V0PWI7ZD8odGhpcy5jbGllbnRYPWQuY2xpZW50WCE9PXZvaWQgMD9kLmNsaWVudFg6ZC5wYWdlWCx0aGlzLmNsaWVudFk9ZC5jbGllbnRZIT09dm9pZCAwP2QuY2xpZW50WTpkLnBhZ2VZLHRoaXMuc2NyZWVuWD1kLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPWQuc2NyZWVuWXx8MCk6KHRoaXMub2Zmc2V0WD1fLlZjfHxhLm9mZnNldFghPT12b2lkIDA/YS5vZmZzZXRYOmEubGF5ZXJYLAp0aGlzLm9mZnNldFk9Xy5WY3x8YS5vZmZzZXRZIT09dm9pZCAwP2Eub2Zmc2V0WTphLmxheWVyWSx0aGlzLmNsaWVudFg9YS5jbGllbnRYIT09dm9pZCAwP2EuY2xpZW50WDphLnBhZ2VYLHRoaXMuY2xpZW50WT1hLmNsaWVudFkhPT12b2lkIDA/YS5jbGllbnRZOmEucGFnZVksdGhpcy5zY3JlZW5YPWEuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9YS5zY3JlZW5ZfHwwKTt0aGlzLmJ1dHRvbj1hLmJ1dHRvbjt0aGlzLmtleUNvZGU9YS5rZXlDb2RlfHwwO3RoaXMua2V5PWEua2V5fHwiIjt0aGlzLmNoYXJDb2RlPWEuY2hhckNvZGV8fChjPT0ia2V5cHJlc3MiP2Eua2V5Q29kZTowKTt0aGlzLmN0cmxLZXk9YS5jdHJsS2V5O3RoaXMuYWx0S2V5PWEuYWx0S2V5O3RoaXMuc2hpZnRLZXk9YS5zaGlmdEtleTt0aGlzLm1ldGFLZXk9YS5tZXRhS2V5O3RoaXMucG9pbnRlcklkPWEucG9pbnRlcklkfHwwO3RoaXMucG9pbnRlclR5cGU9YS5wb2ludGVyVHlwZTt0aGlzLnN0YXRlPWEuc3RhdGU7CnRoaXMudGltZVN0YW1wPWEudGltZVN0YW1wO3RoaXMuZz1hO2EuZGVmYXVsdFByZXZlbnRlZCYmXy5kYi5lYS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpfTtfLmRiLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtfLmRiLmVhLnN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpO3RoaXMuZy5zdG9wUHJvcGFnYXRpb24/dGhpcy5nLnN0b3BQcm9wYWdhdGlvbigpOnRoaXMuZy5jYW5jZWxCdWJibGU9ITB9O18uZGIucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7Xy5kYi5lYS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZzthLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExfTt2YXIgRWQ9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKyhNYXRoLnJhbmRvbSgpKjFFNnwwKSxGZD1mdW5jdGlvbihhKXtyZXR1cm4hKCFhfHwhYVtFZF0pfTt2YXIgZWI9MDt2YXIgR2Q9ZnVuY3Rpb24oYSl7YS5vYz0hMDthLmxpc3RlbmVyPW51bGw7YS5wcm94eT1udWxsO2Euc3JjPW51bGw7YS5WYz1udWxsfTtnYi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS50b1N0cmluZygpO2E9dGhpcy5nW2ZdO2F8fChhPXRoaXMuZ1tmXT1bXSx0aGlzLmgrKyk7dmFyIGc9SGQoYSxiLGQsZSk7Zz4tMT8oYj1hW2ddLGN8fChiLkhjPSExKSk6KGI9bmV3IGZiKGIsdGhpcy5zcmMsZiwhIWQsZSksYi5IYz1jLGEucHVzaChiKSk7cmV0dXJuIGJ9O2diLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSxiLGMsZCl7YT1hLnRvU3RyaW5nKCk7aWYoIShhIGluIHRoaXMuZykpcmV0dXJuITE7dmFyIGU9dGhpcy5nW2FdO2I9SGQoZSxiLGMsZCk7cmV0dXJuIGI+LTE/KEdkKGVbYl0pLEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChlLGIsMSksZS5sZW5ndGg9PTAmJihkZWxldGUgdGhpcy5nW2FdLHRoaXMuaC0tKSwhMCk6ITF9Owp2YXIgSWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnR5cGU7YyBpbiBhLmcmJl8udmEoYS5nW2NdLGIpJiYoR2QoYiksYS5nW2NdLmxlbmd0aD09MCYmKGRlbGV0ZSBhLmdbY10sYS5oLS0pKX07Z2IucHJvdG90eXBlLmpjPWZ1bmN0aW9uKGEsYixjLGQpe2E9dGhpcy5nW2EudG9TdHJpbmcoKV07dmFyIGU9LTE7YSYmKGU9SGQoYSxiLGMsZCkpO3JldHVybiBlPi0xP2FbZV06bnVsbH07Z2IucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dmFyIGM9YSE9PXZvaWQgMCxkPWM/YS50b1N0cmluZygpOiIiLGU9YiE9PXZvaWQgMDtyZXR1cm4gRGEodGhpcy5nLGZ1bmN0aW9uKGYpe2Zvcih2YXIgZz0wO2c8Zi5sZW5ndGg7KytnKWlmKCEoYyYmZltnXS50eXBlIT1kfHxlJiZmW2ddLmNhcHR1cmUhPWIpKXJldHVybiEwO3JldHVybiExfSl9Owp2YXIgSGQ9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPTA7ZTxhLmxlbmd0aDsrK2Upe3ZhciBmPWFbZV07aWYoIWYub2MmJmYubGlzdGVuZXI9PWImJmYuY2FwdHVyZT09ISFjJiZmLlZjPT1kKXJldHVybiBlfXJldHVybi0xfTt2YXIgSmQsS2QsTWQsUGQsUmQsU2QsVGQsUWQsV2QsT2Q7SmQ9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCk7S2Q9e307TWQ9MDtfLng9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihkJiZkLm9uY2UpcmV0dXJuIF8uTmQoYSxiLGMsZCxlKTtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKylfLngoYSxiW2ZdLGMsZCxlKTtyZXR1cm4gbnVsbH1jPU9kKGMpO3JldHVybiBGZChhKT9hLk4oYixjLF8ueWEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlBkKGEsYixjLCExLGQsZSl9OwpQZD1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIWIpdGhyb3cgRXJyb3IoInYiKTt2YXIgZz1fLnlhKGUpPyEhZS5jYXB0dXJlOiEhZSxoPVFkKGEpO2h8fChhW0pkXT1oPW5ldyBnYihhKSk7Yz1oLmFkZChiLGMsZCxnLGYpO2lmKGMucHJveHkpcmV0dXJuIGM7ZD1SZCgpO2MucHJveHk9ZDtkLnNyYz1hO2QubGlzdGVuZXI9YztpZihhLmFkZEV2ZW50TGlzdGVuZXIpRGR8fChlPWcpLGU9PT12b2lkIDAmJihlPSExKSxhLmFkZEV2ZW50TGlzdGVuZXIoYi50b1N0cmluZygpLGQsZSk7ZWxzZSBpZihhLmF0dGFjaEV2ZW50KWEuYXR0YWNoRXZlbnQoU2QoYi50b1N0cmluZygpKSxkKTtlbHNlIGlmKGEuYWRkTGlzdGVuZXImJmEucmVtb3ZlTGlzdGVuZXIpYS5hZGRMaXN0ZW5lcihkKTtlbHNlIHRocm93IEVycm9yKCJ3Iik7TWQrKztyZXR1cm4gY307UmQ9ZnVuY3Rpb24oKXt2YXIgYT1UZCxiPWZ1bmN0aW9uKGMpe3JldHVybiBhLmNhbGwoYi5zcmMsYi5saXN0ZW5lcixjKX07cmV0dXJuIGJ9OwpfLk5kPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspXy5OZChhLGJbZl0sYyxkLGUpO3JldHVybiBudWxsfWM9T2QoYyk7cmV0dXJuIEZkKGEpP2EuYWUoYixjLF8ueWEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlBkKGEsYixjLCEwLGQsZSl9O18uVWQ9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKWZvcih2YXIgZj0wO2Y8Yi5sZW5ndGg7ZisrKV8uVWQoYSxiW2ZdLGMsZCxlKTtlbHNlIGQ9Xy55YShkKT8hIWQuY2FwdHVyZTohIWQsYz1PZChjKSxGZChhKT9hLnljKGIsYyxkLGUpOmEmJihhPVFkKGEpKSYmKGI9YS5qYyhiLGMsZCxlKSkmJl8uVmQoYil9OwpfLlZkPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09Im51bWJlciImJmEmJiFhLm9jKXt2YXIgYj1hLnNyYztpZihGZChiKSlJZChiLlFhLGEpO2Vsc2V7dmFyIGM9YS50eXBlLGQ9YS5wcm94eTtiLnJlbW92ZUV2ZW50TGlzdGVuZXI/Yi5yZW1vdmVFdmVudExpc3RlbmVyKGMsZCxhLmNhcHR1cmUpOmIuZGV0YWNoRXZlbnQ/Yi5kZXRhY2hFdmVudChTZChjKSxkKTpiLmFkZExpc3RlbmVyJiZiLnJlbW92ZUxpc3RlbmVyJiZiLnJlbW92ZUxpc3RlbmVyKGQpO01kLS07KGM9UWQoYikpPyhJZChjLGEpLGMuaD09MCYmKGMuc3JjPW51bGwsYltKZF09bnVsbCkpOkdkKGEpfX19O1NkPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluIEtkP0tkW2FdOktkW2FdPSJvbiIrYX07VGQ9ZnVuY3Rpb24oYSxiKXtpZihhLm9jKWE9ITA7ZWxzZXtiPW5ldyBfLmRiKGIsdGhpcyk7dmFyIGM9YS5saXN0ZW5lcixkPWEuVmN8fGEuc3JjO2EuSGMmJl8uVmQoYSk7YT1jLmNhbGwoZCxiKX1yZXR1cm4gYX07ClFkPWZ1bmN0aW9uKGEpe2E9YVtKZF07cmV0dXJuIGEgaW5zdGFuY2VvZiBnYj9hOm51bGx9O1dkPSJfX2Nsb3N1cmVfZXZlbnRzX2ZuXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7T2Q9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBhO2FbV2RdfHwoYVtXZF09ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFuZGxlRXZlbnQoYil9KTtyZXR1cm4gYVtXZF19O18uRyhfLmhiLF8udSk7Xy5oYi5wcm90b3R5cGVbRWRdPSEwO18ubT1fLmhiLnByb3RvdHlwZTtfLm0ubmQ9ZnVuY3Rpb24oYSl7dGhpcy5mZD1hfTtfLm0uYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtfLngodGhpcyxhLGIsYyxkKX07Xy5tLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5VZCh0aGlzLGEsYixjLGQpfTsKXy5tLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmZkO2lmKGMpZm9yKGI9W107YztjPWMuZmQpYi5wdXNoKGMpO2M9dGhpcy5XZzt2YXIgZD1hLnR5cGV8fGE7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilhPW5ldyBjYihhLGMpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIGNiKWEudGFyZ2V0PWEudGFyZ2V0fHxjO2Vsc2V7dmFyIGU9YTthPW5ldyBjYihkLGMpO0ZhKGEsZSl9ZT0hMDt2YXIgZjtpZihiKWZvcihmPWIubGVuZ3RoLTE7IWEuaCYmZj49MDtmLS0pe3ZhciBnPWEuY3VycmVudFRhcmdldD1iW2ZdO2U9WGQoZyxkLCEwLGEpJiZlfWEuaHx8KGc9YS5jdXJyZW50VGFyZ2V0PWMsZT1YZChnLGQsITAsYSkmJmUsYS5ofHwoZT1YZChnLGQsITEsYSkmJmUpKTtpZihiKWZvcihmPTA7IWEuaCYmZjxiLmxlbmd0aDtmKyspZz1hLmN1cnJlbnRUYXJnZXQ9YltmXSxlPVhkKGcsZCwhMSxhKSYmZTtyZXR1cm4gZX07Cl8ubS5NPWZ1bmN0aW9uKCl7Xy5oYi5lYS5NLmNhbGwodGhpcyk7aWYodGhpcy5RYSl7dmFyIGE9dGhpcy5RYSxiPTAsYztmb3IoYyBpbiBhLmcpe2Zvcih2YXIgZD1hLmdbY10sZT0wO2U8ZC5sZW5ndGg7ZSsrKSsrYixHZChkW2VdKTtkZWxldGUgYS5nW2NdO2EuaC0tfX10aGlzLmZkPW51bGx9O18ubS5OPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLlFhLmFkZChTdHJpbmcoYSksYiwhMSxjLGQpfTtfLm0uYWU9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuUWEuYWRkKFN0cmluZyhhKSxiLCEwLGMsZCl9O18ubS55Yz1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5RYS5yZW1vdmUoU3RyaW5nKGEpLGIsYyxkKX07CnZhciBYZD1mdW5jdGlvbihhLGIsYyxkKXtiPWEuUWEuZ1tTdHJpbmcoYildO2lmKCFiKXJldHVybiEwO2I9Yi5jb25jYXQoKTtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7KytmKXt2YXIgZz1iW2ZdO2lmKGcmJiFnLm9jJiZnLmNhcHR1cmU9PWMpe3ZhciBoPWcubGlzdGVuZXIsaz1nLlZjfHxnLnNyYztnLkhjJiZJZChhLlFhLGcpO2U9aC5jYWxsKGssZCkhPT0hMSYmZX19cmV0dXJuIGUmJiFkLmRlZmF1bHRQcmV2ZW50ZWR9O18uaGIucHJvdG90eXBlLmpjPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLlFhLmpjKFN0cmluZyhhKSxiLGMsZCl9O18uaGIucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuUWEuaGFzTGlzdGVuZXIoYSE9PXZvaWQgMD9TdHJpbmcoYSk6dm9pZCAwLGIpfTtfLkcoamIsXy5oYik7amIucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtqYi5lYS5NLmNhbGwodGhpcyk7dGhpcy5oJiYoXy5WZCh0aGlzLmgpLHRoaXMuaD1udWxsKTt0aGlzLmo9dGhpcy5nPW51bGx9O2piLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7dmFyIGE9Xy5pYih0aGlzLmd8fHdpbmRvdyk7Xy55YyhhLHRoaXMuail8fCh0aGlzLmo9YSx0aGlzLmRpc3BhdGNoRXZlbnQoInJlc2l6ZSIpKX07Xy5HKGtiLF8uaGIpO2tiLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5nJiYodHlwZW9mIHRoaXMuZy5hZGRFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIj8odGhpcy5nLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5qKSx0aGlzLmw9ZnVuY3Rpb24oKXthLmcucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhLmopfSk6KHRoaXMuZy5hZGRMaXN0ZW5lcih0aGlzLmopLHRoaXMubD1mdW5jdGlvbigpe2EuZy5yZW1vdmVMaXN0ZW5lcihhLmopfSkpfTtrYi5wcm90b3R5cGUuQT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5kZXZpY2VQaXhlbFJhdGlvPj0xLjU/MjoxO3RoaXMubyE9YSYmKHRoaXMubz1hLHRoaXMuZGlzcGF0Y2hFdmVudCgiYSIpKX07a2IucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmwmJnRoaXMubCgpO2tiLmVhLk0uY2FsbCh0aGlzKX07Xy5HKG5iLF8udSk7bmIucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmg9dGhpcy5sPW51bGw7dGhpcy5nJiYodGhpcy5nLmRpc3Bvc2UoKSx0aGlzLmc9bnVsbCk7Xy5wYSh0aGlzLmopO3RoaXMuaj1udWxsfTtfLm9hKHVjLG5iKTt2YXIgb2I9bmV3IFVpbnQ4QXJyYXkoMTIzKSxZZD0hMTt2YXIgWmQ9W107bmM9bmN8fHt9O3ZhciAkZD1mdW5jdGlvbigpe18udS5jYWxsKHRoaXMpfTtfLkcoJGQsXy51KTskZC5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe307c2IucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7dGhpcy5nJiYodGhpcy5nLmNhbGwodGhpcy5ofHxudWxsLGEpLHRoaXMuZz10aGlzLmg9bnVsbCl9O3NiLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuaD10aGlzLmc9bnVsbH07bmMuR2U9c2I7Xy5HKHViLF8udSk7dWIucHJvdG90eXBlLkM9JGQ7dWIucHJvdG90eXBlLmc9bnVsbDt1Yi5wcm90b3R5cGUuUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfTt2YXIgYWU9ZnVuY3Rpb24oYSxiLGMpe2Euanx8KGEuaj1bXSk7YS5qLnB1c2gobmV3IG5jLkdlKGIsYykpfSxiZT1mdW5jdGlvbihhLGIpe2EuaHx8KGEuaD1bXSk7YS5oLnB1c2gobmV3IG5jLkdlKGIsdm9pZCAwKSl9O3ViLnByb3RvdHlwZS5tZD1mdW5jdGlvbigpe3RoaXMuZz1uZXcgJGR9O3ViLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHRoaXMuQztiLmluaXRpYWxpemUoYSgpKTt0aGlzLmc9YjtpZih0aGlzLm8mJihiPWNlKHRoaXMubyxhKCkpKSlyZXR1cm4gYjtpZih0aGlzLmomJihhPWNlKHRoaXMuaixhKCkpKSlyZXR1cm4gYTt0aGlzLmgmJih0aGlzLmgubGVuZ3RoPTApO3JldHVybiBudWxsfTsKdWIucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGEpe3RoaXMuaCYmKGE9Y2UodGhpcy5oLGEpKSYmXy5yYihFcnJvcigieWAiK2EpKTt0aGlzLm8mJih0aGlzLm8ubGVuZ3RoPTApO3RoaXMuaiYmKHRoaXMuai5sZW5ndGg9MCl9O3ZhciBjZT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspdHJ5e2FbZF0uZXhlY3V0ZShiKX1jYXRjaChlKXtfLnJiKGUpLGMucHVzaChlKX1hLmxlbmd0aD0wO3JldHVybiBjLmxlbmd0aD9jOm51bGx9O3ViLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7dWIuZWEuTS5jYWxsKHRoaXMpO18ucGEodGhpcy5nKX07bmMuRmU9dWI7dmFyIGRlPXtFUlJPUjoiZXJyb3IiLElETEU6ImlkbGUiLGxnOiJhY3RpdmUiLElnOiJ1c2VySWRsZSIsSGc6InVzZXJBY3RpdmUifTtfLm09dmIucHJvdG90eXBlO18ubS5YZj1mdW5jdGlvbigpe307Xy5tLnFlPWZ1bmN0aW9uKCl7fTtfLm0uamU9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiQSIpO307Xy5tLmtmPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucWF9O18ubS5zZT1mdW5jdGlvbihhKXt0aGlzLnFhPWF9O18ubS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiExfTtfLm0uRGY9ZnVuY3Rpb24oKXtyZXR1cm4hMX07dmFyIGVlPXR5cGVvZiBBc3luY0NvbnRleHQhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEFzeW5jQ29udGV4dC5TbmFwc2hvdD09PSJmdW5jdGlvbiI/ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gYX07dmFyIGZlPWZ1bmN0aW9uKGEsYil7dGhpcy5sPWE7dGhpcy5qPWI7dGhpcy5oPTA7dGhpcy5nPW51bGx9O2ZlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmg+MCl7dGhpcy5oLS07dmFyIGE9dGhpcy5nO3RoaXMuZz1hLm5leHQ7YS5uZXh0PW51bGx9ZWxzZSBhPXRoaXMubCgpO3JldHVybiBhfTt2YXIgeGI9ZnVuY3Rpb24oYSxiKXthLmooYik7YS5oPDEwMCYmKGEuaCsrLGIubmV4dD1hLmcsYS5nPWIpfTt2YXIgZ2U9ZnVuY3Rpb24oKXt0aGlzLmg9dGhpcy5nPW51bGx9O2dlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz15Yi5nZXQoKTtjLnNldChhLGIpO3RoaXMuaD90aGlzLmgubmV4dD1jOnRoaXMuZz1jO3RoaXMuaD1jfTtnZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIGE9bnVsbDt0aGlzLmcmJihhPXRoaXMuZyx0aGlzLmc9dGhpcy5nLm5leHQsdGhpcy5nfHwodGhpcy5oPW51bGwpLGEubmV4dD1udWxsKTtyZXR1cm4gYX07dmFyIHliPW5ldyBmZShmdW5jdGlvbigpe3JldHVybiBuZXcgaGV9LGZ1bmN0aW9uKGEpe3JldHVybiBhLnJlc2V0KCl9KSxoZT1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLnNjb3BlPXRoaXMuZz1udWxsfTtoZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5nPWE7dGhpcy5zY29wZT1iO3RoaXMubmV4dD1udWxsfTsKaGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5uZXh0PXRoaXMuc2NvcGU9dGhpcy5nPW51bGx9O3ZhciBpZSx6Yj0hMSx3Yj1uZXcgZ2Usa2U9ZnVuY3Rpb24oYSxiKXtpZXx8amUoKTt6Ynx8KGllKCksemI9ITApO3diLmFkZChhLGIpfSxqZT1mdW5jdGlvbigpe3ZhciBhPVByb21pc2UucmVzb2x2ZSh2b2lkIDApO2llPWZ1bmN0aW9uKCl7YS50aGVuKEFiKX19O18ubGU9ZnVuY3Rpb24oKXt9O3ZhciBtZT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4hMTt0cnl7cmV0dXJuISFhLiRnb29nX1RoZW5hYmxlfWNhdGNoKGIpe3JldHVybiExfX07dmFyIHBlLEFlLHllLHdlO18ub2U9ZnVuY3Rpb24oYSl7dGhpcy5nPTA7dGhpcy5CPXZvaWQgMDt0aGlzLmw9dGhpcy5oPXRoaXMuaj1udWxsO3RoaXMubz10aGlzLkE9ITE7aWYoYSE9Xy5sZSl0cnl7dmFyIGI9dGhpczthLmNhbGwodm9pZCAwLGZ1bmN0aW9uKGMpe18ubmUoYiwyLGMpfSxmdW5jdGlvbihjKXtfLm5lKGIsMyxjKX0pfWNhdGNoKGMpe18ubmUodGhpcywzLGMpfX07cGU9ZnVuY3Rpb24oKXt0aGlzLm5leHQ9dGhpcy5qPXRoaXMuaD10aGlzLmw9dGhpcy5nPW51bGw7dGhpcy5vPSExfTtwZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmo9dGhpcy5oPXRoaXMubD10aGlzLmc9bnVsbDt0aGlzLm89ITF9O3ZhciBxZT1uZXcgZmUoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHBlfSxmdW5jdGlvbihhKXthLnJlc2V0KCl9KSxyZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cWUuZ2V0KCk7ZC5sPWE7ZC5oPWI7ZC5qPWM7cmV0dXJuIGR9OwpfLm9lLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gc2UodGhpcyxlZSh0eXBlb2YgYT09PSJmdW5jdGlvbiI/YTpudWxsKSxlZSh0eXBlb2YgYj09PSJmdW5jdGlvbiI/YjpudWxsKSxjKX07Xy5vZS5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITA7Xy5vZS5wcm90b3R5cGUuQz1mdW5jdGlvbihhLGIpe3JldHVybiBzZSh0aGlzLG51bGwsZWUoYSksYil9O18ub2UucHJvdG90eXBlLmNhdGNoPV8ub2UucHJvdG90eXBlLkM7Xy5vZS5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe2lmKHRoaXMuZz09MCl7dmFyIGI9bmV3IHVlKGEpO2tlKGZ1bmN0aW9uKCl7dmUodGhpcyxiKX0sdGhpcyl9fTsKdmFyIHZlPWZ1bmN0aW9uKGEsYil7aWYoYS5nPT0wKWlmKGEuail7dmFyIGM9YS5qO2lmKGMuaCl7Zm9yKHZhciBkPTAsZT1udWxsLGY9bnVsbCxnPWMuaDtnJiYoZy5vfHwoZCsrLGcuZz09YSYmKGU9ZyksIShlJiZkPjEpKSk7Zz1nLm5leHQpZXx8KGY9Zyk7ZSYmKGMuZz09MCYmZD09MT92ZShjLGIpOihmPyhkPWYsZC5uZXh0PT1jLmwmJihjLmw9ZCksZC5uZXh0PWQubmV4dC5uZXh0KTp3ZShjKSx4ZShjLGUsMyxiKSkpfWEuaj1udWxsfWVsc2UgXy5uZShhLDMsYil9LHplPWZ1bmN0aW9uKGEsYil7YS5ofHxhLmchPTImJmEuZyE9M3x8eWUoYSk7YS5sP2EubC5uZXh0PWI6YS5oPWI7YS5sPWJ9LHNlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXJlKG51bGwsbnVsbCxudWxsKTtlLmc9bmV3IF8ub2UoZnVuY3Rpb24oZixnKXtlLmw9Yj9mdW5jdGlvbihoKXt0cnl7dmFyIGs9Yi5jYWxsKGQsaCk7ZihrKX1jYXRjaChsKXtnKGwpfX06ZjtlLmg9Yz9mdW5jdGlvbihoKXt0cnl7dmFyIGs9CmMuY2FsbChkLGgpO2s9PT12b2lkIDAmJmggaW5zdGFuY2VvZiB1ZT9nKGgpOmYoayl9Y2F0Y2gobCl7ZyhsKX19Omd9KTtlLmcuaj1hO3plKGEsZSk7cmV0dXJuIGUuZ307Xy5vZS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXt0aGlzLmc9MDtfLm5lKHRoaXMsMixhKX07Xy5vZS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXt0aGlzLmc9MDtfLm5lKHRoaXMsMyxhKX07Cl8ubmU9ZnVuY3Rpb24oYSxiLGMpe2lmKGEuZz09MCl7YT09PWMmJihiPTMsYz1uZXcgVHlwZUVycm9yKCJCIikpO2EuZz0xO2E6e3ZhciBkPWMsZT1hLkYsZj1hLkc7aWYoZCBpbnN0YW5jZW9mIF8ub2Upe3plKGQscmUoZXx8Xy5sZSxmfHxudWxsLGEpKTt2YXIgZz0hMH1lbHNlIGlmKG1lKGQpKWQudGhlbihlLGYsYSksZz0hMDtlbHNle2lmKF8ueWEoZCkpdHJ5e3ZhciBoPWQudGhlbjtpZih0eXBlb2YgaD09PSJmdW5jdGlvbiIpe0FlKGQsaCxlLGYsYSk7Zz0hMDticmVhayBhfX1jYXRjaChrKXtmLmNhbGwoYSxrKTtnPSEwO2JyZWFrIGF9Zz0hMX19Z3x8KGEuQj1jLGEuZz1iLGEuaj1udWxsLHllKGEpLGIhPTN8fGMgaW5zdGFuY2VvZiB1ZXx8QmUoYSxjKSl9fTtBZT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSExLGc9ZnVuY3Rpb24oayl7Znx8KGY9ITAsYy5jYWxsKGUsaykpfSxoPWZ1bmN0aW9uKGspe2Z8fChmPSEwLGQuY2FsbChlLGspKX07dHJ5e2IuY2FsbChhLGcsaCl9Y2F0Y2goayl7aChrKX19Owp5ZT1mdW5jdGlvbihhKXthLkF8fChhLkE9ITAsa2UoYS5ELGEpKX07d2U9ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDthLmgmJihiPWEuaCxhLmg9Yi5uZXh0LGIubmV4dD1udWxsKTthLmh8fChhLmw9bnVsbCk7cmV0dXJuIGJ9O18ub2UucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE7YT13ZSh0aGlzKTspeGUodGhpcyxhLHRoaXMuZyx0aGlzLkIpO3RoaXMuQT0hMX07CnZhciB4ZT1mdW5jdGlvbihhLGIsYyxkKXtpZihjPT0zJiZiLmgmJiFiLm8pZm9yKDthJiZhLm87YT1hLmopYS5vPSExO2lmKGIuZyliLmcuaj1udWxsLENlKGIsYyxkKTtlbHNlIHRyeXtiLm8/Yi5sLmNhbGwoYi5qKTpDZShiLGMsZCl9Y2F0Y2goZSl7RmUuY2FsbChudWxsLGUpfXhiKHFlLGIpfSxDZT1mdW5jdGlvbihhLGIsYyl7Yj09Mj9hLmwuY2FsbChhLmosYyk6YS5oJiZhLmguY2FsbChhLmosYyl9LEJlPWZ1bmN0aW9uKGEsYil7YS5vPSEwO2tlKGZ1bmN0aW9uKCl7YS5vJiZGZS5jYWxsKG51bGwsYil9KX0sRmU9Xy5yYix1ZT1mdW5jdGlvbihhKXthYS5jYWxsKHRoaXMsYSl9O18uRyh1ZSxhYSk7dWUucHJvdG90eXBlLm5hbWU9ImNhbmNlbCI7QmIucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbihhKXtpZih0aGlzLmgpdGhpcy5sIGluc3RhbmNlb2YgQmImJnRoaXMubC5jYW5jZWwoKTtlbHNle2lmKHRoaXMuail7dmFyIGI9dGhpcy5qO2RlbGV0ZSB0aGlzLmo7YT9iLmNhbmNlbChhKTooYi5BLS0sYi5BPD0wJiZiLmNhbmNlbCgpKX10aGlzLkc9ITA7dGhpcy5ofHx0aGlzLkYobmV3IEdlKHRoaXMpKX19O0JiLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGEsYil7dGhpcy5EPSExO0hlKHRoaXMsYSxiKX07dmFyIEhlPWZ1bmN0aW9uKGEsYixjKXthLmg9ITA7YS5sPWM7YS5vPSFiO0llKGEpfSxLZT1mdW5jdGlvbihhKXtpZihhLmgpe2lmKCFhLkcpdGhyb3cgbmV3IEplKGEpO2EuRz0hMX19O0JiLnByb3RvdHlwZS5nPWZ1bmN0aW9uKGEpe0tlKHRoaXMpO0hlKHRoaXMsITAsYSl9O0JiLnByb3RvdHlwZS5GPWZ1bmN0aW9uKGEpe0tlKHRoaXMpO0hlKHRoaXMsITEsYSl9Owp2YXIgTWU9ZnVuY3Rpb24oYSxiLGMpe0xlKGEsYixudWxsLGMpfSxOZT1mdW5jdGlvbihhLGIsYyl7TGUoYSxudWxsLGIsYyl9LExlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuaDtlfHwoYj09PWM/Yj1jPWVlKGIpOihiPWVlKGIpLGM9ZWUoYykpKTthLkIucHVzaChbYixjLGRdKTtlJiZJZShhKX07QmIucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1uZXcgXy5vZShmdW5jdGlvbihnLGgpe2U9ZztkPWh9KTtMZSh0aGlzLGUsZnVuY3Rpb24oZyl7ZyBpbnN0YW5jZW9mIEdlP2YuY2FuY2VsKCk6ZChnKTtyZXR1cm4gT2V9LHRoaXMpO3JldHVybiBmLnRoZW4oYSxiLGMpfTtCYi5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITA7dmFyIFBlPWZ1bmN0aW9uKGEsYil7YiBpbnN0YW5jZW9mIEJiP01lKGEsKDAsXy55KShiLkssYikpOk1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYn0pfTsKQmIucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEJiO0xlKHRoaXMsYi5nLGIuRixiKTthJiYoYi5qPXRoaXMsdGhpcy5BKyspO3JldHVybiBifTsKdmFyIFFlPWZ1bmN0aW9uKGEpe3JldHVybiBfLnhjKGEuQixmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGJbMV09PT0iZnVuY3Rpb24ifSl9LE9lPXt9LEllPWZ1bmN0aW9uKGEpe2lmKGEuQyYmYS5oJiZRZShhKSl7dmFyIGI9YS5DLGM9UmVbYl07YyYmKF8udi5jbGVhclRpbWVvdXQoYy5nKSxkZWxldGUgUmVbYl0pO2EuQz0wfWEuaiYmKGEuai5BLS0sZGVsZXRlIGEuaik7Yj1hLmw7Zm9yKHZhciBkPWM9ITE7YS5CLmxlbmd0aCYmIWEuRDspe3ZhciBlPWEuQi5zaGlmdCgpLGY9ZVswXSxnPWVbMV07ZT1lWzJdO2lmKGY9YS5vP2c6Zil0cnl7dmFyIGg9Zi5jYWxsKGV8fG51bGwsYik7aD09PU9lJiYoaD12b2lkIDApO2ghPT12b2lkIDAmJihhLm89YS5vJiYoaD09Ynx8aCBpbnN0YW5jZW9mIEVycm9yKSxhLmw9Yj1oKTtpZihtZShiKXx8dHlwZW9mIF8udi5Qcm9taXNlPT09ImZ1bmN0aW9uIiYmYiBpbnN0YW5jZW9mIF8udi5Qcm9taXNlKWQ9ITAsYS5EPSEwfWNhdGNoKGspe2I9CmssYS5vPSEwLFFlKGEpfHwoYz0hMCl9fWEubD1iO2QmJihoPSgwLF8ueSkoYS5JLGEsITApLGQ9KDAsXy55KShhLkksYSwhMSksYiBpbnN0YW5jZW9mIEJiPyhMZShiLGgsZCksYi5XPSEwKTpiLnRoZW4oaCxkKSk7YyYmKGI9bmV3IFNlKGIpLFJlW2IuZ109YixhLkM9Yi5nKX0sSmU9ZnVuY3Rpb24oKXthYS5jYWxsKHRoaXMpfTtfLkcoSmUsYWEpO0plLnByb3RvdHlwZS5tZXNzYWdlPSJEZWZlcnJlZCBoYXMgYWxyZWFkeSBmaXJlZCI7SmUucHJvdG90eXBlLm5hbWU9IkFscmVhZHlDYWxsZWRFcnJvciI7dmFyIEdlPWZ1bmN0aW9uKCl7YWEuY2FsbCh0aGlzKX07Xy5HKEdlLGFhKTtHZS5wcm90b3R5cGUubWVzc2FnZT0iRGVmZXJyZWQgd2FzIGNhbmNlbGVkIjtHZS5wcm90b3R5cGUubmFtZT0iQ2FuY2VsZWRFcnJvciI7dmFyIFNlPWZ1bmN0aW9uKGEpe3RoaXMuZz1fLnYuc2V0VGltZW91dCgoMCxfLnkpKHRoaXMudGhyb3dFcnJvcix0aGlzKSwwKTt0aGlzLmg9YX07ClNlLnByb3RvdHlwZS50aHJvd0Vycm9yPWZ1bmN0aW9uKCl7ZGVsZXRlIFJlW3RoaXMuZ107dGhyb3cgdGhpcy5oO307dmFyIFJlPXt9O3ZhciBUZT1mdW5jdGlvbihhLGIsYyxkLGUpe2M9RXJyb3IuY2FsbCh0aGlzKTt0aGlzLm1lc3NhZ2U9Yy5tZXNzYWdlOyJzdGFjayJpbiBjJiYodGhpcy5zdGFjaz1jLnN0YWNrKTt0aGlzLm5hbWU9Ik1vZHVsZUxvYWRGYWlsdXJlIjt0aGlzLnR5cGU9YTt0aGlzLnN0YXR1cz1iO3RoaXMudXJsPWQ7dGhpcy5jYXVzZT1lO3RoaXMubWVzc2FnZT10aGlzLnRvU3RyaW5nKCl9O18uQihUZSxFcnJvcik7VGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFVlKHRoaXMpKyIgKCIrKHRoaXMuc3RhdHVzIT12b2lkIDA/dGhpcy5zdGF0dXM6Ij8iKSsiKSJ9Owp2YXIgVWU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSBUZS5nLkplOnJldHVybiJVbmF1dGhvcml6ZWQiO2Nhc2UgVGUuZy5CZTpyZXR1cm4iQ29uc2VjdXRpdmUgbG9hZCBmYWlsdXJlcyI7Y2FzZSBUZS5nLlRJTUVPVVQ6cmV0dXJuIlRpbWVkIG91dCI7Y2FzZSBUZS5nLkhlOnJldHVybiJPdXQgb2YgZGF0ZSBtb2R1bGUgaWQiO2Nhc2UgVGUuZy50ZDpyZXR1cm4iSW5pdCBlcnJvciI7ZGVmYXVsdDpyZXR1cm4iVW5rbm93biBmYWlsdXJlIHR5cGUgIithLnR5cGV9fTtuYy5GYT1UZTtuYy5GYS5nPXtKZTowLEJlOjEsVElNRU9VVDoyLEhlOjMsdGQ6NH07dmFyIFZlPWZ1bmN0aW9uKCl7dmIuY2FsbCh0aGlzKTt0aGlzLkk9bnVsbDt0aGlzLmc9bmV3IE1hcDt0aGlzLm89bmV3IFNldDt0aGlzLkE9W107dGhpcy5DPW5ldyBTZXQ7dGhpcy5qPVtdO3RoaXMuQj1uZXcgU2V0O3RoaXMuaD1OYz9uZXcgTWFwOnt9O3RoaXMuSz1uZXcgTWFwO3RoaXMubD10aGlzLkQ9bmV3IG5jLkZlKFtdLCIiKTt0aGlzLkw9bnVsbDt0aGlzLkY9bmV3IEJiO3RoaXMuUj10aGlzLlQ9dGhpcy5QPXRoaXMuVz0hMX07Xy5HKFZlLHZiKTt2YXIgV2U9ZnVuY3Rpb24oYSxiKXthYS5jYWxsKHRoaXMsIkVycm9yIGxvYWRpbmcgIithKyI6ICIrYil9O18uRyhXZSxhYSk7VmUucHJvdG90eXBlLlhmPWZ1bmN0aW9uKGEpe3RoaXMuVz1hfTsKVmUucHJvdG90eXBlLnFlPWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgVmUpKXRoaXMucWUoYSxiKTtlbHNlIGlmKHR5cGVvZiBhPT09InN0cmluZyIpe2lmKGEuc3RhcnRzV2l0aCgiZCQiKSl7YT1hLnN1YnN0cmluZygyKTtmb3IodmFyIGM9W10sZD0wLGU9YS5pbmRleE9mKCIvIiksZj0wLGc9ITEsaD0wOzspe3ZhciBrPWc/YS5zdWJzdHJpbmcoZik6YS5zdWJzdHJpbmcoZixlKTtpZihrLmxlbmd0aD09PTApZCsrLGY9InN5IitkLnRvU3RyaW5nKDM2KSxrPVtdO2Vsc2V7dmFyIGw9ay5pbmRleE9mKCI6Iik7aWYobDwwKWY9ayxrPVtdO2Vsc2UgaWYobD09PWsubGVuZ3RoLTEpZj1rLnN1YnN0cmluZygwLGwpLGs9QXJyYXkoY1toLTFdKTtlbHNle2Y9ay5zdWJzdHJpbmcoMCxsKTtrPWsuc3Vic3RyaW5nKGwrMSkuc3BsaXQoIiwiKTtsPWg7Zm9yKHZhciBuPTA7bjxrLmxlbmd0aDtuKyspbC09a1tuXS5sZW5ndGg9PT0wPzE6TnVtYmVyKGtbbl0pLGtbbl09Y1tsXX1sPQowO2lmKGYubGVuZ3RoPT09MClsPTE7ZWxzZSBpZihmLmNoYXJBdCgwKT09PSIrInx8Zi5jaGFyQXQoMCk9PT0iLSIpbD1OdW1iZXIoZik7bCE9PTAmJihkKz1sLGY9InN5IitkLnRvU3RyaW5nKDM2KSl9Yy5wdXNoKGYpO1hlKHRoaXMsZixrKTtpZihnKWJyZWFrO2Y9ZSsxO2U9YS5pbmRleE9mKCIvIixmKTtlPT09LTEmJihnPSEwKTtoKyt9dGhpcy5JPWN9ZWxzZSBpZihhLnN0YXJ0c1dpdGgoInAkIikpWWUodGhpcyxhKTtlbHNle2E9YS5zcGxpdCgiLyIpO2M9W107Zm9yKGQ9MDtkPGEubGVuZ3RoO2QrKyl7aD1hW2RdLnNwbGl0KCI6Iik7ZT1oWzBdO2c9W107aWYoaFsxXSlmb3IoZz1oWzFdLnNwbGl0KCIsIiksaD0wO2g8Zy5sZW5ndGg7aCsrKWdbaF09Y1twYXJzZUludChnW2hdLDM2KV07Yy5wdXNoKGUpO1hlKHRoaXMsZSxnKX10aGlzLkk9Y31pZihiJiZiLmxlbmd0aCl7YT1fLkMoYik7Zm9yKGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKXRoaXMuby5hZGQoYy52YWx1ZSk7CnRoaXMuTD1iW2IubGVuZ3RoLTFdfWVsc2UgdGhpcy5GLmh8fHRoaXMuRi5nKCk7T2JqZWN0LmZyZWV6ZSh0aGlzLkkpO1plKHRoaXMpfX07CnZhciBZZT1mdW5jdGlvbihhLGIpe2lmKCFZZCl7Zm9yKHZhciBjPTA7Yzw2NDtjKyspb2JbIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8iLmNoYXJDb2RlQXQoYyldPWM7WWQ9ITB9dmFyIGQ9e0hkOmIsQmI6Mn07cWIoZCk7dmFyIGU9cWIoZCksZj1xYihkKSsxO2I9QXJyYXkoZSk7Yz1BcnJheShlKTt2YXIgZz1BcnJheShlKTtmPUFycmF5KGYpO3ZhciBoPTAsaz0wLGw9ZC5IZCxuPWQuQmI7ZC5CYj1kLkhkLmluZGV4T2YoInwiLGQuQmIpKzE7Zm9yKHZhciBxPTA7cTxlO3ErKyl7dmFyIHA9cWIoZCkscj1wJjIsdD1wJjE7cD4+Pj0yO3Q/KGgrPXA+Pj4xXi0ocCYxKSxwPSJzeSIraC50b1N0cmluZygzNikpOih0PW4sbis9cCxwPWwuc3Vic3RyaW5nKHQsbikpO2JbcV09cDtyJiYoZltrKytdPXApfWZba109IiI7ZC5CYisrO2s9ZSYtMjtoPWUmMTtmb3IobD0wO2w8aztsKz0yKW49cGIoZCksZ1tsXT1uJjcsZ1tsKwoxXT1uPj4+MyY3O2gmJihoPXBiKGQpLGdba109aCY3KTtkLkJiKys7Zm9yKGs9MDtrPGU7aysrKWdba109PT03JiYoZ1trXT1xYihkKSk7ZC5CYisrO2ZvcihoPWs9MDtoPGU7aCsrKXtsPWdbaF07bj1sPT09MD9aZDpBcnJheShsKTtjW2hdPW47cT1rO2ZvcihyPTA7cjxsO3IrKylxLT1xYihkKSxuW3JdPWZbcV07ZltrXT09PWJbaF0mJmsrK31mb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKVhlKGEsYltkXSxjW2RdKTthLkk9Yn07VmUucHJvdG90eXBlLmplPWZ1bmN0aW9uKGEsYil7aWYodGhpcy5oIGluc3RhbmNlb2YgTWFwKXt2YXIgYz10aGlzLmguZ2V0KGEpO2MmJihjLmRlbGV0ZShiKSxjLnNpemU9PT0wJiZ0aGlzLmguZGVsZXRlKGEpKX1lbHNlIGlmKHRoaXMuaFthXSl7ZGVsZXRlIHRoaXMuaFthXVtiXTtmb3IoYyBpbiB0aGlzLmhbYV0pcmV0dXJuO2RlbGV0ZSB0aGlzLmhbYV19fTtWZS5wcm90b3R5cGUuc2U9ZnVuY3Rpb24oYSl7VmUuZWEuc2UuY2FsbCh0aGlzLGEpO1plKHRoaXMpfTsKVmUucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuby5zaXplPjB9O1ZlLnByb3RvdHlwZS5EZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLkIuc2l6ZT4wfTsKdmFyIGFmPWZ1bmN0aW9uKGEpe3ZhciBiPWEuUCxjPWEuaXNBY3RpdmUoKTtjIT1iJiYoJGUoYSxjP2RlLmxnOmRlLklETEUpLGEuUD1jKTtiPWEuRGYoKTtiIT1hLlQmJigkZShhLGI/ZGUuSGc6ZGUuSWcpLGEuVD1iKX0sWGU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZy5nZXQoYik7ZD9kLmw9YzphLmcuc2V0KGIsbmV3IG5jLkZlKGMsYikpfSxkZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT17fTtiPV8uQyhuZXcgU2V0KGIpKTtmb3IodmFyIGY9Yi5uZXh0KCk7IWYuZG9uZTtmPWIubmV4dCgpKXtmPWYudmFsdWU7dmFyIGc9YS5nLmdldChmKTtpZighZyl0aHJvdyBFcnJvcigiQ2AiK2YpO3ZhciBoPW5ldyBCYjtlW2ZdPWg7Zy5nP2guZyhhLnFhKTooYmYoYSxmLGcsISFjLGgpLGNmKGEsZil8fGQucHVzaChmKSl9ZC5sZW5ndGg+MCYmKGEuby5zaXplPT09MD9hLkcoZCk6KGEuai5wdXNoKGQpLGFmKGEpKSk7cmV0dXJuIGV9LGJmPWZ1bmN0aW9uKGEsYixjLGQsZSl7YWUoYywKZS5nLGUpO2JlKGMsZnVuY3Rpb24oZil7ZS5GKG5ldyBXZShiLGYpKX0pO2NmKGEsYik/ZCYmKGEuQi5hZGQoYiksYWYoYSkpOmQmJmEuQi5hZGQoYil9OwpWZS5wcm90b3R5cGUuRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcztiPWI9PT12b2lkIDA/MDpiO3ZhciBlPWVmKHRoaXMsYSk7dGhpcy5vPW5ldyBTZXQoZSk7dGhpcy5BPXRoaXMuVz9hOl8ud2EoZSk7YWYodGhpcyk7aWYoZS5sZW5ndGghPT0wKXthPV8uQyhlKTtmb3IodmFyIGY9YS5uZXh0KCk7IWYuZG9uZTtmPWEubmV4dCgpKXRoaXMuQy5hZGQoZi52YWx1ZSk7YT10aGlzLk87aWYoIWEpdGhyb3cgRXJyb3IoIkQiKTtpZigodGhpcy5oIGluc3RhbmNlb2YgTWFwP3RoaXMuaC5zaXplPjA6T2JqZWN0LmtleXModGhpcy5oKS5sZW5ndGg+MCkmJiFhLkkpdGhyb3cgRXJyb3IoIkUiKTtmZihhLF8ud2EoZSksdGhpcy5nLHtqaDp0aGlzLmgsZmU6ZnVuY3Rpb24oZyxoLGspe3JldHVybiBnZihkLGQuQSxlLGchPW51bGw/Zzp2b2lkIDAsaCxiLCEhayl9LEZpOigwLF8ueSkodGhpcy5sYSx0aGlzKSxtaDohIWN9KX19Owp2YXIgaGY9ZnVuY3Rpb24oYSl7dGhpcy5oPWE7dGhpcy5qPW5ldyBTZXQ7dGhpcy5nPVtdfSxqZj1mdW5jdGlvbihhLGIpe2lmKCFhLmouaGFzKGIpJiYoYS5qLmFkZChiKSwhYS5oLkMuaGFzKGIpKSl7dmFyIGM9YS5oLmcuZ2V0KGIpO2lmKGMmJiFjLmcpe2M9Yy5sO2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKWpmKGEsY1tkXSk7YS5nLnB1c2goYil9fX0sZWY9ZnVuY3Rpb24oYSxiKXtiPWIuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBhLmcuZ2V0KGUpLmc/KF8udi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIEVycm9yKCJGYCIrZSl9LDApLCExKTohMH0pO2lmKE9jKXt2YXIgYz1uZXcgaGYoYSk7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspamYoYyxiW2RdKTtjPWMuZ31lbHNle2M9W107Zm9yKGQ9MDtkPGIubGVuZ3RoO2QrKyljPWMuY29uY2F0KGtmKGEsYltkXSkpO0JhKGMpfXJldHVybiFhLlcmJmMubGVuZ3RoPjE/KGI9Yy5zaGlmdCgpLGEuaj1jLm1hcChmdW5jdGlvbihlKXtyZXR1cm5bZV19KS5jb25jYXQoYS5qKSwKW2JdKTpjfSxrZj1mdW5jdGlvbihhLGIpe2lmKE9jKXJldHVybiBhPW5ldyBoZihhKSxqZihhLGIpLGEuZzt2YXIgYz1bXTthLkMuaGFzKGIpfHxjLnB1c2goYik7Yj1bYl07Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspZm9yKHZhciBlPWEuZy5nZXQoYltkXSkubCxmPWUubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciBnPWVbZl07YS5nLmdldChnKS5nfHxhLkMuaGFzKGcpfHwoYy5wdXNoKGcpLGIucHVzaChnKSl9Yy5yZXZlcnNlKCk7QmEoYyk7cmV0dXJuIGN9LFplPWZ1bmN0aW9uKGEpe2lmKGEubD09YS5EKXthLmw9bnVsbDt2YXIgYj1hLkQub25Mb2FkKCgwLF8ueSkoYS5rZixhKSk7YiYmYi5sZW5ndGgmJmxmKGEsbmV3IG5jLkZhKG5jLkZhLmcudGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsYlswXSkpO2FmKGEpfX07ClZlLnByb3RvdHlwZS5tZD1mdW5jdGlvbigpe2lmKHRoaXMubCl7dmFyIGE9dGhpcy5sLlJhKCksYj1bXTtpZih0aGlzLmggaW5zdGFuY2VvZiBNYXApe3ZhciBjPXRoaXMuaC5nZXQoYSk7aWYoYyl7Yz1fLkMoQXJyYXkuZnJvbShjKSk7Zm9yKHZhciBkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7ZD1kLnZhbHVlO3ZhciBlPXRoaXMuZy5nZXQoZCk7ZSYmIWUuZyYmKHRoaXMuamUoYSxkKSxiLnB1c2goZCkpfWRmKHRoaXMsYil9fWVsc2UgaWYodGhpcy5oW2FdKXtjPV8uQyhPYmplY3Qua2V5cyh0aGlzLmhbYV0pKTtmb3IoZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZD1kLnZhbHVlLChlPXRoaXMuZy5nZXQoZCkpJiYhZS5nJiYodGhpcy5qZShhLGQpLGIucHVzaChkKSk7ZGYodGhpcyxiKX10aGlzLnFiKCl8fCgoYj10aGlzLmcuZ2V0KGEpLm9uTG9hZCgoMCxfLnkpKHRoaXMua2YsdGhpcykpKSYmYi5sZW5ndGgmJmxmKHRoaXMsbmV3IG5jLkZhKG5jLkZhLmcudGQsCnZvaWQgMCx2b2lkIDAsdm9pZCAwLGJbMF0pKSx0aGlzLkIuZGVsZXRlKGEpLHRoaXMuby5kZWxldGUoYSksdGhpcy5vLnNpemUhPT0wfHxtZih0aGlzKSx0aGlzLkwmJmE9PXRoaXMuTCYmKHRoaXMuRi5ofHx0aGlzLkYuZygpKSxhZih0aGlzKSx0aGlzLmw9bnVsbCl9fTt2YXIgY2Y9ZnVuY3Rpb24oYSxiKXtpZihhLm8uaGFzKGIpKXJldHVybiEwO2Zvcih2YXIgYz0wO2M8YS5qLmxlbmd0aDtjKyspaWYoXy50YShhLmpbY10sYikpcmV0dXJuITA7cmV0dXJuITF9O1ZlLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGRmKHRoaXMsW2FdLGIpW2FdfTsKdmFyIGthPWZ1bmN0aW9uKGEpe3ZhciBiPV8uZGE7Yi5sJiZiLmwuUmEoKT09PSJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIiYmKGIubWQoKSxiLmcuZGVsZXRlKCJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIikpO3ZhciBjPWIuZy5nZXQoYSk7YyYmbmYoYixjLmx8fFtdLGZ1bmN0aW9uKGQpe2QubWQoKTtiLm8uZGVsZXRlKGQuUmEoKSl9LGZ1bmN0aW9uKGQpe3JldHVybiFkLmd9LG5ldyBTZXQpO2IubD1iLmcuZ2V0KGEpO2IubCYmKGIubC5CPSEwKX0sZ2Y9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9KGc9PT12b2lkIDA/MDpnKT8wOihmPT09dm9pZCAwPzA6ZikrMTtmPV8ud2EoYyk7YS5BPWI7Yz1fLkMoYyk7Zm9yKGc9Yy5uZXh0KCk7IWcuZG9uZTtnPWMubmV4dCgpKWEuQy5kZWxldGUoZy52YWx1ZSk7aWYoZD09NDAxKWxmKGEsbmV3IG5jLkZhKG5jLkZhLmcuSmUsZCkpLGEuai5sZW5ndGg9MDtlbHNlIGlmKGQ9PTQxMClvZihhLG5ldyBuYy5GYShuYy5GYS5nLkhlLApkKSksbWYoYSk7ZWxzZSBpZihoPj0zKW9mKGEsbmV3IG5jLkZhKG5jLkZhLmcuQmUsZCxmLGUpKSxtZihhKTtlbHNle3ZhciBrPWQ9PTgwMDF8fCExOyhkPU1hdGgucG93KGgsMikqNUUzKT9fLnYuc2V0VGltZW91dChmdW5jdGlvbigpe2EuRyhiLGgsayl9LGQpOmEuRyhiLGgsayl9fTtWZS5wcm90b3R5cGUubGE9ZnVuY3Rpb24oKXtvZih0aGlzLG5ldyBuYy5GYShuYy5GYS5nLlRJTUVPVVQpKTttZih0aGlzKX07CnZhciBvZj1mdW5jdGlvbihhLGIpe2EuQS5sZW5ndGg+MT9hLmo9YS5BLm1hcChmdW5jdGlvbihjKXtyZXR1cm5bY119KS5jb25jYXQoYS5qKTpsZihhLGIpfSxsZj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuQTthLm8uY2xlYXIoKTtmb3IodmFyIGQ9W10sZT0wO2U8YS5qLmxlbmd0aDtlKyspe3ZhciBmPWEualtlXS5maWx0ZXIoZnVuY3Rpb24oayl7dmFyIGw9a2YodGhpcyxrKTtyZXR1cm4gXy54YyhjLGZ1bmN0aW9uKG4pe3JldHVybiBfLnRhKGwsbil9KX0sYSk7eGEoZCxmKX1mb3IoZT0wO2U8Yy5sZW5ndGg7ZSsrKV8udWEoZCxjW2VdKTtmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKXtmb3IoZj0wO2Y8YS5qLmxlbmd0aDtmKyspXy52YShhLmpbZl0sZFtlXSk7YS5CLmRlbGV0ZShkW2VdKX1pZihlPWEuSy5nZXQoZGUuRVJST1IpKWZvcihmPTA7ZjxlLmxlbmd0aDtmKyspZm9yKHZhciBnPWVbZl0saD0wO2g8ZC5sZW5ndGg7aCsrKWcoZGUuRVJST1IsZFtoXSxiKTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKShlPQphLmcuZ2V0KGNbZF0pKSYmZS5mZShiKTthLkEubGVuZ3RoPTA7YWYoYSl9LG1mPWZ1bmN0aW9uKGEpe2Zvcig7YS5qLmxlbmd0aDspe3ZhciBiPWEuai5zaGlmdCgpLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hdGhpcy5nLmdldChjKS5nfSxhKTtpZihiLmxlbmd0aD4wKXthLkcoYik7cmV0dXJufX1hZihhKX0sJGU9ZnVuY3Rpb24oYSxiKXthPWEuSy5nZXQoYik7Zm9yKHZhciBjPTA7YSYmYzxhLmxlbmd0aDtjKyspYVtjXShiKX0sbmY9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPV8uQyhiKTtmb3IodmFyIGY9Yi5uZXh0KCk7IWYuZG9uZTtmPWIubmV4dCgpKXtmPWYudmFsdWU7dmFyIGc9YS5nLmdldChmKTshZS5oYXMoZikmJmQoZykmJihlLmFkZChmKSxuZihhLGcubHx8W10sYyxkLGUpLGMoZykpfX07ClZlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cmEoQXJyYXkuZnJvbSh0aGlzLmcudmFsdWVzKCkpLHRoaXMuRCk7dGhpcy5nLmNsZWFyKCk7dGhpcy5vLmNsZWFyKCk7dGhpcy5BPVtdO3RoaXMuQi5jbGVhcigpO3RoaXMuaj1bXTt0aGlzLksuY2xlYXIoKTt0aGlzLlI9ITB9O1ZlLnByb3RvdHlwZS5xYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O18uaGE9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZlfTt2YXIgcGY9W10scWY9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtkJiZ3YyhkLGZ1bmN0aW9uKGUsZil7ZVtmLmlkXT0hMDtyZXR1cm4gZX0sYy5KaSl9dmFyIGM9e0ppOnt9LGluZGV4OnBmLmxlbmd0aCxWbDphfTtiKGEubGQpO2IoYS5qbSk7cGYucHVzaChjKTthLmxkJiZfLnZjKGEubGQsZnVuY3Rpb24oZCl7dmFyIGU9ZC5pZDtlIGluc3RhbmNlb2YgdGMmJmQubW9kdWxlJiYoZS5nPWQubW9kdWxlKX0pfTtxZih7bGQ6W3tpZDp1YyxMYjpuYixtdWx0aXBsZTohMH1dfSk7Xy5yZj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO3ZhciBzZj17fTt2YXIgdGY9bmV3IHRjKCJNcEp3WmMiLCJNcEp3WmMiKTtfLnVmPW5ldyB0YygiVVVKcVZlIiwiVVVKcVZlIik7dmFyIHZmPW5ldyBiYix3Zj1mdW5jdGlvbihhLGIsYyl7Y2IuY2FsbCh0aGlzLGEsYik7dGhpcy5ub2RlPWI7dGhpcy5raW5kPWN9O18uQih3ZixjYik7Xy54Zj1SZWdFeHAoIl4oYXJ8Y2tifGR2fGhlfGl3fGZhfG5xb3xwc3xzZHx1Z3x1cnx5aXwuKlstX10oQWRsbXxBcmFifEhlYnJ8Tmtvb3xSb2hnfFRoYWEpKSg/IS4qWy1fXShMYXRufEN5cmwpKCR8LXxfKSkoJHwtfF8pIiwiaSIpO18ueWY9ZnVuY3Rpb24oYSxiKXtifHxfLmxiKCk7dGhpcy5oPWF8fG51bGx9O18ueWYucHJvdG90eXBlLmthPWZ1bmN0aW9uKGEsYil7YT1hKGJ8fHt9LHRoaXMuaD90aGlzLmguZ2V0RGF0YSgpOnt9KTt0aGlzLmcobnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgXy56ZiYmYSBpbnN0YW5jZW9mIF8uemY/YS5aYjpudWxsKTtyZXR1cm4gU3RyaW5nKGEpfTtfLnlmLnByb3RvdHlwZS5nPWZ1bmN0aW9uKCl7fTt2YXIgQWY9ZnVuY3Rpb24oYSl7dGhpcy5nPWE7dGhpcy5oPXRoaXMuZy5nKF8udWYpfTtBZi5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3RoaXMuZy5xYigpfHwodGhpcy5oPXRoaXMuZy5nKF8udWYpKTtyZXR1cm4gdGhpcy5oP3RoaXMuaC5qKCk6e319O3ZhciBCZj1mdW5jdGlvbihhKXt2YXIgYj1uZXcgQWYoYSk7Xy55Zi5jYWxsKHRoaXMsYixhLmdldCh1YykuaCk7dGhpcy5qPW5ldyBfLmhiO3RoaXMubD1ifTtfLkIoQmYsXy55Zik7QmYucHJvdG90eXBlLmdldERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sLmdldERhdGEoKX07QmYucHJvdG90eXBlLmc9ZnVuY3Rpb24oYSxiKXtfLnlmLnByb3RvdHlwZS5nLmNhbGwodGhpcyxhLGIpO3RoaXMuai5kaXNwYXRjaEV2ZW50KG5ldyB3Zih2ZixhLGIpKX07Xy5vYSh0ZixCZik7cWYoe2xkOlt7aWQ6dGYsTGI6QmYsbXVsdGlwbGU6ITB9XX0pO3ZhciBDZj1mdW5jdGlvbihhLGIpe3RoaXMuZGVmYXVsdFZhbHVlPWE7dGhpcy50eXBlPWI7dGhpcy52YWx1ZT1hfTtDZi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O0NmLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT1hfTt2YXIgRGY9ZnVuY3Rpb24oYSl7Q2YuY2FsbCh0aGlzLGEsImIiKX07Xy5CKERmLENmKTtEZi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O3ZhciBFZj1mdW5jdGlvbigpe3RoaXMuZz17fTt0aGlzLmo9IiI7dGhpcy5oPXt9fTtFZi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmorRmYodGhpcyk7dmFyIGI9dGhpcy5oO3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYilGYihkLGJbZF0sYyk7Yj1jLmpvaW4oIiYiKTtjPSIiO2IhPSIiJiYoYz0iPyIrYik7cmV0dXJuIGErY307CnZhciBIZj1mdW5jdGlvbihhKXthPUdmKGEsIm1kIik7cmV0dXJuISFhJiZhIT09IjAifSxGZj1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPWZ1bmN0aW9uKGQpe2EuZ1tkXSE9PXZvaWQgMCYmYi5wdXNoKGQrIj0iK2EuZ1tkXSl9O0hmKGEpPyhjKCJtZCIpLGMoImsiKSxjKCJjayIpLGMoImFtIiksYygicnMiKSxjKCJnc3Ntb2R1bGVzZXRwcm90byIpLGMoInNsayIpLGMoImR0aSIpLGMoImRid2giKSk6KGMoInNkY2giKSxjKCJrIiksYygiY2siKSxjKCJhbSIpLGMoImFtYyIpLGMoInJ0IiksImQiaW4gYS5nfHxJZihhLCJkIiwiMCIpLGMoImQiKSxjKCJleG0iKSxjKCJleGNtIiksKGEuZy5leGNtfHxhLmcuZXhtKSYmYi5wdXNoKCJlZD0xIiksYygiaW0iKSxjKCJkZyIpLGMoInNtIiksR2YoYSwiYnIiKSE9IjEiJiZHZihhLCJiciIpIT0iMCJ8fGMoImJyIiksYygiYnItZCIpLEdmKGEsInJiIik9PSIxIiYmYygicmIiKSxHZihhLCJ6cyIpIT09IjAiJiZjKCJ6cyIpLEpmKGEpIT09IiImJgpjKCJ3dCIpLGMoImdzc21vZHVsZXNldHByb3RvIiksYygidWpnIiksYygic3AiKSxjKCJpY2hjIiksYygicnMiKSxjKCJjYiIpLGMoImNjYiIpLGMoImVlIiksYygic2xrIiksYygiZHRpIiksYygiZGJ3aCIpLGMoImljIiksYygibSIpKTtyZXR1cm4gYi5qb2luKCIvIil9LEdmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZ1tiXT9hLmdbYl06bnVsbH0sSWY9ZnVuY3Rpb24oYSxiLGMpe2M/YS5nW2JdPWM6ZGVsZXRlIGEuZ1tiXX0sSmY9ZnVuY3Rpb24oYSl7c3dpdGNoKEdmKGEsInd0Iikpe2Nhc2UgIjAiOnJldHVybiIwIjtjYXNlICIxIjpyZXR1cm4iMSI7Y2FzZSAiMiI6cmV0dXJuIjIiO2RlZmF1bHQ6cmV0dXJuIiJ9fSxNZj1mdW5jdGlvbihhKXt2YXIgYj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9S2YoYSksZD1uZXcgRWYsZT1jLm1hdGNoKF8ucmYpWzVdO18uemMoTGYsZnVuY3Rpb24oZyl7dmFyIGg9ZS5tYXRjaCgiLyIrZysiPShbXi9dKykiKTtoJiZJZihkLGcsaFsxXSl9KTsKdmFyIGY9IiI7Zj1hLmluZGV4T2YoIl8vc3MvIikhPS0xPyJfL3NzLyI6Il8vanMvIjtkLmo9YS5zdWJzdHIoMCxhLmluZGV4T2YoZikrZi5sZW5ndGgpO2lmKCFiKXJldHVybiBkOyhhPWMubWF0Y2goXy5yZilbNl18fG51bGwpJiZfLkViKGEsZnVuY3Rpb24oZyxoKXtkLmhbZ109aH0pO3JldHVybiBkfSxLZj1mdW5jdGlvbihhKXtyZXR1cm4gYS5zdGFydHNXaXRoKCJodHRwczovL3ViZXJwcm94eS1wZW4tcmVkaXJlY3QuY29ycC5nb29nbGUuY29tL3ViZXJwcm94eS9wZW4/dXJsPSIpP2Euc3Vic3RyKDY1KTphfSxMZj17Wmo6ImsiLHFqOiJjayIsVGo6Im0iLERqOiJleG0iLEJqOiJleGNtIixlajoiYW0iLGZqOiJhbWMiLFJqOiJtbSIsWWo6InJ0IixNajoiZCIsQ2o6ImVkIixqazoic3YiLHNqOiJkZW9iIixtajoiY2IiLG9qOiJjY2IiLG5qOiJjYmkiLGdrOiJycyIsYWs6InNkY2giLE5qOiJpbSIsdGo6ImRnIix6ajoiYnIiLHlqOiJici1kIixBajoicmIiLEJrOiJ6cyIsQWs6Ind0IiwKRWo6ImVlIixpazoic20iLFNqOiJtZCIsSmo6Imdzc21vZHVsZXNldHByb3RvIix5azoidWpnIix4azoic3AiLExqOiJpY2hjIixmazoic2xrIix2ajoiZHRpIix1ajoiZGJ3aCIsT2o6ImljIn0sTmY9UmVnRXhwKCJeW2EtekEtWjAtOS1fKl0rJCIpO18uRyhfLkhiLF8udSk7dmFyIE9mPVtdO18uSGIucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIFBmKHRoaXMsYSxiLGMsZCl9O3ZhciBQZj1mdW5jdGlvbihhLGIsYyxkLGUsZil7QXJyYXkuaXNBcnJheShjKXx8KGMmJihPZlswXT1jLnRvU3RyaW5nKCkpLGM9T2YpO2Zvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKXt2YXIgaD1fLngoYixjW2ddLGR8fGEuaGFuZGxlRXZlbnQsZXx8ITEsZnx8YS5ofHxhKTtpZighaClicmVhazthLmdbaC5rZXldPWh9cmV0dXJuIGF9O18uSGIucHJvdG90eXBlLmFlPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBRZih0aGlzLGEsYixjLGQpfTsKdmFyIFFmPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihBcnJheS5pc0FycmF5KGMpKWZvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKVFmKGEsYixjW2ddLGQsZSxmKTtlbHNle2I9Xy5OZChiLGMsZHx8YS5oYW5kbGVFdmVudCxlLGZ8fGEuaHx8YSk7aWYoIWIpcmV0dXJuIGE7YS5nW2Iua2V5XT1ifXJldHVybiBhfTtfLkhiLnByb3RvdHlwZS55Yz1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspdGhpcy55YyhhLGJbZl0sYyxkLGUpO2Vsc2UgYz1jfHx0aGlzLmhhbmRsZUV2ZW50LGQ9Xy55YShkKT8hIWQuY2FwdHVyZTohIWQsZT1lfHx0aGlzLmh8fHRoaXMsYz1PZChjKSxkPSEhZCxiPUZkKGEpP2EuamMoYixjLGQsZSk6YT8oYT1RZChhKSk/YS5qYyhiLGMsZCxlKTpudWxsOm51bGwsYiYmKF8uVmQoYiksZGVsZXRlIHRoaXMuZ1tiLmtleV0pO3JldHVybiB0aGlzfTsKXy5SZj1mdW5jdGlvbihhKXtfLnpjKGEuZyxmdW5jdGlvbihiLGMpe3RoaXMuZy5oYXNPd25Qcm9wZXJ0eShjKSYmXy5WZChiKX0sYSk7YS5nPXt9fTtfLkhiLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy5IYi5lYS5NLmNhbGwodGhpcyk7Xy5SZih0aGlzKX07Xy5IYi5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiTiIpO307dmFyIFNmLFRmPWZ1bmN0aW9uKCl7fTtfLkcoVGYsSWIpO1RmLnByb3RvdHlwZS5nPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH07U2Y9bmV3IFRmO18uRyhKYixJYik7SmIucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoIndpdGhDcmVkZW50aWFscyJpbiBhKXJldHVybiBhO2lmKHR5cGVvZiBYRG9tYWluUmVxdWVzdCE9InVuZGVmaW5lZCIpcmV0dXJuIG5ldyBVZjt0aHJvdyBFcnJvcigiTyIpO307dmFyIFVmPWZ1bmN0aW9uKCl7dGhpcy5nPW5ldyBYRG9tYWluUmVxdWVzdDt0aGlzLnJlYWR5U3RhdGU9MDt0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsO3RoaXMucmVzcG9uc2VUeXBlPXRoaXMucmVzcG9uc2VUZXh0PSIiO3RoaXMuc3RhdHVzPS0xO3RoaXMuc3RhdHVzVGV4dD0iIjt0aGlzLmcub25sb2FkPSgwLF8ueSkodGhpcy5QaCx0aGlzKTt0aGlzLmcub25lcnJvcj0oMCxfLnkpKHRoaXMuRGUsdGhpcyk7dGhpcy5nLm9ucHJvZ3Jlc3M9KDAsXy55KSh0aGlzLlNoLHRoaXMpO3RoaXMuZy5vbnRpbWVvdXQ9KDAsXy55KSh0aGlzLldoLHRoaXMpfTtfLm09VWYucHJvdG90eXBlOwpfLm0ub3Blbj1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCYmIWMpdGhyb3cgRXJyb3IoIlAiKTt0aGlzLmcub3BlbihhLGIpfTtfLm0uc2VuZD1mdW5jdGlvbihhKXtpZihhKWlmKHR5cGVvZiBhPT0ic3RyaW5nIil0aGlzLmcuc2VuZChhKTtlbHNlIHRocm93IEVycm9yKCJRIik7ZWxzZSB0aGlzLmcuc2VuZCgpfTtfLm0uYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLmcuYWJvcnQoKX07Xy5tLnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24oKXt9O18ubS5nZXRSZXNwb25zZUhlYWRlcj1mdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvd2VyQ2FzZSgpPT0iY29udGVudC10eXBlIj90aGlzLmcuY29udGVudFR5cGU6IiJ9O18ubS5QaD1mdW5jdGlvbigpe3RoaXMuc3RhdHVzPTIwMDt0aGlzLnJlc3BvbnNlVGV4dD10aGlzLmcucmVzcG9uc2VUZXh0O1ZmKHRoaXMsNCl9O18ubS5EZT1mdW5jdGlvbigpe3RoaXMuc3RhdHVzPTUwMDt0aGlzLnJlc3BvbnNlVGV4dD0iIjtWZih0aGlzLDQpfTsKXy5tLldoPWZ1bmN0aW9uKCl7dGhpcy5EZSgpfTtfLm0uU2g9ZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz0yMDA7VmYodGhpcywxKX07dmFyIFZmPWZ1bmN0aW9uKGEsYil7YS5yZWFkeVN0YXRlPWI7aWYoYS5vbnJlYWR5c3RhdGVjaGFuZ2UpYS5vbnJlYWR5c3RhdGVjaGFuZ2UoKX07VWYucHJvdG90eXBlLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbigpe3JldHVybiJjb250ZW50LXR5cGU6ICIrdGhpcy5nLmNvbnRlbnRUeXBlfTt2YXIgWGYsWWY7Xy5XZj1mdW5jdGlvbihhKXtfLmhiLmNhbGwodGhpcyk7dGhpcy5oZWFkZXJzPW5ldyBNYXA7dGhpcy5LPWF8fG51bGw7dGhpcy5oPSExO3RoaXMuZz1udWxsO3RoaXMuQT0iIjt0aGlzLmo9dGhpcy5GPXRoaXMubz10aGlzLkQ9ITE7dGhpcy5CPTA7dGhpcy5sPW51bGw7dGhpcy5JPSIiO3RoaXMuQz0hMX07Xy5HKF8uV2YsXy5oYik7WGY9L15odHRwcz8kL2k7WWY9WyJQT1NUIiwiUFVUIl07Xy5aZj1bXTtfLldmLnByb3RvdHlwZS5MPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCk7Xy52YShfLlpmLHRoaXMpfTsKXy5XZi5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIsYyxkKXtpZih0aGlzLmcpdGhyb3cgRXJyb3IoIlNgIit0aGlzLkErImAiK2EpO2I9Yj9iLnRvVXBwZXJDYXNlKCk6IkdFVCI7dGhpcy5BPWE7dGhpcy5EPSExO3RoaXMuaD0hMDt0aGlzLmc9dGhpcy5LP3RoaXMuSy5nKCk6U2YuZygpO3RoaXMuZy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZWUoKDAsXy55KSh0aGlzLkcsdGhpcykpO3RyeXt0aGlzLkY9ITAsdGhpcy5nLm9wZW4oYixTdHJpbmcoYSksITApLHRoaXMuRj0hMX1jYXRjaChnKXskZih0aGlzKTtyZXR1cm59YT1jfHwiIjtjPW5ldyBNYXAodGhpcy5oZWFkZXJzKTtpZihkKWlmKE9iamVjdC5nZXRQcm90b3R5cGVPZihkKT09PU9iamVjdC5wcm90b3R5cGUpZm9yKHZhciBlIGluIGQpYy5zZXQoZSxkW2VdKTtlbHNlIGlmKHR5cGVvZiBkLmtleXM9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgZC5nZXQ9PT0iZnVuY3Rpb24iKXtlPV8uQyhkLmtleXMoKSk7Zm9yKHZhciBmPWUubmV4dCgpOyFmLmRvbmU7Zj0KZS5uZXh0KCkpZj1mLnZhbHVlLGMuc2V0KGYsZC5nZXQoZikpfWVsc2UgdGhyb3cgRXJyb3IoIlRgIitTdHJpbmcoZCkpO2Q9QXJyYXkuZnJvbShjLmtleXMoKSkuZmluZChmdW5jdGlvbihnKXtyZXR1cm4iY29udGVudC10eXBlIj09Zy50b0xvd2VyQ2FzZSgpfSk7ZT1fLnYuRm9ybURhdGEmJmEgaW5zdGFuY2VvZiBfLnYuRm9ybURhdGE7IV8udGEoWWYsYil8fGR8fGV8fGMuc2V0KCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpO2I9Xy5DKGMpO2ZvcihkPWIubmV4dCgpOyFkLmRvbmU7ZD1iLm5leHQoKSljPV8uQyhkLnZhbHVlKSxkPWMubmV4dCgpLnZhbHVlLGM9Yy5uZXh0KCkudmFsdWUsdGhpcy5nLnNldFJlcXVlc3RIZWFkZXIoZCxjKTt0aGlzLkkmJih0aGlzLmcucmVzcG9uc2VUeXBlPXRoaXMuSSk7IndpdGhDcmVkZW50aWFscyJpbiB0aGlzLmcmJnRoaXMuZy53aXRoQ3JlZGVudGlhbHMhPT10aGlzLkMmJgoodGhpcy5nLndpdGhDcmVkZW50aWFscz10aGlzLkMpO3RyeXt0aGlzLmwmJihjbGVhclRpbWVvdXQodGhpcy5sKSx0aGlzLmw9bnVsbCksdGhpcy5CPjAmJih0aGlzLmw9c2V0VGltZW91dCh0aGlzLlIuYmluZCh0aGlzKSx0aGlzLkIpKSx0aGlzLm89ITAsdGhpcy5nLnNlbmQoYSksdGhpcy5vPSExfWNhdGNoKGcpeyRmKHRoaXMpfX07Xy5XZi5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3R5cGVvZiBqYyE9InVuZGVmaW5lZCImJnRoaXMuZyYmKHRoaXMuZGlzcGF0Y2hFdmVudCgidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfTt2YXIgJGY9ZnVuY3Rpb24oYSl7YS5oPSExO2EuZyYmKGEuaj0hMCxhLmcuYWJvcnQoKSxhLmo9ITEpO2RnKGEpO2VnKGEpfSxkZz1mdW5jdGlvbihhKXthLkR8fChhLkQ9ITAsYS5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLGEuZGlzcGF0Y2hFdmVudCgiZXJyb3IiKSl9OwpfLldmLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuZyYmdGhpcy5oJiYodGhpcy5oPSExLHRoaXMuaj0hMCx0aGlzLmcuYWJvcnQoKSx0aGlzLmo9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLHRoaXMuZGlzcGF0Y2hFdmVudCgiYWJvcnQiKSxlZyh0aGlzKSl9O18uV2YucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmcmJih0aGlzLmgmJih0aGlzLmg9ITEsdGhpcy5qPSEwLHRoaXMuZy5hYm9ydCgpLHRoaXMuaj0hMSksZWcodGhpcywhMCkpO18uV2YuZWEuTS5jYWxsKHRoaXMpfTtfLldmLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7dGhpcy5xYigpfHwodGhpcy5GfHx0aGlzLm98fHRoaXMuaj9mZyh0aGlzKTp0aGlzLk8oKSl9O18uV2YucHJvdG90eXBlLk89ZnVuY3Rpb24oKXtmZyh0aGlzKX07CnZhciBmZz1mdW5jdGlvbihhKXtpZihhLmgmJnR5cGVvZiBqYyE9InVuZGVmaW5lZCIpaWYoYS5vJiYoYS5nP2EuZy5yZWFkeVN0YXRlOjApPT00KXNldFRpbWVvdXQoYS5HLmJpbmQoYSksMCk7ZWxzZSBpZihhLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSwoYS5nP2EuZy5yZWFkeVN0YXRlOjApPT00KXthLmg9ITE7dHJ5e18uZ2coYSk/KGEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKSk6ZGcoYSl9ZmluYWxseXtlZyhhKX19fSxlZz1mdW5jdGlvbihhLGIpe2lmKGEuZyl7YS5sJiYoY2xlYXJUaW1lb3V0KGEubCksYS5sPW51bGwpO3ZhciBjPWEuZzthLmc9bnVsbDtifHxhLmRpc3BhdGNoRXZlbnQoInJlYWR5Iik7dHJ5e2Mub25yZWFkeXN0YXRlY2hhbmdlPW51bGx9Y2F0Y2goZCl7fX19O18uV2YucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmd9OwpfLmdnPWZ1bmN0aW9uKGEpe3ZhciBiPV8uaGcoYSk7YTpzd2l0Y2goYil7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDQ6Y2FzZSAyMDY6Y2FzZSAzMDQ6Y2FzZSAxMjIzOnZhciBjPSEwO2JyZWFrIGE7ZGVmYXVsdDpjPSExfWlmKCFjKXtpZihiPWI9PT0wKWE9U3RyaW5nKGEuQSkubWF0Y2goXy5yZilbMV18fG51bGwsIWEmJl8udi5zZWxmJiZfLnYuc2VsZi5sb2NhdGlvbiYmKGE9Xy52LnNlbGYubG9jYXRpb24ucHJvdG9jb2wuc2xpY2UoMCwtMSkpLGI9IVhmLnRlc3QoYT9hLnRvTG93ZXJDYXNlKCk6IiIpO2M9Yn1yZXR1cm4gY307Xy5oZz1mdW5jdGlvbihhKXt0cnl7cmV0dXJuKGEuZz9hLmcucmVhZHlTdGF0ZTowKT4yP2EuZy5zdGF0dXM6LTF9Y2F0Y2goYil7cmV0dXJuLTF9fTtfLmlnPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5nP2EuZy5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2goYil7cmV0dXJuIiJ9fTt2YXIga2c9ZnVuY3Rpb24oYSl7Xy51LmNhbGwodGhpcyk7dGhpcy5GPWE7dGhpcy5CPU1mKGEpO3RoaXMubD10aGlzLm89bnVsbDt0aGlzLkk9ITA7dGhpcy5oPW5ldyBfLkhiKHRoaXMpO3RoaXMuRz1bXTt0aGlzLkE9bmV3IFNldDt0aGlzLmc9W107dGhpcy5LPW5ldyBqZzt0aGlzLmo9W107dGhpcy5DPSExO2E9KDAsXy55KSh0aGlzLkQsdGhpcyk7c2YudmVyc2lvbj1hfTtfLkIoa2csXy51KTsKdmFyIGxnPWZ1bmN0aW9uKGEsYil7YS5nLmxlbmd0aCYmUGUoYixhLmdbYS5nLmxlbmd0aC0xXSk7YS5nLnB1c2goYik7TWUoYixmdW5jdGlvbigpe18udmEodGhpcy5nLGIpfSxhKX0sZmY9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZD09PXZvaWQgMD97fTpkO3ZhciBmPWUuamg7ZD1lLm1oO3ZhciBnPWUuZmU7ZT1lLkZpO2I9bWcoYSxiLGMsZixkKTtuZyhhLGIsZyxlLGQpfSxtZz1mdW5jdGlvbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD9OYz9uZXcgTWFwOnt9OmQ7dmFyIGY9W107b2coYSxiLGMsZCxlPT09dm9pZCAwPyExOmUsZnVuY3Rpb24oZyl7Zi5wdXNoKGcuUmEoKSl9KTtyZXR1cm4gZn0sb2c9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7Zz1nPT09dm9pZCAwP3t9Omc7Yj1fLkMoYik7Zm9yKHZhciBoPWIubmV4dCgpOyFoLmRvbmU7aD1iLm5leHQoKSl7dmFyIGs9aC52YWx1ZTtoPWMuZ2V0KGspOyFlJiYoYS5BLmhhcyhrKXx8aC5nKXx8Z1trXXx8KGdba109ITAsaz1kIGluc3RhbmNlb2YKTWFwPyhrPWQuZ2V0KGspKT9BcnJheS5mcm9tKGspOltdOmRba10/T2JqZWN0LmtleXMoZFtrXSk6W10sb2coYSxoLmwuY29uY2F0KGspLGMsZCxlLGYsZyksZihoKSl9fSxuZz1mdW5jdGlvbihhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmPVtdLGc9bmV3IEJiO2I9W2JdO2Zvcih2YXIgaD1mdW5jdGlvbihxLHApe2Zvcih2YXIgcj1bXSx0PTAsQT1NYXRoLmZsb29yKHEubGVuZ3RoL3ApKzEsRD0wO0Q8cDtEKyspe3ZhciBFPShEKzEpKkE7ci5wdXNoKHEuc2xpY2UodCxFKSk7dD1FfXJldHVybiByfSxrPWIuc2hpZnQoKTtrOyl7dmFyIGw9cGcoYSxrLCEhZSwhMCk7aWYobC5sZW5ndGg8PTJFMyl7aWYoaz1yZyhhLGssZSkpZi5wdXNoKGspLFBlKGcsay5nKX1lbHNlIGI9aChrLE1hdGguY2VpbChsLmxlbmd0aC8yRTMpKS5jb25jYXQoYik7az1iLnNoaWZ0KCl9dmFyIG49bmV3IEJiO2xnKGEsbik7TWUobixmdW5jdGlvbigpe3JldHVybiBzZyhhLGYsYyxkKX0pO05lKG4sCmZ1bmN0aW9uKCl7dmFyIHE9bmV3IHRnO3Euaj0hMDtxLmg9LTE7c2codGhpcyxbcV0sYyxkKX0sYSk7TWUoZyxmdW5jdGlvbigpe3JldHVybiBuLmcoKX0pO2cuZygpfSxyZz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cGcoYSxiLCEoYz09PXZvaWQgMHx8IWMpKTthLkcucHVzaChkKTtiPV8uQyhiKTtmb3IoYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5BLmFkZChjLnZhbHVlKTtpZihhLkMpYT1fLndkKGRvY3VtZW50LCJTQ1JJUFQiKSxfLlNhKGEsXy5MYihkKSksYS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGEuYXN5bmM9ITEsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtlbHNle3ZhciBlPW5ldyB0ZyxmPW5ldyBfLldmKGEuai5sZW5ndGg+MD9uZXcgSmI6dm9pZCAwKTthLmguTihmLCJzdWNjZXNzIiwoMCxfLnkpKGUuQixlLGYpKTthLmguTihmLCJlcnJvciIsKDAsXy55KShlLkEsZSxmKSk7YS5oLk4oZiwidGltZW91dCIsKDAsXy55KShlLkMsZSkpO1BmKGEuaCwKZiwicmVhZHkiLGYuZGlzcG9zZSwhMSxmKTtmLkI9M0U0O3VnKGEuSyxmdW5jdGlvbigpe2Yuc2VuZChkKTtyZXR1cm4gZS5nfSk7cmV0dXJuIGV9cmV0dXJuIG51bGx9LHNnPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT0hMSxmLGc9ITEsaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgaz1iW2hdO2lmKCFmJiZrLmope2U9ITA7Zj1rLmg7YnJlYWt9ZWxzZSBrLmwmJihnPSEwKX1oPV8ud2EoYS5nKTsoZXx8ZykmJmYhPS0xJiYoYS5nLmxlbmd0aD0wKTtpZihlKWMmJmMoZik7ZWxzZSBpZihnKWQmJmQoKTtlbHNlIGZvcihhPTA7YTxiLmxlbmd0aDthKyspZD1iW2FdLHZnKGQubyxkLkNhKXx8YyYmYyg4MDAxKTsoZXx8ZykmJmYhPS0xJiZfLnZjKGgsZnVuY3Rpb24obCl7bC5jYW5jZWwoKX0pfTtrZy5wcm90b3R5cGUuTT1mdW5jdGlvbigpe3RoaXMuaC5kaXNwb3NlKCk7ZGVsZXRlIHNmLnZlcnNpb247Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyl9OwprZy5wcm90b3R5cGUuRD1mdW5jdGlvbigpe3JldHVybiBHZih0aGlzLkIsImsiKX07CnZhciBwZz1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1fLkNiKGEuRi5tYXRjaChfLnJmKVszXXx8bnVsbCk7aWYoYS5qLmxlbmd0aD4wJiYhXy50YShhLmosZSkmJmUhPW51bGwmJndpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSE9ZSl0aHJvdyBFcnJvcigiV2AiK2UpO3ZhciBmPWEuQjtlPW5ldyBFZjtlLmc9T2JqZWN0LmFzc2lnbih7fSxmLmcpO2Uuaj1mLmo7ZS5oPU9iamVjdC5hc3NpZ24oe30sZi5oKTtkZWxldGUgZS5nLm07ZGVsZXRlIGUuZy5leG07ZGVsZXRlIGUuZy5lZDtpZihiKXtmPV8uQyhiKTtmb3IodmFyIGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWlmKGc9Zy52YWx1ZSwhTmYudGVzdChnKSl0aHJvdyBFcnJvcigiTWAiK2cpO31JZihlLCJtIixiLmpvaW4oIiwiKSk7YS5vJiYoSWYoZSwiY2siLGEubyksYS5sJiZJZihlLCJycyIsYS5sKSk7SWYoZSwiZCIsIjAiKTtjJiYoZS5oLnp4PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoKMjE0NzQ4MzY0OCkudG9TdHJpbmcoMzYpK01hdGguYWJzKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ4KV5EYXRlLm5vdygpKS50b1N0cmluZygzNikpO2E9ZS50b1N0cmluZygpO2QmJmEubGFzdEluZGV4T2YoIi8iLDApPT0wJiYoZT1kb2N1bWVudC5sb2NhdGlvbi5ocmVmLm1hdGNoKF8ucmYpLGQ9ZVsxXSxiPWVbMl0sYz1lWzNdLGU9ZVs0XSxmPSIiLGQmJihmKz1kKyI6IiksYyYmKGYrPSIvLyIsYiYmKGYrPWIrIkAiKSxmKz1jLGUmJihmKz0iOiIrZSkpLGE9ZithKTtyZXR1cm4gYX0sdmc9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iIjtpZihhLmxlbmd0aD4xJiZhLmNoYXJBdChhLmxlbmd0aC0xKT09PSJcbiIpe3ZhciBkPWEubGFzdEluZGV4T2YoIlxuIixhLmxlbmd0aC0yKTtkPj0wJiYoYz1hLnN1YnN0cmluZyhkKzEsYS5sZW5ndGgtMSkpfWQ9Yy5sZW5ndGgtMTE7aWYoZD49MCYmYy5pbmRleE9mKCJHb29nbGUgSW5jLiIsZCk9PWR8fGMubGFzdEluZGV4T2YoIi8vIyBzb3VyY2VNYXBwaW5nVVJMPSIsCjApPT0wKXRyeXtjPXdpbmRvdzthPWErIlxyXG4vLyMgc291cmNlVVJMPSIrYjthPV8uS2IoYSk7dmFyIGU9Xy5RYShhKTt2YXIgZj1fLlJhKGUpO2MuZXZhbChmKT09PWYmJmMuZXZhbChmLnRvU3RyaW5nKCkpfWNhdGNoKGcpe3JldHVybiExfWVsc2UgcmV0dXJuITE7cmV0dXJuITB9LHdnPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQ2IoYS5tYXRjaChfLnJmKVs1XXx8bnVsbCl8fCIiO2I9Xy5DYihLZihiKS5tYXRjaChfLnJmKVs1XXx8bnVsbCk7cmV0dXJuKGI9PT1udWxsPzA6UmVnRXhwKCIoL18vanMvKXwoL18vc3MvKSIsImciKS50ZXN0KGIpJiYvXC9rPS8udGVzdChiKSk/YTpudWxsfSx0Zz1mdW5jdGlvbigpe3RoaXMuZz1uZXcgQmI7dGhpcy5DYT10aGlzLm89IiI7dGhpcy5qPSExO3RoaXMuaD0wO3RoaXMubD0hMX07dGcucHJvdG90eXBlLkI9ZnVuY3Rpb24oYSl7dGhpcy5vPV8uaWcoYSk7dGhpcy5DYT1TdHJpbmcoYS5BKTt0aGlzLmcuZygpfTsKdGcucHJvdG90eXBlLkE9ZnVuY3Rpb24oYSl7dGhpcy5qPSEwO3RoaXMuaD1fLmhnKGEpO3RoaXMuZy5nKCl9O3RnLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7dGhpcy5sPSEwO3RoaXMuZy5nKCl9O3ZhciBqZz1mdW5jdGlvbigpe3RoaXMuZz0wO3RoaXMuaD1bXX0sdWc9ZnVuY3Rpb24oYSxiKXthLmgucHVzaChiKTt4ZyhhKX0seGc9ZnVuY3Rpb24oYSl7Zm9yKDthLmc8NSYmYS5oLmxlbmd0aDspeWcoYSxhLmguc2hpZnQoKSl9LHlnPWZ1bmN0aW9uKGEsYil7YS5nKys7TWUoYigpLGZ1bmN0aW9uKCl7dGhpcy5nLS07eGcodGhpcyl9LGEpfTt2YXIgemc9bmV3IERmKCExKSxBZz1kb2N1bWVudC5sb2NhdGlvbi5ocmVmOwpxZih7ZmxhZ3M6e2RtbDp6Z30saW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt2YXIgYj16Zy5nZXQoKSxjPSIiLGQ9IiI7d2luZG93JiZ3aW5kb3cuX0ZfY3NzUm93S2V5JiYoYz13aW5kb3cuX0ZfY3NzUm93S2V5LHdpbmRvdy5fRl9jb21iaW5lZFNpZ25hdHVyZSYmKGQ9d2luZG93Ll9GX2NvbWJpbmVkU2lnbmF0dXJlKSk7aWYoYyYmdHlwZW9mIHdpbmRvdy5fRl9pbnN0YWxsQ3NzIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiVSIpO3ZhciBlLGY9Xy52Ll9GX2pzVXJsO2YmJihlPXdnKGYpKTshZSYmKGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhc2UtanMiKSkmJihlPWYuc3JjP2Yuc3JjOmYuZ2V0QXR0cmlidXRlKCJocmVmIiksZT13ZyhlKSk7ZXx8KGU9d2coQWcpKTtlfHwoZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IiksZT13ZyhlW2UubGVuZ3RoLTFdLnNyYykpO2lmKCFlKXRocm93IEVycm9yKCJWIik7ZT1uZXcga2coZSk7YyYmKGUubz1jKTsKZCYmKGUubD1kKTtlLkM9YjtiPWphKCk7Yi5PPWU7Yi5YZighMCk7Yj1qYSgpO2Iuc2UoYSk7YS5qKGIpfX0pOwpfLl9Nb2R1bGVNYW5hZ2VyX2luaXRpYWxpemU9ZnVuY3Rpb24oYSxiKXtpZighXy5kYSl7aWYoIV8uaGEpcmV0dXJuO18uaWEoKX1fLmRhLnFlKGEsYil9OwpfLl9Nb2R1bGVNYW5hZ2VyX2luaXRpYWxpemUoJ2IvbjczcXdmL1VVSnFWZS9NcEp3WmMvZWxfY29uZi9lbF9tYWluX2Nzcy9zeTEvc3kyOjYvc3kzOjcvc3k0OjYvZWxfbWFpbjo1LDgsOS9jb3JzcHJveHkvd2Vic2l0ZV9lcnJvci9uYXZpZ2F0aW9udWk6Ny9waGlzaGluZ19wcm90ZWN0aW9uOjgvX3N0YW06OScsWydlbF9jb25mJ10pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmxhKCJlbF9jb25mIik7CnZhciBDZztfLl9leHBvcnRWZXJzaW9uPWZ1bmN0aW9uKGEpe18ucmMoImdvb2dsZS50cmFuc2xhdGUudiIsYSl9O18uX2dldENhbGxiYWNrRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuIF8ua2MoYSl9O0NnPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07Ynx8KGI9ZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWQiKSkpO2IuYXBwZW5kQ2hpbGQoYSl9O18uX2xvYWRKcz1mdW5jdGlvbihhKXt2YXIgYj1fLndkKGRvY3VtZW50LCJTQ1JJUFQiKTtiLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Yi5jaGFyc2V0PSJVVEYtOCI7Xy5TYShiLF8uTGIoYSkpO0NnKGIpfTsKXy5fbG9hZENzcz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7Yi50eXBlPSJ0ZXh0L2NzcyI7Yi5yZWw9InN0eWxlc2hlZXQiO2IuY2hhcnNldD0iVVRGLTgiO2IuaHJlZj1hO0NnKGIpfTtfLl9pc05TPWZ1bmN0aW9uKGEpe2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgYj13aW5kb3csYz0wO2M8YS5sZW5ndGg7KytjKWlmKCEoYj1iW2FbY11dKSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5fc2V0dXBOUz1mdW5jdGlvbihhKXthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGI9d2luZG93LGM9MDtjPGEubGVuZ3RoOysrYyliLmhhc093blByb3BlcnR5P2IuaGFzT3duUHJvcGVydHkoYVtjXSk/Yj1iW2FbY11dOmI9YlthW2NdXT17fTpiPWJbYVtjXV18fChiW2FbY11dPXt9KTtyZXR1cm4gYn07Xy5yYygiX2V4cG9ydFZlcnNpb24iLF8uX2V4cG9ydFZlcnNpb24pO18ucmMoIl9nZXRDYWxsYmFja0Z1bmN0aW9uIixfLl9nZXRDYWxsYmFja0Z1bmN0aW9uKTsKXy5yYygiX2xvYWRKcyIsXy5fbG9hZEpzKTtfLnJjKCJfbG9hZENzcyIsXy5fbG9hZENzcyk7Xy5yYygiX2lzTlMiLF8uX2lzTlMpO18ucmMoIl9zZXR1cE5TIixfLl9zZXR1cE5TKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciYmdHlwZW9mIGRvY3VtZW50LnJlYWR5U3RhdGU9PSJ1bmRlZmluZWQiJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXtkb2N1bWVudC5yZWFkeVN0YXRlPSJjb21wbGV0ZSJ9LCExKTsKXy5tYSgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF90cik7Ci8vIEdvb2dsZSBJbmMuCgovLyMgc291cmNlVVJMPS9fL3RyYW5zbGF0ZV9odHRwL18vanMvaz10cmFuc2xhdGVfaHR0cC50ci5uby5zY3JuWTZRMl95dy5PL2FtPUJJQUFCdy9kPTEvcnM9QU44U1BmcTFLbFVGcWVpRnZCTXVkZHV6R3RiMzlRV1h1dy9tPWVsX2NvbmYKICAgIC8vIENvbmZpZ3VyZSBDb25zdGFudHMKICAgIChmdW5jdGlvbigpewogICAgICBsZXQgZ3RDb25zdEV2YWxTdGFydFRpbWUgPSBuZXcgRGF0ZSgpOwogICAgICBpZiAoX2lzTlMoJ2dvb2dsZS50cmFuc2xhdGUuRWxlbWVudCcpKXtyZXR1cm59CgogICAgICAoZnVuY3Rpb24oKXsKICAgICAgICBjb25zdCBjPV9zZXR1cE5TKCdnb29nbGUudHJhbnNsYXRlLl9jb25zdCcpOwoKICAgICAgICBjLl9jZXN0ID0gZ3RDb25zdEV2YWxTdGFydFRpbWU7CiAgICAgICAgZ3RDb25zdEV2YWxTdGFydFRpbWUgPSB1bmRlZmluZWQ7IC8vIGhpZGUgdGhpcyBldmFsIHN0YXJ0IHRpbWUgY29uc3RhbnQKICBjLl9jbD0nbm8nOyBjLl9jdWM9J2dvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0JzsgYy5fY2VmPSdceDViMCwxLDAsXHg1Ylx4MjJlc19lblx4MjIsXHgyMmVuX3poXHgyMixceDIyZW5fZGVceDIyLFx4MjJlbl9qYVx4MjIsXHgyMmVuX2VzXHgyMixceDIyZGVfZW5ceDIyXHg1ZCxudWxsLFx4NWIwLDMsMTAwLFx4NWJceDIyZW5faGlceDIyLFx4MjJoaV9lblx4MjIsXHgyMmVuX2VzXHgyMixceDIyZXNfZW5ceDIyLFx4MjJlbl9kZVx4MjIsXHgyMmRlX2VuXHgyMixceDIyZW5femhceDIyLFx4MjJlbl9qYVx4MjIsXHgyMmVuX2FyXHgyMixceDIyZW5faWRceDIyXHg1ZFx4NWQsMCwxLDBceDVkJzsgYy5fY2FjPScnOyBjLl9jYW09Jyc7IGMuX2NlbnY9J3Byb2QnO2MuX2NsbD0nSU5GTyc7IGMuX2NnYWs9Jyc7IGMuX2N0a2s9JzQ5NTg3MC4xOTc0MTQ1MzInOyBjb25zdCBoPSd0cmFuc2xhdGUuZ29vZ2xlYXBpcy5jb20nOyBjb25zdCBvcGg9J3RyYW5zbGF0ZS1wYS5nb29nbGVhcGlzLmNvbSc7IGNvbnN0IHM9J2h0dHBzJysnOi8vJzsgYy5fcGFoPWg7IGMuX3Bhcz1zOyBjb25zdCBiPXMrJ3RyYW5zbGF0ZS5nb29nbGVhcGlzLmNvbSc7IGNvbnN0IHN0YXRpY1BhdGggPSAnL3RyYW5zbGF0ZV9zdGF0aWMvJzsgYy5fcGNpPWIrc3RhdGljUGF0aCsnaW1nL3RlX2N0cmwzLmdpZic7IGMuX3BtaT1iK3N0YXRpY1BhdGgrJ2ltZy9taW5pX2dvb2dsZS5wbmcnOyBjLl9wYmk9YitzdGF0aWNQYXRoKydpbWcvdGVfYmsuZ2lmJzsgYy5fcGxpPWIrc3RhdGljUGF0aCsnaW1nL2xvYWRpbmcuZ2lmJzsgYy5fcHM9J2h0dHBzOlwvXC93d3cuZ3N0YXRpYy5jb21cL19cL3RyYW5zbGF0ZV9odHRwXC9fXC9zc1wva1x4M2R0cmFuc2xhdGVfaHR0cC50ci5CN0RpaDlKeWpudy5MLkY0Lk9cL2FtXHgzZEJJQUFCd1wvZFx4M2QwXC9yc1x4M2RBTjhTUGZwQzA0dnJyelFYZ3NfVENNNUV0cnV3ZlB6TnRRXC9tXHgzZGVsX21haW5fY3NzJzsgYy5fcGxsYT1vcGgrJ1wvdjFcL3N1cHBvcnRlZExhbmd1YWdlcyc7IGMuX3B1aD0ndHJhbnNsYXRlLmdvb2dsZS5jb20nO2MuX2NuYWw9e307X2xvYWRDc3MoYy5fcHMpOyBfbG9hZEpzKCdodHRwczpcL1wvdHJhbnNsYXRlLmdvb2dsZWFwaXMuY29tXC9fXC90cmFuc2xhdGVfaHR0cFwvX1wvanNcL2tceDNkdHJhbnNsYXRlX2h0dHAudHIubm8uc2Nyblk2UTJfeXcuT1wvYW1ceDNkQklBQUJ3XC9kXHgzZDFcL2V4bVx4M2RlbF9jb25mXC9lZFx4M2QxXC9yc1x4M2RBTjhTUGZxMUtsVUZxZWlGdkJNdWRkdXpHdGIzOVFXWHV3XC9tXHgzZGVsX21haW4nKTtfZXhwb3J0VmVyc2lvbignVEVfMjAyNjA3MjInKTsKICAgICAgICB9KSgpOwogICAgICB9KSgpOwogIA=="}},"time_used":92,"timings":{"blocked":-1,"dns":2,"connect":14,"send":0,"wait":42,"receive":0,"ssl":33},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/owl-carousel.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.344Z","timestamp":1785132838344,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/js/owl-carousel.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 03 Jan 2022 23:40:58 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 19568\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":93438,"size_decoded":19806,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (360), with CRLF line terminators","md5":"2fd359627020c93d2e7706075fb56a21","sha1":"d0e3c38a1597eb9cf96f4a3ed7f8883ad82d23af","sha256":"44df0b9f6a08c638c2ce544989cc8fc30e90fd2bda8465280d0cf0f2d214173e","sha512":"a9f8782dd85862ab165ad36309b8f17b41f4cf4827afec5edd239819f7b7444da99993be167517dca1a114a890d9efc6a00b81a9055caed38cf622f7d5d5b6b6","ssdeep":"1536:Z5u1MHUCBjloTO6JyqaiYhKPQ4ZarMMEpEa9wleUBj/DvRM3V2:Z5GUjloTO6JyViPZpMEpFalrBj/DvRMw","tlshash":"de93a2d5f31e262f4ab63320557e6309fa3dc525d10227ad78e8a5cc29a5448836effc","first_seen":"2023-03-07T12:08:44Z","last_seen":"2026-07-27T06:14:42.672551Z","times_seen":404,"resource_available":true,"data":"LyoqDQogKiBPd2wgQ2Fyb3VzZWwgdjIuMy40DQogKiBDb3B5cmlnaHQgMjAxMy0yMDE4IERhdmlkIERldXRzY2gNCiAqIExpY2Vuc2VkIHVuZGVyOiBTRUUgTElDRU5TRSBJTiBodHRwczovL2dpdGh1Yi5jb20vT3dsQ2Fyb3VzZWwyL093bENhcm91c2VsMi9ibG9iL21hc3Rlci9MSUNFTlNFDQogKi8NCi8qKg0KICogT3dsIGNhcm91c2VsDQogKiBAdmVyc2lvbiAyLjMuNA0KICogQGF1dGhvciBCYXJ0b3N6IFdvamNpZWNob3dza2kNCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaA0KICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpDQogKiBAdG9kbyBMYXp5IExvYWQgSWNvbg0KICogQHRvZG8gcHJldmVudCBhbmltYXRpb25lbmQgYnVibGluZw0KICogQHRvZG8gaXRlbXNTY2FsZVVwDQogKiBAdG9kbyBUZXN0IFplcHRvDQogKiBAdG9kbyBzdGFnZVBhZGRpbmcgY2FsY3VsYXRlIHdyb25nIGFjdGl2ZSBjbGFzc2VzDQogKi8NCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7DQoNCgkvKioNCgkgKiBDcmVhdGVzIGEgY2Fyb3VzZWwuDQoJICogQGNsYXNzIFRoZSBPd2wgQ2Fyb3VzZWwuDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8alF1ZXJ5fSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gY3JlYXRlIHRoZSBjYXJvdXNlbCBmb3IuDQoJICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIFRoZSBvcHRpb25zDQoJICovDQoJZnVuY3Rpb24gT3dsKGVsZW1lbnQsIG9wdGlvbnMpIHsNCg0KCQkvKioNCgkJICogQ3VycmVudCBzZXR0aW5ncyBmb3IgdGhlIGNhcm91c2VsLg0KCQkgKiBAcHVibGljDQoJCSAqLw0KCQl0aGlzLnNldHRpbmdzID0gbnVsbDsNCg0KCQkvKioNCgkJICogQ3VycmVudCBvcHRpb25zIHNldCBieSB0aGUgY2FsbGVyIGluY2x1ZGluZyBkZWZhdWx0cy4NCgkJICogQHB1YmxpYw0KCQkgKi8NCgkJdGhpcy5vcHRpb25zID0gJC5leHRlbmQoe30sIE93bC5EZWZhdWx0cywgb3B0aW9ucyk7DQoNCgkJLyoqDQoJCSAqIFBsdWdpbiBlbGVtZW50Lg0KCQkgKiBAcHVibGljDQoJCSAqLw0KCQl0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTsNCg0KCQkvKioNCgkJICogUHJveGllZCBldmVudCBoYW5kbGVycy4NCgkJICogQHByb3RlY3RlZA0KCQkgKi8NCgkJdGhpcy5faGFuZGxlcnMgPSB7fTsNCg0KCQkvKioNCgkJICogUmVmZXJlbmNlcyB0byB0aGUgcnVubmluZyBwbHVnaW5zIG9mIHRoaXMgY2Fyb3VzZWwuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICovDQoJCXRoaXMuX3BsdWdpbnMgPSB7fTsNCg0KCQkvKioNCgkJICogQ3VycmVudGx5IHN1cHByZXNzZWQgZXZlbnRzIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIHJldHJpZ2dlcmVkLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqLw0KCQl0aGlzLl9zdXByZXNzID0ge307DQoNCgkJLyoqDQoJCSAqIEFic29sdXRlIGN1cnJlbnQgcG9zaXRpb24uDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICovDQoJCXRoaXMuX2N1cnJlbnQgPSBudWxsOw0KDQoJCS8qKg0KCQkgKiBBbmltYXRpb24gc3BlZWQgaW4gbWlsbGlzZWNvbmRzLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqLw0KCQl0aGlzLl9zcGVlZCA9IG51bGw7DQoNCgkJLyoqDQoJCSAqIENvb3JkaW5hdGVzIG9mIGFsbCBpdGVtcyBpbiBwaXhlbC4NCgkJICogQHRvZG8gVGhlIG5hbWUgb2YgdGhpcyBtZW1iZXIgaXMgbWlzc2xlYWRpbmcuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICovDQoJCXRoaXMuX2Nvb3JkaW5hdGVzID0gW107DQoNCgkJLyoqDQoJCSAqIEN1cnJlbnQgYnJlYWtwb2ludC4NCgkJICogQHRvZG8gUmVhbCBtZWRpYSBxdWVyaWVzIHdvdWxkIGJlIG5pY2UuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICovDQoJCXRoaXMuX2JyZWFrcG9pbnQgPSBudWxsOw0KDQoJCS8qKg0KCQkgKiBDdXJyZW50IHdpZHRoIG9mIHRoZSBwbHVnaW4gZWxlbWVudC4NCgkJICovDQoJCXRoaXMuX3dpZHRoID0gbnVsbDsNCg0KCQkvKioNCgkJICogQWxsIHJlYWwgaXRlbXMuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICovDQoJCXRoaXMuX2l0ZW1zID0gW107DQoNCgkJLyoqDQoJCSAqIEFsbCBjbG9uZWQgaXRlbXMuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICovDQoJCXRoaXMuX2Nsb25lcyA9IFtdOw0KDQoJCS8qKg0KCQkgKiBNZXJnZSB2YWx1ZXMgb2YgYWxsIGl0ZW1zLg0KCQkgKiBAdG9kbyBNYXliZSB0aGlzIGNvdWxkIGJlIHBhcnQgb2YgYSBwbHVnaW4uDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICovDQoJCXRoaXMuX21lcmdlcnMgPSBbXTsNCg0KCQkvKioNCgkJICogV2lkdGhzIG9mIGFsbCBpdGVtcy4NCgkJICovDQoJCXRoaXMuX3dpZHRocyA9IFtdOw0KDQoJCS8qKg0KCQkgKiBJbnZhbGlkYXRlZCBwYXJ0cyB3aXRoaW4gdGhlIHVwZGF0ZSBwcm9jZXNzLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqLw0KCQl0aGlzLl9pbnZhbGlkYXRlZCA9IHt9Ow0KDQoJCS8qKg0KCQkgKiBPcmRlcmVkIGxpc3Qgb2Ygd29ya2VycyBmb3IgdGhlIHVwZGF0ZSBwcm9jZXNzLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqLw0KCQl0aGlzLl9waXBlID0gW107DQoNCgkJLyoqDQoJCSAqIEN1cnJlbnQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHRoZSBkcmFnIG9wZXJhdGlvbi4NCgkJICogQHRvZG8gIzI2MQ0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqLw0KCQl0aGlzLl9kcmFnID0gew0KCQkJdGltZTogbnVsbCwNCgkJCXRhcmdldDogbnVsbCwNCgkJCXBvaW50ZXI6IG51bGwsDQoJCQlzdGFnZTogew0KCQkJCXN0YXJ0OiBudWxsLA0KCQkJCWN1cnJlbnQ6IG51bGwNCgkJCX0sDQoJCQlkaXJlY3Rpb246IG51bGwNCgkJfTsNCg0KCQkvKioNCgkJICogQ3VycmVudCBzdGF0ZSBpbmZvcm1hdGlvbiBhbmQgdGhlaXIgdGFncy4NCgkJICogQHR5cGUge09iamVjdH0NCgkJICogQHByb3RlY3RlZA0KCQkgKi8NCgkJdGhpcy5fc3RhdGVzID0gew0KCQkJY3VycmVudDoge30sDQoJCQl0YWdzOiB7DQoJCQkJJ2luaXRpYWxpemluZyc6IFsgJ2J1c3knIF0sDQoJCQkJJ2FuaW1hdGluZyc6IFsgJ2J1c3knIF0sDQoJCQkJJ2RyYWdnaW5nJzogWyAnaW50ZXJhY3RpbmcnIF0NCgkJCX0NCgkJfTsNCg0KCQkkLmVhY2goWyAnb25SZXNpemUnLCAnb25UaHJvdHRsZWRSZXNpemUnIF0sICQucHJveHkoZnVuY3Rpb24oaSwgaGFuZGxlcikgew0KCQkJdGhpcy5faGFuZGxlcnNbaGFuZGxlcl0gPSAkLnByb3h5KHRoaXNbaGFuZGxlcl0sIHRoaXMpOw0KCQl9LCB0aGlzKSk7DQoNCgkJJC5lYWNoKE93bC5QbHVnaW5zLCAkLnByb3h5KGZ1bmN0aW9uKGtleSwgcGx1Z2luKSB7DQoJCQl0aGlzLl9wbHVnaW5zW2tleS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIGtleS5zbGljZSgxKV0NCgkJCQk9IG5ldyBwbHVnaW4odGhpcyk7DQoJCX0sIHRoaXMpKTsNCg0KCQkkLmVhY2goT3dsLldvcmtlcnMsICQucHJveHkoZnVuY3Rpb24ocHJpb3JpdHksIHdvcmtlcikgew0KCQkJdGhpcy5fcGlwZS5wdXNoKHsNCgkJCQknZmlsdGVyJzogd29ya2VyLmZpbHRlciwNCgkJCQkncnVuJzogJC5wcm94eSh3b3JrZXIucnVuLCB0aGlzKQ0KCQkJfSk7DQoJCX0sIHRoaXMpKTsNCg0KCQl0aGlzLnNldHVwKCk7DQoJCXRoaXMuaW5pdGlhbGl6ZSgpOw0KCX0NCg0KCS8qKg0KCSAqIERlZmF1bHQgb3B0aW9ucyBmb3IgdGhlIGNhcm91c2VsLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglPd2wuRGVmYXVsdHMgPSB7DQoJCWl0ZW1zOiAzLA0KCQlsb29wOiBmYWxzZSwNCgkJY2VudGVyOiBmYWxzZSwNCgkJcmV3aW5kOiBmYWxzZSwNCgkJY2hlY2tWaXNpYmlsaXR5OiB0cnVlLA0KDQoJCW1vdXNlRHJhZzogdHJ1ZSwNCgkJdG91Y2hEcmFnOiB0cnVlLA0KCQlwdWxsRHJhZzogdHJ1ZSwNCgkJZnJlZURyYWc6IGZhbHNlLA0KDQoJCW1hcmdpbjogMCwNCgkJc3RhZ2VQYWRkaW5nOiAwLA0KDQoJCW1lcmdlOiBmYWxzZSwNCgkJbWVyZ2VGaXQ6IHRydWUsDQoJCWF1dG9XaWR0aDogZmFsc2UsDQoNCgkJc3RhcnRQb3NpdGlvbjogMCwNCgkJcnRsOiBmYWxzZSwNCg0KCQlzbWFydFNwZWVkOiAyNTAsDQoJCWZsdWlkU3BlZWQ6IGZhbHNlLA0KCQlkcmFnRW5kU3BlZWQ6IGZhbHNlLA0KDQoJCXJlc3BvbnNpdmU6IHt9LA0KCQlyZXNwb25zaXZlUmVmcmVzaFJhdGU6IDIwMCwNCgkJcmVzcG9uc2l2ZUJhc2VFbGVtZW50OiB3aW5kb3csDQoNCgkJZmFsbGJhY2tFYXNpbmc6ICdzd2luZycsDQoJCXNsaWRlVHJhbnNpdGlvbjogJycsDQoNCgkJaW5mbzogZmFsc2UsDQoNCgkJbmVzdGVkSXRlbVNlbGVjdG9yOiBmYWxzZSwNCgkJaXRlbUVsZW1lbnQ6ICdkaXYnLA0KCQlzdGFnZUVsZW1lbnQ6ICdkaXYnLA0KDQoJCXJlZnJlc2hDbGFzczogJ293bC1yZWZyZXNoJywNCgkJbG9hZGVkQ2xhc3M6ICdvd2wtbG9hZGVkJywNCgkJbG9hZGluZ0NsYXNzOiAnb3dsLWxvYWRpbmcnLA0KCQlydGxDbGFzczogJ293bC1ydGwnLA0KCQlyZXNwb25zaXZlQ2xhc3M6ICdvd2wtcmVzcG9uc2l2ZScsDQoJCWRyYWdDbGFzczogJ293bC1kcmFnJywNCgkJaXRlbUNsYXNzOiAnb3dsLWl0ZW0nLA0KCQlzdGFnZUNsYXNzOiAnb3dsLXN0YWdlJywNCgkJc3RhZ2VPdXRlckNsYXNzOiAnb3dsLXN0YWdlLW91dGVyJywNCgkJZ3JhYkNsYXNzOiAnb3dsLWdyYWInDQoJfTsNCg0KCS8qKg0KCSAqIEVudW1lcmF0aW9uIGZvciB3aWR0aC4NCgkgKiBAcHVibGljDQoJICogQHJlYWRvbmx5DQoJICogQGVudW0ge1N0cmluZ30NCgkgKi8NCglPd2wuV2lkdGggPSB7DQoJCURlZmF1bHQ6ICdkZWZhdWx0JywNCgkJSW5uZXI6ICdpbm5lcicsDQoJCU91dGVyOiAnb3V0ZXInDQoJfTsNCg0KCS8qKg0KCSAqIEVudW1lcmF0aW9uIGZvciB0eXBlcy4NCgkgKiBAcHVibGljDQoJICogQHJlYWRvbmx5DQoJICogQGVudW0ge1N0cmluZ30NCgkgKi8NCglPd2wuVHlwZSA9IHsNCgkJRXZlbnQ6ICdldmVudCcsDQoJCVN0YXRlOiAnc3RhdGUnDQoJfTsNCg0KCS8qKg0KCSAqIENvbnRhaW5zIGFsbCByZWdpc3RlcmVkIHBsdWdpbnMuDQoJICogQHB1YmxpYw0KCSAqLw0KCU93bC5QbHVnaW5zID0ge307DQoNCgkvKioNCgkgKiBMaXN0IG9mIHdvcmtlcnMgaW52b2x2ZWQgaW4gdGhlIHVwZGF0ZSBwcm9jZXNzLg0KCSAqLw0KCU93bC5Xb3JrZXJzID0gWyB7DQoJCWZpbHRlcjogWyAnd2lkdGgnLCAnc2V0dGluZ3MnIF0sDQoJCXJ1bjogZnVuY3Rpb24oKSB7DQoJCQl0aGlzLl93aWR0aCA9IHRoaXMuJGVsZW1lbnQud2lkdGgoKTsNCgkJfQ0KCX0sIHsNCgkJZmlsdGVyOiBbICd3aWR0aCcsICdpdGVtcycsICdzZXR0aW5ncycgXSwNCgkJcnVuOiBmdW5jdGlvbihjYWNoZSkgew0KCQkJY2FjaGUuY3VycmVudCA9IHRoaXMuX2l0ZW1zICYmIHRoaXMuX2l0ZW1zW3RoaXMucmVsYXRpdmUodGhpcy5fY3VycmVudCldOw0KCQl9DQoJfSwgew0KCQlmaWx0ZXI6IFsgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLA0KCQlydW46IGZ1bmN0aW9uKCkgew0KCQkJdGhpcy4kc3RhZ2UuY2hpbGRyZW4oJy5jbG9uZWQnKS5yZW1vdmUoKTsNCgkJfQ0KCX0sIHsNCgkJZmlsdGVyOiBbICd3aWR0aCcsICdpdGVtcycsICdzZXR0aW5ncycgXSwNCgkJcnVuOiBmdW5jdGlvbihjYWNoZSkgew0KCQkJdmFyIG1hcmdpbiA9IHRoaXMuc2V0dGluZ3MubWFyZ2luIHx8ICcnLA0KCQkJCWdyaWQgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsDQoJCQkJcnRsID0gdGhpcy5zZXR0aW5ncy5ydGwsDQoJCQkJY3NzID0gew0KCQkJCQknd2lkdGgnOiAnYXV0bycsDQoJCQkJCSdtYXJnaW4tbGVmdCc6IHJ0bCA/IG1hcmdpbiA6ICcnLA0KCQkJCQknbWFyZ2luLXJpZ2h0JzogcnRsID8gJycgOiBtYXJnaW4NCgkJCQl9Ow0KDQoJCQkhZ3JpZCAmJiB0aGlzLiRzdGFnZS5jaGlsZHJlbigpLmNzcyhjc3MpOw0KDQoJCQljYWNoZS5jc3MgPSBjc3M7DQoJCX0NCgl9LCB7DQoJCWZpbHRlcjogWyAnd2lkdGgnLCAnaXRlbXMnLCAnc2V0dGluZ3MnIF0sDQoJCXJ1bjogZnVuY3Rpb24oY2FjaGUpIHsNCgkJCXZhciB3aWR0aCA9ICh0aGlzLndpZHRoKCkgLyB0aGlzLnNldHRpbmdzLml0ZW1zKS50b0ZpeGVkKDMpIC0gdGhpcy5zZXR0aW5ncy5tYXJnaW4sDQoJCQkJbWVyZ2UgPSBudWxsLA0KCQkJCWl0ZXJhdG9yID0gdGhpcy5faXRlbXMubGVuZ3RoLA0KCQkJCWdyaWQgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsDQoJCQkJd2lkdGhzID0gW107DQoNCgkJCWNhY2hlLml0ZW1zID0gew0KCQkJCW1lcmdlOiBmYWxzZSwNCgkJCQl3aWR0aDogd2lkdGgNCgkJCX07DQoNCgkJCXdoaWxlIChpdGVyYXRvci0tKSB7DQoJCQkJbWVyZ2UgPSB0aGlzLl9tZXJnZXJzW2l0ZXJhdG9yXTsNCgkJCQltZXJnZSA9IHRoaXMuc2V0dGluZ3MubWVyZ2VGaXQgJiYgTWF0aC5taW4obWVyZ2UsIHRoaXMuc2V0dGluZ3MuaXRlbXMpIHx8IG1lcmdlOw0KDQoJCQkJY2FjaGUuaXRlbXMubWVyZ2UgPSBtZXJnZSA+IDEgfHwgY2FjaGUuaXRlbXMubWVyZ2U7DQoNCgkJCQl3aWR0aHNbaXRlcmF0b3JdID0gIWdyaWQgPyB0aGlzLl9pdGVtc1tpdGVyYXRvcl0ud2lkdGgoKSA6IHdpZHRoICogbWVyZ2U7DQoJCQl9DQoNCgkJCXRoaXMuX3dpZHRocyA9IHdpZHRoczsNCgkJfQ0KCX0sIHsNCgkJZmlsdGVyOiBbICdpdGVtcycsICdzZXR0aW5ncycgXSwNCgkJcnVuOiBmdW5jdGlvbigpIHsNCgkJCXZhciBjbG9uZXMgPSBbXSwNCgkJCQlpdGVtcyA9IHRoaXMuX2l0ZW1zLA0KCQkJCXNldHRpbmdzID0gdGhpcy5zZXR0aW5ncywNCgkJCQkvLyBUT0RPOiBTaG91bGQgYmUgY29tcHV0ZWQgZnJvbSBudW1iZXIgb2YgbWluIHdpZHRoIGl0ZW1zIGluIHN0YWdlDQoJCQkJdmlldyA9IE1hdGgubWF4KHNldHRpbmdzLml0ZW1zICogMiwgNCksDQoJCQkJc2l6ZSA9IE1hdGguY2VpbChpdGVtcy5sZW5ndGggLyAyKSAqIDIsDQoJCQkJcmVwZWF0ID0gc2V0dGluZ3MubG9vcCAmJiBpdGVtcy5sZW5ndGggPyBzZXR0aW5ncy5yZXdpbmQgPyB2aWV3IDogTWF0aC5tYXgodmlldywgc2l6ZSkgOiAwLA0KCQkJCWFwcGVuZCA9ICcnLA0KCQkJCXByZXBlbmQgPSAnJzsNCg0KCQkJcmVwZWF0IC89IDI7DQoNCgkJCXdoaWxlIChyZXBlYXQgPiAwKSB7DQoJCQkJLy8gU3dpdGNoIHRvIG9ubHkgdXNpbmcgYXBwZW5kZWQgY2xvbmVzDQoJCQkJY2xvbmVzLnB1c2godGhpcy5ub3JtYWxpemUoY2xvbmVzLmxlbmd0aCAvIDIsIHRydWUpKTsNCgkJCQlhcHBlbmQgPSBhcHBlbmQgKyBpdGVtc1tjbG9uZXNbY2xvbmVzLmxlbmd0aCAtIDFdXVswXS5vdXRlckhUTUw7DQoJCQkJY2xvbmVzLnB1c2godGhpcy5ub3JtYWxpemUoaXRlbXMubGVuZ3RoIC0gMSAtIChjbG9uZXMubGVuZ3RoIC0gMSkgLyAyLCB0cnVlKSk7DQoJCQkJcHJlcGVuZCA9IGl0ZW1zW2Nsb25lc1tjbG9uZXMubGVuZ3RoIC0gMV1dWzBdLm91dGVySFRNTCArIHByZXBlbmQ7DQoJCQkJcmVwZWF0IC09IDE7DQoJCQl9DQoNCgkJCXRoaXMuX2Nsb25lcyA9IGNsb25lczsNCg0KCQkJJChhcHBlbmQpLmFkZENsYXNzKCdjbG9uZWQnKS5hcHBlbmRUbyh0aGlzLiRzdGFnZSk7DQoJCQkkKHByZXBlbmQpLmFkZENsYXNzKCdjbG9uZWQnKS5wcmVwZW5kVG8odGhpcy4kc3RhZ2UpOw0KCQl9DQoJfSwgew0KCQlmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLA0KCQlydW46IGZ1bmN0aW9uKCkgew0KCQkJdmFyIHJ0bCA9IHRoaXMuc2V0dGluZ3MucnRsID8gMSA6IC0xLA0KCQkJCXNpemUgPSB0aGlzLl9jbG9uZXMubGVuZ3RoICsgdGhpcy5faXRlbXMubGVuZ3RoLA0KCQkJCWl0ZXJhdG9yID0gLTEsDQoJCQkJcHJldmlvdXMgPSAwLA0KCQkJCWN1cnJlbnQgPSAwLA0KCQkJCWNvb3JkaW5hdGVzID0gW107DQoNCgkJCXdoaWxlICgrK2l0ZXJhdG9yIDwgc2l6ZSkgew0KCQkJCXByZXZpb3VzID0gY29vcmRpbmF0ZXNbaXRlcmF0b3IgLSAxXSB8fCAwOw0KCQkJCWN1cnJlbnQgPSB0aGlzLl93aWR0aHNbdGhpcy5yZWxhdGl2ZShpdGVyYXRvcildICsgdGhpcy5zZXR0aW5ncy5tYXJnaW47DQoJCQkJY29vcmRpbmF0ZXMucHVzaChwcmV2aW91cyArIGN1cnJlbnQgKiBydGwpOw0KCQkJfQ0KDQoJCQl0aGlzLl9jb29yZGluYXRlcyA9IGNvb3JkaW5hdGVzOw0KCQl9DQoJfSwgew0KCQlmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLA0KCQlydW46IGZ1bmN0aW9uKCkgew0KCQkJdmFyIHBhZGRpbmcgPSB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZywNCgkJCQljb29yZGluYXRlcyA9IHRoaXMuX2Nvb3JkaW5hdGVzLA0KCQkJCWNzcyA9IHsNCgkJCQkJJ3dpZHRoJzogTWF0aC5jZWlsKE1hdGguYWJzKGNvb3JkaW5hdGVzW2Nvb3JkaW5hdGVzLmxlbmd0aCAtIDFdKSkgKyBwYWRkaW5nICogMiwNCgkJCQkJJ3BhZGRpbmctbGVmdCc6IHBhZGRpbmcgfHwgJycsDQoJCQkJCSdwYWRkaW5nLXJpZ2h0JzogcGFkZGluZyB8fCAnJw0KCQkJCX07DQoNCgkJCXRoaXMuJHN0YWdlLmNzcyhjc3MpOw0KCQl9DQoJfSwgew0KCQlmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLA0KCQlydW46IGZ1bmN0aW9uKGNhY2hlKSB7DQoJCQl2YXIgaXRlcmF0b3IgPSB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGgsDQoJCQkJZ3JpZCA9ICF0aGlzLnNldHRpbmdzLmF1dG9XaWR0aCwNCgkJCQlpdGVtcyA9IHRoaXMuJHN0YWdlLmNoaWxkcmVuKCk7DQoNCgkJCWlmIChncmlkICYmIGNhY2hlLml0ZW1zLm1lcmdlKSB7DQoJCQkJd2hpbGUgKGl0ZXJhdG9yLS0pIHsNCgkJCQkJY2FjaGUuY3NzLndpZHRoID0gdGhpcy5fd2lkdGhzW3RoaXMucmVsYXRpdmUoaXRlcmF0b3IpXTsNCgkJCQkJaXRlbXMuZXEoaXRlcmF0b3IpLmNzcyhjYWNoZS5jc3MpOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoZ3JpZCkgew0KCQkJCWNhY2hlLmNzcy53aWR0aCA9IGNhY2hlLml0ZW1zLndpZHRoOw0KCQkJCWl0ZW1zLmNzcyhjYWNoZS5jc3MpOw0KCQkJfQ0KCQl9DQoJfSwgew0KCQlmaWx0ZXI6IFsgJ2l0ZW1zJyBdLA0KCQlydW46IGZ1bmN0aW9uKCkgew0KCQkJdGhpcy5fY29vcmRpbmF0ZXMubGVuZ3RoIDwgMSAmJiB0aGlzLiRzdGFnZS5yZW1vdmVBdHRyKCdzdHlsZScpOw0KCQl9DQoJfSwgew0KCQlmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLA0KCQlydW46IGZ1bmN0aW9uKGNhY2hlKSB7DQoJCQljYWNoZS5jdXJyZW50ID0gY2FjaGUuY3VycmVudCA/IHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuaW5kZXgoY2FjaGUuY3VycmVudCkgOiAwOw0KCQkJY2FjaGUuY3VycmVudCA9IE1hdGgubWF4KHRoaXMubWluaW11bSgpLCBNYXRoLm1pbih0aGlzLm1heGltdW0oKSwgY2FjaGUuY3VycmVudCkpOw0KCQkJdGhpcy5yZXNldChjYWNoZS5jdXJyZW50KTsNCgkJfQ0KCX0sIHsNCgkJZmlsdGVyOiBbICdwb3NpdGlvbicgXSwNCgkJcnVuOiBmdW5jdGlvbigpIHsNCgkJCXRoaXMuYW5pbWF0ZSh0aGlzLmNvb3JkaW5hdGVzKHRoaXMuX2N1cnJlbnQpKTsNCgkJfQ0KCX0sIHsNCgkJZmlsdGVyOiBbICd3aWR0aCcsICdwb3NpdGlvbicsICdpdGVtcycsICdzZXR0aW5ncycgXSwNCgkJcnVuOiBmdW5jdGlvbigpIHsNCgkJCXZhciBydGwgPSB0aGlzLnNldHRpbmdzLnJ0bCA/IDEgOiAtMSwNCgkJCQlwYWRkaW5nID0gdGhpcy5zZXR0aW5ncy5zdGFnZVBhZGRpbmcgKiAyLA0KCQkJCWJlZ2luID0gdGhpcy5jb29yZGluYXRlcyh0aGlzLmN1cnJlbnQoKSkgKyBwYWRkaW5nLA0KCQkJCWVuZCA9IGJlZ2luICsgdGhpcy53aWR0aCgpICogcnRsLA0KCQkJCWlubmVyLCBvdXRlciwgbWF0Y2hlcyA9IFtdLCBpLCBuOw0KDQoJCQlmb3IgKGkgPSAwLCBuID0gdGhpcy5fY29vcmRpbmF0ZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7DQoJCQkJaW5uZXIgPSB0aGlzLl9jb29yZGluYXRlc1tpIC0gMV0gfHwgMDsNCgkJCQlvdXRlciA9IE1hdGguYWJzKHRoaXMuX2Nvb3JkaW5hdGVzW2ldKSArIHBhZGRpbmcgKiBydGw7DQoNCgkJCQlpZiAoKHRoaXMub3AoaW5uZXIsICc8PScsIGJlZ2luKSAmJiAodGhpcy5vcChpbm5lciwgJz4nLCBlbmQpKSkNCgkJCQkJfHwgKHRoaXMub3Aob3V0ZXIsICc8JywgYmVnaW4pICYmIHRoaXMub3Aob3V0ZXIsICc+JywgZW5kKSkpIHsNCgkJCQkJbWF0Y2hlcy5wdXNoKGkpOw0KCQkJCX0NCgkJCX0NCg0KCQkJdGhpcy4kc3RhZ2UuY2hpbGRyZW4oJy5hY3RpdmUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7DQoJCQl0aGlzLiRzdGFnZS5jaGlsZHJlbignOmVxKCcgKyBtYXRjaGVzLmpvaW4oJyksIDplcSgnKSArICcpJykuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KDQoJCQl0aGlzLiRzdGFnZS5jaGlsZHJlbignLmNlbnRlcicpLnJlbW92ZUNsYXNzKCdjZW50ZXInKTsNCgkJCWlmICh0aGlzLnNldHRpbmdzLmNlbnRlcikgew0KCQkJCXRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuZXEodGhpcy5jdXJyZW50KCkpLmFkZENsYXNzKCdjZW50ZXInKTsNCgkJCX0NCgkJfQ0KCX0gXTsNCg0KCS8qKg0KCSAqIENyZWF0ZSB0aGUgc3RhZ2UgRE9NIGVsZW1lbnQNCgkgKi8NCglPd2wucHJvdG90eXBlLmluaXRpYWxpemVTdGFnZSA9IGZ1bmN0aW9uKCkgew0KCQl0aGlzLiRzdGFnZSA9IHRoaXMuJGVsZW1lbnQuZmluZCgnLicgKyB0aGlzLnNldHRpbmdzLnN0YWdlQ2xhc3MpOw0KDQoJCS8vIGlmIHRoZSBzdGFnZSBpcyBhbHJlYWR5IGluIHRoZSBET00sIGdyYWIgaXQgYW5kIHNraXAgc3RhZ2UgaW5pdGlhbGl6YXRpb24NCgkJaWYgKHRoaXMuJHN0YWdlLmxlbmd0aCkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy4kZWxlbWVudC5hZGRDbGFzcyh0aGlzLm9wdGlvbnMubG9hZGluZ0NsYXNzKTsNCg0KCQkvLyBjcmVhdGUgc3RhZ2UNCgkJdGhpcy4kc3RhZ2UgPSAkKCc8JyArIHRoaXMuc2V0dGluZ3Muc3RhZ2VFbGVtZW50ICsgJz4nLCB7DQoJCQkiY2xhc3MiOiB0aGlzLnNldHRpbmdzLnN0YWdlQ2xhc3MNCgkJfSkud3JhcCggJCggJzxkaXYvPicsIHsNCgkJCSJjbGFzcyI6IHRoaXMuc2V0dGluZ3Muc3RhZ2VPdXRlckNsYXNzDQoJCX0pKTsNCg0KCQkvLyBhcHBlbmQgc3RhZ2UNCgkJdGhpcy4kZWxlbWVudC5hcHBlbmQodGhpcy4kc3RhZ2UucGFyZW50KCkpOw0KCX07DQoNCgkvKioNCgkgKiBDcmVhdGUgaXRlbSBET00gZWxlbWVudHMNCgkgKi8NCglPd2wucHJvdG90eXBlLmluaXRpYWxpemVJdGVtcyA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgJGl0ZW1zID0gdGhpcy4kZWxlbWVudC5maW5kKCcub3dsLWl0ZW0nKTsNCg0KCQkvLyBpZiB0aGUgaXRlbXMgYXJlIGFscmVhZHkgaW4gdGhlIERPTSwgZ3JhYiB0aGVtIGFuZCBza2lwIGl0ZW0gaW5pdGlhbGl6YXRpb24NCgkJaWYgKCRpdGVtcy5sZW5ndGgpIHsNCgkJCXRoaXMuX2l0ZW1zID0gJGl0ZW1zLmdldCgpLm1hcChmdW5jdGlvbihpdGVtKSB7DQoJCQkJcmV0dXJuICQoaXRlbSk7DQoJCQl9KTsNCg0KCQkJdGhpcy5fbWVyZ2VycyA9IHRoaXMuX2l0ZW1zLm1hcChmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gMTsNCgkJCX0pOw0KDQoJCQl0aGlzLnJlZnJlc2goKTsNCg0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gYXBwZW5kIGNvbnRlbnQNCgkJdGhpcy5yZXBsYWNlKHRoaXMuJGVsZW1lbnQuY2hpbGRyZW4oKS5ub3QodGhpcy4kc3RhZ2UucGFyZW50KCkpKTsNCg0KCQkvLyBjaGVjayB2aXNpYmlsaXR5DQoJCWlmICh0aGlzLmlzVmlzaWJsZSgpKSB7DQoJCQkvLyB1cGRhdGUgdmlldw0KCQkJdGhpcy5yZWZyZXNoKCk7DQoJCX0gZWxzZSB7DQoJCQkvLyBpbnZhbGlkYXRlIHdpZHRoDQoJCQl0aGlzLmludmFsaWRhdGUoJ3dpZHRoJyk7DQoJCX0NCg0KCQl0aGlzLiRlbGVtZW50DQoJCQkucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRpbmdDbGFzcykNCgkJCS5hZGRDbGFzcyh0aGlzLm9wdGlvbnMubG9hZGVkQ2xhc3MpOw0KCX07DQoNCgkvKioNCgkgKiBJbml0aWFsaXplcyB0aGUgY2Fyb3VzZWwuDQoJICogQHByb3RlY3RlZA0KCSAqLw0KCU93bC5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVudGVyKCdpbml0aWFsaXppbmcnKTsNCgkJdGhpcy50cmlnZ2VyKCdpbml0aWFsaXplJyk7DQoNCgkJdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcyh0aGlzLnNldHRpbmdzLnJ0bENsYXNzLCB0aGlzLnNldHRpbmdzLnJ0bCk7DQoNCgkJaWYgKHRoaXMuc2V0dGluZ3MuYXV0b1dpZHRoICYmICF0aGlzLmlzKCdwcmUtbG9hZGluZycpKSB7DQoJCQl2YXIgaW1ncywgbmVzdGVkU2VsZWN0b3IsIHdpZHRoOw0KCQkJaW1ncyA9IHRoaXMuJGVsZW1lbnQuZmluZCgnaW1nJyk7DQoJCQluZXN0ZWRTZWxlY3RvciA9IHRoaXMuc2V0dGluZ3MubmVzdGVkSXRlbVNlbGVjdG9yID8gJy4nICsgdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IgOiB1bmRlZmluZWQ7DQoJCQl3aWR0aCA9IHRoaXMuJGVsZW1lbnQuY2hpbGRyZW4obmVzdGVkU2VsZWN0b3IpLndpZHRoKCk7DQoNCgkJCWlmIChpbWdzLmxlbmd0aCAmJiB3aWR0aCA8PSAwKSB7DQoJCQkJdGhpcy5wcmVsb2FkQXV0b1dpZHRoSW1hZ2VzKGltZ3MpOw0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5pbml0aWFsaXplU3RhZ2UoKTsNCgkJdGhpcy5pbml0aWFsaXplSXRlbXMoKTsNCg0KCQkvLyByZWdpc3RlciBldmVudCBoYW5kbGVycw0KCQl0aGlzLnJlZ2lzdGVyRXZlbnRIYW5kbGVycygpOw0KDQoJCXRoaXMubGVhdmUoJ2luaXRpYWxpemluZycpOw0KCQl0aGlzLnRyaWdnZXIoJ2luaXRpYWxpemVkJyk7DQoJfTsNCg0KCS8qKg0KCSAqIEByZXR1cm5zIHtCb29sZWFufSB2aXNpYmlsaXR5IG9mICRlbGVtZW50DQoJICogICAgICAgICAgICAgICAgICAgIGlmIHlvdSBrbm93IHRoZSBjYXJvdXNlbCB3aWxsIGFsd2F5cyBiZSB2aXNpYmxlIHlvdSBjYW4gc2V0IGBjaGVja1Zpc2liaWxpdHlgIHRvIGBmYWxzZWAgdG8NCgkgKiAgICAgICAgICAgICAgICAgICAgcHJldmVudCB0aGUgZXhwZW5zaXZlIGJyb3dzZXIgbGF5b3V0IGZvcmNlZCByZWZsb3cgdGhlICRlbGVtZW50LmlzKCc6dmlzaWJsZScpIGRvZXMNCgkgKi8NCglPd2wucHJvdG90eXBlLmlzVmlzaWJsZSA9IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5zZXR0aW5ncy5jaGVja1Zpc2liaWxpdHkNCgkJCT8gdGhpcy4kZWxlbWVudC5pcygnOnZpc2libGUnKQ0KCQkJOiB0cnVlOw0KCX07DQoNCgkvKioNCgkgKiBTZXR1cHMgdGhlIGN1cnJlbnQgc2V0dGluZ3MuDQoJICogQHRvZG8gUmVtb3ZlIHJlc3BvbnNpdmUgY2xhc3Nlcy4gV2h5IHNob3VsZCBhZGFwdGl2ZSBkZXNpZ25zIGJlIGJyb3VnaHQgaW50byBJRTg/DQoJICogQHRvZG8gU3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBieSB1c2luZyBgbWF0Y2hNZWRpYWAgd291bGQgYmUgbmljZS4NCgkgKiBAcHVibGljDQoJICovDQoJT3dsLnByb3RvdHlwZS5zZXR1cCA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgdmlld3BvcnQgPSB0aGlzLnZpZXdwb3J0KCksDQoJCQlvdmVyd3JpdGVzID0gdGhpcy5vcHRpb25zLnJlc3BvbnNpdmUsDQoJCQltYXRjaCA9IC0xLA0KCQkJc2V0dGluZ3MgPSBudWxsOw0KDQoJCWlmICghb3ZlcndyaXRlcykgew0KCQkJc2V0dGluZ3MgPSAkLmV4dGVuZCh7fSwgdGhpcy5vcHRpb25zKTsNCgkJfSBlbHNlIHsNCgkJCSQuZWFjaChvdmVyd3JpdGVzLCBmdW5jdGlvbihicmVha3BvaW50KSB7DQoJCQkJaWYgKGJyZWFrcG9pbnQgPD0gdmlld3BvcnQgJiYgYnJlYWtwb2ludCA+IG1hdGNoKSB7DQoJCQkJCW1hdGNoID0gTnVtYmVyKGJyZWFrcG9pbnQpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCQlzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCB0aGlzLm9wdGlvbnMsIG92ZXJ3cml0ZXNbbWF0Y2hdKTsNCgkJCWlmICh0eXBlb2Ygc2V0dGluZ3Muc3RhZ2VQYWRkaW5nID09PSAnZnVuY3Rpb24nKSB7DQoJCQkJc2V0dGluZ3Muc3RhZ2VQYWRkaW5nID0gc2V0dGluZ3Muc3RhZ2VQYWRkaW5nKCk7DQoJCQl9DQoJCQlkZWxldGUgc2V0dGluZ3MucmVzcG9uc2l2ZTsNCg0KCQkJLy8gcmVzcG9uc2l2ZSBjbGFzcw0KCQkJaWYgKHNldHRpbmdzLnJlc3BvbnNpdmVDbGFzcykgew0KCQkJCXRoaXMuJGVsZW1lbnQuYXR0cignY2xhc3MnLA0KCQkJCQl0aGlzLiRlbGVtZW50LmF0dHIoJ2NsYXNzJykucmVwbGFjZShuZXcgUmVnRXhwKCcoJyArIHRoaXMub3B0aW9ucy5yZXNwb25zaXZlQ2xhc3MgKyAnLSlcXFMrXFxzJywgJ2cnKSwgJyQxJyArIG1hdGNoKQ0KCQkJCSk7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLnRyaWdnZXIoJ2NoYW5nZScsIHsgcHJvcGVydHk6IHsgbmFtZTogJ3NldHRpbmdzJywgdmFsdWU6IHNldHRpbmdzIH0gfSk7DQoJCXRoaXMuX2JyZWFrcG9pbnQgPSBtYXRjaDsNCgkJdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzOw0KCQl0aGlzLmludmFsaWRhdGUoJ3NldHRpbmdzJyk7DQoJCXRoaXMudHJpZ2dlcignY2hhbmdlZCcsIHsgcHJvcGVydHk6IHsgbmFtZTogJ3NldHRpbmdzJywgdmFsdWU6IHRoaXMuc2V0dGluZ3MgfSB9KTsNCgl9Ow0KDQoJLyoqDQoJICogVXBkYXRlcyBvcHRpb24gbG9naWMgaWYgbmVjZXNzZXJ5Lg0KCSAqIEBwcm90ZWN0ZWQNCgkgKi8NCglPd2wucHJvdG90eXBlLm9wdGlvbnNMb2dpYyA9IGZ1bmN0aW9uKCkgew0KCQlpZiAodGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgpIHsNCgkJCXRoaXMuc2V0dGluZ3Muc3RhZ2VQYWRkaW5nID0gZmFsc2U7DQoJCQl0aGlzLnNldHRpbmdzLm1lcmdlID0gZmFsc2U7DQoJCX0NCgl9Ow0KDQoJLyoqDQoJICogUHJlcGFyZXMgYW4gaXRlbSBiZWZvcmUgYWRkLg0KCSAqIEB0b2RvIFJlbmFtZSBldmVudCBwYXJhbWV0ZXIgYGNvbnRlbnRgIHRvIGBpdGVtYC4NCgkgKiBAcHJvdGVjdGVkDQoJICogQHJldHVybnMge2pRdWVyeXxIVE1MRWxlbWVudH0gLSBUaGUgaXRlbSBjb250YWluZXIuDQoJICovDQoJT3dsLnByb3RvdHlwZS5wcmVwYXJlID0gZnVuY3Rpb24oaXRlbSkgew0KCQl2YXIgZXZlbnQgPSB0aGlzLnRyaWdnZXIoJ3ByZXBhcmUnLCB7IGNvbnRlbnQ6IGl0ZW0gfSk7DQoNCgkJaWYgKCFldmVudC5kYXRhKSB7DQoJCQlldmVudC5kYXRhID0gJCgnPCcgKyB0aGlzLnNldHRpbmdzLml0ZW1FbGVtZW50ICsgJy8+JykNCgkJCQkuYWRkQ2xhc3ModGhpcy5vcHRpb25zLml0ZW1DbGFzcykuYXBwZW5kKGl0ZW0pDQoJCX0NCg0KCQl0aGlzLnRyaWdnZXIoJ3ByZXBhcmVkJywgeyBjb250ZW50OiBldmVudC5kYXRhIH0pOw0KDQoJCXJldHVybiBldmVudC5kYXRhOw0KCX07DQoNCgkvKioNCgkgKiBVcGRhdGVzIHRoZSB2aWV3Lg0KCSAqIEBwdWJsaWMNCgkgKi8NCglPd2wucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgaSA9IDAsDQoJCQluID0gdGhpcy5fcGlwZS5sZW5ndGgsDQoJCQlmaWx0ZXIgPSAkLnByb3h5KGZ1bmN0aW9uKHApIHsgcmV0dXJuIHRoaXNbcF0gfSwgdGhpcy5faW52YWxpZGF0ZWQpLA0KCQkJY2FjaGUgPSB7fTsNCg0KCQl3aGlsZSAoaSA8IG4pIHsNCgkJCWlmICh0aGlzLl9pbnZhbGlkYXRlZC5hbGwgfHwgJC5ncmVwKHRoaXMuX3BpcGVbaV0uZmlsdGVyLCBmaWx0ZXIpLmxlbmd0aCA+IDApIHsNCgkJCQl0aGlzLl9waXBlW2ldLnJ1bihjYWNoZSk7DQoJCQl9DQoJCQlpKys7DQoJCX0NCg0KCQl0aGlzLl9pbnZhbGlkYXRlZCA9IHt9Ow0KDQoJCSF0aGlzLmlzKCd2YWxpZCcpICYmIHRoaXMuZW50ZXIoJ3ZhbGlkJyk7DQoJfTsNCg0KCS8qKg0KCSAqIEdldHMgdGhlIHdpZHRoIG9mIHRoZSB2aWV3Lg0KCSAqIEBwdWJsaWMNCgkgKiBAcGFyYW0ge093bC5XaWR0aH0gW2RpbWVuc2lvbj1Pd2wuV2lkdGguRGVmYXVsdF0gLSBUaGUgZGltZW5zaW9uIHRvIHJldHVybi4NCgkgKiBAcmV0dXJucyB7TnVtYmVyfSAtIFRoZSB3aWR0aCBvZiB0aGUgdmlldyBpbiBwaXhlbC4NCgkgKi8NCglPd2wucHJvdG90eXBlLndpZHRoID0gZnVuY3Rpb24oZGltZW5zaW9uKSB7DQoJCWRpbWVuc2lvbiA9IGRpbWVuc2lvbiB8fCBPd2wuV2lkdGguRGVmYXVsdDsNCgkJc3dpdGNoIChkaW1lbnNpb24pIHsNCgkJCWNhc2UgT3dsLldpZHRoLklubmVyOg0KCQkJY2FzZSBPd2wuV2lkdGguT3V0ZXI6DQoJCQkJcmV0dXJuIHRoaXMuX3dpZHRoOw0KCQkJZGVmYXVsdDoNCgkJCQlyZXR1cm4gdGhpcy5fd2lkdGggLSB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZyAqIDIgKyB0aGlzLnNldHRpbmdzLm1hcmdpbjsNCgkJfQ0KCX07DQoNCgkvKioNCgkgKiBSZWZyZXNoZXMgdGhlIGNhcm91c2VsIHByaW1hcmlseSBmb3IgYWRhcHRpdmUgcHVycG9zZXMuDQoJICogQHB1YmxpYw0KCSAqLw0KCU93bC5wcm90b3R5cGUucmVmcmVzaCA9IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVudGVyKCdyZWZyZXNoaW5nJyk7DQoJCXRoaXMudHJpZ2dlcigncmVmcmVzaCcpOw0KDQoJCXRoaXMuc2V0dXAoKTsNCg0KCQl0aGlzLm9wdGlvbnNMb2dpYygpOw0KDQoJCXRoaXMuJGVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLnJlZnJlc2hDbGFzcyk7DQoNCgkJdGhpcy51cGRhdGUoKTsNCg0KCQl0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5yZWZyZXNoQ2xhc3MpOw0KDQoJCXRoaXMubGVhdmUoJ3JlZnJlc2hpbmcnKTsNCgkJdGhpcy50cmlnZ2VyKCdyZWZyZXNoZWQnKTsNCgl9Ow0KDQoJLyoqDQoJICogQ2hlY2tzIHdpbmRvdyBgcmVzaXplYCBldmVudC4NCgkgKiBAcHJvdGVjdGVkDQoJICovDQoJT3dsLnByb3RvdHlwZS5vblRocm90dGxlZFJlc2l6ZSA9IGZ1bmN0aW9uKCkgew0KCQl3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpOw0KCQl0aGlzLnJlc2l6ZVRpbWVyID0gd2luZG93LnNldFRpbWVvdXQodGhpcy5faGFuZGxlcnMub25SZXNpemUsIHRoaXMuc2V0dGluZ3MucmVzcG9uc2l2ZVJlZnJlc2hSYXRlKTsNCgl9Ow0KDQoJLyoqDQoJICogQ2hlY2tzIHdpbmRvdyBgcmVzaXplYCBldmVudC4NCgkgKiBAcHJvdGVjdGVkDQoJICovDQoJT3dsLnByb3RvdHlwZS5vblJlc2l6ZSA9IGZ1bmN0aW9uKCkgew0KCQlpZiAoIXRoaXMuX2l0ZW1zLmxlbmd0aCkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJaWYgKHRoaXMuX3dpZHRoID09PSB0aGlzLiRlbGVtZW50LndpZHRoKCkpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWlmICghdGhpcy5pc1Zpc2libGUoKSkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJdGhpcy5lbnRlcigncmVzaXppbmcnKTsNCg0KCQlpZiAodGhpcy50cmlnZ2VyKCdyZXNpemUnKS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgew0KCQkJdGhpcy5sZWF2ZSgncmVzaXppbmcnKTsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMuaW52YWxpZGF0ZSgnd2lkdGgnKTsNCg0KCQl0aGlzLnJlZnJlc2goKTsNCg0KCQl0aGlzLmxlYXZlKCdyZXNpemluZycpOw0KCQl0aGlzLnRyaWdnZXIoJ3Jlc2l6ZWQnKTsNCgl9Ow0KDQoJLyoqDQoJICogUmVnaXN0ZXJzIGV2ZW50IGhhbmRsZXJzLg0KCSAqIEB0b2RvIENoZWNrIGBtc1BvaW50ZXJFbmFibGVkYA0KCSAqIEB0b2RvICMyNjENCgkgKiBAcHJvdGVjdGVkDQoJICovDQoJT3dsLnByb3RvdHlwZS5yZWdpc3RlckV2ZW50SGFuZGxlcnMgPSBmdW5jdGlvbigpIHsNCgkJaWYgKCQuc3VwcG9ydC50cmFuc2l0aW9uKSB7DQoJCQl0aGlzLiRzdGFnZS5vbigkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQgKyAnLm93bC5jb3JlJywgJC5wcm94eSh0aGlzLm9uVHJhbnNpdGlvbkVuZCwgdGhpcykpOw0KCQl9DQoNCgkJaWYgKHRoaXMuc2V0dGluZ3MucmVzcG9uc2l2ZSAhPT0gZmFsc2UpIHsNCgkJCXRoaXMub24od2luZG93LCAncmVzaXplJywgdGhpcy5faGFuZGxlcnMub25UaHJvdHRsZWRSZXNpemUpOw0KCQl9DQoNCgkJaWYgKHRoaXMuc2V0dGluZ3MubW91c2VEcmFnKSB7DQoJCQl0aGlzLiRlbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5kcmFnQ2xhc3MpOw0KCQkJdGhpcy4kc3RhZ2Uub24oJ21vdXNlZG93bi5vd2wuY29yZScsICQucHJveHkodGhpcy5vbkRyYWdTdGFydCwgdGhpcykpOw0KCQkJdGhpcy4kc3RhZ2Uub24oJ2RyYWdzdGFydC5vd2wuY29yZSBzZWxlY3RzdGFydC5vd2wuY29yZScsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2UgfSk7DQoJCX0NCg0KCQlpZiAodGhpcy5zZXR0aW5ncy50b3VjaERyYWcpew0KCQkJdGhpcy4kc3RhZ2Uub24oJ3RvdWNoc3RhcnQub3dsLmNvcmUnLCAkLnByb3h5KHRoaXMub25EcmFnU3RhcnQsIHRoaXMpKTsNCgkJCXRoaXMuJHN0YWdlLm9uKCd0b3VjaGNhbmNlbC5vd2wuY29yZScsICQucHJveHkodGhpcy5vbkRyYWdFbmQsIHRoaXMpKTsNCgkJfQ0KCX07DQoNCgkvKioNCgkgKiBIYW5kbGVzIGB0b3VjaHN0YXJ0YCBhbmQgYG1vdXNlZG93bmAgZXZlbnRzLg0KCSAqIEB0b2RvIEhvcml6b250YWwgc3dpcGUgdGhyZXNob2xkIGFzIG9wdGlvbg0KCSAqIEB0b2RvICMyNjENCgkgKiBAcHJvdGVjdGVkDQoJICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgYXJndW1lbnRzLg0KCSAqLw0KCU93bC5wcm90b3R5cGUub25EcmFnU3RhcnQgPSBmdW5jdGlvbihldmVudCkgew0KCQl2YXIgc3RhZ2UgPSBudWxsOw0KDQoJCWlmIChldmVudC53aGljaCA9PT0gMykgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCQuc3VwcG9ydC50cmFuc2Zvcm0pIHsNCgkJCXN0YWdlID0gdGhpcy4kc3RhZ2UuY3NzKCd0cmFuc2Zvcm0nKS5yZXBsYWNlKC8uKlwofFwpfCAvZywgJycpLnNwbGl0KCcsJyk7DQoJCQlzdGFnZSA9IHsNCgkJCQl4OiBzdGFnZVtzdGFnZS5sZW5ndGggPT09IDE2ID8gMTIgOiA0XSwNCgkJCQl5OiBzdGFnZVtzdGFnZS5sZW5ndGggPT09IDE2ID8gMTMgOiA1XQ0KCQkJfTsNCgkJfSBlbHNlIHsNCgkJCXN0YWdlID0gdGhpcy4kc3RhZ2UucG9zaXRpb24oKTsNCgkJCXN0YWdlID0gew0KCQkJCXg6IHRoaXMuc2V0dGluZ3MucnRsID8NCgkJCQkJc3RhZ2UubGVmdCArIHRoaXMuJHN0YWdlLndpZHRoKCkgLSB0aGlzLndpZHRoKCkgKyB0aGlzLnNldHRpbmdzLm1hcmdpbiA6DQoJCQkJCXN0YWdlLmxlZnQsDQoJCQkJeTogc3RhZ2UudG9wDQoJCQl9Ow0KCQl9DQoNCgkJaWYgKHRoaXMuaXMoJ2FuaW1hdGluZycpKSB7DQoJCQkkLnN1cHBvcnQudHJhbnNmb3JtID8gdGhpcy5hbmltYXRlKHN0YWdlLngpIDogdGhpcy4kc3RhZ2Uuc3RvcCgpDQoJCQl0aGlzLmludmFsaWRhdGUoJ3Bvc2l0aW9uJyk7DQoJCX0NCg0KCQl0aGlzLiRlbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMub3B0aW9ucy5ncmFiQ2xhc3MsIGV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nKTsNCg0KCQl0aGlzLnNwZWVkKDApOw0KDQoJCXRoaXMuX2RyYWcudGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KCQl0aGlzLl9kcmFnLnRhcmdldCA9ICQoZXZlbnQudGFyZ2V0KTsNCgkJdGhpcy5fZHJhZy5zdGFnZS5zdGFydCA9IHN0YWdlOw0KCQl0aGlzLl9kcmFnLnN0YWdlLmN1cnJlbnQgPSBzdGFnZTsNCgkJdGhpcy5fZHJhZy5wb2ludGVyID0gdGhpcy5wb2ludGVyKGV2ZW50KTsNCg0KCQkkKGRvY3VtZW50KS5vbignbW91c2V1cC5vd2wuY29yZSB0b3VjaGVuZC5vd2wuY29yZScsICQucHJveHkodGhpcy5vbkRyYWdFbmQsIHRoaXMpKTsNCg0KCQkkKGRvY3VtZW50KS5vbmUoJ21vdXNlbW92ZS5vd2wuY29yZSB0b3VjaG1vdmUub3dsLmNvcmUnLCAkLnByb3h5KGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQl2YXIgZGVsdGEgPSB0aGlzLmRpZmZlcmVuY2UodGhpcy5fZHJhZy5wb2ludGVyLCB0aGlzLnBvaW50ZXIoZXZlbnQpKTsNCg0KCQkJJChkb2N1bWVudCkub24oJ21vdXNlbW92ZS5vd2wuY29yZSB0b3VjaG1vdmUub3dsLmNvcmUnLCAkLnByb3h5KHRoaXMub25EcmFnTW92ZSwgdGhpcykpOw0KDQoJCQlpZiAoTWF0aC5hYnMoZGVsdGEueCkgPCBNYXRoLmFicyhkZWx0YS55KSAmJiB0aGlzLmlzKCd2YWxpZCcpKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KDQoJCQl0aGlzLmVudGVyKCdkcmFnZ2luZycpOw0KCQkJdGhpcy50cmlnZ2VyKCdkcmFnJyk7DQoJCX0sIHRoaXMpKTsNCgl9Ow0KDQoJLyoqDQoJICogSGFuZGxlcyB0aGUgYHRvdWNobW92ZWAgYW5kIGBtb3VzZW1vdmVgIGV2ZW50cy4NCgkgKiBAdG9kbyAjMjYxDQoJICogQHByb3RlY3RlZA0KCSAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy4NCgkgKi8NCglPd2wucHJvdG90eXBlLm9uRHJhZ01vdmUgPSBmdW5jdGlvbihldmVudCkgew0KCQl2YXIgbWluaW11bSA9IG51bGwsDQoJCQltYXhpbXVtID0gbnVsbCwNCgkJCXB1bGwgPSBudWxsLA0KCQkJZGVsdGEgPSB0aGlzLmRpZmZlcmVuY2UodGhpcy5fZHJhZy5wb2ludGVyLCB0aGlzLnBvaW50ZXIoZXZlbnQpKSwNCgkJCXN0YWdlID0gdGhpcy5kaWZmZXJlbmNlKHRoaXMuX2RyYWcuc3RhZ2Uuc3RhcnQsIGRlbHRhKTsNCg0KCQlpZiAoIXRoaXMuaXMoJ2RyYWdnaW5nJykpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCgkJaWYgKHRoaXMuc2V0dGluZ3MubG9vcCkgew0KCQkJbWluaW11bSA9IHRoaXMuY29vcmRpbmF0ZXModGhpcy5taW5pbXVtKCkpOw0KCQkJbWF4aW11bSA9IHRoaXMuY29vcmRpbmF0ZXModGhpcy5tYXhpbXVtKCkgKyAxKSAtIG1pbmltdW07DQoJCQlzdGFnZS54ID0gKCgoc3RhZ2UueCAtIG1pbmltdW0pICUgbWF4aW11bSArIG1heGltdW0pICUgbWF4aW11bSkgKyBtaW5pbXVtOw0KCQl9IGVsc2Ugew0KCQkJbWluaW11bSA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1heGltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWluaW11bSgpKTsNCgkJCW1heGltdW0gPSB0aGlzLnNldHRpbmdzLnJ0bCA/IHRoaXMuY29vcmRpbmF0ZXModGhpcy5taW5pbXVtKCkpIDogdGhpcy5jb29yZGluYXRlcyh0aGlzLm1heGltdW0oKSk7DQoJCQlwdWxsID0gdGhpcy5zZXR0aW5ncy5wdWxsRHJhZyA/IC0xICogZGVsdGEueCAvIDUgOiAwOw0KCQkJc3RhZ2UueCA9IE1hdGgubWF4KE1hdGgubWluKHN0YWdlLngsIG1pbmltdW0gKyBwdWxsKSwgbWF4aW11bSArIHB1bGwpOw0KCQl9DQoNCgkJdGhpcy5fZHJhZy5zdGFnZS5jdXJyZW50ID0gc3RhZ2U7DQoNCgkJdGhpcy5hbmltYXRlKHN0YWdlLngpOw0KCX07DQoNCgkvKioNCgkgKiBIYW5kbGVzIHRoZSBgdG91Y2hlbmRgIGFuZCBgbW91c2V1cGAgZXZlbnRzLg0KCSAqIEB0b2RvICMyNjENCgkgKiBAdG9kbyBUaHJlc2hvbGQgZm9yIGNsaWNrIGV2ZW50DQoJICogQHByb3RlY3RlZA0KCSAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy4NCgkgKi8NCglPd2wucHJvdG90eXBlLm9uRHJhZ0VuZCA9IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciBkZWx0YSA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnBvaW50ZXIsIHRoaXMucG9pbnRlcihldmVudCkpLA0KCQkJc3RhZ2UgPSB0aGlzLl9kcmFnLnN0YWdlLmN1cnJlbnQsDQoJCQlkaXJlY3Rpb24gPSBkZWx0YS54ID4gMCBeIHRoaXMuc2V0dGluZ3MucnRsID8gJ2xlZnQnIDogJ3JpZ2h0JzsNCg0KCQkkKGRvY3VtZW50KS5vZmYoJy5vd2wuY29yZScpOw0KDQoJCXRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmdyYWJDbGFzcyk7DQoNCgkJaWYgKGRlbHRhLnggIT09IDAgJiYgdGhpcy5pcygnZHJhZ2dpbmcnKSB8fCAhdGhpcy5pcygndmFsaWQnKSkgew0KCQkJdGhpcy5zcGVlZCh0aGlzLnNldHRpbmdzLmRyYWdFbmRTcGVlZCB8fCB0aGlzLnNldHRpbmdzLnNtYXJ0U3BlZWQpOw0KCQkJdGhpcy5jdXJyZW50KHRoaXMuY2xvc2VzdChzdGFnZS54LCBkZWx0YS54ICE9PSAwID8gZGlyZWN0aW9uIDogdGhpcy5fZHJhZy5kaXJlY3Rpb24pKTsNCgkJCXRoaXMuaW52YWxpZGF0ZSgncG9zaXRpb24nKTsNCgkJCXRoaXMudXBkYXRlKCk7DQoNCgkJCXRoaXMuX2RyYWcuZGlyZWN0aW9uID0gZGlyZWN0aW9uOw0KDQoJCQlpZiAoTWF0aC5hYnMoZGVsdGEueCkgPiAzIHx8IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy5fZHJhZy50aW1lID4gMzAwKSB7DQoJCQkJdGhpcy5fZHJhZy50YXJnZXQub25lKCdjbGljay5vd2wuY29yZScsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0pOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCF0aGlzLmlzKCdkcmFnZ2luZycpKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLmxlYXZlKCdkcmFnZ2luZycpOw0KCQl0aGlzLnRyaWdnZXIoJ2RyYWdnZWQnKTsNCgl9Ow0KDQoJLyoqDQoJICogR2V0cyBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY2xvc2VzdCBpdGVtIGZvciBhIGNvb3JkaW5hdGUuDQoJICogQHRvZG8gU2V0dGluZyBgZnJlZURyYWdgIG1ha2VzIGBjbG9zZXN0YCBub3QgcmV1c2FibGUuIFNlZSAjMTY1Lg0KCSAqIEBwcm90ZWN0ZWQNCgkgKiBAcGFyYW0ge051bWJlcn0gY29vcmRpbmF0ZSAtIFRoZSBjb29yZGluYXRlIGluIHBpeGVsLg0KCSAqIEBwYXJhbSB7U3RyaW5nfSBkaXJlY3Rpb24gLSBUaGUgZGlyZWN0aW9uIHRvIGNoZWNrIGZvciB0aGUgY2xvc2VzdCBpdGVtLiBFdGhlciBgbGVmdGAgb3IgYHJpZ2h0YC4NCgkgKiBAcmV0dXJuIHtOdW1iZXJ9IC0gVGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjbG9zZXN0IGl0ZW0uDQoJICovDQoJT3dsLnByb3RvdHlwZS5jbG9zZXN0ID0gZnVuY3Rpb24oY29vcmRpbmF0ZSwgZGlyZWN0aW9uKSB7DQoJCXZhciBwb3NpdGlvbiA9IC0xLA0KCQkJcHVsbCA9IDMwLA0KCQkJd2lkdGggPSB0aGlzLndpZHRoKCksDQoJCQljb29yZGluYXRlcyA9IHRoaXMuY29vcmRpbmF0ZXMoKTsNCg0KCQlpZiAoIXRoaXMuc2V0dGluZ3MuZnJlZURyYWcpIHsNCgkJCS8vIGNoZWNrIGNsb3Nlc3QgaXRlbQ0KCQkJJC5lYWNoKGNvb3JkaW5hdGVzLCAkLnByb3h5KGZ1bmN0aW9uKGluZGV4LCB2YWx1ZSkgew0KCQkJCS8vIG9uIGEgbGVmdCBwdWxsLCBjaGVjayBvbiBjdXJyZW50IGluZGV4DQoJCQkJaWYgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnICYmIGNvb3JkaW5hdGUgPiB2YWx1ZSAtIHB1bGwgJiYgY29vcmRpbmF0ZSA8IHZhbHVlICsgcHVsbCkgew0KCQkJCQlwb3NpdGlvbiA9IGluZGV4Ow0KCQkJCS8vIG9uIGEgcmlnaHQgcHVsbCwgY2hlY2sgb24gcHJldmlvdXMgaW5kZXgNCgkJCQkvLyB0byBkbyBzbywgc3VidHJhY3Qgd2lkdGggZnJvbSB2YWx1ZSBhbmQgc2V0IHBvc2l0aW9uID0gaW5kZXggKyAxDQoJCQkJfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdyaWdodCcgJiYgY29vcmRpbmF0ZSA+IHZhbHVlIC0gd2lkdGggLSBwdWxsICYmIGNvb3JkaW5hdGUgPCB2YWx1ZSAtIHdpZHRoICsgcHVsbCkgew0KCQkJCQlwb3NpdGlvbiA9IGluZGV4ICsgMTsNCgkJCQl9IGVsc2UgaWYgKHRoaXMub3AoY29vcmRpbmF0ZSwgJzwnLCB2YWx1ZSkNCgkJCQkJJiYgdGhpcy5vcChjb29yZGluYXRlLCAnPicsIGNvb3JkaW5hdGVzW2luZGV4ICsgMV0gIT09IHVuZGVmaW5lZCA/IGNvb3JkaW5hdGVzW2luZGV4ICsgMV0gOiB2YWx1ZSAtIHdpZHRoKSkgew0KCQkJCQlwb3NpdGlvbiA9IGRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gaW5kZXggKyAxIDogaW5kZXg7DQoJCQkJfQ0KCQkJCXJldHVybiBwb3NpdGlvbiA9PT0gLTE7DQoJCQl9LCB0aGlzKSk7DQoJCX0NCg0KCQlpZiAoIXRoaXMuc2V0dGluZ3MubG9vcCkgew0KCQkJLy8gbm9uIGxvb3AgYm91bmRyaWVzDQoJCQlpZiAodGhpcy5vcChjb29yZGluYXRlLCAnPicsIGNvb3JkaW5hdGVzW3RoaXMubWluaW11bSgpXSkpIHsNCgkJCQlwb3NpdGlvbiA9IGNvb3JkaW5hdGUgPSB0aGlzLm1pbmltdW0oKTsNCgkJCX0gZWxzZSBpZiAodGhpcy5vcChjb29yZGluYXRlLCAnPCcsIGNvb3JkaW5hdGVzW3RoaXMubWF4aW11bSgpXSkpIHsNCgkJCQlwb3NpdGlvbiA9IGNvb3JkaW5hdGUgPSB0aGlzLm1heGltdW0oKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBwb3NpdGlvbjsNCgl9Ow0KDQoJLyoqDQoJICogQW5pbWF0ZXMgdGhlIHN0YWdlLg0KCSAqIEB0b2RvICMyNzANCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtOdW1iZXJ9IGNvb3JkaW5hdGUgLSBUaGUgY29vcmRpbmF0ZSBpbiBwaXhlbHMuDQoJICovDQoJT3dsLnByb3RvdHlwZS5hbmltYXRlID0gZnVuY3Rpb24oY29vcmRpbmF0ZSkgew0KCQl2YXIgYW5pbWF0ZSA9IHRoaXMuc3BlZWQoKSA+IDA7DQoNCgkJdGhpcy5pcygnYW5pbWF0aW5nJykgJiYgdGhpcy5vblRyYW5zaXRpb25FbmQoKTsNCg0KCQlpZiAoYW5pbWF0ZSkgew0KCQkJdGhpcy5lbnRlcignYW5pbWF0aW5nJyk7DQoJCQl0aGlzLnRyaWdnZXIoJ3RyYW5zbGF0ZScpOw0KCQl9DQoNCgkJaWYgKCQuc3VwcG9ydC50cmFuc2Zvcm0zZCAmJiAkLnN1cHBvcnQudHJhbnNpdGlvbikgew0KCQkJdGhpcy4kc3RhZ2UuY3NzKHsNCgkJCQl0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgnICsgY29vcmRpbmF0ZSArICdweCwwcHgsMHB4KScsDQoJCQkJdHJhbnNpdGlvbjogKHRoaXMuc3BlZWQoKSAvIDEwMDApICsgJ3MnICsgKA0KCQkJCQl0aGlzLnNldHRpbmdzLnNsaWRlVHJhbnNpdGlvbiA/ICcgJyArIHRoaXMuc2V0dGluZ3Muc2xpZGVUcmFuc2l0aW9uIDogJycNCgkJCQkpDQoJCQl9KTsNCgkJfSBlbHNlIGlmIChhbmltYXRlKSB7DQoJCQl0aGlzLiRzdGFnZS5hbmltYXRlKHsNCgkJCQlsZWZ0OiBjb29yZGluYXRlICsgJ3B4Jw0KCQkJfSwgdGhpcy5zcGVlZCgpLCB0aGlzLnNldHRpbmdzLmZhbGxiYWNrRWFzaW5nLCAkLnByb3h5KHRoaXMub25UcmFuc2l0aW9uRW5kLCB0aGlzKSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLiRzdGFnZS5jc3Moew0KCQkJCWxlZnQ6IGNvb3JkaW5hdGUgKyAncHgnDQoJCQl9KTsNCgkJfQ0KCX07DQoNCgkvKioNCgkgKiBDaGVja3Mgd2hldGhlciB0aGUgY2Fyb3VzZWwgaXMgaW4gYSBzcGVjaWZpYyBzdGF0ZSBvciBub3QuDQoJICogQHBhcmFtIHtTdHJpbmd9IHN0YXRlIC0gVGhlIHN0YXRlIHRvIGNoZWNrLg0KCSAqIEByZXR1cm5zIHtCb29sZWFufSAtIFRoZSBmbGFnIHdoaWNoIGluZGljYXRlcyBpZiB0aGUgY2Fyb3VzZWwgaXMgYnVzeS4NCgkgKi8NCglPd2wucHJvdG90eXBlLmlzID0gZnVuY3Rpb24oc3RhdGUpIHsNCgkJcmV0dXJuIHRoaXMuX3N0YXRlcy5jdXJyZW50W3N0YXRlXSAmJiB0aGlzLl9zdGF0ZXMuY3VycmVudFtzdGF0ZV0gPiAwOw0KCX07DQoNCgkvKioNCgkgKiBTZXRzIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpdGVtLg0KCSAqIEBwdWJsaWMNCgkgKiBAcGFyYW0ge051bWJlcn0gW3Bvc2l0aW9uXSAtIFRoZSBuZXcgYWJzb2x1dGUgcG9zaXRpb24gb3Igbm90aGluZyB0byBsZWF2ZSBpdCB1bmNoYW5nZWQuDQoJICogQHJldHVybnMge051bWJlcn0gLSBUaGUgYWJzb2x1dGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaXRlbS4NCgkgKi8NCglPd2wucHJvdG90eXBlLmN1cnJlbnQgPSBmdW5jdGlvbihwb3NpdGlvbikgew0KCQlpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgew0KCQkJcmV0dXJuIHRoaXMuX2N1cnJlbnQ7DQoJCX0NCg0KCQlpZiAodGhpcy5faXRlbXMubGVuZ3RoID09PSAwKSB7DQoJCQlyZXR1cm4gdW5kZWZpbmVkOw0KCQl9DQoNCgkJcG9zaXRpb24gPSB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbik7DQoNCgkJaWYgKHRoaXMuX2N1cnJlbnQgIT09IHBvc2l0aW9uKSB7DQoJCQl2YXIgZXZlbnQgPSB0aGlzLnRyaWdnZXIoJ2NoYW5nZScsIHsgcHJvcGVydHk6IHsgbmFtZTogJ3Bvc2l0aW9uJywgdmFsdWU6IHBvc2l0aW9uIH0gfSk7DQoNCgkJCWlmIChldmVudC5kYXRhICE9PSB1bmRlZmluZWQpIHsNCgkJCQlwb3NpdGlvbiA9IHRoaXMubm9ybWFsaXplKGV2ZW50LmRhdGEpOw0KCQkJfQ0KDQoJCQl0aGlzLl9jdXJyZW50ID0gcG9zaXRpb247DQoNCgkJCXRoaXMuaW52YWxpZGF0ZSgncG9zaXRpb24nKTsNCg0KCQkJdGhpcy50cmlnZ2VyKCdjaGFuZ2VkJywgeyBwcm9wZXJ0eTogeyBuYW1lOiAncG9zaXRpb24nLCB2YWx1ZTogdGhpcy5fY3VycmVudCB9IH0pOw0KCQl9DQoNCgkJcmV0dXJuIHRoaXMuX2N1cnJlbnQ7DQoJfTsNCg0KCS8qKg0KCSAqIEludmFsaWRhdGVzIHRoZSBnaXZlbiBwYXJ0IG9mIHRoZSB1cGRhdGUgcm91dGluZS4NCgkgKiBAcGFyYW0ge1N0cmluZ30gW3BhcnRdIC0gVGhlIHBhcnQgdG8gaW52YWxpZGF0ZS4NCgkgKiBAcmV0dXJucyB7QXJyYXkuPFN0cmluZz59IC0gVGhlIGludmFsaWRhdGVkIHBhcnRzLg0KCSAqLw0KCU93bC5wcm90b3R5cGUuaW52YWxpZGF0ZSA9IGZ1bmN0aW9uKHBhcnQpIHsNCgkJaWYgKCQudHlwZShwYXJ0KSA9PT0gJ3N0cmluZycpIHsNCgkJCXRoaXMuX2ludmFsaWRhdGVkW3BhcnRdID0gdHJ1ZTsNCgkJCXRoaXMuaXMoJ3ZhbGlkJykgJiYgdGhpcy5sZWF2ZSgndmFsaWQnKTsNCgkJfQ0KCQlyZXR1cm4gJC5tYXAodGhpcy5faW52YWxpZGF0ZWQsIGZ1bmN0aW9uKHYsIGkpIHsgcmV0dXJuIGkgfSk7DQoJfTsNCg0KCS8qKg0KCSAqIFJlc2V0cyB0aGUgYWJzb2x1dGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaXRlbS4NCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtOdW1iZXJ9IHBvc2l0aW9uIC0gVGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBuZXcgaXRlbS4NCgkgKi8NCglPd2wucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24ocG9zaXRpb24pIHsNCgkJcG9zaXRpb24gPSB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbik7DQoNCgkJaWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX3NwZWVkID0gMDsNCgkJdGhpcy5fY3VycmVudCA9IHBvc2l0aW9uOw0KDQoJCXRoaXMuc3VwcHJlc3MoWyAndHJhbnNsYXRlJywgJ3RyYW5zbGF0ZWQnIF0pOw0KDQoJCXRoaXMuYW5pbWF0ZSh0aGlzLmNvb3JkaW5hdGVzKHBvc2l0aW9uKSk7DQoNCgkJdGhpcy5yZWxlYXNlKFsgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGVkJyBdKTsNCgl9Ow0KDQoJLyoqDQoJICogTm9ybWFsaXplcyBhbiBhYnNvbHV0ZSBvciBhIHJlbGF0aXZlIHBvc2l0aW9uIG9mIGFuIGl0ZW0uDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwb3NpdGlvbiB0byBub3JtYWxpemUuDQoJICogQHBhcmFtIHtCb29sZWFufSBbcmVsYXRpdmU9ZmFsc2VdIC0gV2hldGhlciB0aGUgZ2l2ZW4gcG9zaXRpb24gaXMgcmVsYXRpdmUgb3Igbm90Lg0KCSAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gVGhlIG5vcm1hbGl6ZWQgcG9zaXRpb24uDQoJICovDQoJT3dsLnByb3RvdHlwZS5ub3JtYWxpemUgPSBmdW5jdGlvbihwb3NpdGlvbiwgcmVsYXRpdmUpIHsNCgkJdmFyIG4gPSB0aGlzLl9pdGVtcy5sZW5ndGgsDQoJCQltID0gcmVsYXRpdmUgPyAwIDogdGhpcy5fY2xvbmVzLmxlbmd0aDsNCg0KCQlpZiAoIXRoaXMuaXNOdW1lcmljKHBvc2l0aW9uKSB8fCBuIDwgMSkgew0KCQkJcG9zaXRpb24gPSB1bmRlZmluZWQ7DQoJCX0gZWxzZSBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49IG4gKyBtKSB7DQoJCQlwb3NpdGlvbiA9ICgocG9zaXRpb24gLSBtIC8gMikgJSBuICsgbikgJSBuICsgbSAvIDI7DQoJCX0NCg0KCQlyZXR1cm4gcG9zaXRpb247DQoJfTsNCg0KCS8qKg0KCSAqIENvbnZlcnRzIGFuIGFic29sdXRlIHBvc2l0aW9uIG9mIGFuIGl0ZW0gaW50byBhIHJlbGF0aXZlIG9uZS4NCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtOdW1iZXJ9IHBvc2l0aW9uIC0gVGhlIGFic29sdXRlIHBvc2l0aW9uIHRvIGNvbnZlcnQuDQoJICogQHJldHVybnMge051bWJlcn0gLSBUaGUgY29udmVydGVkIHBvc2l0aW9uLg0KCSAqLw0KCU93bC5wcm90b3R5cGUucmVsYXRpdmUgPSBmdW5jdGlvbihwb3NpdGlvbikgew0KCQlwb3NpdGlvbiAtPSB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMjsNCgkJcmV0dXJuIHRoaXMubm9ybWFsaXplKHBvc2l0aW9uLCB0cnVlKTsNCgl9Ow0KDQoJLyoqDQoJICogR2V0cyB0aGUgbWF4aW11bSBwb3NpdGlvbiBmb3IgdGhlIGN1cnJlbnQgaXRlbS4NCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtCb29sZWFufSBbcmVsYXRpdmU9ZmFsc2VdIC0gV2hldGhlciB0byByZXR1cm4gYW4gYWJzb2x1dGUgcG9zaXRpb24gb3IgYSByZWxhdGl2ZSBwb3NpdGlvbi4NCgkgKiBAcmV0dXJucyB7TnVtYmVyfQ0KCSAqLw0KCU93bC5wcm90b3R5cGUubWF4aW11bSA9IGZ1bmN0aW9uKHJlbGF0aXZlKSB7DQoJCXZhciBzZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3MsDQoJCQltYXhpbXVtID0gdGhpcy5fY29vcmRpbmF0ZXMubGVuZ3RoLA0KCQkJaXRlcmF0b3IsDQoJCQlyZWNpcHJvY2FsSXRlbXNXaWR0aCwNCgkJCWVsZW1lbnRXaWR0aDsNCg0KCQlpZiAoc2V0dGluZ3MubG9vcCkgew0KCQkJbWF4aW11bSA9IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyICsgdGhpcy5faXRlbXMubGVuZ3RoIC0gMTsNCgkJfSBlbHNlIGlmIChzZXR0aW5ncy5hdXRvV2lkdGggfHwgc2V0dGluZ3MubWVyZ2UpIHsNCgkJCWl0ZXJhdG9yID0gdGhpcy5faXRlbXMubGVuZ3RoOw0KCQkJaWYgKGl0ZXJhdG9yKSB7DQoJCQkJcmVjaXByb2NhbEl0ZW1zV2lkdGggPSB0aGlzLl9pdGVtc1stLWl0ZXJhdG9yXS53aWR0aCgpOw0KCQkJCWVsZW1lbnRXaWR0aCA9IHRoaXMuJGVsZW1lbnQud2lkdGgoKTsNCgkJCQl3aGlsZSAoaXRlcmF0b3ItLSkgew0KCQkJCQlyZWNpcHJvY2FsSXRlbXNXaWR0aCArPSB0aGlzLl9pdGVtc1tpdGVyYXRvcl0ud2lkdGgoKSArIHRoaXMuc2V0dGluZ3MubWFyZ2luOw0KCQkJCQlpZiAocmVjaXByb2NhbEl0ZW1zV2lkdGggPiBlbGVtZW50V2lkdGgpIHsNCgkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJbWF4aW11bSA9IGl0ZXJhdG9yICsgMTsNCgkJfSBlbHNlIGlmIChzZXR0aW5ncy5jZW50ZXIpIHsNCgkJCW1heGltdW0gPSB0aGlzLl9pdGVtcy5sZW5ndGggLSAxOw0KCQl9IGVsc2Ugew0KCQkJbWF4aW11bSA9IHRoaXMuX2l0ZW1zLmxlbmd0aCAtIHNldHRpbmdzLml0ZW1zOw0KCQl9DQoNCgkJaWYgKHJlbGF0aXZlKSB7DQoJCQltYXhpbXVtIC09IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyOw0KCQl9DQoNCgkJcmV0dXJuIE1hdGgubWF4KG1heGltdW0sIDApOw0KCX07DQoNCgkvKioNCgkgKiBHZXRzIHRoZSBtaW5pbXVtIHBvc2l0aW9uIGZvciB0aGUgY3VycmVudCBpdGVtLg0KCSAqIEBwdWJsaWMNCgkgKiBAcGFyYW0ge0Jvb2xlYW59IFtyZWxhdGl2ZT1mYWxzZV0gLSBXaGV0aGVyIHRvIHJldHVybiBhbiBhYnNvbHV0ZSBwb3NpdGlvbiBvciBhIHJlbGF0aXZlIHBvc2l0aW9uLg0KCSAqIEByZXR1cm5zIHtOdW1iZXJ9DQoJICovDQoJT3dsLnByb3RvdHlwZS5taW5pbXVtID0gZnVuY3Rpb24ocmVsYXRpdmUpIHsNCgkJcmV0dXJuIHJlbGF0aXZlID8gMCA6IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyOw0KCX07DQoNCgkvKioNCgkgKiBHZXRzIGFuIGl0ZW0gYXQgdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBwb3NpdGlvbi4NCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtOdW1iZXJ9IFtwb3NpdGlvbl0gLSBUaGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIGl0ZW0uDQoJICogQHJldHVybiB7alF1ZXJ5fEFycmF5LjxqUXVlcnk+fSAtIFRoZSBpdGVtIGF0IHRoZSBnaXZlbiBwb3NpdGlvbiBvciBhbGwgaXRlbXMgaWYgbm8gcG9zaXRpb24gd2FzIGdpdmVuLg0KCSAqLw0KCU93bC5wcm90b3R5cGUuaXRlbXMgPSBmdW5jdGlvbihwb3NpdGlvbikgew0KCQlpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgew0KCQkJcmV0dXJuIHRoaXMuX2l0ZW1zLnNsaWNlKCk7DQoJCX0NCg0KCQlwb3NpdGlvbiA9IHRoaXMubm9ybWFsaXplKHBvc2l0aW9uLCB0cnVlKTsNCgkJcmV0dXJuIHRoaXMuX2l0ZW1zW3Bvc2l0aW9uXTsNCgl9Ow0KDQoJLyoqDQoJICogR2V0cyBhbiBpdGVtIGF0IHRoZSBzcGVjaWZpZWQgcmVsYXRpdmUgcG9zaXRpb24uDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7TnVtYmVyfSBbcG9zaXRpb25dIC0gVGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBpdGVtLg0KCSAqIEByZXR1cm4ge2pRdWVyeXxBcnJheS48alF1ZXJ5Pn0gLSBUaGUgaXRlbSBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24gb3IgYWxsIGl0ZW1zIGlmIG5vIHBvc2l0aW9uIHdhcyBnaXZlbi4NCgkgKi8NCglPd2wucHJvdG90eXBlLm1lcmdlcnMgPSBmdW5jdGlvbihwb3NpdGlvbikgew0KCQlpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgew0KCQkJcmV0dXJuIHRoaXMuX21lcmdlcnMuc2xpY2UoKTsNCgkJfQ0KDQoJCXBvc2l0aW9uID0gdGhpcy5ub3JtYWxpemUocG9zaXRpb24sIHRydWUpOw0KCQlyZXR1cm4gdGhpcy5fbWVyZ2Vyc1twb3NpdGlvbl07DQoJfTsNCg0KCS8qKg0KCSAqIEdldHMgdGhlIGFic29sdXRlIHBvc2l0aW9ucyBvZiBjbG9uZXMgZm9yIGFuIGl0ZW0uDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7TnVtYmVyfSBbcG9zaXRpb25dIC0gVGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBpdGVtLg0KCSAqIEByZXR1cm5zIHtBcnJheS48TnVtYmVyPn0gLSBUaGUgYWJzb2x1dGUgcG9zaXRpb25zIG9mIGNsb25lcyBmb3IgdGhlIGl0ZW0gb3IgYWxsIGlmIG5vIHBvc2l0aW9uIHdhcyBnaXZlbi4NCgkgKi8NCglPd2wucHJvdG90eXBlLmNsb25lcyA9IGZ1bmN0aW9uKHBvc2l0aW9uKSB7DQoJCXZhciBvZGQgPSB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMiwNCgkJCWV2ZW4gPSBvZGQgKyB0aGlzLl9pdGVtcy5sZW5ndGgsDQoJCQltYXAgPSBmdW5jdGlvbihpbmRleCkgeyByZXR1cm4gaW5kZXggJSAyID09PSAwID8gZXZlbiArIGluZGV4IC8gMiA6IG9kZCAtIChpbmRleCArIDEpIC8gMiB9Ow0KDQoJCWlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7DQoJCQlyZXR1cm4gJC5tYXAodGhpcy5fY2xvbmVzLCBmdW5jdGlvbih2LCBpKSB7IHJldHVybiBtYXAoaSkgfSk7DQoJCX0NCg0KCQlyZXR1cm4gJC5tYXAodGhpcy5fY2xvbmVzLCBmdW5jdGlvbih2LCBpKSB7IHJldHVybiB2ID09PSBwb3NpdGlvbiA/IG1hcChpKSA6IG51bGwgfSk7DQoJfTsNCg0KCS8qKg0KCSAqIFNldHMgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIHNwZWVkLg0KCSAqIEBwdWJsaWMNCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSBhbmltYXRpb24gc3BlZWQgaW4gbWlsbGlzZWNvbmRzIG9yIG5vdGhpbmcgdG8gbGVhdmUgaXQgdW5jaGFuZ2VkLg0KCSAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gVGhlIGN1cnJlbnQgYW5pbWF0aW9uIHNwZWVkIGluIG1pbGxpc2Vjb25kcy4NCgkgKi8NCglPd2wucHJvdG90eXBlLnNwZWVkID0gZnVuY3Rpb24oc3BlZWQpIHsNCgkJaWYgKHNwZWVkICE9PSB1bmRlZmluZWQpIHsNCgkJCXRoaXMuX3NwZWVkID0gc3BlZWQ7DQoJCX0NCg0KCQlyZXR1cm4gdGhpcy5fc3BlZWQ7DQoJfTsNCg0KCS8qKg0KCSAqIEdldHMgdGhlIGNvb3JkaW5hdGUgb2YgYW4gaXRlbS4NCgkgKiBAdG9kbyBUaGUgbmFtZSBvZiB0aGlzIG1ldGhvZCBpcyBtaXNzbGVhbmRpbmcuDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgaXRlbSB3aXRoaW4gYG1pbmltdW0oKWAgYW5kIGBtYXhpbXVtKClgLg0KCSAqIEByZXR1cm5zIHtOdW1iZXJ8QXJyYXkuPE51bWJlcj59IC0gVGhlIGNvb3JkaW5hdGUgb2YgdGhlIGl0ZW0gaW4gcGl4ZWwgb3IgYWxsIGNvb3JkaW5hdGVzLg0KCSAqLw0KCU93bC5wcm90b3R5cGUuY29vcmRpbmF0ZXMgPSBmdW5jdGlvbihwb3NpdGlvbikgew0KCQl2YXIgbXVsdGlwbGllciA9IDEsDQoJCQluZXdQb3NpdGlvbiA9IHBvc2l0aW9uIC0gMSwNCgkJCWNvb3JkaW5hdGU7DQoNCgkJaWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQpIHsNCgkJCXJldHVybiAkLm1hcCh0aGlzLl9jb29yZGluYXRlcywgJC5wcm94eShmdW5jdGlvbihjb29yZGluYXRlLCBpbmRleCkgew0KCQkJCXJldHVybiB0aGlzLmNvb3JkaW5hdGVzKGluZGV4KTsNCgkJCX0sIHRoaXMpKTsNCgkJfQ0KDQoJCWlmICh0aGlzLnNldHRpbmdzLmNlbnRlcikgew0KCQkJaWYgKHRoaXMuc2V0dGluZ3MucnRsKSB7DQoJCQkJbXVsdGlwbGllciA9IC0xOw0KCQkJCW5ld1Bvc2l0aW9uID0gcG9zaXRpb24gKyAxOw0KCQkJfQ0KDQoJCQljb29yZGluYXRlID0gdGhpcy5fY29vcmRpbmF0ZXNbcG9zaXRpb25dOw0KCQkJY29vcmRpbmF0ZSArPSAodGhpcy53aWR0aCgpIC0gY29vcmRpbmF0ZSArICh0aGlzLl9jb29yZGluYXRlc1tuZXdQb3NpdGlvbl0gfHwgMCkpIC8gMiAqIG11bHRpcGxpZXI7DQoJCX0gZWxzZSB7DQoJCQljb29yZGluYXRlID0gdGhpcy5fY29vcmRpbmF0ZXNbbmV3UG9zaXRpb25dIHx8IDA7DQoJCX0NCg0KCQljb29yZGluYXRlID0gTWF0aC5jZWlsKGNvb3JkaW5hdGUpOw0KDQoJCXJldHVybiBjb29yZGluYXRlOw0KCX07DQoNCgkvKioNCgkgKiBDYWxjdWxhdGVzIHRoZSBzcGVlZCBmb3IgYSB0cmFuc2xhdGlvbi4NCgkgKiBAcHJvdGVjdGVkDQoJICogQHBhcmFtIHtOdW1iZXJ9IGZyb20gLSBUaGUgYWJzb2x1dGUgcG9zaXRpb24gb2YgdGhlIHN0YXJ0IGl0ZW0uDQoJICogQHBhcmFtIHtOdW1iZXJ9IHRvIC0gVGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbS4NCgkgKiBAcGFyYW0ge051bWJlcn0gW2ZhY3Rvcj11bmRlZmluZWRdIC0gVGhlIHRpbWUgZmFjdG9yIGluIG1pbGxpc2Vjb25kcy4NCgkgKiBAcmV0dXJucyB7TnVtYmVyfSAtIFRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgdGhlIHRyYW5zbGF0aW9uLg0KCSAqLw0KCU93bC5wcm90b3R5cGUuZHVyYXRpb24gPSBmdW5jdGlvbihmcm9tLCB0bywgZmFjdG9yKSB7DQoJCWlmIChmYWN0b3IgPT09IDApIHsNCgkJCXJldHVybiAwOw0KCQl9DQoNCgkJcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KE1hdGguYWJzKHRvIC0gZnJvbSksIDEpLCA2KSAqIE1hdGguYWJzKChmYWN0b3IgfHwgdGhpcy5zZXR0aW5ncy5zbWFydFNwZWVkKSk7DQoJfTsNCg0KCS8qKg0KCSAqIFNsaWRlcyB0byB0aGUgc3BlY2lmaWVkIGl0ZW0uDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiBvZiB0aGUgaXRlbS4NCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgdGhlIHRyYW5zaXRpb24uDQoJICovDQoJT3dsLnByb3RvdHlwZS50byA9IGZ1bmN0aW9uKHBvc2l0aW9uLCBzcGVlZCkgew0KCQl2YXIgY3VycmVudCA9IHRoaXMuY3VycmVudCgpLA0KCQkJcmV2ZXJ0ID0gbnVsbCwNCgkJCWRpc3RhbmNlID0gcG9zaXRpb24gLSB0aGlzLnJlbGF0aXZlKGN1cnJlbnQpLA0KCQkJZGlyZWN0aW9uID0gKGRpc3RhbmNlID4gMCkgLSAoZGlzdGFuY2UgPCAwKSwNCgkJCWl0ZW1zID0gdGhpcy5faXRlbXMubGVuZ3RoLA0KCQkJbWluaW11bSA9IHRoaXMubWluaW11bSgpLA0KCQkJbWF4aW11bSA9IHRoaXMubWF4aW11bSgpOw0KDQoJCWlmICh0aGlzLnNldHRpbmdzLmxvb3ApIHsNCgkJCWlmICghdGhpcy5zZXR0aW5ncy5yZXdpbmQgJiYgTWF0aC5hYnMoZGlzdGFuY2UpID4gaXRlbXMgLyAyKSB7DQoJCQkJZGlzdGFuY2UgKz0gZGlyZWN0aW9uICogLTEgKiBpdGVtczsNCgkJCX0NCg0KCQkJcG9zaXRpb24gPSBjdXJyZW50ICsgZGlzdGFuY2U7DQoJCQlyZXZlcnQgPSAoKHBvc2l0aW9uIC0gbWluaW11bSkgJSBpdGVtcyArIGl0ZW1zKSAlIGl0ZW1zICsgbWluaW11bTsNCg0KCQkJaWYgKHJldmVydCAhPT0gcG9zaXRpb24gJiYgcmV2ZXJ0IC0gZGlzdGFuY2UgPD0gbWF4aW11bSAmJiByZXZlcnQgLSBkaXN0YW5jZSA+IDApIHsNCgkJCQljdXJyZW50ID0gcmV2ZXJ0IC0gZGlzdGFuY2U7DQoJCQkJcG9zaXRpb24gPSByZXZlcnQ7DQoJCQkJdGhpcy5yZXNldChjdXJyZW50KTsNCgkJCX0NCgkJfSBlbHNlIGlmICh0aGlzLnNldHRpbmdzLnJld2luZCkgew0KCQkJbWF4aW11bSArPSAxOw0KCQkJcG9zaXRpb24gPSAocG9zaXRpb24gJSBtYXhpbXVtICsgbWF4aW11bSkgJSBtYXhpbXVtOw0KCQl9IGVsc2Ugew0KCQkJcG9zaXRpb24gPSBNYXRoLm1heChtaW5pbXVtLCBNYXRoLm1pbihtYXhpbXVtLCBwb3NpdGlvbikpOw0KCQl9DQoNCgkJdGhpcy5zcGVlZCh0aGlzLmR1cmF0aW9uKGN1cnJlbnQsIHBvc2l0aW9uLCBzcGVlZCkpOw0KCQl0aGlzLmN1cnJlbnQocG9zaXRpb24pOw0KDQoJCWlmICh0aGlzLmlzVmlzaWJsZSgpKSB7DQoJCQl0aGlzLnVwZGF0ZSgpOw0KCQl9DQoJfTsNCg0KCS8qKg0KCSAqIFNsaWRlcyB0byB0aGUgbmV4dCBpdGVtLg0KCSAqIEBwdWJsaWMNCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgdGhlIHRyYW5zaXRpb24uDQoJICovDQoJT3dsLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24oc3BlZWQpIHsNCgkJc3BlZWQgPSBzcGVlZCB8fCBmYWxzZTsNCgkJdGhpcy50byh0aGlzLnJlbGF0aXZlKHRoaXMuY3VycmVudCgpKSArIDEsIHNwZWVkKTsNCgl9Ow0KDQoJLyoqDQoJICogU2xpZGVzIHRvIHRoZSBwcmV2aW91cyBpdGVtLg0KCSAqIEBwdWJsaWMNCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgdGhlIHRyYW5zaXRpb24uDQoJICovDQoJT3dsLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24oc3BlZWQpIHsNCgkJc3BlZWQgPSBzcGVlZCB8fCBmYWxzZTsNCgkJdGhpcy50byh0aGlzLnJlbGF0aXZlKHRoaXMuY3VycmVudCgpKSAtIDEsIHNwZWVkKTsNCgl9Ow0KDQoJLyoqDQoJICogSGFuZGxlcyB0aGUgZW5kIG9mIGFuIGFuaW1hdGlvbi4NCgkgKiBAcHJvdGVjdGVkDQoJICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgYXJndW1lbnRzLg0KCSAqLw0KCU93bC5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kID0gZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQkvLyBpZiBjc3MyIGFuaW1hdGlvbiB0aGVuIGV2ZW50IG9iamVjdCBpcyB1bmRlZmluZWQNCgkJaWYgKGV2ZW50ICE9PSB1bmRlZmluZWQpIHsNCgkJCWV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KDQoJCQkvLyBDYXRjaCBvbmx5IG93bC1zdGFnZSB0cmFuc2l0aW9uRW5kIGV2ZW50DQoJCQlpZiAoKGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50IHx8IGV2ZW50Lm9yaWdpbmFsVGFyZ2V0KSAhPT0gdGhpcy4kc3RhZ2UuZ2V0KDApKSB7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5sZWF2ZSgnYW5pbWF0aW5nJyk7DQoJCXRoaXMudHJpZ2dlcigndHJhbnNsYXRlZCcpOw0KCX07DQoNCgkvKioNCgkgKiBHZXRzIHZpZXdwb3J0IHdpZHRoLg0KCSAqIEBwcm90ZWN0ZWQNCgkgKiBAcmV0dXJuIHtOdW1iZXJ9IC0gVGhlIHdpZHRoIGluIHBpeGVsLg0KCSAqLw0KCU93bC5wcm90b3R5cGUudmlld3BvcnQgPSBmdW5jdGlvbigpIHsNCgkJdmFyIHdpZHRoOw0KCQlpZiAodGhpcy5vcHRpb25zLnJlc3BvbnNpdmVCYXNlRWxlbWVudCAhPT0gd2luZG93KSB7DQoJCQl3aWR0aCA9ICQodGhpcy5vcHRpb25zLnJlc3BvbnNpdmVCYXNlRWxlbWVudCkud2lkdGgoKTsNCgkJfSBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCkgew0KCQkJd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsNCgkJfSBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSB7DQoJCQl3aWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsNCgkJfSBlbHNlIHsNCgkJCWNvbnNvbGUud2FybignQ2FuIG5vdCBkZXRlY3Qgdmlld3BvcnQgd2lkdGguJyk7DQoJCX0NCgkJcmV0dXJuIHdpZHRoOw0KCX07DQoNCgkvKioNCgkgKiBSZXBsYWNlcyB0aGUgY3VycmVudCBjb250ZW50Lg0KCSAqIEBwdWJsaWMNCgkgKiBAcGFyYW0ge0hUTUxFbGVtZW50fGpRdWVyeXxTdHJpbmd9IGNvbnRlbnQgLSBUaGUgbmV3IGNvbnRlbnQuDQoJICovDQoJT3dsLnByb3RvdHlwZS5yZXBsYWNlID0gZnVuY3Rpb24oY29udGVudCkgew0KCQl0aGlzLiRzdGFnZS5lbXB0eSgpOw0KCQl0aGlzLl9pdGVtcyA9IFtdOw0KDQoJCWlmIChjb250ZW50KSB7DQoJCQljb250ZW50ID0gKGNvbnRlbnQgaW5zdGFuY2VvZiBqUXVlcnkpID8gY29udGVudCA6ICQoY29udGVudCk7DQoJCX0NCg0KCQlpZiAodGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IpIHsNCgkJCWNvbnRlbnQgPSBjb250ZW50LmZpbmQoJy4nICsgdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IpOw0KCQl9DQoNCgkJY29udGVudC5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gdGhpcy5ub2RlVHlwZSA9PT0gMTsNCgkJfSkuZWFjaCgkLnByb3h5KGZ1bmN0aW9uKGluZGV4LCBpdGVtKSB7DQoJCQlpdGVtID0gdGhpcy5wcmVwYXJlKGl0ZW0pOw0KCQkJdGhpcy4kc3RhZ2UuYXBwZW5kKGl0ZW0pOw0KCQkJdGhpcy5faXRlbXMucHVzaChpdGVtKTsNCgkJCXRoaXMuX21lcmdlcnMucHVzaChpdGVtLmZpbmQoJ1tkYXRhLW1lcmdlXScpLmFkZEJhY2soJ1tkYXRhLW1lcmdlXScpLmF0dHIoJ2RhdGEtbWVyZ2UnKSAqIDEgfHwgMSk7DQoJCX0sIHRoaXMpKTsNCg0KCQl0aGlzLnJlc2V0KHRoaXMuaXNOdW1lcmljKHRoaXMuc2V0dGluZ3Muc3RhcnRQb3NpdGlvbikgPyB0aGlzLnNldHRpbmdzLnN0YXJ0UG9zaXRpb24gOiAwKTsNCg0KCQl0aGlzLmludmFsaWRhdGUoJ2l0ZW1zJyk7DQoJfTsNCg0KCS8qKg0KCSAqIEFkZHMgYW4gaXRlbS4NCgkgKiBAdG9kbyBVc2UgYGl0ZW1gIGluc3RlYWQgb2YgYGNvbnRlbnRgIGZvciB0aGUgZXZlbnQgYXJndW1lbnRzLg0KCSAqIEBwdWJsaWMNCgkgKiBAcGFyYW0ge0hUTUxFbGVtZW50fGpRdWVyeXxTdHJpbmd9IGNvbnRlbnQgLSBUaGUgaXRlbSBjb250ZW50IHRvIGFkZC4NCgkgKiBAcGFyYW0ge051bWJlcn0gW3Bvc2l0aW9uXSAtIFRoZSByZWxhdGl2ZSBwb3NpdGlvbiBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGl0ZW0gb3RoZXJ3aXNlIHRoZSBpdGVtIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGVuZC4NCgkgKi8NCglPd2wucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKGNvbnRlbnQsIHBvc2l0aW9uKSB7DQoJCXZhciBjdXJyZW50ID0gdGhpcy5yZWxhdGl2ZSh0aGlzLl9jdXJyZW50KTsNCg0KCQlwb3NpdGlvbiA9IHBvc2l0aW9uID09PSB1bmRlZmluZWQgPyB0aGlzLl9pdGVtcy5sZW5ndGggOiB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbiwgdHJ1ZSk7DQoJCWNvbnRlbnQgPSBjb250ZW50IGluc3RhbmNlb2YgalF1ZXJ5ID8gY29udGVudCA6ICQoY29udGVudCk7DQoNCgkJdGhpcy50cmlnZ2VyKCdhZGQnLCB7IGNvbnRlbnQ6IGNvbnRlbnQsIHBvc2l0aW9uOiBwb3NpdGlvbiB9KTsNCg0KCQljb250ZW50ID0gdGhpcy5wcmVwYXJlKGNvbnRlbnQpOw0KDQoJCWlmICh0aGlzLl9pdGVtcy5sZW5ndGggPT09IDAgfHwgcG9zaXRpb24gPT09IHRoaXMuX2l0ZW1zLmxlbmd0aCkgew0KCQkJdGhpcy5faXRlbXMubGVuZ3RoID09PSAwICYmIHRoaXMuJHN0YWdlLmFwcGVuZChjb250ZW50KTsNCgkJCXRoaXMuX2l0ZW1zLmxlbmd0aCAhPT0gMCAmJiB0aGlzLl9pdGVtc1twb3NpdGlvbiAtIDFdLmFmdGVyKGNvbnRlbnQpOw0KCQkJdGhpcy5faXRlbXMucHVzaChjb250ZW50KTsNCgkJCXRoaXMuX21lcmdlcnMucHVzaChjb250ZW50LmZpbmQoJ1tkYXRhLW1lcmdlXScpLmFkZEJhY2soJ1tkYXRhLW1lcmdlXScpLmF0dHIoJ2RhdGEtbWVyZ2UnKSAqIDEgfHwgMSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLl9pdGVtc1twb3NpdGlvbl0uYmVmb3JlKGNvbnRlbnQpOw0KCQkJdGhpcy5faXRlbXMuc3BsaWNlKHBvc2l0aW9uLCAwLCBjb250ZW50KTsNCgkJCXRoaXMuX21lcmdlcnMuc3BsaWNlKHBvc2l0aW9uLCAwLCBjb250ZW50LmZpbmQoJ1tkYXRhLW1lcmdlXScpLmFkZEJhY2soJ1tkYXRhLW1lcmdlXScpLmF0dHIoJ2RhdGEtbWVyZ2UnKSAqIDEgfHwgMSk7DQoJCX0NCg0KCQl0aGlzLl9pdGVtc1tjdXJyZW50XSAmJiB0aGlzLnJlc2V0KHRoaXMuX2l0ZW1zW2N1cnJlbnRdLmluZGV4KCkpOw0KDQoJCXRoaXMuaW52YWxpZGF0ZSgnaXRlbXMnKTsNCg0KCQl0aGlzLnRyaWdnZXIoJ2FkZGVkJywgeyBjb250ZW50OiBjb250ZW50LCBwb3NpdGlvbjogcG9zaXRpb24gfSk7DQoJfTsNCg0KCS8qKg0KCSAqIFJlbW92ZXMgYW4gaXRlbSBieSBpdHMgcG9zaXRpb24uDQoJICogQHRvZG8gVXNlIGBpdGVtYCBpbnN0ZWFkIG9mIGBjb250ZW50YCBmb3IgdGhlIGV2ZW50IGFyZ3VtZW50cy4NCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtOdW1iZXJ9IHBvc2l0aW9uIC0gVGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIHRvIHJlbW92ZS4NCgkgKi8NCglPd2wucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKHBvc2l0aW9uKSB7DQoJCXBvc2l0aW9uID0gdGhpcy5ub3JtYWxpemUocG9zaXRpb24sIHRydWUpOw0KDQoJCWlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLnRyaWdnZXIoJ3JlbW92ZScsIHsgY29udGVudDogdGhpcy5faXRlbXNbcG9zaXRpb25dLCBwb3NpdGlvbjogcG9zaXRpb24gfSk7DQoNCgkJdGhpcy5faXRlbXNbcG9zaXRpb25dLnJlbW92ZSgpOw0KCQl0aGlzLl9pdGVtcy5zcGxpY2UocG9zaXRpb24sIDEpOw0KCQl0aGlzLl9tZXJnZXJzLnNwbGljZShwb3NpdGlvbiwgMSk7DQoNCgkJdGhpcy5pbnZhbGlkYXRlKCdpdGVtcycpOw0KDQoJCXRoaXMudHJpZ2dlcigncmVtb3ZlZCcsIHsgY29udGVudDogbnVsbCwgcG9zaXRpb246IHBvc2l0aW9uIH0pOw0KCX07DQoNCgkvKioNCgkgKiBQcmVsb2FkcyBpbWFnZXMgd2l0aCBhdXRvIHdpZHRoLg0KCSAqIEB0b2RvIFJlcGxhY2UgYnkgYSBtb3JlIGdlbmVyaWMgYXBwcm9hY2gNCgkgKiBAcHJvdGVjdGVkDQoJICovDQoJT3dsLnByb3RvdHlwZS5wcmVsb2FkQXV0b1dpZHRoSW1hZ2VzID0gZnVuY3Rpb24oaW1hZ2VzKSB7DQoJCWltYWdlcy5lYWNoKCQucHJveHkoZnVuY3Rpb24oaSwgZWxlbWVudCkgew0KCQkJdGhpcy5lbnRlcigncHJlLWxvYWRpbmcnKTsNCgkJCWVsZW1lbnQgPSAkKGVsZW1lbnQpOw0KCQkJJChuZXcgSW1hZ2UoKSkub25lKCdsb2FkJywgJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJZWxlbWVudC5hdHRyKCdzcmMnLCBlLnRhcmdldC5zcmMpOw0KCQkJCWVsZW1lbnQuY3NzKCdvcGFjaXR5JywgMSk7DQoJCQkJdGhpcy5sZWF2ZSgncHJlLWxvYWRpbmcnKTsNCgkJCQkhdGhpcy5pcygncHJlLWxvYWRpbmcnKSAmJiAhdGhpcy5pcygnaW5pdGlhbGl6aW5nJykgJiYgdGhpcy5yZWZyZXNoKCk7DQoJCQl9LCB0aGlzKSkuYXR0cignc3JjJywgZWxlbWVudC5hdHRyKCdzcmMnKSB8fCBlbGVtZW50LmF0dHIoJ2RhdGEtc3JjJykgfHwgZWxlbWVudC5hdHRyKCdkYXRhLXNyYy1yZXRpbmEnKSk7DQoJCX0sIHRoaXMpKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVzdHJveXMgdGhlIGNhcm91c2VsLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglPd2wucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHsNCg0KCQl0aGlzLiRlbGVtZW50Lm9mZignLm93bC5jb3JlJyk7DQoJCXRoaXMuJHN0YWdlLm9mZignLm93bC5jb3JlJyk7DQoJCSQoZG9jdW1lbnQpLm9mZignLm93bC5jb3JlJyk7DQoNCgkJaWYgKHRoaXMuc2V0dGluZ3MucmVzcG9uc2l2ZSAhPT0gZmFsc2UpIHsNCgkJCXdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7DQoJCQl0aGlzLm9mZih3aW5kb3csICdyZXNpemUnLCB0aGlzLl9oYW5kbGVycy5vblRocm90dGxlZFJlc2l6ZSk7DQoJCX0NCg0KCQlmb3IgKHZhciBpIGluIHRoaXMuX3BsdWdpbnMpIHsNCgkJCXRoaXMuX3BsdWdpbnNbaV0uZGVzdHJveSgpOw0KCQl9DQoNCgkJdGhpcy4kc3RhZ2UuY2hpbGRyZW4oJy5jbG9uZWQnKS5yZW1vdmUoKTsNCg0KCQl0aGlzLiRzdGFnZS51bndyYXAoKTsNCgkJdGhpcy4kc3RhZ2UuY2hpbGRyZW4oKS5jb250ZW50cygpLnVud3JhcCgpOw0KCQl0aGlzLiRzdGFnZS5jaGlsZHJlbigpLnVud3JhcCgpOw0KCQl0aGlzLiRzdGFnZS5yZW1vdmUoKTsNCgkJdGhpcy4kZWxlbWVudA0KCQkJLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5yZWZyZXNoQ2xhc3MpDQoJCQkucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRpbmdDbGFzcykNCgkJCS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMubG9hZGVkQ2xhc3MpDQoJCQkucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLnJ0bENsYXNzKQ0KCQkJLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5kcmFnQ2xhc3MpDQoJCQkucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmdyYWJDbGFzcykNCgkJCS5hdHRyKCdjbGFzcycsIHRoaXMuJGVsZW1lbnQuYXR0cignY2xhc3MnKS5yZXBsYWNlKG5ldyBSZWdFeHAodGhpcy5vcHRpb25zLnJlc3BvbnNpdmVDbGFzcyArICctXFxTK1xccycsICdnJyksICcnKSkNCgkJCS5yZW1vdmVEYXRhKCdvd2wuY2Fyb3VzZWwnKTsNCgl9Ow0KDQoJLyoqDQoJICogT3BlcmF0b3JzIHRvIGNhbGN1bGF0ZSByaWdodC10by1sZWZ0IGFuZCBsZWZ0LXRvLXJpZ2h0Lg0KCSAqIEBwcm90ZWN0ZWQNCgkgKiBAcGFyYW0ge051bWJlcn0gW2FdIC0gVGhlIGxlZnQgc2lkZSBvcGVyYW5kLg0KCSAqIEBwYXJhbSB7U3RyaW5nfSBbb10gLSBUaGUgb3BlcmF0b3IuDQoJICogQHBhcmFtIHtOdW1iZXJ9IFtiXSAtIFRoZSByaWdodCBzaWRlIG9wZXJhbmQuDQoJICovDQoJT3dsLnByb3RvdHlwZS5vcCA9IGZ1bmN0aW9uKGEsIG8sIGIpIHsNCgkJdmFyIHJ0bCA9IHRoaXMuc2V0dGluZ3MucnRsOw0KCQlzd2l0Y2ggKG8pIHsNCgkJCWNhc2UgJzwnOg0KCQkJCXJldHVybiBydGwgPyBhID4gYiA6IGEgPCBiOw0KCQkJY2FzZSAnPic6DQoJCQkJcmV0dXJuIHJ0bCA/IGEgPCBiIDogYSA+IGI7DQoJCQljYXNlICc+PSc6DQoJCQkJcmV0dXJuIHJ0bCA/IGEgPD0gYiA6IGEgPj0gYjsNCgkJCWNhc2UgJzw9JzoNCgkJCQlyZXR1cm4gcnRsID8gYSA+PSBiIDogYSA8PSBiOw0KCQkJZGVmYXVsdDoNCgkJCQlicmVhazsNCgkJfQ0KCX07DQoNCgkvKioNCgkgKiBBdHRhY2hlcyB0byBhbiBpbnRlcm5hbCBldmVudC4NCgkgKiBAcHJvdGVjdGVkDQoJICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBldmVudCBzb3VyY2UuDQoJICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50IC0gVGhlIGV2ZW50IG5hbWUuDQoJICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXIgLSBUaGUgZXZlbnQgaGFuZGxlciB0byBhdHRhY2guDQoJICogQHBhcmFtIHtCb29sZWFufSBjYXB0dXJlIC0gV2V0aGVyIHRoZSBldmVudCBzaG91bGQgYmUgaGFuZGxlZCBhdCB0aGUgY2FwdHVyaW5nIHBoYXNlIG9yIG5vdC4NCgkgKi8NCglPd2wucHJvdG90eXBlLm9uID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGxpc3RlbmVyLCBjYXB0dXJlKSB7DQoJCWlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsNCgkJCWVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbGlzdGVuZXIsIGNhcHR1cmUpOw0KCQl9IGVsc2UgaWYgKGVsZW1lbnQuYXR0YWNoRXZlbnQpIHsNCgkJCWVsZW1lbnQuYXR0YWNoRXZlbnQoJ29uJyArIGV2ZW50LCBsaXN0ZW5lcik7DQoJCX0NCgl9Ow0KDQoJLyoqDQoJICogRGV0YWNoZXMgZnJvbSBhbiBpbnRlcm5hbCBldmVudC4NCgkgKiBAcHJvdGVjdGVkDQoJICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBldmVudCBzb3VyY2UuDQoJICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50IC0gVGhlIGV2ZW50IG5hbWUuDQoJICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXIgLSBUaGUgYXR0YWNoZWQgZXZlbnQgaGFuZGxlciB0byBkZXRhY2guDQoJICogQHBhcmFtIHtCb29sZWFufSBjYXB0dXJlIC0gV2V0aGVyIHRoZSBhdHRhY2hlZCBldmVudCBoYW5kbGVyIHdhcyByZWdpc3RlcmVkIGFzIGEgY2FwdHVyaW5nIGxpc3RlbmVyIG9yIG5vdC4NCgkgKi8NCglPd2wucHJvdG90eXBlLm9mZiA9IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50LCBsaXN0ZW5lciwgY2FwdHVyZSkgew0KCQlpZiAoZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKSB7DQoJCQllbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyLCBjYXB0dXJlKTsNCgkJfSBlbHNlIGlmIChlbGVtZW50LmRldGFjaEV2ZW50KSB7DQoJCQllbGVtZW50LmRldGFjaEV2ZW50KCdvbicgKyBldmVudCwgbGlzdGVuZXIpOw0KCQl9DQoJfTsNCg0KCS8qKg0KCSAqIFRyaWdnZXJzIGEgcHVibGljIGV2ZW50Lg0KCSAqIEB0b2RvIFJlbW92ZSBgc3RhdHVzYCwgYHJlbGF0ZWRUYXJnZXRgIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuDQoJICogQHByb3RlY3RlZA0KCSAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIC0gVGhlIGV2ZW50IG5hbWUuDQoJICogQHBhcmFtIHsqfSBbZGF0YT1udWxsXSAtIFRoZSBldmVudCBkYXRhLg0KCSAqIEBwYXJhbSB7U3RyaW5nfSBbbmFtZXNwYWNlPWNhcm91c2VsXSAtIFRoZSBldmVudCBuYW1lc3BhY2UuDQoJICogQHBhcmFtIHtTdHJpbmd9IFtzdGF0ZV0gLSBUaGUgc3RhdGUgd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudC4NCgkgKiBAcGFyYW0ge0Jvb2xlYW59IFtlbnRlcj1mYWxzZV0gLSBJbmRpY2F0ZXMgaWYgdGhlIGNhbGwgZW50ZXJzIHRoZSBzcGVjaWZpZWQgc3RhdGUgb3Igbm90Lg0KCSAqIEByZXR1cm5zIHtFdmVudH0gLSBUaGUgZXZlbnQgYXJndW1lbnRzLg0KCSAqLw0KCU93bC5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uKG5hbWUsIGRhdGEsIG5hbWVzcGFjZSwgc3RhdGUsIGVudGVyKSB7DQoJCXZhciBzdGF0dXMgPSB7DQoJCQlpdGVtOiB7IGNvdW50OiB0aGlzLl9pdGVtcy5sZW5ndGgsIGluZGV4OiB0aGlzLmN1cnJlbnQoKSB9DQoJCX0sIGhhbmRsZXIgPSAkLmNhbWVsQ2FzZSgNCgkJCSQuZ3JlcChbICdvbicsIG5hbWUsIG5hbWVzcGFjZSBdLCBmdW5jdGlvbih2KSB7IHJldHVybiB2IH0pDQoJCQkJLmpvaW4oJy0nKS50b0xvd2VyQ2FzZSgpDQoJCSksIGV2ZW50ID0gJC5FdmVudCgNCgkJCVsgbmFtZSwgJ293bCcsIG5hbWVzcGFjZSB8fCAnY2Fyb3VzZWwnIF0uam9pbignLicpLnRvTG93ZXJDYXNlKCksDQoJCQkkLmV4dGVuZCh7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfSwgc3RhdHVzLCBkYXRhKQ0KCQkpOw0KDQoJCWlmICghdGhpcy5fc3VwcmVzc1tuYW1lXSkgew0KCQkJJC5lYWNoKHRoaXMuX3BsdWdpbnMsIGZ1bmN0aW9uKG5hbWUsIHBsdWdpbikgew0KCQkJCWlmIChwbHVnaW4ub25UcmlnZ2VyKSB7DQoJCQkJCXBsdWdpbi5vblRyaWdnZXIoZXZlbnQpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCQl0aGlzLnJlZ2lzdGVyKHsgdHlwZTogT3dsLlR5cGUuRXZlbnQsIG5hbWU6IG5hbWUgfSk7DQoJCQl0aGlzLiRlbGVtZW50LnRyaWdnZXIoZXZlbnQpOw0KDQoJCQlpZiAodGhpcy5zZXR0aW5ncyAmJiB0eXBlb2YgdGhpcy5zZXR0aW5nc1toYW5kbGVyXSA9PT0gJ2Z1bmN0aW9uJykgew0KCQkJCXRoaXMuc2V0dGluZ3NbaGFuZGxlcl0uY2FsbCh0aGlzLCBldmVudCk7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gZXZlbnQ7DQoJfTsNCg0KCS8qKg0KCSAqIEVudGVycyBhIHN0YXRlLg0KCSAqIEBwYXJhbSBuYW1lIC0gVGhlIHN0YXRlIG5hbWUuDQoJICovDQoJT3dsLnByb3RvdHlwZS5lbnRlciA9IGZ1bmN0aW9uKG5hbWUpIHsNCgkJJC5lYWNoKFsgbmFtZSBdLmNvbmNhdCh0aGlzLl9zdGF0ZXMudGFnc1tuYW1lXSB8fCBbXSksICQucHJveHkoZnVuY3Rpb24oaSwgbmFtZSkgew0KCQkJaWYgKHRoaXMuX3N0YXRlcy5jdXJyZW50W25hbWVdID09PSB1bmRlZmluZWQpIHsNCgkJCQl0aGlzLl9zdGF0ZXMuY3VycmVudFtuYW1lXSA9IDA7DQoJCQl9DQoNCgkJCXRoaXMuX3N0YXRlcy5jdXJyZW50W25hbWVdKys7DQoJCX0sIHRoaXMpKTsNCgl9Ow0KDQoJLyoqDQoJICogTGVhdmVzIGEgc3RhdGUuDQoJICogQHBhcmFtIG5hbWUgLSBUaGUgc3RhdGUgbmFtZS4NCgkgKi8NCglPd2wucHJvdG90eXBlLmxlYXZlID0gZnVuY3Rpb24obmFtZSkgew0KCQkkLmVhY2goWyBuYW1lIF0uY29uY2F0KHRoaXMuX3N0YXRlcy50YWdzW25hbWVdIHx8IFtdKSwgJC5wcm94eShmdW5jdGlvbihpLCBuYW1lKSB7DQoJCQl0aGlzLl9zdGF0ZXMuY3VycmVudFtuYW1lXS0tOw0KCQl9LCB0aGlzKSk7DQoJfTsNCg0KCS8qKg0KCSAqIFJlZ2lzdGVycyBhbiBldmVudCBvciBzdGF0ZS4NCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCAtIFRoZSBldmVudCBvciBzdGF0ZSB0byByZWdpc3Rlci4NCgkgKi8NCglPd2wucHJvdG90eXBlLnJlZ2lzdGVyID0gZnVuY3Rpb24ob2JqZWN0KSB7DQoJCWlmIChvYmplY3QudHlwZSA9PT0gT3dsLlR5cGUuRXZlbnQpIHsNCgkJCWlmICghJC5ldmVudC5zcGVjaWFsW29iamVjdC5uYW1lXSkgew0KCQkJCSQuZXZlbnQuc3BlY2lhbFtvYmplY3QubmFtZV0gPSB7fTsNCgkJCX0NCg0KCQkJaWYgKCEkLmV2ZW50LnNwZWNpYWxbb2JqZWN0Lm5hbWVdLm93bCkgew0KCQkJCXZhciBfZGVmYXVsdCA9ICQuZXZlbnQuc3BlY2lhbFtvYmplY3QubmFtZV0uX2RlZmF1bHQ7DQoJCQkJJC5ldmVudC5zcGVjaWFsW29iamVjdC5uYW1lXS5fZGVmYXVsdCA9IGZ1bmN0aW9uKGUpIHsNCgkJCQkJaWYgKF9kZWZhdWx0ICYmIF9kZWZhdWx0LmFwcGx5ICYmICghZS5uYW1lc3BhY2UgfHwgZS5uYW1lc3BhY2UuaW5kZXhPZignb3dsJykgPT09IC0xKSkgew0KCQkJCQkJcmV0dXJuIF9kZWZhdWx0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7DQoJCQkJCX0NCgkJCQkJcmV0dXJuIGUubmFtZXNwYWNlICYmIGUubmFtZXNwYWNlLmluZGV4T2YoJ293bCcpID4gLTE7DQoJCQkJfTsNCgkJCQkkLmV2ZW50LnNwZWNpYWxbb2JqZWN0Lm5hbWVdLm93bCA9IHRydWU7DQoJCQl9DQoJCX0gZWxzZSBpZiAob2JqZWN0LnR5cGUgPT09IE93bC5UeXBlLlN0YXRlKSB7DQoJCQlpZiAoIXRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXSkgew0KCQkJCXRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXSA9IG9iamVjdC50YWdzOw0KCQkJfSBlbHNlIHsNCgkJCQl0aGlzLl9zdGF0ZXMudGFnc1tvYmplY3QubmFtZV0gPSB0aGlzLl9zdGF0ZXMudGFnc1tvYmplY3QubmFtZV0uY29uY2F0KG9iamVjdC50YWdzKTsNCgkJCX0NCg0KCQkJdGhpcy5fc3RhdGVzLnRhZ3Nbb2JqZWN0Lm5hbWVdID0gJC5ncmVwKHRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXSwgJC5wcm94eShmdW5jdGlvbih0YWcsIGkpIHsNCgkJCQlyZXR1cm4gJC5pbkFycmF5KHRhZywgdGhpcy5fc3RhdGVzLnRhZ3Nbb2JqZWN0Lm5hbWVdKSA9PT0gaTsNCgkJCX0sIHRoaXMpKTsNCgkJfQ0KCX07DQoNCgkvKioNCgkgKiBTdXBwcmVzc2VzIGV2ZW50cy4NCgkgKiBAcHJvdGVjdGVkDQoJICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gZXZlbnRzIC0gVGhlIGV2ZW50cyB0byBzdXBwcmVzcy4NCgkgKi8NCglPd2wucHJvdG90eXBlLnN1cHByZXNzID0gZnVuY3Rpb24oZXZlbnRzKSB7DQoJCSQuZWFjaChldmVudHMsICQucHJveHkoZnVuY3Rpb24oaW5kZXgsIGV2ZW50KSB7DQoJCQl0aGlzLl9zdXByZXNzW2V2ZW50XSA9IHRydWU7DQoJCX0sIHRoaXMpKTsNCgl9Ow0KDQoJLyoqDQoJICogUmVsZWFzZXMgc3VwcHJlc3NlZCBldmVudHMuDQoJICogQHByb3RlY3RlZA0KCSAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGV2ZW50cyAtIFRoZSBldmVudHMgdG8gcmVsZWFzZS4NCgkgKi8NCglPd2wucHJvdG90eXBlLnJlbGVhc2UgPSBmdW5jdGlvbihldmVudHMpIHsNCgkJJC5lYWNoKGV2ZW50cywgJC5wcm94eShmdW5jdGlvbihpbmRleCwgZXZlbnQpIHsNCgkJCWRlbGV0ZSB0aGlzLl9zdXByZXNzW2V2ZW50XTsNCgkJfSwgdGhpcykpOw0KCX07DQoNCgkvKioNCgkgKiBHZXRzIHVuaWZpZWQgcG9pbnRlciBjb29yZGluYXRlcyBmcm9tIGV2ZW50Lg0KCSAqIEB0b2RvICMyNjENCgkgKiBAcHJvdGVjdGVkDQoJICogQHBhcmFtIHtFdmVudH0gLSBUaGUgYG1vdXNlZG93bmAgb3IgYHRvdWNoc3RhcnRgIGV2ZW50Lg0KCSAqIEByZXR1cm5zIHtPYmplY3R9IC0gQ29udGFpbnMgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgb2YgY3VycmVudCBwb2ludGVyIHBvc2l0aW9uLg0KCSAqLw0KCU93bC5wcm90b3R5cGUucG9pbnRlciA9IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciByZXN1bHQgPSB7IHg6IG51bGwsIHk6IG51bGwgfTsNCg0KCQlldmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQgfHwgZXZlbnQgfHwgd2luZG93LmV2ZW50Ow0KDQoJCWV2ZW50ID0gZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzLmxlbmd0aCA/DQoJCQlldmVudC50b3VjaGVzWzBdIDogZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoID8NCgkJCQlldmVudC5jaGFuZ2VkVG91Y2hlc1swXSA6IGV2ZW50Ow0KDQoJCWlmIChldmVudC5wYWdlWCkgew0KCQkJcmVzdWx0LnggPSBldmVudC5wYWdlWDsNCgkJCXJlc3VsdC55ID0gZXZlbnQucGFnZVk7DQoJCX0gZWxzZSB7DQoJCQlyZXN1bHQueCA9IGV2ZW50LmNsaWVudFg7DQoJCQlyZXN1bHQueSA9IGV2ZW50LmNsaWVudFk7DQoJCX0NCg0KCQlyZXR1cm4gcmVzdWx0Ow0KCX07DQoNCgkvKioNCgkgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlcg0KCSAqIEBwcm90ZWN0ZWQNCgkgKiBAcGFyYW0ge051bWJlcnxTdHJpbmd8T2JqZWN0fEFycmF5fEJvb2xlYW58UmVnRXhwfEZ1bmN0aW9ufFN5bWJvbH0gLSBUaGUgaW5wdXQgdG8gYmUgdGVzdGVkDQoJICogQHJldHVybnMge0Jvb2xlYW59IC0gQW4gaW5kaWNhdGlvbiBpZiB0aGUgaW5wdXQgaXMgYSBOdW1iZXIgb3IgY2FuIGJlIGNvZXJjZWQgdG8gYSBOdW1iZXINCgkgKi8NCglPd2wucHJvdG90eXBlLmlzTnVtZXJpYyA9IGZ1bmN0aW9uKG51bWJlcikgew0KCQlyZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobnVtYmVyKSk7DQoJfTsNCg0KCS8qKg0KCSAqIEdldHMgdGhlIGRpZmZlcmVuY2Ugb2YgdHdvIHZlY3RvcnMuDQoJICogQHRvZG8gIzI2MQ0KCSAqIEBwcm90ZWN0ZWQNCgkgKiBAcGFyYW0ge09iamVjdH0gLSBUaGUgZmlyc3QgdmVjdG9yLg0KCSAqIEBwYXJhbSB7T2JqZWN0fSAtIFRoZSBzZWNvbmQgdmVjdG9yLg0KCSAqIEByZXR1cm5zIHtPYmplY3R9IC0gVGhlIGRpZmZlcmVuY2UuDQoJICovDQoJT3dsLnByb3RvdHlwZS5kaWZmZXJlbmNlID0gZnVuY3Rpb24oZmlyc3QsIHNlY29uZCkgew0KCQlyZXR1cm4gew0KCQkJeDogZmlyc3QueCAtIHNlY29uZC54LA0KCQkJeTogZmlyc3QueSAtIHNlY29uZC55DQoJCX07DQoJfTsNCg0KCS8qKg0KCSAqIFRoZSBqUXVlcnkgUGx1Z2luIGZvciB0aGUgT3dsIENhcm91c2VsDQoJICogQHRvZG8gTmF2aWdhdGlvbiBwbHVnaW4gYG5leHRgIGFuZCBgcHJldmANCgkgKiBAcHVibGljDQoJICovDQoJJC5mbi5vd2xDYXJvdXNlbCA9IGZ1bmN0aW9uKG9wdGlvbikgew0KCQl2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7DQoNCgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciAkdGhpcyA9ICQodGhpcyksDQoJCQkJZGF0YSA9ICR0aGlzLmRhdGEoJ293bC5jYXJvdXNlbCcpOw0KDQoJCQlpZiAoIWRhdGEpIHsNCgkJCQlkYXRhID0gbmV3IE93bCh0aGlzLCB0eXBlb2Ygb3B0aW9uID09ICdvYmplY3QnICYmIG9wdGlvbik7DQoJCQkJJHRoaXMuZGF0YSgnb3dsLmNhcm91c2VsJywgZGF0YSk7DQoNCgkJCQkkLmVhY2goWw0KCQkJCQknbmV4dCcsICdwcmV2JywgJ3RvJywgJ2Rlc3Ryb3knLCAncmVmcmVzaCcsICdyZXBsYWNlJywgJ2FkZCcsICdyZW1vdmUnDQoJCQkJXSwgZnVuY3Rpb24oaSwgZXZlbnQpIHsNCgkJCQkJZGF0YS5yZWdpc3Rlcih7IHR5cGU6IE93bC5UeXBlLkV2ZW50LCBuYW1lOiBldmVudCB9KTsNCgkJCQkJZGF0YS4kZWxlbWVudC5vbihldmVudCArICcub3dsLmNhcm91c2VsLmNvcmUnLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCQkJCWlmIChlLm5hbWVzcGFjZSAmJiBlLnJlbGF0ZWRUYXJnZXQgIT09IHRoaXMpIHsNCgkJCQkJCQl0aGlzLnN1cHByZXNzKFsgZXZlbnQgXSk7DQoJCQkJCQkJZGF0YVtldmVudF0uYXBwbHkodGhpcywgW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTsNCgkJCQkJCQl0aGlzLnJlbGVhc2UoWyBldmVudCBdKTsNCgkJCQkJCX0NCgkJCQkJfSwgZGF0YSkpOw0KCQkJCX0pOw0KCQkJfQ0KDQoJCQlpZiAodHlwZW9mIG9wdGlvbiA9PSAnc3RyaW5nJyAmJiBvcHRpb24uY2hhckF0KDApICE9PSAnXycpIHsNCgkJCQlkYXRhW29wdGlvbl0uYXBwbHkoZGF0YSwgYXJncyk7DQoJCQl9DQoJCX0pOw0KCX07DQoNCgkvKioNCgkgKiBUaGUgY29uc3RydWN0b3IgZm9yIHRoZSBqUXVlcnkgUGx1Z2luDQoJICogQHB1YmxpYw0KCSAqLw0KCSQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IgPSBPd2w7DQoNCn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTsNCg0KLyoqDQogKiBBdXRvUmVmcmVzaCBQbHVnaW4NCiAqIEB2ZXJzaW9uIDIuMy40DQogKiBAYXV0aG9yIEFydHVzIEtvbGFub3dza2kNCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaA0KICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpDQogKi8NCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7DQoNCgkvKioNCgkgKiBDcmVhdGVzIHRoZSBhdXRvIHJlZnJlc2ggcGx1Z2luLg0KCSAqIEBjbGFzcyBUaGUgQXV0byBSZWZyZXNoIFBsdWdpbg0KCSAqIEBwYXJhbSB7T3dsfSBjYXJvdXNlbCAtIFRoZSBPd2wgQ2Fyb3VzZWwNCgkgKi8NCgl2YXIgQXV0b1JlZnJlc2ggPSBmdW5jdGlvbihjYXJvdXNlbCkgew0KCQkvKioNCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPd2x9DQoJCSAqLw0KCQl0aGlzLl9jb3JlID0gY2Fyb3VzZWw7DQoNCgkJLyoqDQoJCSAqIFJlZnJlc2ggaW50ZXJ2YWwuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge251bWJlcn0NCgkJICovDQoJCXRoaXMuX2ludGVydmFsID0gbnVsbDsNCg0KCQkvKioNCgkJICogV2hldGhlciB0aGUgZWxlbWVudCBpcyBjdXJyZW50bHkgdmlzaWJsZSBvciBub3QuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge0Jvb2xlYW59DQoJCSAqLw0KCQl0aGlzLl92aXNpYmxlID0gbnVsbDsNCg0KCQkvKioNCgkJICogQWxsIGV2ZW50IGhhbmRsZXJzLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPYmplY3R9DQoJCSAqLw0KCQl0aGlzLl9oYW5kbGVycyA9IHsNCgkJCSdpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvUmVmcmVzaCkgew0KCQkJCQl0aGlzLndhdGNoKCk7DQoJCQkJfQ0KCQkJfSwgdGhpcykNCgkJfTsNCg0KCQkvLyBzZXQgZGVmYXVsdCBvcHRpb25zDQoJCXRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBBdXRvUmVmcmVzaC5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKTsNCg0KCQkvLyByZWdpc3RlciBldmVudCBoYW5kbGVycw0KCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVmYXVsdCBvcHRpb25zLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglBdXRvUmVmcmVzaC5EZWZhdWx0cyA9IHsNCgkJYXV0b1JlZnJlc2g6IHRydWUsDQoJCWF1dG9SZWZyZXNoSW50ZXJ2YWw6IDUwMA0KCX07DQoNCgkvKioNCgkgKiBXYXRjaGVzIHRoZSBlbGVtZW50Lg0KCSAqLw0KCUF1dG9SZWZyZXNoLnByb3RvdHlwZS53YXRjaCA9IGZ1bmN0aW9uKCkgew0KCQlpZiAodGhpcy5faW50ZXJ2YWwpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX3Zpc2libGUgPSB0aGlzLl9jb3JlLmlzVmlzaWJsZSgpOw0KCQl0aGlzLl9pbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgkLnByb3h5KHRoaXMucmVmcmVzaCwgdGhpcyksIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b1JlZnJlc2hJbnRlcnZhbCk7DQoJfTsNCg0KCS8qKg0KCSAqIFJlZnJlc2hlcyB0aGUgZWxlbWVudC4NCgkgKi8NCglBdXRvUmVmcmVzaC5wcm90b3R5cGUucmVmcmVzaCA9IGZ1bmN0aW9uKCkgew0KCQlpZiAodGhpcy5fY29yZS5pc1Zpc2libGUoKSA9PT0gdGhpcy5fdmlzaWJsZSkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5fdmlzaWJsZSA9ICF0aGlzLl92aXNpYmxlOw0KDQoJCXRoaXMuX2NvcmUuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoJ293bC1oaWRkZW4nLCAhdGhpcy5fdmlzaWJsZSk7DQoNCgkJdGhpcy5fdmlzaWJsZSAmJiAodGhpcy5fY29yZS5pbnZhbGlkYXRlKCd3aWR0aCcpICYmIHRoaXMuX2NvcmUucmVmcmVzaCgpKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVzdHJveXMgdGhlIHBsdWdpbi4NCgkgKi8NCglBdXRvUmVmcmVzaC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgaGFuZGxlciwgcHJvcGVydHk7DQoNCgkJd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpOw0KDQoJCWZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykgew0KCQkJdGhpcy5fY29yZS4kZWxlbWVudC5vZmYoaGFuZGxlciwgdGhpcy5faGFuZGxlcnNbaGFuZGxlcl0pOw0KCQl9DQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsNCgkJCXR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPSAnZnVuY3Rpb24nICYmICh0aGlzW3Byb3BlcnR5XSA9IG51bGwpOw0KCQl9DQoJfTsNCg0KCSQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5BdXRvUmVmcmVzaCA9IEF1dG9SZWZyZXNoOw0KDQp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7DQoNCi8qKg0KICogTGF6eSBQbHVnaW4NCiAqIEB2ZXJzaW9uIDIuMy40DQogKiBAYXV0aG9yIEJhcnRvc3ogV29qY2llY2hvd3NraQ0KICogQGF1dGhvciBEYXZpZCBEZXV0c2NoDQogKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVCkNCiAqLw0KOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHsNCg0KCS8qKg0KCSAqIENyZWF0ZXMgdGhlIGxhenkgcGx1Z2luLg0KCSAqIEBjbGFzcyBUaGUgTGF6eSBQbHVnaW4NCgkgKiBAcGFyYW0ge093bH0gY2Fyb3VzZWwgLSBUaGUgT3dsIENhcm91c2VsDQoJICovDQoJdmFyIExhenkgPSBmdW5jdGlvbihjYXJvdXNlbCkgew0KDQoJCS8qKg0KCQkgKiBSZWZlcmVuY2UgdG8gdGhlIGNvcmUuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge093bH0NCgkJICovDQoJCXRoaXMuX2NvcmUgPSBjYXJvdXNlbDsNCg0KCQkvKioNCgkJICogQWxyZWFkeSBsb2FkZWQgaXRlbXMuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge0FycmF5LjxqUXVlcnk+fQ0KCQkgKi8NCgkJdGhpcy5fbG9hZGVkID0gW107DQoNCgkJLyoqDQoJCSAqIEV2ZW50IGhhbmRsZXJzLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPYmplY3R9DQoJCSAqLw0KCQl0aGlzLl9oYW5kbGVycyA9IHsNCgkJCSdpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwgY2hhbmdlLm93bC5jYXJvdXNlbCByZXNpemVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmICghZS5uYW1lc3BhY2UpIHsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCg0KCQkJCWlmICghdGhpcy5fY29yZS5zZXR0aW5ncyB8fCAhdGhpcy5fY29yZS5zZXR0aW5ncy5sYXp5TG9hZCkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJaWYgKChlLnByb3BlcnR5ICYmIGUucHJvcGVydHkubmFtZSA9PSAncG9zaXRpb24nKSB8fCBlLnR5cGUgPT0gJ2luaXRpYWxpemVkJykgew0KCQkJCQl2YXIgc2V0dGluZ3MgPSB0aGlzLl9jb3JlLnNldHRpbmdzLA0KCQkJCQkJbiA9IChzZXR0aW5ncy5jZW50ZXIgJiYgTWF0aC5jZWlsKHNldHRpbmdzLml0ZW1zIC8gMikgfHwgc2V0dGluZ3MuaXRlbXMpLA0KCQkJCQkJaSA9ICgoc2V0dGluZ3MuY2VudGVyICYmIG4gKiAtMSkgfHwgMCksDQoJCQkJCQlwb3NpdGlvbiA9IChlLnByb3BlcnR5ICYmIGUucHJvcGVydHkudmFsdWUgIT09IHVuZGVmaW5lZCA/IGUucHJvcGVydHkudmFsdWUgOiB0aGlzLl9jb3JlLmN1cnJlbnQoKSkgKyBpLA0KCQkJCQkJY2xvbmVzID0gdGhpcy5fY29yZS5jbG9uZXMoKS5sZW5ndGgsDQoJCQkJCQlsb2FkID0gJC5wcm94eShmdW5jdGlvbihpLCB2KSB7IHRoaXMubG9hZCh2KSB9LCB0aGlzKTsNCgkJCQkJLy9UT0RPOiBOZWVkIGRvY3VtZW50YXRpb24gZm9yIHRoaXMgbmV3IG9wdGlvbg0KCQkJCQlpZiAoc2V0dGluZ3MubGF6eUxvYWRFYWdlciA+IDApIHsNCgkJCQkJCW4gKz0gc2V0dGluZ3MubGF6eUxvYWRFYWdlcjsNCgkJCQkJCS8vIElmIHRoZSBjYXJvdXNlbCBpcyBsb29waW5nIGFsc28gcHJlbG9hZCBpbWFnZXMgdGhhdCBhcmUgdG8gdGhlICJsZWZ0Ig0KCQkJCQkJaWYgKHNldHRpbmdzLmxvb3ApIHsNCiAgICAgICAgICAgICAgcG9zaXRpb24gLT0gc2V0dGluZ3MubGF6eUxvYWRFYWdlcjsNCiAgICAgICAgICAgICAgbisrOw0KICAgICAgICAgICAgfQ0KCQkJCQl9DQoNCgkJCQkJd2hpbGUgKGkrKyA8IG4pIHsNCgkJCQkJCXRoaXMubG9hZChjbG9uZXMgLyAyICsgdGhpcy5fY29yZS5yZWxhdGl2ZShwb3NpdGlvbikpOw0KCQkJCQkJY2xvbmVzICYmICQuZWFjaCh0aGlzLl9jb3JlLmNsb25lcyh0aGlzLl9jb3JlLnJlbGF0aXZlKHBvc2l0aW9uKSksIGxvYWQpOw0KCQkJCQkJcG9zaXRpb24rKzsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0sIHRoaXMpDQoJCX07DQoNCgkJLy8gc2V0IHRoZSBkZWZhdWx0IG9wdGlvbnMNCgkJdGhpcy5fY29yZS5vcHRpb25zID0gJC5leHRlbmQoe30sIExhenkuRGVmYXVsdHMsIHRoaXMuX2NvcmUub3B0aW9ucyk7DQoNCgkJLy8gcmVnaXN0ZXIgZXZlbnQgaGFuZGxlcg0KCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVmYXVsdCBvcHRpb25zLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglMYXp5LkRlZmF1bHRzID0gew0KCQlsYXp5TG9hZDogZmFsc2UsDQoJCWxhenlMb2FkRWFnZXI6IDANCgl9Ow0KDQoJLyoqDQoJICogTG9hZHMgYWxsIHJlc291cmNlcyBvZiBhbiBpdGVtIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uDQoJICogQHBhcmFtIHtOdW1iZXJ9IHBvc2l0aW9uIC0gVGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBpdGVtLg0KCSAqIEBwcm90ZWN0ZWQNCgkgKi8NCglMYXp5LnByb3RvdHlwZS5sb2FkID0gZnVuY3Rpb24ocG9zaXRpb24pIHsNCgkJdmFyICRpdGVtID0gdGhpcy5fY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS5lcShwb3NpdGlvbiksDQoJCQkkZWxlbWVudHMgPSAkaXRlbSAmJiAkaXRlbS5maW5kKCcub3dsLWxhenknKTsNCg0KCQlpZiAoISRlbGVtZW50cyB8fCAkLmluQXJyYXkoJGl0ZW0uZ2V0KDApLCB0aGlzLl9sb2FkZWQpID4gLTEpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCSRlbGVtZW50cy5lYWNoKCQucHJveHkoZnVuY3Rpb24oaW5kZXgsIGVsZW1lbnQpIHsNCgkJCXZhciAkZWxlbWVudCA9ICQoZWxlbWVudCksIGltYWdlLA0KICAgICAgICAgICAgICAgIHVybCA9ICh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA+IDEgJiYgJGVsZW1lbnQuYXR0cignZGF0YS1zcmMtcmV0aW5hJykpIHx8ICRlbGVtZW50LmF0dHIoJ2RhdGEtc3JjJykgfHwgJGVsZW1lbnQuYXR0cignZGF0YS1zcmNzZXQnKTsNCg0KCQkJdGhpcy5fY29yZS50cmlnZ2VyKCdsb2FkJywgeyBlbGVtZW50OiAkZWxlbWVudCwgdXJsOiB1cmwgfSwgJ2xhenknKTsNCg0KCQkJaWYgKCRlbGVtZW50LmlzKCdpbWcnKSkgew0KCQkJCSRlbGVtZW50Lm9uZSgnbG9hZC5vd2wubGF6eScsICQucHJveHkoZnVuY3Rpb24oKSB7DQoJCQkJCSRlbGVtZW50LmNzcygnb3BhY2l0eScsIDEpOw0KCQkJCQl0aGlzLl9jb3JlLnRyaWdnZXIoJ2xvYWRlZCcsIHsgZWxlbWVudDogJGVsZW1lbnQsIHVybDogdXJsIH0sICdsYXp5Jyk7DQoJCQkJfSwgdGhpcykpLmF0dHIoJ3NyYycsIHVybCk7DQogICAgICAgICAgICB9IGVsc2UgaWYgKCRlbGVtZW50LmlzKCdzb3VyY2UnKSkgew0KICAgICAgICAgICAgICAgICRlbGVtZW50Lm9uZSgnbG9hZC5vd2wubGF6eScsICQucHJveHkoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvcmUudHJpZ2dlcignbG9hZGVkJywgeyBlbGVtZW50OiAkZWxlbWVudCwgdXJsOiB1cmwgfSwgJ2xhenknKTsNCiAgICAgICAgICAgICAgICB9LCB0aGlzKSkuYXR0cignc3Jjc2V0JywgdXJsKTsNCgkJCX0gZWxzZSB7DQoJCQkJaW1hZ2UgPSBuZXcgSW1hZ2UoKTsNCgkJCQlpbWFnZS5vbmxvYWQgPSAkLnByb3h5KGZ1bmN0aW9uKCkgew0KCQkJCQkkZWxlbWVudC5jc3Moew0KCQkJCQkJJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCInICsgdXJsICsgJyIpJywNCgkJCQkJCSdvcGFjaXR5JzogJzEnDQoJCQkJCX0pOw0KCQkJCQl0aGlzLl9jb3JlLnRyaWdnZXIoJ2xvYWRlZCcsIHsgZWxlbWVudDogJGVsZW1lbnQsIHVybDogdXJsIH0sICdsYXp5Jyk7DQoJCQkJfSwgdGhpcyk7DQoJCQkJaW1hZ2Uuc3JjID0gdXJsOw0KCQkJfQ0KCQl9LCB0aGlzKSk7DQoNCgkJdGhpcy5fbG9hZGVkLnB1c2goJGl0ZW0uZ2V0KDApKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVzdHJveXMgdGhlIHBsdWdpbi4NCgkgKiBAcHVibGljDQoJICovDQoJTGF6eS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgaGFuZGxlciwgcHJvcGVydHk7DQoNCgkJZm9yIChoYW5kbGVyIGluIHRoaXMuaGFuZGxlcnMpIHsNCgkJCXRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuaGFuZGxlcnNbaGFuZGxlcl0pOw0KCQl9DQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsNCgkJCXR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPSAnZnVuY3Rpb24nICYmICh0aGlzW3Byb3BlcnR5XSA9IG51bGwpOw0KCQl9DQoJfTsNCg0KCSQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5MYXp5ID0gTGF6eTsNCg0KfSkod2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpOw0KDQovKioNCiAqIEF1dG9IZWlnaHQgUGx1Z2luDQogKiBAdmVyc2lvbiAyLjMuNA0KICogQGF1dGhvciBCYXJ0b3N6IFdvamNpZWNob3dza2kNCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaA0KICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpDQogKi8NCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7DQoNCgkvKioNCgkgKiBDcmVhdGVzIHRoZSBhdXRvIGhlaWdodCBwbHVnaW4uDQoJICogQGNsYXNzIFRoZSBBdXRvIEhlaWdodCBQbHVnaW4NCgkgKiBAcGFyYW0ge093bH0gY2Fyb3VzZWwgLSBUaGUgT3dsIENhcm91c2VsDQoJICovDQoJdmFyIEF1dG9IZWlnaHQgPSBmdW5jdGlvbihjYXJvdXNlbCkgew0KCQkvKioNCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPd2x9DQoJCSAqLw0KCQl0aGlzLl9jb3JlID0gY2Fyb3VzZWw7DQoNCgkJdGhpcy5fcHJldmlvdXNIZWlnaHQgPSBudWxsOw0KDQoJCS8qKg0KCQkgKiBBbGwgZXZlbnQgaGFuZGxlcnMuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge09iamVjdH0NCgkJICovDQoJCXRoaXMuX2hhbmRsZXJzID0gew0KCQkJJ2luaXRpYWxpemVkLm93bC5jYXJvdXNlbCByZWZyZXNoZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b0hlaWdodCkgew0KCQkJCQl0aGlzLnVwZGF0ZSgpOw0KCQkJCX0NCgkJCX0sIHRoaXMpLA0KCQkJJ2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b0hlaWdodCAmJiBlLnByb3BlcnR5Lm5hbWUgPT09ICdwb3NpdGlvbicpew0KCQkJCQl0aGlzLnVwZGF0ZSgpOw0KCQkJCX0NCgkJCX0sIHRoaXMpLA0KCQkJJ2xvYWRlZC5vd2wubGF6eSc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHQNCgkJCQkJJiYgZS5lbGVtZW50LmNsb3Nlc3QoJy4nICsgdGhpcy5fY29yZS5zZXR0aW5ncy5pdGVtQ2xhc3MpLmluZGV4KCkgPT09IHRoaXMuX2NvcmUuY3VycmVudCgpKSB7DQoJCQkJCXRoaXMudXBkYXRlKCk7DQoJCQkJfQ0KCQkJfSwgdGhpcykNCgkJfTsNCg0KCQkvLyBzZXQgZGVmYXVsdCBvcHRpb25zDQoJCXRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBBdXRvSGVpZ2h0LkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpOw0KDQoJCS8vIHJlZ2lzdGVyIGV2ZW50IGhhbmRsZXJzDQoJCXRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpOw0KCQl0aGlzLl9pbnRlcnZhbElkID0gbnVsbDsNCgkJdmFyIHJlZlRoaXMgPSB0aGlzOw0KDQoJCS8vIFRoZXNlIGNoYW5nZXMgaGF2ZSBiZWVuIHRha2VuIGZyb20gYSBQUiBieSBnYXZyb2NoZWxlZ25vdSBwcm9wb3NlZCBpbiAjMTU3NQ0KCQkvLyBhbmQgaGF2ZSBiZWVuIG1hZGUgY29tcGF0aWJsZSB3aXRoIHRoZSBsYXRlc3QgalF1ZXJ5IHZlcnNpb24NCgkJJCh3aW5kb3cpLm9uKCdsb2FkJywgZnVuY3Rpb24oKSB7DQoJCQlpZiAocmVmVGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvSGVpZ2h0KSB7DQoJCQkJcmVmVGhpcy51cGRhdGUoKTsNCgkJCX0NCgkJfSk7DQoNCgkJLy8gQXV0b3Jlc2l6ZSB0aGUgaGVpZ2h0IG9mIHRoZSBjYXJvdXNlbCB3aGVuIHdpbmRvdyBpcyByZXNpemVkDQoJCS8vIFdoZW4gY2Fyb3VzZWwgaGFzIGltYWdlcywgdGhlIGhlaWdodCBpcyBkZXBlbmRlbnQgb24gdGhlIHdpZHRoDQoJCS8vIGFuZCBzaG91bGQgYWxzbyBjaGFuZ2Ugb24gcmVzaXplDQoJCSQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKSB7DQoJCQlpZiAocmVmVGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvSGVpZ2h0KSB7DQoJCQkJaWYgKHJlZlRoaXMuX2ludGVydmFsSWQgIT0gbnVsbCkgew0KCQkJCQljbGVhclRpbWVvdXQocmVmVGhpcy5faW50ZXJ2YWxJZCk7DQoJCQkJfQ0KDQoJCQkJcmVmVGhpcy5faW50ZXJ2YWxJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoJCQkJCXJlZlRoaXMudXBkYXRlKCk7DQoJCQkJfSwgMjUwKTsNCgkJCX0NCgkJfSk7DQoNCgl9Ow0KDQoJLyoqDQoJICogRGVmYXVsdCBvcHRpb25zLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglBdXRvSGVpZ2h0LkRlZmF1bHRzID0gew0KCQlhdXRvSGVpZ2h0OiBmYWxzZSwNCgkJYXV0b0hlaWdodENsYXNzOiAnb3dsLWhlaWdodCcNCgl9Ow0KDQoJLyoqDQoJICogVXBkYXRlcyB0aGUgdmlldy4NCgkgKi8NCglBdXRvSGVpZ2h0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbigpIHsNCgkJdmFyIHN0YXJ0ID0gdGhpcy5fY29yZS5fY3VycmVudCwNCgkJCWVuZCA9IHN0YXJ0ICsgdGhpcy5fY29yZS5zZXR0aW5ncy5pdGVtcywNCgkJCWxhenlMb2FkRW5hYmxlZCA9IHRoaXMuX2NvcmUuc2V0dGluZ3MubGF6eUxvYWQsDQoJCQl2aXNpYmxlID0gdGhpcy5fY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS50b0FycmF5KCkuc2xpY2Uoc3RhcnQsIGVuZCksDQoJCQloZWlnaHRzID0gW10sDQoJCQltYXhoZWlnaHQgPSAwOw0KDQoJCSQuZWFjaCh2aXNpYmxlLCBmdW5jdGlvbihpbmRleCwgaXRlbSkgew0KCQkJaGVpZ2h0cy5wdXNoKCQoaXRlbSkuaGVpZ2h0KCkpOw0KCQl9KTsNCg0KCQltYXhoZWlnaHQgPSBNYXRoLm1heC5hcHBseShudWxsLCBoZWlnaHRzKTsNCg0KCQlpZiAobWF4aGVpZ2h0IDw9IDEgJiYgbGF6eUxvYWRFbmFibGVkICYmIHRoaXMuX3ByZXZpb3VzSGVpZ2h0KSB7DQoJCQltYXhoZWlnaHQgPSB0aGlzLl9wcmV2aW91c0hlaWdodDsNCgkJfQ0KDQoJCXRoaXMuX3ByZXZpb3VzSGVpZ2h0ID0gbWF4aGVpZ2h0Ow0KDQoJCXRoaXMuX2NvcmUuJHN0YWdlLnBhcmVudCgpDQoJCQkuaGVpZ2h0KG1heGhlaWdodCkNCgkJCS5hZGRDbGFzcyh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHRDbGFzcyk7DQoJfTsNCg0KCUF1dG9IZWlnaHQucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHsNCgkJdmFyIGhhbmRsZXIsIHByb3BlcnR5Ow0KDQoJCWZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykgew0KCQkJdGhpcy5fY29yZS4kZWxlbWVudC5vZmYoaGFuZGxlciwgdGhpcy5faGFuZGxlcnNbaGFuZGxlcl0pOw0KCQl9DQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsNCgkJCXR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPT0gJ2Z1bmN0aW9uJyAmJiAodGhpc1twcm9wZXJ0eV0gPSBudWxsKTsNCgkJfQ0KCX07DQoNCgkkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuQXV0b0hlaWdodCA9IEF1dG9IZWlnaHQ7DQoNCn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTsNCg0KLyoqDQogKiBWaWRlbyBQbHVnaW4NCiAqIEB2ZXJzaW9uIDIuMy40DQogKiBAYXV0aG9yIEJhcnRvc3ogV29qY2llY2hvd3NraQ0KICogQGF1dGhvciBEYXZpZCBEZXV0c2NoDQogKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVCkNCiAqLw0KOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHsNCg0KCS8qKg0KCSAqIENyZWF0ZXMgdGhlIHZpZGVvIHBsdWdpbi4NCgkgKiBAY2xhc3MgVGhlIFZpZGVvIFBsdWdpbg0KCSAqIEBwYXJhbSB7T3dsfSBjYXJvdXNlbCAtIFRoZSBPd2wgQ2Fyb3VzZWwNCgkgKi8NCgl2YXIgVmlkZW8gPSBmdW5jdGlvbihjYXJvdXNlbCkgew0KCQkvKioNCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPd2x9DQoJCSAqLw0KCQl0aGlzLl9jb3JlID0gY2Fyb3VzZWw7DQoNCgkJLyoqDQoJCSAqIENhY2hlIGFsbCB2aWRlbyBVUkxzLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPYmplY3R9DQoJCSAqLw0KCQl0aGlzLl92aWRlb3MgPSB7fTsNCg0KCQkvKioNCgkJICogQ3VycmVudCBwbGF5aW5nIGl0ZW0uDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge2pRdWVyeX0NCgkJICovDQoJCXRoaXMuX3BsYXlpbmcgPSBudWxsOw0KDQoJCS8qKg0KCQkgKiBBbGwgZXZlbnQgaGFuZGxlcnMuDQoJCSAqIEB0b2RvIFRoZSBjbG9uZWQgY29udGVudCByZW1vdmFsZSBpcyB0b28gbGF0ZQ0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPYmplY3R9DQoJCSAqLw0KCQl0aGlzLl9oYW5kbGVycyA9IHsNCgkJCSdpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCQlpZiAoZS5uYW1lc3BhY2UpIHsNCgkJCQkJdGhpcy5fY29yZS5yZWdpc3Rlcih7IHR5cGU6ICdzdGF0ZScsIG5hbWU6ICdwbGF5aW5nJywgdGFnczogWyAnaW50ZXJhY3RpbmcnIF0gfSk7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQkncmVzaXplLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLnZpZGVvICYmIHRoaXMuaXNJbkZ1bGxTY3JlZW4oKSkgew0KCQkJCQllLnByZXZlbnREZWZhdWx0KCk7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQkncmVmcmVzaGVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLmlzKCdyZXNpemluZycpKSB7DQoJCQkJCXRoaXMuX2NvcmUuJHN0YWdlLmZpbmQoJy5jbG9uZWQgLm93bC12aWRlby1mcmFtZScpLnJlbW92ZSgpOw0KCQkJCX0NCgkJCX0sIHRoaXMpLA0KCQkJJ2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlICYmIGUucHJvcGVydHkubmFtZSA9PT0gJ3Bvc2l0aW9uJyAmJiB0aGlzLl9wbGF5aW5nKSB7DQoJCQkJCXRoaXMuc3RvcCgpOw0KCQkJCX0NCgkJCX0sIHRoaXMpLA0KCQkJJ3ByZXBhcmVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmICghZS5uYW1lc3BhY2UpIHsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCg0KCQkJCXZhciAkZWxlbWVudCA9ICQoZS5jb250ZW50KS5maW5kKCcub3dsLXZpZGVvJyk7DQoNCgkJCQlpZiAoJGVsZW1lbnQubGVuZ3RoKSB7DQoJCQkJCSRlbGVtZW50LmNzcygnZGlzcGxheScsICdub25lJyk7DQoJCQkJCXRoaXMuZmV0Y2goJGVsZW1lbnQsICQoZS5jb250ZW50KSk7DQoJCQkJfQ0KCQkJfSwgdGhpcykNCgkJfTsNCg0KCQkvLyBzZXQgZGVmYXVsdCBvcHRpb25zDQoJCXRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBWaWRlby5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKTsNCg0KCQkvLyByZWdpc3RlciBldmVudCBoYW5kbGVycw0KCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKTsNCg0KCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKCdjbGljay5vd2wudmlkZW8nLCAnLm93bC12aWRlby1wbGF5LWljb24nLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCXRoaXMucGxheShlKTsNCgkJfSwgdGhpcykpOw0KCX07DQoNCgkvKioNCgkgKiBEZWZhdWx0IG9wdGlvbnMuDQoJICogQHB1YmxpYw0KCSAqLw0KCVZpZGVvLkRlZmF1bHRzID0gew0KCQl2aWRlbzogZmFsc2UsDQoJCXZpZGVvSGVpZ2h0OiBmYWxzZSwNCgkJdmlkZW9XaWR0aDogZmFsc2UNCgl9Ow0KDQoJLyoqDQoJICogR2V0cyB0aGUgdmlkZW8gSUQgYW5kIHRoZSB0eXBlIChZb3VUdWJlL1ZpbWVvL3Z6YWFyIG9ubHkpLg0KCSAqIEBwcm90ZWN0ZWQNCgkgKiBAcGFyYW0ge2pRdWVyeX0gdGFyZ2V0IC0gVGhlIHRhcmdldCBjb250YWluaW5nIHRoZSB2aWRlbyBkYXRhLg0KCSAqIEBwYXJhbSB7alF1ZXJ5fSBpdGVtIC0gVGhlIGl0ZW0gY29udGFpbmluZyB0aGUgdmlkZW8uDQoJICovDQoJVmlkZW8ucHJvdG90eXBlLmZldGNoID0gZnVuY3Rpb24odGFyZ2V0LCBpdGVtKSB7DQoJCQl2YXIgdHlwZSA9IChmdW5jdGlvbigpIHsNCgkJCQkJaWYgKHRhcmdldC5hdHRyKCdkYXRhLXZpbWVvLWlkJykpIHsNCgkJCQkJCXJldHVybiAndmltZW8nOw0KCQkJCQl9IGVsc2UgaWYgKHRhcmdldC5hdHRyKCdkYXRhLXZ6YWFyLWlkJykpIHsNCgkJCQkJCXJldHVybiAndnphYXInDQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlyZXR1cm4gJ3lvdXR1YmUnOw0KCQkJCQl9DQoJCQkJfSkoKSwNCgkJCQlpZCA9IHRhcmdldC5hdHRyKCdkYXRhLXZpbWVvLWlkJykgfHwgdGFyZ2V0LmF0dHIoJ2RhdGEteW91dHViZS1pZCcpIHx8IHRhcmdldC5hdHRyKCdkYXRhLXZ6YWFyLWlkJyksDQoJCQkJd2lkdGggPSB0YXJnZXQuYXR0cignZGF0YS13aWR0aCcpIHx8IHRoaXMuX2NvcmUuc2V0dGluZ3MudmlkZW9XaWR0aCwNCgkJCQloZWlnaHQgPSB0YXJnZXQuYXR0cignZGF0YS1oZWlnaHQnKSB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLnZpZGVvSGVpZ2h0LA0KCQkJCXVybCA9IHRhcmdldC5hdHRyKCdocmVmJyk7DQoNCgkJaWYgKHVybCkgew0KDQoJCQkvKg0KCQkJCQlQYXJzZXMgdGhlIGlkJ3Mgb3V0IG9mIHRoZSBmb2xsb3dpbmcgdXJscyAoYW5kIHByb2JhYmx5IG1vcmUpOg0KCQkJCQlodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTppZA0KCQkJCQlodHRwczovL3lvdXR1LmJlLzppZA0KCQkJCQlodHRwczovL3ZpbWVvLmNvbS86aWQNCgkJCQkJaHR0cHM6Ly92aW1lby5jb20vY2hhbm5lbHMvOmNoYW5uZWwvOmlkDQoJCQkJCWh0dHBzOi8vdmltZW8uY29tL2dyb3Vwcy86Z3JvdXAvdmlkZW9zLzppZA0KCQkJCQlodHRwczovL2FwcC52emFhci5jb20vdmlkZW9zLzppZA0KDQoJCQkJCVZpc3VhbCBleGFtcGxlOiBodHRwczovL3JlZ2V4cGVyLmNvbS8jKGh0dHAlM0ElN0NodHRwcyUzQSU3QyklNUMlMkYlNUMlMkYocGxheWVyLiU3Q3d3dy4lN0NhcHAuKSUzRih2aW1lbyU1Qy5jb20lN0N5b3V0dShiZSU1Qy5jb20lN0MlNUMuYmUlN0NiZSU1Qy5nb29nbGVhcGlzJTVDLmNvbSklN0N2emFhciU1Qy5jb20pJTVDJTJGKHZpZGVvJTVDJTJGJTdDdmlkZW9zJTVDJTJGJTdDZW1iZWQlNUMlMkYlN0NjaGFubmVscyU1QyUyRi4lMkIlNUMlMkYlN0Nncm91cHMlNUMlMkYuJTJCJTVDJTJGJTdDd2F0Y2glNUMlM0Z2JTNEJTdDdiU1QyUyRiklM0YoJTVCQS1aYS16MC05Ll8lMjUtJTVEKikoJTVDJTI2JTVDUyUyQiklM0YNCgkJCSovDQoNCgkJCWlkID0gdXJsLm1hdGNoKC8oaHR0cDp8aHR0cHM6fClcL1wvKHBsYXllci58d3d3LnxhcHAuKT8odmltZW9cLmNvbXx5b3V0dShiZVwuY29tfFwuYmV8YmVcLmdvb2dsZWFwaXNcLmNvbXxiZVwtbm9jb29raWVcLmNvbSl8dnphYXJcLmNvbSlcLyh2aWRlb1wvfHZpZGVvc1wvfGVtYmVkXC98Y2hhbm5lbHNcLy4rXC98Z3JvdXBzXC8uK1wvfHdhdGNoXD92PXx2XC8pPyhbQS1aYS16MC05Ll8lLV0qKShcJlxTKyk/Lyk7DQoNCgkJCWlmIChpZFszXS5pbmRleE9mKCd5b3V0dScpID4gLTEpIHsNCgkJCQl0eXBlID0gJ3lvdXR1YmUnOw0KCQkJfSBlbHNlIGlmIChpZFszXS5pbmRleE9mKCd2aW1lbycpID4gLTEpIHsNCgkJCQl0eXBlID0gJ3ZpbWVvJzsNCgkJCX0gZWxzZSBpZiAoaWRbM10uaW5kZXhPZigndnphYXInKSA+IC0xKSB7DQoJCQkJdHlwZSA9ICd2emFhcic7DQoJCQl9IGVsc2Ugew0KCQkJCXRocm93IG5ldyBFcnJvcignVmlkZW8gVVJMIG5vdCBzdXBwb3J0ZWQuJyk7DQoJCQl9DQoJCQlpZCA9IGlkWzZdOw0KCQl9IGVsc2Ugew0KCQkJdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHZpZGVvIFVSTC4nKTsNCgkJfQ0KDQoJCXRoaXMuX3ZpZGVvc1t1cmxdID0gew0KCQkJdHlwZTogdHlwZSwNCgkJCWlkOiBpZCwNCgkJCXdpZHRoOiB3aWR0aCwNCgkJCWhlaWdodDogaGVpZ2h0DQoJCX07DQoNCgkJaXRlbS5hdHRyKCdkYXRhLXZpZGVvJywgdXJsKTsNCg0KCQl0aGlzLnRodW1ibmFpbCh0YXJnZXQsIHRoaXMuX3ZpZGVvc1t1cmxdKTsNCgl9Ow0KDQoJLyoqDQoJICogQ3JlYXRlcyB2aWRlbyB0aHVtYm5haWwuDQoJICogQHByb3RlY3RlZA0KCSAqIEBwYXJhbSB7alF1ZXJ5fSB0YXJnZXQgLSBUaGUgdGFyZ2V0IGNvbnRhaW5pbmcgdGhlIHZpZGVvIGRhdGEuDQoJICogQHBhcmFtIHtPYmplY3R9IGluZm8gLSBUaGUgdmlkZW8gaW5mbyBvYmplY3QuDQoJICogQHNlZSBgZmV0Y2hgDQoJICovDQoJVmlkZW8ucHJvdG90eXBlLnRodW1ibmFpbCA9IGZ1bmN0aW9uKHRhcmdldCwgdmlkZW8pIHsNCgkJdmFyIHRuTGluaywNCgkJCWljb24sDQoJCQlwYXRoLA0KCQkJZGltZW5zaW9ucyA9IHZpZGVvLndpZHRoICYmIHZpZGVvLmhlaWdodCA/ICd3aWR0aDonICsgdmlkZW8ud2lkdGggKyAncHg7aGVpZ2h0OicgKyB2aWRlby5oZWlnaHQgKyAncHg7JyA6ICcnLA0KCQkJY3VzdG9tVG4gPSB0YXJnZXQuZmluZCgnaW1nJyksDQoJCQlzcmNUeXBlID0gJ3NyYycsDQoJCQlsYXp5Q2xhc3MgPSAnJywNCgkJCXNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5ncywNCgkJCWNyZWF0ZSA9IGZ1bmN0aW9uKHBhdGgpIHsNCgkJCQlpY29uID0gJzxkaXYgY2xhc3M9Im93bC12aWRlby1wbGF5LWljb24iPjwvZGl2Pic7DQoNCgkJCQlpZiAoc2V0dGluZ3MubGF6eUxvYWQpIHsNCgkJCQkJdG5MaW5rID0gJCgnPGRpdi8+Jyx7DQoJCQkJCQkiY2xhc3MiOiAnb3dsLXZpZGVvLXRuICcgKyBsYXp5Q2xhc3MsDQoJCQkJCQkic3JjVHlwZSI6IHBhdGgNCgkJCQkJfSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJdG5MaW5rID0gJCggJzxkaXYvPicsIHsNCgkJCQkJCSJjbGFzcyI6ICJvd2wtdmlkZW8tdG4iLA0KCQkJCQkJInN0eWxlIjogJ29wYWNpdHk6MTtiYWNrZ3JvdW5kLWltYWdlOnVybCgnICsgcGF0aCArICcpJw0KCQkJCQl9KTsNCgkJCQl9DQoJCQkJdGFyZ2V0LmFmdGVyKHRuTGluayk7DQoJCQkJdGFyZ2V0LmFmdGVyKGljb24pOw0KCQkJfTsNCg0KCQkvLyB3cmFwIHZpZGVvIGNvbnRlbnQgaW50byBvd2wtdmlkZW8td3JhcHBlciBkaXYNCgkJdGFyZ2V0LndyYXAoICQoICc8ZGl2Lz4nLCB7DQoJCQkiY2xhc3MiOiAib3dsLXZpZGVvLXdyYXBwZXIiLA0KCQkJInN0eWxlIjogZGltZW5zaW9ucw0KCQl9KSk7DQoNCgkJaWYgKHRoaXMuX2NvcmUuc2V0dGluZ3MubGF6eUxvYWQpIHsNCgkJCXNyY1R5cGUgPSAnZGF0YS1zcmMnOw0KCQkJbGF6eUNsYXNzID0gJ293bC1sYXp5JzsNCgkJfQ0KDQoJCS8vIGN1c3RvbSB0aHVtYm5haWwNCgkJaWYgKGN1c3RvbVRuLmxlbmd0aCkgew0KCQkJY3JlYXRlKGN1c3RvbVRuLmF0dHIoc3JjVHlwZSkpOw0KCQkJY3VzdG9tVG4ucmVtb3ZlKCk7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlpZiAodmlkZW8udHlwZSA9PT0gJ3lvdXR1YmUnKSB7DQoJCQlwYXRoID0gIi8vaW1nLnlvdXR1YmUuY29tL3ZpLyIgKyB2aWRlby5pZCArICIvaHFkZWZhdWx0LmpwZyI7DQoJCQljcmVhdGUocGF0aCk7DQoJCX0gZWxzZSBpZiAodmlkZW8udHlwZSA9PT0gJ3ZpbWVvJykgew0KCQkJJC5hamF4KHsNCgkJCQl0eXBlOiAnR0VUJywNCgkJCQl1cmw6ICcvL3ZpbWVvLmNvbS9hcGkvdjIvdmlkZW8vJyArIHZpZGVvLmlkICsgJy5qc29uJywNCgkJCQlqc29ucDogJ2NhbGxiYWNrJywNCgkJCQlkYXRhVHlwZTogJ2pzb25wJywNCgkJCQlzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7DQoJCQkJCXBhdGggPSBkYXRhWzBdLnRodW1ibmFpbF9sYXJnZTsNCgkJCQkJY3JlYXRlKHBhdGgpOw0KCQkJCX0NCgkJCX0pOw0KCQl9IGVsc2UgaWYgKHZpZGVvLnR5cGUgPT09ICd2emFhcicpIHsNCgkJCSQuYWpheCh7DQoJCQkJdHlwZTogJ0dFVCcsDQoJCQkJdXJsOiAnLy92emFhci5jb20vYXBpL3ZpZGVvcy8nICsgdmlkZW8uaWQgKyAnLmpzb24nLA0KCQkJCWpzb25wOiAnY2FsbGJhY2snLA0KCQkJCWRhdGFUeXBlOiAnanNvbnAnLA0KCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJcGF0aCA9IGRhdGEuZnJhbWVncmFiX3VybDsNCgkJCQkJY3JlYXRlKHBhdGgpOw0KCQkJCX0NCgkJCX0pOw0KCQl9DQoJfTsNCg0KCS8qKg0KCSAqIFN0b3BzIHRoZSBjdXJyZW50IHZpZGVvLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglWaWRlby5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9jb3JlLnRyaWdnZXIoJ3N0b3AnLCBudWxsLCAndmlkZW8nKTsNCgkJdGhpcy5fcGxheWluZy5maW5kKCcub3dsLXZpZGVvLWZyYW1lJykucmVtb3ZlKCk7DQoJCXRoaXMuX3BsYXlpbmcucmVtb3ZlQ2xhc3MoJ293bC12aWRlby1wbGF5aW5nJyk7DQoJCXRoaXMuX3BsYXlpbmcgPSBudWxsOw0KCQl0aGlzLl9jb3JlLmxlYXZlKCdwbGF5aW5nJyk7DQoJCXRoaXMuX2NvcmUudHJpZ2dlcignc3RvcHBlZCcsIG51bGwsICd2aWRlbycpOw0KCX07DQoNCgkvKioNCgkgKiBTdGFydHMgdGhlIGN1cnJlbnQgdmlkZW8uDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy4NCgkgKi8NCglWaWRlby5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCksDQoJCQlpdGVtID0gdGFyZ2V0LmNsb3Nlc3QoJy4nICsgdGhpcy5fY29yZS5zZXR0aW5ncy5pdGVtQ2xhc3MpLA0KCQkJdmlkZW8gPSB0aGlzLl92aWRlb3NbaXRlbS5hdHRyKCdkYXRhLXZpZGVvJyldLA0KCQkJd2lkdGggPSB2aWRlby53aWR0aCB8fCAnMTAwJScsDQoJCQloZWlnaHQgPSB2aWRlby5oZWlnaHQgfHwgdGhpcy5fY29yZS4kc3RhZ2UuaGVpZ2h0KCksDQoJCQlodG1sLA0KCQkJaWZyYW1lOw0KDQoJCWlmICh0aGlzLl9wbGF5aW5nKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLl9jb3JlLmVudGVyKCdwbGF5aW5nJyk7DQoJCXRoaXMuX2NvcmUudHJpZ2dlcigncGxheScsIG51bGwsICd2aWRlbycpOw0KDQoJCWl0ZW0gPSB0aGlzLl9jb3JlLml0ZW1zKHRoaXMuX2NvcmUucmVsYXRpdmUoaXRlbS5pbmRleCgpKSk7DQoNCgkJdGhpcy5fY29yZS5yZXNldChpdGVtLmluZGV4KCkpOw0KDQoJCWh0bWwgPSAkKCAnPGlmcmFtZSBmcmFtZWJvcmRlcj0iMCIgYWxsb3dmdWxsc2NyZWVuIG1vemFsbG93ZnVsbHNjcmVlbiB3ZWJraXRBbGxvd0Z1bGxTY3JlZW4gPjwvaWZyYW1lPicgKTsNCgkJaHRtbC5hdHRyKCAnaGVpZ2h0JywgaGVpZ2h0ICk7DQoJCWh0bWwuYXR0ciggJ3dpZHRoJywgd2lkdGggKTsNCgkJaWYgKHZpZGVvLnR5cGUgPT09ICd5b3V0dWJlJykgew0KCQkJaHRtbC5hdHRyKCAnc3JjJywgJy8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyB2aWRlby5pZCArICc/YXV0b3BsYXk9MSZyZWw9MCZ2PScgKyB2aWRlby5pZCApOw0KCQl9IGVsc2UgaWYgKHZpZGVvLnR5cGUgPT09ICd2aW1lbycpIHsNCgkJCWh0bWwuYXR0ciggJ3NyYycsICcvL3BsYXllci52aW1lby5jb20vdmlkZW8vJyArIHZpZGVvLmlkICsgJz9hdXRvcGxheT0xJyApOw0KCQl9IGVsc2UgaWYgKHZpZGVvLnR5cGUgPT09ICd2emFhcicpIHsNCgkJCWh0bWwuYXR0ciggJ3NyYycsICcvL3ZpZXcudnphYXIuY29tLycgKyB2aWRlby5pZCArICcvcGxheWVyP2F1dG9wbGF5PXRydWUnICk7DQoJCX0NCg0KCQlpZnJhbWUgPSAkKGh0bWwpLndyYXAoICc8ZGl2IGNsYXNzPSJvd2wtdmlkZW8tZnJhbWUiIC8+JyApLmluc2VydEFmdGVyKGl0ZW0uZmluZCgnLm93bC12aWRlbycpKTsNCg0KCQl0aGlzLl9wbGF5aW5nID0gaXRlbS5hZGRDbGFzcygnb3dsLXZpZGVvLXBsYXlpbmcnKTsNCgl9Ow0KDQoJLyoqDQoJICogQ2hlY2tzIHdoZXRoZXIgYW4gdmlkZW8gaXMgY3VycmVudGx5IGluIGZ1bGwgc2NyZWVuIG1vZGUgb3Igbm90Lg0KCSAqIEB0b2RvIEJhZCBzdHlsZSBiZWNhdXNlIGxvb2tzIGxpa2UgYSByZWFkb25seSBtZXRob2QgYnV0IGNoYW5nZXMgbWVtYmVycy4NCgkgKiBAcHJvdGVjdGVkDQoJICogQHJldHVybnMge0Jvb2xlYW59DQoJICovDQoJVmlkZW8ucHJvdG90eXBlLmlzSW5GdWxsU2NyZWVuID0gZnVuY3Rpb24oKSB7DQoJCXZhciBlbGVtZW50ID0gZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQgfHwgZG9jdW1lbnQubW96RnVsbFNjcmVlbkVsZW1lbnQgfHwNCgkJCQlkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudDsNCg0KCQlyZXR1cm4gZWxlbWVudCAmJiAkKGVsZW1lbnQpLnBhcmVudCgpLmhhc0NsYXNzKCdvd2wtdmlkZW8tZnJhbWUnKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVzdHJveXMgdGhlIHBsdWdpbi4NCgkgKi8NCglWaWRlby5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgaGFuZGxlciwgcHJvcGVydHk7DQoNCgkJdGhpcy5fY29yZS4kZWxlbWVudC5vZmYoJ2NsaWNrLm93bC52aWRlbycpOw0KDQoJCWZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykgew0KCQkJdGhpcy5fY29yZS4kZWxlbWVudC5vZmYoaGFuZGxlciwgdGhpcy5faGFuZGxlcnNbaGFuZGxlcl0pOw0KCQl9DQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsNCgkJCXR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPSAnZnVuY3Rpb24nICYmICh0aGlzW3Byb3BlcnR5XSA9IG51bGwpOw0KCQl9DQoJfTsNCg0KCSQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5WaWRlbyA9IFZpZGVvOw0KDQp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7DQoNCi8qKg0KICogQW5pbWF0ZSBQbHVnaW4NCiAqIEB2ZXJzaW9uIDIuMy40DQogKiBAYXV0aG9yIEJhcnRvc3ogV29qY2llY2hvd3NraQ0KICogQGF1dGhvciBEYXZpZCBEZXV0c2NoDQogKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVCkNCiAqLw0KOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHsNCg0KCS8qKg0KCSAqIENyZWF0ZXMgdGhlIGFuaW1hdGUgcGx1Z2luLg0KCSAqIEBjbGFzcyBUaGUgTmF2aWdhdGlvbiBQbHVnaW4NCgkgKiBAcGFyYW0ge093bH0gc2NvcGUgLSBUaGUgT3dsIENhcm91c2VsDQoJICovDQoJdmFyIEFuaW1hdGUgPSBmdW5jdGlvbihzY29wZSkgew0KCQl0aGlzLmNvcmUgPSBzY29wZTsNCgkJdGhpcy5jb3JlLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgQW5pbWF0ZS5EZWZhdWx0cywgdGhpcy5jb3JlLm9wdGlvbnMpOw0KCQl0aGlzLnN3YXBwaW5nID0gdHJ1ZTsNCgkJdGhpcy5wcmV2aW91cyA9IHVuZGVmaW5lZDsNCgkJdGhpcy5uZXh0ID0gdW5kZWZpbmVkOw0KDQoJCXRoaXMuaGFuZGxlcnMgPSB7DQoJCQknY2hhbmdlLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLm5hbWVzcGFjZSAmJiBlLnByb3BlcnR5Lm5hbWUgPT0gJ3Bvc2l0aW9uJykgew0KCQkJCQl0aGlzLnByZXZpb3VzID0gdGhpcy5jb3JlLmN1cnJlbnQoKTsNCgkJCQkJdGhpcy5uZXh0ID0gZS5wcm9wZXJ0eS52YWx1ZTsNCgkJCQl9DQoJCQl9LCB0aGlzKSwNCgkJCSdkcmFnLm93bC5jYXJvdXNlbCBkcmFnZ2VkLm93bC5jYXJvdXNlbCB0cmFuc2xhdGVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLm5hbWVzcGFjZSkgew0KCQkJCQl0aGlzLnN3YXBwaW5nID0gZS50eXBlID09ICd0cmFuc2xhdGVkJzsNCgkJCQl9DQoJCQl9LCB0aGlzKSwNCgkJCSd0cmFuc2xhdGUub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlICYmIHRoaXMuc3dhcHBpbmcgJiYgKHRoaXMuY29yZS5vcHRpb25zLmFuaW1hdGVPdXQgfHwgdGhpcy5jb3JlLm9wdGlvbnMuYW5pbWF0ZUluKSkgew0KCQkJCQl0aGlzLnN3YXAoKTsNCgkJCQl9DQoJCQl9LCB0aGlzKQ0KCQl9Ow0KDQoJCXRoaXMuY29yZS4kZWxlbWVudC5vbih0aGlzLmhhbmRsZXJzKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVmYXVsdCBvcHRpb25zLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglBbmltYXRlLkRlZmF1bHRzID0gew0KCQlhbmltYXRlT3V0OiBmYWxzZSwNCgkJYW5pbWF0ZUluOiBmYWxzZQ0KCX07DQoNCgkvKioNCgkgKiBUb2dnbGVzIHRoZSBhbmltYXRpb24gY2xhc3NlcyB3aGVuZXZlciBhbiB0cmFuc2xhdGlvbnMgc3RhcnRzLg0KCSAqIEBwcm90ZWN0ZWQNCgkgKiBAcmV0dXJucyB7Qm9vbGVhbnx1bmRlZmluZWR9DQoJICovDQoJQW5pbWF0ZS5wcm90b3R5cGUuc3dhcCA9IGZ1bmN0aW9uKCkgew0KDQoJCWlmICh0aGlzLmNvcmUuc2V0dGluZ3MuaXRlbXMgIT09IDEpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICghJC5zdXBwb3J0LmFuaW1hdGlvbiB8fCAhJC5zdXBwb3J0LnRyYW5zaXRpb24pIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuY29yZS5zcGVlZCgwKTsNCg0KCQl2YXIgbGVmdCwNCgkJCWNsZWFyID0gJC5wcm94eSh0aGlzLmNsZWFyLCB0aGlzKSwNCgkJCXByZXZpb3VzID0gdGhpcy5jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKHRoaXMucHJldmlvdXMpLA0KCQkJbmV4dCA9IHRoaXMuY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS5lcSh0aGlzLm5leHQpLA0KCQkJaW5jb21pbmcgPSB0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZUluLA0KCQkJb3V0Z29pbmcgPSB0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZU91dDsNCg0KCQlpZiAodGhpcy5jb3JlLmN1cnJlbnQoKSA9PT0gdGhpcy5wcmV2aW91cykgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKG91dGdvaW5nKSB7DQoJCQlsZWZ0ID0gdGhpcy5jb3JlLmNvb3JkaW5hdGVzKHRoaXMucHJldmlvdXMpIC0gdGhpcy5jb3JlLmNvb3JkaW5hdGVzKHRoaXMubmV4dCk7DQoJCQlwcmV2aW91cy5vbmUoJC5zdXBwb3J0LmFuaW1hdGlvbi5lbmQsIGNsZWFyKQ0KCQkJCS5jc3MoIHsgJ2xlZnQnOiBsZWZ0ICsgJ3B4JyB9ICkNCgkJCQkuYWRkQ2xhc3MoJ2FuaW1hdGVkIG93bC1hbmltYXRlZC1vdXQnKQ0KCQkJCS5hZGRDbGFzcyhvdXRnb2luZyk7DQoJCX0NCg0KCQlpZiAoaW5jb21pbmcpIHsNCgkJCW5leHQub25lKCQuc3VwcG9ydC5hbmltYXRpb24uZW5kLCBjbGVhcikNCgkJCQkuYWRkQ2xhc3MoJ2FuaW1hdGVkIG93bC1hbmltYXRlZC1pbicpDQoJCQkJLmFkZENsYXNzKGluY29taW5nKTsNCgkJfQ0KCX07DQoNCglBbmltYXRlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uKGUpIHsNCgkJJChlLnRhcmdldCkuY3NzKCB7ICdsZWZ0JzogJycgfSApDQoJCQkucmVtb3ZlQ2xhc3MoJ2FuaW1hdGVkIG93bC1hbmltYXRlZC1vdXQgb3dsLWFuaW1hdGVkLWluJykNCgkJCS5yZW1vdmVDbGFzcyh0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZUluKQ0KCQkJLnJlbW92ZUNsYXNzKHRoaXMuY29yZS5zZXR0aW5ncy5hbmltYXRlT3V0KTsNCgkJdGhpcy5jb3JlLm9uVHJhbnNpdGlvbkVuZCgpOw0KCX07DQoNCgkvKioNCgkgKiBEZXN0cm95cyB0aGUgcGx1Z2luLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglBbmltYXRlLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7DQoJCXZhciBoYW5kbGVyLCBwcm9wZXJ0eTsNCg0KCQlmb3IgKGhhbmRsZXIgaW4gdGhpcy5oYW5kbGVycykgew0KCQkJdGhpcy5jb3JlLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLmhhbmRsZXJzW2hhbmRsZXJdKTsNCgkJfQ0KCQlmb3IgKHByb3BlcnR5IGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKSB7DQoJCQl0eXBlb2YgdGhpc1twcm9wZXJ0eV0gIT0gJ2Z1bmN0aW9uJyAmJiAodGhpc1twcm9wZXJ0eV0gPSBudWxsKTsNCgkJfQ0KCX07DQoNCgkkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuQW5pbWF0ZSA9IEFuaW1hdGU7DQoNCn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTsNCg0KLyoqDQogKiBBdXRvcGxheSBQbHVnaW4NCiAqIEB2ZXJzaW9uIDIuMy40DQogKiBAYXV0aG9yIEJhcnRvc3ogV29qY2llY2hvd3NraQ0KICogQGF1dGhvciBBcnR1cyBLb2xhbm93c2tpDQogKiBAYXV0aG9yIERhdmlkIERldXRzY2gNCiAqIEBhdXRob3IgVG9tIERlIENhbHV3w6kNCiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKQ0KICovDQo7KGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgew0KDQoJLyoqDQoJICogQ3JlYXRlcyB0aGUgYXV0b3BsYXkgcGx1Z2luLg0KCSAqIEBjbGFzcyBUaGUgQXV0b3BsYXkgUGx1Z2luDQoJICogQHBhcmFtIHtPd2x9IHNjb3BlIC0gVGhlIE93bCBDYXJvdXNlbA0KCSAqLw0KCXZhciBBdXRvcGxheSA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7DQoJCS8qKg0KCQkgKiBSZWZlcmVuY2UgdG8gdGhlIGNvcmUuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge093bH0NCgkJICovDQoJCXRoaXMuX2NvcmUgPSBjYXJvdXNlbDsNCg0KCQkvKioNCgkJICogVGhlIGF1dG9wbGF5IHRpbWVvdXQgaWQuDQoJCSAqIEB0eXBlIHtOdW1iZXJ9DQoJCSAqLw0KCQl0aGlzLl9jYWxsID0gbnVsbDsNCg0KCQkvKioNCgkJICogRGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZiB0aGUgcGx1Z2luLCB0aGlzIHZhcmlhYmxlIGNvbnRhaW5zIGVpdGhlcg0KCQkgKiB0aGUgc3RhcnQgdGltZSBvZiB0aGUgdGltZXIgb3IgdGhlIGN1cnJlbnQgdGltZXIgdmFsdWUgaWYgaXQncw0KCQkgKiBwYXVzZWQuIFNpbmNlIHdlIHN0YXJ0IGluIGEgcGF1c2VkIHN0YXRlIHdlIGluaXRpYWxpemUgdGhlIHRpbWVyDQoJCSAqIHZhbHVlLg0KCQkgKiBAdHlwZSB7TnVtYmVyfQ0KCQkgKi8NCgkJdGhpcy5fdGltZSA9IDA7DQoNCgkJLyoqDQoJCSAqIFN0b3JlcyB0aGUgdGltZW91dCBjdXJyZW50bHkgdXNlZC4NCgkJICogQHR5cGUge051bWJlcn0NCgkJICovDQoJCXRoaXMuX3RpbWVvdXQgPSAwOw0KDQoJCS8qKg0KCQkgKiBJbmRpY2F0ZXMgd2hlbmV2ZXIgdGhlIGF1dG9wbGF5IGlzIHBhdXNlZC4NCgkJICogQHR5cGUge0Jvb2xlYW59DQoJCSAqLw0KCQl0aGlzLl9wYXVzZWQgPSB0cnVlOw0KDQoJCS8qKg0KCQkgKiBBbGwgZXZlbnQgaGFuZGxlcnMuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge09iamVjdH0NCgkJICovDQoJCXRoaXMuX2hhbmRsZXJzID0gew0KCQkJJ2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlICYmIGUucHJvcGVydHkubmFtZSA9PT0gJ3NldHRpbmdzJykgew0KCQkJCQlpZiAodGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheSkgew0KCQkJCQkJdGhpcy5wbGF5KCk7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQl0aGlzLnN0b3AoKTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSBpZiAoZS5uYW1lc3BhY2UgJiYgZS5wcm9wZXJ0eS5uYW1lID09PSAncG9zaXRpb24nICYmIHRoaXMuX3BhdXNlZCkgew0KCQkJCQkvLyBSZXNldCB0aGUgdGltZXIuIFRoaXMgY29kZSBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgcG9zaXRpb24NCgkJCQkJLy8gb2YgdGhlIGNhcm91c2VsIHdhcyBjaGFuZ2VkIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4NCgkJCQkJdGhpcy5fdGltZSA9IDA7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQknaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXkpIHsNCgkJCQkJdGhpcy5wbGF5KCk7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQkncGxheS5vd2wuYXV0b3BsYXknOiAkLnByb3h5KGZ1bmN0aW9uKGUsIHQsIHMpIHsNCgkJCQlpZiAoZS5uYW1lc3BhY2UpIHsNCgkJCQkJdGhpcy5wbGF5KHQsIHMpOw0KCQkJCX0NCgkJCX0sIHRoaXMpLA0KCQkJJ3N0b3Aub3dsLmF1dG9wbGF5JzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlKSB7DQoJCQkJCXRoaXMuc3RvcCgpOw0KCQkJCX0NCgkJCX0sIHRoaXMpLA0KCQkJJ21vdXNlb3Zlci5vd2wuYXV0b3BsYXknOiAkLnByb3h5KGZ1bmN0aW9uKCkgew0KCQkJCWlmICh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSAmJiB0aGlzLl9jb3JlLmlzKCdyb3RhdGluZycpKSB7DQoJCQkJCXRoaXMucGF1c2UoKTsNCgkJCQl9DQoJCQl9LCB0aGlzKSwNCgkJCSdtb3VzZWxlYXZlLm93bC5hdXRvcGxheSc6ICQucHJveHkoZnVuY3Rpb24oKSB7DQoJCQkJaWYgKHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlIb3ZlclBhdXNlICYmIHRoaXMuX2NvcmUuaXMoJ3JvdGF0aW5nJykpIHsNCgkJCQkJdGhpcy5wbGF5KCk7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQkndG91Y2hzdGFydC5vd2wuY29yZSc6ICQucHJveHkoZnVuY3Rpb24oKSB7DQoJCQkJaWYgKHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlIb3ZlclBhdXNlICYmIHRoaXMuX2NvcmUuaXMoJ3JvdGF0aW5nJykpIHsNCgkJCQkJdGhpcy5wYXVzZSgpOw0KCQkJCX0NCgkJCX0sIHRoaXMpLA0KCQkJJ3RvdWNoZW5kLm93bC5jb3JlJzogJC5wcm94eShmdW5jdGlvbigpIHsNCgkJCQlpZiAodGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheUhvdmVyUGF1c2UpIHsNCgkJCQkJdGhpcy5wbGF5KCk7DQoJCQkJfQ0KCQkJfSwgdGhpcykNCgkJfTsNCg0KCQkvLyByZWdpc3RlciBldmVudCBoYW5kbGVycw0KCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKTsNCg0KCQkvLyBzZXQgZGVmYXVsdCBvcHRpb25zDQoJCXRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBBdXRvcGxheS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVmYXVsdCBvcHRpb25zLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglBdXRvcGxheS5EZWZhdWx0cyA9IHsNCgkJYXV0b3BsYXk6IGZhbHNlLA0KCQlhdXRvcGxheVRpbWVvdXQ6IDUwMDAsDQoJCWF1dG9wbGF5SG92ZXJQYXVzZTogZmFsc2UsDQoJCWF1dG9wbGF5U3BlZWQ6IGZhbHNlDQoJfTsNCg0KCS8qKg0KCSAqIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc2xpZGUgYW5kIHNldCBhIHRpbWVvdXQgZm9yIHRoZSBuZXh0IHRyYW5zaXRpb24uDQoJICogQHByaXZhdGUNCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSBhbmltYXRpb24gc3BlZWQgZm9yIHRoZSBhbmltYXRpb25zLg0KCSAqLw0KCUF1dG9wbGF5LnByb3RvdHlwZS5fbmV4dCA9IGZ1bmN0aW9uKHNwZWVkKSB7DQoJCXRoaXMuX2NhbGwgPSB3aW5kb3cuc2V0VGltZW91dCgNCgkJCSQucHJveHkodGhpcy5fbmV4dCwgdGhpcywgc3BlZWQpLA0KCQkJdGhpcy5fdGltZW91dCAqIChNYXRoLnJvdW5kKHRoaXMucmVhZCgpIC8gdGhpcy5fdGltZW91dCkgKyAxKSAtIHRoaXMucmVhZCgpDQoJCSk7DQoNCgkJaWYgKHRoaXMuX2NvcmUuaXMoJ2ludGVyYWN0aW5nJykgfHwgZG9jdW1lbnQuaGlkZGVuKSB7DQoJCQlyZXR1cm47DQoJCX0NCgkJdGhpcy5fY29yZS5uZXh0KHNwZWVkIHx8IHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlTcGVlZCk7DQoJfQ0KDQoJLyoqDQoJICogUmVhZHMgdGhlIGN1cnJlbnQgdGltZXIgdmFsdWUgd2hlbiB0aGUgdGltZXIgaXMgcGxheWluZy4NCgkgKiBAcHVibGljDQoJICovDQoJQXV0b3BsYXkucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy5fdGltZTsNCgl9Ow0KDQoJLyoqDQoJICogU3RhcnRzIHRoZSBhdXRvcGxheS4NCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtOdW1iZXJ9IFt0aW1lb3V0XSAtIFRoZSBpbnRlcnZhbCBiZWZvcmUgdGhlIG5leHQgYW5pbWF0aW9uIHN0YXJ0cy4NCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSBhbmltYXRpb24gc3BlZWQgZm9yIHRoZSBhbmltYXRpb25zLg0KCSAqLw0KCUF1dG9wbGF5LnByb3RvdHlwZS5wbGF5ID0gZnVuY3Rpb24odGltZW91dCwgc3BlZWQpIHsNCgkJdmFyIGVsYXBzZWQ7DQoNCgkJaWYgKCF0aGlzLl9jb3JlLmlzKCdyb3RhdGluZycpKSB7DQoJCQl0aGlzLl9jb3JlLmVudGVyKCdyb3RhdGluZycpOw0KCQl9DQoNCgkJdGltZW91dCA9IHRpbWVvdXQgfHwgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheVRpbWVvdXQ7DQoNCgkJLy8gQ2FsY3VsYXRlIHRoZSBlbGFwc2VkIHRpbWUgc2luY2UgdGhlIGxhc3QgdHJhbnNpdGlvbi4gSWYgdGhlIGNhcm91c2VsDQoJCS8vIHdhc24ndCBwbGF5aW5nIHRoaXMgY2FsY3VsYXRpb24gd2lsbCB5aWVsZCB6ZXJvLg0KCQllbGFwc2VkID0gTWF0aC5taW4odGhpcy5fdGltZSAlICh0aGlzLl90aW1lb3V0IHx8IHRpbWVvdXQpLCB0aW1lb3V0KTsNCg0KCQlpZiAodGhpcy5fcGF1c2VkKSB7DQoJCQkvLyBTdGFydCB0aGUgY2xvY2suDQoJCQl0aGlzLl90aW1lID0gdGhpcy5yZWFkKCk7DQoJCQl0aGlzLl9wYXVzZWQgPSBmYWxzZTsNCgkJfSBlbHNlIHsNCgkJCS8vIENsZWFyIHRoZSBhY3RpdmUgdGltZW91dCB0byBhbGxvdyByZXBsYWNlbWVudC4NCgkJCXdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fY2FsbCk7DQoJCX0NCg0KCQkvLyBBZGp1c3QgdGhlIG9yaWdpbiBvZiB0aGUgdGltZXIgdG8gbWF0Y2ggdGhlIG5ldyB0aW1lb3V0IHZhbHVlLg0KCQl0aGlzLl90aW1lICs9IHRoaXMucmVhZCgpICUgdGltZW91dCAtIGVsYXBzZWQ7DQoNCgkJdGhpcy5fdGltZW91dCA9IHRpbWVvdXQ7DQoJCXRoaXMuX2NhbGwgPSB3aW5kb3cuc2V0VGltZW91dCgkLnByb3h5KHRoaXMuX25leHQsIHRoaXMsIHNwZWVkKSwgdGltZW91dCAtIGVsYXBzZWQpOw0KCX07DQoNCgkvKioNCgkgKiBTdG9wcyB0aGUgYXV0b3BsYXkuDQoJICogQHB1YmxpYw0KCSAqLw0KCUF1dG9wbGF5LnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24oKSB7DQoJCWlmICh0aGlzLl9jb3JlLmlzKCdyb3RhdGluZycpKSB7DQoJCQkvLyBSZXNldCB0aGUgY2xvY2suDQoJCQl0aGlzLl90aW1lID0gMDsNCgkJCXRoaXMuX3BhdXNlZCA9IHRydWU7DQoNCgkJCXdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fY2FsbCk7DQoJCQl0aGlzLl9jb3JlLmxlYXZlKCdyb3RhdGluZycpOw0KCQl9DQoJfTsNCg0KCS8qKg0KCSAqIFBhdXNlcyB0aGUgYXV0b3BsYXkuDQoJICogQHB1YmxpYw0KCSAqLw0KCUF1dG9wbGF5LnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uKCkgew0KCQlpZiAodGhpcy5fY29yZS5pcygncm90YXRpbmcnKSAmJiAhdGhpcy5fcGF1c2VkKSB7DQoJCQkvLyBQYXVzZSB0aGUgY2xvY2suDQoJCQl0aGlzLl90aW1lID0gdGhpcy5yZWFkKCk7DQoJCQl0aGlzLl9wYXVzZWQgPSB0cnVlOw0KDQoJCQl3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuX2NhbGwpOw0KCQl9DQoJfTsNCg0KCS8qKg0KCSAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uDQoJICovDQoJQXV0b3BsYXkucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHsNCgkJdmFyIGhhbmRsZXIsIHByb3BlcnR5Ow0KDQoJCXRoaXMuc3RvcCgpOw0KDQoJCWZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykgew0KCQkJdGhpcy5fY29yZS4kZWxlbWVudC5vZmYoaGFuZGxlciwgdGhpcy5faGFuZGxlcnNbaGFuZGxlcl0pOw0KCQl9DQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsNCgkJCXR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPSAnZnVuY3Rpb24nICYmICh0aGlzW3Byb3BlcnR5XSA9IG51bGwpOw0KCQl9DQoJfTsNCg0KCSQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5hdXRvcGxheSA9IEF1dG9wbGF5Ow0KDQp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7DQoNCi8qKg0KICogTmF2aWdhdGlvbiBQbHVnaW4NCiAqIEB2ZXJzaW9uIDIuMy40DQogKiBAYXV0aG9yIEFydHVzIEtvbGFub3dza2kNCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaA0KICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpDQogKi8NCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7DQoJJ3VzZSBzdHJpY3QnOw0KDQoJLyoqDQoJICogQ3JlYXRlcyB0aGUgbmF2aWdhdGlvbiBwbHVnaW4uDQoJICogQGNsYXNzIFRoZSBOYXZpZ2F0aW9uIFBsdWdpbg0KCSAqIEBwYXJhbSB7T3dsfSBjYXJvdXNlbCAtIFRoZSBPd2wgQ2Fyb3VzZWwuDQoJICovDQoJdmFyIE5hdmlnYXRpb24gPSBmdW5jdGlvbihjYXJvdXNlbCkgew0KCQkvKioNCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPd2x9DQoJCSAqLw0KCQl0aGlzLl9jb3JlID0gY2Fyb3VzZWw7DQoNCgkJLyoqDQoJCSAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBwbHVnaW4gaXMgaW5pdGlhbGl6ZWQgb3Igbm90Lg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtCb29sZWFufQ0KCQkgKi8NCgkJdGhpcy5faW5pdGlhbGl6ZWQgPSBmYWxzZTsNCg0KCQkvKioNCgkJICogVGhlIGN1cnJlbnQgcGFnaW5nIGluZGV4ZXMuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge0FycmF5fQ0KCQkgKi8NCgkJdGhpcy5fcGFnZXMgPSBbXTsNCg0KCQkvKioNCgkJICogQWxsIERPTSBlbGVtZW50cyBvZiB0aGUgdXNlciBpbnRlcmZhY2UuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge09iamVjdH0NCgkJICovDQoJCXRoaXMuX2NvbnRyb2xzID0ge307DQoNCgkJLyoqDQoJCSAqIE1hcmt1cCBmb3IgYW4gaW5kaWNhdG9yLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtBcnJheS48U3RyaW5nPn0NCgkJICovDQoJCXRoaXMuX3RlbXBsYXRlcyA9IFtdOw0KDQoJCS8qKg0KCQkgKiBUaGUgY2Fyb3VzZWwgZWxlbWVudC4NCgkJICogQHR5cGUge2pRdWVyeX0NCgkJICovDQoJCXRoaXMuJGVsZW1lbnQgPSB0aGlzLl9jb3JlLiRlbGVtZW50Ow0KDQoJCS8qKg0KCQkgKiBPdmVycmlkZGVuIG1ldGhvZHMgb2YgdGhlIGNhcm91c2VsLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPYmplY3R9DQoJCSAqLw0KCQl0aGlzLl9vdmVycmlkZXMgPSB7DQoJCQluZXh0OiB0aGlzLl9jb3JlLm5leHQsDQoJCQlwcmV2OiB0aGlzLl9jb3JlLnByZXYsDQoJCQl0bzogdGhpcy5fY29yZS50bw0KCQl9Ow0KDQoJCS8qKg0KCQkgKiBBbGwgZXZlbnQgaGFuZGxlcnMuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge09iamVjdH0NCgkJICovDQoJCXRoaXMuX2hhbmRsZXJzID0gew0KCQkJJ3ByZXBhcmVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmRvdHNEYXRhKSB7DQoJCQkJCXRoaXMuX3RlbXBsYXRlcy5wdXNoKCc8ZGl2IGNsYXNzPSInICsgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RDbGFzcyArICciPicgKw0KCQkJCQkJJChlLmNvbnRlbnQpLmZpbmQoJ1tkYXRhLWRvdF0nKS5hZGRCYWNrKCdbZGF0YS1kb3RdJykuYXR0cignZGF0YS1kb3QnKSArICc8L2Rpdj4nKTsNCgkJCQl9DQoJCQl9LCB0aGlzKSwNCgkJCSdhZGRlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RzRGF0YSkgew0KCQkJCQl0aGlzLl90ZW1wbGF0ZXMuc3BsaWNlKGUucG9zaXRpb24sIDAsIHRoaXMuX3RlbXBsYXRlcy5wb3AoKSk7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQkncmVtb3ZlLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmRvdHNEYXRhKSB7DQoJCQkJCXRoaXMuX3RlbXBsYXRlcy5zcGxpY2UoZS5wb3NpdGlvbiwgMSk7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQknY2hhbmdlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgZS5wcm9wZXJ0eS5uYW1lID09ICdwb3NpdGlvbicpIHsNCgkJCQkJdGhpcy5kcmF3KCk7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQknaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlICYmICF0aGlzLl9pbml0aWFsaXplZCkgew0KCQkJCQl0aGlzLl9jb3JlLnRyaWdnZXIoJ2luaXRpYWxpemUnLCBudWxsLCAnbmF2aWdhdGlvbicpOw0KCQkJCQl0aGlzLmluaXRpYWxpemUoKTsNCgkJCQkJdGhpcy51cGRhdGUoKTsNCgkJCQkJdGhpcy5kcmF3KCk7DQoJCQkJCXRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTsNCgkJCQkJdGhpcy5fY29yZS50cmlnZ2VyKCdpbml0aWFsaXplZCcsIG51bGwsICduYXZpZ2F0aW9uJyk7DQoJCQkJfQ0KCQkJfSwgdGhpcyksDQoJCQkncmVmcmVzaGVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9pbml0aWFsaXplZCkgew0KCQkJCQl0aGlzLl9jb3JlLnRyaWdnZXIoJ3JlZnJlc2gnLCBudWxsLCAnbmF2aWdhdGlvbicpOw0KCQkJCQl0aGlzLnVwZGF0ZSgpOw0KCQkJCQl0aGlzLmRyYXcoKTsNCgkJCQkJdGhpcy5fY29yZS50cmlnZ2VyKCdyZWZyZXNoZWQnLCBudWxsLCAnbmF2aWdhdGlvbicpOw0KCQkJCX0NCgkJCX0sIHRoaXMpDQoJCX07DQoNCgkJLy8gc2V0IGRlZmF1bHQgb3B0aW9ucw0KCQl0aGlzLl9jb3JlLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTmF2aWdhdGlvbi5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKTsNCg0KCQkvLyByZWdpc3RlciBldmVudCBoYW5kbGVycw0KCQl0aGlzLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKTsNCgl9Ow0KDQoJLyoqDQoJICogRGVmYXVsdCBvcHRpb25zLg0KCSAqIEBwdWJsaWMNCgkgKiBAdG9kbyBSZW5hbWUgYHNsaWRlQnlgIHRvIGBuYXZCeWANCgkgKi8NCglOYXZpZ2F0aW9uLkRlZmF1bHRzID0gew0KCQluYXY6IGZhbHNlLA0KCQluYXZUZXh0OiBbDQoJCQknPHNwYW4gYXJpYS1sYWJlbD0iJyArICdQcmV2aW91cycgKyAnIj4mI3gyMDM5Ozwvc3Bhbj4nLA0KCQkJJzxzcGFuIGFyaWEtbGFiZWw9IicgKyAnTmV4dCcgKyAnIj4mI3gyMDNhOzwvc3Bhbj4nDQoJCV0sDQoJCW5hdlNwZWVkOiBmYWxzZSwNCgkJbmF2RWxlbWVudDogJ2J1dHRvbiB0eXBlPSJidXR0b24iIHJvbGU9InByZXNlbnRhdGlvbiInLA0KCQluYXZDb250YWluZXI6IGZhbHNlLA0KCQluYXZDb250YWluZXJDbGFzczogJ293bC1uYXYnLA0KCQluYXZDbGFzczogWw0KCQkJJ293bC1wcmV2JywNCgkJCSdvd2wtbmV4dCcNCgkJXSwNCgkJc2xpZGVCeTogMSwNCgkJZG90Q2xhc3M6ICdvd2wtZG90JywNCgkJZG90c0NsYXNzOiAnb3dsLWRvdHMnLA0KCQlkb3RzOiB0cnVlLA0KCQlkb3RzRWFjaDogZmFsc2UsDQoJCWRvdHNEYXRhOiBmYWxzZSwNCgkJZG90c1NwZWVkOiBmYWxzZSwNCgkJZG90c0NvbnRhaW5lcjogZmFsc2UNCgl9Ow0KDQoJLyoqDQoJICogSW5pdGlhbGl6ZXMgdGhlIGxheW91dCBvZiB0aGUgcGx1Z2luIGFuZCBleHRlbmRzIHRoZSBjYXJvdXNlbC4NCgkgKiBAcHJvdGVjdGVkDQoJICovDQoJTmF2aWdhdGlvbi5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3ZlcnJpZGUsDQoJCQlzZXR0aW5ncyA9IHRoaXMuX2NvcmUuc2V0dGluZ3M7DQoNCgkJLy8gY3JlYXRlIERPTSBzdHJ1Y3R1cmUgZm9yIHJlbGF0aXZlIG5hdmlnYXRpb24NCgkJdGhpcy5fY29udHJvbHMuJHJlbGF0aXZlID0gKHNldHRpbmdzLm5hdkNvbnRhaW5lciA/ICQoc2V0dGluZ3MubmF2Q29udGFpbmVyKQ0KCQkJOiAkKCc8ZGl2PicpLmFkZENsYXNzKHNldHRpbmdzLm5hdkNvbnRhaW5lckNsYXNzKS5hcHBlbmRUbyh0aGlzLiRlbGVtZW50KSkuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7DQoNCgkJdGhpcy5fY29udHJvbHMuJHByZXZpb3VzID0gJCgnPCcgKyBzZXR0aW5ncy5uYXZFbGVtZW50ICsgJz4nKQ0KCQkJLmFkZENsYXNzKHNldHRpbmdzLm5hdkNsYXNzWzBdKQ0KCQkJLmh0bWwoc2V0dGluZ3MubmF2VGV4dFswXSkNCgkJCS5wcmVwZW5kVG8odGhpcy5fY29udHJvbHMuJHJlbGF0aXZlKQ0KCQkJLm9uKCdjbGljaycsICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJCXRoaXMucHJldihzZXR0aW5ncy5uYXZTcGVlZCk7DQoJCQl9LCB0aGlzKSk7DQoJCXRoaXMuX2NvbnRyb2xzLiRuZXh0ID0gJCgnPCcgKyBzZXR0aW5ncy5uYXZFbGVtZW50ICsgJz4nKQ0KCQkJLmFkZENsYXNzKHNldHRpbmdzLm5hdkNsYXNzWzFdKQ0KCQkJLmh0bWwoc2V0dGluZ3MubmF2VGV4dFsxXSkNCgkJCS5hcHBlbmRUbyh0aGlzLl9jb250cm9scy4kcmVsYXRpdmUpDQoJCQkub24oJ2NsaWNrJywgJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJdGhpcy5uZXh0KHNldHRpbmdzLm5hdlNwZWVkKTsNCgkJCX0sIHRoaXMpKTsNCg0KCQkvLyBjcmVhdGUgRE9NIHN0cnVjdHVyZSBmb3IgYWJzb2x1dGUgbmF2aWdhdGlvbg0KCQlpZiAoIXNldHRpbmdzLmRvdHNEYXRhKSB7DQoJCQl0aGlzLl90ZW1wbGF0ZXMgPSBbICQoJzxidXR0b24gcm9sZT0iYnV0dG9uIj4nKQ0KCQkJCS5hZGRDbGFzcyhzZXR0aW5ncy5kb3RDbGFzcykNCgkJCQkuYXBwZW5kKCQoJzxzcGFuPicpKQ0KCQkJCS5wcm9wKCdvdXRlckhUTUwnKSBdOw0KCQl9DQoNCgkJdGhpcy5fY29udHJvbHMuJGFic29sdXRlID0gKHNldHRpbmdzLmRvdHNDb250YWluZXIgPyAkKHNldHRpbmdzLmRvdHNDb250YWluZXIpDQoJCQk6ICQoJzxkaXY+JykuYWRkQ2xhc3Moc2V0dGluZ3MuZG90c0NsYXNzKS5hcHBlbmRUbyh0aGlzLiRlbGVtZW50KSkuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7DQoNCgkJdGhpcy5fY29udHJvbHMuJGFic29sdXRlLm9uKCdjbGljaycsICdidXR0b24nLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCXZhciBpbmRleCA9ICQoZS50YXJnZXQpLnBhcmVudCgpLmlzKHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZSkNCgkJCQk/ICQoZS50YXJnZXQpLmluZGV4KCkgOiAkKGUudGFyZ2V0KS5wYXJlbnQoKS5pbmRleCgpOw0KDQoJCQllLnByZXZlbnREZWZhdWx0KCk7DQoNCgkJCXRoaXMudG8oaW5kZXgsIHNldHRpbmdzLmRvdHNTcGVlZCk7DQoJCX0sIHRoaXMpKTsNCg0KCQkvKiRlbC5vbignZm9jdXNpbicsIGZ1bmN0aW9uKCkgew0KCQkJJChkb2N1bWVudCkub2ZmKCIuY2Fyb3VzZWwiKTsNCg0KCQkJJChkb2N1bWVudCkub24oJ2tleWRvd24uY2Fyb3VzZWwnLCBmdW5jdGlvbihlKSB7DQoJCQkJaWYoZS5rZXlDb2RlID09IDM3KSB7DQoJCQkJCSRlbC50cmlnZ2VyKCdwcmV2Lm93bCcpDQoJCQkJfQ0KCQkJCWlmKGUua2V5Q29kZSA9PSAzOSkgew0KCQkJCQkkZWwudHJpZ2dlcignbmV4dC5vd2wnKQ0KCQkJCX0NCgkJCX0pOw0KCQl9KTsqLw0KDQoJCS8vIG92ZXJyaWRlIHB1YmxpYyBtZXRob2RzIG9mIHRoZSBjYXJvdXNlbA0KCQlmb3IgKG92ZXJyaWRlIGluIHRoaXMuX292ZXJyaWRlcykgew0KCQkJdGhpcy5fY29yZVtvdmVycmlkZV0gPSAkLnByb3h5KHRoaXNbb3ZlcnJpZGVdLCB0aGlzKTsNCgkJfQ0KCX07DQoNCgkvKioNCgkgKiBEZXN0cm95cyB0aGUgcGx1Z2luLg0KCSAqIEBwcm90ZWN0ZWQNCgkgKi8NCglOYXZpZ2F0aW9uLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7DQoJCXZhciBoYW5kbGVyLCBjb250cm9sLCBwcm9wZXJ0eSwgb3ZlcnJpZGUsIHNldHRpbmdzOw0KCQlzZXR0aW5ncyA9IHRoaXMuX2NvcmUuc2V0dGluZ3M7DQoNCgkJZm9yIChoYW5kbGVyIGluIHRoaXMuX2hhbmRsZXJzKSB7DQoJCQl0aGlzLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLl9oYW5kbGVyc1toYW5kbGVyXSk7DQoJCX0NCgkJZm9yIChjb250cm9sIGluIHRoaXMuX2NvbnRyb2xzKSB7DQoJCQlpZiAoY29udHJvbCA9PT0gJyRyZWxhdGl2ZScgJiYgc2V0dGluZ3MubmF2Q29udGFpbmVyKSB7DQoJCQkJdGhpcy5fY29udHJvbHNbY29udHJvbF0uaHRtbCgnJyk7DQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuX2NvbnRyb2xzW2NvbnRyb2xdLnJlbW92ZSgpOw0KCQkJfQ0KCQl9DQoJCWZvciAob3ZlcnJpZGUgaW4gdGhpcy5vdmVyaWRlcykgew0KCQkJdGhpcy5fY29yZVtvdmVycmlkZV0gPSB0aGlzLl9vdmVycmlkZXNbb3ZlcnJpZGVdOw0KCQl9DQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsNCgkJCXR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPSAnZnVuY3Rpb24nICYmICh0aGlzW3Byb3BlcnR5XSA9IG51bGwpOw0KCQl9DQoJfTsNCg0KCS8qKg0KCSAqIFVwZGF0ZXMgdGhlIGludGVybmFsIHN0YXRlLg0KCSAqIEBwcm90ZWN0ZWQNCgkgKi8NCglOYXZpZ2F0aW9uLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbigpIHsNCgkJdmFyIGksIGosIGssDQoJCQlsb3dlciA9IHRoaXMuX2NvcmUuY2xvbmVzKCkubGVuZ3RoIC8gMiwNCgkJCXVwcGVyID0gbG93ZXIgKyB0aGlzLl9jb3JlLml0ZW1zKCkubGVuZ3RoLA0KCQkJbWF4aW11bSA9IHRoaXMuX2NvcmUubWF4aW11bSh0cnVlKSwNCgkJCXNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5ncywNCgkJCXNpemUgPSBzZXR0aW5ncy5jZW50ZXIgfHwgc2V0dGluZ3MuYXV0b1dpZHRoIHx8IHNldHRpbmdzLmRvdHNEYXRhDQoJCQkJPyAxIDogc2V0dGluZ3MuZG90c0VhY2ggfHwgc2V0dGluZ3MuaXRlbXM7DQoNCgkJaWYgKHNldHRpbmdzLnNsaWRlQnkgIT09ICdwYWdlJykgew0KCQkJc2V0dGluZ3Muc2xpZGVCeSA9IE1hdGgubWluKHNldHRpbmdzLnNsaWRlQnksIHNldHRpbmdzLml0ZW1zKTsNCgkJfQ0KDQoJCWlmIChzZXR0aW5ncy5kb3RzIHx8IHNldHRpbmdzLnNsaWRlQnkgPT0gJ3BhZ2UnKSB7DQoJCQl0aGlzLl9wYWdlcyA9IFtdOw0KDQoJCQlmb3IgKGkgPSBsb3dlciwgaiA9IDAsIGsgPSAwOyBpIDwgdXBwZXI7IGkrKykgew0KCQkJCWlmIChqID49IHNpemUgfHwgaiA9PT0gMCkgew0KCQkJCQl0aGlzLl9wYWdlcy5wdXNoKHsNCgkJCQkJCXN0YXJ0OiBNYXRoLm1pbihtYXhpbXVtLCBpIC0gbG93ZXIpLA0KCQkJCQkJZW5kOiBpIC0gbG93ZXIgKyBzaXplIC0gMQ0KCQkJCQl9KTsNCgkJCQkJaWYgKE1hdGgubWluKG1heGltdW0sIGkgLSBsb3dlcikgPT09IG1heGltdW0pIHsNCgkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJCWogPSAwLCArK2s7DQoJCQkJfQ0KCQkJCWogKz0gdGhpcy5fY29yZS5tZXJnZXJzKHRoaXMuX2NvcmUucmVsYXRpdmUoaSkpOw0KCQkJfQ0KCQl9DQoJfTsNCg0KCS8qKg0KCSAqIERyYXdzIHRoZSB1c2VyIGludGVyZmFjZS4NCgkgKiBAdG9kbyBUaGUgb3B0aW9uIGBkb3RzRGF0YWAgd29udCB3b3JrLg0KCSAqIEBwcm90ZWN0ZWQNCgkgKi8NCglOYXZpZ2F0aW9uLnByb3RvdHlwZS5kcmF3ID0gZnVuY3Rpb24oKSB7DQoJCXZhciBkaWZmZXJlbmNlLA0KCQkJc2V0dGluZ3MgPSB0aGlzLl9jb3JlLnNldHRpbmdzLA0KCQkJZGlzYWJsZWQgPSB0aGlzLl9jb3JlLml0ZW1zKCkubGVuZ3RoIDw9IHNldHRpbmdzLml0ZW1zLA0KCQkJaW5kZXggPSB0aGlzLl9jb3JlLnJlbGF0aXZlKHRoaXMuX2NvcmUuY3VycmVudCgpKSwNCgkJCWxvb3AgPSBzZXR0aW5ncy5sb29wIHx8IHNldHRpbmdzLnJld2luZDsNCg0KCQl0aGlzLl9jb250cm9scy4kcmVsYXRpdmUudG9nZ2xlQ2xhc3MoJ2Rpc2FibGVkJywgIXNldHRpbmdzLm5hdiB8fCBkaXNhYmxlZCk7DQoNCgkJaWYgKHNldHRpbmdzLm5hdikgew0KCQkJdGhpcy5fY29udHJvbHMuJHByZXZpb3VzLnRvZ2dsZUNsYXNzKCdkaXNhYmxlZCcsICFsb29wICYmIGluZGV4IDw9IHRoaXMuX2NvcmUubWluaW11bSh0cnVlKSk7DQoJCQl0aGlzLl9jb250cm9scy4kbmV4dC50b2dnbGVDbGFzcygnZGlzYWJsZWQnLCAhbG9vcCAmJiBpbmRleCA+PSB0aGlzLl9jb3JlLm1heGltdW0odHJ1ZSkpOw0KCQl9DQoNCgkJdGhpcy5fY29udHJvbHMuJGFic29sdXRlLnRvZ2dsZUNsYXNzKCdkaXNhYmxlZCcsICFzZXR0aW5ncy5kb3RzIHx8IGRpc2FibGVkKTsNCg0KCQlpZiAoc2V0dGluZ3MuZG90cykgew0KCQkJZGlmZmVyZW5jZSA9IHRoaXMuX3BhZ2VzLmxlbmd0aCAtIHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5jaGlsZHJlbigpLmxlbmd0aDsNCg0KCQkJaWYgKHNldHRpbmdzLmRvdHNEYXRhICYmIGRpZmZlcmVuY2UgIT09IDApIHsNCgkJCQl0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuaHRtbCh0aGlzLl90ZW1wbGF0ZXMuam9pbignJykpOw0KCQkJfSBlbHNlIGlmIChkaWZmZXJlbmNlID4gMCkgew0KCQkJCXRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5hcHBlbmQobmV3IEFycmF5KGRpZmZlcmVuY2UgKyAxKS5qb2luKHRoaXMuX3RlbXBsYXRlc1swXSkpOw0KCQkJfSBlbHNlIGlmIChkaWZmZXJlbmNlIDwgMCkgew0KCQkJCXRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5jaGlsZHJlbigpLnNsaWNlKGRpZmZlcmVuY2UpLnJlbW92ZSgpOw0KCQkJfQ0KDQoJCQl0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuZmluZCgnLmFjdGl2ZScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsNCgkJCXRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5jaGlsZHJlbigpLmVxKCQuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpKS5hZGRDbGFzcygnYWN0aXZlJyk7DQoJCX0NCgl9Ow0KDQoJLyoqDQoJICogRXh0ZW5kcyBldmVudCBkYXRhLg0KCSAqIEBwcm90ZWN0ZWQNCgkgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIFRoZSBldmVudCBvYmplY3Qgd2hpY2ggZ2V0cyB0aHJvd24uDQoJICovDQoJTmF2aWdhdGlvbi5wcm90b3R5cGUub25UcmlnZ2VyID0gZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIHNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5nczsNCg0KCQlldmVudC5wYWdlID0gew0KCQkJaW5kZXg6ICQuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpLA0KCQkJY291bnQ6IHRoaXMuX3BhZ2VzLmxlbmd0aCwNCgkJCXNpemU6IHNldHRpbmdzICYmIChzZXR0aW5ncy5jZW50ZXIgfHwgc2V0dGluZ3MuYXV0b1dpZHRoIHx8IHNldHRpbmdzLmRvdHNEYXRhDQoJCQkJPyAxIDogc2V0dGluZ3MuZG90c0VhY2ggfHwgc2V0dGluZ3MuaXRlbXMpDQoJCX07DQoJfTsNCg0KCS8qKg0KCSAqIEdldHMgdGhlIGN1cnJlbnQgcGFnZSBwb3NpdGlvbiBvZiB0aGUgY2Fyb3VzZWwuDQoJICogQHByb3RlY3RlZA0KCSAqIEByZXR1cm5zIHtOdW1iZXJ9DQoJICovDQoJTmF2aWdhdGlvbi5wcm90b3R5cGUuY3VycmVudCA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgY3VycmVudCA9IHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpOw0KCQlyZXR1cm4gJC5ncmVwKHRoaXMuX3BhZ2VzLCAkLnByb3h5KGZ1bmN0aW9uKHBhZ2UsIGluZGV4KSB7DQoJCQlyZXR1cm4gcGFnZS5zdGFydCA8PSBjdXJyZW50ICYmIHBhZ2UuZW5kID49IGN1cnJlbnQ7DQoJCX0sIHRoaXMpKS5wb3AoKTsNCgl9Ow0KDQoJLyoqDQoJICogR2V0cyB0aGUgY3VycmVudCBzdWNjZXNvci9wcmVkZWNlc3NvciBwb3NpdGlvbi4NCgkgKiBAcHJvdGVjdGVkDQoJICogQHJldHVybnMge051bWJlcn0NCgkgKi8NCglOYXZpZ2F0aW9uLnByb3RvdHlwZS5nZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKHN1Y2Nlc3Nvcikgew0KCQl2YXIgcG9zaXRpb24sIGxlbmd0aCwNCgkJCXNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5nczsNCg0KCQlpZiAoc2V0dGluZ3Muc2xpZGVCeSA9PSAncGFnZScpIHsNCgkJCXBvc2l0aW9uID0gJC5pbkFycmF5KHRoaXMuY3VycmVudCgpLCB0aGlzLl9wYWdlcyk7DQoJCQlsZW5ndGggPSB0aGlzLl9wYWdlcy5sZW5ndGg7DQoJCQlzdWNjZXNzb3IgPyArK3Bvc2l0aW9uIDogLS1wb3NpdGlvbjsNCgkJCXBvc2l0aW9uID0gdGhpcy5fcGFnZXNbKChwb3NpdGlvbiAlIGxlbmd0aCkgKyBsZW5ndGgpICUgbGVuZ3RoXS5zdGFydDsNCgkJfSBlbHNlIHsNCgkJCXBvc2l0aW9uID0gdGhpcy5fY29yZS5yZWxhdGl2ZSh0aGlzLl9jb3JlLmN1cnJlbnQoKSk7DQoJCQlsZW5ndGggPSB0aGlzLl9jb3JlLml0ZW1zKCkubGVuZ3RoOw0KCQkJc3VjY2Vzc29yID8gcG9zaXRpb24gKz0gc2V0dGluZ3Muc2xpZGVCeSA6IHBvc2l0aW9uIC09IHNldHRpbmdzLnNsaWRlQnk7DQoJCX0NCg0KCQlyZXR1cm4gcG9zaXRpb247DQoJfTsNCg0KCS8qKg0KCSAqIFNsaWRlcyB0byB0aGUgbmV4dCBpdGVtIG9yIHBhZ2UuDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7TnVtYmVyfSBbc3BlZWQ9ZmFsc2VdIC0gVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgdHJhbnNpdGlvbi4NCgkgKi8NCglOYXZpZ2F0aW9uLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24oc3BlZWQpIHsNCgkJJC5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuZ2V0UG9zaXRpb24odHJ1ZSksIHNwZWVkKTsNCgl9Ow0KDQoJLyoqDQoJICogU2xpZGVzIHRvIHRoZSBwcmV2aW91cyBpdGVtIG9yIHBhZ2UuDQoJICogQHB1YmxpYw0KCSAqIEBwYXJhbSB7TnVtYmVyfSBbc3BlZWQ9ZmFsc2VdIC0gVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgdHJhbnNpdGlvbi4NCgkgKi8NCglOYXZpZ2F0aW9uLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24oc3BlZWQpIHsNCgkJJC5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuZ2V0UG9zaXRpb24oZmFsc2UpLCBzcGVlZCk7DQoJfTsNCg0KCS8qKg0KCSAqIFNsaWRlcyB0byB0aGUgc3BlY2lmaWVkIGl0ZW0gb3IgcGFnZS4NCgkgKiBAcHVibGljDQoJICogQHBhcmFtIHtOdW1iZXJ9IHBvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIG9yIHBhZ2UuDQoJICogQHBhcmFtIHtOdW1iZXJ9IFtzcGVlZF0gLSBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIHRoZSB0cmFuc2l0aW9uLg0KCSAqIEBwYXJhbSB7Qm9vbGVhbn0gW3N0YW5kYXJkPWZhbHNlXSAtIFdoZXRoZXIgdG8gdXNlIHRoZSBzdGFuZGFyZCBiZWhhdmlvdXIgb3Igbm90Lg0KCSAqLw0KCU5hdmlnYXRpb24ucHJvdG90eXBlLnRvID0gZnVuY3Rpb24ocG9zaXRpb24sIHNwZWVkLCBzdGFuZGFyZCkgew0KCQl2YXIgbGVuZ3RoOw0KDQoJCWlmICghc3RhbmRhcmQgJiYgdGhpcy5fcGFnZXMubGVuZ3RoKSB7DQoJCQlsZW5ndGggPSB0aGlzLl9wYWdlcy5sZW5ndGg7DQoJCQkkLnByb3h5KHRoaXMuX292ZXJyaWRlcy50bywgdGhpcy5fY29yZSkodGhpcy5fcGFnZXNbKChwb3NpdGlvbiAlIGxlbmd0aCkgKyBsZW5ndGgpICUgbGVuZ3RoXS5zdGFydCwgc3BlZWQpOw0KCQl9IGVsc2Ugew0KCQkJJC5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHBvc2l0aW9uLCBzcGVlZCk7DQoJCX0NCgl9Ow0KDQoJJC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLk5hdmlnYXRpb24gPSBOYXZpZ2F0aW9uOw0KDQp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7DQoNCi8qKg0KICogSGFzaCBQbHVnaW4NCiAqIEB2ZXJzaW9uIDIuMy40DQogKiBAYXV0aG9yIEFydHVzIEtvbGFub3dza2kNCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaA0KICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpDQogKi8NCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7DQoJJ3VzZSBzdHJpY3QnOw0KDQoJLyoqDQoJICogQ3JlYXRlcyB0aGUgaGFzaCBwbHVnaW4uDQoJICogQGNsYXNzIFRoZSBIYXNoIFBsdWdpbg0KCSAqIEBwYXJhbSB7T3dsfSBjYXJvdXNlbCAtIFRoZSBPd2wgQ2Fyb3VzZWwNCgkgKi8NCgl2YXIgSGFzaCA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7DQoJCS8qKg0KCQkgKiBSZWZlcmVuY2UgdG8gdGhlIGNvcmUuDQoJCSAqIEBwcm90ZWN0ZWQNCgkJICogQHR5cGUge093bH0NCgkJICovDQoJCXRoaXMuX2NvcmUgPSBjYXJvdXNlbDsNCg0KCQkvKioNCgkJICogSGFzaCBpbmRleCBmb3IgdGhlIGl0ZW1zLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPYmplY3R9DQoJCSAqLw0KCQl0aGlzLl9oYXNoZXMgPSB7fTsNCg0KCQkvKioNCgkJICogVGhlIGNhcm91c2VsIGVsZW1lbnQuDQoJCSAqIEB0eXBlIHtqUXVlcnl9DQoJCSAqLw0KCQl0aGlzLiRlbGVtZW50ID0gdGhpcy5fY29yZS4kZWxlbWVudDsNCg0KCQkvKioNCgkJICogQWxsIGV2ZW50IGhhbmRsZXJzLg0KCQkgKiBAcHJvdGVjdGVkDQoJCSAqIEB0eXBlIHtPYmplY3R9DQoJCSAqLw0KCQl0aGlzLl9oYW5kbGVycyA9IHsNCgkJCSdpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5zdGFydFBvc2l0aW9uID09PSAnVVJMSGFzaCcpIHsNCgkJCQkJJCh3aW5kb3cpLnRyaWdnZXIoJ2hhc2hjaGFuZ2Uub3dsLm5hdmlnYXRpb24nKTsNCgkJCQl9DQoJCQl9LCB0aGlzKSwNCgkJCSdwcmVwYXJlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsNCgkJCQlpZiAoZS5uYW1lc3BhY2UpIHsNCgkJCQkJdmFyIGhhc2ggPSAkKGUuY29udGVudCkuZmluZCgnW2RhdGEtaGFzaF0nKS5hZGRCYWNrKCdbZGF0YS1oYXNoXScpLmF0dHIoJ2RhdGEtaGFzaCcpOw0KDQoJCQkJCWlmICghaGFzaCkgew0KCQkJCQkJcmV0dXJuOw0KCQkJCQl9DQoNCgkJCQkJdGhpcy5faGFzaGVzW2hhc2hdID0gZS5jb250ZW50Ow0KCQkJCX0NCgkJCX0sIHRoaXMpLA0KCQkJJ2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7DQoJCQkJaWYgKGUubmFtZXNwYWNlICYmIGUucHJvcGVydHkubmFtZSA9PT0gJ3Bvc2l0aW9uJykgew0KCQkJCQl2YXIgY3VycmVudCA9IHRoaXMuX2NvcmUuaXRlbXModGhpcy5fY29yZS5yZWxhdGl2ZSh0aGlzLl9jb3JlLmN1cnJlbnQoKSkpLA0KCQkJCQkJaGFzaCA9ICQubWFwKHRoaXMuX2hhc2hlcywgZnVuY3Rpb24oaXRlbSwgaGFzaCkgew0KCQkJCQkJCXJldHVybiBpdGVtID09PSBjdXJyZW50ID8gaGFzaCA6IG51bGw7DQoJCQkJCQl9KS5qb2luKCk7DQoNCgkJCQkJaWYgKCFoYXNoIHx8IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpID09PSBoYXNoKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCg0KCQkJCQl3aW5kb3cubG9jYXRpb24uaGFzaCA9IGhhc2g7DQoJCQkJfQ0KCQkJfSwgdGhpcykNCgkJfTsNCg0KCQkvLyBzZXQgZGVmYXVsdCBvcHRpb25zDQoJCXRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBIYXNoLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpOw0KDQoJCS8vIHJlZ2lzdGVyIHRoZSBldmVudCBoYW5kbGVycw0KCQl0aGlzLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKTsNCg0KCQkvLyByZWdpc3RlciBldmVudCBsaXN0ZW5lciBmb3IgaGFzaCBuYXZpZ2F0aW9uDQoJCSQod2luZG93KS5vbignaGFzaGNoYW5nZS5vd2wubmF2aWdhdGlvbicsICQucHJveHkoZnVuY3Rpb24oZSkgew0KCQkJdmFyIGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksDQoJCQkJaXRlbXMgPSB0aGlzLl9jb3JlLiRzdGFnZS5jaGlsZHJlbigpLA0KCQkJCXBvc2l0aW9uID0gdGhpcy5faGFzaGVzW2hhc2hdICYmIGl0ZW1zLmluZGV4KHRoaXMuX2hhc2hlc1toYXNoXSk7DQoNCgkJCWlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkIHx8IHBvc2l0aW9uID09PSB0aGlzLl9jb3JlLmN1cnJlbnQoKSkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJdGhpcy5fY29yZS50byh0aGlzLl9jb3JlLnJlbGF0aXZlKHBvc2l0aW9uKSwgZmFsc2UsIHRydWUpOw0KCQl9LCB0aGlzKSk7DQoJfTsNCg0KCS8qKg0KCSAqIERlZmF1bHQgb3B0aW9ucy4NCgkgKiBAcHVibGljDQoJICovDQoJSGFzaC5EZWZhdWx0cyA9IHsNCgkJVVJMaGFzaExpc3RlbmVyOiBmYWxzZQ0KCX07DQoNCgkvKioNCgkgKiBEZXN0cm95cyB0aGUgcGx1Z2luLg0KCSAqIEBwdWJsaWMNCgkgKi8NCglIYXNoLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7DQoJCXZhciBoYW5kbGVyLCBwcm9wZXJ0eTsNCg0KCQkkKHdpbmRvdykub2ZmKCdoYXNoY2hhbmdlLm93bC5uYXZpZ2F0aW9uJyk7DQoNCgkJZm9yIChoYW5kbGVyIGluIHRoaXMuX2hhbmRsZXJzKSB7DQoJCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLl9oYW5kbGVyc1toYW5kbGVyXSk7DQoJCX0NCgkJZm9yIChwcm9wZXJ0eSBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkgew0KCQkJdHlwZW9mIHRoaXNbcHJvcGVydHldICE9ICdmdW5jdGlvbicgJiYgKHRoaXNbcHJvcGVydHldID0gbnVsbCk7DQoJCX0NCgl9Ow0KDQoJJC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkhhc2ggPSBIYXNoOw0KDQp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7DQoNCi8qKg0KICogU3VwcG9ydCBQbHVnaW4NCiAqDQogKiBAdmVyc2lvbiAyLjMuNA0KICogQGF1dGhvciBWaXZpZCBQbGFuZXQgU29mdHdhcmUgR21iSA0KICogQGF1dGhvciBBcnR1cyBLb2xhbm93c2tpDQogKiBAYXV0aG9yIERhdmlkIERldXRzY2gNCiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKQ0KICovDQo7KGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgew0KDQoJdmFyIHN0eWxlID0gJCgnPHN1cHBvcnQ+JykuZ2V0KDApLnN0eWxlLA0KCQlwcmVmaXhlcyA9ICdXZWJraXQgTW96IE8gbXMnLnNwbGl0KCcgJyksDQoJCWV2ZW50cyA9IHsNCgkJCXRyYW5zaXRpb246IHsNCgkJCQllbmQ6IHsNCgkJCQkJV2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25FbmQnLA0KCQkJCQlNb3pUcmFuc2l0aW9uOiAndHJhbnNpdGlvbmVuZCcsDQoJCQkJCU9UcmFuc2l0aW9uOiAnb1RyYW5zaXRpb25FbmQnLA0KCQkJCQl0cmFuc2l0aW9uOiAndHJhbnNpdGlvbmVuZCcNCgkJCQl9DQoJCQl9LA0KCQkJYW5pbWF0aW9uOiB7DQoJCQkJZW5kOiB7DQoJCQkJCVdlYmtpdEFuaW1hdGlvbjogJ3dlYmtpdEFuaW1hdGlvbkVuZCcsDQoJCQkJCU1vekFuaW1hdGlvbjogJ2FuaW1hdGlvbmVuZCcsDQoJCQkJCU9BbmltYXRpb246ICdvQW5pbWF0aW9uRW5kJywNCgkJCQkJYW5pbWF0aW9uOiAnYW5pbWF0aW9uZW5kJw0KCQkJCX0NCgkJCX0NCgkJfSwNCgkJdGVzdHMgPSB7DQoJCQljc3N0cmFuc2Zvcm1zOiBmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gISF0ZXN0KCd0cmFuc2Zvcm0nKTsNCgkJCX0sDQoJCQljc3N0cmFuc2Zvcm1zM2Q6IGZ1bmN0aW9uKCkgew0KCQkJCXJldHVybiAhIXRlc3QoJ3BlcnNwZWN0aXZlJyk7DQoJCQl9LA0KCQkJY3NzdHJhbnNpdGlvbnM6IGZ1bmN0aW9uKCkgew0KCQkJCXJldHVybiAhIXRlc3QoJ3RyYW5zaXRpb24nKTsNCgkJCX0sDQoJCQljc3NhbmltYXRpb25zOiBmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gISF0ZXN0KCdhbmltYXRpb24nKTsNCgkJCX0NCgkJfTsNCg0KCWZ1bmN0aW9uIHRlc3QocHJvcGVydHksIHByZWZpeGVkKSB7DQoJCXZhciByZXN1bHQgPSBmYWxzZSwNCgkJCXVwcGVyID0gcHJvcGVydHkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwcm9wZXJ0eS5zbGljZSgxKTsNCg0KCQkkLmVhY2goKHByb3BlcnR5ICsgJyAnICsgcHJlZml4ZXMuam9pbih1cHBlciArICcgJykgKyB1cHBlcikuc3BsaXQoJyAnKSwgZnVuY3Rpb24oaSwgcHJvcGVydHkpIHsNCgkJCWlmIChzdHlsZVtwcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkgew0KCQkJCXJlc3VsdCA9IHByZWZpeGVkID8gcHJvcGVydHkgOiB0cnVlOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfSk7DQoNCgkJcmV0dXJuIHJlc3VsdDsNCgl9DQoNCglmdW5jdGlvbiBwcmVmaXhlZChwcm9wZXJ0eSkgew0KCQlyZXR1cm4gdGVzdChwcm9wZXJ0eSwgdHJ1ZSk7DQoJfQ0KDQoJaWYgKHRlc3RzLmNzc3RyYW5zaXRpb25zKCkpIHsNCgkJLyoganNoaW50IC1XMDUzICovDQoJCSQuc3VwcG9ydC50cmFuc2l0aW9uID0gbmV3IFN0cmluZyhwcmVmaXhlZCgndHJhbnNpdGlvbicpKQ0KCQkkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQgPSBldmVudHMudHJhbnNpdGlvbi5lbmRbICQuc3VwcG9ydC50cmFuc2l0aW9uIF07DQoJfQ0KDQoJaWYgKHRlc3RzLmNzc2FuaW1hdGlvbnMoKSkgew0KCQkvKiBqc2hpbnQgLVcwNTMgKi8NCgkJJC5zdXBwb3J0LmFuaW1hdGlvbiA9IG5ldyBTdHJpbmcocHJlZml4ZWQoJ2FuaW1hdGlvbicpKQ0KCQkkLnN1cHBvcnQuYW5pbWF0aW9uLmVuZCA9IGV2ZW50cy5hbmltYXRpb24uZW5kWyAkLnN1cHBvcnQuYW5pbWF0aW9uIF07DQoJfQ0KDQoJaWYgKHRlc3RzLmNzc3RyYW5zZm9ybXMoKSkgew0KCQkvKiBqc2hpbnQgLVcwNTMgKi8NCgkJJC5zdXBwb3J0LnRyYW5zZm9ybSA9IG5ldyBTdHJpbmcocHJlZml4ZWQoJ3RyYW5zZm9ybScpKTsNCgkJJC5zdXBwb3J0LnRyYW5zZm9ybTNkID0gdGVzdHMuY3NzdHJhbnNmb3JtczNkKCk7DQoJfQ0KDQp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7"}},"time_used":73,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":52,"receive":21,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-CgMCAfor.js","fqdn":"widget-v3.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":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:05.709Z","timestamp":1785132845709,"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-CgMCAfor.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://farosonglobaltrade.ltd\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 06:14:05 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a4cb803-42705\"\r\nexpires: Wed, 07 Jul 2027 08:30:00 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: k7STMWDqDM9Gys7RRq/G6eNoNJQYRdp6o74SEWpx1arXUbKRaDH0TdHI4nIgTx04rztPqsI\r\nx-77-nzt-ray: fdb541232848488e2df7666a3b433c2a\r\nx-77-cache: HIT\r\nx-77-age: 1719802\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":92592,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (44710)","md5":"06c5668b0e6d3383e096c45abdbedf9d","sha1":"8d64309e8ec50da59f799336c11685ca7fd15ecc","sha256":"2724b50edb69a23cc951a77f775727b960c857d18d58cfa9a47fe5c094d9b99a","sha512":"c4a86d25f4e86be36db19539b4e3efc70500a48b9664349043d76a1451f8536c8bed7fe22f8ca790fb3ac7e26fa7efbfc37e0c927687966dc08a02442e15f85c","ssdeep":"6144:mLjnOEIL18ad2jJKaQo+tRkYcuBaay+moJG:iOEIZRd29lqj4n+moY","tlshash":"53443ad53294b035439b51e6906f1106f33e5c58580d812cf269ede678baec8a2f7fb8","first_seen":"2026-07-07T11:50:17.748529Z","last_seen":"2026-07-27T07:27:47.884385Z","times_seen":1867,"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/bix2YXJpYWJsZXM6dS52YXJpYWJsZXMsd2lkZ2V0VmVyc2lvbjpgMy4wYCx2aXNpdHM6dHMoKSxpc1dpZGdldFZpc2libGU6QShSXyksaXNXaWRnZXRPcGVuOkEoWCkscGFnZVVybDpobChyLGMpLHBhZ2VUaXRsZTpmbygpLmRvY3VtZW50LnRpdGxlLGRvbWFpbjpmbygpLmxvY2F0aW9uLmhvc3RuYW1lfHxgdW5rbm93bmAscmVmZXJlcjpmbygpLmRvY3VtZW50LnJlZmVycmVyLGJ1bmRsZVZlcnNpb246YGMwNmQ0NWMzM2UwOTk4ZWYyZDMwNDYyZmI1Nzg3OTYzM2MxZGY1Y2FgfX0seWw9KGUsdCk9PntsZXR7aXNQcmV2aWV3TW9kZTpufT1WLmdldE9wdGlvbnMoKTshZSYmdCE9PUEoZmwpJiYhbiYmKGdsKCksQShYKSYmWC5zZXQoITEpKSxmbC5zZXQodCl9LGJsPSgoKT0+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+ZS5yZW1vdmVFdmVudExpc3RlbmVyKGBwb3BzdGF0ZWAsdCkpKX0saF89KCk9PntsZXQgZT1CKCkuX3NtYXJ0c3VwcHx8e307ZS5hcHBWZXJzaW9uPWAwLjAuMWAsZS5jb21taXRIYXNoPWBjMDZkNDVjMzNlMDk5OGVmMmQzMDQ2MmZiNTc4Nzk2MzNjMWRmNWNhYCxlLmNvbW1pdEluZm89YGMwNmQ0NWMzM2UwOTk4ZWYyZDMwNDYyZmI1Nzg3OTYzM2MxZGY1Y2EgLSBNZXJnZSBwdWxsIHJlcXVlc3QgIzQ1MiBmcm9tIHNtYXJ0c3VwcC9kZXZlbG9wIC0gMjAyNi0wNy0wNyAxMDoyMjoyOCArMDIwMGAsQigpLl9zbWFydHN1cHA9ZX0sZ189KGU9amcuRGVmYXVsdCk9PntsZXR7d2lkZ2V0VjNVcmw6dH09Vi5nZXRPcHRpb25zKCksbj1uZXcgQXVkaW8oYCR7dH0vYXNzZXRzL3NvdW5kcy8ke2V9YCk7cmV0dXJuIG4uY3Jvc3NPcmlnaW49YGFub255bW91c2Asbi5sb2FkKCksbn0sX189ZT0+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+e3BiKGUsdCkmJklnLnNldCh0KX0sWmI9KGUsdCk9PntfYihlLHQpJiZxLnJlbG9hZENsaWVudCh0KX0sUWI9KGUsdCk9PntwYihlLHQpJiZxLnJlbG9hZENsaWVudCh2b2lkIDAsdCl9LCRiPShlLHQpPT57aWYoIXZiKGUsdCkpcmV0dXJuO2xldHtpZDpuLC4uLnJ9PXQ7JGwudXBkYXRlSWRlbnRpdHkobixyKX0sZXg9e3ZlcnNpb246YGMwNmQ0NWMzM2UwOTk4ZWYyZDMwNDYyZmI1Nzg3OTYzM2MxZGY1Y2FgLGV4ZWN1dGU6ZT0+e2xldCB0PWVbMF07aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmApe3J4KHQpO3JldHVybn1pZighZGIodCkpe2JiKFN0cmluZyh0KSk7cmV0dXJufW54KHQsZVsxXSwuLi5lLnNsaWNlKDIpKX0sZXhlYzpmdW5jdGlvbiguLi5lKXt0aGlzLmV4ZWN1dGUoZSl9fSx0eD17WyQuQ2hhdE9wZW5dOkRiLFskLkNoYXRDbG9zZV06T2IsWyQuQ2hhdFNob3ddOmtiLFskLkNoYXRIaWRlXTpBYixbJC5DaGF0TWVzc2FnZV06TmIsWyQuQ2hhdFNlbmRdOlBiLFskLkxhbmd1YWdlXTpqYixbJC5UaGVtZUNvbG9yXTpNYixbJC5IZWFkZXJTdHlsZV06SmIsWyQuT25dOkZiLFskLlZhcmlhYmxlc106SWIsWyQuQ29udGFjdERhdGFdOnpiLFskLk5hbWVdOkxiLFskLkdyb3VwXTpSYixbJC5FbWFpbF06TGIsWyQuUGhvbmVdOkxiLFskLkFuYWx5dGljc0NvbnNlbnRdOkJiLFskLk1hcmtldGluZ0NvbnNlbnRdOlZiLFskLkh0bWxBcHBseV06bnVsbCxbJC5PcGVuUmF0ZUZvcm1dOkhiLFskLk9wZW5BdXRoRm9ybV06VWIsWyQuV2lkZ2V0U3RhdHVzXTpXYixbJC5UcmFuc2xhdGlvbnNdOkdiLFskLkF1dGhGb3JtRmllbGRzXTpLYixbJC5CdXR0b25TdHlsZV06cWIsWyQuUHJldmlld1RyYW5zbGF0ZV06WWIsWyQuRGlzYWJsZUNvbm5lY3Rpb25TdGF0dXNdOlhiLFskLlJlbG9hZFdpdGhNb2NrRGF0YV06WmIsWyQuUmVsb2FkXTpRYixbJC5Cb3RJZGVudGl0eVVwZGF0ZV06JGJ9LG54PShlLHQsLi4ubik9PntsZXQgcj10eFtlXTtpZihyPT09dm9pZCAwKXtiYihlKTtyZXR1cm59ciE9PW51bGwmJihyKGUsdCwuLi5uKSx2byhg8J+nmeKAjeKZgu+4j1tBUEldICR7ZX0ke3Q/YDpgOmBgfWAsdD8/YGApKX0scng9ZT0+e0EoQ18pP2UoKTpYbC5wdXNoKGUpfTt0eXBlb2Ygd2luZG93PGB1YCYmKCh3aW5kb3cuX19zdmVsdGU/Pz17fSkudj8/PW5ldyBTZXQpLmFkZChgNWApO3ZhciBpeD1lPT5lO2Z1bmN0aW9uIGF4KGUpe2xldCB0PWUtMTtyZXR1cm4gdCp0KnQrMX1mdW5jdGlvbiBveChlKXtsZXQgdD10eXBlb2YgZT09YHN0cmluZ2AmJmUubWF0Y2goL15ccyooLT9bXGQuXSspKFteXHNdKilccyokLyk7cmV0dXJuIHQ/W3BhcnNlRmxvYXQodFsxXSksdFsyXXx8YHB4YF06W2UsYHB4YF19ZnVuY3Rpb24gc3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWl4fT17fSl7bGV0IGk9K2dldENvbXB1dGVkU3R5bGUoZSkub3BhY2l0eTtyZXR1cm57ZGVsYXk6dCxkdXJhdGlvbjpuLGVhc2luZzpyLGNzczplPT5gb3BhY2l0eTogJHtlKml9YH19ZnVuY3Rpb24gY3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHg6aT0wLHk6YT0wLG9wYWNpdHk6bz0wfT17fSl7bGV0IHM9Z2V0Q29tcHV0ZWRTdHlsZShlKSxjPStzLm9wYWNpdHksbD1zLnRyYW5zZm9ybT09PWBub25lYD9gYDpzLnRyYW5zZm9ybSx1PWMqKDEtbyksW2QsZl09b3goaSksW3AsbV09b3goYSk7cmV0dXJue2RlbGF5OnQsZHVyYXRpb246bixlYXNpbmc6cixjc3M6KGUsdCk9PmAKCQkJdHJhbnNmb3JtOiAke2x9IHRyYW5zbGF0ZSgkeygxLWUpKmR9JHtmfSwgJHsoMS1lKSpwfSR7bX0pOwoJCQlvcGFjaXR5OiAke2MtdSp0fWB9fWZ1bmN0aW9uIGx4KGUse2RlbGF5OnQ9MCxkdXJhdGlvbjpuPTQwMCxlYXNpbmc6cj1heCxheGlzOmk9YHlgfT17fSl7bGV0IGE9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPSthLm9wYWNpdHkscz1pPT09YHlgP2BoZWlnaHRgOmB3aWR0aGAsYz1wYXJzZUZsb2F0KGFbc10pLGw9aT09PWB5YD9bYHRvcGAsYGJvdHRvbWBdOltgbGVmdGAsYHJpZ2h0YF0sdT1sLm1hcChlPT5gJHtlWzBdLnRvVXBwZXJDYXNlKCl9JHtlLnNsaWNlKDEpfWApLGQ9cGFyc2VGbG9hdChhW2BwYWRkaW5nJHt1WzBdfWBdKSxmPXBhcnNlRmxvYXQoYVtgcGFkZGluZyR7dVsxXX1gXSkscD1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVswXX1gXSksbT1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVsxXX1gXSksaD1wYXJzZUZsb2F0KGFbYGJvcmRlciR7dVswXX1XaWR0aGBdKSxnPXBhcnNlRmxvYXQoYVtgYm9yZGVyJHt1WzFdfVdpZHRoYF0pO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOmU9PmBvdmVyZmxvdzogaGlkZGVuO29wYWNpdHk6ICR7TWF0aC5taW4oZSoyMCwxKSpvfTske3N9OiAke2UqY31weDtwYWRkaW5nLSR7bFswXX06ICR7ZSpkfXB4O3BhZGRpbmctJHtsWzFdfTogJHtlKmZ9cHg7bWFyZ2luLSR7bFswXX06ICR7ZSpwfXB4O21hcmdpbi0ke2xbMV19OiAke2UqbX1weDtib3JkZXItJHtsWzBdfS13aWR0aDogJHtlKmh9cHg7Ym9yZGVyLSR7bFsxXX0td2lkdGg6ICR7ZSpnfXB4O21pbi0ke3N9OiAwYH19ZnVuY3Rpb24gdXgoZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHN0YXJ0Omk9MCxvcGFjaXR5OmE9MH09e30pe2xldCBvPWdldENvbXB1dGVkU3R5bGUoZSkscz0rby5vcGFjaXR5LGM9by50cmFuc2Zvcm09PT1gbm9uZWA/YGA6by50cmFuc2Zvcm0sbD0xLWksdT1zKigxLWEpO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOihlLHQpPT5gCgkJCXRyYW5zZm9ybTogJHtjfSBzY2FsZSgkezEtbCp0fSk7CgkJCW9wYWNpdHk6ICR7cy11KnR9CgkJYH19YXQoKTt2YXIgZHg9d2koYDxkaXY+PC9kaXY+YCk7ZnVuY3Rpb24gZngoZSx0KXtsdCh0LCEwKTtsZXQgbj1vbyh0LGBoZWlnaHRgLDMsMjApLHI9b28odCxgd2lkdGhgLDMsYDEwMCVgKSxpPW9vKHQsYGNvbG9yU2NoZW1lYCwzLGBncmF5YCksYT1vbyh0LGByb3VuZGVkU3R5bGVgLDMsYHJvdW5kZWQtZnVsbGApLG89Zm4oKCk9PmAke2EoKX0gYW5pbWF0ZS1wdWxzZWApO3ZhciBzPWR4KCk7bGV0IGM7cHIoZT0+e2JhKHMsMSxtYShbUihvKSxpKCk9PT1gZ3JheWAmJmBiZy1ncmF5LTIwMGAsaSgpPT09YGRhcmtHcmF5YCYmYGJnLWdyYXktMzAwYF0pKSxjPVNhKHMsYGAsYyxlKX0sWygpPT4oe2hlaWdodDpteShuKCkpLHdpZHRoOkZ1KHIoKSk/bXkocigpKTpyKCl9KV0pLGtpKGUscyksdXQoKX1mdW5jdGlvbiBweChlLHQpe2xldCBuPW9vKHQsYHNpemVgLDMsMjApO2Z4KGUse2NvbG9yU2NoZW1lOmBkYXJrR3JheWAsZ2V0IHdpZHRoKCl7cmV0dXJuIG4oKX0sZ2V0IGhlaWdodCgpe3JldHVybiBuKCl9fSl9dmFyIG14PUVpKGA8c3ZnPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE4IDZMNiAxOE02IDZsMTIgMTIiPjwvcGF0aD48L3N2Zz5gKTtmdW5jdGlvbiBoeChlLHQpe2xldCBuPXJvKHQsW2AkJHNsb3RzYCxgJCRldmVudHNgLGAkJGxlZ2FjeWBdKTt2YXIgcj1teCgpO1ZhKHIsKCk9Pih7dmlld0JveDpgMCAwIDI0IDI0YCx3aWR0aDpgMS4yZW1gLGhlaWdodDpgMS4yZW1gLC4uLm59KSksa2koZSxyKX12YXIgZ3g9d2koYDxidXR0b24gdHlwZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdj48IT48L2Rpdj48L2J1dHRvbj5gKTtmdW5jdGlvbiBfeChlLHQpe2x0KHQsITApO2xldCBuPW9vKHQsYGljb25PcmllbnRhdGlvbmAsMyxgcmlnaHRgKSxyPW9vKHQsYGljb25BbmltYXRpb25gLDMsYG5vbmVgKSxpPW9vKHQsYGljb25TY2FsZWAsMywhMSksYT1vbyh0LGBzaXplYCwzLGBtZGApLG89b28odCxgdmFyaWFudGAsMyxgZ2hvc3RgKSxzPW9vKHQsYGZvY3VzYCwzLGBwcmltYXJ5YCksYz1mbigoKT0+bigpPT09YHJpZ2h0YD8xOi0xKSxsPWZuKCgpPT5pKCk/MS40OjEuMiksdT1mbigoKT0+dC5pY29uKSxkPWU9PntlLnN0b3BQcm9wYWdhdGlvbigpLHQub25DbGljayYmdC5vbkNsaWNrKGUpfTt2YXIgZj1neCgpLHA9Vm4oZik7JGkoVm4ocCksKCk9PlIodSksKGUsdCk9Pnt0KGUse3dpZHRoOmAxZW1gLGhlaWdodDpgMWVtYH0pfSksWGUocCksWGUoZikscHIoZT0+e2JhKGYsMSxlLGBzdmVsdGUteXdvZm1sYCksZi5kaXNhYmxlZD10LmRpc2FibGVkLHphKGYsYGRhdGEtdGVzdGlkYCx0LnRlc3RJZCksemEoZixgYXJpYS1sYWJlbGAsdC5pY29uRGVzY3JpcHRpb24pLHphKGYsYGFyaWEtZGlzYWJsZWRgLHQuZGlzYWJsZWQpLGJhKHAsMSxtYShbYHctZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJgLHIoKT09PWBzcGluYCYmYGFuaW1hdGUtc3BpbmBdKSksU2EocCxgdHJhbnNmb3JtOiBzY2FsZSgke1IobCl9KSBzY2FsZVgoJHtSKGMpfSk7YCl9LFsoKT0+bWEoW2BidG4gYnRuLSR7bygpfSBidG4tJHthKCl9YCwhIXQuZGlzYWJsZWQmJmBidG4tZGlzYWJsZWRgLGlzKCk/YGN1cnNvci1hdXRvYDpgY3Vyc29yLXBvaW50ZXJgLHMoKT09PWBwcmltYXJ5YCYmYGJ1dHRvbi1mb2N1c2AscygpPT09YHNlY29uZGFyeWAmJmBidXR0b24tZm9jdXMtc2Vjb25kYXJ5YF0pXSksZ2koYGNsaWNrYCxmLGQpLGtpKGUsZiksdXQoKX1faShbYGNsaWNrYF0pO2V4cG9ydHtkXyBhcyAkLGp0IGFzICRpLFNsIGFzICRuLGFvIGFzICRyLCRmIGFzICR0LCRfIGFzIEEsZ2kgYXMgQWksc2QgYXMgQW4sc3MgYXMgQXIsVGggYXMgQXQsS18gYXMgQixWbiBhcyBCaSxVdSBhcyBCbixqbyBhcyBCcixIcCBhcyBCdCxGeSBhcyBDLElpIGFzIENpLF9kIGFzIENuLGJzIGFzIENyLHpoIGFzIEN0LG95IGFzIEQsRWkgYXMgRGksbmQgYXMgRG4sX3MgYXMgRHIsTWggYXMgRHQsbXkgYXMgRSx3aSBhcyBFaSxlZCBhcyBFbixocyBhcyBFcixGaCBhcyBFdCxKXyBhcyBGLCRyIGFzIEZpLEt1IGFzIEZuLHpvIGFzIEZyLFpwIGFzIEZ0LE9fIGFzIEcsVG4gYXMgR2ksJGwgYXMgR24scG8gYXMgR3IsenAgYXMgR3QsTl8gYXMgSCxVbiBhcyBIaSxMdSBhcyBIbix5byBhcyBIcixNcCBhcyBIdCxYIGFzIEkscHIgYXMgSWksWXUgYXMgSW4sVm8gYXMgSXIsWXAgYXMgSXQsbV8gYXMgSixwbiBhcyBKaSxIbCBhcyBKbix6IGFzIEpyLFJwIGFzIEp0LGdfIGFzIEssQ24gYXMgS2ksWWwgYXMgS24sQiBhcyBLcixKIGFzIEt0LEdfIGFzIEwsb3IgYXMgTGkscXUgYXMgTG4sQm8gYXMgTHIsWHAgYXMgTHQscnYgYXMgTSxwaSBhcyBNaSxpZCBhcyBNbixhcyBhcyBNcixFaCBhcyBNdCxZXyBhcyBOLFIgYXMgTmksWnUgYXMgTm4saXMgYXMgTnIsaWggYXMgTnQsYXkgYXMgTyxEaSBhcyBPaSxsZCBhcyBPbixscyBhcyBPcixraCBhcyBPdCxXXyBhcyBQLFhyIGFzIFBpLEd1IGFzIFBuLEpvIGFzIFByLGFtIGFzIFB0LGlfIGFzIFEsUHQgYXMgUWksd2wgYXMgUW4scm8gYXMgUXIsT3AgYXMgUXQsVV8gYXMgUixjciBhcyBSaSxXdSBhcyBSbixVIGFzIFJyLFdwIGFzIFJ0LFB5IGFzIFMsamkgYXMgU2ksZ2QgYXMgU24seXMgYXMgU3IsYWcgYXMgU3QsZ3kgYXMgVCxPaSBhcyBUaSx1ZCBhcyBUbixmcyBhcyBUcixJaCBhcyBUdCxqXyBhcyBVLGpuIGFzIFVpLE11IGFzIFVuLFYgYXMgVXIsQnAgYXMgVXQsTV8gYXMgVixIbiBhcyBWaSxWdSBhcyBWbixIIGFzIFZyLFZwIGFzIFZ0LERfIGFzIFcsd24gYXMgV2kscSBhcyBXbix2byBhcyBXcixGcCBhcyBXdCxzXyBhcyBYLE10IGFzIFhpLFJsIGFzIFhuLHNvIGFzIFhyLElwIGFzIFh0LHBfIGFzIFksZm4gYXMgWWksVyBhcyBZbixjbyBhcyBZcixQcCBhcyBZdCxhXyBhcyBaLEF0IGFzIFppLENsIGFzIFpuLG9vIGFzIFpyLGtwIGFzIFp0LFJ5IGFzIF8sR2kgYXMgX2ksVGQgYXMgX24sTmMgYXMgX3IsdWcgYXMgX3Qsc3ggYXMgYSxsdCBhcyBhYSxWYSBhcyBhaSxCZiBhcyBhbixsbCBhcyBhcixVZyBhcyBhdCxOeSBhcyBiLFJpIGFzIGJpLHlkIGFzIGJuLENzIGFzIGJyLGlnIGFzIGJ0LGx4IGFzIGMsWGUgYXMgY2EsVGEgYXMgY2ksU2YgYXMgY24sUWMgYXMgY3IsVmcgYXMgY3QsSHkgYXMgZCxtYSBhcyBkaSxHZCBhcyBkbixXYyBhcyBkcixOZyBhcyBkdCxrIGFzIGVhLGVvIGFzIGVpLGVwIGFzIGVuLGJsIGFzIGVyLG9fIGFzIGV0LHp5IGFzIGYsdWEgYXMgZmksVmQgYXMgZm4sR2MgYXMgZnIsT2cgYXMgZnQsR3kgYXMgZyxaaSBhcyBnaSx3ZCBhcyBnbixCYyBhcyBncix5ZyBhcyBndCxWeSBhcyBoLFFpIGFzIGhpLEVkIGFzIGhuLHpjIGFzIGhyLFRnIGFzIGh0LGZ4IGFzIGksdXQgYXMgaWEscWEgYXMgaWksRmYgYXMgaW4sc2wgYXMgaXIsdF8gYXMgaXQsaXYgYXMgaixoaSBhcyBqaSxmZCBhcyBqbix1cyBhcyBqcixEaCBhcyBqdCxldiBhcyBrLF9pIGFzIGtpLGNkIGFzIGtuLGNzIGFzIGtyLE9oIGFzIGt0LGV4IGFzIGwseCBhcyBsYSxTYSBhcyBsaSxiZiBhcyBsbixVYyBhcyBscixMZyBhcyBsdCxxeSBhcyBtLCRpIGFzIG1pLHpkIGFzIG1uLFZjIGFzIG1yLERnIGFzIG10LGh4IGFzIG4sTyBhcyBuYSxZYSBhcyBuaSxxZiBhcyBubix1bCBhcyBucixjXyBhcyBudCxjeCBhcyBvLGN0IGFzIG9hLHphIGFzIG9pLHpmIGFzIG9uLG9sIGFzIG9yLEhnIGFzIG90LFd5IGFzIHAsY2EgYXMgcGksSGQgYXMgcG4sSGMgYXMgcHIsRWcgYXMgcHQsaF8gYXMgcSxPbiBhcyBxaSxLbCBhcyBxbixtbyBhcyBxcixOcCBhcyBxdCxweCBhcyByLHN0IGFzIHJhLEphIGFzIHJpLFVmIGFzIHJuLGNsIGFzIHJyLGxfIGFzIHJ0LHV4IGFzIHMsWmUgYXMgc2EsTGEgYXMgc2ksRGYgYXMgc24sbmwgYXMgc3IsQmcgYXMgc3QsX3ggYXMgdCxBIGFzIHRhLCRhIGFzIHRpLFRwIGFzIHRuLGRsIGFzIHRyLHJfIGFzIHR0LEx5IGFzIHUsdSBhcyB1YSxiYSBhcyB1aSxSZCBhcyB1bixLYyBhcyB1cixGZyBhcyB1dCxKeSBhcyB2LFZpIGFzIHZpLFNkIGFzIHZuLFBjIGFzIHZyLHJnIGFzIHZ0LER5IGFzIHcsa2kgYXMgd2ksJHUgYXMgd24sZ3MgYXMgd3IsTGggYXMgd3QsSXkgYXMgeCxNaSBhcyB4aSx4ZCBhcyB4bix4cyBhcyB4cixvZyBhcyB4dCxNeSBhcyB5LEJpIGFzIHlpLGJkIGFzIHluLE1jIGFzIHlyLFZoIGFzIHl0LFZfIGFzIHosWG4gYXMgemksSHUgYXMgem4sTG8gYXMgenIsVXAgYXMgenR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1zaGFyZWQtQ2dNQ0Fmb3IuanMubWFw"}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/element/log?format=json\u0026hasfast=true\u0026authuser=0","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:09.473Z","timestamp":1785132849473,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"OPTIONS /element/log?format=json\u0026hasfast=true\u0026authuser=0 HTTP/1.1\r\nHost: translate.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: content-encoding,content-type,x-goog-authuser\r\nReferer: https://farosonglobaltrade.ltd/\r\nOrigin: https://farosonglobaltrade.ltd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: https://farosonglobaltrade.ltd\r\naccess-control-allow-methods: GET, POST, OPTIONS\r\naccess-control-max-age: 86400\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: X-Playlog-Web,authorization,content-encoding,content-type,x-goog-authuser,origin\r\ncontent-type: text/plain; charset=UTF-8\r\ndate: Mon, 27 Jul 2026 06:14:09 GMT\r\nserver: Playlog\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":530,"mime_type":"text/plain; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T09:47:52.605533Z","times_seen":17560503,"resource_available":true,"data":""}},"time_used":30,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":30,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/ripple.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.047Z","timestamp":1785132868047,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/ripple.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, 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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:45:23 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae21a3-20a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\ncf-polished: ok, orig_size=522\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=m5kEjWb7xJS3hy9ofXvYauQuNGO7dRSIeOq1tlS5crIwzU6dL2DcXSlFstJfk1XmoU8gvmFfdX%2B3P62oFSYDam5QGapTvPhSjrrt43p4%2BJ%2BR13iPDWOdhWVL4pVuH5NUwQ%3D%3D\"}]}\r\ncf-bgj: imgq:85,h2pri\r\npriority: u=4,i\r\nx-content-type-options: nosniff\r\nvary: accept, accept-encoding\r\nage: 130375\r\ncf-cache-status: HIT\r\ncf-ray: a21981094ed25ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 346\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":346,"size_decoded":1464,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"fc82135d79e16feeae7902ca711a482b","sha1":"21a2ca242c3a8ed37b756dc79a40a004aaf78614","sha256":"b463959db58884452b89ad7043c18ac9eecc8b1188040fe52b81035d23f81279","sha512":"f817e3efc8956d3d0cbb934f2fc55260255a7c1213844a4ec1d744c789b0c272b5ca178ebaaf919e97abce312a0d1d27cf89b02d25a15d77d6e2263b51ba211e","ssdeep":"","tlshash":"cae0c015ce650cb8c8e40d2695f815e07623941e32d1df90a3169674cd951064733c69","first_seen":"2026-07-27T04:22:23.343282Z","last_seen":"2026-07-27T06:14:42.674234Z","times_seen":2,"resource_available":false,"data":"UklGRlIBAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSG0AAAABV6CQkSQ2953hQL5KfEQEWbwdUmBgUtu2lLMgAx6JRJJgdFg0igYgIcSk55fzv5shov9q27Zh5Cm9nAHpsE1lBLCamRVAZ4ESuEN6cnOKF092edrHM76e+fecCmWoFNVIXaSuFJerb8gPia8BAFZQOCC+AAAA8AQAnQEqFAAUAD5JIo5FIqIhFAQAKASEs4BOmWh0YDuVfU2/zIbf/iAdg7IPCTkQAP77l6PJNZWFPkHXX42zY/nPiY6MD6jjFy3J/a+V78iHLmHLL/fe/hm3YlTVgT9UbocUxsBh3AfwYcS/2hnrfwvG13W/BaM9r7U3IfPDH//gvyr/g8tGjZ/VTuYNX8mpwRFQcQuWw5d4U2Ld3CZp3U7+zcoXnrvyAeNJTHZ+1evqtE4/g26fabka7AAAAA=="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/vendor/bootstrap/css/bootstrap.min.css","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.041Z","timestamp":1785132838041,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /vendor/bootstrap/css/bootstrap.min.css HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: text/css\r\nlast-modified: Sun, 26 Dec 2021 23:46:14 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 21225\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":163873,"size_decoded":21535,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (65306)","md5":"94994c66fec8c3468b269dc0cc242151","sha1":"ec16bd19bf4ae9bc2e2336ac409a503bbbdaacad","sha256":"62f74b1cf824a89f03554c638e719594c309b4d8a627a758928c0516fa7890ab","sha512":"190194d1f30c8b6dfcb80f9afdb75625fa5418a52405d81f15d8019bbd92510e817b25a3a18feda27d2d1231fe3921fd88fe037e1fbb1ccd08f5fe5e4742ffe3","ssdeep":"1536:4t04T8if0W8DsEBpy0cuJBf2rIWE5e0VUpz600I4fM:4t04/0VUpz600I4fM","tlshash":"c1f3b4dbf581341dd4a7c259a4d1bffd052f4586e3025aabb0277bb88b892c70963e4c","first_seen":"2023-04-05T04:27:21Z","last_seen":"2026-07-27T09:39:09.416846Z","times_seen":25803,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04IjsvKiEKICogQm9vdHN0cmFwIHY1LjEuMyAoaHR0cHM6Ly9nZXRib290c3RyYXAuY29tLykKICogQ29weXJpZ2h0IDIwMTEtMjAyMSBUaGUgQm9vdHN0cmFwIEF1dGhvcnMKICogQ29weXJpZ2h0IDIwMTEtMjAyMSBUd2l0dGVyLCBJbmMuCiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKQogKi86cm9vdHstLWJzLWJsdWU6IzBkNmVmZDstLWJzLWluZGlnbzojNjYxMGYyOy0tYnMtcHVycGxlOiM2ZjQyYzE7LS1icy1waW5rOiNkNjMzODQ7LS1icy1yZWQ6I2RjMzU0NTstLWJzLW9yYW5nZTojZmQ3ZTE0Oy0tYnMteWVsbG93OiNmZmMxMDc7LS1icy1ncmVlbjojMTk4NzU0Oy0tYnMtdGVhbDojMjBjOTk3Oy0tYnMtY3lhbjojMGRjYWYwOy0tYnMtd2hpdGU6I2ZmZjstLWJzLWdyYXk6IzZjNzU3ZDstLWJzLWdyYXktZGFyazojMzQzYTQwOy0tYnMtZ3JheS0xMDA6I2Y4ZjlmYTstLWJzLWdyYXktMjAwOiNlOWVjZWY7LS1icy1ncmF5LTMwMDojZGVlMmU2Oy0tYnMtZ3JheS00MDA6I2NlZDRkYTstLWJzLWdyYXktNTAwOiNhZGI1YmQ7LS1icy1ncmF5LTYwMDojNmM3NTdkOy0tYnMtZ3JheS03MDA6IzQ5NTA1NzstLWJzLWdyYXktODAwOiMzNDNhNDA7LS1icy1ncmF5LTkwMDojMjEyNTI5Oy0tYnMtcHJpbWFyeTojMGQ2ZWZkOy0tYnMtc2Vjb25kYXJ5OiM2Yzc1N2Q7LS1icy1zdWNjZXNzOiMxOTg3NTQ7LS1icy1pbmZvOiMwZGNhZjA7LS1icy13YXJuaW5nOiNmZmMxMDc7LS1icy1kYW5nZXI6I2RjMzU0NTstLWJzLWxpZ2h0OiNmOGY5ZmE7LS1icy1kYXJrOiMyMTI1Mjk7LS1icy1wcmltYXJ5LXJnYjoxMywxMTAsMjUzOy0tYnMtc2Vjb25kYXJ5LXJnYjoxMDgsMTE3LDEyNTstLWJzLXN1Y2Nlc3MtcmdiOjI1LDEzNSw4NDstLWJzLWluZm8tcmdiOjEzLDIwMiwyNDA7LS1icy13YXJuaW5nLXJnYjoyNTUsMTkzLDc7LS1icy1kYW5nZXItcmdiOjIyMCw1Myw2OTstLWJzLWxpZ2h0LXJnYjoyNDgsMjQ5LDI1MDstLWJzLWRhcmstcmdiOjMzLDM3LDQxOy0tYnMtd2hpdGUtcmdiOjI1NSwyNTUsMjU1Oy0tYnMtYmxhY2stcmdiOjAsMCwwOy0tYnMtYm9keS1jb2xvci1yZ2I6MzMsMzcsNDE7LS1icy1ib2R5LWJnLXJnYjoyNTUsMjU1LDI1NTstLWJzLWZvbnQtc2Fucy1zZXJpZjpzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSwiU2Vnb2UgVUkiLFJvYm90bywiSGVsdmV0aWNhIE5ldWUiLEFyaWFsLCJOb3RvIFNhbnMiLCJMaWJlcmF0aW9uIFNhbnMiLHNhbnMtc2VyaWYsIkFwcGxlIENvbG9yIEVtb2ppIiwiU2Vnb2UgVUkgRW1vamkiLCJTZWdvZSBVSSBTeW1ib2wiLCJOb3RvIENvbG9yIEVtb2ppIjstLWJzLWZvbnQtbW9ub3NwYWNlOlNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcywiTGliZXJhdGlvbiBNb25vIiwiQ291cmllciBOZXciLG1vbm9zcGFjZTstLWJzLWdyYWRpZW50OmxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpOy0tYnMtYm9keS1mb250LWZhbWlseTp2YXIoLS1icy1mb250LXNhbnMtc2VyaWYpOy0tYnMtYm9keS1mb250LXNpemU6MXJlbTstLWJzLWJvZHktZm9udC13ZWlnaHQ6NDAwOy0tYnMtYm9keS1saW5lLWhlaWdodDoxLjU7LS1icy1ib2R5LWNvbG9yOiMyMTI1Mjk7LS1icy1ib2R5LWJnOiNmZmZ9Kiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSl7OnJvb3R7c2Nyb2xsLWJlaGF2aW9yOnNtb290aH19Ym9keXttYXJnaW46MDtmb250LWZhbWlseTp2YXIoLS1icy1ib2R5LWZvbnQtZmFtaWx5KTtmb250LXNpemU6dmFyKC0tYnMtYm9keS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWJzLWJvZHktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWJzLWJvZHktbGluZS1oZWlnaHQpO2NvbG9yOnZhcigtLWJzLWJvZHktY29sb3IpO3RleHQtYWxpZ246dmFyKC0tYnMtYm9keS10ZXh0LWFsaWduKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJzLWJvZHktYmcpOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1ocnttYXJnaW46MXJlbSAwO2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyOjA7b3BhY2l0eTouMjV9aHI6bm90KFtzaXplXSl7aGVpZ2h0OjFweH0uaDEsLmgyLC5oMywuaDQsLmg1LC5oNixoMSxoMixoMyxoNCxoNSxoNnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS4yfS5oMSxoMXtmb250LXNpemU6Y2FsYygxLjM3NXJlbSArIDEuNXZ3KX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5oMSxoMXtmb250LXNpemU6Mi41cmVtfX0uaDIsaDJ7Zm9udC1zaXplOmNhbGMoMS4zMjVyZW0gKyAuOXZ3KX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5oMixoMntmb250LXNpemU6MnJlbX19LmgzLGgze2ZvbnQtc2l6ZTpjYWxjKDEuM3JlbSArIC42dncpfUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmgzLGgze2ZvbnQtc2l6ZToxLjc1cmVtfX0uaDQsaDR7Zm9udC1zaXplOmNhbGMoMS4yNzVyZW0gKyAuM3Z3KX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5oNCxoNHtmb250LXNpemU6MS41cmVtfX0uaDUsaDV7Zm9udC1zaXplOjEuMjVyZW19Lmg2LGg2e2ZvbnQtc2l6ZToxcmVtfXB7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MXJlbX1hYmJyW2RhdGEtYnMtb3JpZ2luYWwtdGl0bGVdLGFiYnJbdGl0bGVdey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7Y3Vyc29yOmhlbHA7LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6bm9uZTt0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6bm9uZX1hZGRyZXNze21hcmdpbi1ib3R0b206MXJlbTtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDppbmhlcml0fW9sLHVse3BhZGRpbmctbGVmdDoycmVtfWRsLG9sLHVse21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjFyZW19b2wgb2wsb2wgdWwsdWwgb2wsdWwgdWx7bWFyZ2luLWJvdHRvbTowfWR0e2ZvbnQtd2VpZ2h0OjcwMH1kZHttYXJnaW4tYm90dG9tOi41cmVtO21hcmdpbi1sZWZ0OjB9YmxvY2txdW90ZXttYXJnaW46MCAwIDFyZW19YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfS5zbWFsbCxzbWFsbHtmb250LXNpemU6Ljg3NWVtfS5tYXJrLG1hcmt7cGFkZGluZzouMmVtO2JhY2tncm91bmQtY29sb3I6I2ZjZjhlM31zdWIsc3Vwe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTouNzVlbTtsaW5lLWhlaWdodDowO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1Yntib3R0b206LS4yNWVtfXN1cHt0b3A6LS41ZW19YXtjb2xvcjojMGQ2ZWZkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9YTpob3Zlcntjb2xvcjojMGE1OGNhfWE6bm90KFtocmVmXSk6bm90KFtjbGFzc10pLGE6bm90KFtocmVmXSk6bm90KFtjbGFzc10pOmhvdmVye2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6dmFyKC0tYnMtZm9udC1tb25vc3BhY2UpO2ZvbnQtc2l6ZToxZW07ZGlyZWN0aW9uOmx0cjt1bmljb2RlLWJpZGk6YmlkaS1vdmVycmlkZX1wcmV7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToxcmVtO292ZXJmbG93OmF1dG87Zm9udC1zaXplOi44NzVlbX1wcmUgY29kZXtmb250LXNpemU6aW5oZXJpdDtjb2xvcjppbmhlcml0O3dvcmQtYnJlYWs6bm9ybWFsfWNvZGV7Zm9udC1zaXplOi44NzVlbTtjb2xvcjojZDYzMzg0O3dvcmQtd3JhcDpicmVhay13b3JkfWE+Y29kZXtjb2xvcjppbmhlcml0fWtiZHtwYWRkaW5nOi4ycmVtIC40cmVtO2ZvbnQtc2l6ZTouODc1ZW07Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMTI1Mjk7Ym9yZGVyLXJhZGl1czouMnJlbX1rYmQga2Jke3BhZGRpbmc6MDtmb250LXNpemU6MWVtO2ZvbnQtd2VpZ2h0OjcwMH1maWd1cmV7bWFyZ2luOjAgMCAxcmVtfWltZyxzdmd7dmVydGljYWwtYWxpZ246bWlkZGxlfXRhYmxle2NhcHRpb24tc2lkZTpib3R0b207Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWNhcHRpb257cGFkZGluZy10b3A6LjVyZW07cGFkZGluZy1ib3R0b206LjVyZW07Y29sb3I6IzZjNzU3ZDt0ZXh0LWFsaWduOmxlZnR9dGh7dGV4dC1hbGlnbjppbmhlcml0O3RleHQtYWxpZ246LXdlYmtpdC1tYXRjaC1wYXJlbnR9dGJvZHksdGQsdGZvb3QsdGgsdGhlYWQsdHJ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowfWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfWJ1dHRvbntib3JkZXItcmFkaXVzOjB9YnV0dG9uOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSl7b3V0bGluZTowfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7bWFyZ2luOjA7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0fWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1bcm9sZT1idXR0b25de2N1cnNvcjpwb2ludGVyfXNlbGVjdHt3b3JkLXdyYXA6bm9ybWFsfXNlbGVjdDpkaXNhYmxlZHtvcGFjaXR5OjF9W2xpc3RdOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7ZGlzcGxheTpub25lfVt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF0sYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b259W3R5cGU9YnV0dG9uXTpub3QoOmRpc2FibGVkKSxbdHlwZT1yZXNldF06bm90KDpkaXNhYmxlZCksW3R5cGU9c3VibWl0XTpub3QoOmRpc2FibGVkKSxidXR0b246bm90KDpkaXNhYmxlZCl7Y3Vyc29yOnBvaW50ZXJ9OjotbW96LWZvY3VzLWlubmVye3BhZGRpbmc6MDtib3JkZXItc3R5bGU6bm9uZX10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9ZmllbGRzZXR7bWluLXdpZHRoOjA7cGFkZGluZzowO21hcmdpbjowO2JvcmRlcjowfWxlZ2VuZHtmbG9hdDpsZWZ0O3dpZHRoOjEwMCU7cGFkZGluZzowO21hcmdpbi1ib3R0b206LjVyZW07Zm9udC1zaXplOmNhbGMoMS4yNzVyZW0gKyAuM3Z3KTtsaW5lLWhlaWdodDppbmhlcml0fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7bGVnZW5ke2ZvbnQtc2l6ZToxLjVyZW19fWxlZ2VuZCsqe2NsZWFyOmxlZnR9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkLDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWZpZWxkcy13cmFwcGVyLDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWhvdXItZmllbGQsOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtbWludXRlLDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkLDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXRleHQsOjotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZHtwYWRkaW5nOjB9Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17b3V0bGluZS1vZmZzZXQ6LTJweDstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkfTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX06Oi13ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBwZXJ7cGFkZGluZzowfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257Zm9udDppbmhlcml0fTo6ZmlsZS1zZWxlY3Rvci1idXR0b257Zm9udDppbmhlcml0fTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257Zm9udDppbmhlcml0Oy13ZWJraXQtYXBwZWFyYW5jZTpidXR0b259b3V0cHV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfWlmcmFtZXtib3JkZXI6MH1zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtO2N1cnNvcjpwb2ludGVyfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfVtoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmxlYWR7Zm9udC1zaXplOjEuMjVyZW07Zm9udC13ZWlnaHQ6MzAwfS5kaXNwbGF5LTF7Zm9udC1zaXplOmNhbGMoMS42MjVyZW0gKyA0LjV2dyk7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OjEuMn1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5kaXNwbGF5LTF7Zm9udC1zaXplOjVyZW19fS5kaXNwbGF5LTJ7Zm9udC1zaXplOmNhbGMoMS41NzVyZW0gKyAzLjl2dyk7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OjEuMn1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5kaXNwbGF5LTJ7Zm9udC1zaXplOjQuNXJlbX19LmRpc3BsYXktM3tmb250LXNpemU6Y2FsYygxLjUyNXJlbSArIDMuM3Z3KTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmRpc3BsYXktM3tmb250LXNpemU6NHJlbX19LmRpc3BsYXktNHtmb250LXNpemU6Y2FsYygxLjQ3NXJlbSArIDIuN3Z3KTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmRpc3BsYXktNHtmb250LXNpemU6My41cmVtfX0uZGlzcGxheS01e2ZvbnQtc2l6ZTpjYWxjKDEuNDI1cmVtICsgMi4xdncpO2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDoxLjJ9QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuZGlzcGxheS01e2ZvbnQtc2l6ZTozcmVtfX0uZGlzcGxheS02e2ZvbnQtc2l6ZTpjYWxjKDEuMzc1cmVtICsgMS41dncpO2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDoxLjJ9QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuZGlzcGxheS02e2ZvbnQtc2l6ZToyLjVyZW19fS5saXN0LXVuc3R5bGVke3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZX0ubGlzdC1pbmxpbmV7cGFkZGluZy1sZWZ0OjA7bGlzdC1zdHlsZTpub25lfS5saXN0LWlubGluZS1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5saXN0LWlubGluZS1pdGVtOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0Oi41cmVtfS5pbml0aWFsaXNte2ZvbnQtc2l6ZTouODc1ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5ibG9ja3F1b3Rle21hcmdpbi1ib3R0b206MXJlbTtmb250LXNpemU6MS4yNXJlbX0uYmxvY2txdW90ZT46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmJsb2NrcXVvdGUtZm9vdGVye21hcmdpbi10b3A6LTFyZW07bWFyZ2luLWJvdHRvbToxcmVtO2ZvbnQtc2l6ZTouODc1ZW07Y29sb3I6IzZjNzU3ZH0uYmxvY2txdW90ZS1mb290ZXI6OmJlZm9yZXtjb250ZW50OiLigJTCoCJ9LmltZy1mbHVpZHttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30uaW1nLXRodW1ibmFpbHtwYWRkaW5nOi4yNXJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGVlMmU2O2JvcmRlci1yYWRpdXM6LjI1cmVtO21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfS5maWd1cmV7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZpZ3VyZS1pbWd7bWFyZ2luLWJvdHRvbTouNXJlbTtsaW5lLWhlaWdodDoxfS5maWd1cmUtY2FwdGlvbntmb250LXNpemU6Ljg3NWVtO2NvbG9yOiM2Yzc1N2R9LmNvbnRhaW5lciwuY29udGFpbmVyLWZsdWlkLC5jb250YWluZXItbGcsLmNvbnRhaW5lci1tZCwuY29udGFpbmVyLXNtLC5jb250YWluZXIteGwsLmNvbnRhaW5lci14eGx7d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OnZhcigtLWJzLWd1dHRlci14LC43NXJlbSk7cGFkZGluZy1sZWZ0OnZhcigtLWJzLWd1dHRlci14LC43NXJlbSk7bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b31AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNvbnRhaW5lciwuY29udGFpbmVyLXNte21heC13aWR0aDo1NDBweH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jb250YWluZXIsLmNvbnRhaW5lci1tZCwuY29udGFpbmVyLXNte21heC13aWR0aDo3MjBweH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jb250YWluZXIsLmNvbnRhaW5lci1sZywuY29udGFpbmVyLW1kLC5jb250YWluZXItc217bWF4LXdpZHRoOjk2MHB4fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jb250YWluZXIsLmNvbnRhaW5lci1sZywuY29udGFpbmVyLW1kLC5jb250YWluZXItc20sLmNvbnRhaW5lci14bHttYXgtd2lkdGg6MTE0MHB4fX1AbWVkaWEgKG1pbi13aWR0aDoxNDAwcHgpey5jb250YWluZXIsLmNvbnRhaW5lci1sZywuY29udGFpbmVyLW1kLC5jb250YWluZXItc20sLmNvbnRhaW5lci14bCwuY29udGFpbmVyLXh4bHttYXgtd2lkdGg6MTMyMHB4fX0ucm93ey0tYnMtZ3V0dGVyLXg6MS41cmVtOy0tYnMtZ3V0dGVyLXk6MDtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tYnMtZ3V0dGVyLXkpKTttYXJnaW4tcmlnaHQ6Y2FsYygtLjUgKiB2YXIoLS1icy1ndXR0ZXIteCkpO21hcmdpbi1sZWZ0OmNhbGMoLS41ICogdmFyKC0tYnMtZ3V0dGVyLXgpKX0ucm93Pip7ZmxleC1zaHJpbms6MDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6Y2FsYyh2YXIoLS1icy1ndXR0ZXIteCkgKiAuNSk7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tYnMtZ3V0dGVyLXgpICogLjUpO21hcmdpbi10b3A6dmFyKC0tYnMtZ3V0dGVyLXkpfS5jb2x7ZmxleDoxIDAgMCV9LnJvdy1jb2xzLWF1dG8+KntmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG99LnJvdy1jb2xzLTE+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjEwMCV9LnJvdy1jb2xzLTI+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjUwJX0ucm93LWNvbHMtMz4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MzMuMzMzMzMzMzMzMyV9LnJvdy1jb2xzLTQ+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjI1JX0ucm93LWNvbHMtNT4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MjAlfS5yb3ctY29scy02Pip7ZmxleDowIDAgYXV0bzt3aWR0aDoxNi42NjY2NjY2NjY3JX0uY29sLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvfS5jb2wtMXtmbGV4OjAgMCBhdXRvO3dpZHRoOjguMzMzMzMzMzMlfS5jb2wtMntmbGV4OjAgMCBhdXRvO3dpZHRoOjE2LjY2NjY2NjY3JX0uY29sLTN7ZmxleDowIDAgYXV0bzt3aWR0aDoyNSV9LmNvbC00e2ZsZXg6MCAwIGF1dG87d2lkdGg6MzMuMzMzMzMzMzMlfS5jb2wtNXtmbGV4OjAgMCBhdXRvO3dpZHRoOjQxLjY2NjY2NjY3JX0uY29sLTZ7ZmxleDowIDAgYXV0bzt3aWR0aDo1MCV9LmNvbC03e2ZsZXg6MCAwIGF1dG87d2lkdGg6NTguMzMzMzMzMzMlfS5jb2wtOHtmbGV4OjAgMCBhdXRvO3dpZHRoOjY2LjY2NjY2NjY3JX0uY29sLTl7ZmxleDowIDAgYXV0bzt3aWR0aDo3NSV9LmNvbC0xMHtmbGV4OjAgMCBhdXRvO3dpZHRoOjgzLjMzMzMzMzMzJX0uY29sLTExe2ZsZXg6MCAwIGF1dG87d2lkdGg6OTEuNjY2NjY2NjclfS5jb2wtMTJ7ZmxleDowIDAgYXV0bzt3aWR0aDoxMDAlfS5vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0ub2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjclfS5vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9Lm9mZnNldC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0ub2Zmc2V0LTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjclfS5vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9Lm9mZnNldC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzJX0ub2Zmc2V0LTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjclfS5vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9Lm9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9Lm9mZnNldC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NyV9LmctMCwuZ3gtMHstLWJzLWd1dHRlci14OjB9LmctMCwuZ3ktMHstLWJzLWd1dHRlci15OjB9LmctMSwuZ3gtMXstLWJzLWd1dHRlci14OjAuMjVyZW19LmctMSwuZ3ktMXstLWJzLWd1dHRlci15OjAuMjVyZW19LmctMiwuZ3gtMnstLWJzLWd1dHRlci14OjAuNXJlbX0uZy0yLC5neS0yey0tYnMtZ3V0dGVyLXk6MC41cmVtfS5nLTMsLmd4LTN7LS1icy1ndXR0ZXIteDoxcmVtfS5nLTMsLmd5LTN7LS1icy1ndXR0ZXIteToxcmVtfS5nLTQsLmd4LTR7LS1icy1ndXR0ZXIteDoxLjVyZW19LmctNCwuZ3ktNHstLWJzLWd1dHRlci15OjEuNXJlbX0uZy01LC5neC01ey0tYnMtZ3V0dGVyLXg6M3JlbX0uZy01LC5neS01ey0tYnMtZ3V0dGVyLXk6M3JlbX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNvbC1zbXtmbGV4OjEgMCAwJX0ucm93LWNvbHMtc20tYXV0bz4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0b30ucm93LWNvbHMtc20tMT4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJX0ucm93LWNvbHMtc20tMj4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6NTAlfS5yb3ctY29scy1zbS0zPip7ZmxleDowIDAgYXV0bzt3aWR0aDozMy4zMzMzMzMzMzMzJX0ucm93LWNvbHMtc20tND4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MjUlfS5yb3ctY29scy1zbS01Pip7ZmxleDowIDAgYXV0bzt3aWR0aDoyMCV9LnJvdy1jb2xzLXNtLTY+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjE2LjY2NjY2NjY2NjclfS5jb2wtc20tYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG99LmNvbC1zbS0xe2ZsZXg6MCAwIGF1dG87d2lkdGg6OC4zMzMzMzMzMyV9LmNvbC1zbS0ye2ZsZXg6MCAwIGF1dG87d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtc20tM3tmbGV4OjAgMCBhdXRvO3dpZHRoOjI1JX0uY29sLXNtLTR7ZmxleDowIDAgYXV0bzt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1zbS01e2ZsZXg6MCAwIGF1dG87d2lkdGg6NDEuNjY2NjY2NjclfS5jb2wtc20tNntmbGV4OjAgMCBhdXRvO3dpZHRoOjUwJX0uY29sLXNtLTd7ZmxleDowIDAgYXV0bzt3aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC1zbS04e2ZsZXg6MCAwIGF1dG87d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtc20tOXtmbGV4OjAgMCBhdXRvO3dpZHRoOjc1JX0uY29sLXNtLTEwe2ZsZXg6MCAwIGF1dG87d2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wtc20tMTF7ZmxleDowIDAgYXV0bzt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1zbS0xMntmbGV4OjAgMCBhdXRvO3dpZHRoOjEwMCV9Lm9mZnNldC1zbS0we21hcmdpbi1sZWZ0OjB9Lm9mZnNldC1zbS0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMlfS5vZmZzZXQtc20tMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NyV9Lm9mZnNldC1zbS0ze21hcmdpbi1sZWZ0OjI1JX0ub2Zmc2V0LXNtLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMlfS5vZmZzZXQtc20tNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NyV9Lm9mZnNldC1zbS02e21hcmdpbi1sZWZ0OjUwJX0ub2Zmc2V0LXNtLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMlfS5vZmZzZXQtc20tOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NyV9Lm9mZnNldC1zbS05e21hcmdpbi1sZWZ0Ojc1JX0ub2Zmc2V0LXNtLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzJX0ub2Zmc2V0LXNtLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY3JX0uZy1zbS0wLC5neC1zbS0wey0tYnMtZ3V0dGVyLXg6MH0uZy1zbS0wLC5neS1zbS0wey0tYnMtZ3V0dGVyLXk6MH0uZy1zbS0xLC5neC1zbS0xey0tYnMtZ3V0dGVyLXg6MC4yNXJlbX0uZy1zbS0xLC5neS1zbS0xey0tYnMtZ3V0dGVyLXk6MC4yNXJlbX0uZy1zbS0yLC5neC1zbS0yey0tYnMtZ3V0dGVyLXg6MC41cmVtfS5nLXNtLTIsLmd5LXNtLTJ7LS1icy1ndXR0ZXIteTowLjVyZW19Lmctc20tMywuZ3gtc20tM3stLWJzLWd1dHRlci14OjFyZW19Lmctc20tMywuZ3ktc20tM3stLWJzLWd1dHRlci15OjFyZW19Lmctc20tNCwuZ3gtc20tNHstLWJzLWd1dHRlci14OjEuNXJlbX0uZy1zbS00LC5neS1zbS00ey0tYnMtZ3V0dGVyLXk6MS41cmVtfS5nLXNtLTUsLmd4LXNtLTV7LS1icy1ndXR0ZXIteDozcmVtfS5nLXNtLTUsLmd5LXNtLTV7LS1icy1ndXR0ZXIteTozcmVtfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNvbC1tZHtmbGV4OjEgMCAwJX0ucm93LWNvbHMtbWQtYXV0bz4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0b30ucm93LWNvbHMtbWQtMT4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJX0ucm93LWNvbHMtbWQtMj4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6NTAlfS5yb3ctY29scy1tZC0zPip7ZmxleDowIDAgYXV0bzt3aWR0aDozMy4zMzMzMzMzMzMzJX0ucm93LWNvbHMtbWQtND4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MjUlfS5yb3ctY29scy1tZC01Pip7ZmxleDowIDAgYXV0bzt3aWR0aDoyMCV9LnJvdy1jb2xzLW1kLTY+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjE2LjY2NjY2NjY2NjclfS5jb2wtbWQtYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG99LmNvbC1tZC0xe2ZsZXg6MCAwIGF1dG87d2lkdGg6OC4zMzMzMzMzMyV9LmNvbC1tZC0ye2ZsZXg6MCAwIGF1dG87d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtbWQtM3tmbGV4OjAgMCBhdXRvO3dpZHRoOjI1JX0uY29sLW1kLTR7ZmxleDowIDAgYXV0bzt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1tZC01e2ZsZXg6MCAwIGF1dG87d2lkdGg6NDEuNjY2NjY2NjclfS5jb2wtbWQtNntmbGV4OjAgMCBhdXRvO3dpZHRoOjUwJX0uY29sLW1kLTd7ZmxleDowIDAgYXV0bzt3aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC1tZC04e2ZsZXg6MCAwIGF1dG87d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtbWQtOXtmbGV4OjAgMCBhdXRvO3dpZHRoOjc1JX0uY29sLW1kLTEwe2ZsZXg6MCAwIGF1dG87d2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wtbWQtMTF7ZmxleDowIDAgYXV0bzt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1tZC0xMntmbGV4OjAgMCBhdXRvO3dpZHRoOjEwMCV9Lm9mZnNldC1tZC0we21hcmdpbi1sZWZ0OjB9Lm9mZnNldC1tZC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMlfS5vZmZzZXQtbWQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NyV9Lm9mZnNldC1tZC0ze21hcmdpbi1sZWZ0OjI1JX0ub2Zmc2V0LW1kLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMlfS5vZmZzZXQtbWQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NyV9Lm9mZnNldC1tZC02e21hcmdpbi1sZWZ0OjUwJX0ub2Zmc2V0LW1kLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMlfS5vZmZzZXQtbWQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NyV9Lm9mZnNldC1tZC05e21hcmdpbi1sZWZ0Ojc1JX0ub2Zmc2V0LW1kLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzJX0ub2Zmc2V0LW1kLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY3JX0uZy1tZC0wLC5neC1tZC0wey0tYnMtZ3V0dGVyLXg6MH0uZy1tZC0wLC5neS1tZC0wey0tYnMtZ3V0dGVyLXk6MH0uZy1tZC0xLC5neC1tZC0xey0tYnMtZ3V0dGVyLXg6MC4yNXJlbX0uZy1tZC0xLC5neS1tZC0xey0tYnMtZ3V0dGVyLXk6MC4yNXJlbX0uZy1tZC0yLC5neC1tZC0yey0tYnMtZ3V0dGVyLXg6MC41cmVtfS5nLW1kLTIsLmd5LW1kLTJ7LS1icy1ndXR0ZXIteTowLjVyZW19LmctbWQtMywuZ3gtbWQtM3stLWJzLWd1dHRlci14OjFyZW19LmctbWQtMywuZ3ktbWQtM3stLWJzLWd1dHRlci15OjFyZW19LmctbWQtNCwuZ3gtbWQtNHstLWJzLWd1dHRlci14OjEuNXJlbX0uZy1tZC00LC5neS1tZC00ey0tYnMtZ3V0dGVyLXk6MS41cmVtfS5nLW1kLTUsLmd4LW1kLTV7LS1icy1ndXR0ZXIteDozcmVtfS5nLW1kLTUsLmd5LW1kLTV7LS1icy1ndXR0ZXIteTozcmVtfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNvbC1sZ3tmbGV4OjEgMCAwJX0ucm93LWNvbHMtbGctYXV0bz4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0b30ucm93LWNvbHMtbGctMT4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJX0ucm93LWNvbHMtbGctMj4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6NTAlfS5yb3ctY29scy1sZy0zPip7ZmxleDowIDAgYXV0bzt3aWR0aDozMy4zMzMzMzMzMzMzJX0ucm93LWNvbHMtbGctND4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MjUlfS5yb3ctY29scy1sZy01Pip7ZmxleDowIDAgYXV0bzt3aWR0aDoyMCV9LnJvdy1jb2xzLWxnLTY+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjE2LjY2NjY2NjY2NjclfS5jb2wtbGctYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG99LmNvbC1sZy0xe2ZsZXg6MCAwIGF1dG87d2lkdGg6OC4zMzMzMzMzMyV9LmNvbC1sZy0ye2ZsZXg6MCAwIGF1dG87d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtbGctM3tmbGV4OjAgMCBhdXRvO3dpZHRoOjI1JX0uY29sLWxnLTR7ZmxleDowIDAgYXV0bzt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1sZy01e2ZsZXg6MCAwIGF1dG87d2lkdGg6NDEuNjY2NjY2NjclfS5jb2wtbGctNntmbGV4OjAgMCBhdXRvO3dpZHRoOjUwJX0uY29sLWxnLTd7ZmxleDowIDAgYXV0bzt3aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC1sZy04e2ZsZXg6MCAwIGF1dG87d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtbGctOXtmbGV4OjAgMCBhdXRvO3dpZHRoOjc1JX0uY29sLWxnLTEwe2ZsZXg6MCAwIGF1dG87d2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wtbGctMTF7ZmxleDowIDAgYXV0bzt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1sZy0xMntmbGV4OjAgMCBhdXRvO3dpZHRoOjEwMCV9Lm9mZnNldC1sZy0we21hcmdpbi1sZWZ0OjB9Lm9mZnNldC1sZy0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMlfS5vZmZzZXQtbGctMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NyV9Lm9mZnNldC1sZy0ze21hcmdpbi1sZWZ0OjI1JX0ub2Zmc2V0LWxnLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMlfS5vZmZzZXQtbGctNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NyV9Lm9mZnNldC1sZy02e21hcmdpbi1sZWZ0OjUwJX0ub2Zmc2V0LWxnLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMlfS5vZmZzZXQtbGctOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NyV9Lm9mZnNldC1sZy05e21hcmdpbi1sZWZ0Ojc1JX0ub2Zmc2V0LWxnLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzJX0ub2Zmc2V0LWxnLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY3JX0uZy1sZy0wLC5neC1sZy0wey0tYnMtZ3V0dGVyLXg6MH0uZy1sZy0wLC5neS1sZy0wey0tYnMtZ3V0dGVyLXk6MH0uZy1sZy0xLC5neC1sZy0xey0tYnMtZ3V0dGVyLXg6MC4yNXJlbX0uZy1sZy0xLC5neS1sZy0xey0tYnMtZ3V0dGVyLXk6MC4yNXJlbX0uZy1sZy0yLC5neC1sZy0yey0tYnMtZ3V0dGVyLXg6MC41cmVtfS5nLWxnLTIsLmd5LWxnLTJ7LS1icy1ndXR0ZXIteTowLjVyZW19LmctbGctMywuZ3gtbGctM3stLWJzLWd1dHRlci14OjFyZW19LmctbGctMywuZ3ktbGctM3stLWJzLWd1dHRlci15OjFyZW19LmctbGctNCwuZ3gtbGctNHstLWJzLWd1dHRlci14OjEuNXJlbX0uZy1sZy00LC5neS1sZy00ey0tYnMtZ3V0dGVyLXk6MS41cmVtfS5nLWxnLTUsLmd4LWxnLTV7LS1icy1ndXR0ZXIteDozcmVtfS5nLWxnLTUsLmd5LWxnLTV7LS1icy1ndXR0ZXIteTozcmVtfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jb2wteGx7ZmxleDoxIDAgMCV9LnJvdy1jb2xzLXhsLWF1dG8+KntmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG99LnJvdy1jb2xzLXhsLTE+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjEwMCV9LnJvdy1jb2xzLXhsLTI+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjUwJX0ucm93LWNvbHMteGwtMz4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MzMuMzMzMzMzMzMzMyV9LnJvdy1jb2xzLXhsLTQ+KntmbGV4OjAgMCBhdXRvO3dpZHRoOjI1JX0ucm93LWNvbHMteGwtNT4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MjAlfS5yb3ctY29scy14bC02Pip7ZmxleDowIDAgYXV0bzt3aWR0aDoxNi42NjY2NjY2NjY3JX0uY29sLXhsLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvfS5jb2wteGwtMXtmbGV4OjAgMCBhdXRvO3dpZHRoOjguMzMzMzMzMzMlfS5jb2wteGwtMntmbGV4OjAgMCBhdXRvO3dpZHRoOjE2LjY2NjY2NjY3JX0uY29sLXhsLTN7ZmxleDowIDAgYXV0bzt3aWR0aDoyNSV9LmNvbC14bC00e2ZsZXg6MCAwIGF1dG87d2lkdGg6MzMuMzMzMzMzMzMlfS5jb2wteGwtNXtmbGV4OjAgMCBhdXRvO3dpZHRoOjQxLjY2NjY2NjY3JX0uY29sLXhsLTZ7ZmxleDowIDAgYXV0bzt3aWR0aDo1MCV9LmNvbC14bC03e2ZsZXg6MCAwIGF1dG87d2lkdGg6NTguMzMzMzMzMzMlfS5jb2wteGwtOHtmbGV4OjAgMCBhdXRvO3dpZHRoOjY2LjY2NjY2NjY3JX0uY29sLXhsLTl7ZmxleDowIDAgYXV0bzt3aWR0aDo3NSV9LmNvbC14bC0xMHtmbGV4OjAgMCBhdXRvO3dpZHRoOjgzLjMzMzMzMzMzJX0uY29sLXhsLTExe2ZsZXg6MCAwIGF1dG87d2lkdGg6OTEuNjY2NjY2NjclfS5jb2wteGwtMTJ7ZmxleDowIDAgYXV0bzt3aWR0aDoxMDAlfS5vZmZzZXQteGwtMHttYXJnaW4tbGVmdDowfS5vZmZzZXQteGwtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0ub2Zmc2V0LXhsLTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjclfS5vZmZzZXQteGwtM3ttYXJnaW4tbGVmdDoyNSV9Lm9mZnNldC14bC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0ub2Zmc2V0LXhsLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjclfS5vZmZzZXQteGwtNnttYXJnaW4tbGVmdDo1MCV9Lm9mZnNldC14bC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzJX0ub2Zmc2V0LXhsLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjclfS5vZmZzZXQteGwtOXttYXJnaW4tbGVmdDo3NSV9Lm9mZnNldC14bC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9Lm9mZnNldC14bC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NyV9LmcteGwtMCwuZ3gteGwtMHstLWJzLWd1dHRlci14OjB9LmcteGwtMCwuZ3kteGwtMHstLWJzLWd1dHRlci15OjB9LmcteGwtMSwuZ3gteGwtMXstLWJzLWd1dHRlci14OjAuMjVyZW19LmcteGwtMSwuZ3kteGwtMXstLWJzLWd1dHRlci15OjAuMjVyZW19LmcteGwtMiwuZ3gteGwtMnstLWJzLWd1dHRlci14OjAuNXJlbX0uZy14bC0yLC5neS14bC0yey0tYnMtZ3V0dGVyLXk6MC41cmVtfS5nLXhsLTMsLmd4LXhsLTN7LS1icy1ndXR0ZXIteDoxcmVtfS5nLXhsLTMsLmd5LXhsLTN7LS1icy1ndXR0ZXIteToxcmVtfS5nLXhsLTQsLmd4LXhsLTR7LS1icy1ndXR0ZXIteDoxLjVyZW19LmcteGwtNCwuZ3kteGwtNHstLWJzLWd1dHRlci15OjEuNXJlbX0uZy14bC01LC5neC14bC01ey0tYnMtZ3V0dGVyLXg6M3JlbX0uZy14bC01LC5neS14bC01ey0tYnMtZ3V0dGVyLXk6M3JlbX19QG1lZGlhIChtaW4td2lkdGg6MTQwMHB4KXsuY29sLXh4bHtmbGV4OjEgMCAwJX0ucm93LWNvbHMteHhsLWF1dG8+KntmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG99LnJvdy1jb2xzLXh4bC0xPip7ZmxleDowIDAgYXV0bzt3aWR0aDoxMDAlfS5yb3ctY29scy14eGwtMj4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6NTAlfS5yb3ctY29scy14eGwtMz4qe2ZsZXg6MCAwIGF1dG87d2lkdGg6MzMuMzMzMzMzMzMzMyV9LnJvdy1jb2xzLXh4bC00Pip7ZmxleDowIDAgYXV0bzt3aWR0aDoyNSV9LnJvdy1jb2xzLXh4bC01Pip7ZmxleDowIDAgYXV0bzt3aWR0aDoyMCV9LnJvdy1jb2xzLXh4bC02Pip7ZmxleDowIDAgYXV0bzt3aWR0aDoxNi42NjY2NjY2NjY3JX0uY29sLXh4bC1hdXRve2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0b30uY29sLXh4bC0xe2ZsZXg6MCAwIGF1dG87d2lkdGg6OC4zMzMzMzMzMyV9LmNvbC14eGwtMntmbGV4OjAgMCBhdXRvO3dpZHRoOjE2LjY2NjY2NjY3JX0uY29sLXh4bC0ze2ZsZXg6MCAwIGF1dG87d2lkdGg6MjUlfS5jb2wteHhsLTR7ZmxleDowIDAgYXV0bzt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC14eGwtNXtmbGV4OjAgMCBhdXRvO3dpZHRoOjQxLjY2NjY2NjY3JX0uY29sLXh4bC02e2ZsZXg6MCAwIGF1dG87d2lkdGg6NTAlfS5jb2wteHhsLTd7ZmxleDowIDAgYXV0bzt3aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC14eGwtOHtmbGV4OjAgMCBhdXRvO3dpZHRoOjY2LjY2NjY2NjY3JX0uY29sLXh4bC05e2ZsZXg6MCAwIGF1dG87d2lkdGg6NzUlfS5jb2wteHhsLTEwe2ZsZXg6MCAwIGF1dG87d2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wteHhsLTExe2ZsZXg6MCAwIGF1dG87d2lkdGg6OTEuNjY2NjY2NjclfS5jb2wteHhsLTEye2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJX0ub2Zmc2V0LXh4bC0we21hcmdpbi1sZWZ0OjB9Lm9mZnNldC14eGwtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0ub2Zmc2V0LXh4bC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY3JX0ub2Zmc2V0LXh4bC0ze21hcmdpbi1sZWZ0OjI1JX0ub2Zmc2V0LXh4bC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0ub2Zmc2V0LXh4bC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY3JX0ub2Zmc2V0LXh4bC02e21hcmdpbi1sZWZ0OjUwJX0ub2Zmc2V0LXh4bC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzJX0ub2Zmc2V0LXh4bC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY3JX0ub2Zmc2V0LXh4bC05e21hcmdpbi1sZWZ0Ojc1JX0ub2Zmc2V0LXh4bC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9Lm9mZnNldC14eGwtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjclfS5nLXh4bC0wLC5neC14eGwtMHstLWJzLWd1dHRlci14OjB9LmcteHhsLTAsLmd5LXh4bC0wey0tYnMtZ3V0dGVyLXk6MH0uZy14eGwtMSwuZ3gteHhsLTF7LS1icy1ndXR0ZXIteDowLjI1cmVtfS5nLXh4bC0xLC5neS14eGwtMXstLWJzLWd1dHRlci15OjAuMjVyZW19LmcteHhsLTIsLmd4LXh4bC0yey0tYnMtZ3V0dGVyLXg6MC41cmVtfS5nLXh4bC0yLC5neS14eGwtMnstLWJzLWd1dHRlci15OjAuNXJlbX0uZy14eGwtMywuZ3gteHhsLTN7LS1icy1ndXR0ZXIteDoxcmVtfS5nLXh4bC0zLC5neS14eGwtM3stLWJzLWd1dHRlci15OjFyZW19LmcteHhsLTQsLmd4LXh4bC00ey0tYnMtZ3V0dGVyLXg6MS41cmVtfS5nLXh4bC00LC5neS14eGwtNHstLWJzLWd1dHRlci15OjEuNXJlbX0uZy14eGwtNSwuZ3gteHhsLTV7LS1icy1ndXR0ZXIteDozcmVtfS5nLXh4bC01LC5neS14eGwtNXstLWJzLWd1dHRlci15OjNyZW19fS50YWJsZXstLWJzLXRhYmxlLWJnOnRyYW5zcGFyZW50Oy0tYnMtdGFibGUtYWNjZW50LWJnOnRyYW5zcGFyZW50Oy0tYnMtdGFibGUtc3RyaXBlZC1jb2xvcjojMjEyNTI5Oy0tYnMtdGFibGUtc3RyaXBlZC1iZzpyZ2JhKDAsIDAsIDAsIDAuMDUpOy0tYnMtdGFibGUtYWN0aXZlLWNvbG9yOiMyMTI1Mjk7LS1icy10YWJsZS1hY3RpdmUtYmc6cmdiYSgwLCAwLCAwLCAwLjEpOy0tYnMtdGFibGUtaG92ZXItY29sb3I6IzIxMjUyOTstLWJzLXRhYmxlLWhvdmVyLWJnOnJnYmEoMCwgMCwgMCwgMC4wNzUpO3dpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbToxcmVtO2NvbG9yOiMyMTI1Mjk7dmVydGljYWwtYWxpZ246dG9wO2JvcmRlci1jb2xvcjojZGVlMmU2fS50YWJsZT46bm90KGNhcHRpb24pPio+KntwYWRkaW5nOi41cmVtIC41cmVtO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYnMtdGFibGUtYmcpO2JvcmRlci1ib3R0b20td2lkdGg6MXB4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgOTk5OXB4IHZhcigtLWJzLXRhYmxlLWFjY2VudC1iZyl9LnRhYmxlPnRib2R5e3ZlcnRpY2FsLWFsaWduOmluaGVyaXR9LnRhYmxlPnRoZWFke3ZlcnRpY2FsLWFsaWduOmJvdHRvbX0udGFibGU+Om5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci10b3A6MnB4IHNvbGlkIGN1cnJlbnRDb2xvcn0uY2FwdGlvbi10b3B7Y2FwdGlvbi1zaWRlOnRvcH0udGFibGUtc20+Om5vdChjYXB0aW9uKT4qPip7cGFkZGluZzouMjVyZW0gLjI1cmVtfS50YWJsZS1ib3JkZXJlZD46bm90KGNhcHRpb24pPip7Ym9yZGVyLXdpZHRoOjFweCAwfS50YWJsZS1ib3JkZXJlZD46bm90KGNhcHRpb24pPio+Kntib3JkZXItd2lkdGg6MCAxcHh9LnRhYmxlLWJvcmRlcmxlc3M+Om5vdChjYXB0aW9uKT4qPip7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS50YWJsZS1ib3JkZXJsZXNzPjpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLXdpZHRoOjB9LnRhYmxlLXN0cmlwZWQ+dGJvZHk+dHI6bnRoLW9mLXR5cGUob2RkKT4qey0tYnMtdGFibGUtYWNjZW50LWJnOnZhcigtLWJzLXRhYmxlLXN0cmlwZWQtYmcpO2NvbG9yOnZhcigtLWJzLXRhYmxlLXN0cmlwZWQtY29sb3IpfS50YWJsZS1hY3RpdmV7LS1icy10YWJsZS1hY2NlbnQtYmc6dmFyKC0tYnMtdGFibGUtYWN0aXZlLWJnKTtjb2xvcjp2YXIoLS1icy10YWJsZS1hY3RpdmUtY29sb3IpfS50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4qey0tYnMtdGFibGUtYWNjZW50LWJnOnZhcigtLWJzLXRhYmxlLWhvdmVyLWJnKTtjb2xvcjp2YXIoLS1icy10YWJsZS1ob3Zlci1jb2xvcil9LnRhYmxlLXByaW1hcnl7LS1icy10YWJsZS1iZzojY2ZlMmZmOy0tYnMtdGFibGUtc3RyaXBlZC1iZzojYzVkN2YyOy0tYnMtdGFibGUtc3RyaXBlZC1jb2xvcjojMDAwOy0tYnMtdGFibGUtYWN0aXZlLWJnOiNiYWNiZTY7LS1icy10YWJsZS1hY3RpdmUtY29sb3I6IzAwMDstLWJzLXRhYmxlLWhvdmVyLWJnOiNiZmQxZWM7LS1icy10YWJsZS1ob3Zlci1jb2xvcjojMDAwO2NvbG9yOiMwMDA7Ym9yZGVyLWNvbG9yOiNiYWNiZTZ9LnRhYmxlLXNlY29uZGFyeXstLWJzLXRhYmxlLWJnOiNlMmUzZTU7LS1icy10YWJsZS1zdHJpcGVkLWJnOiNkN2Q4ZGE7LS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiMwMDA7LS1icy10YWJsZS1hY3RpdmUtYmc6I2NiY2NjZTstLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjojMDAwOy0tYnMtdGFibGUtaG92ZXItYmc6I2QxZDJkNDstLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiMwMDA7Y29sb3I6IzAwMDtib3JkZXItY29sb3I6I2NiY2NjZX0udGFibGUtc3VjY2Vzc3stLWJzLXRhYmxlLWJnOiNkMWU3ZGQ7LS1icy10YWJsZS1zdHJpcGVkLWJnOiNjN2RiZDI7LS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiMwMDA7LS1icy10YWJsZS1hY3RpdmUtYmc6I2JjZDBjNzstLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjojMDAwOy0tYnMtdGFibGUtaG92ZXItYmc6I2MxZDZjYzstLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiMwMDA7Y29sb3I6IzAwMDtib3JkZXItY29sb3I6I2JjZDBjN30udGFibGUtaW5mb3stLWJzLXRhYmxlLWJnOiNjZmY0ZmM7LS1icy10YWJsZS1zdHJpcGVkLWJnOiNjNWU4ZWY7LS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiMwMDA7LS1icy10YWJsZS1hY3RpdmUtYmc6I2JhZGNlMzstLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjojMDAwOy0tYnMtdGFibGUtaG92ZXItYmc6I2JmZTJlOTstLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiMwMDA7Y29sb3I6IzAwMDtib3JkZXItY29sb3I6I2JhZGNlM30udGFibGUtd2FybmluZ3stLWJzLXRhYmxlLWJnOiNmZmYzY2Q7LS1icy10YWJsZS1zdHJpcGVkLWJnOiNmMmU3YzM7LS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiMwMDA7LS1icy10YWJsZS1hY3RpdmUtYmc6I2U2ZGJiOTstLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjojMDAwOy0tYnMtdGFibGUtaG92ZXItYmc6I2VjZTFiZTstLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiMwMDA7Y29sb3I6IzAwMDtib3JkZXItY29sb3I6I2U2ZGJiOX0udGFibGUtZGFuZ2Vyey0tYnMtdGFibGUtYmc6I2Y4ZDdkYTstLWJzLXRhYmxlLXN0cmlwZWQtYmc6I2VjY2NjZjstLWJzLXRhYmxlLXN0cmlwZWQtY29sb3I6IzAwMDstLWJzLXRhYmxlLWFjdGl2ZS1iZzojZGZjMmM0Oy0tYnMtdGFibGUtYWN0aXZlLWNvbG9yOiMwMDA7LS1icy10YWJsZS1ob3Zlci1iZzojZTVjN2NhOy0tYnMtdGFibGUtaG92ZXItY29sb3I6IzAwMDtjb2xvcjojMDAwO2JvcmRlci1jb2xvcjojZGZjMmM0fS50YWJsZS1saWdodHstLWJzLXRhYmxlLWJnOiNmOGY5ZmE7LS1icy10YWJsZS1zdHJpcGVkLWJnOiNlY2VkZWU7LS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiMwMDA7LS1icy10YWJsZS1hY3RpdmUtYmc6I2RmZTBlMTstLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjojMDAwOy0tYnMtdGFibGUtaG92ZXItYmc6I2U1ZTZlNzstLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiMwMDA7Y29sb3I6IzAwMDtib3JkZXItY29sb3I6I2RmZTBlMX0udGFibGUtZGFya3stLWJzLXRhYmxlLWJnOiMyMTI1Mjk7LS1icy10YWJsZS1zdHJpcGVkLWJnOiMyYzMwMzQ7LS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiNmZmY7LS1icy10YWJsZS1hY3RpdmUtYmc6IzM3M2IzZTstLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjojZmZmOy0tYnMtdGFibGUtaG92ZXItYmc6IzMyMzUzOTstLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiNmZmY7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6IzM3M2IzZX0udGFibGUtcmVzcG9uc2l2ZXtvdmVyZmxvdy14OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9QG1lZGlhIChtYXgtd2lkdGg6NTc1Ljk4cHgpey50YWJsZS1yZXNwb25zaXZlLXNte292ZXJmbG93LXg6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH19QG1lZGlhIChtYXgtd2lkdGg6NzY3Ljk4cHgpey50YWJsZS1yZXNwb25zaXZlLW1ke292ZXJmbG93LXg6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH19QG1lZGlhIChtYXgtd2lkdGg6OTkxLjk4cHgpey50YWJsZS1yZXNwb25zaXZlLWxne292ZXJmbG93LXg6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH19QG1lZGlhIChtYXgtd2lkdGg6MTE5OS45OHB4KXsudGFibGUtcmVzcG9uc2l2ZS14bHtvdmVyZmxvdy14OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9fUBtZWRpYSAobWF4LXdpZHRoOjEzOTkuOThweCl7LnRhYmxlLXJlc3BvbnNpdmUteHhse292ZXJmbG93LXg6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH19LmZvcm0tbGFiZWx7bWFyZ2luLWJvdHRvbTouNXJlbX0uY29sLWZvcm0tbGFiZWx7cGFkZGluZy10b3A6Y2FsYyguMzc1cmVtICsgMXB4KTtwYWRkaW5nLWJvdHRvbTpjYWxjKC4zNzVyZW0gKyAxcHgpO21hcmdpbi1ib3R0b206MDtmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDoxLjV9LmNvbC1mb3JtLWxhYmVsLWxne3BhZGRpbmctdG9wOmNhbGMoLjVyZW0gKyAxcHgpO3BhZGRpbmctYm90dG9tOmNhbGMoLjVyZW0gKyAxcHgpO2ZvbnQtc2l6ZToxLjI1cmVtfS5jb2wtZm9ybS1sYWJlbC1zbXtwYWRkaW5nLXRvcDpjYWxjKC4yNXJlbSArIDFweCk7cGFkZGluZy1ib3R0b206Y2FsYyguMjVyZW0gKyAxcHgpO2ZvbnQtc2l6ZTouODc1cmVtfS5mb3JtLXRleHR7bWFyZ2luLXRvcDouMjVyZW07Zm9udC1zaXplOi44NzVlbTtjb2xvcjojNmM3NTdkfS5mb3JtLWNvbnRyb2x7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6LjM3NXJlbSAuNzVyZW07Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7Ym9yZGVyOjFweCBzb2xpZCAjY2VkNGRhOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtib3JkZXItcmFkaXVzOi4yNXJlbTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dH1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuZm9ybS1jb250cm9se3RyYW5zaXRpb246bm9uZX19LmZvcm0tY29udHJvbFt0eXBlPWZpbGVde292ZXJmbG93OmhpZGRlbn0uZm9ybS1jb250cm9sW3R5cGU9ZmlsZV06bm90KDpkaXNhYmxlZCk6bm90KFtyZWFkb25seV0pe2N1cnNvcjpwb2ludGVyfS5mb3JtLWNvbnRyb2w6Zm9jdXN7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiM4NmI3ZmU7b3V0bGluZTowO2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMTMsMTEwLDI1MywuMjUpfS5mb3JtLWNvbnRyb2w6Oi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZXtoZWlnaHQ6MS41ZW19LmZvcm0tY29udHJvbDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojNmM3NTdkO29wYWNpdHk6MX0uZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlcntjb2xvcjojNmM3NTdkO29wYWNpdHk6MX0uZm9ybS1jb250cm9sOmRpc2FibGVkLC5mb3JtLWNvbnRyb2xbcmVhZG9ubHlde2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtvcGFjaXR5OjF9LmZvcm0tY29udHJvbDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257cGFkZGluZzouMzc1cmVtIC43NXJlbTttYXJnaW46LS4zNzVyZW0gLS43NXJlbTstd2Via2l0LW1hcmdpbi1lbmQ6Ljc1cmVtO21hcmdpbi1pbmxpbmUtZW5kOi43NXJlbTtjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1jb2xvcjppbmhlcml0O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MDtib3JkZXItaW5saW5lLWVuZC13aWR0aDoxcHg7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjpjb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXR9LmZvcm0tY29udHJvbDo6ZmlsZS1zZWxlY3Rvci1idXR0b257cGFkZGluZzouMzc1cmVtIC43NXJlbTttYXJnaW46LS4zNzVyZW0gLS43NXJlbTstd2Via2l0LW1hcmdpbi1lbmQ6Ljc1cmVtO21hcmdpbi1pbmxpbmUtZW5kOi43NXJlbTtjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1jb2xvcjppbmhlcml0O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MDtib3JkZXItaW5saW5lLWVuZC13aWR0aDoxcHg7Ym9yZGVyLXJhZGl1czowO3RyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0fUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5mb3JtLWNvbnRyb2w6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uey13ZWJraXQtdHJhbnNpdGlvbjpub25lO3RyYW5zaXRpb246bm9uZX0uZm9ybS1jb250cm9sOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbnt0cmFuc2l0aW9uOm5vbmV9fS5mb3JtLWNvbnRyb2w6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KFtyZWFkb25seV0pOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNkZGUwZTN9LmZvcm0tY29udHJvbDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoW3JlYWRvbmx5XSk6OmZpbGUtc2VsZWN0b3ItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2RkZTBlM30uZm9ybS1jb250cm9sOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntwYWRkaW5nOi4zNzVyZW0gLjc1cmVtO21hcmdpbjotLjM3NXJlbSAtLjc1cmVtOy13ZWJraXQtbWFyZ2luLWVuZDouNzVyZW07bWFyZ2luLWlubGluZS1lbmQ6Ljc1cmVtO2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZTllY2VmO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowO2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOjFweDtib3JkZXItcmFkaXVzOjA7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dH1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuZm9ybS1jb250cm9sOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9fS5mb3JtLWNvbnRyb2w6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KFtyZWFkb25seV0pOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNkZGUwZTN9LmZvcm0tY29udHJvbC1wbGFpbnRleHR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6LjM3NXJlbSAwO21hcmdpbi1ib3R0b206MDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6MXB4IDB9LmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLWxnLC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmZvcm0tY29udHJvbC1zbXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmZvcm0tY29udHJvbC1zbXttaW4taGVpZ2h0OmNhbGMoMS41ZW0gKyAuNXJlbSArIDJweCk7cGFkZGluZzouMjVyZW0gLjVyZW07Zm9udC1zaXplOi44NzVyZW07Ym9yZGVyLXJhZGl1czouMnJlbX0uZm9ybS1jb250cm9sLXNtOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntwYWRkaW5nOi4yNXJlbSAuNXJlbTttYXJnaW46LS4yNXJlbSAtLjVyZW07LXdlYmtpdC1tYXJnaW4tZW5kOi41cmVtO21hcmdpbi1pbmxpbmUtZW5kOi41cmVtfS5mb3JtLWNvbnRyb2wtc206OmZpbGUtc2VsZWN0b3ItYnV0dG9ue3BhZGRpbmc6LjI1cmVtIC41cmVtO21hcmdpbjotLjI1cmVtIC0uNXJlbTstd2Via2l0LW1hcmdpbi1lbmQ6LjVyZW07bWFyZ2luLWlubGluZS1lbmQ6LjVyZW19LmZvcm0tY29udHJvbC1zbTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257cGFkZGluZzouMjVyZW0gLjVyZW07bWFyZ2luOi0uMjVyZW0gLS41cmVtOy13ZWJraXQtbWFyZ2luLWVuZDouNXJlbTttYXJnaW4taW5saW5lLWVuZDouNXJlbX0uZm9ybS1jb250cm9sLWxne21pbi1oZWlnaHQ6Y2FsYygxLjVlbSArIDFyZW0gKyAycHgpO3BhZGRpbmc6LjVyZW0gMXJlbTtmb250LXNpemU6MS4yNXJlbTtib3JkZXItcmFkaXVzOi4zcmVtfS5mb3JtLWNvbnRyb2wtbGc6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9ue3BhZGRpbmc6LjVyZW0gMXJlbTttYXJnaW46LS41cmVtIC0xcmVtOy13ZWJraXQtbWFyZ2luLWVuZDoxcmVtO21hcmdpbi1pbmxpbmUtZW5kOjFyZW19LmZvcm0tY29udHJvbC1sZzo6ZmlsZS1zZWxlY3Rvci1idXR0b257cGFkZGluZzouNXJlbSAxcmVtO21hcmdpbjotLjVyZW0gLTFyZW07LXdlYmtpdC1tYXJnaW4tZW5kOjFyZW07bWFyZ2luLWlubGluZS1lbmQ6MXJlbX0uZm9ybS1jb250cm9sLWxnOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntwYWRkaW5nOi41cmVtIDFyZW07bWFyZ2luOi0uNXJlbSAtMXJlbTstd2Via2l0LW1hcmdpbi1lbmQ6MXJlbTttYXJnaW4taW5saW5lLWVuZDoxcmVtfXRleHRhcmVhLmZvcm0tY29udHJvbHttaW4taGVpZ2h0OmNhbGMoMS41ZW0gKyAuNzVyZW0gKyAycHgpfXRleHRhcmVhLmZvcm0tY29udHJvbC1zbXttaW4taGVpZ2h0OmNhbGMoMS41ZW0gKyAuNXJlbSArIDJweCl9dGV4dGFyZWEuZm9ybS1jb250cm9sLWxne21pbi1oZWlnaHQ6Y2FsYygxLjVlbSArIDFyZW0gKyAycHgpfS5mb3JtLWNvbnRyb2wtY29sb3J7d2lkdGg6M3JlbTtoZWlnaHQ6YXV0bztwYWRkaW5nOi4zNzVyZW19LmZvcm0tY29udHJvbC1jb2xvcjpub3QoOmRpc2FibGVkKTpub3QoW3JlYWRvbmx5XSl7Y3Vyc29yOnBvaW50ZXJ9LmZvcm0tY29udHJvbC1jb2xvcjo6LW1vei1jb2xvci1zd2F0Y2h7aGVpZ2h0OjEuNWVtO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5mb3JtLWNvbnRyb2wtY29sb3I6Oi13ZWJraXQtY29sb3Itc3dhdGNoe2hlaWdodDoxLjVlbTtib3JkZXItcmFkaXVzOi4yNXJlbX0uZm9ybS1zZWxlY3R7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6LjM3NXJlbSAyLjI1cmVtIC4zNzVyZW0gLjc1cmVtOy1tb3otcGFkZGluZy1zdGFydDpjYWxjKDAuNzVyZW0gLSAzcHgpO2ZvbnQtc2l6ZToxcmVtO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyMzM0M2E0MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J00yIDVsNiA2IDYtNicvJTNlJTNjL3N2ZyUzZSIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC43NXJlbSBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjE2cHggMTJweDtib3JkZXI6MXB4IHNvbGlkICNjZWQ0ZGE7Ym9yZGVyLXJhZGl1czouMjVyZW07dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5mb3JtLXNlbGVjdHt0cmFuc2l0aW9uOm5vbmV9fS5mb3JtLXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6Izg2YjdmZTtvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMywxMTAsMjUzLC4yNSl9LmZvcm0tc2VsZWN0W211bHRpcGxlXSwuZm9ybS1zZWxlY3Rbc2l6ZV06bm90KFtzaXplPSIxIl0pe3BhZGRpbmctcmlnaHQ6Ljc1cmVtO2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uZm9ybS1zZWxlY3Q6ZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZTllY2VmfS5mb3JtLXNlbGVjdDotbW96LWZvY3VzcmluZ3tjb2xvcjp0cmFuc3BhcmVudDt0ZXh0LXNoYWRvdzowIDAgMCAjMjEyNTI5fS5mb3JtLXNlbGVjdC1zbXtwYWRkaW5nLXRvcDouMjVyZW07cGFkZGluZy1ib3R0b206LjI1cmVtO3BhZGRpbmctbGVmdDouNXJlbTtmb250LXNpemU6Ljg3NXJlbTtib3JkZXItcmFkaXVzOi4ycmVtfS5mb3JtLXNlbGVjdC1sZ3twYWRkaW5nLXRvcDouNXJlbTtwYWRkaW5nLWJvdHRvbTouNXJlbTtwYWRkaW5nLWxlZnQ6MXJlbTtmb250LXNpemU6MS4yNXJlbTtib3JkZXItcmFkaXVzOi4zcmVtfS5mb3JtLWNoZWNre2Rpc3BsYXk6YmxvY2s7bWluLWhlaWdodDoxLjVyZW07cGFkZGluZy1sZWZ0OjEuNWVtO21hcmdpbi1ib3R0b206LjEyNXJlbX0uZm9ybS1jaGVjayAuZm9ybS1jaGVjay1pbnB1dHtmbG9hdDpsZWZ0O21hcmdpbi1sZWZ0Oi0xLjVlbX0uZm9ybS1jaGVjay1pbnB1dHt3aWR0aDoxZW07aGVpZ2h0OjFlbTttYXJnaW4tdG9wOi4yNWVtO3ZlcnRpY2FsLWFsaWduOnRvcDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMjUpOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDpleGFjdDtjb2xvci1hZGp1c3Q6ZXhhY3R9LmZvcm0tY2hlY2staW5wdXRbdHlwZT1jaGVja2JveF17Ym9yZGVyLXJhZGl1czouMjVlbX0uZm9ybS1jaGVjay1pbnB1dFt0eXBlPXJhZGlvXXtib3JkZXItcmFkaXVzOjUwJX0uZm9ybS1jaGVjay1pbnB1dDphY3RpdmV7ZmlsdGVyOmJyaWdodG5lc3MoOTAlKX0uZm9ybS1jaGVjay1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6Izg2YjdmZTtvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMywxMTAsMjUzLC4yNSl9LmZvcm0tY2hlY2staW5wdXQ6Y2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwZDZlZmQ7Ym9yZGVyLWNvbG9yOiMwZDZlZmR9LmZvcm0tY2hlY2staW5wdXQ6Y2hlY2tlZFt0eXBlPWNoZWNrYm94XXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyMCAyMCclM2UlM2NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzZmZmJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMycgZD0nTTYgMTBsMyAzbDYtNicvJTNlJTNjL3N2ZyUzZSIpfS5mb3JtLWNoZWNrLWlucHV0OmNoZWNrZWRbdHlwZT1yYWRpb117YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PSctNCAtNCA4IDgnJTNlJTNjY2lyY2xlIHI9JzInIGZpbGw9JyUyM2ZmZicvJTNlJTNjL3N2ZyUzZSIpfS5mb3JtLWNoZWNrLWlucHV0W3R5cGU9Y2hlY2tib3hdOmluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZC1jb2xvcjojMGQ2ZWZkO2JvcmRlci1jb2xvcjojMGQ2ZWZkO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIwIDIwJyUzZSUzY3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNmZmYnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPSczJyBkPSdNNiAxMGg4Jy8lM2UlM2Mvc3ZnJTNlIil9LmZvcm0tY2hlY2staW5wdXQ6ZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZTtmaWx0ZXI6bm9uZTtvcGFjaXR5Oi41fS5mb3JtLWNoZWNrLWlucHV0OmRpc2FibGVkfi5mb3JtLWNoZWNrLWxhYmVsLC5mb3JtLWNoZWNrLWlucHV0W2Rpc2FibGVkXX4uZm9ybS1jaGVjay1sYWJlbHtvcGFjaXR5Oi41fS5mb3JtLXN3aXRjaHtwYWRkaW5nLWxlZnQ6Mi41ZW19LmZvcm0tc3dpdGNoIC5mb3JtLWNoZWNrLWlucHV0e3dpZHRoOjJlbTttYXJnaW4tbGVmdDotMi41ZW07YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PSctNCAtNCA4IDgnJTNlJTNjY2lyY2xlIHI9JzMnIGZpbGw9J3JnYmElMjgwLCAwLCAwLCAwLjI1JTI5Jy8lM2UlM2Mvc3ZnJTNlIik7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IGNlbnRlcjtib3JkZXItcmFkaXVzOjJlbTt0cmFuc2l0aW9uOmJhY2tncm91bmQtcG9zaXRpb24gLjE1cyBlYXNlLWluLW91dH1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuZm9ybS1zd2l0Y2ggLmZvcm0tY2hlY2staW5wdXR7dHJhbnNpdGlvbjpub25lfX0uZm9ybS1zd2l0Y2ggLmZvcm0tY2hlY2staW5wdXQ6Zm9jdXN7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PSctNCAtNCA4IDgnJTNlJTNjY2lyY2xlIHI9JzMnIGZpbGw9JyUyMzg2YjdmZScvJTNlJTNjL3N2ZyUzZSIpfS5mb3JtLXN3aXRjaCAuZm9ybS1jaGVjay1pbnB1dDpjaGVja2Vke2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgY2VudGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4JyUzZSUzY2NpcmNsZSByPSczJyBmaWxsPSclMjNmZmYnLyUzZSUzYy9zdmclM2UiKX0uZm9ybS1jaGVjay1pbmxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjFyZW19LmJ0bi1jaGVja3twb3NpdGlvbjphYnNvbHV0ZTtjbGlwOnJlY3QoMCwwLDAsMCk7cG9pbnRlci1ldmVudHM6bm9uZX0uYnRuLWNoZWNrOmRpc2FibGVkKy5idG4sLmJ0bi1jaGVja1tkaXNhYmxlZF0rLmJ0bntwb2ludGVyLWV2ZW50czpub25lO2ZpbHRlcjpub25lO29wYWNpdHk6LjY1fS5mb3JtLXJhbmdle3dpZHRoOjEwMCU7aGVpZ2h0OjEuNXJlbTtwYWRkaW5nOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LmZvcm0tcmFuZ2U6Zm9jdXN7b3V0bGluZTowfS5mb3JtLXJhbmdlOmZvY3VzOjotd2Via2l0LXNsaWRlci10aHVtYntib3gtc2hhZG93OjAgMCAwIDFweCAjZmZmLDAgMCAwIC4yNXJlbSByZ2JhKDEzLDExMCwyNTMsLjI1KX0uZm9ybS1yYW5nZTpmb2N1czo6LW1vei1yYW5nZS10aHVtYntib3gtc2hhZG93OjAgMCAwIDFweCAjZmZmLDAgMCAwIC4yNXJlbSByZ2JhKDEzLDExMCwyNTMsLjI1KX0uZm9ybS1yYW5nZTo6LW1vei1mb2N1cy1vdXRlcntib3JkZXI6MH0uZm9ybS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7d2lkdGg6MXJlbTtoZWlnaHQ6MXJlbTttYXJnaW4tdG9wOi0uMjVyZW07YmFja2dyb3VuZC1jb2xvcjojMGQ2ZWZkO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MXJlbTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5mb3JtLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9fS5mb3JtLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYjZkNGZlfS5mb3JtLXJhbmdlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3t3aWR0aDoxMDAlO2hlaWdodDouNXJlbTtjb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNkZWUyZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MXJlbX0uZm9ybS1yYW5nZTo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoxcmVtO2hlaWdodDoxcmVtO2JhY2tncm91bmQtY29sb3I6IzBkNmVmZDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjFyZW07LW1vei10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0Oy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuZm9ybS1yYW5nZTo6LW1vei1yYW5nZS10aHVtYnstbW96LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9fS5mb3JtLXJhbmdlOjotbW96LXJhbmdlLXRodW1iOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNiNmQ0ZmV9LmZvcm0tcmFuZ2U6Oi1tb3otcmFuZ2UtdHJhY2t7d2lkdGg6MTAwJTtoZWlnaHQ6LjVyZW07Y29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZGVlMmU2O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjFyZW19LmZvcm0tcmFuZ2U6ZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZX0uZm9ybS1yYW5nZTpkaXNhYmxlZDo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojYWRiNWJkfS5mb3JtLXJhbmdlOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1ie2JhY2tncm91bmQtY29sb3I6I2FkYjViZH0uZm9ybS1mbG9hdGluZ3twb3NpdGlvbjpyZWxhdGl2ZX0uZm9ybS1mbG9hdGluZz4uZm9ybS1jb250cm9sLC5mb3JtLWZsb2F0aW5nPi5mb3JtLXNlbGVjdHtoZWlnaHQ6Y2FsYygzLjVyZW0gKyAycHgpO2xpbmUtaGVpZ2h0OjEuMjV9LmZvcm0tZmxvYXRpbmc+bGFiZWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3BhZGRpbmc6MXJlbSAuNzVyZW07cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O3RyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4xcyBlYXNlLWluLW91dH1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuZm9ybS1mbG9hdGluZz5sYWJlbHt0cmFuc2l0aW9uOm5vbmV9fS5mb3JtLWZsb2F0aW5nPi5mb3JtLWNvbnRyb2x7cGFkZGluZzoxcmVtIC43NXJlbX0uZm9ybS1mbG9hdGluZz4uZm9ybS1jb250cm9sOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50fS5mb3JtLWZsb2F0aW5nPi5mb3JtLWNvbnRyb2w6OnBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50fS5mb3JtLWZsb2F0aW5nPi5mb3JtLWNvbnRyb2w6bm90KDotbW96LXBsYWNlaG9sZGVyLXNob3duKXtwYWRkaW5nLXRvcDoxLjYyNXJlbTtwYWRkaW5nLWJvdHRvbTouNjI1cmVtfS5mb3JtLWZsb2F0aW5nPi5mb3JtLWNvbnRyb2w6Zm9jdXMsLmZvcm0tZmxvYXRpbmc+LmZvcm0tY29udHJvbDpub3QoOnBsYWNlaG9sZGVyLXNob3duKXtwYWRkaW5nLXRvcDoxLjYyNXJlbTtwYWRkaW5nLWJvdHRvbTouNjI1cmVtfS5mb3JtLWZsb2F0aW5nPi5mb3JtLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbHtwYWRkaW5nLXRvcDoxLjYyNXJlbTtwYWRkaW5nLWJvdHRvbTouNjI1cmVtfS5mb3JtLWZsb2F0aW5nPi5mb3JtLXNlbGVjdHtwYWRkaW5nLXRvcDoxLjYyNXJlbTtwYWRkaW5nLWJvdHRvbTouNjI1cmVtfS5mb3JtLWZsb2F0aW5nPi5mb3JtLWNvbnRyb2w6bm90KDotbW96LXBsYWNlaG9sZGVyLXNob3duKX5sYWJlbHtvcGFjaXR5Oi42NTt0cmFuc2Zvcm06c2NhbGUoLjg1KSB0cmFuc2xhdGVZKC0uNXJlbSkgdHJhbnNsYXRlWCguMTVyZW0pfS5mb3JtLWZsb2F0aW5nPi5mb3JtLWNvbnRyb2w6Zm9jdXN+bGFiZWwsLmZvcm0tZmxvYXRpbmc+LmZvcm0tY29udHJvbDpub3QoOnBsYWNlaG9sZGVyLXNob3duKX5sYWJlbCwuZm9ybS1mbG9hdGluZz4uZm9ybS1zZWxlY3R+bGFiZWx7b3BhY2l0eTouNjU7dHJhbnNmb3JtOnNjYWxlKC44NSkgdHJhbnNsYXRlWSgtLjVyZW0pIHRyYW5zbGF0ZVgoLjE1cmVtKX0uZm9ybS1mbG9hdGluZz4uZm9ybS1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGx+bGFiZWx7b3BhY2l0eTouNjU7dHJhbnNmb3JtOnNjYWxlKC44NSkgdHJhbnNsYXRlWSgtLjVyZW0pIHRyYW5zbGF0ZVgoLjE1cmVtKX0uaW5wdXQtZ3JvdXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOnN0cmV0Y2g7d2lkdGg6MTAwJX0uaW5wdXQtZ3JvdXA+LmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXA+LmZvcm0tc2VsZWN0e3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MSAxIGF1dG87d2lkdGg6MSU7bWluLXdpZHRoOjB9LmlucHV0LWdyb3VwPi5mb3JtLWNvbnRyb2w6Zm9jdXMsLmlucHV0LWdyb3VwPi5mb3JtLXNlbGVjdDpmb2N1c3t6LWluZGV4OjN9LmlucHV0LWdyb3VwIC5idG57cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyfS5pbnB1dC1ncm91cCAuYnRuOmZvY3Vze3otaW5kZXg6M30uaW5wdXQtZ3JvdXAtdGV4dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6LjM3NXJlbSAuNzVyZW07Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojMjEyNTI5O3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWY7Ym9yZGVyOjFweCBzb2xpZCAjY2VkNGRhO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5pbnB1dC1ncm91cC1sZz4uYnRuLC5pbnB1dC1ncm91cC1sZz4uZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1sZz4uZm9ybS1zZWxlY3QsLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC10ZXh0e3BhZGRpbmc6LjVyZW0gMXJlbTtmb250LXNpemU6MS4yNXJlbTtib3JkZXItcmFkaXVzOi4zcmVtfS5pbnB1dC1ncm91cC1zbT4uYnRuLC5pbnB1dC1ncm91cC1zbT4uZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1zbT4uZm9ybS1zZWxlY3QsLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC10ZXh0e3BhZGRpbmc6LjI1cmVtIC41cmVtO2ZvbnQtc2l6ZTouODc1cmVtO2JvcmRlci1yYWRpdXM6LjJyZW19LmlucHV0LWdyb3VwLWxnPi5mb3JtLXNlbGVjdCwuaW5wdXQtZ3JvdXAtc20+LmZvcm0tc2VsZWN0e3BhZGRpbmctcmlnaHQ6M3JlbX0uaW5wdXQtZ3JvdXA6bm90KC5oYXMtdmFsaWRhdGlvbik+LmRyb3Bkb3duLXRvZ2dsZTpudGgtbGFzdC1jaGlsZChuKzMpLC5pbnB1dC1ncm91cDpub3QoLmhhcy12YWxpZGF0aW9uKT46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSk6bm90KC5kcm9wZG93bi1tZW51KXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmlucHV0LWdyb3VwLmhhcy12YWxpZGF0aW9uPi5kcm9wZG93bi10b2dnbGU6bnRoLWxhc3QtY2hpbGQobis0KSwuaW5wdXQtZ3JvdXAuaGFzLXZhbGlkYXRpb24+Om50aC1sYXN0LWNoaWxkKG4rMyk6bm90KC5kcm9wZG93bi10b2dnbGUpOm5vdCguZHJvcGRvd24tbWVudSl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5pbnB1dC1ncm91cD46bm90KDpmaXJzdC1jaGlsZCk6bm90KC5kcm9wZG93bi1tZW51KTpub3QoLnZhbGlkLXRvb2x0aXApOm5vdCgudmFsaWQtZmVlZGJhY2spOm5vdCguaW52YWxpZC10b29sdGlwKTpub3QoLmludmFsaWQtZmVlZGJhY2spe21hcmdpbi1sZWZ0Oi0xcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0udmFsaWQtZmVlZGJhY2t7ZGlzcGxheTpub25lO3dpZHRoOjEwMCU7bWFyZ2luLXRvcDouMjVyZW07Zm9udC1zaXplOi44NzVlbTtjb2xvcjojMTk4NzU0fS52YWxpZC10b29sdGlwe3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO3otaW5kZXg6NTtkaXNwbGF5Om5vbmU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzouMjVyZW0gLjVyZW07bWFyZ2luLXRvcDouMXJlbTtmb250LXNpemU6Ljg3NXJlbTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNSwxMzUsODQsLjkpO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5pcy12YWxpZH4udmFsaWQtZmVlZGJhY2ssLmlzLXZhbGlkfi52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIDp2YWxpZH4udmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgOnZhbGlkfi52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmZvcm0tY29udHJvbC5pcy12YWxpZCwud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlke2JvcmRlci1jb2xvcjojMTk4NzU0O3BhZGRpbmctcmlnaHQ6Y2FsYygxLjVlbSArIC43NXJlbSk7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOCA4JyUzZSUzY3BhdGggZmlsbD0nJTIzMTk4NzU0JyBkPSdNMi4zIDYuNzNMLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8lM2UlM2Mvc3ZnJTNlIik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgY2FsYyguMzc1ZW0gKyAuMTg3NXJlbSkgY2VudGVyO2JhY2tncm91bmQtc2l6ZTpjYWxjKC43NWVtICsgLjM3NXJlbSkgY2FsYyguNzVlbSArIC4zNzVyZW0pfS5mb3JtLWNvbnRyb2wuaXMtdmFsaWQ6Zm9jdXMsLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDp2YWxpZDpmb2N1c3tib3JkZXItY29sb3I6IzE5ODc1NDtib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDI1LDEzNSw4NCwuMjUpfS53YXMtdmFsaWRhdGVkIHRleHRhcmVhLmZvcm0tY29udHJvbDp2YWxpZCx0ZXh0YXJlYS5mb3JtLWNvbnRyb2wuaXMtdmFsaWR7cGFkZGluZy1yaWdodDpjYWxjKDEuNWVtICsgLjc1cmVtKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcCBjYWxjKC4zNzVlbSArIC4xODc1cmVtKSByaWdodCBjYWxjKC4zNzVlbSArIC4xODc1cmVtKX0uZm9ybS1zZWxlY3QuaXMtdmFsaWQsLndhcy12YWxpZGF0ZWQgLmZvcm0tc2VsZWN0OnZhbGlke2JvcmRlci1jb2xvcjojMTk4NzU0fS5mb3JtLXNlbGVjdC5pcy12YWxpZDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSksLmZvcm0tc2VsZWN0LmlzLXZhbGlkOm5vdChbbXVsdGlwbGVdKVtzaXplPSIxIl0sLndhcy12YWxpZGF0ZWQgLmZvcm0tc2VsZWN0OnZhbGlkOm5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSwud2FzLXZhbGlkYXRlZCAuZm9ybS1zZWxlY3Q6dmFsaWQ6bm90KFttdWx0aXBsZV0pW3NpemU9IjEiXXtwYWRkaW5nLXJpZ2h0OjQuMTI1cmVtO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzZSUzY3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMzNDNhNDAnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdNMiA1bDYgNiA2LTYnLyUzZSUzYy9zdmclM2UiKSx1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOCA4JyUzZSUzY3BhdGggZmlsbD0nJTIzMTk4NzU0JyBkPSdNMi4zIDYuNzNMLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8lM2UlM2Mvc3ZnJTNlIik7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAuNzVyZW0gY2VudGVyLGNlbnRlciByaWdodCAyLjI1cmVtO2JhY2tncm91bmQtc2l6ZToxNnB4IDEycHgsY2FsYyguNzVlbSArIC4zNzVyZW0pIGNhbGMoLjc1ZW0gKyAuMzc1cmVtKX0uZm9ybS1zZWxlY3QuaXMtdmFsaWQ6Zm9jdXMsLndhcy12YWxpZGF0ZWQgLmZvcm0tc2VsZWN0OnZhbGlkOmZvY3Vze2JvcmRlci1jb2xvcjojMTk4NzU0O2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMjUsMTM1LDg0LC4yNSl9LmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQsLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6dmFsaWR7Ym9yZGVyLWNvbG9yOiMxOTg3NTR9LmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQ6Y2hlY2tlZCwud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDp2YWxpZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6IzE5ODc1NH0uZm9ybS1jaGVjay1pbnB1dC5pcy12YWxpZDpmb2N1cywud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDp2YWxpZDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDI1LDEzNSw4NCwuMjUpfS5mb3JtLWNoZWNrLWlucHV0LmlzLXZhbGlkfi5mb3JtLWNoZWNrLWxhYmVsLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OnZhbGlkfi5mb3JtLWNoZWNrLWxhYmVse2NvbG9yOiMxOTg3NTR9LmZvcm0tY2hlY2staW5saW5lIC5mb3JtLWNoZWNrLWlucHV0fi52YWxpZC1mZWVkYmFja3ttYXJnaW4tbGVmdDouNWVtfS5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sLmlzLXZhbGlkLC5pbnB1dC1ncm91cCAuZm9ybS1zZWxlY3QuaXMtdmFsaWQsLndhcy12YWxpZGF0ZWQgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6dmFsaWQsLndhcy12YWxpZGF0ZWQgLmlucHV0LWdyb3VwIC5mb3JtLXNlbGVjdDp2YWxpZHt6LWluZGV4OjF9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wuaXMtdmFsaWQ6Zm9jdXMsLmlucHV0LWdyb3VwIC5mb3JtLXNlbGVjdC5pcy12YWxpZDpmb2N1cywud2FzLXZhbGlkYXRlZCAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDp2YWxpZDpmb2N1cywud2FzLXZhbGlkYXRlZCAuaW5wdXQtZ3JvdXAgLmZvcm0tc2VsZWN0OnZhbGlkOmZvY3Vze3otaW5kZXg6M30uaW52YWxpZC1mZWVkYmFja3tkaXNwbGF5Om5vbmU7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi4yNXJlbTtmb250LXNpemU6Ljg3NWVtO2NvbG9yOiNkYzM1NDV9LmludmFsaWQtdG9vbHRpcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTt6LWluZGV4OjU7ZGlzcGxheTpub25lO21heC13aWR0aDoxMDAlO3BhZGRpbmc6LjI1cmVtIC41cmVtO21hcmdpbi10b3A6LjFyZW07Zm9udC1zaXplOi44NzVyZW07Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIwLDUzLDY5LC45KTtib3JkZXItcmFkaXVzOi4yNXJlbX0uaXMtaW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywuaXMtaW52YWxpZH4uaW52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIDppbnZhbGlkfi5pbnZhbGlkLWZlZWRiYWNrLC53YXMtdmFsaWRhdGVkIDppbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXB7ZGlzcGxheTpibG9ja30uZm9ybS1jb250cm9sLmlzLWludmFsaWQsLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlke2JvcmRlci1jb2xvcjojZGMzNTQ1O3BhZGRpbmctcmlnaHQ6Y2FsYygxLjVlbSArIC43NXJlbSk7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTIgMTInIHdpZHRoPScxMicgaGVpZ2h0PScxMicgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkYzM1NDUnJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nNicgcj0nNC41Jy8lM2UlM2NwYXRoIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGQ9J001LjggMy42aC40TDYgNi41eicvJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nOC4yJyByPScuNicgZmlsbD0nJTIzZGMzNTQ1JyBzdHJva2U9J25vbmUnLyUzZSUzYy9zdmclM2UiKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBjYWxjKC4zNzVlbSArIC4xODc1cmVtKSBjZW50ZXI7YmFja2dyb3VuZC1zaXplOmNhbGMoLjc1ZW0gKyAuMzc1cmVtKSBjYWxjKC43NWVtICsgLjM3NXJlbSl9LmZvcm0tY29udHJvbC5pcy1pbnZhbGlkOmZvY3VzLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6aW52YWxpZDpmb2N1c3tib3JkZXItY29sb3I6I2RjMzU0NTtib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDIyMCw1Myw2OSwuMjUpfS53YXMtdmFsaWRhdGVkIHRleHRhcmVhLmZvcm0tY29udHJvbDppbnZhbGlkLHRleHRhcmVhLmZvcm0tY29udHJvbC5pcy1pbnZhbGlke3BhZGRpbmctcmlnaHQ6Y2FsYygxLjVlbSArIC43NXJlbSk7YmFja2dyb3VuZC1wb3NpdGlvbjp0b3AgY2FsYyguMzc1ZW0gKyAuMTg3NXJlbSkgcmlnaHQgY2FsYyguMzc1ZW0gKyAuMTg3NXJlbSl9LmZvcm0tc2VsZWN0LmlzLWludmFsaWQsLndhcy12YWxpZGF0ZWQgLmZvcm0tc2VsZWN0OmludmFsaWR7Ym9yZGVyLWNvbG9yOiNkYzM1NDV9LmZvcm0tc2VsZWN0LmlzLWludmFsaWQ6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pLC5mb3JtLXNlbGVjdC5pcy1pbnZhbGlkOm5vdChbbXVsdGlwbGVdKVtzaXplPSIxIl0sLndhcy12YWxpZGF0ZWQgLmZvcm0tc2VsZWN0OmludmFsaWQ6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pLC53YXMtdmFsaWRhdGVkIC5mb3JtLXNlbGVjdDppbnZhbGlkOm5vdChbbXVsdGlwbGVdKVtzaXplPSIxIl17cGFkZGluZy1yaWdodDo0LjEyNXJlbTtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM2UlM2NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMzQzYTQwJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTIgNWw2IDYgNi02Jy8lM2UlM2Mvc3ZnJTNlIiksdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDEyIDEyJyB3aWR0aD0nMTInIGhlaWdodD0nMTInIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzZGMzNTQ1JyUzZSUzY2NpcmNsZSBjeD0nNicgY3k9JzYnIHI9JzQuNScvJTNlJTNjcGF0aCBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBkPSdNNS44IDMuNmguNEw2IDYuNXonLyUzZSUzY2NpcmNsZSBjeD0nNicgY3k9JzguMicgcj0nLjYnIGZpbGw9JyUyM2RjMzU0NScgc3Ryb2tlPSdub25lJy8lM2UlM2Mvc3ZnJTNlIik7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAuNzVyZW0gY2VudGVyLGNlbnRlciByaWdodCAyLjI1cmVtO2JhY2tncm91bmQtc2l6ZToxNnB4IDEycHgsY2FsYyguNzVlbSArIC4zNzVyZW0pIGNhbGMoLjc1ZW0gKyAuMzc1cmVtKX0uZm9ybS1zZWxlY3QuaXMtaW52YWxpZDpmb2N1cywud2FzLXZhbGlkYXRlZCAuZm9ybS1zZWxlY3Q6aW52YWxpZDpmb2N1c3tib3JkZXItY29sb3I6I2RjMzU0NTtib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDIyMCw1Myw2OSwuMjUpfS5mb3JtLWNoZWNrLWlucHV0LmlzLWludmFsaWQsLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZHtib3JkZXItY29sb3I6I2RjMzU0NX0uZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkOmNoZWNrZWQsLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2RjMzU0NX0uZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkOmZvY3VzLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OmludmFsaWQ6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyMjAsNTMsNjksLjI1KX0uZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkfi5mb3JtLWNoZWNrLWxhYmVsLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OmludmFsaWR+LmZvcm0tY2hlY2stbGFiZWx7Y29sb3I6I2RjMzU0NX0uZm9ybS1jaGVjay1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXR+LmludmFsaWQtZmVlZGJhY2t7bWFyZ2luLWxlZnQ6LjVlbX0uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkLC5pbnB1dC1ncm91cCAuZm9ybS1zZWxlY3QuaXMtaW52YWxpZCwud2FzLXZhbGlkYXRlZCAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDppbnZhbGlkLC53YXMtdmFsaWRhdGVkIC5pbnB1dC1ncm91cCAuZm9ybS1zZWxlY3Q6aW52YWxpZHt6LWluZGV4OjJ9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wuaXMtaW52YWxpZDpmb2N1cywuaW5wdXQtZ3JvdXAgLmZvcm0tc2VsZWN0LmlzLWludmFsaWQ6Zm9jdXMsLndhcy12YWxpZGF0ZWQgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6aW52YWxpZDpmb2N1cywud2FzLXZhbGlkYXRlZCAuaW5wdXQtZ3JvdXAgLmZvcm0tc2VsZWN0OmludmFsaWQ6Zm9jdXN7ei1pbmRleDozfS5idG57ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojMjEyNTI5O3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O3BhZGRpbmc6LjM3NXJlbSAuNzVyZW07Zm9udC1zaXplOjFyZW07Ym9yZGVyLXJhZGl1czouMjVyZW07dHJhbnNpdGlvbjpjb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXR9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmJ0bnt0cmFuc2l0aW9uOm5vbmV9fS5idG46aG92ZXJ7Y29sb3I6IzIxMjUyOX0uYnRuLWNoZWNrOmZvY3VzKy5idG4sLmJ0bjpmb2N1c3tvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMywxMTAsMjUzLC4yNSl9LmJ0bi5kaXNhYmxlZCwuYnRuOmRpc2FibGVkLGZpZWxkc2V0OmRpc2FibGVkIC5idG57cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5Oi42NX0uYnRuLXByaW1hcnl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwZDZlZmQ7Ym9yZGVyLWNvbG9yOiMwZDZlZmR9LmJ0bi1wcmltYXJ5OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMGI1ZWQ3O2JvcmRlci1jb2xvcjojMGE1OGNhfS5idG4tY2hlY2s6Zm9jdXMrLmJ0bi1wcmltYXJ5LC5idG4tcHJpbWFyeTpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzBiNWVkNztib3JkZXItY29sb3I6IzBhNThjYTtib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDQ5LDEzMiwyNTMsLjUpfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tcHJpbWFyeSwuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1wcmltYXJ5LC5idG4tcHJpbWFyeS5hY3RpdmUsLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuc2hvdz4uYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMGE1OGNhO2JvcmRlci1jb2xvcjojMGE1M2JlfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tcHJpbWFyeTpmb2N1cywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1wcmltYXJ5OmZvY3VzLC5idG4tcHJpbWFyeS5hY3RpdmU6Zm9jdXMsLmJ0bi1wcmltYXJ5OmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoNDksMTMyLDI1MywuNSl9LmJ0bi1wcmltYXJ5LmRpc2FibGVkLC5idG4tcHJpbWFyeTpkaXNhYmxlZHtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzBkNmVmZDtib3JkZXItY29sb3I6IzBkNmVmZH0uYnRuLXNlY29uZGFyeXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzZjNzU3ZDtib3JkZXItY29sb3I6IzZjNzU3ZH0uYnRuLXNlY29uZGFyeTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzVjNjM2YTtib3JkZXItY29sb3I6IzU2NWU2NH0uYnRuLWNoZWNrOmZvY3VzKy5idG4tc2Vjb25kYXJ5LC5idG4tc2Vjb25kYXJ5OmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNWM2MzZhO2JvcmRlci1jb2xvcjojNTY1ZTY0O2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMTMwLDEzOCwxNDUsLjUpfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tc2Vjb25kYXJ5LC5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLXNlY29uZGFyeSwuYnRuLXNlY29uZGFyeS5hY3RpdmUsLmJ0bi1zZWNvbmRhcnk6YWN0aXZlLC5zaG93Pi5idG4tc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzU2NWU2NDtib3JkZXItY29sb3I6IzUxNTg1ZX0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLXNlY29uZGFyeTpmb2N1cywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsLmJ0bi1zZWNvbmRhcnkuYWN0aXZlOmZvY3VzLC5idG4tc2Vjb25kYXJ5OmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMzAsMTM4LDE0NSwuNSl9LmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQsLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM2Yzc1N2Q7Ym9yZGVyLWNvbG9yOiM2Yzc1N2R9LmJ0bi1zdWNjZXNze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMTk4NzU0O2JvcmRlci1jb2xvcjojMTk4NzU0fS5idG4tc3VjY2Vzczpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE1NzM0Nztib3JkZXItY29sb3I6IzE0NmM0M30uYnRuLWNoZWNrOmZvY3VzKy5idG4tc3VjY2VzcywuYnRuLXN1Y2Nlc3M6Zm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxNTczNDc7Ym9yZGVyLWNvbG9yOiMxNDZjNDM7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSg2MCwxNTMsMTEwLC41KX0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLXN1Y2Nlc3MsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tc3VjY2VzcywuYnRuLXN1Y2Nlc3MuYWN0aXZlLC5idG4tc3VjY2VzczphY3RpdmUsLnNob3c+LmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE0NmM0Mztib3JkZXItY29sb3I6IzEzNjUzZn0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLXN1Y2Nlc3M6Zm9jdXMsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tc3VjY2Vzczpmb2N1cywuYnRuLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLC5idG4tc3VjY2VzczphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDYwLDE1MywxMTAsLjUpfS5idG4tc3VjY2Vzcy5kaXNhYmxlZCwuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxOTg3NTQ7Ym9yZGVyLWNvbG9yOiMxOTg3NTR9LmJ0bi1pbmZve2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojMGRjYWYwO2JvcmRlci1jb2xvcjojMGRjYWYwfS5idG4taW5mbzpob3Zlcntjb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6IzMxZDJmMjtib3JkZXItY29sb3I6IzI1Y2ZmMn0uYnRuLWNoZWNrOmZvY3VzKy5idG4taW5mbywuYnRuLWluZm86Zm9jdXN7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiMzMWQyZjI7Ym9yZGVyLWNvbG9yOiMyNWNmZjI7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMSwxNzIsMjA0LC41KX0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLWluZm8sLmJ0bi1jaGVjazpjaGVja2VkKy5idG4taW5mbywuYnRuLWluZm8uYWN0aXZlLC5idG4taW5mbzphY3RpdmUsLnNob3c+LmJ0bi1pbmZvLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6IzNkZDVmMztib3JkZXItY29sb3I6IzI1Y2ZmMn0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLWluZm86Zm9jdXMsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4taW5mbzpmb2N1cywuYnRuLWluZm8uYWN0aXZlOmZvY3VzLC5idG4taW5mbzphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1pbmZvLmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDExLDE3MiwyMDQsLjUpfS5idG4taW5mby5kaXNhYmxlZCwuYnRuLWluZm86ZGlzYWJsZWR7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiMwZGNhZjA7Ym9yZGVyLWNvbG9yOiMwZGNhZjB9LmJ0bi13YXJuaW5ne2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3O2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4td2FybmluZzpob3Zlcntjb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6I2ZmY2EyYztib3JkZXItY29sb3I6I2ZmYzcyMH0uYnRuLWNoZWNrOmZvY3VzKy5idG4td2FybmluZywuYnRuLXdhcm5pbmc6Zm9jdXN7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmNhMmM7Ym9yZGVyLWNvbG9yOiNmZmM3MjA7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyMTcsMTY0LDYsLjUpfS5idG4tY2hlY2s6YWN0aXZlKy5idG4td2FybmluZywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi13YXJuaW5nLC5idG4td2FybmluZy5hY3RpdmUsLmJ0bi13YXJuaW5nOmFjdGl2ZSwuc2hvdz4uYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZmZjZDM5O2JvcmRlci1jb2xvcjojZmZjNzIwfS5idG4tY2hlY2s6YWN0aXZlKy5idG4td2FybmluZzpmb2N1cywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi13YXJuaW5nOmZvY3VzLC5idG4td2FybmluZy5hY3RpdmU6Zm9jdXMsLmJ0bi13YXJuaW5nOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMjE3LDE2NCw2LC41KX0uYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi13YXJuaW5nOmRpc2FibGVke2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3O2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4tZGFuZ2Vye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZGMzNTQ1O2JvcmRlci1jb2xvcjojZGMzNTQ1fS5idG4tZGFuZ2VyOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYmIyZDNiO2JvcmRlci1jb2xvcjojYjAyYTM3fS5idG4tY2hlY2s6Zm9jdXMrLmJ0bi1kYW5nZXIsLmJ0bi1kYW5nZXI6Zm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNiYjJkM2I7Ym9yZGVyLWNvbG9yOiNiMDJhMzc7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyMjUsODMsOTcsLjUpfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tZGFuZ2VyLC5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLWRhbmdlciwuYnRuLWRhbmdlci5hY3RpdmUsLmJ0bi1kYW5nZXI6YWN0aXZlLC5zaG93Pi5idG4tZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2IwMmEzNztib3JkZXItY29sb3I6I2E1MjgzNH0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLWRhbmdlcjpmb2N1cywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1kYW5nZXI6Zm9jdXMsLmJ0bi1kYW5nZXIuYWN0aXZlOmZvY3VzLC5idG4tZGFuZ2VyOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyMjUsODMsOTcsLjUpfS5idG4tZGFuZ2VyLmRpc2FibGVkLC5idG4tZGFuZ2VyOmRpc2FibGVke2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZGMzNTQ1O2JvcmRlci1jb2xvcjojZGMzNTQ1fS5idG4tbGlnaHR7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7Ym9yZGVyLWNvbG9yOiNmOGY5ZmF9LmJ0bi1saWdodDpob3Zlcntjb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6I2Y5ZmFmYjtib3JkZXItY29sb3I6I2Y5ZmFmYn0uYnRuLWNoZWNrOmZvY3VzKy5idG4tbGlnaHQsLmJ0bi1saWdodDpmb2N1c3tjb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6I2Y5ZmFmYjtib3JkZXItY29sb3I6I2Y5ZmFmYjtib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDIxMSwyMTIsMjEzLC41KX0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLWxpZ2h0LC5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLWxpZ2h0LC5idG4tbGlnaHQuYWN0aXZlLC5idG4tbGlnaHQ6YWN0aXZlLC5zaG93Pi5idG4tbGlnaHQuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZjlmYWZiO2JvcmRlci1jb2xvcjojZjlmYWZifS5idG4tY2hlY2s6YWN0aXZlKy5idG4tbGlnaHQ6Zm9jdXMsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tbGlnaHQ6Zm9jdXMsLmJ0bi1saWdodC5hY3RpdmU6Zm9jdXMsLmJ0bi1saWdodDphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1saWdodC5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyMTEsMjEyLDIxMywuNSl9LmJ0bi1saWdodC5kaXNhYmxlZCwuYnRuLWxpZ2h0OmRpc2FibGVke2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO2JvcmRlci1jb2xvcjojZjhmOWZhfS5idG4tZGFya3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIxMjUyOTtib3JkZXItY29sb3I6IzIxMjUyOX0uYnRuLWRhcms6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxYzFmMjM7Ym9yZGVyLWNvbG9yOiMxYTFlMjF9LmJ0bi1jaGVjazpmb2N1cysuYnRuLWRhcmssLmJ0bi1kYXJrOmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMWMxZjIzO2JvcmRlci1jb2xvcjojMWExZTIxO2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoNjYsNzAsNzMsLjUpfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tZGFyaywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1kYXJrLC5idG4tZGFyay5hY3RpdmUsLmJ0bi1kYXJrOmFjdGl2ZSwuc2hvdz4uYnRuLWRhcmsuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMWExZTIxO2JvcmRlci1jb2xvcjojMTkxYzFmfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tZGFyazpmb2N1cywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1kYXJrOmZvY3VzLC5idG4tZGFyay5hY3RpdmU6Zm9jdXMsLmJ0bi1kYXJrOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLWRhcmsuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoNjYsNzAsNzMsLjUpfS5idG4tZGFyay5kaXNhYmxlZCwuYnRuLWRhcms6ZGlzYWJsZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMTI1Mjk7Ym9yZGVyLWNvbG9yOiMyMTI1Mjl9LmJ0bi1vdXRsaW5lLXByaW1hcnl7Y29sb3I6IzBkNmVmZDtib3JkZXItY29sb3I6IzBkNmVmZH0uYnRuLW91dGxpbmUtcHJpbWFyeTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzBkNmVmZDtib3JkZXItY29sb3I6IzBkNmVmZH0uYnRuLWNoZWNrOmZvY3VzKy5idG4tb3V0bGluZS1wcmltYXJ5LC5idG4tb3V0bGluZS1wcmltYXJ5OmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMTMsMTEwLDI1MywuNSl9LmJ0bi1jaGVjazphY3RpdmUrLmJ0bi1vdXRsaW5lLXByaW1hcnksLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tb3V0bGluZS1wcmltYXJ5LC5idG4tb3V0bGluZS1wcmltYXJ5LmFjdGl2ZSwuYnRuLW91dGxpbmUtcHJpbWFyeS5kcm9wZG93bi10b2dnbGUuc2hvdywuYnRuLW91dGxpbmUtcHJpbWFyeTphY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwZDZlZmQ7Ym9yZGVyLWNvbG9yOiMwZDZlZmR9LmJ0bi1jaGVjazphY3RpdmUrLmJ0bi1vdXRsaW5lLXByaW1hcnk6Zm9jdXMsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tb3V0bGluZS1wcmltYXJ5OmZvY3VzLC5idG4tb3V0bGluZS1wcmltYXJ5LmFjdGl2ZTpmb2N1cywuYnRuLW91dGxpbmUtcHJpbWFyeS5kcm9wZG93bi10b2dnbGUuc2hvdzpmb2N1cywuYnRuLW91dGxpbmUtcHJpbWFyeTphY3RpdmU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMywxMTAsMjUzLC41KX0uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwuYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZHtjb2xvcjojMGQ2ZWZkO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLXNlY29uZGFyeXtjb2xvcjojNmM3NTdkO2JvcmRlci1jb2xvcjojNmM3NTdkfS5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM2Yzc1N2Q7Ym9yZGVyLWNvbG9yOiM2Yzc1N2R9LmJ0bi1jaGVjazpmb2N1cysuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LC5idG4tb3V0bGluZS1zZWNvbmRhcnk6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMDgsMTE3LDEyNSwuNSl9LmJ0bi1jaGVjazphY3RpdmUrLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSwuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmFjdGl2ZSwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZS5zaG93LC5idG4tb3V0bGluZS1zZWNvbmRhcnk6YWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNmM3NTdkO2JvcmRlci1jb2xvcjojNmM3NTdkfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tb3V0bGluZS1zZWNvbmRhcnk6Zm9jdXMsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tb3V0bGluZS1zZWNvbmRhcnk6Zm9jdXMsLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGUuc2hvdzpmb2N1cywuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmFjdGl2ZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDEwOCwxMTcsMTI1LC41KX0uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkLC5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWR7Y29sb3I6IzZjNzU3ZDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tb3V0bGluZS1zdWNjZXNze2NvbG9yOiMxOTg3NTQ7Ym9yZGVyLWNvbG9yOiMxOTg3NTR9LmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxOTg3NTQ7Ym9yZGVyLWNvbG9yOiMxOTg3NTR9LmJ0bi1jaGVjazpmb2N1cysuYnRuLW91dGxpbmUtc3VjY2VzcywuYnRuLW91dGxpbmUtc3VjY2Vzczpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDI1LDEzNSw4NCwuNSl9LmJ0bi1jaGVjazphY3RpdmUrLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tb3V0bGluZS1zdWNjZXNzLC5idG4tb3V0bGluZS1zdWNjZXNzLmFjdGl2ZSwuYnRuLW91dGxpbmUtc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUuc2hvdywuYnRuLW91dGxpbmUtc3VjY2VzczphY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxOTg3NTQ7Ym9yZGVyLWNvbG9yOiMxOTg3NTR9LmJ0bi1jaGVjazphY3RpdmUrLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6Zm9jdXMsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tb3V0bGluZS1zdWNjZXNzOmZvY3VzLC5idG4tb3V0bGluZS1zdWNjZXNzLmFjdGl2ZTpmb2N1cywuYnRuLW91dGxpbmUtc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUuc2hvdzpmb2N1cywuYnRuLW91dGxpbmUtc3VjY2VzczphY3RpdmU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyNSwxMzUsODQsLjUpfS5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkLC5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVke2NvbG9yOiMxOTg3NTQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtaW5mb3tjb2xvcjojMGRjYWYwO2JvcmRlci1jb2xvcjojMGRjYWYwfS5idG4tb3V0bGluZS1pbmZvOmhvdmVye2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojMGRjYWYwO2JvcmRlci1jb2xvcjojMGRjYWYwfS5idG4tY2hlY2s6Zm9jdXMrLmJ0bi1vdXRsaW5lLWluZm8sLmJ0bi1vdXRsaW5lLWluZm86Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMywyMDIsMjQwLC41KX0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLW91dGxpbmUtaW5mbywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1vdXRsaW5lLWluZm8sLmJ0bi1vdXRsaW5lLWluZm8uYWN0aXZlLC5idG4tb3V0bGluZS1pbmZvLmRyb3Bkb3duLXRvZ2dsZS5zaG93LC5idG4tb3V0bGluZS1pbmZvOmFjdGl2ZXtjb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6IzBkY2FmMDtib3JkZXItY29sb3I6IzBkY2FmMH0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLW91dGxpbmUtaW5mbzpmb2N1cywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1vdXRsaW5lLWluZm86Zm9jdXMsLmJ0bi1vdXRsaW5lLWluZm8uYWN0aXZlOmZvY3VzLC5idG4tb3V0bGluZS1pbmZvLmRyb3Bkb3duLXRvZ2dsZS5zaG93OmZvY3VzLC5idG4tb3V0bGluZS1pbmZvOmFjdGl2ZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDEzLDIwMiwyNDAsLjUpfS5idG4tb3V0bGluZS1pbmZvLmRpc2FibGVkLC5idG4tb3V0bGluZS1pbmZvOmRpc2FibGVke2NvbG9yOiMwZGNhZjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtd2FybmluZ3tjb2xvcjojZmZjMTA3O2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4tb3V0bGluZS13YXJuaW5nOmhvdmVye2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3O2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4tY2hlY2s6Zm9jdXMrLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmJ0bi1vdXRsaW5lLXdhcm5pbmc6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyNTUsMTkzLDcsLjUpfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tb3V0bGluZS13YXJuaW5nLC5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLW91dGxpbmUtd2FybmluZywuYnRuLW91dGxpbmUtd2FybmluZy5hY3RpdmUsLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlLnNob3csLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZle2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3O2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4tY2hlY2s6YWN0aXZlKy5idG4tb3V0bGluZS13YXJuaW5nOmZvY3VzLC5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLW91dGxpbmUtd2FybmluZzpmb2N1cywuYnRuLW91dGxpbmUtd2FybmluZy5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlLnNob3c6Zm9jdXMsLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMjU1LDE5Myw3LC41KX0uYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZCwuYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZHtjb2xvcjojZmZjMTA3O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLWRhbmdlcntjb2xvcjojZGMzNTQ1O2JvcmRlci1jb2xvcjojZGMzNTQ1fS5idG4tb3V0bGluZS1kYW5nZXI6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkYzM1NDU7Ym9yZGVyLWNvbG9yOiNkYzM1NDV9LmJ0bi1jaGVjazpmb2N1cysuYnRuLW91dGxpbmUtZGFuZ2VyLC5idG4tb3V0bGluZS1kYW5nZXI6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyMjAsNTMsNjksLjUpfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tb3V0bGluZS1kYW5nZXIsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tb3V0bGluZS1kYW5nZXIsLmJ0bi1vdXRsaW5lLWRhbmdlci5hY3RpdmUsLmJ0bi1vdXRsaW5lLWRhbmdlci5kcm9wZG93bi10b2dnbGUuc2hvdywuYnRuLW91dGxpbmUtZGFuZ2VyOmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2RjMzU0NTtib3JkZXItY29sb3I6I2RjMzU0NX0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLW91dGxpbmUtZGFuZ2VyOmZvY3VzLC5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLW91dGxpbmUtZGFuZ2VyOmZvY3VzLC5idG4tb3V0bGluZS1kYW5nZXIuYWN0aXZlOmZvY3VzLC5idG4tb3V0bGluZS1kYW5nZXIuZHJvcGRvd24tdG9nZ2xlLnNob3c6Zm9jdXMsLmJ0bi1vdXRsaW5lLWRhbmdlcjphY3RpdmU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyMjAsNTMsNjksLjUpfS5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWRhbmdlcjpkaXNhYmxlZHtjb2xvcjojZGMzNTQ1O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLWxpZ2h0e2NvbG9yOiNmOGY5ZmE7Ym9yZGVyLWNvbG9yOiNmOGY5ZmF9LmJ0bi1vdXRsaW5lLWxpZ2h0OmhvdmVye2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO2JvcmRlci1jb2xvcjojZjhmOWZhfS5idG4tY2hlY2s6Zm9jdXMrLmJ0bi1vdXRsaW5lLWxpZ2h0LC5idG4tb3V0bGluZS1saWdodDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4yNXJlbSByZ2JhKDI0OCwyNDksMjUwLC41KX0uYnRuLWNoZWNrOmFjdGl2ZSsuYnRuLW91dGxpbmUtbGlnaHQsLmJ0bi1jaGVjazpjaGVja2VkKy5idG4tb3V0bGluZS1saWdodCwuYnRuLW91dGxpbmUtbGlnaHQuYWN0aXZlLC5idG4tb3V0bGluZS1saWdodC5kcm9wZG93bi10b2dnbGUuc2hvdywuYnRuLW91dGxpbmUtbGlnaHQ6YWN0aXZle2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO2JvcmRlci1jb2xvcjojZjhmOWZhfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tb3V0bGluZS1saWdodDpmb2N1cywuYnRuLWNoZWNrOmNoZWNrZWQrLmJ0bi1vdXRsaW5lLWxpZ2h0OmZvY3VzLC5idG4tb3V0bGluZS1saWdodC5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLWxpZ2h0LmRyb3Bkb3duLXRvZ2dsZS5zaG93OmZvY3VzLC5idG4tb3V0bGluZS1saWdodDphY3RpdmU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgyNDgsMjQ5LDI1MCwuNSl9LmJ0bi1vdXRsaW5lLWxpZ2h0LmRpc2FibGVkLC5idG4tb3V0bGluZS1saWdodDpkaXNhYmxlZHtjb2xvcjojZjhmOWZhO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLWRhcmt7Y29sb3I6IzIxMjUyOTtib3JkZXItY29sb3I6IzIxMjUyOX0uYnRuLW91dGxpbmUtZGFyazpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIxMjUyOTtib3JkZXItY29sb3I6IzIxMjUyOX0uYnRuLWNoZWNrOmZvY3VzKy5idG4tb3V0bGluZS1kYXJrLC5idG4tb3V0bGluZS1kYXJrOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMzMsMzcsNDEsLjUpfS5idG4tY2hlY2s6YWN0aXZlKy5idG4tb3V0bGluZS1kYXJrLC5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLW91dGxpbmUtZGFyaywuYnRuLW91dGxpbmUtZGFyay5hY3RpdmUsLmJ0bi1vdXRsaW5lLWRhcmsuZHJvcGRvd24tdG9nZ2xlLnNob3csLmJ0bi1vdXRsaW5lLWRhcms6YWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjEyNTI5O2JvcmRlci1jb2xvcjojMjEyNTI5fS5idG4tY2hlY2s6YWN0aXZlKy5idG4tb3V0bGluZS1kYXJrOmZvY3VzLC5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLW91dGxpbmUtZGFyazpmb2N1cywuYnRuLW91dGxpbmUtZGFyay5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLWRhcmsuZHJvcGRvd24tdG9nZ2xlLnNob3c6Zm9jdXMsLmJ0bi1vdXRsaW5lLWRhcms6YWN0aXZlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMzMsMzcsNDEsLjUpfS5idG4tb3V0bGluZS1kYXJrLmRpc2FibGVkLC5idG4tb3V0bGluZS1kYXJrOmRpc2FibGVke2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLWxpbmt7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMwZDZlZmQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uYnRuLWxpbms6aG92ZXJ7Y29sb3I6IzBhNThjYX0uYnRuLWxpbmsuZGlzYWJsZWQsLmJ0bi1saW5rOmRpc2FibGVke2NvbG9yOiM2Yzc1N2R9LmJ0bi1ncm91cC1sZz4uYnRuLC5idG4tbGd7cGFkZGluZzouNXJlbSAxcmVtO2ZvbnQtc2l6ZToxLjI1cmVtO2JvcmRlci1yYWRpdXM6LjNyZW19LmJ0bi1ncm91cC1zbT4uYnRuLC5idG4tc217cGFkZGluZzouMjVyZW0gLjVyZW07Zm9udC1zaXplOi44NzVyZW07Ym9yZGVyLXJhZGl1czouMnJlbX0uZmFkZXt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBsaW5lYXJ9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmZhZGV7dHJhbnNpdGlvbjpub25lfX0uZmFkZTpub3QoLnNob3cpe29wYWNpdHk6MH0uY29sbGFwc2U6bm90KC5zaG93KXtkaXNwbGF5Om5vbmV9LmNvbGxhcHNpbmd7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246aGVpZ2h0IC4zNXMgZWFzZX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuY29sbGFwc2luZ3t0cmFuc2l0aW9uOm5vbmV9fS5jb2xsYXBzaW5nLmNvbGxhcHNlLWhvcml6b250YWx7d2lkdGg6MDtoZWlnaHQ6YXV0bzt0cmFuc2l0aW9uOndpZHRoIC4zNXMgZWFzZX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuY29sbGFwc2luZy5jb2xsYXBzZS1ob3Jpem9udGFse3RyYW5zaXRpb246bm9uZX19LmRyb3Bkb3duLC5kcm9wZW5kLC5kcm9wc3RhcnQsLmRyb3B1cHtwb3NpdGlvbjpyZWxhdGl2ZX0uZHJvcGRvd24tdG9nZ2xle3doaXRlLXNwYWNlOm5vd3JhcH0uZHJvcGRvd24tdG9nZ2xlOjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDouMjU1ZW07dmVydGljYWwtYWxpZ246LjI1NWVtO2NvbnRlbnQ6IiI7Ym9yZGVyLXRvcDouM2VtIHNvbGlkO2JvcmRlci1yaWdodDouM2VtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MDtib3JkZXItbGVmdDouM2VtIHNvbGlkIHRyYW5zcGFyZW50fS5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVye21hcmdpbi1sZWZ0OjB9LmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6bm9uZTttaW4td2lkdGg6MTByZW07cGFkZGluZzouNXJlbSAwO21hcmdpbjowO2ZvbnQtc2l6ZToxcmVtO2NvbG9yOiMyMTI1Mjk7dGV4dC1hbGlnbjpsZWZ0O2xpc3Qtc3R5bGU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5kcm9wZG93bi1tZW51W2RhdGEtYnMtcG9wcGVyXXt0b3A6MTAwJTtsZWZ0OjA7bWFyZ2luLXRvcDouMTI1cmVtfS5kcm9wZG93bi1tZW51LXN0YXJ0ey0tYnMtcG9zaXRpb246c3RhcnR9LmRyb3Bkb3duLW1lbnUtc3RhcnRbZGF0YS1icy1wb3BwZXJde3JpZ2h0OmF1dG87bGVmdDowfS5kcm9wZG93bi1tZW51LWVuZHstLWJzLXBvc2l0aW9uOmVuZH0uZHJvcGRvd24tbWVudS1lbmRbZGF0YS1icy1wb3BwZXJde3JpZ2h0OjA7bGVmdDphdXRvfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuZHJvcGRvd24tbWVudS1zbS1zdGFydHstLWJzLXBvc2l0aW9uOnN0YXJ0fS5kcm9wZG93bi1tZW51LXNtLXN0YXJ0W2RhdGEtYnMtcG9wcGVyXXtyaWdodDphdXRvO2xlZnQ6MH0uZHJvcGRvd24tbWVudS1zbS1lbmR7LS1icy1wb3NpdGlvbjplbmR9LmRyb3Bkb3duLW1lbnUtc20tZW5kW2RhdGEtYnMtcG9wcGVyXXtyaWdodDowO2xlZnQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5kcm9wZG93bi1tZW51LW1kLXN0YXJ0ey0tYnMtcG9zaXRpb246c3RhcnR9LmRyb3Bkb3duLW1lbnUtbWQtc3RhcnRbZGF0YS1icy1wb3BwZXJde3JpZ2h0OmF1dG87bGVmdDowfS5kcm9wZG93bi1tZW51LW1kLWVuZHstLWJzLXBvc2l0aW9uOmVuZH0uZHJvcGRvd24tbWVudS1tZC1lbmRbZGF0YS1icy1wb3BwZXJde3JpZ2h0OjA7bGVmdDphdXRvfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmRyb3Bkb3duLW1lbnUtbGctc3RhcnR7LS1icy1wb3NpdGlvbjpzdGFydH0uZHJvcGRvd24tbWVudS1sZy1zdGFydFtkYXRhLWJzLXBvcHBlcl17cmlnaHQ6YXV0bztsZWZ0OjB9LmRyb3Bkb3duLW1lbnUtbGctZW5key0tYnMtcG9zaXRpb246ZW5kfS5kcm9wZG93bi1tZW51LWxnLWVuZFtkYXRhLWJzLXBvcHBlcl17cmlnaHQ6MDtsZWZ0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmRyb3Bkb3duLW1lbnUteGwtc3RhcnR7LS1icy1wb3NpdGlvbjpzdGFydH0uZHJvcGRvd24tbWVudS14bC1zdGFydFtkYXRhLWJzLXBvcHBlcl17cmlnaHQ6YXV0bztsZWZ0OjB9LmRyb3Bkb3duLW1lbnUteGwtZW5key0tYnMtcG9zaXRpb246ZW5kfS5kcm9wZG93bi1tZW51LXhsLWVuZFtkYXRhLWJzLXBvcHBlcl17cmlnaHQ6MDtsZWZ0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjE0MDBweCl7LmRyb3Bkb3duLW1lbnUteHhsLXN0YXJ0ey0tYnMtcG9zaXRpb246c3RhcnR9LmRyb3Bkb3duLW1lbnUteHhsLXN0YXJ0W2RhdGEtYnMtcG9wcGVyXXtyaWdodDphdXRvO2xlZnQ6MH0uZHJvcGRvd24tbWVudS14eGwtZW5key0tYnMtcG9zaXRpb246ZW5kfS5kcm9wZG93bi1tZW51LXh4bC1lbmRbZGF0YS1icy1wb3BwZXJde3JpZ2h0OjA7bGVmdDphdXRvfX0uZHJvcHVwIC5kcm9wZG93bi1tZW51W2RhdGEtYnMtcG9wcGVyXXt0b3A6YXV0bztib3R0b206MTAwJTttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouMTI1cmVtfS5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6LjI1NWVtO3ZlcnRpY2FsLWFsaWduOi4yNTVlbTtjb250ZW50OiIiO2JvcmRlci10b3A6MDtib3JkZXItcmlnaHQ6LjNlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4zZW0gc29saWQ7Ym9yZGVyLWxlZnQ6LjNlbSBzb2xpZCB0cmFuc3BhcmVudH0uZHJvcHVwIC5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVye21hcmdpbi1sZWZ0OjB9LmRyb3BlbmQgLmRyb3Bkb3duLW1lbnVbZGF0YS1icy1wb3BwZXJde3RvcDowO3JpZ2h0OmF1dG87bGVmdDoxMDAlO21hcmdpbi10b3A6MDttYXJnaW4tbGVmdDouMTI1cmVtfS5kcm9wZW5kIC5kcm9wZG93bi10b2dnbGU6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0Oi4yNTVlbTt2ZXJ0aWNhbC1hbGlnbjouMjU1ZW07Y29udGVudDoiIjtib3JkZXItdG9wOi4zZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjA7Ym9yZGVyLWJvdHRvbTouM2VtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0Oi4zZW0gc29saWR9LmRyb3BlbmQgLmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXJ7bWFyZ2luLWxlZnQ6MH0uZHJvcGVuZCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlcnt2ZXJ0aWNhbC1hbGlnbjowfS5kcm9wc3RhcnQgLmRyb3Bkb3duLW1lbnVbZGF0YS1icy1wb3BwZXJde3RvcDowO3JpZ2h0OjEwMCU7bGVmdDphdXRvO21hcmdpbi10b3A6MDttYXJnaW4tcmlnaHQ6LjEyNXJlbX0uZHJvcHN0YXJ0IC5kcm9wZG93bi10b2dnbGU6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0Oi4yNTVlbTt2ZXJ0aWNhbC1hbGlnbjouMjU1ZW07Y29udGVudDoiIn0uZHJvcHN0YXJ0IC5kcm9wZG93bi10b2dnbGU6OmFmdGVye2Rpc3BsYXk6bm9uZX0uZHJvcHN0YXJ0IC5kcm9wZG93bi10b2dnbGU6OmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6LjI1NWVtO3ZlcnRpY2FsLWFsaWduOi4yNTVlbTtjb250ZW50OiIiO2JvcmRlci10b3A6LjNlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6LjNlbSBzb2xpZDtib3JkZXItYm90dG9tOi4zZW0gc29saWQgdHJhbnNwYXJlbnR9LmRyb3BzdGFydCAuZHJvcGRvd24tdG9nZ2xlOmVtcHR5OjphZnRlcnttYXJnaW4tbGVmdDowfS5kcm9wc3RhcnQgLmRyb3Bkb3duLXRvZ2dsZTo6YmVmb3Jle3ZlcnRpY2FsLWFsaWduOjB9LmRyb3Bkb3duLWRpdmlkZXJ7aGVpZ2h0OjA7bWFyZ2luOi41cmVtIDA7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjE1KX0uZHJvcGRvd24taXRlbXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7cGFkZGluZzouMjVyZW0gMXJlbTtjbGVhcjpib3RoO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojMjEyNTI5O3RleHQtYWxpZ246aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MH0uZHJvcGRvd24taXRlbTpmb2N1cywuZHJvcGRvd24taXRlbTpob3Zlcntjb2xvcjojMWUyMTI1O2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZn0uZHJvcGRvd24taXRlbS5hY3RpdmUsLmRyb3Bkb3duLWl0ZW06YWN0aXZle2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojMGQ2ZWZkfS5kcm9wZG93bi1pdGVtLmRpc2FibGVkLC5kcm9wZG93bi1pdGVtOmRpc2FibGVke2NvbG9yOiNhZGI1YmQ7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5kcm9wZG93bi1tZW51LnNob3d7ZGlzcGxheTpibG9ja30uZHJvcGRvd24taGVhZGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouNXJlbSAxcmVtO21hcmdpbi1ib3R0b206MDtmb250LXNpemU6Ljg3NXJlbTtjb2xvcjojNmM3NTdkO3doaXRlLXNwYWNlOm5vd3JhcH0uZHJvcGRvd24taXRlbS10ZXh0e2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouMjVyZW0gMXJlbTtjb2xvcjojMjEyNTI5fS5kcm9wZG93bi1tZW51LWRhcmt7Y29sb3I6I2RlZTJlNjtiYWNrZ3JvdW5kLWNvbG9yOiMzNDNhNDA7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjE1KX0uZHJvcGRvd24tbWVudS1kYXJrIC5kcm9wZG93bi1pdGVte2NvbG9yOiNkZWUyZTZ9LmRyb3Bkb3duLW1lbnUtZGFyayAuZHJvcGRvd24taXRlbTpmb2N1cywuZHJvcGRvd24tbWVudS1kYXJrIC5kcm9wZG93bi1pdGVtOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xNSl9LmRyb3Bkb3duLW1lbnUtZGFyayAuZHJvcGRvd24taXRlbS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUtZGFyayAuZHJvcGRvd24taXRlbTphY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwZDZlZmR9LmRyb3Bkb3duLW1lbnUtZGFyayAuZHJvcGRvd24taXRlbS5kaXNhYmxlZCwuZHJvcGRvd24tbWVudS1kYXJrIC5kcm9wZG93bi1pdGVtOmRpc2FibGVke2NvbG9yOiNhZGI1YmR9LmRyb3Bkb3duLW1lbnUtZGFyayAuZHJvcGRvd24tZGl2aWRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMTUpfS5kcm9wZG93bi1tZW51LWRhcmsgLmRyb3Bkb3duLWl0ZW0tdGV4dHtjb2xvcjojZGVlMmU2fS5kcm9wZG93bi1tZW51LWRhcmsgLmRyb3Bkb3duLWhlYWRlcntjb2xvcjojYWRiNWJkfS5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0aWNhbHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4sLmJ0bi1ncm91cD4uYnRue3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MSAxIGF1dG99LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWNoZWNrOmNoZWNrZWQrLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tY2hlY2s6Zm9jdXMrLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4uYWN0aXZlLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjphY3RpdmUsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOmZvY3VzLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpob3ZlciwuYnRuLWdyb3VwPi5idG4tY2hlY2s6Y2hlY2tlZCsuYnRuLC5idG4tZ3JvdXA+LmJ0bi1jaGVjazpmb2N1cysuYnRuLC5idG4tZ3JvdXA+LmJ0bi5hY3RpdmUsLmJ0bi1ncm91cD4uYnRuOmFjdGl2ZSwuYnRuLWdyb3VwPi5idG46Zm9jdXMsLmJ0bi1ncm91cD4uYnRuOmhvdmVye3otaW5kZXg6MX0uYnRuLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5idG4tdG9vbGJhciAuaW5wdXQtZ3JvdXB7d2lkdGg6YXV0b30uYnRuLWdyb3VwPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCksLmJ0bi1ncm91cD4uYnRuOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi0xcHh9LmJ0bi1ncm91cD4uYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCk+LmJ0biwuYnRuLWdyb3VwPi5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKT4uYnRuLC5idG4tZ3JvdXA+LmJ0bjpudGgtY2hpbGQobiszKSwuYnRuLWdyb3VwPjpub3QoLmJ0bi1jaGVjaykrLmJ0bntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5kcm9wZG93bi10b2dnbGUtc3BsaXR7cGFkZGluZy1yaWdodDouNTYyNXJlbTtwYWRkaW5nLWxlZnQ6LjU2MjVyZW19LmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIsLmRyb3BlbmQgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIsLmRyb3B1cCAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0OjphZnRlcnttYXJnaW4tbGVmdDowfS5kcm9wc3RhcnQgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YmVmb3Jle21hcmdpbi1yaWdodDowfS5idG4tZ3JvdXAtc20+LmJ0bisuZHJvcGRvd24tdG9nZ2xlLXNwbGl0LC5idG4tc20rLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdHtwYWRkaW5nLXJpZ2h0Oi4zNzVyZW07cGFkZGluZy1sZWZ0Oi4zNzVyZW19LmJ0bi1ncm91cC1sZz4uYnRuKy5kcm9wZG93bi10b2dnbGUtc3BsaXQsLmJ0bi1sZysuZHJvcGRvd24tdG9nZ2xlLXNwbGl0e3BhZGRpbmctcmlnaHQ6Ljc1cmVtO3BhZGRpbmctbGVmdDouNzVyZW19LmJ0bi1ncm91cC12ZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXB7d2lkdGg6MTAwJX0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCksLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi10b3A6LTFweH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKT4uYnRuLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk+LmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG5+LmJ0bntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ubmF2e2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tYm90dG9tOjA7bGlzdC1zdHlsZTpub25lfS5uYXYtbGlua3tkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjVyZW0gMXJlbTtjb2xvcjojMGQ2ZWZkO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXR9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7Lm5hdi1saW5re3RyYW5zaXRpb246bm9uZX19Lm5hdi1saW5rOmZvY3VzLC5uYXYtbGluazpob3Zlcntjb2xvcjojMGE1OGNhfS5uYXYtbGluay5kaXNhYmxlZHtjb2xvcjojNmM3NTdkO3BvaW50ZXItZXZlbnRzOm5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm5hdi10YWJze2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZWUyZTZ9Lm5hdi10YWJzIC5uYXYtbGlua3ttYXJnaW4tYm90dG9tOi0xcHg7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW19Lm5hdi10YWJzIC5uYXYtbGluazpmb2N1cywubmF2LXRhYnMgLm5hdi1saW5rOmhvdmVye2JvcmRlci1jb2xvcjojZTllY2VmICNlOWVjZWYgI2RlZTJlNjtpc29sYXRpb246aXNvbGF0ZX0ubmF2LXRhYnMgLm5hdi1saW5rLmRpc2FibGVke2NvbG9yOiM2Yzc1N2Q7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9Lm5hdi10YWJzIC5uYXYtaXRlbS5zaG93IC5uYXYtbGluaywubmF2LXRhYnMgLm5hdi1saW5rLmFjdGl2ZXtjb2xvcjojNDk1MDU3O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2RlZTJlNiAjZGVlMmU2ICNmZmZ9Lm5hdi10YWJzIC5kcm9wZG93bi1tZW51e21hcmdpbi10b3A6LTFweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ubmF2LXBpbGxzIC5uYXYtbGlua3tiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4yNXJlbX0ubmF2LXBpbGxzIC5uYXYtbGluay5hY3RpdmUsLm5hdi1waWxscyAuc2hvdz4ubmF2LWxpbmt7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwZDZlZmR9Lm5hdi1maWxsIC5uYXYtaXRlbSwubmF2LWZpbGw+Lm5hdi1saW5re2ZsZXg6MSAxIGF1dG87dGV4dC1hbGlnbjpjZW50ZXJ9Lm5hdi1qdXN0aWZpZWQgLm5hdi1pdGVtLC5uYXYtanVzdGlmaWVkPi5uYXYtbGlua3tmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7dGV4dC1hbGlnbjpjZW50ZXJ9Lm5hdi1maWxsIC5uYXYtaXRlbSAubmF2LWxpbmssLm5hdi1qdXN0aWZpZWQgLm5hdi1pdGVtIC5uYXYtbGlua3t3aWR0aDoxMDAlfS50YWItY29udGVudD4udGFiLXBhbmV7ZGlzcGxheTpub25lfS50YWItY29udGVudD4uYWN0aXZle2Rpc3BsYXk6YmxvY2t9Lm5hdmJhcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmctdG9wOi41cmVtO3BhZGRpbmctYm90dG9tOi41cmVtfS5uYXZiYXI+LmNvbnRhaW5lciwubmF2YmFyPi5jb250YWluZXItZmx1aWQsLm5hdmJhcj4uY29udGFpbmVyLWxnLC5uYXZiYXI+LmNvbnRhaW5lci1tZCwubmF2YmFyPi5jb250YWluZXItc20sLm5hdmJhcj4uY29udGFpbmVyLXhsLC5uYXZiYXI+LmNvbnRhaW5lci14eGx7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDppbmhlcml0O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ubmF2YmFyLWJyYW5ke3BhZGRpbmctdG9wOi4zMTI1cmVtO3BhZGRpbmctYm90dG9tOi4zMTI1cmVtO21hcmdpbi1yaWdodDoxcmVtO2ZvbnQtc2l6ZToxLjI1cmVtO3RleHQtZGVjb3JhdGlvbjpub25lO3doaXRlLXNwYWNlOm5vd3JhcH0ubmF2YmFyLW5hdntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmctbGVmdDowO21hcmdpbi1ib3R0b206MDtsaXN0LXN0eWxlOm5vbmV9Lm5hdmJhci1uYXYgLm5hdi1saW5re3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MH0ubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudXtwb3NpdGlvbjpzdGF0aWN9Lm5hdmJhci10ZXh0e3BhZGRpbmctdG9wOi41cmVtO3BhZGRpbmctYm90dG9tOi41cmVtfS5uYXZiYXItY29sbGFwc2V7ZmxleC1iYXNpczoxMDAlO2ZsZXgtZ3JvdzoxO2FsaWduLWl0ZW1zOmNlbnRlcn0ubmF2YmFyLXRvZ2dsZXJ7cGFkZGluZzouMjVyZW0gLjc1cmVtO2ZvbnQtc2l6ZToxLjI1cmVtO2xpbmUtaGVpZ2h0OjE7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6LjI1cmVtO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0fUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5uYXZiYXItdG9nZ2xlcnt0cmFuc2l0aW9uOm5vbmV9fS5uYXZiYXItdG9nZ2xlcjpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0ubmF2YmFyLXRvZ2dsZXI6Zm9jdXN7dGV4dC1kZWNvcmF0aW9uOm5vbmU7b3V0bGluZTowO2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtfS5uYXZiYXItdG9nZ2xlci1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEuNWVtO2hlaWdodDoxLjVlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2JhY2tncm91bmQtc2l6ZToxMDAlfS5uYXZiYXItbmF2LXNjcm9sbHttYXgtaGVpZ2h0OnZhcigtLWJzLXNjcm9sbC1oZWlnaHQsNzV2aCk7b3ZlcmZsb3cteTphdXRvfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsubmF2YmFyLWV4cGFuZC1zbXtmbGV4LXdyYXA6bm93cmFwO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItbmF2e2ZsZXgtZGlyZWN0aW9uOnJvd30ubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZX0ubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLW5hdiAubmF2LWxpbmt7cGFkZGluZy1yaWdodDouNXJlbTtwYWRkaW5nLWxlZnQ6LjVyZW19Lm5hdmJhci1leHBhbmQtc20gLm5hdmJhci1uYXYtc2Nyb2xse292ZXJmbG93OnZpc2libGV9Lm5hdmJhci1leHBhbmQtc20gLm5hdmJhci1jb2xsYXBzZXtkaXNwbGF5OmZsZXghaW1wb3J0YW50O2ZsZXgtYmFzaXM6YXV0b30ubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLXRvZ2dsZXJ7ZGlzcGxheTpub25lfS5uYXZiYXItZXhwYW5kLXNtIC5vZmZjYW52YXMtaGVhZGVye2Rpc3BsYXk6bm9uZX0ubmF2YmFyLWV4cGFuZC1zbSAub2ZmY2FudmFze3Bvc2l0aW9uOmluaGVyaXQ7Ym90dG9tOjA7ei1pbmRleDoxMDAwO2ZsZXgtZ3JvdzoxO3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6MDtib3JkZXItbGVmdDowO3RyYW5zaXRpb246bm9uZTt0cmFuc2Zvcm06bm9uZX0ubmF2YmFyLWV4cGFuZC1zbSAub2ZmY2FudmFzLWJvdHRvbSwubmF2YmFyLWV4cGFuZC1zbSAub2ZmY2FudmFzLXRvcHtoZWlnaHQ6YXV0bztib3JkZXItdG9wOjA7Ym9yZGVyLWJvdHRvbTowfS5uYXZiYXItZXhwYW5kLXNtIC5vZmZjYW52YXMtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjA7cGFkZGluZzowO292ZXJmbG93LXk6dmlzaWJsZX19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItZXhwYW5kLW1ke2ZsZXgtd3JhcDpub3dyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lm5hdmJhci1leHBhbmQtbWQgLm5hdmJhci1uYXZ7ZmxleC1kaXJlY3Rpb246cm93fS5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOmFic29sdXRlfS5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2IC5uYXYtbGlua3twYWRkaW5nLXJpZ2h0Oi41cmVtO3BhZGRpbmctbGVmdDouNXJlbX0ubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLW5hdi1zY3JvbGx7b3ZlcmZsb3c6dmlzaWJsZX0ubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLWNvbGxhcHNle2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7ZmxleC1iYXNpczphdXRvfS5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItdG9nZ2xlcntkaXNwbGF5Om5vbmV9Lm5hdmJhci1leHBhbmQtbWQgLm9mZmNhbnZhcy1oZWFkZXJ7ZGlzcGxheTpub25lfS5uYXZiYXItZXhwYW5kLW1kIC5vZmZjYW52YXN7cG9zaXRpb246aW5oZXJpdDtib3R0b206MDt6LWluZGV4OjEwMDA7ZmxleC1ncm93OjE7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodDowO2JvcmRlci1sZWZ0OjA7dHJhbnNpdGlvbjpub25lO3RyYW5zZm9ybTpub25lfS5uYXZiYXItZXhwYW5kLW1kIC5vZmZjYW52YXMtYm90dG9tLC5uYXZiYXItZXhwYW5kLW1kIC5vZmZjYW52YXMtdG9we2hlaWdodDphdXRvO2JvcmRlci10b3A6MDtib3JkZXItYm90dG9tOjB9Lm5hdmJhci1leHBhbmQtbWQgLm9mZmNhbnZhcy1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MDtwYWRkaW5nOjA7b3ZlcmZsb3cteTp2aXNpYmxlfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7Lm5hdmJhci1leHBhbmQtbGd7ZmxleC13cmFwOm5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdntmbGV4LWRpcmVjdGlvbjpyb3d9Lm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGV9Lm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYgLm5hdi1saW5re3BhZGRpbmctcmlnaHQ6LjVyZW07cGFkZGluZy1sZWZ0Oi41cmVtfS5uYXZiYXItZXhwYW5kLWxnIC5uYXZiYXItbmF2LXNjcm9sbHtvdmVyZmxvdzp2aXNpYmxlfS5uYXZiYXItZXhwYW5kLWxnIC5uYXZiYXItY29sbGFwc2V7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtmbGV4LWJhc2lzOmF1dG99Lm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci10b2dnbGVye2Rpc3BsYXk6bm9uZX0ubmF2YmFyLWV4cGFuZC1sZyAub2ZmY2FudmFzLWhlYWRlcntkaXNwbGF5Om5vbmV9Lm5hdmJhci1leHBhbmQtbGcgLm9mZmNhbnZhc3twb3NpdGlvbjppbmhlcml0O2JvdHRvbTowO3otaW5kZXg6MTAwMDtmbGV4LWdyb3c6MTt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjA7Ym9yZGVyLWxlZnQ6MDt0cmFuc2l0aW9uOm5vbmU7dHJhbnNmb3JtOm5vbmV9Lm5hdmJhci1leHBhbmQtbGcgLm9mZmNhbnZhcy1ib3R0b20sLm5hdmJhci1leHBhbmQtbGcgLm9mZmNhbnZhcy10b3B7aGVpZ2h0OmF1dG87Ym9yZGVyLXRvcDowO2JvcmRlci1ib3R0b206MH0ubmF2YmFyLWV4cGFuZC1sZyAub2ZmY2FudmFzLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzowO3BhZGRpbmc6MDtvdmVyZmxvdy15OnZpc2libGV9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7Lm5hdmJhci1leHBhbmQteGx7ZmxleC13cmFwOm5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLW5hdntmbGV4LWRpcmVjdGlvbjpyb3d9Lm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGV9Lm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYgLm5hdi1saW5re3BhZGRpbmctcmlnaHQ6LjVyZW07cGFkZGluZy1sZWZ0Oi41cmVtfS5uYXZiYXItZXhwYW5kLXhsIC5uYXZiYXItbmF2LXNjcm9sbHtvdmVyZmxvdzp2aXNpYmxlfS5uYXZiYXItZXhwYW5kLXhsIC5uYXZiYXItY29sbGFwc2V7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtmbGV4LWJhc2lzOmF1dG99Lm5hdmJhci1leHBhbmQteGwgLm5hdmJhci10b2dnbGVye2Rpc3BsYXk6bm9uZX0ubmF2YmFyLWV4cGFuZC14bCAub2ZmY2FudmFzLWhlYWRlcntkaXNwbGF5Om5vbmV9Lm5hdmJhci1leHBhbmQteGwgLm9mZmNhbnZhc3twb3NpdGlvbjppbmhlcml0O2JvdHRvbTowO3otaW5kZXg6MTAwMDtmbGV4LWdyb3c6MTt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjA7Ym9yZGVyLWxlZnQ6MDt0cmFuc2l0aW9uOm5vbmU7dHJhbnNmb3JtOm5vbmV9Lm5hdmJhci1leHBhbmQteGwgLm9mZmNhbnZhcy1ib3R0b20sLm5hdmJhci1leHBhbmQteGwgLm9mZmNhbnZhcy10b3B7aGVpZ2h0OmF1dG87Ym9yZGVyLXRvcDowO2JvcmRlci1ib3R0b206MH0ubmF2YmFyLWV4cGFuZC14bCAub2ZmY2FudmFzLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzowO3BhZGRpbmc6MDtvdmVyZmxvdy15OnZpc2libGV9fUBtZWRpYSAobWluLXdpZHRoOjE0MDBweCl7Lm5hdmJhci1leHBhbmQteHhse2ZsZXgtd3JhcDpub3dyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lm5hdmJhci1leHBhbmQteHhsIC5uYXZiYXItbmF2e2ZsZXgtZGlyZWN0aW9uOnJvd30ubmF2YmFyLWV4cGFuZC14eGwgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGV9Lm5hdmJhci1leHBhbmQteHhsIC5uYXZiYXItbmF2IC5uYXYtbGlua3twYWRkaW5nLXJpZ2h0Oi41cmVtO3BhZGRpbmctbGVmdDouNXJlbX0ubmF2YmFyLWV4cGFuZC14eGwgLm5hdmJhci1uYXYtc2Nyb2xse292ZXJmbG93OnZpc2libGV9Lm5hdmJhci1leHBhbmQteHhsIC5uYXZiYXItY29sbGFwc2V7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtmbGV4LWJhc2lzOmF1dG99Lm5hdmJhci1leHBhbmQteHhsIC5uYXZiYXItdG9nZ2xlcntkaXNwbGF5Om5vbmV9Lm5hdmJhci1leHBhbmQteHhsIC5vZmZjYW52YXMtaGVhZGVye2Rpc3BsYXk6bm9uZX0ubmF2YmFyLWV4cGFuZC14eGwgLm9mZmNhbnZhc3twb3NpdGlvbjppbmhlcml0O2JvdHRvbTowO3otaW5kZXg6MTAwMDtmbGV4LWdyb3c6MTt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjA7Ym9yZGVyLWxlZnQ6MDt0cmFuc2l0aW9uOm5vbmU7dHJhbnNmb3JtOm5vbmV9Lm5hdmJhci1leHBhbmQteHhsIC5vZmZjYW52YXMtYm90dG9tLC5uYXZiYXItZXhwYW5kLXh4bCAub2ZmY2FudmFzLXRvcHtoZWlnaHQ6YXV0bztib3JkZXItdG9wOjA7Ym9yZGVyLWJvdHRvbTowfS5uYXZiYXItZXhwYW5kLXh4bCAub2ZmY2FudmFzLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzowO3BhZGRpbmc6MDtvdmVyZmxvdy15OnZpc2libGV9fS5uYXZiYXItZXhwYW5ke2ZsZXgtd3JhcDpub3dyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXZ7ZmxleC1kaXJlY3Rpb246cm93fS5uYXZiYXItZXhwYW5kIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOmFic29sdXRlfS5uYXZiYXItZXhwYW5kIC5uYXZiYXItbmF2IC5uYXYtbGlua3twYWRkaW5nLXJpZ2h0Oi41cmVtO3BhZGRpbmctbGVmdDouNXJlbX0ubmF2YmFyLWV4cGFuZCAubmF2YmFyLW5hdi1zY3JvbGx7b3ZlcmZsb3c6dmlzaWJsZX0ubmF2YmFyLWV4cGFuZCAubmF2YmFyLWNvbGxhcHNle2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7ZmxleC1iYXNpczphdXRvfS5uYXZiYXItZXhwYW5kIC5uYXZiYXItdG9nZ2xlcntkaXNwbGF5Om5vbmV9Lm5hdmJhci1leHBhbmQgLm9mZmNhbnZhcy1oZWFkZXJ7ZGlzcGxheTpub25lfS5uYXZiYXItZXhwYW5kIC5vZmZjYW52YXN7cG9zaXRpb246aW5oZXJpdDtib3R0b206MDt6LWluZGV4OjEwMDA7ZmxleC1ncm93OjE7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodDowO2JvcmRlci1sZWZ0OjA7dHJhbnNpdGlvbjpub25lO3RyYW5zZm9ybTpub25lfS5uYXZiYXItZXhwYW5kIC5vZmZjYW52YXMtYm90dG9tLC5uYXZiYXItZXhwYW5kIC5vZmZjYW52YXMtdG9we2hlaWdodDphdXRvO2JvcmRlci10b3A6MDtib3JkZXItYm90dG9tOjB9Lm5hdmJhci1leHBhbmQgLm9mZmNhbnZhcy1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MDtwYWRkaW5nOjA7b3ZlcmZsb3cteTp2aXNpYmxlfS5uYXZiYXItbGlnaHQgLm5hdmJhci1icmFuZHtjb2xvcjpyZ2JhKDAsMCwwLC45KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItYnJhbmQ6Zm9jdXMsLm5hdmJhci1saWdodCAubmF2YmFyLWJyYW5kOmhvdmVye2NvbG9yOnJnYmEoMCwwLDAsLjkpfS5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjU1KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluazpmb2N1cywubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluazpob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zKX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5hY3RpdmUsLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAuc2hvdz4ubmF2LWxpbmt7Y29sb3I6cmdiYSgwLDAsMCwuOSl9Lm5hdmJhci1saWdodCAubmF2YmFyLXRvZ2dsZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNTUpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdG9nZ2xlci1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMwIDMwJyUzZSUzY3BhdGggc3Ryb2tlPSdyZ2JhJTI4MCwgMCwgMCwgMC41NSUyOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIHN0cm9rZS13aWR0aD0nMicgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLyUzZSUzYy9zdmclM2UiKX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dHtjb2xvcjpyZ2JhKDAsMCwwLC41NSl9Lm5hdmJhci1saWdodCAubmF2YmFyLXRleHQgYSwubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCBhOmZvY3VzLC5uYXZiYXItbGlnaHQgLm5hdmJhci10ZXh0IGE6aG92ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuOSl9Lm5hdmJhci1kYXJrIC5uYXZiYXItYnJhbmR7Y29sb3I6I2ZmZn0ubmF2YmFyLWRhcmsgLm5hdmJhci1icmFuZDpmb2N1cywubmF2YmFyLWRhcmsgLm5hdmJhci1icmFuZDpob3Zlcntjb2xvcjojZmZmfS5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbmt7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNTUpfS5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbms6Zm9jdXMsLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluazpob3Zlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43NSl9Lm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluay5kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4yNSl9Lm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluay5hY3RpdmUsLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5zaG93Pi5uYXYtbGlua3tjb2xvcjojZmZmfS5uYXZiYXItZGFyayAubmF2YmFyLXRvZ2dsZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNTUpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubmF2YmFyLWRhcmsgLm5hdmJhci10b2dnbGVyLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzAgMzAnJTNlJTNjcGF0aCBzdHJva2U9J3JnYmElMjgyNTUsIDI1NSwgMjU1LCAwLjU1JTI5JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdNNCA3aDIyTTQgMTVoMjJNNCAyM2gyMicvJTNlJTNjL3N2ZyUzZSIpfS5uYXZiYXItZGFyayAubmF2YmFyLXRleHR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNTUpfS5uYXZiYXItZGFyayAubmF2YmFyLXRleHQgYSwubmF2YmFyLWRhcmsgLm5hdmJhci10ZXh0IGE6Zm9jdXMsLm5hdmJhci1kYXJrIC5uYXZiYXItdGV4dCBhOmhvdmVye2NvbG9yOiNmZmZ9LmNhcmR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MDt3b3JkLXdyYXA6YnJlYWstd29yZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOmJvcmRlci1ib3g7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMjUpO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5jYXJkPmhye21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9LmNhcmQ+Lmxpc3QtZ3JvdXB7Ym9yZGVyLXRvcDppbmhlcml0O2JvcmRlci1ib3R0b206aW5oZXJpdH0uY2FyZD4ubGlzdC1ncm91cDpmaXJzdC1jaGlsZHtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czpjYWxjKC4yNXJlbSAtIDFweCk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYyguMjVyZW0gLSAxcHgpfS5jYXJkPi5saXN0LWdyb3VwOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS13aWR0aDowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KX0uY2FyZD4uY2FyZC1oZWFkZXIrLmxpc3QtZ3JvdXAsLmNhcmQ+Lmxpc3QtZ3JvdXArLmNhcmQtZm9vdGVye2JvcmRlci10b3A6MH0uY2FyZC1ib2R5e2ZsZXg6MSAxIGF1dG87cGFkZGluZzoxcmVtIDFyZW19LmNhcmQtdGl0bGV7bWFyZ2luLWJvdHRvbTouNXJlbX0uY2FyZC1zdWJ0aXRsZXttYXJnaW4tdG9wOi0uMjVyZW07bWFyZ2luLWJvdHRvbTowfS5jYXJkLXRleHQ6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmNhcmQtbGluaysuY2FyZC1saW5re21hcmdpbi1sZWZ0OjFyZW19LmNhcmQtaGVhZGVye3BhZGRpbmc6LjVyZW0gMXJlbTttYXJnaW4tYm90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wMyk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTI1KX0uY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czpjYWxjKC4yNXJlbSAtIDFweCkgY2FsYyguMjVyZW0gLSAxcHgpIDAgMH0uY2FyZC1mb290ZXJ7cGFkZGluZzouNXJlbSAxcmVtO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDMpO2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyNSl9LmNhcmQtZm9vdGVyOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowIDAgY2FsYyguMjVyZW0gLSAxcHgpIGNhbGMoLjI1cmVtIC0gMXB4KX0uY2FyZC1oZWFkZXItdGFic3ttYXJnaW4tcmlnaHQ6LS41cmVtO21hcmdpbi1ib3R0b206LS41cmVtO21hcmdpbi1sZWZ0Oi0uNXJlbTtib3JkZXItYm90dG9tOjB9LmNhcmQtaGVhZGVyLXBpbGxze21hcmdpbi1yaWdodDotLjVyZW07bWFyZ2luLWxlZnQ6LS41cmVtfS5jYXJkLWltZy1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3BhZGRpbmc6MXJlbTtib3JkZXItcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KX0uY2FyZC1pbWcsLmNhcmQtaW1nLWJvdHRvbSwuY2FyZC1pbWctdG9we3dpZHRoOjEwMCV9LmNhcmQtaW1nLC5jYXJkLWltZy10b3B7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czpjYWxjKC4yNXJlbSAtIDFweCk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYyguMjVyZW0gLSAxcHgpfS5jYXJkLWltZywuY2FyZC1pbWctYm90dG9te2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KX0uY2FyZC1ncm91cD4uY2FyZHttYXJnaW4tYm90dG9tOi43NXJlbX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNhcmQtZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgd3JhcH0uY2FyZC1ncm91cD4uY2FyZHtmbGV4OjEgMCAwJTttYXJnaW4tYm90dG9tOjB9LmNhcmQtZ3JvdXA+LmNhcmQrLmNhcmR7bWFyZ2luLWxlZnQ6MDtib3JkZXItbGVmdDowfS5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6bGFzdC1jaGlsZCkgLmNhcmQtaGVhZGVyLC5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6bGFzdC1jaGlsZCkgLmNhcmQtaW1nLXRvcHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6bGFzdC1jaGlsZCkgLmNhcmQtZm9vdGVyLC5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6bGFzdC1jaGlsZCkgLmNhcmQtaW1nLWJvdHRvbXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmNhcmQtZ3JvdXA+LmNhcmQ6bm90KDpmaXJzdC1jaGlsZCkgLmNhcmQtaGVhZGVyLC5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpIC5jYXJkLWltZy10b3B7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpIC5jYXJkLWZvb3RlciwuY2FyZC1ncm91cD4uY2FyZDpub3QoOmZpcnN0LWNoaWxkKSAuY2FyZC1pbWctYm90dG9te2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH19LmFjY29yZGlvbi1idXR0b257cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6MXJlbSAxLjI1cmVtO2ZvbnQtc2l6ZToxcmVtO2NvbG9yOiMyMTI1Mjk7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7b3ZlcmZsb3ctYW5jaG9yOm5vbmU7dHJhbnNpdGlvbjpjb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQsYm9yZGVyLXJhZGl1cyAuMTVzIGVhc2V9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmFjY29yZGlvbi1idXR0b257dHJhbnNpdGlvbjpub25lfX0uYWNjb3JkaW9uLWJ1dHRvbjpub3QoLmNvbGxhcHNlZCl7Y29sb3I6IzBjNjNlNDtiYWNrZ3JvdW5kLWNvbG9yOiNlN2YxZmY7Ym94LXNoYWRvdzppbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4xMjUpfS5hY2NvcmRpb24tYnV0dG9uOm5vdCguY29sbGFwc2VkKTo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9JyUyMzBjNjNlNCclM2UlM2NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgZD0nTTEuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggMTAuMjkzbDUuNjQ2LTUuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTYgNmEuNS41IDAgMCAxLS43MDggMGwtNi02YS41LjUgMCAwIDEgMC0uNzA4eicvJTNlJTNjL3N2ZyUzZSIpO3RyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyl9LmFjY29yZGlvbi1idXR0b246OmFmdGVye2ZsZXgtc2hyaW5rOjA7d2lkdGg6MS4yNXJlbTtoZWlnaHQ6MS4yNXJlbTttYXJnaW4tbGVmdDphdXRvO2NvbnRlbnQ6IiI7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9JyUyMzIxMjUyOSclM2UlM2NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgZD0nTTEuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggMTAuMjkzbDUuNjQ2LTUuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTYgNmEuNS41IDAgMCAxLS43MDggMGwtNi02YS41LjUgMCAwIDEgMC0uNzA4eicvJTNlJTNjL3N2ZyUzZSIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MS4yNXJlbTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZS1pbi1vdXR9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmFjY29yZGlvbi1idXR0b246OmFmdGVye3RyYW5zaXRpb246bm9uZX19LmFjY29yZGlvbi1idXR0b246aG92ZXJ7ei1pbmRleDoyfS5hY2NvcmRpb24tYnV0dG9uOmZvY3Vze3otaW5kZXg6Mztib3JkZXItY29sb3I6Izg2YjdmZTtvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMywxMTAsMjUzLC4yNSl9LmFjY29yZGlvbi1oZWFkZXJ7bWFyZ2luLWJvdHRvbTowfS5hY2NvcmRpb24taXRlbXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMjUpfS5hY2NvcmRpb24taXRlbTpmaXJzdC1vZi10eXBle2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjI1cmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbX0uYWNjb3JkaW9uLWl0ZW06Zmlyc3Qtb2YtdHlwZSAuYWNjb3JkaW9uLWJ1dHRvbntib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czpjYWxjKC4yNXJlbSAtIDFweCl9LmFjY29yZGlvbi1pdGVtOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7Ym9yZGVyLXRvcDowfS5hY2NvcmRpb24taXRlbTpsYXN0LW9mLXR5cGV7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtfS5hY2NvcmRpb24taXRlbTpsYXN0LW9mLXR5cGUgLmFjY29yZGlvbi1idXR0b24uY29sbGFwc2Vke2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KX0uYWNjb3JkaW9uLWl0ZW06bGFzdC1vZi10eXBlIC5hY2NvcmRpb24tY29sbGFwc2V7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtfS5hY2NvcmRpb24tYm9keXtwYWRkaW5nOjFyZW0gMS4yNXJlbX0uYWNjb3JkaW9uLWZsdXNoIC5hY2NvcmRpb24tY29sbGFwc2V7Ym9yZGVyLXdpZHRoOjB9LmFjY29yZGlvbi1mbHVzaCAuYWNjb3JkaW9uLWl0ZW17Ym9yZGVyLXJpZ2h0OjA7Ym9yZGVyLWxlZnQ6MDtib3JkZXItcmFkaXVzOjB9LmFjY29yZGlvbi1mbHVzaCAuYWNjb3JkaW9uLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcDowfS5hY2NvcmRpb24tZmx1c2ggLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTowfS5hY2NvcmRpb24tZmx1c2ggLmFjY29yZGlvbi1pdGVtIC5hY2NvcmRpb24tYnV0dG9ue2JvcmRlci1yYWRpdXM6MH0uYnJlYWRjcnVtYntkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7cGFkZGluZzowIDA7bWFyZ2luLWJvdHRvbToxcmVtO2xpc3Qtc3R5bGU6bm9uZX0uYnJlYWRjcnVtYi1pdGVtKy5icmVhZGNydW1iLWl0ZW17cGFkZGluZy1sZWZ0Oi41cmVtfS5icmVhZGNydW1iLWl0ZW0rLmJyZWFkY3J1bWItaXRlbTo6YmVmb3Jle2Zsb2F0OmxlZnQ7cGFkZGluZy1yaWdodDouNXJlbTtjb2xvcjojNmM3NTdkO2NvbnRlbnQ6dmFyKC0tYnMtYnJlYWRjcnVtYi1kaXZpZGVyLCAiLyIpfS5icmVhZGNydW1iLWl0ZW0uYWN0aXZle2NvbG9yOiM2Yzc1N2R9LnBhZ2luYXRpb257ZGlzcGxheTpmbGV4O3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZX0ucGFnZS1saW5re3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Y29sb3I6IzBkNmVmZDt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGVlMmU2O3RyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0fUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5wYWdlLWxpbmt7dHJhbnNpdGlvbjpub25lfX0ucGFnZS1saW5rOmhvdmVye3otaW5kZXg6Mjtjb2xvcjojMGE1OGNhO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtib3JkZXItY29sb3I6I2RlZTJlNn0ucGFnZS1saW5rOmZvY3Vze3otaW5kZXg6Mztjb2xvcjojMGE1OGNhO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAuMjVyZW0gcmdiYSgxMywxMTAsMjUzLC4yNSl9LnBhZ2UtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSAucGFnZS1saW5re21hcmdpbi1sZWZ0Oi0xcHh9LnBhZ2UtaXRlbS5hY3RpdmUgLnBhZ2UtbGlua3t6LWluZGV4OjM7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwZDZlZmQ7Ym9yZGVyLWNvbG9yOiMwZDZlZmR9LnBhZ2UtaXRlbS5kaXNhYmxlZCAucGFnZS1saW5re2NvbG9yOiM2Yzc1N2Q7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNkZWUyZTZ9LnBhZ2UtbGlua3twYWRkaW5nOi4zNzVyZW0gLjc1cmVtfS5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGlua3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbX0ucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGlua3tib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtfS5wYWdpbmF0aW9uLWxnIC5wYWdlLWxpbmt7cGFkZGluZzouNzVyZW0gMS41cmVtO2ZvbnQtc2l6ZToxLjI1cmVtfS5wYWdpbmF0aW9uLWxnIC5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGlua3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4zcmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjNyZW19LnBhZ2luYXRpb24tbGcgLnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmt7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjNyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjNyZW19LnBhZ2luYXRpb24tc20gLnBhZ2UtbGlua3twYWRkaW5nOi4yNXJlbSAuNXJlbTtmb250LXNpemU6Ljg3NXJlbX0ucGFnaW5hdGlvbi1zbSAucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmt7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMnJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4ycmVtfS5wYWdpbmF0aW9uLXNtIC5wYWdlLWl0ZW06bGFzdC1jaGlsZCAucGFnZS1saW5re2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4ycmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4ycmVtfS5iYWRnZXtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOi4zNWVtIC42NWVtO2ZvbnQtc2l6ZTouNzVlbTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtib3JkZXItcmFkaXVzOi4yNXJlbX0uYmFkZ2U6ZW1wdHl7ZGlzcGxheTpub25lfS5idG4gLmJhZGdle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMXB4fS5hbGVydHtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjFyZW0gMXJlbTttYXJnaW4tYm90dG9tOjFyZW07Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOi4yNXJlbX0uYWxlcnQtaGVhZGluZ3tjb2xvcjppbmhlcml0fS5hbGVydC1saW5re2ZvbnQtd2VpZ2h0OjcwMH0uYWxlcnQtZGlzbWlzc2libGV7cGFkZGluZy1yaWdodDozcmVtfS5hbGVydC1kaXNtaXNzaWJsZSAuYnRuLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7ei1pbmRleDoyO3BhZGRpbmc6MS4yNXJlbSAxcmVtfS5hbGVydC1wcmltYXJ5e2NvbG9yOiMwODQyOTg7YmFja2dyb3VuZC1jb2xvcjojY2ZlMmZmO2JvcmRlci1jb2xvcjojYjZkNGZlfS5hbGVydC1wcmltYXJ5IC5hbGVydC1saW5re2NvbG9yOiMwNjM1N2F9LmFsZXJ0LXNlY29uZGFyeXtjb2xvcjojNDE0NjRiO2JhY2tncm91bmQtY29sb3I6I2UyZTNlNTtib3JkZXItY29sb3I6I2QzZDZkOH0uYWxlcnQtc2Vjb25kYXJ5IC5hbGVydC1saW5re2NvbG9yOiMzNDM4M2N9LmFsZXJ0LXN1Y2Nlc3N7Y29sb3I6IzBmNTEzMjtiYWNrZ3JvdW5kLWNvbG9yOiNkMWU3ZGQ7Ym9yZGVyLWNvbG9yOiNiYWRiY2N9LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWxpbmt7Y29sb3I6IzBjNDEyOH0uYWxlcnQtaW5mb3tjb2xvcjojMDU1MTYwO2JhY2tncm91bmQtY29sb3I6I2NmZjRmYztib3JkZXItY29sb3I6I2I2ZWZmYn0uYWxlcnQtaW5mbyAuYWxlcnQtbGlua3tjb2xvcjojMDQ0MTRkfS5hbGVydC13YXJuaW5ne2NvbG9yOiM2NjRkMDM7YmFja2dyb3VuZC1jb2xvcjojZmZmM2NkO2JvcmRlci1jb2xvcjojZmZlY2I1fS5hbGVydC13YXJuaW5nIC5hbGVydC1saW5re2NvbG9yOiM1MjNlMDJ9LmFsZXJ0LWRhbmdlcntjb2xvcjojODQyMDI5O2JhY2tncm91bmQtY29sb3I6I2Y4ZDdkYTtib3JkZXItY29sb3I6I2Y1YzJjN30uYWxlcnQtZGFuZ2VyIC5hbGVydC1saW5re2NvbG9yOiM2YTFhMjF9LmFsZXJ0LWxpZ2h0e2NvbG9yOiM2MzY0NjQ7YmFja2dyb3VuZC1jb2xvcjojZmVmZWZlO2JvcmRlci1jb2xvcjojZmRmZGZlfS5hbGVydC1saWdodCAuYWxlcnQtbGlua3tjb2xvcjojNGY1MDUwfS5hbGVydC1kYXJre2NvbG9yOiMxNDE2MTk7YmFja2dyb3VuZC1jb2xvcjojZDNkM2Q0O2JvcmRlci1jb2xvcjojYmNiZWJmfS5hbGVydC1kYXJrIC5hbGVydC1saW5re2NvbG9yOiMxMDEyMTR9QC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzezAle2JhY2tncm91bmQtcG9zaXRpb24teDoxcmVtfX1Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzezAle2JhY2tncm91bmQtcG9zaXRpb24teDoxcmVtfX0ucHJvZ3Jlc3N7ZGlzcGxheTpmbGV4O2hlaWdodDoxcmVtO292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6Ljc1cmVtO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtib3JkZXItcmFkaXVzOi4yNXJlbX0ucHJvZ3Jlc3MtYmFye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7YmFja2dyb3VuZC1jb2xvcjojMGQ2ZWZkO3RyYW5zaXRpb246d2lkdGggLjZzIGVhc2V9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LnByb2dyZXNzLWJhcnt0cmFuc2l0aW9uOm5vbmV9fS5wcm9ncmVzcy1iYXItc3RyaXBlZHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1zaXplOjFyZW0gMXJlbX0ucHJvZ3Jlc3MtYmFyLWFuaW1hdGVkey13ZWJraXQtYW5pbWF0aW9uOjFzIGxpbmVhciBpbmZpbml0ZSBwcm9ncmVzcy1iYXItc3RyaXBlczthbmltYXRpb246MXMgbGluZWFyIGluZmluaXRlIHByb2dyZXNzLWJhci1zdHJpcGVzfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5wcm9ncmVzcy1iYXItYW5pbWF0ZWR7LXdlYmtpdC1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZX19Lmxpc3QtZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXJhZGl1czouMjVyZW19Lmxpc3QtZ3JvdXAtbnVtYmVyZWR7bGlzdC1zdHlsZS10eXBlOm5vbmU7Y291bnRlci1yZXNldDpzZWN0aW9ufS5saXN0LWdyb3VwLW51bWJlcmVkPmxpOjpiZWZvcmV7Y29udGVudDpjb3VudGVycyhzZWN0aW9uLCAiLiIpICIuICI7Y291bnRlci1pbmNyZW1lbnQ6c2VjdGlvbn0ubGlzdC1ncm91cC1pdGVtLWFjdGlvbnt3aWR0aDoxMDAlO2NvbG9yOiM0OTUwNTc7dGV4dC1hbGlnbjppbmhlcml0fS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye3otaW5kZXg6MTtjb2xvcjojNDk1MDU3O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYX0ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjphY3RpdmV7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWZ9Lmxpc3QtZ3JvdXAtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjVyZW0gMXJlbTtjb2xvcjojMjEyNTI5O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyNSl9Lmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmluaGVyaXQ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6aW5oZXJpdH0ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6aW5oZXJpdDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmluaGVyaXR9Lmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCwubGlzdC1ncm91cC1pdGVtOmRpc2FibGVke2NvbG9yOiM2Yzc1N2Q7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmV7ei1pbmRleDoyO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMGQ2ZWZkO2JvcmRlci1jb2xvcjojMGQ2ZWZkfS5saXN0LWdyb3VwLWl0ZW0rLmxpc3QtZ3JvdXAtaXRlbXtib3JkZXItdG9wLXdpZHRoOjB9Lmxpc3QtZ3JvdXAtaXRlbSsubGlzdC1ncm91cC1pdGVtLmFjdGl2ZXttYXJnaW4tdG9wOi0xcHg7Ym9yZGVyLXRvcC13aWR0aDoxcHh9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbHtmbGV4LWRpcmVjdGlvbjpyb3d9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbD4ubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbD4ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsPi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZle21hcmdpbi10b3A6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsPi5saXN0LWdyb3VwLWl0ZW0rLmxpc3QtZ3JvdXAtaXRlbXtib3JkZXItdG9wLXdpZHRoOjFweDtib3JkZXItbGVmdC13aWR0aDowfS5saXN0LWdyb3VwLWhvcml6b250YWw+Lmxpc3QtZ3JvdXAtaXRlbSsubGlzdC1ncm91cC1pdGVtLmFjdGl2ZXttYXJnaW4tbGVmdDotMXB4O2JvcmRlci1sZWZ0LXdpZHRoOjFweH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1zbXtmbGV4LWRpcmVjdGlvbjpyb3d9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1zbT4ubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1zbT4ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsLXNtPi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZle21hcmdpbi10b3A6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsLXNtPi5saXN0LWdyb3VwLWl0ZW0rLmxpc3QtZ3JvdXAtaXRlbXtib3JkZXItdG9wLXdpZHRoOjFweDtib3JkZXItbGVmdC13aWR0aDowfS5saXN0LWdyb3VwLWhvcml6b250YWwtc20+Lmxpc3QtZ3JvdXAtaXRlbSsubGlzdC1ncm91cC1pdGVtLmFjdGl2ZXttYXJnaW4tbGVmdDotMXB4O2JvcmRlci1sZWZ0LXdpZHRoOjFweH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5saXN0LWdyb3VwLWhvcml6b250YWwtbWR7ZmxleC1kaXJlY3Rpb246cm93fS5saXN0LWdyb3VwLWhvcml6b250YWwtbWQ+Lmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5saXN0LWdyb3VwLWhvcml6b250YWwtbWQ+Lmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1tZD4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZXttYXJnaW4tdG9wOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1tZD4ubGlzdC1ncm91cC1pdGVtKy5saXN0LWdyb3VwLWl0ZW17Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWxlZnQtd2lkdGg6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsLW1kPi5saXN0LWdyb3VwLWl0ZW0rLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmV7bWFyZ2luLWxlZnQ6LTFweDtib3JkZXItbGVmdC13aWR0aDoxcHh9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsubGlzdC1ncm91cC1ob3Jpem9udGFsLWxne2ZsZXgtZGlyZWN0aW9uOnJvd30ubGlzdC1ncm91cC1ob3Jpem9udGFsLWxnPi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsLWxnPi5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5saXN0LWdyb3VwLWhvcml6b250YWwtbGc+Lmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmV7bWFyZ2luLXRvcDowfS5saXN0LWdyb3VwLWhvcml6b250YWwtbGc+Lmxpc3QtZ3JvdXAtaXRlbSsubGlzdC1ncm91cC1pdGVte2JvcmRlci10b3Atd2lkdGg6MXB4O2JvcmRlci1sZWZ0LXdpZHRoOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1sZz4ubGlzdC1ncm91cC1pdGVtKy5saXN0LWdyb3VwLWl0ZW0uYWN0aXZle21hcmdpbi1sZWZ0Oi0xcHg7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5saXN0LWdyb3VwLWhvcml6b250YWwteGx7ZmxleC1kaXJlY3Rpb246cm93fS5saXN0LWdyb3VwLWhvcml6b250YWwteGw+Lmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5saXN0LWdyb3VwLWhvcml6b250YWwteGw+Lmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC14bD4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZXttYXJnaW4tdG9wOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC14bD4ubGlzdC1ncm91cC1pdGVtKy5saXN0LWdyb3VwLWl0ZW17Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWxlZnQtd2lkdGg6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsLXhsPi5saXN0LWdyb3VwLWl0ZW0rLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmV7bWFyZ2luLWxlZnQ6LTFweDtib3JkZXItbGVmdC13aWR0aDoxcHh9fUBtZWRpYSAobWluLXdpZHRoOjE0MDBweCl7Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC14eGx7ZmxleC1kaXJlY3Rpb246cm93fS5saXN0LWdyb3VwLWhvcml6b250YWwteHhsPi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsLXh4bD4ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ubGlzdC1ncm91cC1ob3Jpem9udGFsLXh4bD4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZXttYXJnaW4tdG9wOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC14eGw+Lmxpc3QtZ3JvdXAtaXRlbSsubGlzdC1ncm91cC1pdGVte2JvcmRlci10b3Atd2lkdGg6MXB4O2JvcmRlci1sZWZ0LXdpZHRoOjB9Lmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC14eGw+Lmxpc3QtZ3JvdXAtaXRlbSsubGlzdC1ncm91cC1pdGVtLmFjdGl2ZXttYXJnaW4tbGVmdDotMXB4O2JvcmRlci1sZWZ0LXdpZHRoOjFweH19Lmxpc3QtZ3JvdXAtZmx1c2h7Ym9yZGVyLXJhZGl1czowfS5saXN0LWdyb3VwLWZsdXNoPi5saXN0LWdyb3VwLWl0ZW17Ym9yZGVyLXdpZHRoOjAgMCAxcHh9Lmxpc3QtZ3JvdXAtZmx1c2g+Lmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20td2lkdGg6MH0ubGlzdC1ncm91cC1pdGVtLXByaW1hcnl7Y29sb3I6IzA4NDI5ODtiYWNrZ3JvdW5kLWNvbG9yOiNjZmUyZmZ9Lmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6IzA4NDI5ODtiYWNrZ3JvdW5kLWNvbG9yOiNiYWNiZTZ9Lmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDg0Mjk4O2JvcmRlci1jb2xvcjojMDg0Mjk4fS5saXN0LWdyb3VwLWl0ZW0tc2Vjb25kYXJ5e2NvbG9yOiM0MTQ2NGI7YmFja2dyb3VuZC1jb2xvcjojZTJlM2U1fS5saXN0LWdyb3VwLWl0ZW0tc2Vjb25kYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1zZWNvbmRhcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3Zlcntjb2xvcjojNDE0NjRiO2JhY2tncm91bmQtY29sb3I6I2NiY2NjZX0ubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQxNDY0Yjtib3JkZXItY29sb3I6IzQxNDY0Yn0ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3N7Y29sb3I6IzBmNTEzMjtiYWNrZ3JvdW5kLWNvbG9yOiNkMWU3ZGR9Lmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6IzBmNTEzMjtiYWNrZ3JvdW5kLWNvbG9yOiNiY2QwYzd9Lmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMGY1MTMyO2JvcmRlci1jb2xvcjojMGY1MTMyfS5saXN0LWdyb3VwLWl0ZW0taW5mb3tjb2xvcjojMDU1MTYwO2JhY2tncm91bmQtY29sb3I6I2NmZjRmY30ubGlzdC1ncm91cC1pdGVtLWluZm8ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cywubGlzdC1ncm91cC1pdGVtLWluZm8ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3Zlcntjb2xvcjojMDU1MTYwO2JhY2tncm91bmQtY29sb3I6I2JhZGNlM30ubGlzdC1ncm91cC1pdGVtLWluZm8ubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwNTUxNjA7Ym9yZGVyLWNvbG9yOiMwNTUxNjB9Lmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5ne2NvbG9yOiM2NjRkMDM7YmFja2dyb3VuZC1jb2xvcjojZmZmM2NkfS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye2NvbG9yOiM2NjRkMDM7YmFja2dyb3VuZC1jb2xvcjojZTZkYmI5fS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzY2NGQwMztib3JkZXItY29sb3I6IzY2NGQwM30ubGlzdC1ncm91cC1pdGVtLWRhbmdlcntjb2xvcjojODQyMDI5O2JhY2tncm91bmQtY29sb3I6I2Y4ZDdkYX0ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6Izg0MjAyOTtiYWNrZ3JvdW5kLWNvbG9yOiNkZmMyYzR9Lmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM4NDIwMjk7Ym9yZGVyLWNvbG9yOiM4NDIwMjl9Lmxpc3QtZ3JvdXAtaXRlbS1saWdodHtjb2xvcjojNjM2NDY0O2JhY2tncm91bmQtY29sb3I6I2ZlZmVmZX0ubGlzdC1ncm91cC1pdGVtLWxpZ2h0Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1saWdodC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye2NvbG9yOiM2MzY0NjQ7YmFja2dyb3VuZC1jb2xvcjojZTVlNWU1fS5saXN0LWdyb3VwLWl0ZW0tbGlnaHQubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM2MzY0NjQ7Ym9yZGVyLWNvbG9yOiM2MzY0NjR9Lmxpc3QtZ3JvdXAtaXRlbS1kYXJre2NvbG9yOiMxNDE2MTk7YmFja2dyb3VuZC1jb2xvcjojZDNkM2Q0fS5saXN0LWdyb3VwLWl0ZW0tZGFyay5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0tZGFyay5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye2NvbG9yOiMxNDE2MTk7YmFja2dyb3VuZC1jb2xvcjojYmViZWJmfS5saXN0LWdyb3VwLWl0ZW0tZGFyay5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE0MTYxOTtib3JkZXItY29sb3I6IzE0MTYxOX0uYnRuLWNsb3Nle2JveC1zaXppbmc6Y29udGVudC1ib3g7d2lkdGg6MWVtO2hlaWdodDoxZW07cGFkZGluZzouMjVlbSAuMjVlbTtjb2xvcjojMDAwO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiKSBjZW50ZXIvMWVtIGF1dG8gbm8tcmVwZWF0O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6LjI1cmVtO29wYWNpdHk6LjV9LmJ0bi1jbG9zZTpob3Zlcntjb2xvcjojMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO29wYWNpdHk6Ljc1fS5idG4tY2xvc2U6Zm9jdXN7b3V0bGluZTowO2JveC1zaGFkb3c6MCAwIDAgLjI1cmVtIHJnYmEoMTMsMTEwLDI1MywuMjUpO29wYWNpdHk6MX0uYnRuLWNsb3NlLmRpc2FibGVkLC5idG4tY2xvc2U6ZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7b3BhY2l0eTouMjV9LmJ0bi1jbG9zZS13aGl0ZXtmaWx0ZXI6aW52ZXJ0KDEpIGdyYXlzY2FsZSgxMDAlKSBicmlnaHRuZXNzKDIwMCUpfS50b2FzdHt3aWR0aDozNTBweDttYXgtd2lkdGg6MTAwJTtmb250LXNpemU6Ljg3NXJlbTtwb2ludGVyLWV2ZW50czphdXRvO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuODUpO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO2JveC1zaGFkb3c6MCAuNXJlbSAxcmVtIHJnYmEoMCwwLDAsLjE1KTtib3JkZXItcmFkaXVzOi4yNXJlbX0udG9hc3Quc2hvd2luZ3tvcGFjaXR5OjB9LnRvYXN0Om5vdCguc2hvdyl7ZGlzcGxheTpub25lfS50b2FzdC1jb250YWluZXJ7d2lkdGg6LXdlYmtpdC1tYXgtY29udGVudDt3aWR0aDotbW96LW1heC1jb250ZW50O3dpZHRoOm1heC1jb250ZW50O21heC13aWR0aDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmV9LnRvYXN0LWNvbnRhaW5lcj46bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0udG9hc3QtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzouNXJlbSAuNzVyZW07Y29sb3I6IzZjNzU3ZDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjg1KTtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMDUpO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6Y2FsYyguMjVyZW0gLSAxcHgpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KX0udG9hc3QtaGVhZGVyIC5idG4tY2xvc2V7bWFyZ2luLXJpZ2h0Oi0uMzc1cmVtO21hcmdpbi1sZWZ0Oi43NXJlbX0udG9hc3QtYm9keXtwYWRkaW5nOi43NXJlbTt3b3JkLXdyYXA6YnJlYWstd29yZH0ubW9kYWx7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3otaW5kZXg6MTA1NTtkaXNwbGF5Om5vbmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87b3V0bGluZTowfS5tb2RhbC1kaWFsb2d7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6YXV0bzttYXJnaW46LjVyZW07cG9pbnRlci1ldmVudHM6bm9uZX0ubW9kYWwuZmFkZSAubW9kYWwtZGlhbG9ne3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlLW91dDt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTUwcHgpfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2d7dHJhbnNpdGlvbjpub25lfX0ubW9kYWwuc2hvdyAubW9kYWwtZGlhbG9ne3RyYW5zZm9ybTpub25lfS5tb2RhbC5tb2RhbC1zdGF0aWMgLm1vZGFsLWRpYWxvZ3t0cmFuc2Zvcm06c2NhbGUoMS4wMil9Lm1vZGFsLWRpYWxvZy1zY3JvbGxhYmxle2hlaWdodDpjYWxjKDEwMCUgLSAxcmVtKX0ubW9kYWwtZGlhbG9nLXNjcm9sbGFibGUgLm1vZGFsLWNvbnRlbnR7bWF4LWhlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0ubW9kYWwtZGlhbG9nLXNjcm9sbGFibGUgLm1vZGFsLWJvZHl7b3ZlcmZsb3cteTphdXRvfS5tb2RhbC1kaWFsb2ctY2VudGVyZWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OmNhbGMoMTAwJSAtIDFyZW0pfS5tb2RhbC1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTtwb2ludGVyLWV2ZW50czphdXRvO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTtib3JkZXItcmFkaXVzOi4zcmVtO291dGxpbmU6MH0ubW9kYWwtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3otaW5kZXg6MTA1MDt3aWR0aDoxMDB2dztoZWlnaHQ6MTAwdmg7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tb2RhbC1iYWNrZHJvcC5mYWRle29wYWNpdHk6MH0ubW9kYWwtYmFja2Ryb3Auc2hvd3tvcGFjaXR5Oi41fS5tb2RhbC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtc2hyaW5rOjA7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MXJlbSAxcmVtO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZWUyZTY7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czpjYWxjKC4zcmVtIC0gMXB4KTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czpjYWxjKC4zcmVtIC0gMXB4KX0ubW9kYWwtaGVhZGVyIC5idG4tY2xvc2V7cGFkZGluZzouNXJlbSAuNXJlbTttYXJnaW46LS41cmVtIC0uNXJlbSAtLjVyZW0gYXV0b30ubW9kYWwtdGl0bGV7bWFyZ2luLWJvdHRvbTowO2xpbmUtaGVpZ2h0OjEuNX0ubW9kYWwtYm9keXtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MXJlbX0ubW9kYWwtZm9vdGVye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtmbGV4LXNocmluazowO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7cGFkZGluZzouNzVyZW07Ym9yZGVyLXRvcDoxcHggc29saWQgI2RlZTJlNjtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpjYWxjKC4zcmVtIC0gMXB4KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmNhbGMoLjNyZW0gLSAxcHgpfS5tb2RhbC1mb290ZXI+KnttYXJnaW46LjI1cmVtfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsubW9kYWwtZGlhbG9ne21heC13aWR0aDo1MDBweDttYXJnaW46MS43NXJlbSBhdXRvfS5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZXtoZWlnaHQ6Y2FsYygxMDAlIC0gMy41cmVtKX0ubW9kYWwtZGlhbG9nLWNlbnRlcmVke21pbi1oZWlnaHQ6Y2FsYygxMDAlIC0gMy41cmVtKX0ubW9kYWwtc217bWF4LXdpZHRoOjMwMHB4fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7Lm1vZGFsLWxnLC5tb2RhbC14bHttYXgtd2lkdGg6ODAwcHh9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7Lm1vZGFsLXhse21heC13aWR0aDoxMTQwcHh9fS5tb2RhbC1mdWxsc2NyZWVue3dpZHRoOjEwMHZ3O21heC13aWR0aDpub25lO2hlaWdodDoxMDAlO21hcmdpbjowfS5tb2RhbC1mdWxsc2NyZWVuIC5tb2RhbC1jb250ZW50e2hlaWdodDoxMDAlO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MH0ubW9kYWwtZnVsbHNjcmVlbiAubW9kYWwtaGVhZGVye2JvcmRlci1yYWRpdXM6MH0ubW9kYWwtZnVsbHNjcmVlbiAubW9kYWwtYm9keXtvdmVyZmxvdy15OmF1dG99Lm1vZGFsLWZ1bGxzY3JlZW4gLm1vZGFsLWZvb3Rlcntib3JkZXItcmFkaXVzOjB9QG1lZGlhIChtYXgtd2lkdGg6NTc1Ljk4cHgpey5tb2RhbC1mdWxsc2NyZWVuLXNtLWRvd257d2lkdGg6MTAwdnc7bWF4LXdpZHRoOm5vbmU7aGVpZ2h0OjEwMCU7bWFyZ2luOjB9Lm1vZGFsLWZ1bGxzY3JlZW4tc20tZG93biAubW9kYWwtY29udGVudHtoZWlnaHQ6MTAwJTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjB9Lm1vZGFsLWZ1bGxzY3JlZW4tc20tZG93biAubW9kYWwtaGVhZGVye2JvcmRlci1yYWRpdXM6MH0ubW9kYWwtZnVsbHNjcmVlbi1zbS1kb3duIC5tb2RhbC1ib2R5e292ZXJmbG93LXk6YXV0b30ubW9kYWwtZnVsbHNjcmVlbi1zbS1kb3duIC5tb2RhbC1mb290ZXJ7Ym9yZGVyLXJhZGl1czowfX1AbWVkaWEgKG1heC13aWR0aDo3NjcuOThweCl7Lm1vZGFsLWZ1bGxzY3JlZW4tbWQtZG93bnt3aWR0aDoxMDB2dzttYXgtd2lkdGg6bm9uZTtoZWlnaHQ6MTAwJTttYXJnaW46MH0ubW9kYWwtZnVsbHNjcmVlbi1tZC1kb3duIC5tb2RhbC1jb250ZW50e2hlaWdodDoxMDAlO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MH0ubW9kYWwtZnVsbHNjcmVlbi1tZC1kb3duIC5tb2RhbC1oZWFkZXJ7Ym9yZGVyLXJhZGl1czowfS5tb2RhbC1mdWxsc2NyZWVuLW1kLWRvd24gLm1vZGFsLWJvZHl7b3ZlcmZsb3cteTphdXRvfS5tb2RhbC1mdWxsc2NyZWVuLW1kLWRvd24gLm1vZGFsLWZvb3Rlcntib3JkZXItcmFkaXVzOjB9fUBtZWRpYSAobWF4LXdpZHRoOjk5MS45OHB4KXsubW9kYWwtZnVsbHNjcmVlbi1sZy1kb3due3dpZHRoOjEwMHZ3O21heC13aWR0aDpub25lO2hlaWdodDoxMDAlO21hcmdpbjowfS5tb2RhbC1mdWxsc2NyZWVuLWxnLWRvd24gLm1vZGFsLWNvbnRlbnR7aGVpZ2h0OjEwMCU7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowfS5tb2RhbC1mdWxsc2NyZWVuLWxnLWRvd24gLm1vZGFsLWhlYWRlcntib3JkZXItcmFkaXVzOjB9Lm1vZGFsLWZ1bGxzY3JlZW4tbGctZG93biAubW9kYWwtYm9keXtvdmVyZmxvdy15OmF1dG99Lm1vZGFsLWZ1bGxzY3JlZW4tbGctZG93biAubW9kYWwtZm9vdGVye2JvcmRlci1yYWRpdXM6MH19QG1lZGlhIChtYXgtd2lkdGg6MTE5OS45OHB4KXsubW9kYWwtZnVsbHNjcmVlbi14bC1kb3due3dpZHRoOjEwMHZ3O21heC13aWR0aDpub25lO2hlaWdodDoxMDAlO21hcmdpbjowfS5tb2RhbC1mdWxsc2NyZWVuLXhsLWRvd24gLm1vZGFsLWNvbnRlbnR7aGVpZ2h0OjEwMCU7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowfS5tb2RhbC1mdWxsc2NyZWVuLXhsLWRvd24gLm1vZGFsLWhlYWRlcntib3JkZXItcmFkaXVzOjB9Lm1vZGFsLWZ1bGxzY3JlZW4teGwtZG93biAubW9kYWwtYm9keXtvdmVyZmxvdy15OmF1dG99Lm1vZGFsLWZ1bGxzY3JlZW4teGwtZG93biAubW9kYWwtZm9vdGVye2JvcmRlci1yYWRpdXM6MH19QG1lZGlhIChtYXgtd2lkdGg6MTM5OS45OHB4KXsubW9kYWwtZnVsbHNjcmVlbi14eGwtZG93bnt3aWR0aDoxMDB2dzttYXgtd2lkdGg6bm9uZTtoZWlnaHQ6MTAwJTttYXJnaW46MH0ubW9kYWwtZnVsbHNjcmVlbi14eGwtZG93biAubW9kYWwtY29udGVudHtoZWlnaHQ6MTAwJTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjB9Lm1vZGFsLWZ1bGxzY3JlZW4teHhsLWRvd24gLm1vZGFsLWhlYWRlcntib3JkZXItcmFkaXVzOjB9Lm1vZGFsLWZ1bGxzY3JlZW4teHhsLWRvd24gLm1vZGFsLWJvZHl7b3ZlcmZsb3cteTphdXRvfS5tb2RhbC1mdWxsc2NyZWVuLXh4bC1kb3duIC5tb2RhbC1mb290ZXJ7Ym9yZGVyLXJhZGl1czowfX0udG9vbHRpcHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwODA7ZGlzcGxheTpibG9jazttYXJnaW46MDtmb250LWZhbWlseTp2YXIoLS1icy1mb250LXNhbnMtc2VyaWYpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjU7dGV4dC1hbGlnbjpsZWZ0O3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6bm9uZTt0ZXh0LXRyYW5zZm9ybTpub25lO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLWJyZWFrOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3doaXRlLXNwYWNlOm5vcm1hbDtsaW5lLWJyZWFrOmF1dG87Zm9udC1zaXplOi44NzVyZW07d29yZC13cmFwOmJyZWFrLXdvcmQ7b3BhY2l0eTowfS50b29sdGlwLnNob3d7b3BhY2l0eTouOX0udG9vbHRpcCAudG9vbHRpcC1hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3dpZHRoOi44cmVtO2hlaWdodDouNHJlbX0udG9vbHRpcCAudG9vbHRpcC1hcnJvdzo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpzb2xpZH0uYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49dG9wXSwuYnMtdG9vbHRpcC10b3B7cGFkZGluZzouNHJlbSAwfS5icy10b29sdGlwLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3BdIC50b29sdGlwLWFycm93LC5icy10b29sdGlwLXRvcCAudG9vbHRpcC1hcnJvd3tib3R0b206MH0uYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49dG9wXSAudG9vbHRpcC1hcnJvdzo6YmVmb3JlLC5icy10b29sdGlwLXRvcCAudG9vbHRpcC1hcnJvdzo6YmVmb3Jle3RvcDotMXB4O2JvcmRlci13aWR0aDouNHJlbSAuNHJlbSAwO2JvcmRlci10b3AtY29sb3I6IzAwMH0uYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49cmlnaHRdLC5icy10b29sdGlwLWVuZHtwYWRkaW5nOjAgLjRyZW19LmJzLXRvb2x0aXAtYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePXJpZ2h0XSAudG9vbHRpcC1hcnJvdywuYnMtdG9vbHRpcC1lbmQgLnRvb2x0aXAtYXJyb3d7bGVmdDowO3dpZHRoOi40cmVtO2hlaWdodDouOHJlbX0uYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49cmlnaHRdIC50b29sdGlwLWFycm93OjpiZWZvcmUsLmJzLXRvb2x0aXAtZW5kIC50b29sdGlwLWFycm93OjpiZWZvcmV7cmlnaHQ6LTFweDtib3JkZXItd2lkdGg6LjRyZW0gLjRyZW0gLjRyZW0gMDtib3JkZXItcmlnaHQtY29sb3I6IzAwMH0uYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXSwuYnMtdG9vbHRpcC1ib3R0b217cGFkZGluZzouNHJlbSAwfS5icy10b29sdGlwLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1ib3R0b21dIC50b29sdGlwLWFycm93LC5icy10b29sdGlwLWJvdHRvbSAudG9vbHRpcC1hcnJvd3t0b3A6MH0uYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXSAudG9vbHRpcC1hcnJvdzo6YmVmb3JlLC5icy10b29sdGlwLWJvdHRvbSAudG9vbHRpcC1hcnJvdzo6YmVmb3Jle2JvdHRvbTotMXB4O2JvcmRlci13aWR0aDowIC40cmVtIC40cmVtO2JvcmRlci1ib3R0b20tY29sb3I6IzAwMH0uYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49bGVmdF0sLmJzLXRvb2x0aXAtc3RhcnR7cGFkZGluZzowIC40cmVtfS5icy10b29sdGlwLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XSAudG9vbHRpcC1hcnJvdywuYnMtdG9vbHRpcC1zdGFydCAudG9vbHRpcC1hcnJvd3tyaWdodDowO3dpZHRoOi40cmVtO2hlaWdodDouOHJlbX0uYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49bGVmdF0gLnRvb2x0aXAtYXJyb3c6OmJlZm9yZSwuYnMtdG9vbHRpcC1zdGFydCAudG9vbHRpcC1hcnJvdzo6YmVmb3Jle2xlZnQ6LTFweDtib3JkZXItd2lkdGg6LjRyZW0gMCAuNHJlbSAuNHJlbTtib3JkZXItbGVmdC1jb2xvcjojMDAwfS50b29sdGlwLWlubmVye21heC13aWR0aDoyMDBweDtwYWRkaW5nOi4yNXJlbSAuNXJlbTtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6IzAwMDtib3JkZXItcmFkaXVzOi4yNXJlbX0ucG9wb3Zlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ei1pbmRleDoxMDcwO2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjI3NnB4O2ZvbnQtZmFtaWx5OnZhcigtLWJzLWZvbnQtc2Fucy1zZXJpZik7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNTt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LXNoYWRvdzpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7d2hpdGUtc3BhY2U6bm9ybWFsO2xpbmUtYnJlYWs6YXV0bztmb250LXNpemU6Ljg3NXJlbTt3b3JkLXdyYXA6YnJlYWstd29yZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMik7Ym9yZGVyLXJhZGl1czouM3JlbX0ucG9wb3ZlciAucG9wb3Zlci1hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3dpZHRoOjFyZW07aGVpZ2h0Oi41cmVtfS5wb3BvdmVyIC5wb3BvdmVyLWFycm93OjphZnRlciwucG9wb3ZlciAucG9wb3Zlci1hcnJvdzo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Y29udGVudDoiIjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkfS5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3BdPi5wb3BvdmVyLWFycm93LC5icy1wb3BvdmVyLXRvcD4ucG9wb3Zlci1hcnJvd3tib3R0b206Y2FsYygtLjVyZW0gLSAxcHgpfS5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3BdPi5wb3BvdmVyLWFycm93OjpiZWZvcmUsLmJzLXBvcG92ZXItdG9wPi5wb3BvdmVyLWFycm93OjpiZWZvcmV7Ym90dG9tOjA7Ym9yZGVyLXdpZHRoOi41cmVtIC41cmVtIDA7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4yNSl9LmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePXRvcF0+LnBvcG92ZXItYXJyb3c6OmFmdGVyLC5icy1wb3BvdmVyLXRvcD4ucG9wb3Zlci1hcnJvdzo6YWZ0ZXJ7Ym90dG9tOjFweDtib3JkZXItd2lkdGg6LjVyZW0gLjVyZW0gMDtib3JkZXItdG9wLWNvbG9yOiNmZmZ9LmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePXJpZ2h0XT4ucG9wb3Zlci1hcnJvdywuYnMtcG9wb3Zlci1lbmQ+LnBvcG92ZXItYXJyb3d7bGVmdDpjYWxjKC0uNXJlbSAtIDFweCk7d2lkdGg6LjVyZW07aGVpZ2h0OjFyZW19LmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePXJpZ2h0XT4ucG9wb3Zlci1hcnJvdzo6YmVmb3JlLC5icy1wb3BvdmVyLWVuZD4ucG9wb3Zlci1hcnJvdzo6YmVmb3Jle2xlZnQ6MDtib3JkZXItd2lkdGg6LjVyZW0gLjVyZW0gLjVyZW0gMDtib3JkZXItcmlnaHQtY29sb3I6cmdiYSgwLDAsMCwuMjUpfS5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1yaWdodF0+LnBvcG92ZXItYXJyb3c6OmFmdGVyLC5icy1wb3BvdmVyLWVuZD4ucG9wb3Zlci1hcnJvdzo6YWZ0ZXJ7bGVmdDoxcHg7Ym9yZGVyLXdpZHRoOi41cmVtIC41cmVtIC41cmVtIDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNmZmZ9LmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePWJvdHRvbV0+LnBvcG92ZXItYXJyb3csLmJzLXBvcG92ZXItYm90dG9tPi5wb3BvdmVyLWFycm93e3RvcDpjYWxjKC0uNXJlbSAtIDFweCl9LmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePWJvdHRvbV0+LnBvcG92ZXItYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci1ib3R0b20+LnBvcG92ZXItYXJyb3c6OmJlZm9yZXt0b3A6MDtib3JkZXItd2lkdGg6MCAuNXJlbSAuNXJlbSAuNXJlbTtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsLjI1KX0uYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXT4ucG9wb3Zlci1hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItYm90dG9tPi5wb3BvdmVyLWFycm93OjphZnRlcnt0b3A6MXB4O2JvcmRlci13aWR0aDowIC41cmVtIC41cmVtIC41cmVtO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn0uYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXSAucG9wb3Zlci1oZWFkZXI6OmJlZm9yZSwuYnMtcG9wb3Zlci1ib3R0b20gLnBvcG92ZXItaGVhZGVyOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDo1MCU7ZGlzcGxheTpibG9jazt3aWR0aDoxcmVtO21hcmdpbi1sZWZ0Oi0uNXJlbTtjb250ZW50OiIiO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmMGYwZjB9LmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePWxlZnRdPi5wb3BvdmVyLWFycm93LC5icy1wb3BvdmVyLXN0YXJ0Pi5wb3BvdmVyLWFycm93e3JpZ2h0OmNhbGMoLS41cmVtIC0gMXB4KTt3aWR0aDouNXJlbTtoZWlnaHQ6MXJlbX0uYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49bGVmdF0+LnBvcG92ZXItYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci1zdGFydD4ucG9wb3Zlci1hcnJvdzo6YmVmb3Jle3JpZ2h0OjA7Ym9yZGVyLXdpZHRoOi41cmVtIDAgLjVyZW0gLjVyZW07Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgwLDAsMCwuMjUpfS5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XT4ucG9wb3Zlci1hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItc3RhcnQ+LnBvcG92ZXItYXJyb3c6OmFmdGVye3JpZ2h0OjFweDtib3JkZXItd2lkdGg6LjVyZW0gMCAuNXJlbSAuNXJlbTtib3JkZXItbGVmdC1jb2xvcjojZmZmfS5wb3BvdmVyLWhlYWRlcntwYWRkaW5nOi41cmVtIDFyZW07bWFyZ2luLWJvdHRvbTowO2ZvbnQtc2l6ZToxcmVtO2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGMoLjNyZW0gLSAxcHgpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGMoLjNyZW0gLSAxcHgpfS5wb3BvdmVyLWhlYWRlcjplbXB0eXtkaXNwbGF5Om5vbmV9LnBvcG92ZXItYm9keXtwYWRkaW5nOjFyZW0gMXJlbTtjb2xvcjojMjEyNTI5fS5jYXJvdXNlbHtwb3NpdGlvbjpyZWxhdGl2ZX0uY2Fyb3VzZWwucG9pbnRlci1ldmVudHt0b3VjaC1hY3Rpb246cGFuLXl9LmNhcm91c2VsLWlubmVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5jYXJvdXNlbC1pbm5lcjo6YWZ0ZXJ7ZGlzcGxheTpibG9jaztjbGVhcjpib3RoO2NvbnRlbnQ6IiJ9LmNhcm91c2VsLWl0ZW17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpub25lO2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTttYXJnaW4tcmlnaHQ6LTEwMCU7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZS1pbi1vdXR9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmNhcm91c2VsLWl0ZW17dHJhbnNpdGlvbjpub25lfX0uY2Fyb3VzZWwtaXRlbS1uZXh0LC5jYXJvdXNlbC1pdGVtLXByZXYsLmNhcm91c2VsLWl0ZW0uYWN0aXZle2Rpc3BsYXk6YmxvY2t9LmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWVuZCwuY2Fyb3VzZWwtaXRlbS1uZXh0Om5vdCguY2Fyb3VzZWwtaXRlbS1zdGFydCl7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9LmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXN0YXJ0LC5jYXJvdXNlbC1pdGVtLXByZXY6bm90KC5jYXJvdXNlbC1pdGVtLWVuZCl7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfS5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVte29wYWNpdHk6MDt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7dHJhbnNmb3JtOm5vbmV9LmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLXN0YXJ0LC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLXByZXYuY2Fyb3VzZWwtaXRlbS1lbmQsLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0uYWN0aXZle3otaW5kZXg6MTtvcGFjaXR5OjF9LmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWVuZCwuY2Fyb3VzZWwtZmFkZSAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tc3RhcnR7ei1pbmRleDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMHMgLjZzfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1lbmQsLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXN0YXJ0e3RyYW5zaXRpb246bm9uZX19LmNhcm91c2VsLWNvbnRyb2wtbmV4dCwuY2Fyb3VzZWwtY29udHJvbC1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3otaW5kZXg6MTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTUlO3BhZGRpbmc6MDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO29wYWNpdHk6LjU7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuY2Fyb3VzZWwtY29udHJvbC1uZXh0LC5jYXJvdXNlbC1jb250cm9sLXByZXZ7dHJhbnNpdGlvbjpub25lfX0uY2Fyb3VzZWwtY29udHJvbC1uZXh0OmZvY3VzLC5jYXJvdXNlbC1jb250cm9sLW5leHQ6aG92ZXIsLmNhcm91c2VsLWNvbnRyb2wtcHJldjpmb2N1cywuY2Fyb3VzZWwtY29udHJvbC1wcmV2OmhvdmVye2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7b3V0bGluZTowO29wYWNpdHk6Ljl9LmNhcm91c2VsLWNvbnRyb2wtcHJldntsZWZ0OjB9LmNhcm91c2VsLWNvbnRyb2wtbmV4dHtyaWdodDowfS5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbiwuY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9JyUyM2ZmZiclM2UlM2NwYXRoIGQ9J00xMS4zNTQgMS42NDZhLjUuNSAwIDAgMSAwIC43MDhMNS43MDcgOGw1LjY0NyA1LjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC02LTZhLjUuNSAwIDAgMSAwLS43MDhsNi02YS41LjUgMCAwIDEgLjcwOCAweicvJTNlJTNjL3N2ZyUzZSIpfS5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nJTIzZmZmJyUzZSUzY3BhdGggZD0nTTQuNjQ2IDEuNjQ2YS41LjUgMCAwIDEgLjcwOCAwbDYgNmEuNS41IDAgMCAxIDAgLjcwOGwtNiA2YS41LjUgMCAwIDEtLjcwOC0uNzA4TDEwLjI5MyA4IDQuNjQ2IDIuMzU0YS41LjUgMCAwIDEgMC0uNzA4eicvJTNlJTNjL3N2ZyUzZSIpfS5jYXJvdXNlbC1pbmRpY2F0b3Jze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3otaW5kZXg6MjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjA7bWFyZ2luLXJpZ2h0OjE1JTttYXJnaW4tYm90dG9tOjFyZW07bWFyZ2luLWxlZnQ6MTUlO2xpc3Qtc3R5bGU6bm9uZX0uY2Fyb3VzZWwtaW5kaWNhdG9ycyBbZGF0YS1icy10YXJnZXRde2JveC1zaXppbmc6Y29udGVudC1ib3g7ZmxleDowIDEgYXV0bzt3aWR0aDozMHB4O2hlaWdodDozcHg7cGFkZGluZzowO21hcmdpbi1yaWdodDozcHg7bWFyZ2luLWxlZnQ6M3B4O3RleHQtaW5kZW50Oi05OTlweDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjowO2JvcmRlci10b3A6MTBweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjEwcHggc29saWQgdHJhbnNwYXJlbnQ7b3BhY2l0eTouNTt0cmFuc2l0aW9uOm9wYWNpdHkgLjZzIGVhc2V9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmNhcm91c2VsLWluZGljYXRvcnMgW2RhdGEtYnMtdGFyZ2V0XXt0cmFuc2l0aW9uOm5vbmV9fS5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmV7b3BhY2l0eToxfS5jYXJvdXNlbC1jYXB0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE1JTtib3R0b206MS4yNXJlbTtsZWZ0OjE1JTtwYWRkaW5nLXRvcDoxLjI1cmVtO3BhZGRpbmctYm90dG9tOjEuMjVyZW07Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcn0uY2Fyb3VzZWwtZGFyayAuY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24sLmNhcm91c2VsLWRhcmsgLmNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29ue2ZpbHRlcjppbnZlcnQoMSkgZ3JheXNjYWxlKDEwMCl9LmNhcm91c2VsLWRhcmsgLmNhcm91c2VsLWluZGljYXRvcnMgW2RhdGEtYnMtdGFyZ2V0XXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9LmNhcm91c2VsLWRhcmsgLmNhcm91c2VsLWNhcHRpb257Y29sb3I6IzAwMH1ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbm5lci1ib3JkZXJ7dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIHNwaW5uZXItYm9yZGVye3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnNwaW5uZXItYm9yZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjJyZW07aGVpZ2h0OjJyZW07dmVydGljYWwtYWxpZ246LS4xMjVlbTtib3JkZXI6LjI1ZW0gc29saWQgY3VycmVudENvbG9yO2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LWFuaW1hdGlvbjouNzVzIGxpbmVhciBpbmZpbml0ZSBzcGlubmVyLWJvcmRlcjthbmltYXRpb246Ljc1cyBsaW5lYXIgaW5maW5pdGUgc3Bpbm5lci1ib3JkZXJ9LnNwaW5uZXItYm9yZGVyLXNte3dpZHRoOjFyZW07aGVpZ2h0OjFyZW07Ym9yZGVyLXdpZHRoOi4yZW19QC13ZWJraXQta2V5ZnJhbWVzIHNwaW5uZXItZ3Jvd3swJXt0cmFuc2Zvcm06c2NhbGUoMCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBzcGlubmVyLWdyb3d7MCV7dHJhbnNmb3JtOnNjYWxlKDApfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9fS5zcGlubmVyLWdyb3d7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbTt2ZXJ0aWNhbC1hbGlnbjotLjEyNWVtO2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6NTAlO29wYWNpdHk6MDstd2Via2l0LWFuaW1hdGlvbjouNzVzIGxpbmVhciBpbmZpbml0ZSBzcGlubmVyLWdyb3c7YW5pbWF0aW9uOi43NXMgbGluZWFyIGluZmluaXRlIHNwaW5uZXItZ3Jvd30uc3Bpbm5lci1ncm93LXNte3dpZHRoOjFyZW07aGVpZ2h0OjFyZW19QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LnNwaW5uZXItYm9yZGVyLC5zcGlubmVyLWdyb3d7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MS41czthbmltYXRpb24tZHVyYXRpb246MS41c319Lm9mZmNhbnZhc3twb3NpdGlvbjpmaXhlZDtib3R0b206MDt6LWluZGV4OjEwNDU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXgtd2lkdGg6MTAwJTt2aXNpYmlsaXR5OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O291dGxpbmU6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXR9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7Lm9mZmNhbnZhc3t0cmFuc2l0aW9uOm5vbmV9fS5vZmZjYW52YXMtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3otaW5kZXg6MTA0MDt3aWR0aDoxMDB2dztoZWlnaHQ6MTAwdmg7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5vZmZjYW52YXMtYmFja2Ryb3AuZmFkZXtvcGFjaXR5OjB9Lm9mZmNhbnZhcy1iYWNrZHJvcC5zaG93e29wYWNpdHk6LjV9Lm9mZmNhbnZhcy1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjFyZW0gMXJlbX0ub2ZmY2FudmFzLWhlYWRlciAuYnRuLWNsb3Nle3BhZGRpbmc6LjVyZW0gLjVyZW07bWFyZ2luLXRvcDotLjVyZW07bWFyZ2luLXJpZ2h0Oi0uNXJlbTttYXJnaW4tYm90dG9tOi0uNXJlbX0ub2ZmY2FudmFzLXRpdGxle21hcmdpbi1ib3R0b206MDtsaW5lLWhlaWdodDoxLjV9Lm9mZmNhbnZhcy1ib2R5e2ZsZXgtZ3JvdzoxO3BhZGRpbmc6MXJlbSAxcmVtO292ZXJmbG93LXk6YXV0b30ub2ZmY2FudmFzLXN0YXJ0e3RvcDowO2xlZnQ6MDt3aWR0aDo0MDBweDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0ub2ZmY2FudmFzLWVuZHt0b3A6MDtyaWdodDowO3dpZHRoOjQwMHB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKX0ub2ZmY2FudmFzLXRvcHt0b3A6MDtyaWdodDowO2xlZnQ6MDtoZWlnaHQ6MzB2aDttYXgtaGVpZ2h0OjEwMCU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMik7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpfS5vZmZjYW52YXMtYm90dG9te3JpZ2h0OjA7bGVmdDowO2hlaWdodDozMHZoO21heC1oZWlnaHQ6MTAwJTtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKX0ub2ZmY2FudmFzLnNob3d7dHJhbnNmb3JtOm5vbmV9LnBsYWNlaG9sZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6MWVtO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtjdXJzb3I6d2FpdDtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtvcGFjaXR5Oi41fS5wbGFjZWhvbGRlci5idG46OmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIifS5wbGFjZWhvbGRlci14c3ttaW4taGVpZ2h0Oi42ZW19LnBsYWNlaG9sZGVyLXNte21pbi1oZWlnaHQ6LjhlbX0ucGxhY2Vob2xkZXItbGd7bWluLWhlaWdodDoxLjJlbX0ucGxhY2Vob2xkZXItZ2xvdyAucGxhY2Vob2xkZXJ7LXdlYmtpdC1hbmltYXRpb246cGxhY2Vob2xkZXItZ2xvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZTthbmltYXRpb246cGxhY2Vob2xkZXItZ2xvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZX1ALXdlYmtpdC1rZXlmcmFtZXMgcGxhY2Vob2xkZXItZ2xvd3s1MCV7b3BhY2l0eTouMn19QGtleWZyYW1lcyBwbGFjZWhvbGRlci1nbG93ezUwJXtvcGFjaXR5Oi4yfX0ucGxhY2Vob2xkZXItd2F2ZXstd2Via2l0LW1hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KDEzMGRlZywjMDAwIDU1JSxyZ2JhKDAsMCwwLDAuOCkgNzUlLCMwMDAgOTUlKTttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCgxMzBkZWcsIzAwMCA1NSUscmdiYSgwLDAsMCwwLjgpIDc1JSwjMDAwIDk1JSk7LXdlYmtpdC1tYXNrLXNpemU6MjAwJSAxMDAlO21hc2stc2l6ZToyMDAlIDEwMCU7LXdlYmtpdC1hbmltYXRpb246cGxhY2Vob2xkZXItd2F2ZSAycyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnBsYWNlaG9sZGVyLXdhdmUgMnMgbGluZWFyIGluZmluaXRlfUAtd2Via2l0LWtleWZyYW1lcyBwbGFjZWhvbGRlci13YXZlezEwMCV7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOi0yMDAlIDAlO21hc2stcG9zaXRpb246LTIwMCUgMCV9fUBrZXlmcmFtZXMgcGxhY2Vob2xkZXItd2F2ZXsxMDAley13ZWJraXQtbWFzay1wb3NpdGlvbjotMjAwJSAwJTttYXNrLXBvc2l0aW9uOi0yMDAlIDAlfX0uY2xlYXJmaXg6OmFmdGVye2Rpc3BsYXk6YmxvY2s7Y2xlYXI6Ym90aDtjb250ZW50OiIifS5saW5rLXByaW1hcnl7Y29sb3I6IzBkNmVmZH0ubGluay1wcmltYXJ5OmZvY3VzLC5saW5rLXByaW1hcnk6aG92ZXJ7Y29sb3I6IzBhNThjYX0ubGluay1zZWNvbmRhcnl7Y29sb3I6IzZjNzU3ZH0ubGluay1zZWNvbmRhcnk6Zm9jdXMsLmxpbmstc2Vjb25kYXJ5OmhvdmVye2NvbG9yOiM1NjVlNjR9Lmxpbmstc3VjY2Vzc3tjb2xvcjojMTk4NzU0fS5saW5rLXN1Y2Nlc3M6Zm9jdXMsLmxpbmstc3VjY2Vzczpob3Zlcntjb2xvcjojMTQ2YzQzfS5saW5rLWluZm97Y29sb3I6IzBkY2FmMH0ubGluay1pbmZvOmZvY3VzLC5saW5rLWluZm86aG92ZXJ7Y29sb3I6IzNkZDVmM30ubGluay13YXJuaW5ne2NvbG9yOiNmZmMxMDd9Lmxpbmstd2FybmluZzpmb2N1cywubGluay13YXJuaW5nOmhvdmVye2NvbG9yOiNmZmNkMzl9LmxpbmstZGFuZ2Vye2NvbG9yOiNkYzM1NDV9LmxpbmstZGFuZ2VyOmZvY3VzLC5saW5rLWRhbmdlcjpob3Zlcntjb2xvcjojYjAyYTM3fS5saW5rLWxpZ2h0e2NvbG9yOiNmOGY5ZmF9LmxpbmstbGlnaHQ6Zm9jdXMsLmxpbmstbGlnaHQ6aG92ZXJ7Y29sb3I6I2Y5ZmFmYn0ubGluay1kYXJre2NvbG9yOiMyMTI1Mjl9LmxpbmstZGFyazpmb2N1cywubGluay1kYXJrOmhvdmVye2NvbG9yOiMxYTFlMjF9LnJhdGlve3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LnJhdGlvOjpiZWZvcmV7ZGlzcGxheTpibG9jaztwYWRkaW5nLXRvcDp2YXIoLS1icy1hc3BlY3QtcmF0aW8pO2NvbnRlbnQ6IiJ9LnJhdGlvPip7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnJhdGlvLTF4MXstLWJzLWFzcGVjdC1yYXRpbzoxMDAlfS5yYXRpby00eDN7LS1icy1hc3BlY3QtcmF0aW86NzUlfS5yYXRpby0xNng5ey0tYnMtYXNwZWN0LXJhdGlvOjU2LjI1JX0ucmF0aW8tMjF4OXstLWJzLWFzcGVjdC1yYXRpbzo0Mi44NTcxNDI4NTcxJX0uZml4ZWQtdG9we3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7bGVmdDowO3otaW5kZXg6MTAzMH0uZml4ZWQtYm90dG9te3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3otaW5kZXg6MTAzMH0uc3RpY2t5LXRvcHtwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxMDIwfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuc3RpY2t5LXNtLXRvcHtwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxMDIwfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LnN0aWNreS1tZC10b3B7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTAyMH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5zdGlja3ktbGctdG9we3Bvc2l0aW9uOi13ZWJraXQtc3RpY2t5O3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjEwMjB9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LnN0aWNreS14bC10b3B7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTAyMH19QG1lZGlhIChtaW4td2lkdGg6MTQwMHB4KXsuc3RpY2t5LXh4bC10b3B7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTAyMH19LmhzdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOnN0cmV0Y2h9LnZzdGFja3tkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bztmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24tc2VsZjpzdHJldGNofS52aXN1YWxseS1oaWRkZW4sLnZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGU6bm90KDpmb2N1cyk6bm90KDpmb2N1cy13aXRoaW4pe3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt3aWR0aDoxcHghaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7bWFyZ2luOi0xcHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7Y2xpcDpyZWN0KDAsMCwwLDApIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O2JvcmRlcjowIWltcG9ydGFudH0uc3RyZXRjaGVkLWxpbms6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3otaW5kZXg6MTtjb250ZW50OiIifS50ZXh0LXRydW5jYXRle292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udnJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7YWxpZ24tc2VsZjpzdHJldGNoO3dpZHRoOjFweDttaW4taGVpZ2h0OjFlbTtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtvcGFjaXR5Oi4yNX0uYWxpZ24tYmFzZWxpbmV7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi10b3B7dmVydGljYWwtYWxpZ246dG9wIWltcG9ydGFudH0uYWxpZ24tbWlkZGxle3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnR9LmFsaWduLWJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b20haW1wb3J0YW50fS5hbGlnbi10ZXh0LWJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LWJvdHRvbSFpbXBvcnRhbnR9LmFsaWduLXRleHQtdG9we3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wIWltcG9ydGFudH0uZmxvYXQtc3RhcnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmZsb2F0LWVuZHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmZsb2F0LW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9Lm9wYWNpdHktMHtvcGFjaXR5OjAhaW1wb3J0YW50fS5vcGFjaXR5LTI1e29wYWNpdHk6LjI1IWltcG9ydGFudH0ub3BhY2l0eS01MHtvcGFjaXR5Oi41IWltcG9ydGFudH0ub3BhY2l0eS03NXtvcGFjaXR5Oi43NSFpbXBvcnRhbnR9Lm9wYWNpdHktMTAwe29wYWNpdHk6MSFpbXBvcnRhbnR9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0byFpbXBvcnRhbnR9Lm92ZXJmbG93LWhpZGRlbntvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5vdmVyZmxvdy12aXNpYmxle292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fS5vdmVyZmxvdy1zY3JvbGx7b3ZlcmZsb3c6c2Nyb2xsIWltcG9ydGFudH0uZC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQtZ3JpZHtkaXNwbGF5OmdyaWQhaW1wb3J0YW50fS5kLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5kLXRhYmxlLXJvd3tkaXNwbGF5OnRhYmxlLXJvdyFpbXBvcnRhbnR9LmQtdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH0uZC1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnNoYWRvd3tib3gtc2hhZG93OjAgLjVyZW0gMXJlbSByZ2JhKDAsMCwwLC4xNSkhaW1wb3J0YW50fS5zaGFkb3ctc217Ym94LXNoYWRvdzowIC4xMjVyZW0gLjI1cmVtIHJnYmEoMCwwLDAsLjA3NSkhaW1wb3J0YW50fS5zaGFkb3ctbGd7Ym94LXNoYWRvdzowIDFyZW0gM3JlbSByZ2JhKDAsMCwwLC4xNzUpIWltcG9ydGFudH0uc2hhZG93LW5vbmV7Ym94LXNoYWRvdzpub25lIWltcG9ydGFudH0ucG9zaXRpb24tc3RhdGlje3Bvc2l0aW9uOnN0YXRpYyFpbXBvcnRhbnR9LnBvc2l0aW9uLXJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0ucG9zaXRpb24tYWJzb2x1dGV7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50fS5wb3NpdGlvbi1maXhlZHtwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnR9LnBvc2l0aW9uLXN0aWNreXtwb3NpdGlvbjotd2Via2l0LXN0aWNreSFpbXBvcnRhbnQ7cG9zaXRpb246c3RpY2t5IWltcG9ydGFudH0udG9wLTB7dG9wOjAhaW1wb3J0YW50fS50b3AtNTB7dG9wOjUwJSFpbXBvcnRhbnR9LnRvcC0xMDB7dG9wOjEwMCUhaW1wb3J0YW50fS5ib3R0b20tMHtib3R0b206MCFpbXBvcnRhbnR9LmJvdHRvbS01MHtib3R0b206NTAlIWltcG9ydGFudH0uYm90dG9tLTEwMHtib3R0b206MTAwJSFpbXBvcnRhbnR9LnN0YXJ0LTB7bGVmdDowIWltcG9ydGFudH0uc3RhcnQtNTB7bGVmdDo1MCUhaW1wb3J0YW50fS5zdGFydC0xMDB7bGVmdDoxMDAlIWltcG9ydGFudH0uZW5kLTB7cmlnaHQ6MCFpbXBvcnRhbnR9LmVuZC01MHtyaWdodDo1MCUhaW1wb3J0YW50fS5lbmQtMTAwe3JpZ2h0OjEwMCUhaW1wb3J0YW50fS50cmFuc2xhdGUtbWlkZGxle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKSFpbXBvcnRhbnR9LnRyYW5zbGF0ZS1taWRkbGUteHt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSFpbXBvcnRhbnR9LnRyYW5zbGF0ZS1taWRkbGUteXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSFpbXBvcnRhbnR9LmJvcmRlcntib3JkZXI6MXB4IHNvbGlkICNkZWUyZTYhaW1wb3J0YW50fS5ib3JkZXItMHtib3JkZXI6MCFpbXBvcnRhbnR9LmJvcmRlci10b3B7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RlZTJlNiFpbXBvcnRhbnR9LmJvcmRlci10b3AtMHtib3JkZXItdG9wOjAhaW1wb3J0YW50fS5ib3JkZXItZW5ke2JvcmRlci1yaWdodDoxcHggc29saWQgI2RlZTJlNiFpbXBvcnRhbnR9LmJvcmRlci1lbmQtMHtib3JkZXItcmlnaHQ6MCFpbXBvcnRhbnR9LmJvcmRlci1ib3R0b217Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RlZTJlNiFpbXBvcnRhbnR9LmJvcmRlci1ib3R0b20tMHtib3JkZXItYm90dG9tOjAhaW1wb3J0YW50fS5ib3JkZXItc3RhcnR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZWUyZTYhaW1wb3J0YW50fS5ib3JkZXItc3RhcnQtMHtib3JkZXItbGVmdDowIWltcG9ydGFudH0uYm9yZGVyLXByaW1hcnl7Ym9yZGVyLWNvbG9yOiMwZDZlZmQhaW1wb3J0YW50fS5ib3JkZXItc2Vjb25kYXJ5e2JvcmRlci1jb2xvcjojNmM3NTdkIWltcG9ydGFudH0uYm9yZGVyLXN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOiMxOTg3NTQhaW1wb3J0YW50fS5ib3JkZXItaW5mb3tib3JkZXItY29sb3I6IzBkY2FmMCFpbXBvcnRhbnR9LmJvcmRlci13YXJuaW5ne2JvcmRlci1jb2xvcjojZmZjMTA3IWltcG9ydGFudH0uYm9yZGVyLWRhbmdlcntib3JkZXItY29sb3I6I2RjMzU0NSFpbXBvcnRhbnR9LmJvcmRlci1saWdodHtib3JkZXItY29sb3I6I2Y4ZjlmYSFpbXBvcnRhbnR9LmJvcmRlci1kYXJre2JvcmRlci1jb2xvcjojMjEyNTI5IWltcG9ydGFudH0uYm9yZGVyLXdoaXRle2JvcmRlci1jb2xvcjojZmZmIWltcG9ydGFudH0uYm9yZGVyLTF7Ym9yZGVyLXdpZHRoOjFweCFpbXBvcnRhbnR9LmJvcmRlci0ye2JvcmRlci13aWR0aDoycHghaW1wb3J0YW50fS5ib3JkZXItM3tib3JkZXItd2lkdGg6M3B4IWltcG9ydGFudH0uYm9yZGVyLTR7Ym9yZGVyLXdpZHRoOjRweCFpbXBvcnRhbnR9LmJvcmRlci01e2JvcmRlci13aWR0aDo1cHghaW1wb3J0YW50fS53LTI1e3dpZHRoOjI1JSFpbXBvcnRhbnR9LnctNTB7d2lkdGg6NTAlIWltcG9ydGFudH0udy03NXt3aWR0aDo3NSUhaW1wb3J0YW50fS53LTEwMHt3aWR0aDoxMDAlIWltcG9ydGFudH0udy1hdXRve3dpZHRoOmF1dG8haW1wb3J0YW50fS5tdy0xMDB7bWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50fS52dy0xMDB7d2lkdGg6MTAwdnchaW1wb3J0YW50fS5taW4tdnctMTAwe21pbi13aWR0aDoxMDB2dyFpbXBvcnRhbnR9LmgtMjV7aGVpZ2h0OjI1JSFpbXBvcnRhbnR9LmgtNTB7aGVpZ2h0OjUwJSFpbXBvcnRhbnR9LmgtNzV7aGVpZ2h0Ojc1JSFpbXBvcnRhbnR9LmgtMTAwe2hlaWdodDoxMDAlIWltcG9ydGFudH0uaC1hdXRve2hlaWdodDphdXRvIWltcG9ydGFudH0ubWgtMTAwe21heC1oZWlnaHQ6MTAwJSFpbXBvcnRhbnR9LnZoLTEwMHtoZWlnaHQ6MTAwdmghaW1wb3J0YW50fS5taW4tdmgtMTAwe21pbi1oZWlnaHQ6MTAwdmghaW1wb3J0YW50fS5mbGV4LWZpbGx7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmZsZXgtcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmZsZXgtY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmZsZXgtcm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5mbGV4LWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5mbGV4LWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmZsZXgtc2hyaW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmZsZXgtc2hyaW5rLTF7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9LmZsZXgtd3JhcHtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmZsZXgtbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5mbGV4LXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uZ2FwLTB7Z2FwOjAhaW1wb3J0YW50fS5nYXAtMXtnYXA6LjI1cmVtIWltcG9ydGFudH0uZ2FwLTJ7Z2FwOi41cmVtIWltcG9ydGFudH0uZ2FwLTN7Z2FwOjFyZW0haW1wb3J0YW50fS5nYXAtNHtnYXA6MS41cmVtIWltcG9ydGFudH0uZ2FwLTV7Z2FwOjNyZW0haW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LWV2ZW5seXtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5IWltcG9ydGFudH0uYWxpZ24taXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24tY29udGVudC1lbmR7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtYXJvdW5ke2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtYXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5hbGlnbi1zZWxmLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLXNlbGYtYmFzZWxpbmV7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLXNlbGYtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fS5vcmRlci1maXJzdHtvcmRlcjotMSFpbXBvcnRhbnR9Lm9yZGVyLTB7b3JkZXI6MCFpbXBvcnRhbnR9Lm9yZGVyLTF7b3JkZXI6MSFpbXBvcnRhbnR9Lm9yZGVyLTJ7b3JkZXI6MiFpbXBvcnRhbnR9Lm9yZGVyLTN7b3JkZXI6MyFpbXBvcnRhbnR9Lm9yZGVyLTR7b3JkZXI6NCFpbXBvcnRhbnR9Lm9yZGVyLTV7b3JkZXI6NSFpbXBvcnRhbnR9Lm9yZGVyLWxhc3R7b3JkZXI6NiFpbXBvcnRhbnR9Lm0tMHttYXJnaW46MCFpbXBvcnRhbnR9Lm0tMXttYXJnaW46LjI1cmVtIWltcG9ydGFudH0ubS0ye21hcmdpbjouNXJlbSFpbXBvcnRhbnR9Lm0tM3ttYXJnaW46MXJlbSFpbXBvcnRhbnR9Lm0tNHttYXJnaW46MS41cmVtIWltcG9ydGFudH0ubS01e21hcmdpbjozcmVtIWltcG9ydGFudH0ubS1hdXRve21hcmdpbjphdXRvIWltcG9ydGFudH0ubXgtMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm14LTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubXgtMnttYXJnaW4tcmlnaHQ6LjVyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0Oi41cmVtIWltcG9ydGFudH0ubXgtM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6MXJlbSFpbXBvcnRhbnR9Lm14LTR7bWFyZ2luLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubXgtNXttYXJnaW4tcmlnaHQ6M3JlbSFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6M3JlbSFpbXBvcnRhbnR9Lm14LWF1dG97bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50O21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fS5teS0we21hcmdpbi10b3A6MCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubXktMXttYXJnaW4tdG9wOi4yNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5teS0ye21hcmdpbi10b3A6LjVyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206LjVyZW0haW1wb3J0YW50fS5teS0ze21hcmdpbi10b3A6MXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubXktNHttYXJnaW4tdG9wOjEuNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5teS01e21hcmdpbi10b3A6M3JlbSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTozcmVtIWltcG9ydGFudH0ubXktYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50O21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9Lm10LTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXQtMXttYXJnaW4tdG9wOi4yNXJlbSFpbXBvcnRhbnR9Lm10LTJ7bWFyZ2luLXRvcDouNXJlbSFpbXBvcnRhbnR9Lm10LTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudH0ubXQtNHttYXJnaW4tdG9wOjEuNXJlbSFpbXBvcnRhbnR9Lm10LTV7bWFyZ2luLXRvcDozcmVtIWltcG9ydGFudH0ubXQtYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fS5tZS0we21hcmdpbi1yaWdodDowIWltcG9ydGFudH0ubWUtMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ubWUtMnttYXJnaW4tcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5tZS0ze21hcmdpbi1yaWdodDoxcmVtIWltcG9ydGFudH0ubWUtNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ubWUtNXttYXJnaW4tcmlnaHQ6M3JlbSFpbXBvcnRhbnR9Lm1lLWF1dG97bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fS5tYi0we21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9Lm1iLTF7bWFyZ2luLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5tYi0ye21hcmdpbi1ib3R0b206LjVyZW0haW1wb3J0YW50fS5tYi0ze21hcmdpbi1ib3R0b206MXJlbSFpbXBvcnRhbnR9Lm1iLTR7bWFyZ2luLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5tYi01e21hcmdpbi1ib3R0b206M3JlbSFpbXBvcnRhbnR9Lm1iLWF1dG97bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH0ubXMtMHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubXMtMXttYXJnaW4tbGVmdDouMjVyZW0haW1wb3J0YW50fS5tcy0ye21hcmdpbi1sZWZ0Oi41cmVtIWltcG9ydGFudH0ubXMtM3ttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubXMtNHttYXJnaW4tbGVmdDoxLjVyZW0haW1wb3J0YW50fS5tcy01e21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5tcy1hdXRve21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fS5wLTB7cGFkZGluZzowIWltcG9ydGFudH0ucC0xe3BhZGRpbmc6LjI1cmVtIWltcG9ydGFudH0ucC0ye3BhZGRpbmc6LjVyZW0haW1wb3J0YW50fS5wLTN7cGFkZGluZzoxcmVtIWltcG9ydGFudH0ucC00e3BhZGRpbmc6MS41cmVtIWltcG9ydGFudH0ucC01e3BhZGRpbmc6M3JlbSFpbXBvcnRhbnR9LnB4LTB7cGFkZGluZy1yaWdodDowIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnR9LnB4LTF7cGFkZGluZy1yaWdodDouMjVyZW0haW1wb3J0YW50O3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5weC0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50O3BhZGRpbmctbGVmdDouNXJlbSFpbXBvcnRhbnR9LnB4LTN7cGFkZGluZy1yaWdodDoxcmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MXJlbSFpbXBvcnRhbnR9LnB4LTR7cGFkZGluZy1yaWdodDoxLjVyZW0haW1wb3J0YW50O3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5weC01e3BhZGRpbmctcmlnaHQ6M3JlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjNyZW0haW1wb3J0YW50fS5weS0we3BhZGRpbmctdG9wOjAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5weS0xe3BhZGRpbmctdG9wOi4yNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ucHktMntwYWRkaW5nLXRvcDouNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206LjVyZW0haW1wb3J0YW50fS5weS0ze3BhZGRpbmctdG9wOjFyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5weS00e3BhZGRpbmctdG9wOjEuNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MS41cmVtIWltcG9ydGFudH0ucHktNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTozcmVtIWltcG9ydGFudH0ucHQtMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudH0ucHQtMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50fS5wdC0ye3BhZGRpbmctdG9wOi41cmVtIWltcG9ydGFudH0ucHQtM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudH0ucHQtNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50fS5wdC01e3BhZGRpbmctdG9wOjNyZW0haW1wb3J0YW50fS5wZS0we3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnR9LnBlLTF7cGFkZGluZy1yaWdodDouMjVyZW0haW1wb3J0YW50fS5wZS0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5wZS0ze3BhZGRpbmctcmlnaHQ6MXJlbSFpbXBvcnRhbnR9LnBlLTR7cGFkZGluZy1yaWdodDoxLjVyZW0haW1wb3J0YW50fS5wZS01e3BhZGRpbmctcmlnaHQ6M3JlbSFpbXBvcnRhbnR9LnBiLTB7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnR9LnBiLTF7cGFkZGluZy1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ucGItMntwYWRkaW5nLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9LnBiLTN7cGFkZGluZy1ib3R0b206MXJlbSFpbXBvcnRhbnR9LnBiLTR7cGFkZGluZy1ib3R0b206MS41cmVtIWltcG9ydGFudH0ucGItNXtwYWRkaW5nLWJvdHRvbTozcmVtIWltcG9ydGFudH0ucHMtMHtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnR9LnBzLTF7cGFkZGluZy1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9LnBzLTJ7cGFkZGluZy1sZWZ0Oi41cmVtIWltcG9ydGFudH0ucHMtM3twYWRkaW5nLWxlZnQ6MXJlbSFpbXBvcnRhbnR9LnBzLTR7cGFkZGluZy1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9LnBzLTV7cGFkZGluZy1sZWZ0OjNyZW0haW1wb3J0YW50fS5mb250LW1vbm9zcGFjZXtmb250LWZhbWlseTp2YXIoLS1icy1mb250LW1vbm9zcGFjZSkhaW1wb3J0YW50fS5mcy0xe2ZvbnQtc2l6ZTpjYWxjKDEuMzc1cmVtICsgMS41dncpIWltcG9ydGFudH0uZnMtMntmb250LXNpemU6Y2FsYygxLjMyNXJlbSArIC45dncpIWltcG9ydGFudH0uZnMtM3tmb250LXNpemU6Y2FsYygxLjNyZW0gKyAuNnZ3KSFpbXBvcnRhbnR9LmZzLTR7Zm9udC1zaXplOmNhbGMoMS4yNzVyZW0gKyAuM3Z3KSFpbXBvcnRhbnR9LmZzLTV7Zm9udC1zaXplOjEuMjVyZW0haW1wb3J0YW50fS5mcy02e2ZvbnQtc2l6ZToxcmVtIWltcG9ydGFudH0uZnN0LWl0YWxpY3tmb250LXN0eWxlOml0YWxpYyFpbXBvcnRhbnR9LmZzdC1ub3JtYWx7Zm9udC1zdHlsZTpub3JtYWwhaW1wb3J0YW50fS5mdy1saWdodHtmb250LXdlaWdodDozMDAhaW1wb3J0YW50fS5mdy1saWdodGVye2ZvbnQtd2VpZ2h0OmxpZ2h0ZXIhaW1wb3J0YW50fS5mdy1ub3JtYWx7Zm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudH0uZnctYm9sZHtmb250LXdlaWdodDo3MDAhaW1wb3J0YW50fS5mdy1ib2xkZXJ7Zm9udC13ZWlnaHQ6Ym9sZGVyIWltcG9ydGFudH0ubGgtMXtsaW5lLWhlaWdodDoxIWltcG9ydGFudH0ubGgtc217bGluZS1oZWlnaHQ6MS4yNSFpbXBvcnRhbnR9LmxoLWJhc2V7bGluZS1oZWlnaHQ6MS41IWltcG9ydGFudH0ubGgtbGd7bGluZS1oZWlnaHQ6MiFpbXBvcnRhbnR9LnRleHQtc3RhcnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0udGV4dC1lbmR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9LnRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH0udGV4dC1kZWNvcmF0aW9uLW5vbmV7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50fS50ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5le3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50fS50ZXh0LWRlY29yYXRpb24tbGluZS10aHJvdWdoe3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2ghaW1wb3J0YW50fS50ZXh0LWxvd2VyY2FzZXt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2UhaW1wb3J0YW50fS50ZXh0LXVwcGVyY2FzZXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UhaW1wb3J0YW50fS50ZXh0LWNhcGl0YWxpemV7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZSFpbXBvcnRhbnR9LnRleHQtd3JhcHt3aGl0ZS1zcGFjZTpub3JtYWwhaW1wb3J0YW50fS50ZXh0LW5vd3JhcHt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50fS50ZXh0LWJyZWFre3dvcmQtd3JhcDpicmVhay13b3JkIWltcG9ydGFudDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQhaW1wb3J0YW50fS50ZXh0LXByaW1hcnl7LS1icy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKHZhcigtLWJzLXByaW1hcnktcmdiKSx2YXIoLS1icy10ZXh0LW9wYWNpdHkpKSFpbXBvcnRhbnR9LnRleHQtc2Vjb25kYXJ5ey0tYnMtdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSh2YXIoLS1icy1zZWNvbmRhcnktcmdiKSx2YXIoLS1icy10ZXh0LW9wYWNpdHkpKSFpbXBvcnRhbnR9LnRleHQtc3VjY2Vzc3stLWJzLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYmEodmFyKC0tYnMtc3VjY2Vzcy1yZ2IpLHZhcigtLWJzLXRleHQtb3BhY2l0eSkpIWltcG9ydGFudH0udGV4dC1pbmZvey0tYnMtdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSh2YXIoLS1icy1pbmZvLXJnYiksdmFyKC0tYnMtdGV4dC1vcGFjaXR5KSkhaW1wb3J0YW50fS50ZXh0LXdhcm5pbmd7LS1icy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKHZhcigtLWJzLXdhcm5pbmctcmdiKSx2YXIoLS1icy10ZXh0LW9wYWNpdHkpKSFpbXBvcnRhbnR9LnRleHQtZGFuZ2Vyey0tYnMtdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSh2YXIoLS1icy1kYW5nZXItcmdiKSx2YXIoLS1icy10ZXh0LW9wYWNpdHkpKSFpbXBvcnRhbnR9LnRleHQtbGlnaHR7LS1icy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKHZhcigtLWJzLWxpZ2h0LXJnYiksdmFyKC0tYnMtdGV4dC1vcGFjaXR5KSkhaW1wb3J0YW50fS50ZXh0LWRhcmt7LS1icy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKHZhcigtLWJzLWRhcmstcmdiKSx2YXIoLS1icy10ZXh0LW9wYWNpdHkpKSFpbXBvcnRhbnR9LnRleHQtYmxhY2t7LS1icy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKHZhcigtLWJzLWJsYWNrLXJnYiksdmFyKC0tYnMtdGV4dC1vcGFjaXR5KSkhaW1wb3J0YW50fS50ZXh0LXdoaXRley0tYnMtdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSh2YXIoLS1icy13aGl0ZS1yZ2IpLHZhcigtLWJzLXRleHQtb3BhY2l0eSkpIWltcG9ydGFudH0udGV4dC1ib2R5ey0tYnMtdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSh2YXIoLS1icy1ib2R5LWNvbG9yLXJnYiksdmFyKC0tYnMtdGV4dC1vcGFjaXR5KSkhaW1wb3J0YW50fS50ZXh0LW11dGVkey0tYnMtdGV4dC1vcGFjaXR5OjE7Y29sb3I6IzZjNzU3ZCFpbXBvcnRhbnR9LnRleHQtYmxhY2stNTB7LS1icy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKDAsMCwwLC41KSFpbXBvcnRhbnR9LnRleHQtd2hpdGUtNTB7LS1icy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KSFpbXBvcnRhbnR9LnRleHQtcmVzZXR7LS1icy10ZXh0LW9wYWNpdHk6MTtjb2xvcjppbmhlcml0IWltcG9ydGFudH0udGV4dC1vcGFjaXR5LTI1ey0tYnMtdGV4dC1vcGFjaXR5OjAuMjV9LnRleHQtb3BhY2l0eS01MHstLWJzLXRleHQtb3BhY2l0eTowLjV9LnRleHQtb3BhY2l0eS03NXstLWJzLXRleHQtb3BhY2l0eTowLjc1fS50ZXh0LW9wYWNpdHktMTAwey0tYnMtdGV4dC1vcGFjaXR5OjF9LmJnLXByaW1hcnl7LS1icy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKHZhcigtLWJzLXByaW1hcnktcmdiKSx2YXIoLS1icy1iZy1vcGFjaXR5KSkhaW1wb3J0YW50fS5iZy1zZWNvbmRhcnl7LS1icy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKHZhcigtLWJzLXNlY29uZGFyeS1yZ2IpLHZhcigtLWJzLWJnLW9wYWNpdHkpKSFpbXBvcnRhbnR9LmJnLXN1Y2Nlc3N7LS1icy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKHZhcigtLWJzLXN1Y2Nlc3MtcmdiKSx2YXIoLS1icy1iZy1vcGFjaXR5KSkhaW1wb3J0YW50fS5iZy1pbmZvey0tYnMtYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSh2YXIoLS1icy1pbmZvLXJnYiksdmFyKC0tYnMtYmctb3BhY2l0eSkpIWltcG9ydGFudH0uYmctd2FybmluZ3stLWJzLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEodmFyKC0tYnMtd2FybmluZy1yZ2IpLHZhcigtLWJzLWJnLW9wYWNpdHkpKSFpbXBvcnRhbnR9LmJnLWRhbmdlcnstLWJzLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEodmFyKC0tYnMtZGFuZ2VyLXJnYiksdmFyKC0tYnMtYmctb3BhY2l0eSkpIWltcG9ydGFudH0uYmctbGlnaHR7LS1icy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKHZhcigtLWJzLWxpZ2h0LXJnYiksdmFyKC0tYnMtYmctb3BhY2l0eSkpIWltcG9ydGFudH0uYmctZGFya3stLWJzLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEodmFyKC0tYnMtZGFyay1yZ2IpLHZhcigtLWJzLWJnLW9wYWNpdHkpKSFpbXBvcnRhbnR9LmJnLWJsYWNrey0tYnMtYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSh2YXIoLS1icy1ibGFjay1yZ2IpLHZhcigtLWJzLWJnLW9wYWNpdHkpKSFpbXBvcnRhbnR9LmJnLXdoaXRley0tYnMtYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSh2YXIoLS1icy13aGl0ZS1yZ2IpLHZhcigtLWJzLWJnLW9wYWNpdHkpKSFpbXBvcnRhbnR9LmJnLWJvZHl7LS1icy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKHZhcigtLWJzLWJvZHktYmctcmdiKSx2YXIoLS1icy1iZy1vcGFjaXR5KSkhaW1wb3J0YW50fS5iZy10cmFuc3BhcmVudHstLWJzLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50IWltcG9ydGFudH0uYmctb3BhY2l0eS0xMHstLWJzLWJnLW9wYWNpdHk6MC4xfS5iZy1vcGFjaXR5LTI1ey0tYnMtYmctb3BhY2l0eTowLjI1fS5iZy1vcGFjaXR5LTUwey0tYnMtYmctb3BhY2l0eTowLjV9LmJnLW9wYWNpdHktNzV7LS1icy1iZy1vcGFjaXR5OjAuNzV9LmJnLW9wYWNpdHktMTAwey0tYnMtYmctb3BhY2l0eToxfS5iZy1ncmFkaWVudHtiYWNrZ3JvdW5kLWltYWdlOnZhcigtLWJzLWdyYWRpZW50KSFpbXBvcnRhbnR9LnVzZXItc2VsZWN0LWFsbHstd2Via2l0LXVzZXItc2VsZWN0OmFsbCFpbXBvcnRhbnQ7LW1vei11c2VyLXNlbGVjdDphbGwhaW1wb3J0YW50O3VzZXItc2VsZWN0OmFsbCFpbXBvcnRhbnR9LnVzZXItc2VsZWN0LWF1dG97LXdlYmtpdC11c2VyLXNlbGVjdDphdXRvIWltcG9ydGFudDstbW96LXVzZXItc2VsZWN0OmF1dG8haW1wb3J0YW50O3VzZXItc2VsZWN0OmF1dG8haW1wb3J0YW50fS51c2VyLXNlbGVjdC1ub25ley13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZSFpbXBvcnRhbnQ7LW1vei11c2VyLXNlbGVjdDpub25lIWltcG9ydGFudDt1c2VyLXNlbGVjdDpub25lIWltcG9ydGFudH0ucGUtbm9uZXtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudH0ucGUtYXV0b3twb2ludGVyLWV2ZW50czphdXRvIWltcG9ydGFudH0ucm91bmRlZHtib3JkZXItcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtMHtib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50fS5yb3VuZGVkLTF7Ym9yZGVyLXJhZGl1czouMnJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtMntib3JkZXItcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtM3tib3JkZXItcmFkaXVzOi4zcmVtIWltcG9ydGFudH0ucm91bmRlZC1jaXJjbGV7Ym9yZGVyLXJhZGl1czo1MCUhaW1wb3J0YW50fS5yb3VuZGVkLXBpbGx7Ym9yZGVyLXJhZGl1czo1MHJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtdG9we2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjI1cmVtIWltcG9ydGFudDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW0haW1wb3J0YW50fS5yb3VuZGVkLWVuZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW0haW1wb3J0YW50O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtYm90dG9te2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW0haW1wb3J0YW50fS5yb3VuZGVkLXN0YXJ0e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtIWltcG9ydGFudDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnR9LnZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH0uaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmZsb2F0LXNtLXN0YXJ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5mbG9hdC1zbS1lbmR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5mbG9hdC1zbS1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fS5kLXNtLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtc20taW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1zbS1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1zbS1ncmlke2Rpc3BsYXk6Z3JpZCFpbXBvcnRhbnR9LmQtc20tdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtc20tdGFibGUtcm93e2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH0uZC1zbS10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQtc20tZmxleHtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLXNtLWlubGluZS1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS5kLXNtLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZmxleC1zbS1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5mbGV4LXNtLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5mbGV4LXNtLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5mbGV4LXNtLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1zbS1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtc20tZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uZmxleC1zbS1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5mbGV4LXNtLXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5mbGV4LXNtLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5mbGV4LXNtLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5mbGV4LXNtLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uZmxleC1zbS13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmdhcC1zbS0we2dhcDowIWltcG9ydGFudH0uZ2FwLXNtLTF7Z2FwOi4yNXJlbSFpbXBvcnRhbnR9LmdhcC1zbS0ye2dhcDouNXJlbSFpbXBvcnRhbnR9LmdhcC1zbS0ze2dhcDoxcmVtIWltcG9ydGFudH0uZ2FwLXNtLTR7Z2FwOjEuNXJlbSFpbXBvcnRhbnR9LmdhcC1zbS01e2dhcDozcmVtIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXNtLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXNtLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc20tY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc20tYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1zbS1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1zbS1ldmVubHl7anVzdGlmeS1jb250ZW50OnNwYWNlLWV2ZW5seSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXNtLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24taXRlbXMtc20tYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc20tZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc20tYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc20tc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uYWxpZ24tc2VsZi1zbS1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tc2VsZi1zbS1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH0ub3JkZXItc20tZmlyc3R7b3JkZXI6LTEhaW1wb3J0YW50fS5vcmRlci1zbS0we29yZGVyOjAhaW1wb3J0YW50fS5vcmRlci1zbS0xe29yZGVyOjEhaW1wb3J0YW50fS5vcmRlci1zbS0ye29yZGVyOjIhaW1wb3J0YW50fS5vcmRlci1zbS0ze29yZGVyOjMhaW1wb3J0YW50fS5vcmRlci1zbS00e29yZGVyOjQhaW1wb3J0YW50fS5vcmRlci1zbS01e29yZGVyOjUhaW1wb3J0YW50fS5vcmRlci1zbS1sYXN0e29yZGVyOjYhaW1wb3J0YW50fS5tLXNtLTB7bWFyZ2luOjAhaW1wb3J0YW50fS5tLXNtLTF7bWFyZ2luOi4yNXJlbSFpbXBvcnRhbnR9Lm0tc20tMnttYXJnaW46LjVyZW0haW1wb3J0YW50fS5tLXNtLTN7bWFyZ2luOjFyZW0haW1wb3J0YW50fS5tLXNtLTR7bWFyZ2luOjEuNXJlbSFpbXBvcnRhbnR9Lm0tc20tNXttYXJnaW46M3JlbSFpbXBvcnRhbnR9Lm0tc20tYXV0b3ttYXJnaW46YXV0byFpbXBvcnRhbnR9Lm14LXNtLTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50O21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50fS5teC1zbS0xe21hcmdpbi1yaWdodDouMjVyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9Lm14LXNtLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm14LXNtLTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjFyZW0haW1wb3J0YW50fS5teC1zbS00e21hcmdpbi1yaWdodDoxLjVyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9Lm14LXNtLTV7bWFyZ2luLXJpZ2h0OjNyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5teC1zbS1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH0ubXktc20tMHttYXJnaW4tdG9wOjAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9Lm15LXNtLTF7bWFyZ2luLXRvcDouMjVyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ubXktc20tMnttYXJnaW4tdG9wOi41cmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubXktc20tM3ttYXJnaW4tdG9wOjFyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206MXJlbSFpbXBvcnRhbnR9Lm15LXNtLTR7bWFyZ2luLXRvcDoxLjVyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206MS41cmVtIWltcG9ydGFudH0ubXktc20tNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206M3JlbSFpbXBvcnRhbnR9Lm15LXNtLWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudDttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tdC1zbS0we21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm10LXNtLTF7bWFyZ2luLXRvcDouMjVyZW0haW1wb3J0YW50fS5tdC1zbS0ye21hcmdpbi10b3A6LjVyZW0haW1wb3J0YW50fS5tdC1zbS0ze21hcmdpbi10b3A6MXJlbSFpbXBvcnRhbnR9Lm10LXNtLTR7bWFyZ2luLXRvcDoxLjVyZW0haW1wb3J0YW50fS5tdC1zbS01e21hcmdpbi10b3A6M3JlbSFpbXBvcnRhbnR9Lm10LXNtLWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH0ubWUtc20tMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1lLXNtLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9Lm1lLXNtLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWUtc20tM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1lLXNtLTR7bWFyZ2luLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9Lm1lLXNtLTV7bWFyZ2luLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5tZS1zbS1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItc20tMHttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fS5tYi1zbS0xe21hcmdpbi1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ubWItc20tMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWItc20tM3ttYXJnaW4tYm90dG9tOjFyZW0haW1wb3J0YW50fS5tYi1zbS00e21hcmdpbi1ib3R0b206MS41cmVtIWltcG9ydGFudH0ubWItc20tNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tYi1zbS1hdXRve21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9Lm1zLXNtLTB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm1zLXNtLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubXMtc20tMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm1zLXNtLTN7bWFyZ2luLWxlZnQ6MXJlbSFpbXBvcnRhbnR9Lm1zLXNtLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubXMtc20tNXttYXJnaW4tbGVmdDozcmVtIWltcG9ydGFudH0ubXMtc20tYXV0b3ttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH0ucC1zbS0we3BhZGRpbmc6MCFpbXBvcnRhbnR9LnAtc20tMXtwYWRkaW5nOi4yNXJlbSFpbXBvcnRhbnR9LnAtc20tMntwYWRkaW5nOi41cmVtIWltcG9ydGFudH0ucC1zbS0ze3BhZGRpbmc6MXJlbSFpbXBvcnRhbnR9LnAtc20tNHtwYWRkaW5nOjEuNXJlbSFpbXBvcnRhbnR9LnAtc20tNXtwYWRkaW5nOjNyZW0haW1wb3J0YW50fS5weC1zbS0we3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fS5weC1zbS0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucHgtc20tMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5weC1zbS0ze3BhZGRpbmctcmlnaHQ6MXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjFyZW0haW1wb3J0YW50fS5weC1zbS00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucHgtc20tNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50O3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ucHktc20tMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucHktc20tMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9LnB5LXNtLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucHktc20tM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucHktc20tNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9LnB5LXNtLTV7cGFkZGluZy10b3A6M3JlbSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206M3JlbSFpbXBvcnRhbnR9LnB0LXNtLTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9LnB0LXNtLTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudH0ucHQtc20tMntwYWRkaW5nLXRvcDouNXJlbSFpbXBvcnRhbnR9LnB0LXNtLTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnR9LnB0LXNtLTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudH0ucHQtc20tNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucGUtc20tMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wZS1zbS0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGUtc20tMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ucGUtc20tM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wZS1zbS00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGUtc20tNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1zbS0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wYi1zbS0xe3BhZGRpbmctYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9LnBiLXNtLTJ7cGFkZGluZy1ib3R0b206LjVyZW0haW1wb3J0YW50fS5wYi1zbS0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wYi1zbS00e3BhZGRpbmctYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9LnBiLXNtLTV7cGFkZGluZy1ib3R0b206M3JlbSFpbXBvcnRhbnR9LnBzLXNtLTB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fS5wcy1zbS0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wcy1zbS0ye3BhZGRpbmctbGVmdDouNXJlbSFpbXBvcnRhbnR9LnBzLXNtLTN7cGFkZGluZy1sZWZ0OjFyZW0haW1wb3J0YW50fS5wcy1zbS00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wcy1zbS01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0udGV4dC1zbS1zdGFydHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LXNtLWVuZHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC1zbS1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZsb2F0LW1kLXN0YXJ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5mbG9hdC1tZC1lbmR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5mbG9hdC1tZC1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fS5kLW1kLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtbWQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1tZC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1tZC1ncmlke2Rpc3BsYXk6Z3JpZCFpbXBvcnRhbnR9LmQtbWQtdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtbWQtdGFibGUtcm93e2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH0uZC1tZC10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQtbWQtZmxleHtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLW1kLWlubGluZS1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS5kLW1kLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZmxleC1tZC1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5mbGV4LW1kLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5mbGV4LW1kLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5mbGV4LW1kLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1tZC1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtbWQtZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uZmxleC1tZC1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5mbGV4LW1kLXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5mbGV4LW1kLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5mbGV4LW1kLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5mbGV4LW1kLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uZmxleC1tZC13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmdhcC1tZC0we2dhcDowIWltcG9ydGFudH0uZ2FwLW1kLTF7Z2FwOi4yNXJlbSFpbXBvcnRhbnR9LmdhcC1tZC0ye2dhcDouNXJlbSFpbXBvcnRhbnR9LmdhcC1tZC0ze2dhcDoxcmVtIWltcG9ydGFudH0uZ2FwLW1kLTR7Z2FwOjEuNXJlbSFpbXBvcnRhbnR9LmdhcC1tZC01e2dhcDozcmVtIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LW1kLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LW1kLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbWQtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1tZC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1tZC1ldmVubHl7anVzdGlmeS1jb250ZW50OnNwYWNlLWV2ZW5seSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLW1kLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1tZC1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1tZC1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbWQtYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1tZC1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LW1kLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LW1kLWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5hbGlnbi1jb250ZW50LW1kLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1zZWxmLW1kLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uYWxpZ24tc2VsZi1tZC1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLW1kLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tc2VsZi1tZC1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1zZWxmLW1kLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1zZWxmLW1kLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH0ub3JkZXItbWQtZmlyc3R7b3JkZXI6LTEhaW1wb3J0YW50fS5vcmRlci1tZC0we29yZGVyOjAhaW1wb3J0YW50fS5vcmRlci1tZC0xe29yZGVyOjEhaW1wb3J0YW50fS5vcmRlci1tZC0ye29yZGVyOjIhaW1wb3J0YW50fS5vcmRlci1tZC0ze29yZGVyOjMhaW1wb3J0YW50fS5vcmRlci1tZC00e29yZGVyOjQhaW1wb3J0YW50fS5vcmRlci1tZC01e29yZGVyOjUhaW1wb3J0YW50fS5vcmRlci1tZC1sYXN0e29yZGVyOjYhaW1wb3J0YW50fS5tLW1kLTB7bWFyZ2luOjAhaW1wb3J0YW50fS5tLW1kLTF7bWFyZ2luOi4yNXJlbSFpbXBvcnRhbnR9Lm0tbWQtMnttYXJnaW46LjVyZW0haW1wb3J0YW50fS5tLW1kLTN7bWFyZ2luOjFyZW0haW1wb3J0YW50fS5tLW1kLTR7bWFyZ2luOjEuNXJlbSFpbXBvcnRhbnR9Lm0tbWQtNXttYXJnaW46M3JlbSFpbXBvcnRhbnR9Lm0tbWQtYXV0b3ttYXJnaW46YXV0byFpbXBvcnRhbnR9Lm14LW1kLTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50O21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50fS5teC1tZC0xe21hcmdpbi1yaWdodDouMjVyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9Lm14LW1kLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm14LW1kLTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjFyZW0haW1wb3J0YW50fS5teC1tZC00e21hcmdpbi1yaWdodDoxLjVyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9Lm14LW1kLTV7bWFyZ2luLXJpZ2h0OjNyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5teC1tZC1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH0ubXktbWQtMHttYXJnaW4tdG9wOjAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9Lm15LW1kLTF7bWFyZ2luLXRvcDouMjVyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ubXktbWQtMnttYXJnaW4tdG9wOi41cmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubXktbWQtM3ttYXJnaW4tdG9wOjFyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206MXJlbSFpbXBvcnRhbnR9Lm15LW1kLTR7bWFyZ2luLXRvcDoxLjVyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206MS41cmVtIWltcG9ydGFudH0ubXktbWQtNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206M3JlbSFpbXBvcnRhbnR9Lm15LW1kLWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudDttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tdC1tZC0we21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm10LW1kLTF7bWFyZ2luLXRvcDouMjVyZW0haW1wb3J0YW50fS5tdC1tZC0ye21hcmdpbi10b3A6LjVyZW0haW1wb3J0YW50fS5tdC1tZC0ze21hcmdpbi10b3A6MXJlbSFpbXBvcnRhbnR9Lm10LW1kLTR7bWFyZ2luLXRvcDoxLjVyZW0haW1wb3J0YW50fS5tdC1tZC01e21hcmdpbi10b3A6M3JlbSFpbXBvcnRhbnR9Lm10LW1kLWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH0ubWUtbWQtMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1lLW1kLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9Lm1lLW1kLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWUtbWQtM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1lLW1kLTR7bWFyZ2luLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9Lm1lLW1kLTV7bWFyZ2luLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5tZS1tZC1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItbWQtMHttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fS5tYi1tZC0xe21hcmdpbi1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ubWItbWQtMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWItbWQtM3ttYXJnaW4tYm90dG9tOjFyZW0haW1wb3J0YW50fS5tYi1tZC00e21hcmdpbi1ib3R0b206MS41cmVtIWltcG9ydGFudH0ubWItbWQtNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tYi1tZC1hdXRve21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9Lm1zLW1kLTB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm1zLW1kLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubXMtbWQtMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm1zLW1kLTN7bWFyZ2luLWxlZnQ6MXJlbSFpbXBvcnRhbnR9Lm1zLW1kLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubXMtbWQtNXttYXJnaW4tbGVmdDozcmVtIWltcG9ydGFudH0ubXMtbWQtYXV0b3ttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH0ucC1tZC0we3BhZGRpbmc6MCFpbXBvcnRhbnR9LnAtbWQtMXtwYWRkaW5nOi4yNXJlbSFpbXBvcnRhbnR9LnAtbWQtMntwYWRkaW5nOi41cmVtIWltcG9ydGFudH0ucC1tZC0ze3BhZGRpbmc6MXJlbSFpbXBvcnRhbnR9LnAtbWQtNHtwYWRkaW5nOjEuNXJlbSFpbXBvcnRhbnR9LnAtbWQtNXtwYWRkaW5nOjNyZW0haW1wb3J0YW50fS5weC1tZC0we3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fS5weC1tZC0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucHgtbWQtMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5weC1tZC0ze3BhZGRpbmctcmlnaHQ6MXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjFyZW0haW1wb3J0YW50fS5weC1tZC00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucHgtbWQtNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50O3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ucHktbWQtMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucHktbWQtMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9LnB5LW1kLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucHktbWQtM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucHktbWQtNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9LnB5LW1kLTV7cGFkZGluZy10b3A6M3JlbSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206M3JlbSFpbXBvcnRhbnR9LnB0LW1kLTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9LnB0LW1kLTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudH0ucHQtbWQtMntwYWRkaW5nLXRvcDouNXJlbSFpbXBvcnRhbnR9LnB0LW1kLTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnR9LnB0LW1kLTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudH0ucHQtbWQtNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucGUtbWQtMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wZS1tZC0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGUtbWQtMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ucGUtbWQtM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wZS1tZC00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGUtbWQtNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1tZC0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wYi1tZC0xe3BhZGRpbmctYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9LnBiLW1kLTJ7cGFkZGluZy1ib3R0b206LjVyZW0haW1wb3J0YW50fS5wYi1tZC0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wYi1tZC00e3BhZGRpbmctYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9LnBiLW1kLTV7cGFkZGluZy1ib3R0b206M3JlbSFpbXBvcnRhbnR9LnBzLW1kLTB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fS5wcy1tZC0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wcy1tZC0ye3BhZGRpbmctbGVmdDouNXJlbSFpbXBvcnRhbnR9LnBzLW1kLTN7cGFkZGluZy1sZWZ0OjFyZW0haW1wb3J0YW50fS5wcy1tZC00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wcy1tZC01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0udGV4dC1tZC1zdGFydHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LW1kLWVuZHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC1tZC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmZsb2F0LWxnLXN0YXJ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5mbG9hdC1sZy1lbmR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5mbG9hdC1sZy1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fS5kLWxnLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtbGctaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1sZy1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1sZy1ncmlke2Rpc3BsYXk6Z3JpZCFpbXBvcnRhbnR9LmQtbGctdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtbGctdGFibGUtcm93e2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH0uZC1sZy10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQtbGctZmxleHtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLWxnLWlubGluZS1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS5kLWxnLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZmxleC1sZy1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5mbGV4LWxnLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5mbGV4LWxnLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5mbGV4LWxnLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1sZy1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtbGctZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uZmxleC1sZy1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5mbGV4LWxnLXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5mbGV4LWxnLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5mbGV4LWxnLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5mbGV4LWxnLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uZmxleC1sZy13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmdhcC1sZy0we2dhcDowIWltcG9ydGFudH0uZ2FwLWxnLTF7Z2FwOi4yNXJlbSFpbXBvcnRhbnR9LmdhcC1sZy0ye2dhcDouNXJlbSFpbXBvcnRhbnR9LmdhcC1sZy0ze2dhcDoxcmVtIWltcG9ydGFudH0uZ2FwLWxnLTR7Z2FwOjEuNXJlbSFpbXBvcnRhbnR9LmdhcC1sZy01e2dhcDozcmVtIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LWxnLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LWxnLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbGctY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbGctYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1sZy1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1sZy1ldmVubHl7anVzdGlmeS1jb250ZW50OnNwYWNlLWV2ZW5seSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWxnLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1sZy1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1sZy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbGctYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1sZy1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWxnLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbGctZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWxnLWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbGctYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWxnLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbGctc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1zZWxmLWxnLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uYWxpZ24tc2VsZi1sZy1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLWxnLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tc2VsZi1sZy1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1zZWxmLWxnLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1zZWxmLWxnLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH0ub3JkZXItbGctZmlyc3R7b3JkZXI6LTEhaW1wb3J0YW50fS5vcmRlci1sZy0we29yZGVyOjAhaW1wb3J0YW50fS5vcmRlci1sZy0xe29yZGVyOjEhaW1wb3J0YW50fS5vcmRlci1sZy0ye29yZGVyOjIhaW1wb3J0YW50fS5vcmRlci1sZy0ze29yZGVyOjMhaW1wb3J0YW50fS5vcmRlci1sZy00e29yZGVyOjQhaW1wb3J0YW50fS5vcmRlci1sZy01e29yZGVyOjUhaW1wb3J0YW50fS5vcmRlci1sZy1sYXN0e29yZGVyOjYhaW1wb3J0YW50fS5tLWxnLTB7bWFyZ2luOjAhaW1wb3J0YW50fS5tLWxnLTF7bWFyZ2luOi4yNXJlbSFpbXBvcnRhbnR9Lm0tbGctMnttYXJnaW46LjVyZW0haW1wb3J0YW50fS5tLWxnLTN7bWFyZ2luOjFyZW0haW1wb3J0YW50fS5tLWxnLTR7bWFyZ2luOjEuNXJlbSFpbXBvcnRhbnR9Lm0tbGctNXttYXJnaW46M3JlbSFpbXBvcnRhbnR9Lm0tbGctYXV0b3ttYXJnaW46YXV0byFpbXBvcnRhbnR9Lm14LWxnLTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50O21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50fS5teC1sZy0xe21hcmdpbi1yaWdodDouMjVyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9Lm14LWxnLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm14LWxnLTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjFyZW0haW1wb3J0YW50fS5teC1sZy00e21hcmdpbi1yaWdodDoxLjVyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9Lm14LWxnLTV7bWFyZ2luLXJpZ2h0OjNyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5teC1sZy1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH0ubXktbGctMHttYXJnaW4tdG9wOjAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9Lm15LWxnLTF7bWFyZ2luLXRvcDouMjVyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ubXktbGctMnttYXJnaW4tdG9wOi41cmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubXktbGctM3ttYXJnaW4tdG9wOjFyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206MXJlbSFpbXBvcnRhbnR9Lm15LWxnLTR7bWFyZ2luLXRvcDoxLjVyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206MS41cmVtIWltcG9ydGFudH0ubXktbGctNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206M3JlbSFpbXBvcnRhbnR9Lm15LWxnLWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudDttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tdC1sZy0we21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm10LWxnLTF7bWFyZ2luLXRvcDouMjVyZW0haW1wb3J0YW50fS5tdC1sZy0ye21hcmdpbi10b3A6LjVyZW0haW1wb3J0YW50fS5tdC1sZy0ze21hcmdpbi10b3A6MXJlbSFpbXBvcnRhbnR9Lm10LWxnLTR7bWFyZ2luLXRvcDoxLjVyZW0haW1wb3J0YW50fS5tdC1sZy01e21hcmdpbi10b3A6M3JlbSFpbXBvcnRhbnR9Lm10LWxnLWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH0ubWUtbGctMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1lLWxnLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9Lm1lLWxnLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWUtbGctM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1lLWxnLTR7bWFyZ2luLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9Lm1lLWxnLTV7bWFyZ2luLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5tZS1sZy1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItbGctMHttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fS5tYi1sZy0xe21hcmdpbi1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ubWItbGctMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWItbGctM3ttYXJnaW4tYm90dG9tOjFyZW0haW1wb3J0YW50fS5tYi1sZy00e21hcmdpbi1ib3R0b206MS41cmVtIWltcG9ydGFudH0ubWItbGctNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tYi1sZy1hdXRve21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9Lm1zLWxnLTB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm1zLWxnLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubXMtbGctMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm1zLWxnLTN7bWFyZ2luLWxlZnQ6MXJlbSFpbXBvcnRhbnR9Lm1zLWxnLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubXMtbGctNXttYXJnaW4tbGVmdDozcmVtIWltcG9ydGFudH0ubXMtbGctYXV0b3ttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH0ucC1sZy0we3BhZGRpbmc6MCFpbXBvcnRhbnR9LnAtbGctMXtwYWRkaW5nOi4yNXJlbSFpbXBvcnRhbnR9LnAtbGctMntwYWRkaW5nOi41cmVtIWltcG9ydGFudH0ucC1sZy0ze3BhZGRpbmc6MXJlbSFpbXBvcnRhbnR9LnAtbGctNHtwYWRkaW5nOjEuNXJlbSFpbXBvcnRhbnR9LnAtbGctNXtwYWRkaW5nOjNyZW0haW1wb3J0YW50fS5weC1sZy0we3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fS5weC1sZy0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucHgtbGctMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5weC1sZy0ze3BhZGRpbmctcmlnaHQ6MXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjFyZW0haW1wb3J0YW50fS5weC1sZy00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucHgtbGctNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50O3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ucHktbGctMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucHktbGctMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9LnB5LWxnLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucHktbGctM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucHktbGctNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9LnB5LWxnLTV7cGFkZGluZy10b3A6M3JlbSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206M3JlbSFpbXBvcnRhbnR9LnB0LWxnLTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9LnB0LWxnLTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudH0ucHQtbGctMntwYWRkaW5nLXRvcDouNXJlbSFpbXBvcnRhbnR9LnB0LWxnLTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnR9LnB0LWxnLTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudH0ucHQtbGctNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucGUtbGctMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wZS1sZy0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGUtbGctMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ucGUtbGctM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wZS1sZy00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGUtbGctNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1sZy0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wYi1sZy0xe3BhZGRpbmctYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9LnBiLWxnLTJ7cGFkZGluZy1ib3R0b206LjVyZW0haW1wb3J0YW50fS5wYi1sZy0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wYi1sZy00e3BhZGRpbmctYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9LnBiLWxnLTV7cGFkZGluZy1ib3R0b206M3JlbSFpbXBvcnRhbnR9LnBzLWxnLTB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fS5wcy1sZy0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wcy1sZy0ye3BhZGRpbmctbGVmdDouNXJlbSFpbXBvcnRhbnR9LnBzLWxnLTN7cGFkZGluZy1sZWZ0OjFyZW0haW1wb3J0YW50fS5wcy1sZy00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wcy1sZy01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0udGV4dC1sZy1zdGFydHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LWxnLWVuZHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC1sZy1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5mbG9hdC14bC1zdGFydHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uZmxvYXQteGwtZW5ke2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uZmxvYXQteGwtbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH0uZC14bC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLXhsLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQteGwtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQteGwtZ3JpZHtkaXNwbGF5OmdyaWQhaW1wb3J0YW50fS5kLXhsLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5kLXhsLXRhYmxlLXJvd3tkaXNwbGF5OnRhYmxlLXJvdyFpbXBvcnRhbnR9LmQteGwtdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLXhsLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC14bC1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH0uZC14bC1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmZsZXgteGwtZmlsbHtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uZmxleC14bC1yb3d7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uZmxleC14bC1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uZmxleC14bC1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgteGwtY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50fS5mbGV4LXhsLWdyb3ctMHtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmZsZXgteGwtZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uZmxleC14bC1zaHJpbmstMHtmbGV4LXNocmluazowIWltcG9ydGFudH0uZmxleC14bC1zaHJpbmstMXtmbGV4LXNocmluazoxIWltcG9ydGFudH0uZmxleC14bC13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uZmxleC14bC1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmZsZXgteGwtd3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5nYXAteGwtMHtnYXA6MCFpbXBvcnRhbnR9LmdhcC14bC0xe2dhcDouMjVyZW0haW1wb3J0YW50fS5nYXAteGwtMntnYXA6LjVyZW0haW1wb3J0YW50fS5nYXAteGwtM3tnYXA6MXJlbSFpbXBvcnRhbnR9LmdhcC14bC00e2dhcDoxLjVyZW0haW1wb3J0YW50fS5nYXAteGwtNXtnYXA6M3JlbSFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14bC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14bC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXhsLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXhsLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQteGwtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQteGwtZXZlbmx5e2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHkhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy14bC1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXhsLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXhsLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXhsLWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXhsLXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1hdXRve2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmFsaWduLXNlbGYteGwtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLXNlbGYteGwtY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9Lm9yZGVyLXhsLWZpcnN0e29yZGVyOi0xIWltcG9ydGFudH0ub3JkZXIteGwtMHtvcmRlcjowIWltcG9ydGFudH0ub3JkZXIteGwtMXtvcmRlcjoxIWltcG9ydGFudH0ub3JkZXIteGwtMntvcmRlcjoyIWltcG9ydGFudH0ub3JkZXIteGwtM3tvcmRlcjozIWltcG9ydGFudH0ub3JkZXIteGwtNHtvcmRlcjo0IWltcG9ydGFudH0ub3JkZXIteGwtNXtvcmRlcjo1IWltcG9ydGFudH0ub3JkZXIteGwtbGFzdHtvcmRlcjo2IWltcG9ydGFudH0ubS14bC0we21hcmdpbjowIWltcG9ydGFudH0ubS14bC0xe21hcmdpbjouMjVyZW0haW1wb3J0YW50fS5tLXhsLTJ7bWFyZ2luOi41cmVtIWltcG9ydGFudH0ubS14bC0ze21hcmdpbjoxcmVtIWltcG9ydGFudH0ubS14bC00e21hcmdpbjoxLjVyZW0haW1wb3J0YW50fS5tLXhsLTV7bWFyZ2luOjNyZW0haW1wb3J0YW50fS5tLXhsLWF1dG97bWFyZ2luOmF1dG8haW1wb3J0YW50fS5teC14bC0we21hcmdpbi1yaWdodDowIWltcG9ydGFudDttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubXgteGwtMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDouMjVyZW0haW1wb3J0YW50fS5teC14bC0ye21hcmdpbi1yaWdodDouNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5teC14bC0ze21hcmdpbi1yaWdodDoxcmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubXgteGwtNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDoxLjVyZW0haW1wb3J0YW50fS5teC14bC01e21hcmdpbi1yaWdodDozcmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDozcmVtIWltcG9ydGFudH0ubXgteGwtYXV0b3ttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9Lm15LXhsLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fS5teS14bC0xe21hcmdpbi10b3A6LjI1cmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9Lm15LXhsLTJ7bWFyZ2luLXRvcDouNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9Lm15LXhsLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjFyZW0haW1wb3J0YW50fS5teS14bC00e21hcmdpbi10b3A6MS41cmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9Lm15LXhsLTV7bWFyZ2luLXRvcDozcmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5teS14bC1hdXRve21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH0ubXQteGwtMHttYXJnaW4tdG9wOjAhaW1wb3J0YW50fS5tdC14bC0xe21hcmdpbi10b3A6LjI1cmVtIWltcG9ydGFudH0ubXQteGwtMnttYXJnaW4tdG9wOi41cmVtIWltcG9ydGFudH0ubXQteGwtM3ttYXJnaW4tdG9wOjFyZW0haW1wb3J0YW50fS5tdC14bC00e21hcmdpbi10b3A6MS41cmVtIWltcG9ydGFudH0ubXQteGwtNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50fS5tdC14bC1hdXRve21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9Lm1lLXhsLTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fS5tZS14bC0xe21hcmdpbi1yaWdodDouMjVyZW0haW1wb3J0YW50fS5tZS14bC0ye21hcmdpbi1yaWdodDouNXJlbSFpbXBvcnRhbnR9Lm1lLXhsLTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5tZS14bC00e21hcmdpbi1yaWdodDoxLjVyZW0haW1wb3J0YW50fS5tZS14bC01e21hcmdpbi1yaWdodDozcmVtIWltcG9ydGFudH0ubWUteGwtYXV0b3ttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9Lm1iLXhsLTB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubWIteGwtMXttYXJnaW4tYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTJ7bWFyZ2luLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTN7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubWIteGwtNHttYXJnaW4tYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTV7bWFyZ2luLWJvdHRvbTozcmVtIWltcG9ydGFudH0ubWIteGwtYXV0b3ttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tcy14bC0we21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50fS5tcy14bC0xe21hcmdpbi1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9Lm1zLXhsLTJ7bWFyZ2luLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5tcy14bC0ze21hcmdpbi1sZWZ0OjFyZW0haW1wb3J0YW50fS5tcy14bC00e21hcmdpbi1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9Lm1zLXhsLTV7bWFyZ2luLWxlZnQ6M3JlbSFpbXBvcnRhbnR9Lm1zLXhsLWF1dG97bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9LnAteGwtMHtwYWRkaW5nOjAhaW1wb3J0YW50fS5wLXhsLTF7cGFkZGluZzouMjVyZW0haW1wb3J0YW50fS5wLXhsLTJ7cGFkZGluZzouNXJlbSFpbXBvcnRhbnR9LnAteGwtM3twYWRkaW5nOjFyZW0haW1wb3J0YW50fS5wLXhsLTR7cGFkZGluZzoxLjVyZW0haW1wb3J0YW50fS5wLXhsLTV7cGFkZGluZzozcmVtIWltcG9ydGFudH0ucHgteGwtMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50O3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ucHgteGwtMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9LnB4LXhsLTJ7cGFkZGluZy1yaWdodDouNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0Oi41cmVtIWltcG9ydGFudH0ucHgteGwtM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50O3BhZGRpbmctbGVmdDoxcmVtIWltcG9ydGFudH0ucHgteGwtNHtwYWRkaW5nLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9LnB4LXhsLTV7cGFkZGluZy1yaWdodDozcmVtIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6M3JlbSFpbXBvcnRhbnR9LnB5LXhsLTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnR9LnB5LXhsLTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5weS14bC0ye3BhZGRpbmctdG9wOi41cmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9LnB5LXhsLTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MXJlbSFpbXBvcnRhbnR9LnB5LXhsLTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5weS14bC01e3BhZGRpbmctdG9wOjNyZW0haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjNyZW0haW1wb3J0YW50fS5wdC14bC0we3BhZGRpbmctdG9wOjAhaW1wb3J0YW50fS5wdC14bC0xe3BhZGRpbmctdG9wOi4yNXJlbSFpbXBvcnRhbnR9LnB0LXhsLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50fS5wdC14bC0ze3BhZGRpbmctdG9wOjFyZW0haW1wb3J0YW50fS5wdC14bC00e3BhZGRpbmctdG9wOjEuNXJlbSFpbXBvcnRhbnR9LnB0LXhsLTV7cGFkZGluZy10b3A6M3JlbSFpbXBvcnRhbnR9LnBlLXhsLTB7cGFkZGluZy1yaWdodDowIWltcG9ydGFudH0ucGUteGwtMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9LnBlLXhsLTJ7cGFkZGluZy1yaWdodDouNXJlbSFpbXBvcnRhbnR9LnBlLXhsLTN7cGFkZGluZy1yaWdodDoxcmVtIWltcG9ydGFudH0ucGUteGwtNHtwYWRkaW5nLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9LnBlLXhsLTV7cGFkZGluZy1yaWdodDozcmVtIWltcG9ydGFudH0ucGIteGwtMHtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucGIteGwtMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wYi14bC0ye3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucGIteGwtM3twYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucGIteGwtNHtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5wYi14bC01e3BhZGRpbmctYm90dG9tOjNyZW0haW1wb3J0YW50fS5wcy14bC0we3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ucHMteGwtMXtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucHMteGwtMntwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5wcy14bC0ze3BhZGRpbmctbGVmdDoxcmVtIWltcG9ydGFudH0ucHMteGwtNHtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucHMteGwtNXtwYWRkaW5nLWxlZnQ6M3JlbSFpbXBvcnRhbnR9LnRleHQteGwtc3RhcnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0udGV4dC14bC1lbmR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9LnRleHQteGwtY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTQwMHB4KXsuZmxvYXQteHhsLXN0YXJ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5mbG9hdC14eGwtZW5ke2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uZmxvYXQteHhsLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9LmQteHhsLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQteHhsLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQteHhsLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5kLXh4bC1ncmlke2Rpc3BsYXk6Z3JpZCFpbXBvcnRhbnR9LmQteHhsLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5kLXh4bC10YWJsZS1yb3d7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fS5kLXh4bC10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQteHhsLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC14eGwtaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleCFpbXBvcnRhbnR9LmQteHhsLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZmxleC14eGwtZmlsbHtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uZmxleC14eGwtcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmZsZXgteHhsLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5mbGV4LXh4bC1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgteHhsLWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uZmxleC14eGwtZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uZmxleC14eGwtZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uZmxleC14eGwtc2hyaW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmZsZXgteHhsLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5mbGV4LXh4bC13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uZmxleC14eGwtbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5mbGV4LXh4bC13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmdhcC14eGwtMHtnYXA6MCFpbXBvcnRhbnR9LmdhcC14eGwtMXtnYXA6LjI1cmVtIWltcG9ydGFudH0uZ2FwLXh4bC0ye2dhcDouNXJlbSFpbXBvcnRhbnR9LmdhcC14eGwtM3tnYXA6MXJlbSFpbXBvcnRhbnR9LmdhcC14eGwtNHtnYXA6MS41cmVtIWltcG9ydGFudH0uZ2FwLXh4bC01e2dhcDozcmVtIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXh4bC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14eGwtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14eGwtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQteHhsLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQteHhsLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXh4bC1ldmVubHl7anVzdGlmeS1jb250ZW50OnNwYWNlLWV2ZW5seSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXh4bC1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24taXRlbXMteHhsLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXh4bC1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24taXRlbXMteHhsLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24taXRlbXMteHhsLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQteHhsLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQteHhsLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14eGwtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14eGwtYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXh4bC1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXh4bC1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLXNlbGYteHhsLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uYWxpZ24tc2VsZi14eGwtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24tc2VsZi14eGwtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXh4bC1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXh4bC1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24tc2VsZi14eGwtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fS5vcmRlci14eGwtZmlyc3R7b3JkZXI6LTEhaW1wb3J0YW50fS5vcmRlci14eGwtMHtvcmRlcjowIWltcG9ydGFudH0ub3JkZXIteHhsLTF7b3JkZXI6MSFpbXBvcnRhbnR9Lm9yZGVyLXh4bC0ye29yZGVyOjIhaW1wb3J0YW50fS5vcmRlci14eGwtM3tvcmRlcjozIWltcG9ydGFudH0ub3JkZXIteHhsLTR7b3JkZXI6NCFpbXBvcnRhbnR9Lm9yZGVyLXh4bC01e29yZGVyOjUhaW1wb3J0YW50fS5vcmRlci14eGwtbGFzdHtvcmRlcjo2IWltcG9ydGFudH0ubS14eGwtMHttYXJnaW46MCFpbXBvcnRhbnR9Lm0teHhsLTF7bWFyZ2luOi4yNXJlbSFpbXBvcnRhbnR9Lm0teHhsLTJ7bWFyZ2luOi41cmVtIWltcG9ydGFudH0ubS14eGwtM3ttYXJnaW46MXJlbSFpbXBvcnRhbnR9Lm0teHhsLTR7bWFyZ2luOjEuNXJlbSFpbXBvcnRhbnR9Lm0teHhsLTV7bWFyZ2luOjNyZW0haW1wb3J0YW50fS5tLXh4bC1hdXRve21hcmdpbjphdXRvIWltcG9ydGFudH0ubXgteHhsLTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50O21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50fS5teC14eGwtMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDouMjVyZW0haW1wb3J0YW50fS5teC14eGwtMnttYXJnaW4tcmlnaHQ6LjVyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0Oi41cmVtIWltcG9ydGFudH0ubXgteHhsLTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50O21hcmdpbi1sZWZ0OjFyZW0haW1wb3J0YW50fS5teC14eGwtNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudDttYXJnaW4tbGVmdDoxLjVyZW0haW1wb3J0YW50fS5teC14eGwtNXttYXJnaW4tcmlnaHQ6M3JlbSFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6M3JlbSFpbXBvcnRhbnR9Lm14LXh4bC1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH0ubXkteHhsLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fS5teS14eGwtMXttYXJnaW4tdG9wOi4yNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5teS14eGwtMnttYXJnaW4tdG9wOi41cmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubXkteHhsLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjFyZW0haW1wb3J0YW50fS5teS14eGwtNHttYXJnaW4tdG9wOjEuNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5teS14eGwtNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50O21hcmdpbi1ib3R0b206M3JlbSFpbXBvcnRhbnR9Lm15LXh4bC1hdXRve21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH0ubXQteHhsLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXQteHhsLTF7bWFyZ2luLXRvcDouMjVyZW0haW1wb3J0YW50fS5tdC14eGwtMnttYXJnaW4tdG9wOi41cmVtIWltcG9ydGFudH0ubXQteHhsLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudH0ubXQteHhsLTR7bWFyZ2luLXRvcDoxLjVyZW0haW1wb3J0YW50fS5tdC14eGwtNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50fS5tdC14eGwtYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fS5tZS14eGwtMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1lLXh4bC0xe21hcmdpbi1yaWdodDouMjVyZW0haW1wb3J0YW50fS5tZS14eGwtMnttYXJnaW4tcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5tZS14eGwtM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1lLXh4bC00e21hcmdpbi1yaWdodDoxLjVyZW0haW1wb3J0YW50fS5tZS14eGwtNXttYXJnaW4tcmlnaHQ6M3JlbSFpbXBvcnRhbnR9Lm1lLXh4bC1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWIteHhsLTB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubWIteHhsLTF7bWFyZ2luLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5tYi14eGwtMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWIteHhsLTN7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubWIteHhsLTR7bWFyZ2luLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5tYi14eGwtNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tYi14eGwtYXV0b3ttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tcy14eGwtMHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubXMteHhsLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubXMteHhsLTJ7bWFyZ2luLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5tcy14eGwtM3ttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubXMteHhsLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubXMteHhsLTV7bWFyZ2luLWxlZnQ6M3JlbSFpbXBvcnRhbnR9Lm1zLXh4bC1hdXRve21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fS5wLXh4bC0we3BhZGRpbmc6MCFpbXBvcnRhbnR9LnAteHhsLTF7cGFkZGluZzouMjVyZW0haW1wb3J0YW50fS5wLXh4bC0ye3BhZGRpbmc6LjVyZW0haW1wb3J0YW50fS5wLXh4bC0ze3BhZGRpbmc6MXJlbSFpbXBvcnRhbnR9LnAteHhsLTR7cGFkZGluZzoxLjVyZW0haW1wb3J0YW50fS5wLXh4bC01e3BhZGRpbmc6M3JlbSFpbXBvcnRhbnR9LnB4LXh4bC0we3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fS5weC14eGwtMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9LnB4LXh4bC0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50O3BhZGRpbmctbGVmdDouNXJlbSFpbXBvcnRhbnR9LnB4LXh4bC0ze3BhZGRpbmctcmlnaHQ6MXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjFyZW0haW1wb3J0YW50fS5weC14eGwtNHtwYWRkaW5nLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9LnB4LXh4bC01e3BhZGRpbmctcmlnaHQ6M3JlbSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjNyZW0haW1wb3J0YW50fS5weS14eGwtMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucHkteHhsLTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5weS14eGwtMntwYWRkaW5nLXRvcDouNXJlbSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206LjVyZW0haW1wb3J0YW50fS5weS14eGwtM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucHkteHhsLTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5weS14eGwtNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTozcmVtIWltcG9ydGFudH0ucHQteHhsLTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9LnB0LXh4bC0xe3BhZGRpbmctdG9wOi4yNXJlbSFpbXBvcnRhbnR9LnB0LXh4bC0ye3BhZGRpbmctdG9wOi41cmVtIWltcG9ydGFudH0ucHQteHhsLTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnR9LnB0LXh4bC00e3BhZGRpbmctdG9wOjEuNXJlbSFpbXBvcnRhbnR9LnB0LXh4bC01e3BhZGRpbmctdG9wOjNyZW0haW1wb3J0YW50fS5wZS14eGwtMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wZS14eGwtMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9LnBlLXh4bC0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5wZS14eGwtM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wZS14eGwtNHtwYWRkaW5nLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9LnBlLXh4bC01e3BhZGRpbmctcmlnaHQ6M3JlbSFpbXBvcnRhbnR9LnBiLXh4bC0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wYi14eGwtMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wYi14eGwtMntwYWRkaW5nLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9LnBiLXh4bC0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wYi14eGwtNHtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5wYi14eGwtNXtwYWRkaW5nLWJvdHRvbTozcmVtIWltcG9ydGFudH0ucHMteHhsLTB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fS5wcy14eGwtMXtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucHMteHhsLTJ7cGFkZGluZy1sZWZ0Oi41cmVtIWltcG9ydGFudH0ucHMteHhsLTN7cGFkZGluZy1sZWZ0OjFyZW0haW1wb3J0YW50fS5wcy14eGwtNHtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucHMteHhsLTV7cGFkZGluZy1sZWZ0OjNyZW0haW1wb3J0YW50fS50ZXh0LXh4bC1zdGFydHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LXh4bC1lbmR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9LnRleHQteHhsLWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmZzLTF7Zm9udC1zaXplOjIuNXJlbSFpbXBvcnRhbnR9LmZzLTJ7Zm9udC1zaXplOjJyZW0haW1wb3J0YW50fS5mcy0ze2ZvbnQtc2l6ZToxLjc1cmVtIWltcG9ydGFudH0uZnMtNHtmb250LXNpemU6MS41cmVtIWltcG9ydGFudH19QG1lZGlhIHByaW50ey5kLXByaW50LWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtcHJpbnQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1wcmludC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1wcmludC1ncmlke2Rpc3BsYXk6Z3JpZCFpbXBvcnRhbnR9LmQtcHJpbnQtdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtcHJpbnQtdGFibGUtcm93e2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH0uZC1wcmludC10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQtcHJpbnQtZmxleHtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLXByaW50LWlubGluZS1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS5kLXByaW50LW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH19Ci8qIyBzb3VyY2VNYXBwaW5nVVJMPWJvb3RzdHJhcC5taW4uY3NzLm1hcCAqLw=="}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/meetings-bg.jpg","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.595Z","timestamp":1785132838595,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/meetings-bg.jpg HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/templatemo-edu-meeting.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Mon, 03 Jan 2022 23:40:36 GMT\r\naccept-ranges: bytes\r\ncontent-length: 97682\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":97682,"size_decoded":97949,"mime_type":"image/jpeg","magic":"JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 1600x1177, components 3","md5":"7d39d6e74a1e90a372e29d4be17268df","sha1":"4f398984b37090c140a948c03dcb89816b6a5d0d","sha256":"f16c25f297138ca664648ada027bac546579f12b6f0a39b671c61f1c17b3ea64","sha512":"0037ed5b24af9b792727283cea05b064aada26e6e80406b037aee7facb0bb38d9e274b24117e4457f52dc8adaccb4fe63ea88a6149e20fe5c5e6faf2c6dbf0e9","ssdeep":"1536:C2HdD/5UDnY6dhQ5/0xMNWSUF1WJKw4b5EFu7Dj9edBr+pqg9v7F/gz+7dhZ/6:l0Xw6CNWfWr4VEFu3j9eBCpB9x4I6","tlshash":"f6a3d0e76b422dc7c3dc76b6a2bba91e6f5641b4cf96f90744c6ea313496300be0d049","first_seen":"2023-11-23T11:29:52Z","last_seen":"2026-07-27T06:14:42.676746Z","times_seen":32,"resource_available":false,"data":"/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABGAAD/4QMsaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0OCA3OS4xNjQwMzYsIDIwMTkvMDgvMTMtMDE6MDY6NTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2OTRBRUM4MzIwMzkxMUVCQkFFMEMzREEyQ0U3ODJGQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2OTRBRUM4NDIwMzkxMUVCQkFFMEMzREEyQ0U3ODJGQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY5NEFFQzgxMjAzOTExRUJCQUUwQzNEQTJDRTc4MkZCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY5NEFFQzgyMjAzOTExRUJCQUUwQzNEQTJDRTc4MkZCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUE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"}},"time_used":35,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":13,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/apply-bg.jpg","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.596Z","timestamp":1785132838596,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/apply-bg.jpg HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/templatemo-edu-meeting.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Mon, 03 Jan 2022 23:40:28 GMT\r\naccept-ranges: bytes\r\ncontent-length: 188058\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":188058,"size_decoded":188326,"mime_type":"image/jpeg","magic":"JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 1600x906, components 3","md5":"bd8a8a1da5bc85fec8c79c3886509373","sha1":"d7a54188a7a082e68acf21219c5b018b768718db","sha256":"508e2bd7afef75622682579416ed83434683cad874eb752c1d73f607138150f0","sha512":"47f493c2d5e2abd2dda085e7ecbe512d28d110a89e6e070cffc0fd205960dc91d328f25b5663c4700c611842937f41f6094d1e341777b70fe94da1f2725fd261","ssdeep":"3072:6Ta9hLRkWWtt/G/wpfErwM1p1w47vrnZtxFFPplCJeJ5DK9JioRpMsgf0jYvSN7:6W9hFkWWtRGodEEM1VrLZrFFPKw5DuJf","tlshash":"9b04134e1bf2a2debd1014e2e659051ac1fc42a8a6b9d10bf70d4c1cf9dd7f79b042a5","first_seen":"2025-08-12T04:19:47.947707Z","last_seen":"2026-07-27T06:14:42.677734Z","times_seen":20,"resource_available":false,"data":"/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABGAAD/4QMsaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0OCA3OS4xNjQwMzYsIDIwMTkvMDgvMTMtMDE6MDY6NTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3RkNDODMyQzIwM0UxMUVCOTFGMEYxQzg3MzU5REJCNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3RkNDODMyRDIwM0UxMUVCOTFGMEYxQzg3MzU5REJCNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdGQ0M4MzJBMjAzRTExRUI5MUYwRjFDODczNTlEQkI0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdGQ0M4MzJCMjAzRTExRUI5MUYwRjFDODczNTlEQkI0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUE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"}},"time_used":40,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":16,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/loading.gif","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.925Z","timestamp":1785132838925,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/loading.gif HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/lightbox.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/gif\r\nlast-modified: Mon, 03 Jan 2022 23:40:34 GMT\r\naccept-ranges: bytes\r\ncontent-length: 8476\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":8476,"size_decoded":8741,"mime_type":"image/gif","magic":"GIF image data, version 89a, 32 x 32","md5":"2299ad0b3f63413f026dfec20c205b8f","sha1":"cf720b50cf8dde0e1a84ce1c6a77788bfc5882d5","sha256":"225aa88b6ab02c06222ec9468d62e15fa188e39cdb9431d1f55401ad380753ed","sha512":"dc299ee8de6d5bb9d3a95a0fc200ea380c6dbaeb72fbff74e1e8bb260ee3deec6c981d9cfc05bf2409b8760613ef1c02bd7396456bec618f287ca56a7a93957d","ssdeep":"192:e8mZU0o1P1rUssaXA6RJiqlrcDUpTQ+ZSIWl7QBhr5z:iZc1PvA6RJiqYUq/l7Md5z","tlshash":"52028fece9242716ec37e7fa4248970edcc81de4067653096239360f3927139796a99d","first_seen":"2023-04-07T04:16:20Z","last_seen":"2026-07-27T09:34:41.892935Z","times_seen":26600,"resource_available":false,"data":"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"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/translate_static/img/loading.gif","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.548Z","timestamp":1785132839548,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /translate_static/img/loading.gif HTTP/1.1\r\nHost: translate.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 702\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 21:36:56 GMT\r\nexpires: Sat, 24 Jul 2027 21:36:56 GMT\r\ncache-control: public, max-age=31536000\r\nage: 203823\r\nlast-modified: Thu, 03 Oct 2019 10:15:00 GMT\r\ncontent-type: image/gif\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":702,"size_decoded":1361,"mime_type":"image/gif","magic":"GIF image data, version 89a, 16 x 16","md5":"eefaa072b284a305c12c06608333abc2","sha1":"58272721ccc1efda26eaa22354022c7c793edbb6","sha256":"fb6b7bcc1ab09f27db17bcbdf5239ce1d52af34f1fc5125b3fc8528a07848d21","sha512":"c5ccfdcd9ce76de85f043a1733c9f0b620e15babbaf2a5639684c7b2bb8e5a66473c9a83f14cb48d9cb6c6a1c6b36f2c5a28e25abaf131fb85ec5eedecbae4ac","ssdeep":"","tlshash":"5d01dd13f3d50473f66d0075a20cc57f010635daaadad7089a48117cfe1983c5239b82","first_seen":"2023-04-05T11:18:23Z","last_seen":"2026-07-27T09:46:57.020797Z","times_seen":17233,"resource_available":false,"data":"R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/h1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDQuMAAh/hVNYWRlIGJ5IEFqYXhMb2FkLmluZm8AIfkECQoAAAAsAAAAABAAEAAAAzMIutz+MMpJaxNjCDoIGZwHTphmCUWxMcK6FJnBti5gxMJx0C1bGDndpgc5GAwHSmvnSAAAIfkECQoAAAAsAAAAABAAEAAAAzQIutz+TowhIBuEDLuw5opEcUJRVGAxGSBgTEVbGqh8HLV13+1hGAeAINcY4oZDGbIlJCoSACH5BAkKAAAALAAAAAAQABAAAAM2CLoyIyvKQciQzJRWLwaFYxwO9BlO8UlCYZircBzwCsyzvRzGqCsCWe0X/AGDww8yqWQan78EACH5BAkKAAAALAAAAAAQABAAAAMzCLpiJSvKMoaR7JxWX4WLpgmFIQwEMUSHYRwRqkaCsNEfA2JSXfM9HzA4LBqPyKRyOUwAACH5BAkKAAAALAAAAAAQABAAAAMyCLpyJytK52QU8BjzTIEMJnbDYFxiVJSFhLkeaFlCKc/KQBADHuk8H8MmLBqPyKRSkgAAIfkECQoAAAAsAAAAABAAEAAAAzMIuiDCkDkX43TnvNqeMBnHHOAhLkK2ncpXrKIxDAYLFHNhu7A195UBgTCwCYm7n20pSgAAIfkECQoAAAAsAAAAABAAEAAAAzIIutz+8AkR2ZxVXZoB7tpxcJVgiN1hnN00loVBRsUwFJBgm7YBDQTCQBCbMYDC1s6RAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P4wykmrZULUnCnXHggIwyCOx3EOBDEwqcqwrlAYwmEYB1bapQIgdWIYgp5bEZAAADsAAAAAAAAAAAAK"}},"time_used":17,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/ct1.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.386Z","timestamp":1785132838386,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/ct1.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 29 Apr 2022 18:22:36 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3416\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3416,"size_decoded":3681,"mime_type":"image/png","magic":"PNG image data, 166 x 136, 8-bit colormap, non-interlaced","md5":"7af223288ae256692c4bdeab69efeede","sha1":"70962cd4c210aeb7eb242182d8b97f21e7abbcaf","sha256":"7b1658527663941edca209b72844c3d74d95868813677709a5b3de57a6bcd063","sha512":"cd1c4e577d40109d839527be77ee4b5051852cf8b48f3a136fc98516a56c6ffba0dd2743fe01dcd008f6225f3996a206f6321294dc6dc3508fee349b91fb7595","ssdeep":"","tlshash":"98616bf1c77a940f9a6dba82e0d4e64b805938b17ddf0904086caa9f99684f005ac36b","first_seen":"2025-08-12T04:19:48.089941Z","last_seen":"2026-07-27T06:14:42.680275Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":28,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/ct2.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.388Z","timestamp":1785132838388,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/ct2.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 29 Apr 2022 18:22:42 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1246\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1246,"size_decoded":1511,"mime_type":"image/png","magic":"PNG image data, 166 x 136, 8-bit colormap, non-interlaced","md5":"1930ce35e5d78b56831c25108c3b1d2f","sha1":"1915bffd51171f441c5d41005e4c2ceb3b20b6c6","sha256":"7ec1c46d15abf0c25e4b76118484e58039c0b97b0eca5e2181cba8c8583233b5","sha512":"3e575828404f224e3d08585af369690a8e3662d77cc5cf18c396862a641614373c5e6a699e29c75647e11d6335ae8d99eedaf1ef385b2d88a8fd7bfa5a37c959","ssdeep":"","tlshash":"ee2195f49fb12414869d8d78b693ac48dc23a70ee415ff6d0f65a7f8a92c14062c1098","first_seen":"2025-08-12T04:19:48.047079Z","last_seen":"2026-07-27T06:14:42.681102Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAKYAAACICAMAAABa8GADAAAAw1BMVEUAAADmShjmShm/NgzfRhbbRBW/NgzZQhXnShnmShnmShnANQvANQvmShnmShnANQvANQzANQvCMwvANQzAMgvANQvANQzANQvBNQzANQzBNAu/Ngy/NgzBNQvANAvCNgzANQvANQvBNQvANQvmShnmShnmShnXQhTYQxPmShrmShm/Ngz/wgbmRxn/xwblRBrnTRjYQxT4ogvqWhfsZBX7rgr+vgfrXRb8swnoVBjsZhX3mw36qAn9uAj/ywXpWBf0jA7trgurAAAAKnRSTlMA3tXdCBnVDqlkeeuwzqw+x3ETvFEr4aOPfmP485mHWkkzIs6Aue/fzJTX4nlBAAADoElEQVR42u3bWVOjQBDA8YlAcJco5L4vontMB8zGKxqN+/0/1boP2pMyDYEMVdNV/F/7wZ8zFYtGFWVlZWVFNLCqB7IWc2FUEzjcTBhVj2C2hFF1eTBrBHMgjIpi1oVJ2U2C2RcmZQcEcyJMyqWYPWFSbpVgjoVJNSyC2RUm1egQzJowKcdjwWwPKaYtDGoORIFRTB+Iqq4wqBkQdRrCoFpA5BnFHJBMRxhUHYhGoTCoPlC1hUFNgMoXBtUD4LCzjQE4LEM1oJoKg2oCcNjZAgAGO5u94MGsAjBYLd13JoPVsmEBMFgtnQ4Ag50t9AAYLENtmtkU5uQPgSoQ5uQDC+YMyBYGrZYtILOKWYZsWxyTK9SmQNZxhP7cb+cIoHOufievQpgXFoC8kBU7Hfm9Ii9TViFktgtASnlmH4GU8jx5FcJGepn2fyQyE5FfmD2gm+s+SWQmIg8wx0Dna0SeSZnOdK7ekQeZXaBrab5uZNInSTBrQDfVepLIpJG5mAOtSGSSSJrZBLq6tg8OzURkIjMojIknSTMRSTBxY6Pra/ng0ExEpjEbHtBNtF43MikkzXSSmD0N100z8edkOjMcAd1Y63UjkzpJmtkeAl1X63Ujk0LSzDky9exsNl43yaSQNNOHhAKdJ4lMEkkzW3qY+MFJ74JE0swpJFS1szGv5TH9QGRSlUvs/BckZGVkVmRR/QHs5F8HEldeNNMLWTBHbR7MOQvm0C+Z+pgw48Fs8WBOeTAHJzAjNXnCJJ1ZL4IZ0ZOczH5uZrTarrHtKsLJ21rpb6RMHolJGrN3AvN1F3+0e3jCL3nzGCuT+0iZPO+Uyfp45vgE5iZefva6x1xi8cseU51sj2d2S6ZGZo0Hs2mzYAYuC+aCB9NqsGB2HBZMTw8zzsHcZWCOwkKYMWL2mXGciwnzrEzsTk199FjdYc+PUlKTSB7N9PMzb9Skqsk8SWeyeHqHGQ9miwdzyoM54MGsl0yNzAkP5pgHs8virQfU8jPlCpMy16R4ZrRab+4/2rw8RTi5vcc2W/UJ6U6dZHjrAc1C3npgXx7kcr31gAWLp3ewXB7MBgtmx2HB9EIezHbJ1McczVkwhz4LJvgsXifALD9z+fDRcrPHfFAm6/3TxEm205xmZGJvt0or9RtQB2+SmjzhIJ054PDrK4A6i6d36JdMjcweD+aYB7NWMjUymzyYAQ/mgsFfHL5nZWFeV4rqp5VYx6R/CS0rKys71D8bJob478X/egAAAABJRU5ErkJggg=="}},"time_used":27,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/ct3.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.390Z","timestamp":1785132838390,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/ct3.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 29 Apr 2022 18:22:26 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2960\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":2960,"size_decoded":3225,"mime_type":"image/png","magic":"PNG image data, 166 x 136, 8-bit colormap, non-interlaced","md5":"cd20a8840018628115f9af38b316e3ab","sha1":"8a6d372f54694c566fef720711b59e3cb12f0af6","sha256":"1854e296d21138ab360f68641c8a89448ea942eeaadfe3372c0a2251b036c29c","sha512":"404ac3809aaa3a8140975c32005eb7204429efa8bf6e135762818b4dc03afaf0b65e040a8848b0d16ee65718cadf99c51c85f4c427ebe89d851a379e04232d7d","ssdeep":"","tlshash":"6e512a82ed0e7f40569b70bd9e607d31ff2586ac9f82593ce6b74b6e90a254410f0081","first_seen":"2025-08-12T04:19:48.054639Z","last_seen":"2026-07-27T06:14:42.681923Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/css","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.425Z","timestamp":1785132838425,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /css HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/assets/css/templatemo-edu-meeting.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\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 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1459,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-27T09:47:46.014144Z","times_seen":144055,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":21,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":21,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-t6WxLABA.js","fqdn":"widget-v3.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":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:05.707Z","timestamp":1785132845707,"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-t6WxLABA.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://farosonglobaltrade.ltd\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 06:14:05 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a4cb803-3f99\"\r\nexpires: Wed, 07 Jul 2027 08:30:00 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: k4uorQVYw3aWJSDS6tGu+8fZGfYrN719hU2yRhLE/hS0kB+ZPIcFscaBWGXgUfjBlfMyN8Y\r\nx-77-nzt-ray: fdb541232848488e2df7666a478b2d2a\r\nx-77-cache: HIT\r\nx-77-age: 1719802\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":6837,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (15873)","md5":"9253d4d9d6ea32e484f0be9a0320a7a7","sha1":"762fb8fdf15626507c1c26a66aa7fe399d39e803","sha256":"1fb0b8e426f707feea50785bc24016fe14a76fb763d5eca3bc9b1d265bf77fa2","sha512":"5a1592fc87a402c636315def22f3c60dd7eeda34701b08005a192ae060acbe7ed8ae8aa709cc1664c3d9489c641e1ada60e79c66f13073ab61e6ba5bd86f524d","ssdeep":"384:9rgi5RFMkSjJOE/0BW2rkZZ795P6zrnBOVmPCRkXQbpaIF2K:9EizlSjJOEiWYoR5P6nnBOVmycQbpaId","tlshash":"0272d7742700783f711f489e16ade546b232c29dd693892d9b6fec0976c5cc0a8b37b9","first_seen":"2026-07-07T11:50:17.711459Z","last_seen":"2026-07-27T07:27:47.896741Z","times_seen":1890,"resource_available":true,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1bd2luZG93LnBhcmVudC5zbWFydHN1cHAuZ2V0QXNzZXRVcmwoImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItREQ3T3l5VDUuanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL3NoYXJlZC1DZ01DQWZvci5qcyIpLHdpbmRvdy5wYXJlbnQuc21hcnRzdXBwLmdldEFzc2V0VXJsKCJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtQzBYSFB4ZXYuanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL1dpZGdldFBvcHVwLXFldXdrY0JuLmpzIildKSkpPT5pLm1hcChpPT5kW2ldKTsKaW1wb3J0e0EgYXMgZSxBaSBhcyB0LEFyIGFzIG4sQXQgYXMgcixCIGFzIGksQmkgYXMgYSxDIGFzIG8sQ2kgYXMgcyxEIGFzIGMsRGkgYXMgbCxFIGFzIHUsRWkgYXMgZCxHaSBhcyBmLEdyIGFzIHAsSGkgYXMgbSxIbiBhcyBoLEhyIGFzIGcsSSBhcyBfLElpIGFzIHYsSiBhcyB5LEppIGFzIGIsS2kgYXMgeCxLciBhcyBTLExpIGFzIEMsTSBhcyBlZSxOIGFzIHRlLE5pIGFzIHcsTyBhcyBuZSxPciBhcyByZSxQaSBhcyBpZSxQciBhcyBhZSxQdCBhcyBvZSxSIGFzIHNlLFMgYXMgY2UsU2kgYXMgbGUsVCBhcyB1ZSxUaSBhcyBULFVpIGFzIGRlLFVyIGFzIEUsVmkgYXMgRCxXaSBhcyBmZSxXbiBhcyBwZSxXdCBhcyBtZSxYaSBhcyBPLFhyIGFzIGssWHQgYXMgaGUsWSBhcyBnZSxZaSBhcyBBLFluIGFzIGosWXIgYXMgX2UsWmkgYXMgTSxaciBhcyB2ZSxfIGFzIHllLGEgYXMgYmUsYWEgYXMgTixiIGFzIHhlLGJpIGFzIFAsY2EgYXMgRixkIGFzIFNlLGRpIGFzIENlLGR0IGFzIHdlLGVhIGFzIFRlLGVpIGFzIEksZiBhcyBFZSxmaSBhcyBMLGggYXMgRGUsaGkgYXMgUixpIGFzIHosaWEgYXMgQixqIGFzIE9lLGppIGFzIFYsam4gYXMga2Usa2kgYXMgQWUsa3IgYXMgamUsbCBhcyBNZSxsYSBhcyBOZSxsaSBhcyBILG0gYXMgUGUsbWkgYXMgRmUsbiBhcyBJZSxuYSBhcyBMZSxvIGFzIFUsb2kgYXMgVyxvciBhcyBHLHBpIGFzIEsscSBhcyBSZSxxbiBhcyB6ZSxyIGFzIHEscyBhcyBCZSx0IGFzIFZlLHRhIGFzIEhlLHRpIGFzIEosdSBhcyBVZSx1aSBhcyBZLHcgYXMgWCx3aSBhcyBaLHggYXMgV2UseGkgYXMgR2UseSBhcyBLZSx5aSBhcyBxZX1mcm9tIi4vc2hhcmVkLUNnTUNBZm9yLmpzIjt2YXIgSmU9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBZZShlLHQpe04odCwhMCk7bGV0IG49eChudWxsKSxyPWAke1MoKS5TTUFSVFNVUFBfQVVUT0NSRUFURT09PSExP2cod2luZG93KS5pZDpgc21hcnRzdXBwYH0td2lkZ2V0LWNvbnRhaW5lcmA7aygoKT0+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+YWUoKCk9PmltcG9ydChgLi9XaWRnZXRNZXNzZW5nZXItREQ3T3l5VDUuanNgKSxfX3ZpdGVfX21hcERlcHMoWzAsMSwyXSksaW1wb3J0Lm1ldGEudXJsKSx2dD1lPT57dmFyIHQ9YnQoKSxuPWEodCkscj1hKG4pO3EoYShyKSx7c2l6ZTozMn0pLEYocik7dmFyIGk9bShyLDIpLG89YShpKTtxKG8se3NpemU6MzJ9KTt2YXIgcz1tKG8sMik7cShzLHtzaXplOjMyfSkscShtKHMsMikse3NpemU6MzJ9KSxGKGkpLEYobik7dmFyIGM9bShuLDIpLGw9YShjKTtxKGEobCkse3NpemU6NDR9KSxGKGwpO3ZhciB1PW0obCwyKSxkPWEodSk7eihkLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSkseihtKGQsMikse2hlaWdodDoyMCx3aWR0aDoxMjJ9KSxGKHUpLEYoYyk7dmFyIGY9bShjLDIpLHA9YShmKTtxKGEocCkse3NpemU6Mjh9KSxGKHApO3ZhciBoPW0ocCwyKTt6KGEoaCkse2hlaWdodDoxMTIsd2lkdGg6Mjk1LHJvdW5kZWRTdHlsZTpgcm91bmRlZC02YH0pLEYoaCksRihmKTt2YXIgZz1tKGYsMiksXz1hKGcpO3ooXyx7aGVpZ2h0OjMyLHdpZHRoOjI5NX0pO3ZhciB2PW0oXywyKTt6KHYse2hlaWdodDozMix3aWR0aDoxNDh9KSx6KG0odiwyKSx7aGVpZ2h0OjMyLHdpZHRoOjIyNH0pLEYoZyksRih0KSxaKGUsdCl9LHl0PShlLHQpPT57bGV0IG49KCk9PnQ/LigpLmVycm9yO3ZhciByPXh0KCksaT1tKGEociksMiksbz1hKGksITApO0YoaSksRihyKSx2KCgpPT5sZShvLG4oKSkpLFooZSxyKX0sYnQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSIgaWQ9IlRPRE8gdGVzdCI+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXgiPjwhPjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtMiI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBtdC0yIj48ZGl2IGNsYXNzPSJmbGV4IG1sLTEgbXItMiI+PCE+PC9kaXY+IDxkaXYgY2xhc3M9ImZsZXgtYm90dG9tIHNwYWNlLXktMiI+PCE+IDwhPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWJhc2VsaW5lIG10LTgiPjxkaXYgY2xhc3M9ImZsZXggbWwtMSBtci0yIj48IT48L2Rpdj4gPGRpdiBjbGFzcz0ic3BhY2UteS0yIj48IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBpdGVtcy1lbmQgc3BhY2UteS01IG10LTggbXItMSI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj5gKSx4dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgcC00IGJnLXdoaXRlIHRleHQtcmVkLTUwMCI+PGRpdiBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQiPkZhaWxlZCB0byBsb2FkIHdpZGdldDwvZGl2PiA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIj4gPC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gU3QoZSl7Z3QoZSx7Z2V0IGxvYWRlcigpe3JldHVybiBfdH0sZGVsYXk6MCxnZXQgZXJyb3IoKXtyZXR1cm4geXR9LGdldCBsb2FkaW5nKCl7cmV0dXJuIHZ0fX0pfXZhciBDdD1kKGA8ZGl2PjwhPjwvZGl2PmApO2Z1bmN0aW9uIHd0KGUsdCl7Tih0LCEwKTtsZXQgcj0oKT0+TShqZSxgJGlzRnVsbFNjcmVlbkVuYWJsZWRgLGwpLG89KCk9Pk0oUGUsYCRpc01lc3NlbmdlckZyYW1lRXhwYW5kZWRgLGwpLHM9KCk9Pk0obixgJGlzTW9iaWxlRGV2aWNlYCxsKSxjPSgpPT5NKGksYCRzaG91bGRSZW5kZXJNZXNzZW5nZXJGcmFtZWAsbCksW2wsZF09TygpLG09eCh2b2lkIDApLGc9YE1vYmlsZVdpZGdldE1lc3Nlbmdlck9wZW5gLF89KGUsdCk9PntpZighdyhtKSlyZXR1cm47bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1FLmdldE9wdGlvbnMoKSx7d2lkdGg6cixoZWlnaHQ6aX09dWUoZSx0KTt3KG0pLnN0eWxlLm1heEhlaWdodD1oKGkpP2k6dShpKSx3KG0pLnN0eWxlLndpZHRoPWgocik/cjp1KHIpLHcobSkuc3R5bGUuaGVpZ2h0PWV8fG4/LmhlYWRsZXNzTW9kZT9gMTAwJWA6YGNhbGMoMTAwJSAtIDQwcHgpYH07QygoKT0+e3cobSkmJl8ocigpLG8oKSl9KTtsZXQgeT14KCExKTtDKCgpPT57aWYocygpKXtpZihjKCkmJiF3KHkpKXtsZXQgZT1wKCkuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtlLnRleHRDb250ZW50PWAqIHtvdmVyZmxvdzogaGlkZGVufWAsZS5jbGFzc05hbWU9ZyxwKCkuaGVhZC5hcHBlbmRDaGlsZChlKSxmKHksITApfWlmKCFjKCkmJncoeSkpe2xldCBlPXAoKS5oZWFkLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZyk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspcCgpLmhlYWQucmVtb3ZlQ2hpbGQoZVt0XSk7Zih5LCExKX19fSk7dmFyIGI9VCgpLFM9RChiKSxlZT1lPT57dmFyIHQ9Q3QoKTtIKHQsYGAse30se3RyYW5zaXRpb246YG1heC1oZWlnaHQgMjUwbXMgZWFzZS1pbi1vdXQsIHdpZHRoIDI1MG1zIGVhc2UtaW4tb3V0YCxvdmVyZmxvdzpgaGlkZGVuYH0pO3ZhciBuPWEodCk7e2xldCBlPUEoWCk7UShuLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIFN0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRNZXNzZW5nZXJGcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgbWVzc2VuZ2VyYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LChlLHQpPT54ZT8uKGUsdCksciksSih0LGU9PmYobSxlKSwoKT0+dyhtKSksdigoKT0+Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRNZXNzZW5nZXJGcmFtZSkpLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZHVyYXRpb246MjAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MTUwfSkpLFooZSx0KX07UChTLGU9PntjKCkmJmUoZWUpfSksWihlLGIpLEIoKSxkKCl9dmFyIFR0PSgpPT5hZSgoKT0+aW1wb3J0KGAuL1dpZGdldFBvcHVwLXFldXdrY0JuLmpzYCksX192aXRlX19tYXBEZXBzKFszLDEsMl0pLGltcG9ydC5tZXRhLnVybCksRXQ9ZT0+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+e2koKSYmIWEoKSYmZSgpfSksZ2UoUygpKSxIZShuKSYmeShTKCkpLFllKHQse2NoaWxkcmVuOihlLHQpPT57dmFyIG49R3QoKSxyPUQobik7SXQocix7fSk7dmFyIGk9bShyLDIpO0F0KGkse30pO3ZhciBhPW0oaSwyKTtwdChhLHt9KTt2YXIgbz1tKGEsMik7d3Qobyx7fSksV3QobShvLDIpLHt9KSxaKGUsbil9LCQkc2xvdHM6e2RlZmF1bHQ6ITB9fSksQigpLHMoKX12YXIgcXQ9Zyh3aW5kb3cpO0UuaW5pdChxdC5vcHRpb25zKSxxdC5pbnN0YWxsQXBpKE1lKSxjLnNldFRoZW1lQ29sb3IocXQub3B0aW9ucyksUmUoKSxvZSgpLEdlKEt0LHt0YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGFwcGApfSk7ZXhwb3J0e010IGFzIG4sTHQgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW1haW4tdDZXeExBQkEuanMubWFw"}},"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":"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://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:05.814Z","timestamp":1785132845814,"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://farosonglobaltrade.ltd/\r\nOrigin: https://farosonglobaltrade.ltd\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 06:14:05 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: k31jfuuBsNFN/h9XjlkybGl6TiaJskrGYKzCARmF+gh2uJm2GBt/JRAOd7l8SFNsTB+pEEk\r\nx-77-nzt-ray: fdb541232254d4e32df7666a01422132\r\nx-77-cache: HIT\r\nx-77-age: 94\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":3345,"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-27T09:46:41.75126Z","times_seen":4843,"resource_available":false,"data":"eyJhZ2VudFJhdGluZy5hbGwucGxhY2Vob2xkZXIiOiJMZWF2ZSB1cyBmZWVkYmFjayIsImFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dCI6IlNvIHNvcnJ5IPCfmJMgV2hhdCB3ZW50IHdyb25nPyIsImFnZW50UmF0aW5nLmdvb2QuZm9ybVRleHQiOiJUaGFua3Mg8J+kqSBXaGF0IHdhcyBzbyBncmVhdD8iLCJhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHQiOiJUaGFua3Mg8J+RjSBIb3cgY2FuIHdlIGltcHJvdmU/IiwiYWdlbnRUcmFuc2Zlci5kZWZhdWx0VGV4dCI6IkFnZW50IiwiYWdlbnRUcmFuc2Zlci5qb2luZWQiOiJqb2luZWQgdGhlIGNoYXQiLCJhZ2VudFRyYW5zZmVyLmxlZnQiOiJsZWZ0IiwiYWdlbnRUcmFuc2Zlci5yZWRpcmVjdGVkIjoiaXMgeW91ciBuZXcgYWdlbnQiLCJhcmlhTGFiZWwuYWdlbnRBdmF0YXIiOiJBZ2VudCBhdmF0YXIiLCJhcmlhTGFiZWwuY2FyZCI6IlByb2R1Y3QgY2FyZCIsImFyaWFMYWJlbC5jaGF0Q29udGVudCI6IkNoYXQgY29udGVudCIsImFyaWFMYWJlbC5jaGF0Ym90QXZhdGFyIjoiQ2hhdGJvdCBhdmF0YXIiLCJhcmlhTGFiZWwuZHJhd2VyLmNvbnRlbnQiOiJEcmF3ZXIgY29udGVudCIsImFyaWFMYWJlbC5kcmF3ZXIub3ZlcmxheSI6IkRyYXdlciBvdmVybGF5IiwiYXJpYUxhYmVsLmlubGluZUVtb2ppUGlja2VyLmRlc2NyaXB0aW9uIjoiU2hvd2luZyB7Y291bnR9IGVtb2ppcyIsImFyaWFMYWJlbC5pbmxpbmVFbW9qaVBpY2tlci5sYWJlbCI6IkVtb2ppIHN1Z2dlc3Rpb25zIiwiYXJpYUxhYmVsLmxlZnQiOiJMZWZ0IiwiYXJpYUxhYmVsLm9wZW5DaGF0IjoiT3BlbiBTbWFydHN1cHAgY2hhdCIsImFyaWFMYWJlbC5wb3B1cCI6IlNtYXJ0c3VwcCBjaGF0IHBvcHVwIiwiYXJpYUxhYmVsLnJhdGVDaGF0LmJhZCI6IlJhdGUgY2hhdCBuZWdhdGl2ZWxseSIsImFyaWFMYWJlbC5yYXRlQ2hhdC5nb29kIjoiUmF0ZSBjaGF0IHBvc2l0aXZlbHkiLCJhcmlhTGFiZWwucmF0ZUNoYXQubmV1dHJhbCI6IlJhdGUgY2hhdCBuZXV0cmFsbHkiLCJhcmlhTGFiZWwucmVtb3ZlQXR0YWNobWVudCI6IlJlbW92ZSBhdHRhY2htZW50IiwiYXJpYUxhYmVsLnJpZ2h0IjoiUmlnaHQiLCJhcmlhTGFiZWwuc2Nyb2xsRG93biI6IlNjcm9sbCBkb3duIiwiYXJpYUxhYmVsLnN1Y2Nlc3MiOiJTdWNjZXNzIiwiYXJpYUxhYmVsLnVwbG9hZGluZyI6IlVwbG9hZGluZy4uLiIsImFyaWFMYWJlbC53aWRnZXRCcmFuZGluZyI6IlNtYXJ0c3VwcCBicmFuZGluZyIsImF1dGhGb3JtLmFjY2VwdFRlcm1zIjoiSSBhZ3JlZSB3aXRoIHByaXZhY3kgcG9saWN5IiwiYXV0aEZvcm0uYnV0dG9uLnNlbmQiOiJTZW5kIG1lc3NhZ2UiLCJhdXRoRm9ybS5kZXNjcmlwdGlvbiI6Ildl4oCZbGwgdXNlIHlvdXIgY29udGFjdCBpbmZvIG9ubHkgaWYgYWxsIHRoZSBhZ2VudHMgYXJlIGJ1c3kgYXQgdGhlIG1vbWVudCBhbmQgY2Fubm90IGltbWVkaWF0ZWx5IHJlcGx5LiIsImF1dGhGb3JtLmdyZWV0aW5nIjoi8J+RiyBQbGVhc2UgaW50cm9kdWNlIHlvdXJzZWxmIiwiYXV0aEZvcm0uZ3JvdXAiOiJDaG9vc2UgYSBncm91cCIsImF1dGhGb3JtLmxhYmVsLmVtYWlsIjoiRS1tYWlsIiwiYXV0aEZvcm0ubGFiZWwuZ3JvdXAiOiJHcm91cCIsImF1dGhGb3JtLmxhYmVsLm5hbWUiOiJOYW1lIiwiYXV0aEZvcm0ubGFiZWwucGhvbmUiOiJQaG9uZSIsImF1dGhGb3JtLnN1Ym1pdC5lcnJvciI6IkF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsImF1dGhGb3JtLnN1Ym1pdC5zdWNjZXNzIjoiQXV0aGVudGljYXRpb24gd2FzIHN1Y2Nlc3NmdWwiLCJhdXRoRm9ybS55b3VyRW1haWwiOiJZb3VyIGVtYWlsIiwiYXV0aEZvcm0ueW91ck5hbWUiOiJZb3VyIG5hbWUiLCJhdXRoRm9ybS55b3VyUGhvbmUiOiJQaG9uZSBudW1iZXIiLCJidXR0b24uZ3JlZXRpbmciOiJDaGF0IiwiY2FyZC5saW5rc0xpbWl0UmVhY2hlZCI6IlVuYWJsZSB0byBzZW5kIG1vcmUgdGhhbiAyMCBVUkwgbGlua3MuIiwiY2FyZC5ub1ByZXZpZXdUaXRsZSI6IlByZXZpZXcgbm90IGF2YWlsYWJsZSIsImNhcmQub3BlblVybFRpdGxlIjoiUmVhZCBtb3JlIiwiY2FyZC5zZW5kaW5nSW5Qcm9ncmVzcyI6IlNlbmRpbmcgaW4gcHJvZ3Jlc3MsIHBsZWFzZSB3YWl04oCmIiwiY2hhdElucHV0LnBsYWNlaG9sZGVyIjoiVHlwZSB5b3VyIG1lc3NhZ2UgaGVyZSIsImNoYXRQcmV2aWV3Lm1lc3NhZ2UxIjoiSGksIGlzIGFueWJvZHkgaGVyZT8iLCJjaGF0UHJldmlldy5tZXNzYWdlMiI6IkhlbGxvLCB5ZXMgd2UgYXJlIGhlcmUiLCJjaGF0UHJldmlldy5tZXNzYWdlMyI6Ik9rLCB0aGFua3MiLCJjaGF0Ym90LmdvQmFjayI6IkdvIGJhY2siLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLmJ1dHRvbiI6IlllcywgZW5kIGNoYXQiLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLnRleHQiOiJJcyB0aGF0IHJlYWxseSBhbGw/IElmIHNvbWV0aGluZyBlbHNlIGNvbWVzIHRvIG1pbmQsIHlvdSBjYW4gYWx3YXlzIHJldHVybiB0byB0aGUgY29udmVyc2F0aW9uLiIsImNsb3NlQ29udmVyc2F0aW9uTW9kYWwudGl0bGUiOiJFbmQgY2hhdCIsImRyYWdBbmREcm9wLmRyb3BIZXJlIjoiRHJvcCB5b3VyIGZpbGUocykgaGVyZSIsImVtYWlsVHJhbnNjcmlwdC5wb3NpdGl2ZUZlZWRiYWNrIjoiVHJhbnNjcmlwdCBoYXMgYmVlbiBzZW50IiwiZW1haWxUcmFuc2NyaXB0LnNlbmRDb3B5IjoiU2VuZCBjb252ZXJzYXRpb24gY29weSIsImVycm9yLmZpbGVVcGxvYWQiOiJGaWxlIHVwbG9hZCBmYWlsdXJlIiwiZXJyb3Iubm9JbnRlcm5ldCI6IkludGVybmV0IGNvbm5lY3Rpb24gbG9zdCIsImVycm9yLnNlcnZlckVycm9yIjoiU2VydmVyIGVycm9yIG9jY3VycmVkIiwiZmlsZVVwbG9hZC5iYWRGaWxlVHlwZSI6IlRoaXMgZmlsZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQuIiwiZmlsZVVwbG9hZC5maWxlVG9vQmlnIjoiVGhlIGZpbGUgaXMgYmlnZ2VyIHRoYW4gdGhlIGFsbG93ZWQgbGltaXQiLCJmaWxlVXBsb2FkLmZpbGVzV2VyZW50UHJvY2Vzc2VkIjoiU29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkIiwiZmlsZVVwbG9hZC5pbWFnZUVycm9yIjoiVGhpcyBpbWFnZSBpcyBub3QgdmFsaWQiLCJmaWxlVXBsb2FkLnRvb01hbnlGaWxlcyI6IkxpbWl0IGZvciB1cGxvYWRpbmcgZmlsZXMgaXMgIiwiZmlsZVVwbG9hZC51cGxvYWRGaWxlIjoiVXBsb2FkIGZpbGUiLCJmb3JtLnN1Ym1pdC5lcnJvciI6IlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLiIsImZvcm0uc3VibWl0LnN1Y2Nlc3MiOiJTdWNjZXNzZnVsbHkgZG9uZSIsImdkcHIuZGF0YVByaXZhY3lIZWFkbGluZSI6IlBlcnNvbmFsIGRhdGEgcHJvY2Vzc2luZyIsImdkcHIuZGF0YVByaXZhY3lUZXh0IjoiU21hcnRzdXBwLmNvbSwgcy5yLm8sIHByb2Nlc3NlcyBwZXJzb25hbCBkYXRhLiwgVkFUIElEIENaMDM2Njg2ODEgKGZ1cnRoZXIgYXMgXCJTbWFydHN1cHBcIikgYXMgYSBkYXRhIHByb2Nlc3NvciB3aG8gYWN0cyBvbiBiZWhhbGYgb2YgdGhlIHdlYnNpdGUgb3duZXIgd2hvIGlzIHRoZSBkYXRhIGNvbnRyb2xsZXIuIFxuXG5TbWFydHN1cHAgaXMgR0RQUiBjb21wbGlhbnQuIFlvdSBjYW4gZmluZCBpbmZvcm1hdGlvbiBhYm91dCBTbWFydHN1cHAgcGVyc29uYWwgZGF0YSBwcml2YWN5IGFuZCBwcm9jZXNzaW5nIG9uIGhlbHAuc21hcnRzdXBwLmNvbS9lbl9VUy9wcml2YWN5LiBcblxuUHJvY2Vzc2luZyBvZiB5b3VyIHBlcnNvbmFsIGRhdGEgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHByb3ZpZGUgY3VzdG9tZXIgc2VydmljZS4gQWR2YW5jZWQgZmVhdHVyZXMgd2lsbCBvbmx5IGJlIHR1cm5lZCBvbiBpZiB5b3UgaGF2ZSBhZ3JlZWQgdG8gdGhlbS4gXG5cblBsZWFzZSBjb250YWN0IHRoZSB3ZWJzaXRlIG93bmVyIGlmIHlvdSBoYXZlIHF1ZXN0aW9ucyBhYm91dCB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIG9yIGlmIHlvdSB3YW50IHRvIHJlcXVlc3Qgb3IgZXJhc2UgeW91ciBwZXJzb25hbCBkYXRhLiIsImdlbmVyYWwuYmFjayI6IkJhY2siLCJnZW5lcmFsLm5ld01lc3NhZ2VzIjoiTmV3IG1lc3NhZ2VzIiwiZ2VuZXJhbC5zZW5kIjoiU2VuZCIsIm9wdGlvbnMuYWNjZXNzaWJpbGl0eSI6IkFjY2Vzc2liaWxpdHkiLCJvcHRpb25zLmNvcHlyaWdodCI6IsKpIHt5ZWFyfSBTbWFydHN1cHAuY29tIiwib3B0aW9ucy5lbWFpbFRyYW5zY3JpcHQiOiJTZW5kIGVtYWlsIHRyYW5zY3JpcHQiLCJvcHRpb25zLmZlZWRiYWNrIjoiRGlkIHlvdSBmaW5kIGEgYnVnPyIsIm9wdGlvbnMuZ2RwciI6IkdEUFIgYW5kIHByaXZhY3kiLCJvcHRpb25zLnBkZlRyYW5zY3JpcHQiOiJEb3dubG9hZCB0cmFuc2NyaXB0Iiwib3B0aW9ucy5wbGF5U291bmRzIjoiUGxheSB0aGUgc291bmRzIiwib3B0aW9ucy50aXRsZSI6Ik9wdGlvbnMiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWdlbnQiOiJSYXRlIGNoYXQiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWkiOiJSYXRlIEFJIGNoYXRib3QiLCJyYXRpbmcuc3VibWl0LnN1Y2Nlc3MiOiJSYXRpbmcgc2VudCIsInJhdGluZy5zdWJtaXRGZWVkYmFjay5zdWNjZXNzIjoiVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrIiwicmF0aW5nLndhc0l0SGVscGZ1bC5hZ2VudCI6IkhvdyB3b3VsZCB5b3UgcmF0ZSBvdXIgc3VwcG9ydD8iLCJyYXRpbmcud2FzSXRIZWxwZnVsLmFpIjoiSG93IHdvdWxkIHlvdSByYXRlIHRoZSBBSSBjaGF0Ym90IGV4cGVyaWVuY2U/Iiwic3RhdHVzQmFyLmJvdElkZW50aXR5IjoiQUkgYXNzaXN0YW50Iiwic3RhdHVzQmFyLm9mZmxpbmVUZXh0IjoiSGFwcHkgdG8gYW5zd2VyIHlvdSBsYXRlciIsInN0YXR1c0Jhci5vbmxpbmVUZXh0IjoiV2UgcmVwbHkgaW1tZWRpYXRlbHkiLCJzeXN0ZW1NZXNzYWdlLmNoYXRDbG9zZWQiOiJDaGF0IHdhcyBjbG9zZWQiLCJzeXN0ZW1NZXNzYWdlLmNoYXRSZXNvbHZlZCI6InJlc29sdmVkIGNvbnZlcnNhdGlvbiIsInRpY2tldEZvcm0ubGFiZWwubWVzc2FnZSI6IldoYXQgY2FuIHdlIGhlbHAgeW91IHdpdGg/IiwidGlja2V0Rm9ybS5tZXNzYWdlLnBsYWNlaG9sZGVyIjoiRGVzY3JpYmUgeW91ciBwcm9ibGVtIiwidGlja2V0Rm9ybS5zdWJtaXQuYnV0dG9uIjoi4pyJ77iPIENvbnRhY3QgdGhlIGFnZW50IGJ5IGVtYWlsIiwidGltZWFnby5YRGF5c0FnbyI6IiclcyBkYXlzIGFnbyIsInRpbWVhZ28uWEhvdXJzQWdvIjoiJXMgaG91cnMgYWdvIiwidGltZWFnby5YTWludXRlc0FnbyI6IiVzIG1pbnV0ZXMgYWdvIiwidGltZWFnby5YTW9udGhzQWdvIjoiJXMgbW9udGhzIGFnbyIsInRpbWVhZ28uWFNlY29uZHNBZ28iOiIlcyBzZWNvbmRzIGFnbyIsInRpbWVhZ28uWFdlZWtzQWdvIjoiJXMgd2Vla3MgYWdvIiwidGltZWFnby5YWWVhcnNBZ28iOiIlcyB5ZWFycyBhZ28iLCJ0aW1lYWdvLmp1c3ROb3ciOiJqdXN0IG5vdyIsInRpbWVhZ28ub25lRGF5QWdvIjoiMSBkYXkgYWdvIiwidGltZWFnby5vbmVIb3VyQWdvIjoiMSBob3VyIGFnbyIsInRpbWVhZ28ub25lTWludXRlQWdvIjoiMSBtaW51dGUgYWdvIiwidGltZWFnby5vbmVNb250aEFnbyI6IjEgbW9udGggYWdvIiwidGltZWFnby5vbmVXZWVrQWdvIjoiMSB3ZWVrIGFnbyIsInRpbWVhZ28ub25lWWVhckFnbyI6IjEgeWVhciBhZ28iLCJ0aW1lYWdvLnJpZ2h0Tm93IjoicmlnaHQgbm93IiwidGltZWFnby5zZWNvbmRzIjoiaW4gJXMgc2Vjb25kcyIsInRvb2x0aXAuYXR0YWNobWVudCI6IkF0dGFjaG1lbnQiLCJ0b29sdGlwLmNsb3NlIjoiQ2xvc2UiLCJ0b29sdGlwLmNvbGxhcHNlIjoiQ29sbGFwc2UgY2hhdCIsInRvb2x0aXAuZW1vamkiOiJFbW9qaSIsInRvb2x0aXAuZXhwYW5kIjoiRXhwYW5kIGNoYXQiLCJ0b29sdGlwLm1pbmltaXplIjoiTWluaW1pemUgY2hhdCIsInRvb2x0aXAubW9yZSI6IlNob3cgbW9yZSIsInRvb2x0aXAubW9yZUJ1dHRvbiI6IlNob3cgTW9yZSIsInRvb2x0aXAucmF0ZUNoYXQiOiJSYXRlIENoYXQiLCJ0b29sdGlwLnNlbmQiOiJTZW5kIiwidG9wQmFyLmVtYWlsVHJhbnNjcmlwdCI6IlNlbmQgZW1haWwgdHJhbnNjcmlwdCIsInRvcEJhci5nZHByVGl0bGUiOiJHRFBSIGFuZCBwcml2YWN5IiwidG9wQmFyLm9mZmxpbmUuaGVsbG8iOiJTZW5kIHVzIGEgbWVzc2FnZSIsInRvcEJhci5vbmxpbmUuaGVsbG8iOiJIb3cgY2FuIHdlIGhlbHA/IiwidG9wQmFyLnR1cm5PZmZTb3VuZHMiOiJUdXJuIG9mZiBzb3VuZHMiLCJ0b3BCYXIudHVybk9uU291bmRzIjoiVHVybiBvbiBzb3VuZHMiLCJ0cmlnZ2VyLm9wZW5DaGF0QnV0dG9uIjoiTGV0J3MgY2hhdCIsInRyaWdnZXIucmVwbHlCdXR0b24iOiJSZXBseSIsInZhbGlkYXRpb25zLmNoZWNrZWRUZXJtcyI6IllvdSBtdXN0IGFncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRvIGNvbnRpbnVlIiwidmFsaWRhdGlvbnMuaXNFbWFpbCI6IlBsZWFzZSBlbnRlciB2YWxpZCBlbWFpbCIsInZhbGlkYXRpb25zLnBob25lIjoiUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIiwidmFsaWRhdGlvbnMucmVxdWlyZWQiOiJQbGVhc2UgZmlsbCBvdXQgdGhpcyBmaWVsZCIsIndhcm5pbmdCYXIubWF4TGVuZ3RoIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBjaGFyYWN0ZXJzICgyMDAwKSIsIndhcm5pbmdCYXIuc2FtZU1lc3NhZ2VUd2ljZSI6IkNhbm5vdCBzZW5kIHRoZSBzYW1lIG1lc3NhZ2UgdHdpY2UgaW4gYSByb3cuIiwid2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbiI6IllvdXIgbWVzc2FnZXMgaGF2ZSBiZWVuIGlkZW50aWZpZWQgYXMgc3BhbS4gUGxlYXNlIHdhaXQgZm9yIDMwIHNlY29uZHMgYmVmb3JlIHNlbmRpbmcgYW5vdGhlciBtZXNzYWdlLiIsIndhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0IjoiRmlyc3QgbWVzc2FnZSBjYW5ub3QgYmUgYSBmaWxlIiwid2lkZ2V0UHJldmlldy5jb250YWN0TWVzc2FnZSI6IvCfjokgTG9va3MgZmFudGFzdGljISDwn5Kq8J+PuyBMZXTCtHMgcm9jayB0aG9zZSBjb252ZXJzYXRpb25zIGFuZCBsZWF2ZSBhIGxhc3RpbmcgaW1wcmVzc2lvbiEg8J+agCIsIndpZGdldFByZXZpZXcud2VsY29tZU1lc3NhZ2UiOiLwn5GL8J+PuyBXZWxjb21lISBUaGlzIGlzIGEgc25lYWsgcGVlayBvZiB5b3VyIGNoYXQgYm94LiBHZXQgcmVhZHkgdG8gc2hpbmUg4pyoIGluIGN1c3RvbWVyIGludGVyYWN0aW9ucyEiLCJtZXNzYWdlLmRlbGV0ZWQiOiJUaGlzIG1lc3NhZ2Ugd2FzIHJlbW92ZWQifQ=="}},"time_used":35,"timings":{"blocked":0,"dns":3,"connect":8,"send":0,"wait":8,"receive":0,"ssl":15},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"static.getbutton.io/widget/bundle.js","fqdn":"static.getbutton.io","domain":"getbutton.io","tld":"io"},"ip":{"addr":"104.26.14.221","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:27.792Z","timestamp":1785132867792,"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":"getbutton.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Tue, 16 Jun 2026 00:45:37 GMT","end":"Mon, 14 Sep 2026 01:45:33 GMT"},"fingerprint":{"sha1":"DC:2F:40:2C:2E:8F:A1:FE:B6:A3:D2:1B:01:7E:28:02:66:38:0E:86","sha256":"E1:C6:2E:FD:25:F8:44:CA:B3:2C:26:9B:A5:CB:26:9B:6D:77:7B:CF:2A:52:29:CD:23:39:99:E7:89:F4:41:57"}}},"request":{"raw":"GET /widget/bundle.js HTTP/1.1\r\nHost: static.getbutton.io\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://farosonglobaltrade.ltd/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\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 06:14:27 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nlast-modified: Fri, 13 Feb 2026 07:15:48 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\netag: \"698ecfa4-6beb9\"\r\nexpires: Mon, 27 Jul 2026 06:17:50 GMT\r\ncache-control: max-age=14400\r\naccess-control-allow-origin: *\r\ncontent-encoding: gzip\r\nage: 10596\r\ncf-cache-status: HIT\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=9NL%2B626YfLWkQvUaMWnlM%2BiwOS0nF47OnPrLry6paq6Fqa%2BFMAON9LPXpJereKOI5Jm7CR7%2FayrPH7uIWSwZFVN7NPmD74a73rLgpYhS%2ByPosfwRIj236yY5BxBg9Ta1BJmegTM%3D\"}]}\r\ncf-ray: a2198107bf79b509-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":442041,"size_decoded":129346,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65475)","md5":"bc3e8108dcd36c0d0c129a726dd8f47f","sha1":"db6320723c55ad91550a1ca87176058bed49d99c","sha256":"791450932271b1682c103cadb334baea8bf68100069c3c3eb317ed8a20098483","sha512":"821203cb21570cee7a989e40a417990e408949e7d239766562cfee62c0a0320c936bfbc8fcb2ecb35067ba1034eb7363d907edb72ccd878ee510640aa7a976b3","ssdeep":"6144:HSFryQhY3HpsS+U6qAcXha0oPKiqLVwoNbsR5LoQGnE2:xQhY3JsS+U6qASoPKiq+oNbsRFoQGnE2","tlshash":"53946de93290f0a653b352b700af240bf379641a785d8860a215ecdcf8b94ed513bf6d","first_seen":"2026-02-13T07:56:32.581356Z","last_seen":"2026-07-27T09:54:10.90244Z","times_seen":2595,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgYnVuZGxlLmpzLkxJQ0VOU0UgKi8KIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7dmFyIHQ7cmV0dXJuKHJbZV18fCh0PXJbZV09e2k6ZSxsOiExLGV4cG9ydHM6e319LG5bZV0uY2FsbCh0LmV4cG9ydHMsdCx0LmV4cG9ydHMsbyksdC5sPSEwLHQpKS5leHBvcnRzfXZhciBuLHI7bj1bZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKDE2OCl9LGZ1bmN0aW9uKGUsVWUsQmUpeyFmdW5jdGlvbihlKXtCZS5kKFVlLCJhIixmdW5jdGlvbigpe3JldHVybiB6ZX0pLEJlLmQoVWUsImIiLGZ1bmN0aW9uKCl7cmV0dXJuIFJlfSksQmUuZChVZSwiYyIsZnVuY3Rpb24oKXtyZXR1cm4gQX0pLEJlLmQoVWUsImUiLGZ1bmN0aW9uKCl7cmV0dXJuIE5lfSk7dmFyIGE9QmUoNTYpLHg9QmUoMCksZD1CZS5uKHgpLHQ9QmUoOTUpLFI9QmUubih0KSxOPUJlKDk2KSxEPUJlKDk3KSxVPUJlKDU4KSx0PUJlKDU3KSxCPUJlLm4odCk7ZnVuY3Rpb24gaygpe3JldHVybihrPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuLHI9YXJndW1lbnRzW3RdO2ZvcihuIGluIHIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikmJihlW25dPXJbbl0pfXJldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBGPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtlWzBdXSxyPTAsbz10Lmxlbmd0aDtyPG87cis9MSluLnB1c2godFtyXSxlW3IrMV0pO3JldHVybiBufSxjPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYiW29iamVjdCBPYmplY3RdIj09PShlLnRvU3RyaW5nP2UudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpJiYhT2JqZWN0KGEudHlwZU9mKShlKX0scD1PYmplY3QuZnJlZXplKFtdKSxTPU9iamVjdC5mcmVlemUoe30pO2Z1bmN0aW9uIEMoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV9ZnVuY3Rpb24gSChlKXtyZXR1cm4gZS5kaXNwbGF5TmFtZXx8ZS5uYW1lfHwiQ29tcG9uZW50In1mdW5jdGlvbiBtKGUpe3JldHVybiBlJiYic3RyaW5nIj09dHlwZW9mIGUuc3R5bGVkQ29tcG9uZW50SWR9dmFyIHU9dm9pZCAwIT09ZSYmKHtSRUFDVF9BUFBfQ09OVEFDVF9GT1JNX0hPU1Q6ImdldGJ1dHRvbi5pbyIsUkVBQ1RfQVBQX1ZBTElEQVRJT05fVVJMOiJodHRwczovL3dpZGdldC5nZXRidXR0b24uaW8vYXBpL3ZhbGlkYXRlIixSRUFDVF9BUFBfQUxMT1dFRF9ET01BSU5TX0xJU1Q6ImFkbWluLmdldGJ1dHRvbi5pbywgbmV4dC5nZXRidXR0b24uaW8sIDEyNy4wLjAuMSwgbG9jYWxob3N0LCB0ZXN0LmdldGJ1dHRvbi5pbywgZGV2LmdldGJ1dHRvbi5pbywgZ2V0YnV0dG9uLmlvLCBhZG1pbi5zaG9waWZ5LmNvbSIsUkVBQ1RfQVBQX0dPT0dMRU1BUFNfQVBJX0tFWToiQUl6YVN5Qnp4Tm8yLWxhSXpBVC1HcnFndDVVYVFoTVNzbFQxSEJFIixSRUFDVF9BUFBfQUlfQlVORExFX1VSTDoiaHR0cHM6Ly9zdGF0aWMuZ2V0YnV0dG9uLmlvL3dpZGdldC9idW5kbGUtYWkuanMifS5SRUFDVF9BUFBfU0NfQVRUUnx8e1JFQUNUX0FQUF9DT05UQUNUX0ZPUk1fSE9TVDoiZ2V0YnV0dG9uLmlvIixSRUFDVF9BUFBfVkFMSURBVElPTl9VUkw6Imh0dHBzOi8vd2lkZ2V0LmdldGJ1dHRvbi5pby9hcGkvdmFsaWRhdGUiLFJFQUNUX0FQUF9BTExPV0VEX0RPTUFJTlNfTElTVDoiYWRtaW4uZ2V0YnV0dG9uLmlvLCBuZXh0LmdldGJ1dHRvbi5pbywgMTI3LjAuMC4xLCBsb2NhbGhvc3QsIHRlc3QuZ2V0YnV0dG9uLmlvLCBkZXYuZ2V0YnV0dG9uLmlvLCBnZXRidXR0b24uaW8sIGFkbWluLnNob3BpZnkuY29tIixSRUFDVF9BUFBfR09PR0xFTUFQU19BUElfS0VZOiJBSXphU3lCenhObzItbGFJekFULUdycWd0NVVhUWhNU3NsVDFIQkUiLFJFQUNUX0FQUF9BSV9CVU5ETEVfVVJMOiJodHRwczovL3N0YXRpYy5nZXRidXR0b24uaW8vd2lkZ2V0L2J1bmRsZS1haS5qcyJ9LlNDX0FUVFIpfHwiZGF0YS1zdHlsZWQiLHM9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJIVE1MRWxlbWVudCJpbiB3aW5kb3csdD1Cb29sZWFuKCJib29sZWFuIj09dHlwZW9mIFNDX0RJU0FCTEVfU1BFRURZP1NDX0RJU0FCTEVfU1BFRURZOnZvaWQgMCE9PWUmJih2b2lkIDAhPT17UkVBQ1RfQVBQX0NPTlRBQ1RfRk9STV9IT1NUOiJnZXRidXR0b24uaW8iLFJFQUNUX0FQUF9WQUxJREFUSU9OX1VSTDoiaHR0cHM6Ly93aWRnZXQuZ2V0YnV0dG9uLmlvL2FwaS92YWxpZGF0ZSIsUkVBQ1RfQVBQX0FMTE9XRURfRE9NQUlOU19MSVNUOiJhZG1pbi5nZXRidXR0b24uaW8sIG5leHQuZ2V0YnV0dG9uLmlvLCAxMjcuMC4wLjEsIGxvY2FsaG9zdCwgdGVzdC5nZXRidXR0b24uaW8sIGRldi5nZXRidXR0b24uaW8sIGdldGJ1dHRvbi5pbywgYWRtaW4uc2hvcGlmeS5jb20iLFJFQUNUX0FQUF9HT09HTEVNQVBTX0FQSV9LRVk6IkFJemFTeUJ6eE5vMi1sYUl6QVQtR3JxZ3Q1VWFRaE1Tc2xUMUhCRSIsUkVBQ1RfQVBQX0FJX0JVTkRMRV9VUkw6Imh0dHBzOi8vc3RhdGljLmdldGJ1dHRvbi5pby93aWRnZXQvYnVuZGxlLWFpLmpzIn0uUkVBQ1RfQVBQX1NDX0RJU0FCTEVfU1BFRURZJiYiIiE9PXtSRUFDVF9BUFBfQ09OVEFDVF9GT1JNX0hPU1Q6ImdldGJ1dHRvbi5pbyIsUkVBQ1RfQVBQX1ZBTElEQVRJT05fVVJMOiJodHRwczovL3dpZGdldC5nZXRidXR0b24uaW8vYXBpL3ZhbGlkYXRlIixSRUFDVF9BUFBfQUxMT1dFRF9ET01BSU5TX0xJU1Q6ImFkbWluLmdldGJ1dHRvbi5pbywgbmV4dC5nZXRidXR0b24uaW8sIDEyNy4wLjAuMSwgbG9jYWxob3N0LCB0ZXN0LmdldGJ1dHRvbi5pbywgZGV2LmdldGJ1dHRvbi5pbywgZ2V0YnV0dG9uLmlvLCBhZG1pbi5zaG9waWZ5LmNvbSIsUkVBQ1RfQVBQX0dPT0dMRU1BUFNfQVBJX0tFWToiQUl6YVN5Qnp4Tm8yLWxhSXpBVC1HcnFndDVVYVFoTVNzbFQxSEJFIixSRUFDVF9BUFBfQUlfQlVORExFX1VSTDoiaHR0cHM6Ly9zdGF0aWMuZ2V0YnV0dG9uLmlvL3dpZGdldC9idW5kbGUtYWkuanMifS5SRUFDVF9BUFBfU0NfRElTQUJMRV9TUEVFRFk/ImZhbHNlIiE9PXtSRUFDVF9BUFBfQ09OVEFDVF9GT1JNX0hPU1Q6ImdldGJ1dHRvbi5pbyIsUkVBQ1RfQVBQX1ZBTElEQVRJT05fVVJMOiJodHRwczovL3dpZGdldC5nZXRidXR0b24uaW8vYXBpL3ZhbGlkYXRlIixSRUFDVF9BUFBfQUxMT1dFRF9ET01BSU5TX0xJU1Q6ImFkbWluLmdldGJ1dHRvbi5pbywgbmV4dC5nZXRidXR0b24uaW8sIDEyNy4wLjAuMSwgbG9jYWxob3N0LCB0ZXN0LmdldGJ1dHRvbi5pbywgZGV2LmdldGJ1dHRvbi5pbywgZ2V0YnV0dG9uLmlvLCBhZG1pbi5zaG9waWZ5LmNvbSIsUkVBQ1RfQVBQX0dPT0dMRU1BUFNfQVBJX0tFWToiQUl6YVN5Qnp4Tm8yLWxhSXpBVC1HcnFndDVVYVFoTVNzbFQxSEJFIixSRUFDVF9BUFBfQUlfQlVORExFX1VSTDoiaHR0cHM6Ly9zdGF0aWMuZ2V0YnV0dG9uLmlvL3dpZGdldC9idW5kbGUtYWkuanMifS5SRUFDVF9BUFBfU0NfRElTQUJMRV9TUEVFRFkmJntSRUFDVF9BUFBfQ09OVEFDVF9GT1JNX0hPU1Q6ImdldGJ1dHRvbi5pbyIsUkVBQ1RfQVBQX1ZBTElEQVRJT05fVVJMOiJodHRwczovL3dpZGdldC5nZXRidXR0b24uaW8vYXBpL3ZhbGlkYXRlIixSRUFDVF9BUFBfQUxMT1dFRF9ET01BSU5TX0xJU1Q6ImFkbWluLmdldGJ1dHRvbi5pbywgbmV4dC5nZXRidXR0b24uaW8sIDEyNy4wLjAuMSwgbG9jYWxob3N0LCB0ZXN0LmdldGJ1dHRvbi5pbywgZGV2LmdldGJ1dHRvbi5pbywgZ2V0YnV0dG9uLmlvLCBhZG1pbi5zaG9waWZ5LmNvbSIsUkVBQ1RfQVBQX0dPT0dMRU1BUFNfQVBJX0tFWToiQUl6YVN5Qnp4Tm8yLWxhSXpBVC1HcnFndDVVYVFoTVNzbFQxSEJFIixSRUFDVF9BUFBfQUlfQlVORExFX1VSTDoiaHR0cHM6Ly9zdGF0aWMuZ2V0YnV0dG9uLmlvL3dpZGdldC9idW5kbGUtYWkuanMifS5SRUFDVF9BUFBfU0NfRElTQUJMRV9TUEVFRFk6dm9pZCAwIT09e1JFQUNUX0FQUF9DT05UQUNUX0ZPUk1fSE9TVDoiZ2V0YnV0dG9uLmlvIixSRUFDVF9BUFBfVkFMSURBVElPTl9VUkw6Imh0dHBzOi8vd2lkZ2V0LmdldGJ1dHRvbi5pby9hcGkvdmFsaWRhdGUiLFJFQUNUX0FQUF9BTExPV0VEX0RPTUFJTlNfTElTVDoiYWRtaW4uZ2V0YnV0dG9uLmlvLCBuZXh0LmdldGJ1dHRvbi5pbywgMTI3LjAuMC4xLCBsb2NhbGhvc3QsIHRlc3QuZ2V0YnV0dG9uLmlvLCBkZXYuZ2V0YnV0dG9uLmlvLCBnZXRidXR0b24uaW8sIGFkbWluLnNob3BpZnkuY29tIixSRUFDVF9BUFBfR09PR0xFTUFQU19BUElfS0VZOiJBSXphU3lCenhObzItbGFJekFULUdycWd0NVVhUWhNU3NsVDFIQkUiLFJFQUNUX0FQUF9BSV9CVU5ETEVfVVJMOiJodHRwczovL3N0YXRpYy5nZXRidXR0b24uaW8vd2lkZ2V0L2J1bmRsZS1haS5qcyJ9LlNDX0RJU0FCTEVfU1BFRURZJiYiIiE9PXtSRUFDVF9BUFBfQ09OVEFDVF9GT1JNX0hPU1Q6ImdldGJ1dHRvbi5pbyIsUkVBQ1RfQVBQX1ZBTElEQVRJT05fVVJMOiJodHRwczovL3dpZGdldC5nZXRidXR0b24uaW8vYXBpL3ZhbGlkYXRlIixSRUFDVF9BUFBfQUxMT1dFRF9ET01BSU5TX0xJU1Q6ImFkbWluLmdldGJ1dHRvbi5pbywgbmV4dC5nZXRidXR0b24uaW8sIDEyNy4wLjAuMSwgbG9jYWxob3N0LCB0ZXN0LmdldGJ1dHRvbi5pbywgZGV2LmdldGJ1dHRvbi5pbywgZ2V0YnV0dG9uLmlvLCBhZG1pbi5zaG9waWZ5LmNvbSIsUkVBQ1RfQVBQX0dPT0dMRU1BUFNfQVBJX0tFWToiQUl6YVN5Qnp4Tm8yLWxhSXpBVC1HcnFndDVVYVFoTVNzbFQxSEJFIixSRUFDVF9BUFBfQUlfQlVORExFX1VSTDoiaHR0cHM6Ly9zdGF0aWMuZ2V0YnV0dG9uLmlvL3dpZGdldC9idW5kbGUtYWkuanMifS5TQ19ESVNBQkxFX1NQRUVEWSYmImZhbHNlIiE9PXtSRUFDVF9BUFBfQ09OVEFDVF9GT1JNX0hPU1Q6ImdldGJ1dHRvbi5pbyIsUkVBQ1RfQVBQX1ZBTElEQVRJT05fVVJMOiJodHRwczovL3dpZGdldC5nZXRidXR0b24uaW8vYXBpL3ZhbGlkYXRlIixSRUFDVF9BUFBfQUxMT1dFRF9ET01BSU5TX0xJU1Q6ImFkbWluLmdldGJ1dHRvbi5pbywgbmV4dC5nZXRidXR0b24uaW8sIDEyNy4wLjAuMSwgbG9jYWxob3N0LCB0ZXN0LmdldGJ1dHRvbi5pbywgZGV2LmdldGJ1dHRvbi5pbywgZ2V0YnV0dG9uLmlvLCBhZG1pbi5zaG9waWZ5LmNvbSIsUkVBQ1RfQVBQX0dPT0dMRU1BUFNfQVBJX0tFWToiQUl6YVN5Qnp4Tm8yLWxhSXpBVC1HcnFndDVVYVFoTVNzbFQxSEJFIixSRUFDVF9BUFBfQUlfQlVORExFX1VSTDoiaHR0cHM6Ly9zdGF0aWMuZ2V0YnV0dG9uLmlvL3dpZGdldC9idW5kbGUtYWkuanMifS5TQ19ESVNBQkxFX1NQRUVEWSYme1JFQUNUX0FQUF9DT05UQUNUX0ZPUk1fSE9TVDoiZ2V0YnV0dG9uLmlvIixSRUFDVF9BUFBfVkFMSURBVElPTl9VUkw6Imh0dHBzOi8vd2lkZ2V0LmdldGJ1dHRvbi5pby9hcGkvdmFsaWRhdGUiLFJFQUNUX0FQUF9BTExPV0VEX0RPTUFJTlNfTElTVDoiYWRtaW4uZ2V0YnV0dG9uLmlvLCBuZXh0LmdldGJ1dHRvbi5pbywgMTI3LjAuMC4xLCBsb2NhbGhvc3QsIHRlc3QuZ2V0YnV0dG9uLmlvLCBkZXYuZ2V0YnV0dG9uLmlvLCBnZXRidXR0b24uaW8sIGFkbWluLnNob3BpZnkuY29tIixSRUFDVF9BUFBfR09PR0xFTUFQU19BUElfS0VZOiJBSXphU3lCenhObzItbGFJekFULUdycWd0NVVhUWhNU3NsVDFIQkUiLFJFQUNUX0FQUF9BSV9CVU5ETEVfVVJMOiJodHRwczovL3N0YXRpYy5nZXRidXR0b24uaW8vd2lkZ2V0L2J1bmRsZS1haS5qcyJ9LlNDX0RJU0FCTEVfU1BFRURZKSksVj17fTtmdW5jdGlvbiBoKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KDE8dD90LTE6MCkscj0xO3I8dDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTt0aHJvdyBuZXcgRXJyb3IoIkFuIGVycm9yIG9jY3VycmVkLiBTZWUgaHR0cHM6Ly9naXQuaW8vSlVJYUUjIitlKyIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIisoMDxuLmxlbmd0aD8iIEFyZ3M6ICIrbi5qb2luKCIsICIpOiIiKSl9ZnVuY3Rpb24gcihlKXtpZihuLmhhcyhlKSlyZXR1cm4gbi5nZXQoZSk7Zm9yKDtmLmhhcyhvKTspbysrO3ZhciB0PW8rKztyZXR1cm4gbi5zZXQoZSx0KSxmLnNldCh0LGUpLHR9ZnVuY3Rpb24gJChlKXt2YXIgdD1kb2N1bWVudC5oZWFkLHI9ZXx8dCxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksdD12b2lkIDAhPT0odD1mdW5jdGlvbigpe2Zvcih2YXIgZT1yLmNoaWxkTm9kZXMsdD1lLmxlbmd0aDswPD10O3QtLSl7dmFyIG49ZVt0XTtpZihuJiYxPT09bi5ub2RlVHlwZSYmbi5oYXNBdHRyaWJ1dGUodSkpcmV0dXJuIG59fSgpKT90Lm5leHRTaWJsaW5nOm51bGwsbj0oZS5zZXRBdHRyaWJ1dGUodSwiYWN0aXZlIiksZS5zZXRBdHRyaWJ1dGUoImRhdGEtc3R5bGVkLXZlcnNpb24iLCI1LjMuMTEiKSxpKCkpO3JldHVybiBuJiZlLnNldEF0dHJpYnV0ZSgibm9uY2UiLG4pLHIuaW5zZXJ0QmVmb3JlKGUsdCksZX1mdW5jdGlvbiBXKGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGUrKDI1PGU/Mzk6OTcpKX0oZT1pZS5wcm90b3R5cGUpLmluZGV4T2ZHcm91cD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPTA7bjxlO24rKyl0Kz10aGlzLmdyb3VwU2l6ZXNbbl07cmV0dXJuIHR9LGUuaW5zZXJ0UnVsZXM9ZnVuY3Rpb24oZSx0KXtpZihlPj10aGlzLmdyb3VwU2l6ZXMubGVuZ3RoKXtmb3IodmFyIG49dGhpcy5ncm91cFNpemVzLHI9bi5sZW5ndGgsbz1yO288PWU7KShvPDw9MSk8MCYmaCgxNiwiIitlKTt0aGlzLmdyb3VwU2l6ZXM9bmV3IFVpbnQzMkFycmF5KG8pLHRoaXMuZ3JvdXBTaXplcy5zZXQobiksdGhpcy5sZW5ndGg9bztmb3IodmFyIGE9cjthPG87YSsrKXRoaXMuZ3JvdXBTaXplc1thXT0wfWZvcih2YXIgaT10aGlzLmluZGV4T2ZHcm91cChlKzEpLGw9MCxjPXQubGVuZ3RoO2w8YztsKyspdGhpcy50YWcuaW5zZXJ0UnVsZShpLHRbbF0pJiYodGhpcy5ncm91cFNpemVzW2VdKyssaSsrKX0sZS5jbGVhckdyb3VwPWZ1bmN0aW9uKGUpe2lmKGU8dGhpcy5sZW5ndGgpe3ZhciB0PXRoaXMuZ3JvdXBTaXplc1tlXSxuPXRoaXMuaW5kZXhPZkdyb3VwKGUpLHI9bit0O3RoaXMuZ3JvdXBTaXplc1tlXT0wO2Zvcih2YXIgbz1uO288cjtvKyspdGhpcy50YWcuZGVsZXRlUnVsZShuKX19LGUuZ2V0R3JvdXA9ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7aWYoIShlPj10aGlzLmxlbmd0aHx8MD09PXRoaXMuZ3JvdXBTaXplc1tlXSkpZm9yKHZhciBuPXRoaXMuZ3JvdXBTaXplc1tlXSxlPXRoaXMuaW5kZXhPZkdyb3VwKGUpLHI9ZStuLG89ZTtvPHI7bysrKXQrPXRoaXMudGFnLmdldFJ1bGUobykrIi8qIXNjKi9cbiI7cmV0dXJuIHR9O3ZhciBHPWllLG49bmV3IE1hcCxmPW5ldyBNYXAsbz0xLHE9ZnVuY3Rpb24oZSx0KXtvPD10JiYobz10KzEpLG4uc2V0KGUsdCksZi5zZXQodCxlKX0sWj0ic3R5bGVbIit1KyddW2RhdGEtc3R5bGVkLXZlcnNpb249IjUuMy4xMSJdJyxYPW5ldyBSZWdFeHAoIl4iK3UrJ1xcLmcoXFxkKylcXFtpZD0iKFtcXHdcXGQtXSspIlxcXS4qPyIoW14iXSopJyksWT1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByLG89bi5zcGxpdCgiLCIpLGE9MCxpPW8ubGVuZ3RoO2E8aTthKyspKHI9b1thXSkmJmUucmVnaXN0ZXJOYW1lKHQscil9LGk9ZnVuY3Rpb24oKXtyZXR1cm4gQmUubmN9LFE9KChlPWFlLnByb3RvdHlwZSkuaW5zZXJ0UnVsZT1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gdGhpcy5zaGVldC5pbnNlcnRSdWxlKHQsZSksdGhpcy5sZW5ndGgrKywhMH1jYXRjaChlKXtyZXR1cm4hMX19LGUuZGVsZXRlUnVsZT1mdW5jdGlvbihlKXt0aGlzLnNoZWV0LmRlbGV0ZVJ1bGUoZSksdGhpcy5sZW5ndGgtLX0sZS5nZXRSdWxlPWZ1bmN0aW9uKGUpe2U9dGhpcy5zaGVldC5jc3NSdWxlc1tlXTtyZXR1cm4gdm9pZCAwIT09ZSYmInN0cmluZyI9PXR5cGVvZiBlLmNzc1RleHQ/ZS5jc3NUZXh0OiIifSxhZSksSz0oKGU9b2UucHJvdG90eXBlKS5pbnNlcnRSdWxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU8PXRoaXMubGVuZ3RoJiYwPD1lJiYodD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KSxlPXRoaXMubm9kZXNbZV0sdGhpcy5lbGVtZW50Lmluc2VydEJlZm9yZSh0LGV8fG51bGwpLHRoaXMubGVuZ3RoKyssITApfSxlLmRlbGV0ZVJ1bGU9ZnVuY3Rpb24oZSl7dGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMubm9kZXNbZV0pLHRoaXMubGVuZ3RoLS19LGUuZ2V0UnVsZT1mdW5jdGlvbihlKXtyZXR1cm4gZTx0aGlzLmxlbmd0aD90aGlzLm5vZGVzW2VdLnRleHRDb250ZW50OiIifSxvZSksSj0oKGU9cmUucHJvdG90eXBlKS5pbnNlcnRSdWxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU8PXRoaXMubGVuZ3RoJiYodGhpcy5ydWxlcy5zcGxpY2UoZSwwLHQpLHRoaXMubGVuZ3RoKyssITApfSxlLmRlbGV0ZVJ1bGU9ZnVuY3Rpb24oZSl7dGhpcy5ydWxlcy5zcGxpY2UoZSwxKSx0aGlzLmxlbmd0aC0tfSxlLmdldFJ1bGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGU8dGhpcy5sZW5ndGg/dGhpcy5ydWxlc1tlXToiIn0scmUpLGVlPXMsdGU9e2lzU2VydmVyOiFzLHVzZUNTU09NSW5qZWN0aW9uOiF0fSxsPShnLnJlZ2lzdGVySWQ9ciwoZT1nLnByb3RvdHlwZSkucmVjb25zdHJ1Y3RXaXRoT3B0aW9ucz1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0hMCksbmV3IGcoayh7fSx0aGlzLm9wdGlvbnMse30sZSksdGhpcy5ncyx0JiZ0aGlzLm5hbWVzfHx2b2lkIDApfSxlLmFsbG9jYXRlR1NJbnN0YW5jZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5nc1tlXT0odGhpcy5nc1tlXXx8MCkrMX0sZS5nZXRUYWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWd8fCh0aGlzLnRhZz0oZT0obj10aGlzLm9wdGlvbnMpLmlzU2VydmVyLHQ9bi51c2VDU1NPTUluamVjdGlvbixuPW4udGFyZ2V0LGU9bmV3KGU/Sjp0P1E6SykobiksbmV3IEcoZSkpKTt2YXIgZSx0LG59LGUuaGFzTmFtZUZvcklkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMubmFtZXMuaGFzKGUpJiZ0aGlzLm5hbWVzLmdldChlKS5oYXModCl9LGUucmVnaXN0ZXJOYW1lPWZ1bmN0aW9uKGUsdCl7dmFyIG47cihlKSx0aGlzLm5hbWVzLmhhcyhlKT90aGlzLm5hbWVzLmdldChlKS5hZGQodCk6KChuPW5ldyBTZXQpLmFkZCh0KSx0aGlzLm5hbWVzLnNldChlLG4pKX0sZS5pbnNlcnRSdWxlcz1mdW5jdGlvbihlLHQsbil7dGhpcy5yZWdpc3Rlck5hbWUoZSx0KSx0aGlzLmdldFRhZygpLmluc2VydFJ1bGVzKHIoZSksbil9LGUuY2xlYXJOYW1lcz1mdW5jdGlvbihlKXt0aGlzLm5hbWVzLmhhcyhlKSYmdGhpcy5uYW1lcy5nZXQoZSkuY2xlYXIoKX0sZS5jbGVhclJ1bGVzPWZ1bmN0aW9uKGUpe3RoaXMuZ2V0VGFnKCkuY2xlYXJHcm91cChyKGUpKSx0aGlzLmNsZWFyTmFtZXMoZSl9LGUuY2xlYXJUYWc9ZnVuY3Rpb24oKXt0aGlzLnRhZz12b2lkIDB9LGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcyx0PWUuZ2V0VGFnKCksbj10Lmxlbmd0aCxyPSIiLG89MDtvPG47bysrKXtjPW87dmFyIGEsaSxsLGM9Zi5nZXQoYyk7dm9pZCAwIT09YyYmKGE9ZS5uYW1lcy5nZXQoYyksaT10LmdldEdyb3VwKG8pLGEpJiZpJiZhLnNpemUmJihjPXUrIi5nIitvKydbaWQ9IicrYysnIl0nLGw9IiIsdm9pZCAwIT09YSYmYS5mb3JFYWNoKGZ1bmN0aW9uKGUpezA8ZS5sZW5ndGgmJihsKz1lKyIsIil9KSxyKz1pK2MrJ3tjb250ZW50OiInK2wrJyJ9Lyohc2MqL1xuJyl9cmV0dXJuIHJ9LGcpLG5lPS8oYSkoZCkvZ2k7ZnVuY3Rpb24gZyhlLHQsbil7aWYodm9pZCAwPT09ZSYmKGU9Uyksdm9pZCAwPT09dCYmKHQ9e30pLHRoaXMub3B0aW9ucz1rKHt9LHRlLHt9LGUpLHRoaXMuZ3M9dCx0aGlzLm5hbWVzPW5ldyBNYXAobiksdGhpcy5zZXJ2ZXI9ISFlLmlzU2VydmVyLCF0aGlzLnNlcnZlciYmcyYmZWUpe2VlPSExO2Zvcih2YXIgcj10aGlzLG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChaKSxhPTAsaT1vLmxlbmd0aDthPGk7YSsrKXt2YXIgbD1vW2FdO2wmJiJhY3RpdmUiIT09bC5nZXRBdHRyaWJ1dGUodSkmJihmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0odC50ZXh0Q29udGVudHx8IiIpLnNwbGl0KCIvKiFzYyovXG4iKSxyPVtdLG89MCxhPW4ubGVuZ3RoO288YTtvKyspe3ZhciBpLGwsYyx1PW5bb10udHJpbSgpO3UmJigoaT11Lm1hdGNoKFgpKT8obD0wfHBhcnNlSW50KGlbMV0sMTApLGM9aVsyXSwwIT1sJiYocShjLGwpLFkoZSxjLGlbM10pLGUuZ2V0VGFnKCkuaW5zZXJ0UnVsZXMobCxyKSksci5sZW5ndGg9MCk6ci5wdXNoKHUpKX19KHIsbCksbC5wYXJlbnROb2RlKSYmbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpfX19ZnVuY3Rpb24gcmUoZSl7dGhpcy5ydWxlcz1bXSx0aGlzLmxlbmd0aD0wfWZ1bmN0aW9uIG9lKGUpe2U9dGhpcy5lbGVtZW50PSQoZSk7dGhpcy5ub2Rlcz1lLmNoaWxkTm9kZXMsdGhpcy5sZW5ndGg9MH1mdW5jdGlvbiBhZShlKXtlPXRoaXMuZWxlbWVudD0kKGUpO2UuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpKSx0aGlzLnNoZWV0PWZ1bmN0aW9uKGUpe2lmKGUuc2hlZXQpcmV0dXJuIGUuc2hlZXQ7Zm9yKHZhciB0PWRvY3VtZW50LnN0eWxlU2hlZXRzLG49MCxyPXQubGVuZ3RoO248cjtuKyspe3ZhciBvPXRbbl07aWYoby5vd25lck5vZGU9PT1lKXJldHVybiBvfWgoMTcpfShlKSx0aGlzLmxlbmd0aD0wfWZ1bmN0aW9uIGllKGUpe3RoaXMuZ3JvdXBTaXplcz1uZXcgVWludDMyQXJyYXkoNTEyKSx0aGlzLmxlbmd0aD01MTIsdGhpcy50YWc9ZX1mdW5jdGlvbiBiKGUpe2Zvcih2YXIgdD0iIixuPU1hdGguYWJzKGUpOzUyPG47bj1uLzUyfDApdD1XKG4lNTIpK3Q7cmV0dXJuKFcobiU1MikrdCkucmVwbGFjZShuZSwiJDEtJDIiKX1mdW5jdGlvbiB5KGUsdCl7Zm9yKHZhciBuPXQubGVuZ3RoO247KWU9MzMqZV50LmNoYXJDb2RlQXQoLS1uKTtyZXR1cm4gZX1mdW5jdGlvbiBsZShlKXtyZXR1cm4geSg1MzgxLGUpfWZ1bmN0aW9uIGNlKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCs9MSl7dmFyIG49ZVt0XTtpZihDKG4pJiYhbShuKSlyZXR1cm4hMX1yZXR1cm4hMH12YXIgdWU9bGUoIjUuMy4xMSIpLHNlPShwZS5wcm90b3R5cGUuZ2VuZXJhdGVBbmRJbmplY3RTdHlsZXM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuY29tcG9uZW50SWQsbz1bXTtpZih0aGlzLmJhc2VTdHlsZSYmby5wdXNoKHRoaXMuYmFzZVN0eWxlLmdlbmVyYXRlQW5kSW5qZWN0U3R5bGVzKGUsdCxuKSksdGhpcy5pc1N0YXRpYyYmIW4uaGFzaCl0aGlzLnN0YXRpY1J1bGVzSWQmJnQuaGFzTmFtZUZvcklkKHIsdGhpcy5zdGF0aWNSdWxlc0lkKT9vLnB1c2godGhpcy5zdGF0aWNSdWxlc0lkKTooYT1qKHRoaXMucnVsZXMsZSx0LG4pLmpvaW4oIiIpLGk9Yih5KHRoaXMuYmFzZUhhc2gsYSk+Pj4wKSx0Lmhhc05hbWVGb3JJZChyLGkpfHwoYT1uKGEsIi4iK2ksdm9pZCAwLHIpLHQuaW5zZXJ0UnVsZXMocixpLGEpKSxvLnB1c2goaSksdGhpcy5zdGF0aWNSdWxlc0lkPWkpO2Vsc2V7Zm9yKHZhciBhLGksbD10aGlzLnJ1bGVzLmxlbmd0aCxjPXkodGhpcy5iYXNlSGFzaCxuLmhhc2gpLHU9IiIscz0wO3M8bDtzKyspe3ZhciBmPXRoaXMucnVsZXNbc107InN0cmluZyI9PXR5cGVvZiBmP3UrPWY6ZiYmKGY9aihmLGUsdCxuKSxmPUFycmF5LmlzQXJyYXkoZik/Zi5qb2luKCIiKTpmLGM9eShjLGYrcyksdSs9Zil9dSYmKGE9YihjPj4+MCksdC5oYXNOYW1lRm9ySWQocixhKXx8KGk9bih1LCIuIithLHZvaWQgMCxyKSx0Lmluc2VydFJ1bGVzKHIsYSxpKSksby5wdXNoKGEpKX1yZXR1cm4gby5qb2luKCIgIil9LHBlKSxmZT0vXlxzKlwvXC8uKiQvZ20sZGU9WyI6IiwiWyIsIi4iLCIjIl07ZnVuY3Rpb24gcGUoZSx0LG4pe3RoaXMucnVsZXM9ZSx0aGlzLnN0YXRpY1J1bGVzSWQ9IiIsdGhpcy5pc1N0YXRpYz0odm9pZCAwPT09bnx8bi5pc1N0YXRpYykmJmNlKGUpLHRoaXMuY29tcG9uZW50SWQ9dCx0aGlzLmJhc2VIYXNoPXkodWUsdCksdGhpcy5iYXNlU3R5bGU9bixsLnJlZ2lzdGVySWQodCl9ZnVuY3Rpb24gbWUoZSl7ZnVuY3Rpb24gdChlLHQsbixyLG8sYSxpLGwsYyx1KXtzd2l0Y2goZSl7Y2FzZSAxOmlmKDA9PT1jJiY2ND09PXQuY2hhckNvZGVBdCgwKSlyZXR1cm4gcyh0KyI7IiksIiI7YnJlYWs7Y2FzZSAyOmlmKDA9PT1sKXJldHVybiB0KyIvKnwqLyI7YnJlYWs7Y2FzZSAzOnN3aXRjaChsKXtjYXNlIDEwMjpjYXNlIDExMjpyZXR1cm4gcyhuWzBdK3QpLCIiO2RlZmF1bHQ6cmV0dXJuIHQrKDA9PT11PyIvKnwqLyI6IiIpfWNhc2UtMjp0LnNwbGl0KCIvKnwqL30iKS5mb3JFYWNoKGYpfX1mdW5jdGlvbiByKGUsdCxuKXtyZXR1cm4gMD09PXQmJi0xIT09ZGUuaW5kZXhPZihuW2EubGVuZ3RoXSl8fG4ubWF0Y2gobCk/ZToiLiIrb312YXIgbyxhLGksbCxzLGU9dm9pZCAwPT09ZT9TOmUsbj1lLm9wdGlvbnMsbj12b2lkIDA9PT1uP1M6bixlPWUucGx1Z2lucyxlPXZvaWQgMD09PWU/cDplLGM9bmV3IE4uYShuKSx1PVtdO3M9ZnVuY3Rpb24oZSl7dS5wdXNoKGUpfTtmdW5jdGlvbiBmKGUpe2lmKGUpdHJ5e3MoZSsifSIpfWNhdGNoKGUpe319ZnVuY3Rpb24gZChlLHQsbixyKXt2b2lkIDA9PT1yJiYocj0iJiIpO2U9ZS5yZXBsYWNlKGZlLCIiKSxlPXQmJm4/bisiICIrdCsiIHsgIitlKyIgfSI6ZTtyZXR1cm4gbz1yLGE9dCxpPW5ldyBSZWdFeHAoIlxcIithKyJcXGIiLCJnIiksbD1uZXcgUmVnRXhwKCIoXFwiK2ErIlxcYil7Mix9IiksYyhufHwhdD8iIjp0LGUpfXJldHVybiBjLnVzZShbXS5jb25jYXQoZSxbZnVuY3Rpb24oZSx0LG4pezI9PT1lJiZuLmxlbmd0aCYmMDxuWzBdLmxhc3RJbmRleE9mKGEpJiYoblswXT1uWzBdLnJlcGxhY2UoaSxyKSl9LHQsZnVuY3Rpb24oZSl7aWYoLTI9PT1lKXJldHVybiBlPXUsdT1bXSxlfV0pKSxkLmhhc2g9ZS5sZW5ndGg/ZS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5uYW1lfHxoKDE1KSx5KGUsdC5uYW1lKX0sNTM4MSkudG9TdHJpbmcoKToiIixkfXZhciB2PWQuYS5jcmVhdGVDb250ZXh0KCksdz0odi5Db25zdW1lcixkLmEuY3JlYXRlQ29udGV4dCgpKSxoZT0ody5Db25zdW1lcixuZXcgbCksRT1tZSgpO2Z1bmN0aW9uIE8oKXtyZXR1cm4gT2JqZWN0KHgudXNlQ29udGV4dCkodil8fGhlfWZ1bmN0aW9uIGdlKCl7cmV0dXJuIE9iamVjdCh4LnVzZUNvbnRleHQpKHcpfHxFfWZ1bmN0aW9uIGJlKHQpe3ZhciBlPU9iamVjdCh4LnVzZVN0YXRlKSh0LnN0eWxpc1BsdWdpbnMpLG49ZVswXSxyPWVbMV0sbz1PKCksZT1PYmplY3QoeC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlPW87cmV0dXJuIHQuc2hlZXQ/ZT10LnNoZWV0OnQudGFyZ2V0JiYoZT1lLnJlY29uc3RydWN0V2l0aE9wdGlvbnMoe3RhcmdldDp0LnRhcmdldH0sITEpKSxlPXQuZGlzYWJsZUNTU09NSW5qZWN0aW9uP2UucmVjb25zdHJ1Y3RXaXRoT3B0aW9ucyh7dXNlQ1NTT01JbmplY3Rpb246ITF9KTplfSxbdC5kaXNhYmxlQ1NTT01JbmplY3Rpb24sdC5zaGVldCx0LnRhcmdldF0pLGE9T2JqZWN0KHgudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gbWUoe29wdGlvbnM6e3ByZWZpeDohdC5kaXNhYmxlVmVuZG9yUHJlZml4ZXN9LHBsdWdpbnM6bn0pfSxbdC5kaXNhYmxlVmVuZG9yUHJlZml4ZXMsbl0pO3JldHVybiBPYmplY3QoeC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7UigpKG4sdC5zdHlsaXNQbHVnaW5zKXx8cih0LnN0eWxpc1BsdWdpbnMpfSxbdC5zdHlsaXNQbHVnaW5zXSksZC5hLmNyZWF0ZUVsZW1lbnQodi5Qcm92aWRlcix7dmFsdWU6ZX0sZC5hLmNyZWF0ZUVsZW1lbnQody5Qcm92aWRlcix7dmFsdWU6YX0sdC5jaGlsZHJlbikpfVNlLnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1FKSx0aGlzLm5hbWUrZS5oYXNofTt2YXIgeWU9U2UsdmU9LyhbQS1aXSkvLHdlPS8oW0EtWl0pL2cseGU9L15tcy0vLGtlPWZ1bmN0aW9uKGUpe3JldHVybiItIitlLnRvTG93ZXJDYXNlKCl9O2Z1bmN0aW9uIFNlKGUsdCl7dmFyIHI9dGhpczt0aGlzLmluamVjdD1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PUUpO3ZhciBuPXIubmFtZSt0Lmhhc2g7ZS5oYXNOYW1lRm9ySWQoci5pZCxuKXx8ZS5pbnNlcnRSdWxlcyhyLmlkLG4sdChyLnJ1bGVzLG4sIkBrZXlmcmFtZXMiKSl9LHRoaXMudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gaCgxMixTdHJpbmcoci5uYW1lKSl9LHRoaXMubmFtZT1lLHRoaXMuaWQ9InNjLWtleWZyYW1lcy0iK2UsdGhpcy5ydWxlcz10fWZ1bmN0aW9uIENlKGUpe3JldHVybiB2ZS50ZXN0KGUpP2UucmVwbGFjZSh3ZSxrZSkucmVwbGFjZSh4ZSwiLW1zLSIpOmV9dmFyIEVlPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfHwhMT09PWV8fCIiPT09ZX07ZnVuY3Rpb24gaihlLHQsbixyKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIG8sYT1bXSxpPTAsbD1lLmxlbmd0aDtpPGw7aSs9MSkiIiE9PShvPWooZVtpXSx0LG4scikpJiYoQXJyYXkuaXNBcnJheShvKT9hLnB1c2guYXBwbHkoYSxvKTphLnB1c2gobykpO3JldHVybiBhfXJldHVybiBFZShlKT8iIjptKGUpPyIuIitlLnN0eWxlZENvbXBvbmVudElkOkMoZSk/ImZ1bmN0aW9uIiE9dHlwZW9mIGV8fGUucHJvdG90eXBlJiZlLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50fHwhdD9lOmooZSh0KSx0LG4scik6ZSBpbnN0YW5jZW9mIHllP24/KGUuaW5qZWN0KG4sciksZS5nZXROYW1lKHIpKTplOmMoZSk/ZnVuY3Rpb24gZSh0LG4pe3ZhciByLG8sYSxpPVtdO2ZvcihhIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShhKSYmIUVlKHRbYV0pJiYoQXJyYXkuaXNBcnJheSh0W2FdKSYmdFthXS5pc0Nzc3x8Qyh0W2FdKT9pLnB1c2goQ2UoYSkrIjoiLHRbYV0sIjsiKTpjKHRbYV0pP2kucHVzaC5hcHBseShpLGUodFthXSxhKSk6aS5wdXNoKENlKGEpKyI6ICIrKHI9YSxudWxsPT0obz10W2FdKXx8ImJvb2xlYW4iPT10eXBlb2Ygb3x8IiI9PT1vPyIiOiJudW1iZXIiIT10eXBlb2Ygb3x8MD09PW98fHIgaW4gRC5hfHxyLnN0YXJ0c1dpdGgoIi0tIik/U3RyaW5nKG8pLnRyaW0oKTpvKyJweCIpKyI7IikpO3JldHVybiBuP1tuKyIgeyJdLmNvbmNhdChpLFsifSJdKTppfShlKTplLnRvU3RyaW5nKCl9dmFyIE9lPWZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiYoZS5pc0Nzcz0hMCksZX07ZnVuY3Rpb24gQShlKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheSgxPHQ/dC0xOjApLHI9MTtyPHQ7cisrKW5bci0xXT1hcmd1bWVudHNbcl07cmV0dXJuIEMoZSl8fGMoZSk/T2UoaihGKHAsW2VdLmNvbmNhdChuKSkpKTowPT09bi5sZW5ndGgmJjE9PT1lLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBlWzBdP2U6T2UoaihGKGUsbikpKX1uZXcgU2V0O3ZhciBqZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPVMpLGUudGhlbWUhPT1uLnRoZW1lJiZlLnRoZW1lfHx0fHxuLnRoZW1lfSxBZT0vWyEiIyQlJicoKSorLC4vOjs8PT4/QFtcXFxdXmB7fH1+LV0rL2csUGU9LyheLXwtJCkvZztmdW5jdGlvbiBQKGUpe3JldHVybiBlLnJlcGxhY2UoQWUsIi0iKS5yZXBsYWNlKFBlLCIiKX12YXIgST1mdW5jdGlvbihlKXtyZXR1cm4gYihsZShlKT4+PjApfTtmdW5jdGlvbiBfKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmITB9dmFyIHo9ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV8fCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiFBcnJheS5pc0FycmF5KGUpfSxJZT1mdW5jdGlvbihlKXtyZXR1cm4iX19wcm90b19fIiE9PWUmJiJjb25zdHJ1Y3RvciIhPT1lJiYicHJvdG90eXBlIiE9PWV9O2Z1bmN0aW9uIF9lKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KDE8dD90LTE6MCkscj0xO3I8dDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtmb3IodmFyIG8sYSxpLGw9MCxjPW47bDxjLmxlbmd0aDtsKyspe3ZhciB1PWNbbF07aWYoeih1KSlmb3IodmFyIHMgaW4gdSlJZShzKSYmKG89ZSxhPXVbc10scz1zLGk9dm9pZCAwLGk9b1tzXSx6KGEpJiZ6KGkpP19lKGksYSk6b1tzXT1hKX1yZXR1cm4gZX12YXIgVD1kLmEuY3JlYXRlQ29udGV4dCgpO1QuQ29uc3VtZXI7ZnVuY3Rpb24gemUobil7dmFyIHI9T2JqZWN0KHgudXNlQ29udGV4dCkoVCksZT1PYmplY3QoeC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBlPW4udGhlbWUsdD1yLGU/QyhlKT9lKHQpOkFycmF5LmlzQXJyYXkoZSl8fCJvYmplY3QiIT10eXBlb2YgZT9oKDgpOnQ/ayh7fSx0LHt9LGUpOmU6aCgxNCk7dmFyIGUsdH0sW24udGhlbWUscl0pO3JldHVybiBuLmNoaWxkcmVuP2QuYS5jcmVhdGVFbGVtZW50KFQuUHJvdmlkZXIse3ZhbHVlOmV9LG4uY2hpbGRyZW4pOm51bGx9dmFyIEw9e307ZnVuY3Rpb24gVGUocixvLGEpe3ZhciB0PW0ociksZT0hXyhyKSxuPW8uYXR0cnMsbj12b2lkIDA9PT1uP3A6bixpPW8uY29tcG9uZW50SWQsaT12b2lkIDA9PT1pP2Z1bmN0aW9uKGUsdCl7ZT0ic3RyaW5nIiE9dHlwZW9mIGU/InNjIjpQKGUpLExbZV09KExbZV18fDApKzEsZT1lKyItIitJKCI1LjMuMTEiK2UrTFtlXSk7cmV0dXJuIHQ/dCsiLSIrZTplfShvLmRpc3BsYXlOYW1lLG8ucGFyZW50Q29tcG9uZW50SWQpOmksbD1vLmRpc3BsYXlOYW1lLGw9dm9pZCAwPT09bD9fKHIpPyJzdHlsZWQuIityOiJTdHlsZWQoIitIKHIpKyIpIjpsLGk9by5kaXNwbGF5TmFtZSYmby5jb21wb25lbnRJZD9QKG8uZGlzcGxheU5hbWUpKyItIitvLmNvbXBvbmVudElkOm8uY29tcG9uZW50SWR8fGksYz10JiZyLmF0dHJzP0FycmF5LnByb3RvdHlwZS5jb25jYXQoci5hdHRycyxuKS5maWx0ZXIoQm9vbGVhbik6bix1PW8uc2hvdWxkRm9yd2FyZFByb3A7dCYmci5zaG91bGRGb3J3YXJkUHJvcCYmKHU9by5zaG91bGRGb3J3YXJkUHJvcD9mdW5jdGlvbihlLHQsbil7cmV0dXJuIHIuc2hvdWxkRm9yd2FyZFByb3AoZSx0LG4pJiZvLnNob3VsZEZvcndhcmRQcm9wKGUsdCxuKX06ci5zaG91bGRGb3J3YXJkUHJvcCk7ZnVuY3Rpb24gcyhlLHQpe3ZhciBuLHIsYSxpLG8sbD13LGM9KG09dikuYXR0cnMsdT1tLmNvbXBvbmVudFN0eWxlLHM9bS5kZWZhdWx0UHJvcHMsZj1tLmZvbGRlZENvbXBvbmVudElkcyxkPW0uc2hvdWxkRm9yd2FyZFByb3AscD1tLnN0eWxlZENvbXBvbmVudElkLG09bS50YXJnZXQsYz0ocz1qZShlLE9iamVjdCh4LnVzZUNvbnRleHQpKFQpLHMpfHxTLGM9YyxhPWsoe30sZSx7dGhlbWU6cz12b2lkIDA9PT1zP1M6c30pLGk9e30sYy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG4scixvPWU7Zm9yKHQgaW4gbz1DKG8pP28oYSk6bylhW3RdPWlbdF09ImNsYXNzTmFtZSI9PT10PyhuPWlbdF0scj1vW3RdLG4mJnI/bisiICIrcjpufHxyKTpvW3RdfSksKHM9W2EsaV0pWzFdKSxsPSh1PXUsbD1sLHM9c1swXSxuPU8oKSxyPWdlKCksbD91LmdlbmVyYXRlQW5kSW5qZWN0U3R5bGVzKFMsbixyKTp1LmdlbmVyYXRlQW5kSW5qZWN0U3R5bGVzKHMsbixyKSksdT10LGg9Yy4kYXN8fGUuJGFzfHxjLmFzfHxlLmFzfHxtLGc9XyhoKSxiPWMhPT1lP2soe30sZSx7fSxjKTplLHk9e307Zm9yKG8gaW4gYikiJCIhPT1vWzBdJiYiYXMiIT09byYmKCJmb3J3YXJkZWRBcyI9PT1vP3kuYXM9YltvXTooZD9kKG8sVS5hLGgpOiFnfHxPYmplY3QoVS5hKShvKSkmJih5W29dPWJbb10pKTtyZXR1cm4gZS5zdHlsZSYmYy5zdHlsZSE9PWUuc3R5bGUmJih5LnN0eWxlPWsoe30sZS5zdHlsZSx7fSxjLnN0eWxlKSkseS5jbGFzc05hbWU9QXJyYXkucHJvdG90eXBlLmNvbmNhdChmLHAsbCE9PXA/bDpudWxsLGUuY2xhc3NOYW1lLGMuY2xhc3NOYW1lKS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpLHkucmVmPXUsT2JqZWN0KHguY3JlYXRlRWxlbWVudCkoaCx5KX12YXIgdixmPW5ldyBzZShhLGksdD9yLmNvbXBvbmVudFN0eWxlOnZvaWQgMCksdz1mLmlzU3RhdGljJiYwPT09bi5sZW5ndGg7cmV0dXJuIHMuZGlzcGxheU5hbWU9bCwodj1kLmEuZm9yd2FyZFJlZihzKSkuYXR0cnM9Yyx2LmNvbXBvbmVudFN0eWxlPWYsdi5kaXNwbGF5TmFtZT1sLHYuc2hvdWxkRm9yd2FyZFByb3A9dSx2LmZvbGRlZENvbXBvbmVudElkcz10P0FycmF5LnByb3RvdHlwZS5jb25jYXQoci5mb2xkZWRDb21wb25lbnRJZHMsci5zdHlsZWRDb21wb25lbnRJZCk6cCx2LnN0eWxlZENvbXBvbmVudElkPWksdi50YXJnZXQ9dD9yLnRhcmdldDpyLHYud2l0aENvbXBvbmVudD1mdW5jdGlvbihlKXt2YXIgdD1vLmNvbXBvbmVudElkLG49ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O2Zvcih2YXIgbixyPXt9LG89T2JqZWN0LmtleXMoZSksYT0wO2E8by5sZW5ndGg7YSsrKW49b1thXSwwPD10LmluZGV4T2Yobil8fChyW25dPWVbbl0pO3JldHVybiByfShvLFsiY29tcG9uZW50SWQiXSksdD10JiZ0KyItIisoXyhlKT9lOlAoSChlKSkpO3JldHVybiBUZShlLGsoe30sbix7YXR0cnM6Yyxjb21wb25lbnRJZDp0fSksYSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2LCJkZWZhdWx0UHJvcHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm9sZGVkRGVmYXVsdFByb3BzfSxzZXQ6ZnVuY3Rpb24oZSl7dGhpcy5fZm9sZGVkRGVmYXVsdFByb3BzPXQ/X2Uoe30sci5kZWZhdWx0UHJvcHMsZSk6ZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodiwidG9TdHJpbmciLHt2YWx1ZTpmdW5jdGlvbigpe3JldHVybiIuIit2LnN0eWxlZENvbXBvbmVudElkfX0pLGUmJkIoKSh2LHIse2F0dHJzOiEwLGNvbXBvbmVudFN0eWxlOiEwLGRpc3BsYXlOYW1lOiEwLGZvbGRlZENvbXBvbmVudElkczohMCxzaG91bGRGb3J3YXJkUHJvcDohMCxzdHlsZWRDb21wb25lbnRJZDohMCx0YXJnZXQ6ITAsd2l0aENvbXBvbmVudDohMH0pLHZ9ZnVuY3Rpb24gTShlKXtyZXR1cm4gZnVuY3Rpb24gdChuLHIsbyl7dmFyIGU7cmV0dXJuIHZvaWQgMD09PW8mJihvPVMpLE9iamVjdChhLmlzVmFsaWRFbGVtZW50VHlwZSkocik/KChlPWZ1bmN0aW9uKCl7cmV0dXJuIG4ocixvLEEuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfSkud2l0aENvbmZpZz1mdW5jdGlvbihlKXtyZXR1cm4gdChuLHIsayh7fSxvLHt9LGUpKX0sZS5hdHRycz1mdW5jdGlvbihlKXtyZXR1cm4gdChuLHIsayh7fSxvLHthdHRyczpBcnJheS5wcm90b3R5cGUuY29uY2F0KG8uYXR0cnMsZSkuZmlsdGVyKEJvb2xlYW4pfSkpfSxlKTpoKDEsU3RyaW5nKHIpKX0oVGUsZSl9WyJhIiwiYWJiciIsImFkZHJlc3MiLCJhcmVhIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmFzZSIsImJkaSIsImJkbyIsImJpZyIsImJsb2NrcXVvdGUiLCJib2R5IiwiYnIiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY2l0ZSIsImNvZGUiLCJjb2wiLCJjb2xncm91cCIsImRhdGEiLCJkYXRhbGlzdCIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRmbiIsImRpYWxvZyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImVtYmVkIiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJoZ3JvdXAiLCJociIsImh0bWwiLCJpIiwiaWZyYW1lIiwiaW1nIiwiaW5wdXQiLCJpbnMiLCJrYmQiLCJrZXlnZW4iLCJsYWJlbCIsImxlZ2VuZCIsImxpIiwibGluayIsIm1haW4iLCJtYXAiLCJtYXJrIiwibWFycXVlZSIsIm1lbnUiLCJtZW51aXRlbSIsIm1ldGEiLCJtZXRlciIsIm5hdiIsIm5vc2NyaXB0Iiwib2JqZWN0Iiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsIm91dHB1dCIsInAiLCJwYXJhbSIsInBpY3R1cmUiLCJwcmUiLCJwcm9ncmVzcyIsInEiLCJycCIsInJ0IiwicnVieSIsInMiLCJzYW1wIiwic2NyaXB0Iiwic2VjdGlvbiIsInNlbGVjdCIsInNtYWxsIiwic291cmNlIiwic3BhbiIsInN0cm9uZyIsInN0eWxlIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRleHRhcmVhIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGltZSIsInRpdGxlIiwidHIiLCJ0cmFjayIsInUiLCJ1bCIsInZhciIsInZpZGVvIiwid2JyIiwiY2lyY2xlIiwiY2xpcFBhdGgiLCJkZWZzIiwiZWxsaXBzZSIsImZvcmVpZ25PYmplY3QiLCJnIiwiaW1hZ2UiLCJsaW5lIiwibGluZWFyR3JhZGllbnQiLCJtYXJrZXIiLCJtYXNrIiwicGF0aCIsInBhdHRlcm4iLCJwb2x5Z29uIiwicG9seWxpbmUiLCJyYWRpYWxHcmFkaWVudCIsInJlY3QiLCJzdG9wIiwic3ZnIiwidGV4dCIsInRleHRQYXRoIiwidHNwYW4iXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe01bZV09TShlKX0pLCh0PU1lLnByb3RvdHlwZSkuY3JlYXRlU3R5bGVzPWZ1bmN0aW9uKGUsdCxuLHIpe3Q9cihqKHRoaXMucnVsZXMsdCxuLHIpLmpvaW4oIiIpLCIiKSxyPXRoaXMuY29tcG9uZW50SWQrZTtuLmluc2VydFJ1bGVzKHIscix0KX0sdC5yZW1vdmVTdHlsZXM9ZnVuY3Rpb24oZSx0KXt0LmNsZWFyUnVsZXModGhpcy5jb21wb25lbnRJZCtlKX0sdC5yZW5kZXJTdHlsZXM9ZnVuY3Rpb24oZSx0LG4scil7MjxlJiZsLnJlZ2lzdGVySWQodGhpcy5jb21wb25lbnRJZCtlKSx0aGlzLnJlbW92ZVN0eWxlcyhlLG4pLHRoaXMuY3JlYXRlU3R5bGVzKGUsdCxuLHIpfTt2YXIgTGU9TWU7ZnVuY3Rpb24gTWUoZSx0KXt0aGlzLnJ1bGVzPWUsdGhpcy5jb21wb25lbnRJZD10LHRoaXMuaXNTdGF0aWM9Y2UoZSksbC5yZWdpc3RlcklkKHRoaXMuY29tcG9uZW50SWQrMSl9ZnVuY3Rpb24gUmUoZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoMTx0P3QtMTowKSxyPTE7cjx0O3IrKyluW3ItMV09YXJndW1lbnRzW3JdO3ZhciBlPUEuYXBwbHkodm9pZCAwLFtlXS5jb25jYXQobikpLGE9InNjLWdsb2JhbC0iK0koSlNPTi5zdHJpbmdpZnkoZSkpLGk9bmV3IExlKGUsYSk7ZnVuY3Rpb24gbChlKXt2YXIgdD1PKCksbj1nZSgpLHI9T2JqZWN0KHgudXNlQ29udGV4dCkoVCksbz1PYmplY3QoeC51c2VSZWYpKHQuYWxsb2NhdGVHU0luc3RhbmNlKGEpKS5jdXJyZW50O3JldHVybiB0LnNlcnZlciYmYyhvLGUsdCxyLG4pLE9iamVjdCh4LnVzZUxheW91dEVmZmVjdCkoZnVuY3Rpb24oKXtpZighdC5zZXJ2ZXIpcmV0dXJuIGMobyxlLHQscixuKSxmdW5jdGlvbigpe3JldHVybiBpLnJlbW92ZVN0eWxlcyhvLHQpfX0sW28sZSx0LHIsbl0pLG51bGx9ZnVuY3Rpb24gYyhlLHQsbixyLG8pe2kuaXNTdGF0aWM/aS5yZW5kZXJTdHlsZXMoZSxWLG4sbyk6KHQ9ayh7fSx0LHt0aGVtZTpqZSh0LHIsbC5kZWZhdWx0UHJvcHMpfSksaS5yZW5kZXJTdHlsZXMoZSx0LG4sbykpfXJldHVybiBkLmEubWVtbyhsKX1mdW5jdGlvbiBOZShlKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheSgxPHQ/dC0xOjApLHI9MTtyPHQ7cisrKW5bci0xXT1hcmd1bWVudHNbcl07dmFyIGU9QS5hcHBseSh2b2lkIDAsW2VdLmNvbmNhdChuKSkuam9pbigiIiksbz1JKGUpO3JldHVybiBuZXcgeWUobyxlKX0oZT1EZS5wcm90b3R5cGUpLmNvbGxlY3RTdHlsZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2VhbGVkP2goMik6ZC5hLmNyZWF0ZUVsZW1lbnQoYmUse3NoZWV0OnRoaXMuaW5zdGFuY2V9LGUpfSxlLmludGVybGVhdmVXaXRoTm9kZVN0cmVhbT1mdW5jdGlvbihlKXtyZXR1cm4gaCgzKX07ZnVuY3Rpb24gRGUoKXt2YXIgbj10aGlzO3RoaXMuX2VtaXRTaGVldENTUz1mdW5jdGlvbigpe3ZhciBlLHQ9bi5pbnN0YW5jZS50b1N0cmluZygpO3JldHVybiB0PyI8c3R5bGUgIitbKGU9aSgpKSYmJ25vbmNlPSInK2UrJyInLHUrJz0idHJ1ZSInLCdkYXRhLXN0eWxlZC12ZXJzaW9uPSI1LjMuMTEiJ10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKSsiPiIrdCsiPC9zdHlsZT4iOiIifSx0aGlzLmdldFN0eWxlVGFncz1mdW5jdGlvbigpe3JldHVybiBuLnNlYWxlZD9oKDIpOm4uX2VtaXRTaGVldENTUygpfSx0aGlzLmdldFN0eWxlRWxlbWVudD1mdW5jdGlvbigpe3ZhciBlLHQ7cmV0dXJuIG4uc2VhbGVkP2goMik6KChlPXt9KVt1XT0iIixlWyJkYXRhLXN0eWxlZC12ZXJzaW9uIl09IjUuMy4xMSIsZS5kYW5nZXJvdXNseVNldElubmVySFRNTD17X19odG1sOm4uaW5zdGFuY2UudG9TdHJpbmcoKX0sZT1lLCh0PWkoKSkmJihlLm5vbmNlPXQpLFtkLmEuY3JlYXRlRWxlbWVudCgic3R5bGUiLGsoe30sZSx7a2V5OiJzYy0wLTAifSkpXSl9LHRoaXMuc2VhbD1mdW5jdGlvbigpe24uc2VhbGVkPSEwfSx0aGlzLmluc3RhbmNlPW5ldyBsKHtpc1NlcnZlcjohMH0pLHRoaXMuc2VhbGVkPSExfVVlLmQ9TX0uY2FsbCh0aGlzLEJlKDkyKSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgbj1uKDYxKSxyPW4uYWxsO2UuZXhwb3J0cz1uLklTX0hUTUxEREE/ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV8fGU9PT1yfTpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX19LGZ1bmN0aW9uKG4sZSx0KXshZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXtyZXR1cm4gZSYmZS5NYXRoPT09TWF0aCYmZX1uLmV4cG9ydHM9dCgib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHx0KCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHx0KCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fHQoIm9iamVjdCI9PXR5cGVvZiBlJiZlKXx8dCgib2JqZWN0Ij09dHlwZW9mIHRoaXMmJnRoaXMpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfS5jYWxsKHRoaXMsdCgyMikpfSxmdW5jdGlvbihlLHQsbil7dmFyIG49bigyOCkscj1GdW5jdGlvbi5wcm90b3R5cGUsbz1yLmNhbGwscj1uJiZyLmJpbmQuYmluZChvLG8pO2UuZXhwb3J0cz1uP3I6ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG8uYXBwbHkoZSxhcmd1bWVudHMpfX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDMpLG89big2NiksYT1uKDExKSxpPW4oNjgpLGw9big2NCksbj1uKDYzKSxjPXIuU3ltYm9sLHU9bygid2tzIikscz1uP2MuZm9yfHxjOmMmJmMud2l0aG91dFNldHRlcnx8aTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGEodSxlKXx8KHVbZV09bCYmYShjLGUpP2NbZV06cygiU3ltYm9sLiIrZSkpLHVbZV19fSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4hIWUoKX1jYXRjaChlKXtyZXR1cm4hMH19fSxmdW5jdGlvbihlLHQsbil7dmFyIHU9bigzKSxzPW4oNDEpLmYsZj1uKDE4KSxkPW4oMTkpLHA9big0NSksbT1uKDczKSxoPW4oNzYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuLHIsbyxhPWUudGFyZ2V0LGk9ZS5nbG9iYWwsbD1lLnN0YXQsYz1pP3U6bD91W2FdfHxwKGEse30pOih1W2FdfHx7fSkucHJvdG90eXBlO2lmKGMpZm9yKG4gaW4gdCl7aWYocj10W25dLG89ZS5kb250Q2FsbEdldFNldD8obz1zKGMsbikpJiZvLnZhbHVlOmNbbl0sIWgoaT9uOmErKGw/Ii4iOiIjIikrbixlLmZvcmNlZCkmJnZvaWQgMCE9PW8pe2lmKHR5cGVvZiByPT10eXBlb2Ygbyljb250aW51ZTttKHIsbyl9KGUuc2hhbXx8byYmby5zaGFtKSYmZihyLCJzaGFtIiwhMCksZChjLG4scixlKX19fSxmdW5jdGlvbihlLHQsbil7dmFyIG49bigyOCkscj1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtlLmV4cG9ydHM9bj9yLmJpbmQocik6ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseShyLGFyZ3VtZW50cyl9fSxmdW5jdGlvbihlLHQsbil7bj1uKDYpO2UuZXhwb3J0cz0hbihmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDIpLG89bigzMyksYT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHIoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IGEobyhlKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big0KSxvPW4oNjcpLGE9cih7fS5oYXNPd25Qcm9wZXJ0eSk7ZS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGEobyhlKSx0KX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDEzKSxvPVN0cmluZyxhPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYocihlKSlyZXR1cm4gZTt0aHJvdyBuZXcgYShvKGUpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMiksbj1uKDYxKSxvPW4uYWxsO2UuZXhwb3J0cz1uLklTX0hUTUxEREE/ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlP251bGwhPT1lOnIoZSl8fGU9PT1vfTpmdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGU/bnVsbCE9PWU6cihlKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDMpLG89bigyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyPyhuPXJbZV0sbyhuKT9uOnZvaWQgMCk6cltlXSYmcltlXVt0XTt2YXIgbn19LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9ITF9LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKGUpe3ZhciBuLHI7dGhpcy5wcm9taXNlPW5ldyBlKGZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09bnx8dm9pZCAwIT09cil0aHJvdyBuZXcgYSgiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtuPWUscj10fSksdGhpcy5yZXNvbHZlPW8obiksdGhpcy5yZWplY3Q9byhyKX12YXIgbz1uKDEwKSxhPVR5cGVFcnJvcjtlLmV4cG9ydHMuZj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHIoZSl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big5KSxvPW4oNjkpLGE9big3MCksaT1uKDEyKSxsPW4oNjApLGM9VHlwZUVycm9yLHU9T2JqZWN0LmRlZmluZVByb3BlcnR5LHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixmPSJlbnVtZXJhYmxlIixkPSJjb25maWd1cmFibGUiLHA9IndyaXRhYmxlIjt0LmY9cj9hP2Z1bmN0aW9uKGUsdCxuKXt2YXIgcjtyZXR1cm4gaShlKSx0PWwodCksaShuKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmInByb3RvdHlwZSI9PT10JiYidmFsdWUiaW4gbiYmcCBpbiBuJiYhbltwXSYmKHI9cyhlLHQpKSYmcltwXSYmKGVbdF09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6KGQgaW4gbj9uOnIpW2RdLGVudW1lcmFibGU6KGYgaW4gbj9uOnIpW2ZdLHdyaXRhYmxlOiExfSksdShlLHQsbil9OnU6ZnVuY3Rpb24oZSx0LG4pe2lmKGkoZSksdD1sKHQpLGkobiksbyl0cnl7cmV0dXJuIHUoZSx0LG4pfWNhdGNoKGUpe31pZigiZ2V0ImluIG58fCJzZXQiaW4gbil0aHJvdyBuZXcgYygiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gbiYmKGVbdF09bi52YWx1ZSksZX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDkpLG89bigxNyksYT1uKDIzKTtlLmV4cG9ydHM9cj9mdW5jdGlvbihlLHQsbil7cmV0dXJuIG8uZihlLHQsYSgxLG4pKX06ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlW3RdPW4sZX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1uKDIpLGw9bigxNyksYz1uKDcxKSx1PW4oNDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixyKXt2YXIgbz0ocj1yfHx7fSkuZW51bWVyYWJsZSxhPXZvaWQgMCE9PXIubmFtZT9yLm5hbWU6dDtpZihpKG4pJiZjKG4sYSxyKSxyLmdsb2JhbClvP2VbdF09bjp1KHQsbik7ZWxzZXt0cnl7ci51bnNhZmU/ZVt0XSYmKG89ITApOmRlbGV0ZSBlW3RdfWNhdGNoKGUpe31vP2VbdF09bjpsLmYoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiFyLm5vbkNvbmZpZ3VyYWJsZSx3cml0YWJsZTohci5ub25Xcml0YWJsZX0pfXJldHVybiBlfX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1mdW5jdGlvbihlKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOmUoKX19Y2F0Y2goZSl7cmV0dXJue2Vycm9yOiEwLHZhbHVlOmV9fX19LGZ1bmN0aW9uKGUsdCxuKXtuPW4oMyk7ZS5leHBvcnRzPW4uUHJvbWlzZX0sZnVuY3Rpb24oZSx0KXt2YXIgbj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSgpO3RyeXtuPW58fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKGUpeyJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYobj13aW5kb3cpfWUuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6ISgxJmUpLGNvbmZpZ3VyYWJsZTohKDImZSksd3JpdGFibGU6ISg0JmUpLHZhbHVlOnR9fX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTA1KSxvPW4oNDIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihvKGUpKX19LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiBiKGUsdCl7dGhpcy5zdG9wcGVkPWUsdGhpcy5yZXN1bHQ9dH12YXIgeT1uKDUzKSx2PW4oOCksdz1uKDEyKSx4PW4oMzMpLGs9bigxMjYpLFM9big3NSksQz1uKDMxKSxFPW4oMTI3KSxPPW4oNzgpLGo9bigxMjgpLEE9VHlwZUVycm9yLFA9Yi5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKGUpe3JldHVybiBhJiZqKGEsIm5vcm1hbCIsZSksbmV3IGIoITAsZSl9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZD8odyhlKSxoP2coZVswXSxlWzFdLHIpOmcoZVswXSxlWzFdKSk6aD9nKGUscik6ZyhlKX12YXIgYSxpLGwsYyx1LHMsZj1uJiZuLnRoYXQsZD0hKCFufHwhbi5BU19FTlRSSUVTKSxwPSEoIW58fCFuLklTX1JFQ09SRCksbT0hKCFufHwhbi5JU19JVEVSQVRPUiksaD0hKCFufHwhbi5JTlRFUlJVUFRFRCksZz15KHQsZik7aWYocClhPWUuaXRlcmF0b3I7ZWxzZSBpZihtKWE9ZTtlbHNle2lmKCEobj1PKGUpKSl0aHJvdyBuZXcgQSh4KGUpKyIgaXMgbm90IGl0ZXJhYmxlIik7aWYoayhuKSl7Zm9yKGk9MCxsPVMoZSk7aTxsO2krKylpZigoYz1vKGVbaV0pKSYmQyhQLGMpKXJldHVybiBjO3JldHVybiBuZXcgYighMSl9YT1FKGUsbil9Zm9yKHU9KHA/ZTphKS5uZXh0OyEocz12KHUsYSkpLmRvbmU7KXt0cnl7Yz1vKHMudmFsdWUpfWNhdGNoKGUpe2ooYSwidGhyb3ciLGUpfWlmKCJvYmplY3QiPT10eXBlb2YgYyYmYyYmQyhQLGMpKXJldHVybiBjfXJldHVybiBuZXcgYighMSl9fSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPXt9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzKSxvPW4oMjEpLGE9bigyKSxpPW4oNzYpLGw9big0NiksYz1uKDUpLHU9bigxNDgpLHM9big4NyksZj1uKDE1KSxkPW4oNjUpLHA9byYmby5wcm90b3R5cGUsbT1jKCJzcGVjaWVzIiksaD0hMSxnPWEoci5Qcm9taXNlUmVqZWN0aW9uRXZlbnQpLG49aSgiUHJvbWlzZSIsZnVuY3Rpb24oKXt2YXIgZT1sKG8pLHQ9ZSE9PVN0cmluZyhvKTtpZighdCYmNjY9PT1kKXJldHVybiEwO2lmKGYmJighcC5jYXRjaHx8IXAuZmluYWxseSkpcmV0dXJuITA7aWYoIWR8fGQ8NTF8fCEvbmF0aXZlIGNvZGUvLnRlc3QoZSkpe3ZhciBlPW5ldyBvKGZ1bmN0aW9uKGUpe2UoMSl9KSxuPWZ1bmN0aW9uKGUpe2UoZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7fSl9O2lmKChlLmNvbnN0cnVjdG9yPXt9KVttXT1uLCEoaD1lLnRoZW4oZnVuY3Rpb24oKXt9KWluc3RhbmNlb2YgbikpcmV0dXJuITB9cmV0dXJuIXQmJih1fHxzKSYmIWd9KTtlLmV4cG9ydHM9e0NPTlNUUlVDVE9SOm4sUkVKRUNUSU9OX0VWRU5UOmcsU1VCQ0xBU1NJTkc6aH19LGZ1bmN0aW9uKGUsdCxuKXtuPW4oNik7ZS5leHBvcnRzPSFuKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZXx8ZS5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBuPW4oNCkscj1uKHt9LnRvU3RyaW5nKSxvPW4oIiIuc2xpY2UpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbyhyKGUpLDgsLTEpfX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZX19LGZ1bmN0aW9uKGUsdCxuKXtuPW4oNCk7ZS5leHBvcnRzPW4oe30uaXNQcm90b3R5cGVPZil9LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJlN0cmluZyhuYXZpZ2F0b3IudXNlckFnZW50KXx8IiJ9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gcihlKX1jYXRjaChlKXtyZXR1cm4iT2JqZWN0In19fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzKSxuPW4oMTMpLG89ci5kb2N1bWVudCxhPW4obykmJm4oby5jcmVhdGVFbGVtZW50KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGE/by5jcmVhdGVFbGVtZW50KGUpOnt9fX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByLG8sYSxpLGw9bigxMDgpLGM9bigzKSx1PW4oMTMpLHM9bigxOCksZj1uKDExKSxkPW4oNDQpLHA9big0Nyksbj1uKDQ4KSxtPSJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCIsaD1jLlR5cGVFcnJvcixjPWMuV2Vha01hcCxnPWx8fGQuc3RhdGU/KChhPWQuc3RhdGV8fChkLnN0YXRlPW5ldyBjKSkuZ2V0PWEuZ2V0LGEuaGFzPWEuaGFzLGEuc2V0PWEuc2V0LHI9ZnVuY3Rpb24oZSx0KXtpZihhLmhhcyhlKSl0aHJvdyBuZXcgaChtKTtyZXR1cm4gdC5mYWNhZGU9ZSxhLnNldChlLHQpLHR9LG89ZnVuY3Rpb24oZSl7cmV0dXJuIGEuZ2V0KGUpfHx7fX0sZnVuY3Rpb24oZSl7cmV0dXJuIGEuaGFzKGUpfSk6KG5baT1wKCJzdGF0ZSIpXT0hMCxyPWZ1bmN0aW9uKGUsdCl7aWYoZihlLGkpKXRocm93IG5ldyBoKG0pO3JldHVybiB0LmZhY2FkZT1lLHMoZSxpLHQpLHR9LG89ZnVuY3Rpb24oZSl7cmV0dXJuIGYoZSxpKT9lW2ldOnt9fSxmdW5jdGlvbihlKXtyZXR1cm4gZihlLGkpfSk7ZS5leHBvcnRzPXtzZXQ6cixnZXQ6byxoYXM6ZyxlbmZvcmNlOmZ1bmN0aW9uKGUpe3JldHVybiBnKGUpP28oZSk6cihlLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtpZih1KGUpJiYoZT1vKGUpKS50eXBlPT09dClyZXR1cm4gZTt0aHJvdyBuZXcgaCgiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3QrIiByZXF1aXJlZCIpfX19fSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcigpe31mdW5jdGlvbiBvKGUpe2Uud3JpdGUoaCgiIikpLGUuY2xvc2UoKTt2YXIgdD1lLnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIGU9bnVsbCx0fXZhciBhLGk9bigxMiksbD1uKDExOSksYz1uKDUwKSx1PW4oNDgpLHM9big3NyksZj1uKDM0KSxuPW4oNDcpLGQ9InByb3RvdHlwZSIscD0ic2NyaXB0IixtPW4oIklFX1BST1RPIiksaD1mdW5jdGlvbihlKXtyZXR1cm4iPCIrcCsiPiIrZSsiPC8iK3ArIj4ifSxnPWZ1bmN0aW9uKCl7dHJ5e2E9bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goZSl7fWc9InVuZGVmaW5lZCI9PXR5cGVvZiBkb2N1bWVudHx8ZG9jdW1lbnQuZG9tYWluJiZhP28oYSk6KGU9ZigiaWZyYW1lIiksdD0iamF2YSIrcCsiOiIsZS5zdHlsZS5kaXNwbGF5PSJub25lIixzLmFwcGVuZENoaWxkKGUpLGUuc3JjPVN0cmluZyh0KSwodD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKGgoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkYpO2Zvcih2YXIgZSx0LG49Yy5sZW5ndGg7bi0tOylkZWxldGUgZ1tkXVtjW25dXTtyZXR1cm4gZygpfTt1W21dPSEwLGUuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihlLHQpe3ZhciBuO3JldHVybiBudWxsIT09ZT8ocltkXT1pKGUpLG49bmV3IHIscltkXT1udWxsLG5bbV09ZSk6bj1nKCksdm9pZCAwPT09dD9uOmwuZihuLHQpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNTQpLG89bigyKSxhPW4oMjkpLGk9big1KSgidG9TdHJpbmdUYWciKSxsPU9iamVjdCxjPSJBcmd1bWVudHMiPT09YShmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO2UuZXhwb3J0cz1yP2E6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHZvaWQgMD09PWU/IlVuZGVmaW5lZCI6bnVsbD09PWU/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YodD1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZVt0XX1jYXRjaChlKXt9fShlPWwoZSksaSkpP3Q6Yz9hKGUpOiJPYmplY3QiPT09KHQ9YShlKSkmJm8oZS5jYWxsZWUpPyJBcmd1bWVudHMiOnR9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNykuZixvPW4oMTEpLGE9big1KSgidG9TdHJpbmdUYWciKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4peyhlPWUmJiFuP2UucHJvdG90eXBlOmUpJiYhbyhlLGEpJiZyKGUsYSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOnR9KX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDMpLG49bigyOSk7ZS5leHBvcnRzPSJwcm9jZXNzIj09PW4oci5wcm9jZXNzKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMjEpLG89bigxNTApLG49bigyNykuQ09OU1RSVUNUT1I7ZS5leHBvcnRzPW58fCFvKGZ1bmN0aW9uKGUpe3IuYWxsKGUpLnRoZW4odm9pZCAwLGZ1bmN0aW9uKCl7fSl9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oOSksbz1uKDgpLGE9bigxMDQpLGk9bigyMyksbD1uKDI0KSxjPW4oNjApLHU9bigxMSkscz1uKDY5KSxmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dC5mPXI/ZjpmdW5jdGlvbihlLHQpe2lmKGU9bChlKSx0PWModCkscyl0cnl7cmV0dXJuIGYoZSx0KX1jYXRjaChlKXt9aWYodShlLHQpKXJldHVybiBpKCFvKGEuZixlLHQpLGVbdF0pfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzApLG89VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihyKGUpKXRocm93IG5ldyBvKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK2UpO3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTApLG89bigzMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7ZT1lW3RdO3JldHVybiBvKGUpP3ZvaWQgMDpyKGUpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMyksbj1uKDQ1KSxvPSJfX2NvcmUtanNfc2hhcmVkX18iLHI9cltvXXx8bihvLHt9KTtlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMyksbz1PYmplY3QuZGVmaW5lUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsbil7dHJ5e28ocix0LHt2YWx1ZTpuLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKGUpe3JbdF09bn1yZXR1cm4gbn19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQpLG89bigyKSxuPW4oNDQpLGE9cihGdW5jdGlvbi50b1N0cmluZyk7byhuLmluc3BlY3RTb3VyY2UpfHwobi5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhKGUpfSksZS5leHBvcnRzPW4uaW5zcGVjdFNvdXJjZX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNjYpLG89big2OCksYT1yKCJrZXlzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBhW2VdfHwoYVtlXT1vKGUpKX19LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9e319LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDExMyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2U9K2U7cmV0dXJuIGUhPWV8fDA9PWU/MDpyKGUpfX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxMSksbz1uKDIpLGE9big2NyksaT1uKDQ3KSxuPW4oMTE2KSxsPWkoIklFX1BST1RPIiksYz1PYmplY3QsdT1jLnByb3RvdHlwZTtlLmV4cG9ydHM9bj9jLmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3ZhciB0LGU9YShlKTtyZXR1cm4gcihlLGwpP2VbbF06KHQ9ZS5jb25zdHJ1Y3RvcixvKHQpJiZlIGluc3RhbmNlb2YgdD90LnByb3RvdHlwZTplIGluc3RhbmNlb2YgYz91Om51bGwpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4oMTE3KSxhPW4oMTIpLGk9bigxMTgpO2UuZXhwb3J0cz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgbixyPSExLGU9e307dHJ5eyhuPW8oT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIiwic2V0IikpKGUsW10pLHI9ZSBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKGUpe31yZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gYShlKSxpKHQpLHI/bihlLHQpOmUuX19wcm90b19fPXQsZX19KCk6dm9pZCAwKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTI1KSxvPW4oMTApLGE9bigyOCksaT1yKHIuYmluZCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8oZSksdm9pZCAwPT09dD9lOmE/aShlLHQpOmZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj17fTtyW24oNSkoInRvU3RyaW5nVGFnIildPSJ6IixlLmV4cG9ydHM9IltvYmplY3Qgel0iPT09U3RyaW5nKHIpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzNyksbz1TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJTeW1ib2wiPT09cihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBvKGUpfX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKDE3NSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE3Niksbz17Y2hpbGRDb250ZXh0VHlwZXM6ITAsY29udGV4dFR5cGU6ITAsY29udGV4dFR5cGVzOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxnZXREZWZhdWx0UHJvcHM6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yOiEwLGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczohMCxtaXhpbnM6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LGY9e25hbWU6ITAsbGVuZ3RoOiEwLHByb3RvdHlwZTohMCxjYWxsZXI6ITAsY2FsbGVlOiEwLGFyZ3VtZW50czohMCxhcml0eTohMH0sYT17JCR0eXBlb2Y6ITAsY29tcGFyZTohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LGk9e307ZnVuY3Rpb24gZChlKXtyZXR1cm4gci5pc01lbW8oZSk/YTppW2UuJCR0eXBlb2ZdfHxvfWlbci5Gb3J3YXJkUmVmXT17JCR0eXBlb2Y6ITAscmVuZGVyOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITB9LGlbci5NZW1vXT1hO3ZhciBwPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGg9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxnPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsYj1PYmplY3QuZ2V0UHJvdG90eXBlT2YseT1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1mdW5jdGlvbiBlKHQsbixyKXtpZigic3RyaW5nIiE9dHlwZW9mIG4pe3kmJihvPWIobikpJiZvIT09eSYmZSh0LG8scik7Zm9yKHZhciBvLGE9bShuKSxpPShoJiYoYT1hLmNvbmNhdChoKG4pKSksZCh0KSksbD1kKG4pLGM9MDtjPGEubGVuZ3RoOysrYyl7dmFyIHU9YVtjXTtpZighKGZbdV18fHImJnJbdV18fGwmJmxbdV18fGkmJmlbdV0pKXt2YXIgcz1nKG4sdSk7dHJ5e3AodCx1LHMpfWNhdGNoKGUpe319fX1yZXR1cm4gdH19LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKHQpe3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1uW2VdJiYobltlXT10KGUpKSxuW2VdfX1uLmQodCwiYSIsZnVuY3Rpb24oKXtyZXR1cm4gYX0pO3ZhciBvPS9eKChjaGlsZHJlbnxkYW5nZXJvdXNseVNldElubmVySFRNTHxrZXl8cmVmfGF1dG9Gb2N1c3xkZWZhdWx0VmFsdWV8ZGVmYXVsdENoZWNrZWR8aW5uZXJIVE1MfHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ3xzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmd8dmFsdWVMaW5rfGFiYnJ8YWNjZXB0fGFjY2VwdENoYXJzZXR8YWNjZXNzS2V5fGFjdGlvbnxhbGxvd3xhbGxvd1VzZXJNZWRpYXxhbGxvd1BheW1lbnRSZXF1ZXN0fGFsbG93RnVsbFNjcmVlbnxhbGxvd1RyYW5zcGFyZW5jeXxhbHR8YXN5bmN8YXV0b0NvbXBsZXRlfGF1dG9QbGF5fGNhcHR1cmV8Y2VsbFBhZGRpbmd8Y2VsbFNwYWNpbmd8Y2hhbGxlbmdlfGNoYXJTZXR8Y2hlY2tlZHxjaXRlfGNsYXNzSUR8Y2xhc3NOYW1lfGNvbHN8Y29sU3Bhbnxjb250ZW50fGNvbnRlbnRFZGl0YWJsZXxjb250ZXh0TWVudXxjb250cm9sc3xjb250cm9sc0xpc3R8Y29vcmRzfGNyb3NzT3JpZ2lufGRhdGF8ZGF0ZVRpbWV8ZGVjb2Rpbmd8ZGVmYXVsdHxkZWZlcnxkaXJ8ZGlzYWJsZWR8ZGlzYWJsZVBpY3R1cmVJblBpY3R1cmV8ZG93bmxvYWR8ZHJhZ2dhYmxlfGVuY1R5cGV8ZW50ZXJLZXlIaW50fGZvcm18Zm9ybUFjdGlvbnxmb3JtRW5jVHlwZXxmb3JtTWV0aG9kfGZvcm1Ob1ZhbGlkYXRlfGZvcm1UYXJnZXR8ZnJhbWVCb3JkZXJ8aGVhZGVyc3xoZWlnaHR8aGlkZGVufGhpZ2h8aHJlZnxocmVmTGFuZ3xodG1sRm9yfGh0dHBFcXVpdnxpZHxpbnB1dE1vZGV8aW50ZWdyaXR5fGlzfGtleVBhcmFtc3xrZXlUeXBlfGtpbmR8bGFiZWx8bGFuZ3xsaXN0fGxvYWRpbmd8bG9vcHxsb3d8bWFyZ2luSGVpZ2h0fG1hcmdpbldpZHRofG1heHxtYXhMZW5ndGh8bWVkaWF8bWVkaWFHcm91cHxtZXRob2R8bWlufG1pbkxlbmd0aHxtdWx0aXBsZXxtdXRlZHxuYW1lfG5vbmNlfG5vVmFsaWRhdGV8b3BlbnxvcHRpbXVtfHBhdHRlcm58cGxhY2Vob2xkZXJ8cGxheXNJbmxpbmV8cG9zdGVyfHByZWxvYWR8cHJvZmlsZXxyYWRpb0dyb3VwfHJlYWRPbmx5fHJlZmVycmVyUG9saWN5fHJlbHxyZXF1aXJlZHxyZXZlcnNlZHxyb2xlfHJvd3N8cm93U3BhbnxzYW5kYm94fHNjb3BlfHNjb3BlZHxzY3JvbGxpbmd8c2VhbWxlc3N8c2VsZWN0ZWR8c2hhcGV8c2l6ZXxzaXplc3xzbG90fHNwYW58c3BlbGxDaGVja3xzcmN8c3JjRG9jfHNyY0xhbmd8c3JjU2V0fHN0YXJ0fHN0ZXB8c3R5bGV8c3VtbWFyeXx0YWJJbmRleHx0YXJnZXR8dGl0bGV8dHJhbnNsYXRlfHR5cGV8dXNlTWFwfHZhbHVlfHdpZHRofHdtb2RlfHdyYXB8YWJvdXR8ZGF0YXR5cGV8aW5saXN0fHByZWZpeHxwcm9wZXJ0eXxyZXNvdXJjZXx0eXBlb2Z8dm9jYWJ8YXV0b0NhcGl0YWxpemV8YXV0b0NvcnJlY3R8YXV0b1NhdmV8Y29sb3J8aW5jcmVtZW50YWx8ZmFsbGJhY2t8aW5lcnR8aXRlbVByb3B8aXRlbVNjb3BlfGl0ZW1UeXBlfGl0ZW1JRHxpdGVtUmVmfG9ufG9wdGlvbnxyZXN1bHRzfHNlY3VyaXR5fHVuc2VsZWN0YWJsZXxhY2NlbnRIZWlnaHR8YWNjdW11bGF0ZXxhZGRpdGl2ZXxhbGlnbm1lbnRCYXNlbGluZXxhbGxvd1Jlb3JkZXJ8YWxwaGFiZXRpY3xhbXBsaXR1ZGV8YXJhYmljRm9ybXxhc2NlbnR8YXR0cmlidXRlTmFtZXxhdHRyaWJ1dGVUeXBlfGF1dG9SZXZlcnNlfGF6aW11dGh8YmFzZUZyZXF1ZW5jeXxiYXNlbGluZVNoaWZ0fGJhc2VQcm9maWxlfGJib3h8YmVnaW58Ymlhc3xieXxjYWxjTW9kZXxjYXBIZWlnaHR8Y2xpcHxjbGlwUGF0aFVuaXRzfGNsaXBQYXRofGNsaXBSdWxlfGNvbG9ySW50ZXJwb2xhdGlvbnxjb2xvckludGVycG9sYXRpb25GaWx0ZXJzfGNvbG9yUHJvZmlsZXxjb2xvclJlbmRlcmluZ3xjb250ZW50U2NyaXB0VHlwZXxjb250ZW50U3R5bGVUeXBlfGN1cnNvcnxjeHxjeXxkfGRlY2VsZXJhdGV8ZGVzY2VudHxkaWZmdXNlQ29uc3RhbnR8ZGlyZWN0aW9ufGRpc3BsYXl8ZGl2aXNvcnxkb21pbmFudEJhc2VsaW5lfGR1cnxkeHxkeXxlZGdlTW9kZXxlbGV2YXRpb258ZW5hYmxlQmFja2dyb3VuZHxlbmR8ZXhwb25lbnR8ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZHxmaWxsfGZpbGxPcGFjaXR5fGZpbGxSdWxlfGZpbHRlcnxmaWx0ZXJSZXN8ZmlsdGVyVW5pdHN8Zmxvb2RDb2xvcnxmbG9vZE9wYWNpdHl8Zm9jdXNhYmxlfGZvbnRGYW1pbHl8Zm9udFNpemV8Zm9udFNpemVBZGp1c3R8Zm9udFN0cmV0Y2h8Zm9udFN0eWxlfGZvbnRWYXJpYW50fGZvbnRXZWlnaHR8Zm9ybWF0fGZyb218ZnJ8Znh8Znl8ZzF8ZzJ8Z2x5cGhOYW1lfGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsfGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbHxnbHlwaFJlZnxncmFkaWVudFRyYW5zZm9ybXxncmFkaWVudFVuaXRzfGhhbmdpbmd8aG9yaXpBZHZYfGhvcml6T3JpZ2luWHxpZGVvZ3JhcGhpY3xpbWFnZVJlbmRlcmluZ3xpbnxpbjJ8aW50ZXJjZXB0fGt8azF8azJ8azN8azR8a2VybmVsTWF0cml4fGtlcm5lbFVuaXRMZW5ndGh8a2VybmluZ3xrZXlQb2ludHN8a2V5U3BsaW5lc3xrZXlUaW1lc3xsZW5ndGhBZGp1c3R8bGV0dGVyU3BhY2luZ3xsaWdodGluZ0NvbG9yfGxpbWl0aW5nQ29uZUFuZ2xlfGxvY2FsfG1hcmtlckVuZHxtYXJrZXJNaWR8bWFya2VyU3RhcnR8bWFya2VySGVpZ2h0fG1hcmtlclVuaXRzfG1hcmtlcldpZHRofG1hc2t8bWFza0NvbnRlbnRVbml0c3xtYXNrVW5pdHN8bWF0aGVtYXRpY2FsfG1vZGV8bnVtT2N0YXZlc3xvZmZzZXR8b3BhY2l0eXxvcGVyYXRvcnxvcmRlcnxvcmllbnR8b3JpZW50YXRpb258b3JpZ2lufG92ZXJmbG93fG92ZXJsaW5lUG9zaXRpb258b3ZlcmxpbmVUaGlja25lc3N8cGFub3NlMXxwYWludE9yZGVyfHBhdGhMZW5ndGh8cGF0dGVybkNvbnRlbnRVbml0c3xwYXR0ZXJuVHJhbnNmb3JtfHBhdHRlcm5Vbml0c3xwb2ludGVyRXZlbnRzfHBvaW50c3xwb2ludHNBdFh8cG9pbnRzQXRZfHBvaW50c0F0WnxwcmVzZXJ2ZUFscGhhfHByZXNlcnZlQXNwZWN0UmF0aW98cHJpbWl0aXZlVW5pdHN8cnxyYWRpdXN8cmVmWHxyZWZZfHJlbmRlcmluZ0ludGVudHxyZXBlYXRDb3VudHxyZXBlYXREdXJ8cmVxdWlyZWRFeHRlbnNpb25zfHJlcXVpcmVkRmVhdHVyZXN8cmVzdGFydHxyZXN1bHR8cm90YXRlfHJ4fHJ5fHNjYWxlfHNlZWR8c2hhcGVSZW5kZXJpbmd8c2xvcGV8c3BhY2luZ3xzcGVjdWxhckNvbnN0YW50fHNwZWN1bGFyRXhwb25lbnR8c3BlZWR8c3ByZWFkTWV0aG9kfHN0YXJ0T2Zmc2V0fHN0ZERldmlhdGlvbnxzdGVtaHxzdGVtdnxzdGl0Y2hUaWxlc3xzdG9wQ29sb3J8c3RvcE9wYWNpdHl8c3RyaWtldGhyb3VnaFBvc2l0aW9ufHN0cmlrZXRocm91Z2hUaGlja25lc3N8c3RyaW5nfHN0cm9rZXxzdHJva2VEYXNoYXJyYXl8c3Ryb2tlRGFzaG9mZnNldHxzdHJva2VMaW5lY2FwfHN0cm9rZUxpbmVqb2lufHN0cm9rZU1pdGVybGltaXR8c3Ryb2tlT3BhY2l0eXxzdHJva2VXaWR0aHxzdXJmYWNlU2NhbGV8c3lzdGVtTGFuZ3VhZ2V8dGFibGVWYWx1ZXN8dGFyZ2V0WHx0YXJnZXRZfHRleHRBbmNob3J8dGV4dERlY29yYXRpb258dGV4dFJlbmRlcmluZ3x0ZXh0TGVuZ3RofHRvfHRyYW5zZm9ybXx1MXx1Mnx1bmRlcmxpbmVQb3NpdGlvbnx1bmRlcmxpbmVUaGlja25lc3N8dW5pY29kZXx1bmljb2RlQmlkaXx1bmljb2RlUmFuZ2V8dW5pdHNQZXJFbXx2QWxwaGFiZXRpY3x2SGFuZ2luZ3x2SWRlb2dyYXBoaWN8dk1hdGhlbWF0aWNhbHx2YWx1ZXN8dmVjdG9yRWZmZWN0fHZlcnNpb258dmVydEFkdll8dmVydE9yaWdpblh8dmVydE9yaWdpbll8dmlld0JveHx2aWV3VGFyZ2V0fHZpc2liaWxpdHl8d2lkdGhzfHdvcmRTcGFjaW5nfHdyaXRpbmdNb2RlfHh8eEhlaWdodHx4MXx4Mnx4Q2hhbm5lbFNlbGVjdG9yfHhsaW5rQWN0dWF0ZXx4bGlua0FyY3JvbGV8eGxpbmtIcmVmfHhsaW5rUm9sZXx4bGlua1Nob3d8eGxpbmtUaXRsZXx4bGlua1R5cGV8eG1sQmFzZXx4bWxuc3x4bWxuc1hsaW5rfHhtbExhbmd8eG1sU3BhY2V8eXx5MXx5Mnx5Q2hhbm5lbFNlbGVjdG9yfHp8em9vbUFuZFBhbnxmb3J8Y2xhc3N8YXV0b2ZvY3VzKXwoKFtEZF1bQWFdW1R0XVtBYV18W0FhXVtScl1bSWldW0FhXXx4KS0uKikpJC8sYT1yKGZ1bmN0aW9uKGUpe3JldHVybiBvLnRlc3QoZSl8fDExMT09PWUuY2hhckNvZGVBdCgwKSYmMTEwPT09ZS5jaGFyQ29kZUF0KDEpJiZlLmNoYXJDb2RlQXQoMik8OTF9KX0sZnVuY3Rpb24oZSx0LG4pe24oMTAzKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTA2KSxvPW4oNjIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtlPXIoZSwic3RyaW5nIik7cmV0dXJuIG8oZSk/ZTplKyIifX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPSJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmFsbDtlLmV4cG9ydHM9e2FsbDpyLElTX0hUTUxEREE6dm9pZCAwPT09ciYmdm9pZCAwIT09cn19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE0KSxvPW4oMiksYT1uKDMxKSxuPW4oNjMpLGk9T2JqZWN0O2UuZXhwb3J0cz1uP2Z1bmN0aW9uKGUpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgZX06ZnVuY3Rpb24oZSl7dmFyIHQ9cigiU3ltYm9sIik7cmV0dXJuIG8odCkmJmEodC5wcm90b3R5cGUsaShlKSl9fSxmdW5jdGlvbihlLHQsbil7bj1uKDY0KTtlLmV4cG9ydHM9biYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNjUpLG89big2KSxhPW4oMykuU3RyaW5nO2UuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFvKGZ1bmN0aW9uKCl7dmFyIGU9U3ltYm9sKCJzeW1ib2wgZGV0ZWN0aW9uIik7cmV0dXJuIWEoZSl8fCEoT2JqZWN0KGUpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJnImJnI8NDF9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByLG8sYT1uKDMpLG49bigzMiksaT1hLnByb2Nlc3MsYT1hLkRlbm8saT1pJiZpLnZlcnNpb25zfHxhJiZhLnZlcnNpb24sYT1pJiZpLnY4OyEobz1hPzA8KHI9YS5zcGxpdCgiLiIpKVswXSYmclswXTw0PzE6KyhyWzBdK3JbMV0pOm8pJiZuJiYoIShyPW4ubWF0Y2goL0VkZ2VcLyhcZCspLykpfHw3NDw9clsxXSkmJihyPW4ubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihvPStyWzFdKSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTUpLG89big0NCk7KGUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBvW2VdfHwob1tlXT12b2lkIDAhPT10P3Q6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4zNC4wIixtb2RlOnI/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDIzIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM0LjAvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDIpLG89T2JqZWN0O2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbyhyKGUpKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgbj1uKDQpLHI9MCxvPU1hdGgucmFuZG9tKCksYT1uKDEuLnRvU3RyaW5nKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT1lPyIiOmUpKyIpXyIrYSgrK3IrbywzNil9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big5KSxvPW4oNiksYT1uKDM0KTtlLmV4cG9ydHM9IXImJiFvKGZ1bmN0aW9uKCl7cmV0dXJuIDchPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoYSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDkpLG49big2KTtlLmV4cG9ydHM9ciYmbihmdW5jdGlvbigpe3JldHVybiA0MiE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpe30sInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQpLG89big2KSxhPW4oMiksaT1uKDExKSxsPW4oOSksYz1uKDcyKS5DT05GSUdVUkFCTEUsdT1uKDQ2KSxuPW4oMzUpLHM9bi5lbmZvcmNlLGY9bi5nZXQsZD1TdHJpbmcscD1PYmplY3QuZGVmaW5lUHJvcGVydHksbT1yKCIiLnNsaWNlKSxoPXIoIiIucmVwbGFjZSksZz1yKFtdLmpvaW4pLGI9bCYmIW8oZnVuY3Rpb24oKXtyZXR1cm4gOCE9PXAoZnVuY3Rpb24oKXt9LCJsZW5ndGgiLHt2YWx1ZTo4fSkubGVuZ3RofSkseT1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIiksbj1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4peyJTeW1ib2woIj09PW0oZCh0KSwwLDcpJiYodD0iWyIraChkKHQpLC9eU3ltYm9sXCgoW14pXSopXCkvLCIkMSIpKyJdIiksbiYmbi5nZXR0ZXImJih0PSJnZXQgIit0KSxuJiZuLnNldHRlciYmKHQ9InNldCAiK3QpLCghaShlLCJuYW1lIil8fGMmJmUubmFtZSE9PXQpJiYobD9wKGUsIm5hbWUiLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pOmUubmFtZT10KSxiJiZuJiZpKG4sImFyaXR5IikmJmUubGVuZ3RoIT09bi5hcml0eSYmcChlLCJsZW5ndGgiLHt2YWx1ZTpuLmFyaXR5fSk7dHJ5e24mJmkobiwiY29uc3RydWN0b3IiKSYmbi5jb25zdHJ1Y3Rvcj9sJiZwKGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSk6ZS5wcm90b3R5cGUmJihlLnByb3RvdHlwZT12b2lkIDApfWNhdGNoKGUpe31uPXMoZSk7cmV0dXJuIGkobiwic291cmNlIil8fChuLnNvdXJjZT1nKHksInN0cmluZyI9PXR5cGVvZiB0P3Q6IiIpKSxlfTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9bihmdW5jdGlvbigpe3JldHVybiBhKHRoaXMpJiZmKHRoaXMpLnNvdXJjZXx8dSh0aGlzKX0sInRvU3RyaW5nIil9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDkpLG49bigxMSksbz1GdW5jdGlvbi5wcm90b3R5cGUsYT1yJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLG49bihvLCJuYW1lIiksaT1uJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7fS5uYW1lLHI9biYmKCFyfHxhKG8sIm5hbWUiKS5jb25maWd1cmFibGUpO2UuZXhwb3J0cz17RVhJU1RTOm4sUFJPUEVSOmksQ09ORklHVVJBQkxFOnJ9fSxmdW5jdGlvbihlLHQsbil7dmFyIGM9bigxMSksdT1uKDEwOSkscz1uKDQxKSxmPW4oMTcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPXUodCksbz1mLmYsYT1zLmYsaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbD1yW2ldO2MoZSxsKXx8biYmYyhuLGwpfHxvKGUsbCxhKHQsbCkpfX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQpLGk9bigxMSksbD1uKDI0KSxjPW4oMTExKS5pbmRleE9mLHU9big0OCkscz1yKFtdLnB1c2gpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuLHI9bChlKSxvPTAsYT1bXTtmb3IobiBpbiByKSFpKHUsbikmJmkocixuKSYmcyhhLG4pO2Zvcig7dC5sZW5ndGg+bzspIWkocixuPXRbbysrXSl8fH5jKGEsbil8fHMoYSxuKTtyZXR1cm4gYX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDExNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKGUubGVuZ3RoKX19LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKGUsdCl7cmV0dXJuKGU9Y1tsKGUpXSk9PT1zfHxlIT09dSYmKGEodCk/byh0KTohIXQpfXZhciBvPW4oNiksYT1uKDIpLGk9LyN8XC5wcm90b3R5cGVcLi8sbD1yLm5vcm1hbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoaSwiLiIpLnRvTG93ZXJDYXNlKCl9LGM9ci5kYXRhPXt9LHU9ci5OQVRJVkU9Ik4iLHM9ci5QT0xZRklMTD0iUCI7ZS5leHBvcnRzPXJ9LGZ1bmN0aW9uKGUsdCxuKXtuPW4oMTQpO2UuZXhwb3J0cz1uKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzNyksbz1uKDQzKSxhPW4oMzApLGk9bigyNiksbD1uKDUpKCJpdGVyYXRvciIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZighYShlKSlyZXR1cm4gbyhlLGwpfHxvKGUsIkBAaXRlcmF0b3IiKXx8aVtyKGUpXX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDI0KSxvPW4oMTMwKSxhPW4oMjYpLGk9bigzNSksbD1uKDE3KS5mLGM9big4MCksdT1uKDgyKSxzPW4oMTUpLG49big5KSxmPSJBcnJheSBJdGVyYXRvciIsZD1pLnNldCxwPWkuZ2V0dGVyRm9yKGYpLGk9KGUuZXhwb3J0cz1jKEFycmF5LCJBcnJheSIsZnVuY3Rpb24oZSx0KXtkKHRoaXMse3R5cGU6Zix0YXJnZXQ6cihlKSxpbmRleDowLGtpbmQ6dH0pfSxmdW5jdGlvbigpe3ZhciBlPXAodGhpcyksdD1lLnRhcmdldCxuPWUuaW5kZXgrKztpZighdHx8bj49dC5sZW5ndGgpcmV0dXJuIGUudGFyZ2V0PXZvaWQgMCx1KHZvaWQgMCwhMCk7c3dpdGNoKGUua2luZCl7Y2FzZSJrZXlzIjpyZXR1cm4gdShuLCExKTtjYXNlInZhbHVlcyI6cmV0dXJuIHUodFtuXSwhMSl9cmV0dXJuIHUoW24sdFtuXV0sITEpfSwidmFsdWVzIiksYS5Bcmd1bWVudHM9YS5BcnJheSk7aWYobygia2V5cyIpLG8oInZhbHVlcyIpLG8oImVudHJpZXMiKSwhcyYmbiYmInZhbHVlcyIhPT1pLm5hbWUpdHJ5e2woaSwibmFtZSIse3ZhbHVlOiJ2YWx1ZXMifSl9Y2F0Y2goZSl7fX0sZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIGgoKXtyZXR1cm4gdGhpc312YXIgZz1uKDcpLGI9big4KSx5PW4oMTUpLHI9big3Miksdj1uKDIpLHc9bigxMzEpLHg9big1MSksaz1uKDUyKSxTPW4oMzgpLEM9bigxOCksRT1uKDE5KSxvPW4oNSksTz1uKDI2KSxuPW4oODEpLGo9ci5QUk9QRVIsQT1yLkNPTkZJR1VSQUJMRSxQPW4uSXRlcmF0b3JQcm90b3R5cGUsST1uLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsXz1vKCJpdGVyYXRvciIpLHo9InZhbHVlcyIsVD0iZW50cmllcyI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHIsbyxhLGkpe3cobix0LHIpO2Z1bmN0aW9uIGwoZSl7aWYoZT09PW8mJnApcmV0dXJuIHA7aWYoIUkmJmUmJmUgaW4gZilyZXR1cm4gZltlXTtzd2l0Y2goZSl7Y2FzZSJrZXlzIjpjYXNlIHo6Y2FzZSBUOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzLGUpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyl9fXZhciBjLHUscj10KyIgSXRlcmF0b3IiLHM9ITEsZj1lLnByb3RvdHlwZSxkPWZbX118fGZbIkBAaXRlcmF0b3IiXXx8byYmZltvXSxwPSFJJiZkfHxsKG8pLG09IkFycmF5Ij09PXQmJmYuZW50cmllc3x8ZDtpZihtJiYobT14KG0uY2FsbChuZXcgZSkpKSE9PU9iamVjdC5wcm90b3R5cGUmJm0ubmV4dCYmKHl8fHgobSk9PT1QfHwoaz9rKG0sUCk6dihtW19dKXx8RShtLF8saCkpLFMobSxyLCEwLCEwKSx5KSYmKE9bcl09aCksaiYmbz09PXomJmQmJmQubmFtZSE9PXomJigheSYmQT9DKGYsIm5hbWUiLHopOihzPSEwLHA9ZnVuY3Rpb24oKXtyZXR1cm4gYihkLHRoaXMpfSkpLG8paWYoYz17dmFsdWVzOmwoeiksa2V5czphP3A6bCgia2V5cyIpLGVudHJpZXM6bChUKX0saSlmb3IodSBpbiBjKSFJJiYhcyYmdSBpbiBmfHxFKGYsdSxjW3VdKTtlbHNlIGcoe3RhcmdldDp0LHByb3RvOiEwLGZvcmNlZDpJfHxzfSxjKTtyZXR1cm4geSYmIWl8fGZbX109PT1wfHxFKGYsXyxwLHtuYW1lOm99KSxPW3RdPXAsY319LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGE9big2KSxpPW4oMiksbD1uKDEzKSxjPW4oMzYpLHU9big1MSkscz1uKDE5KSxmPW4oNSksbj1uKDE1KSxkPWYoIml0ZXJhdG9yIiksZj0hMTtbXS5rZXlzJiYoIm5leHQiaW4obz1bXS5rZXlzKCkpPyh1PXUodShvKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmKHI9dSk6Zj0hMCksIWwocil8fGEoZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gcltkXS5jYWxsKGUpIT09ZX0pP3I9e306biYmKHI9YyhyKSksaShyW2RdKXx8cyhyLGQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGUuZXhwb3J0cz17SXRlcmF0b3JQcm90b3R5cGU6cixCVUdHWV9TQUZBUklfSVRFUkFUT1JTOmZ9fSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue3ZhbHVlOmUsZG9uZTp0fX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDEyKSxvPW4oMTM5KSxhPW4oMzApLGk9big1KSgic3BlY2llcyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBlPXIoZSkuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PWV8fGEoZT1yKGUpW2ldKT90Om8oZSl9fSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZnVuY3Rpb24oKXtQKGUpfX1mdW5jdGlvbiBvKGUpe1AoZS5kYXRhKX1mdW5jdGlvbiBhKGUpe2MucG9zdE1lc3NhZ2UoRShlKSxpLnByb3RvY29sKyIvLyIraS5ob3N0KX12YXIgaSxsLGM9bigzKSx1PW4oMTQxKSxzPW4oNTMpLGY9bigyKSxkPW4oMTEpLHA9big2KSxtPW4oNzcpLGg9bigxNDIpLGc9bigzNCksYj1uKDE0MykseT1uKDg1KSxuPW4oMzkpLHY9Yy5zZXRJbW1lZGlhdGUsdz1jLmNsZWFySW1tZWRpYXRlLHg9Yy5wcm9jZXNzLGs9Yy5EaXNwYXRjaCxTPWMuRnVuY3Rpb24sQz1jLk1lc3NhZ2VDaGFubmVsLEU9Yy5TdHJpbmcsTz0wLGo9e30sQT0ib25yZWFkeXN0YXRlY2hhbmdlIixQPShwKGZ1bmN0aW9uKCl7aT1jLmxvY2F0aW9ufSksZnVuY3Rpb24oZSl7dmFyIHQ7ZChqLGUpJiYodD1qW2VdLGRlbGV0ZSBqW2VdLHQoKSl9KTt2JiZ3fHwodj1mdW5jdGlvbihlKXtiKGFyZ3VtZW50cy5sZW5ndGgsMSk7dmFyIHQ9ZihlKT9lOlMoZSksbj1oKGFyZ3VtZW50cywxKTtyZXR1cm4galsrK09dPWZ1bmN0aW9uKCl7dSh0LHZvaWQgMCxuKX0sbChPKSxPfSx3PWZ1bmN0aW9uKGUpe2RlbGV0ZSBqW2VdfSxuP2w9ZnVuY3Rpb24oZSl7eC5uZXh0VGljayhyKGUpKX06ayYmay5ub3c/bD1mdW5jdGlvbihlKXtrLm5vdyhyKGUpKX06QyYmIXk/KHk9KG49bmV3IEMpLnBvcnQyLG4ucG9ydDEub25tZXNzYWdlPW8sbD1zKHkucG9zdE1lc3NhZ2UseSkpOmMuYWRkRXZlbnRMaXN0ZW5lciYmZihjLnBvc3RNZXNzYWdlKSYmIWMuaW1wb3J0U2NyaXB0cyYmaSYmImZpbGU6IiE9PWkucHJvdG9jb2wmJiFwKGEpPyhsPWEsYy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixvLCExKSk6bD1BIGluIGcoInNjcmlwdCIpP2Z1bmN0aW9uKGUpe20uYXBwZW5kQ2hpbGQoZygic2NyaXB0IikpW0FdPWZ1bmN0aW9uKCl7bS5yZW1vdmVDaGlsZCh0aGlzKSxQKGUpfX06ZnVuY3Rpb24oZSl7c2V0VGltZW91dChyKGUpLDApfSksZS5leHBvcnRzPXtzZXQ6dixjbGVhcjp3fX0sZnVuY3Rpb24oZSx0LG4pe249bigzMik7ZS5leHBvcnRzPS8oPzppcGFkfGlwaG9uZXxpcG9kKS4qYXBwbGV3ZWJraXQvaS50ZXN0KG4pfSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcigpe3RoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsfXIucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24oZSl7dmFyIGU9e2l0ZW06ZSxuZXh0Om51bGx9LHQ9dGhpcy50YWlsO3Q/dC5uZXh0PWU6dGhpcy5oZWFkPWUsdGhpcy50YWlsPWV9LGdldDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaGVhZDtpZihlKXJldHVybiBudWxsPT09KHRoaXMuaGVhZD1lLm5leHQpJiYodGhpcy50YWlsPW51bGwpLGUuaXRlbX19LGUuZXhwb3J0cz1yfSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPSJvYmplY3QiPT10eXBlb2YgRGVubyYmRGVubyYmIm9iamVjdCI9PXR5cGVvZiBEZW5vLnZlcnNpb259LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDEyKSxvPW4oMTMpLGE9bigxNik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIoZSksbyh0KSYmdC5jb25zdHJ1Y3Rvcj09PWU/dDooKDAsKGU9YS5mKGUpKS5yZXNvbHZlKSh0KSxlLnByb21pc2UpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNyksdT1uKDgpLHM9bigxMCksbz1uKDE2KSxhPW4oMjApLGY9bigyNSk7cih7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDpuKDQwKX0se2FsbFNldHRsZWQ6ZnVuY3Rpb24oZSl7dmFyIGw9dGhpcyx0PW8uZihsKSxjPXQucmVzb2x2ZSxuPXQucmVqZWN0LHI9YShmdW5jdGlvbigpe3ZhciByPXMobC5yZXNvbHZlKSxvPVtdLGE9MCxpPTE7ZihlLGZ1bmN0aW9uKGUpe3ZhciB0PWErKyxuPSExO2krKyx1KHIsbCxlKS50aGVuKGZ1bmN0aW9uKGUpe258fChuPSEwLG9bdF09e3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTplfSwtLWkpfHxjKG8pfSxmdW5jdGlvbihlKXtufHwobj0hMCxvW3RdPXtzdGF0dXM6InJlamVjdGVkIixyZWFzb246ZX0sLS1pKXx8YyhvKX0pfSksLS1pfHxjKG8pfSk7cmV0dXJuIHIuZXJyb3ImJm4oci52YWx1ZSksdC5wcm9taXNlfX0pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big3KSxkPW4oOCkscD1uKDEwKSxvPW4oMTQpLGE9bigxNiksaT1uKDIwKSxtPW4oMjUpLG49big0MCksaD0iTm8gb25lIHByb21pc2UgcmVzb2x2ZWQiO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6bn0se2FueTpmdW5jdGlvbihlKXt2YXIgYz10aGlzLHU9bygiQWdncmVnYXRlRXJyb3IiKSx0PWEuZihjKSxzPXQucmVzb2x2ZSxmPXQucmVqZWN0LG49aShmdW5jdGlvbigpe3ZhciByPXAoYy5yZXNvbHZlKSxvPVtdLGE9MCxpPTEsbD0hMTttKGUsZnVuY3Rpb24oZSl7dmFyIHQ9YSsrLG49ITE7aSsrLGQocixjLGUpLnRoZW4oZnVuY3Rpb24oZSl7bnx8bHx8KGw9ITAscyhlKSl9LGZ1bmN0aW9uKGUpe258fGx8fChuPSEwLG9bdF09ZSwtLWkpfHxmKG5ldyB1KG8saCkpfSl9KSwtLWl8fGYobmV3IHUobyxoKSl9KTtyZXR1cm4gbi5lcnJvciYmZihuLnZhbHVlKSx0LnByb21pc2V9fSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDcpLG89bigxNik7cih7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwfSx7d2l0aFJlc29sdmVyczpmdW5jdGlvbigpe3ZhciBlPW8uZih0aGlzKTtyZXR1cm57cHJvbWlzZTplLnByb21pc2UscmVzb2x2ZTplLnJlc29sdmUscmVqZWN0OmUucmVqZWN0fX19KX0sZnVuY3Rpb24oZSx0KXt2YXIgbixyLGU9ZS5leHBvcnRzPXt9O2Z1bmN0aW9uIG8oKXt0aHJvdyBuZXcgRXJyb3IoInNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBhKCl7dGhyb3cgbmV3IEVycm9yKCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX10cnl7bj0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om99Y2F0Y2goZSl7bj1vfXRyeXtyPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OmF9Y2F0Y2goZSl7cj1hfWZ1bmN0aW9uIGkodCl7aWYobj09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQodCwwKTtpZigobj09PW98fCFuKSYmc2V0VGltZW91dClyZXR1cm4obj1zZXRUaW1lb3V0KSh0LDApO3RyeXtyZXR1cm4gbih0LDApfWNhdGNoKGUpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsdCwwKX1jYXRjaChlKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCwwKX19fXZhciBsLGM9W10sdT0hMSxzPS0xO2Z1bmN0aW9uIGYoKXt1JiZsJiYodT0hMSxsLmxlbmd0aD9jPWwuY29uY2F0KGMpOnM9LTEsYy5sZW5ndGgpJiZkKCl9ZnVuY3Rpb24gZCgpe2lmKCF1KXtmb3IodmFyIGU9aShmKSx0PSh1PSEwLGMubGVuZ3RoKTt0Oyl7Zm9yKGw9YyxjPVtdOysrczx0OylsJiZsW3NdLnJ1bigpO3M9LTEsdD1jLmxlbmd0aH1sPW51bGwsdT0hMSwhZnVuY3Rpb24odCl7aWYocj09PWNsZWFyVGltZW91dClyZXR1cm4gY2xlYXJUaW1lb3V0KHQpO2lmKChyPT09YXx8IXIpJiZjbGVhclRpbWVvdXQpcmV0dXJuKHI9Y2xlYXJUaW1lb3V0KSh0KTt0cnl7cih0KX1jYXRjaChlKXt0cnl7cmV0dXJuIHIuY2FsbChudWxsLHQpfWNhdGNoKGUpe3JldHVybiByLmNhbGwodGhpcyx0KX19fShlKX19ZnVuY3Rpb24gcChlLHQpe3RoaXMuZnVuPWUsdGhpcy5hcnJheT10fWZ1bmN0aW9uIG0oKXt9ZS5uZXh0VGljaz1mdW5jdGlvbihlKXt2YXIgdD1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZigxPGFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO2MucHVzaChuZXcgcChlLHQpKSwxIT09Yy5sZW5ndGh8fHV8fGkoZCl9LHAucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe3RoaXMuZnVuLmFwcGx5KG51bGwsdGhpcy5hcnJheSl9LGUudGl0bGU9ImJyb3dzZXIiLGUuYnJvd3Nlcj0hMCxlLmVudj17fSxlLmFyZ3Y9W10sZS52ZXJzaW9uPSIiLGUudmVyc2lvbnM9e30sZS5vbj1tLGUuYWRkTGlzdGVuZXI9bSxlLm9uY2U9bSxlLm9mZj1tLGUucmVtb3ZlTGlzdGVuZXI9bSxlLnJlbW92ZUFsbExpc3RlbmVycz1tLGUuZW1pdD1tLGUucHJlcGVuZExpc3RlbmVyPW0sZS5wcmVwZW5kT25jZUxpc3RlbmVyPW0sZS5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuW119LGUuYmluZGluZz1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkIil9LGUuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifSxlLmNoZGlyPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkIil9LGUudW1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gMH19LGZ1bmN0aW9uKGUsdCxuKXtuPW4oMTY5KTt0LmNyZWF0ZVJvb3Q9bi5jcmVhdGVSb290LHQuaHlkcmF0ZVJvb3Q9bi5oeWRyYXRlUm9vdH0sZnVuY3Rpb24odixlLHQpeyFmdW5jdGlvbihlKXt2YXIgbj05MDA3MTk5MjU0NzQwOTkxLHI9IltvYmplY3QgQXJndW1lbnRzXSIsbz0iW29iamVjdCBGdW5jdGlvbl0iLGE9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixpPSJbb2JqZWN0IFN5bWJvbF0iLGU9Im9iamVjdCI9PXR5cGVvZiBlJiZlJiZlLk9iamVjdD09PU9iamVjdCYmZSx0PSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsZT1lfHx0fHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpO3ZhciB0PU9iamVjdC5wcm90b3R5cGUsbD10Lmhhc093blByb3BlcnR5LGM9dC50b1N0cmluZyxlPWUuU3ltYm9sLHU9dC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxzPWU/ZS5pc0NvbmNhdFNwcmVhZGFibGU6dm9pZCAwLGY9TWF0aC5tYXg7ZnVuY3Rpb24gbShlKXtyZXR1cm4gcChlKXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGgoZSkmJmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZmdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJi0xPGUmJmUlMT09MCYmZTw9bn0oZS5sZW5ndGgpJiYhZnVuY3Rpb24oZSl7ZT1mdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4gZSYmKCJvYmplY3QiPT10fHwiZnVuY3Rpb24iPT10KX0oZSk/Yy5jYWxsKGUpOiIiO3JldHVybiBlPT1vfHxlPT1hfShlKX0oZSl9KHQ9ZSkmJmwuY2FsbCh0LCJjYWxsZWUiKSYmKCF1LmNhbGwodCwiY2FsbGVlIil8fGMuY2FsbCh0KT09cil8fCEhKHMmJmUmJmVbc10pO3ZhciB0fWZ1bmN0aW9uIGQoZSl7dmFyIHQ7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwic3ltYm9sIj09dHlwZW9mKHQ9ZSl8fGgodCkmJmMuY2FsbCh0KT09aT9lOiIwIj09KHQ9ZSsiIikmJjEvZT09LTEvMD8iLTAiOnR9dmFyIHA9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBoKGUpe3JldHVybiEhZSYmIm9iamVjdCI9PXR5cGVvZiBlfWZ1bmN0aW9uIGcoKXtmb3IodmFyIGU9YXJndW1lbnRzLHQ9LTEsbj1mKGUubGVuZ3RoLXksMCkscj1BcnJheShuKTsrK3Q8bjspclt0XT1lW3krdF07Zm9yKHZhciB0PS0xLG89QXJyYXkoeSsxKTsrK3Q8eTspb1t0XT1lW3RdO29beV09cjt2YXIgYT1iLGk9dGhpcyxsPW87c3dpdGNoKGwubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIGEuY2FsbChpKTtjYXNlIDE6cmV0dXJuIGEuY2FsbChpLGxbMF0pO2Nhc2UgMjpyZXR1cm4gYS5jYWxsKGksbFswXSxsWzFdKTtjYXNlIDM6cmV0dXJuIGEuY2FsbChpLGxbMF0sbFsxXSxsWzJdKX1yZXR1cm4gYS5hcHBseShpLGwpfXZhciBiLHk7Yj1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307Zm9yKHZhciBuPWUsZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0tMSxyPWU/ZS5sZW5ndGg6MCxvPUFycmF5KHIpOysrbjxyOylvW25dPXQoZVtuXSxuLGUpO3JldHVybiBvfShmdW5jdGlvbiBlKHQsbixyLG8sYSl7dmFyIGk9LTEsbD10Lmxlbmd0aDtmb3Iocj1yfHxtLGE9YXx8W107KytpPGw7KXt2YXIgYz10W2ldO2lmKDA8biYmcihjKSlpZigxPG4pZShjLG4tMSxyLG8sYSk7ZWxzZXtwPWQ9Zj1zPXU9dm9pZCAwO2Zvcih2YXIgdT1hLHM9YyxmPS0xLGQ9cy5sZW5ndGgscD11Lmxlbmd0aDsrK2Y8ZDspdVtwK2ZdPXNbZl19ZWxzZSBvfHwoYVthLmxlbmd0aF09Yyl9cmV0dXJuIGF9KHQsMSksZCkscj1uPU9iamVjdChuKSxvPWUsYT1mdW5jdGlvbihlLHQpe3JldHVybiB0IGluIG59LGk9LTEsbD1vLmxlbmd0aCxjPXt9OysraTxsOyl7dmFyIHU9b1tpXSxzPXJbdV07YShzLHUpJiYoY1t1XT1zKX1yZXR1cm4gY30seT1mKHZvaWQgMD09PXk/Yi5sZW5ndGgtMTp5LDApO3YuZXhwb3J0cz1nfS5jYWxsKHRoaXMsdCgyMikpfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixyKXtpZih2b2lkIDAhPT0odT1uP24uY2FsbChyLGUsdCk6dm9pZCAwKSlyZXR1cm4hIXU7aWYoZSE9PXQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8IWV8fCJvYmplY3QiIT10eXBlb2YgdHx8IXQpcmV0dXJuITE7dmFyIG89T2JqZWN0LmtleXMoZSksYT1PYmplY3Qua2V5cyh0KTtpZihvLmxlbmd0aCE9PWEubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmJpbmQodCksbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgYz1vW2xdO2lmKCFpKGMpKXJldHVybiExO3ZhciB1LHM9ZVtjXSxmPXRbY107aWYoITE9PT0odT1uP24uY2FsbChyLHMsZixjKTp2b2lkIDApfHx2b2lkIDA9PT11JiZzIT09ZilyZXR1cm4hMX19cmV0dXJuITB9fSxmdW5jdGlvbihlLHQsbil7dC5hPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIEEoZSx0LG4pe3ZhciByPXQudHJpbSgpLnNwbGl0KGYpLG89KHQ9cikubGVuZ3RoLGE9ZS5sZW5ndGg7c3dpdGNoKGEpe2Nhc2UgMDpjYXNlIDE6dmFyIGk9MDtmb3IoZT0wPT09YT8iIjplWzBdKyIgIjtpPG87KytpKXRbaV09dShlLHRbaV0sbikudHJpbSgpO2JyZWFrO2RlZmF1bHQ6dmFyIGw9aT0wO2Zvcih0PVtdO2k8bzsrK2kpZm9yKHZhciBjPTA7YzxhOysrYyl0W2wrK109dShlW2NdKyIgIixyW2ldLG4pLnRyaW0oKX1yZXR1cm4gdH1mdW5jdGlvbiB1KGUsdCxuKXt2YXIgcj10LmNoYXJDb2RlQXQoMCk7c3dpdGNoKHI9cjwzMz8odD10LnRyaW0oKSkuY2hhckNvZGVBdCgwKTpyKXtjYXNlIDM4OnJldHVybiB0LnJlcGxhY2UobywiJDEiK2UudHJpbSgpKTtjYXNlIDU4OnJldHVybiBlLnRyaW0oKSt0LnJlcGxhY2UobywiJDEiK2UudHJpbSgpKTtkZWZhdWx0OmlmKDA8K24mJjA8dC5pbmRleE9mKCJcZiIpKXJldHVybiB0LnJlcGxhY2UobywoNTg9PT1lLmNoYXJDb2RlQXQoMCk/IiI6IiQxIikrZS50cmltKCkpfXJldHVybiBlK3R9ZnVuY3Rpb24gUChlLHQsbixyKXt2YXIgbyxhPWUrIjsiLGk9Mip0KzMqbis0KnI7aWYoOTQ0PT1pKXJldHVybiBlPWEuaW5kZXhPZigiOiIsOSkrMSxvPWEuc3Vic3RyaW5nKGUsYS5sZW5ndGgtMSkudHJpbSgpLG89YS5zdWJzdHJpbmcoMCxlKS50cmltKCkrbysiOyIsMT09PUh8fDI9PT1IJiZJKG8sMSk/Ii13ZWJraXQtIitvK286bztpZigwIT09SCYmKDIhPT1IfHxJKGEsMSkpKXN3aXRjaChpKXtjYXNlIDEwMTU6cmV0dXJuIDk3PT09YS5jaGFyQ29kZUF0KDEwKT8iLXdlYmtpdC0iK2ErYTphO2Nhc2UgOTUxOnJldHVybiAxMTY9PT1hLmNoYXJDb2RlQXQoMyk/Ii13ZWJraXQtIithK2E6YTtjYXNlIDk2MzpyZXR1cm4gMTEwPT09YS5jaGFyQ29kZUF0KDUpPyItd2Via2l0LSIrYSthOmE7Y2FzZSAxMDA5OmlmKDEwMCE9PWEuY2hhckNvZGVBdCg0KSlicmVhaztjYXNlIDk2OTpjYXNlIDk0MjpyZXR1cm4iLXdlYmtpdC0iK2ErYTtjYXNlIDk3ODpyZXR1cm4iLXdlYmtpdC0iK2ErIi1tb3otIithK2E7Y2FzZSAxMDE5OmNhc2UgOTgzOnJldHVybiItd2Via2l0LSIrYSsiLW1vei0iK2ErIi1tcy0iK2ErYTtjYXNlIDg4MzppZig0NT09PWEuY2hhckNvZGVBdCg4KSlyZXR1cm4iLXdlYmtpdC0iK2ErYTtpZigwPGEuaW5kZXhPZigiaW1hZ2Utc2V0KCIsMTEpKXJldHVybiBhLnJlcGxhY2UoZywiJDEtd2Via2l0LSQyIikrYTticmVhaztjYXNlIDkzMjppZig0NT09PWEuY2hhckNvZGVBdCg0KSlzd2l0Y2goYS5jaGFyQ29kZUF0KDUpKXtjYXNlIDEwMzpyZXR1cm4iLXdlYmtpdC1ib3gtIithLnJlcGxhY2UoIi1ncm93IiwiIikrIi13ZWJraXQtIithKyItbXMtIithLnJlcGxhY2UoImdyb3ciLCJwb3NpdGl2ZSIpK2E7Y2FzZSAxMTU6cmV0dXJuIi13ZWJraXQtIithKyItbXMtIithLnJlcGxhY2UoInNocmluayIsIm5lZ2F0aXZlIikrYTtjYXNlIDk4OnJldHVybiItd2Via2l0LSIrYSsiLW1zLSIrYS5yZXBsYWNlKCJiYXNpcyIsInByZWZlcnJlZC1zaXplIikrYX1yZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy0iK2ErYTtjYXNlIDk2NDpyZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy1mbGV4LSIrYSthO2Nhc2UgMTAyMzppZig5OSE9PWEuY2hhckNvZGVBdCg4KSlicmVhaztyZXR1cm4iLXdlYmtpdC1ib3gtcGFjayIrKG89YS5zdWJzdHJpbmcoYS5pbmRleE9mKCI6IiwxNSkpLnJlcGxhY2UoImZsZXgtIiwiIikucmVwbGFjZSgic3BhY2UtYmV0d2VlbiIsImp1c3RpZnkiKSkrIi13ZWJraXQtIithKyItbXMtZmxleC1wYWNrIitvK2E7Y2FzZSAxMDA1OnJldHVybiBjLnRlc3QoYSk/YS5yZXBsYWNlKGwsIjotd2Via2l0LSIpK2EucmVwbGFjZShsLCI6LW1vei0iKSthOmE7Y2FzZSAxZTM6c3dpdGNoKHQ9KG89YS5zdWJzdHJpbmcoMTMpLnRyaW0oKSkuaW5kZXhPZigiLSIpKzEsby5jaGFyQ29kZUF0KDApK28uY2hhckNvZGVBdCh0KSl7Y2FzZSAyMjY6bz1hLnJlcGxhY2UoZCwidGIiKTticmVhaztjYXNlIDIzMjpvPWEucmVwbGFjZShkLCJ0Yi1ybCIpO2JyZWFrO2Nhc2UgMjIwOm89YS5yZXBsYWNlKGQsImxyIik7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gYX1yZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy0iK28rYTtjYXNlIDEwMTc6aWYoLTE9PT1hLmluZGV4T2YoInN0aWNreSIsOSkpYnJlYWs7Y2FzZSA5NzU6c3dpdGNoKHQ9KGE9ZSkubGVuZ3RoLTEwLGk9KG89KDMzPT09YS5jaGFyQ29kZUF0KHQpP2Euc3Vic3RyaW5nKDAsdCk6YSkuc3Vic3RyaW5nKGUuaW5kZXhPZigiOiIsNykrMSkudHJpbSgpKS5jaGFyQ29kZUF0KDApKygwfG8uY2hhckNvZGVBdCg3KSkpe2Nhc2UgMjAzOmlmKG8uY2hhckNvZGVBdCg4KTwxMTEpYnJlYWs7Y2FzZSAxMTU6YT1hLnJlcGxhY2UobywiLXdlYmtpdC0iK28pKyI7IithO2JyZWFrO2Nhc2UgMjA3OmNhc2UgMTAyOmE9YS5yZXBsYWNlKG8sIi13ZWJraXQtIisoMTAyPGk/ImlubGluZS0iOiIiKSsiYm94IikrIjsiK2EucmVwbGFjZShvLCItd2Via2l0LSIrbykrIjsiK2EucmVwbGFjZShvLCItbXMtIitvKyJib3giKSsiOyIrYX1yZXR1cm4gYSsiOyI7Y2FzZSA5Mzg6aWYoNDU9PT1hLmNoYXJDb2RlQXQoNSkpc3dpdGNoKGEuY2hhckNvZGVBdCg2KSl7Y2FzZSAxMDU6cmV0dXJuIG89YS5yZXBsYWNlKCItaXRlbXMiLCIiKSwiLXdlYmtpdC0iK2ErIi13ZWJraXQtYm94LSIrbysiLW1zLWZsZXgtIitvK2E7Y2FzZSAxMTU6cmV0dXJuIi13ZWJraXQtIithKyItbXMtZmxleC1pdGVtLSIrYS5yZXBsYWNlKG0sIiIpK2E7ZGVmYXVsdDpyZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy1mbGV4LWxpbmUtcGFjayIrYS5yZXBsYWNlKCJhbGlnbi1jb250ZW50IiwiIikucmVwbGFjZShtLCIiKSthfWJyZWFrO2Nhc2UgOTczOmNhc2UgOTg5OmlmKDQ1IT09YS5jaGFyQ29kZUF0KDMpfHwxMjI9PT1hLmNoYXJDb2RlQXQoNCkpYnJlYWs7Y2FzZSA5MzE6Y2FzZSA5NTM6aWYoITA9PT1oLnRlc3QoZSkpcmV0dXJuIDExNT09PShvPWUuc3Vic3RyaW5nKGUuaW5kZXhPZigiOiIpKzEpKS5jaGFyQ29kZUF0KDApP1AoZS5yZXBsYWNlKCJzdHJldGNoIiwiZmlsbC1hdmFpbGFibGUiKSx0LG4scikucmVwbGFjZSgiOmZpbGwtYXZhaWxhYmxlIiwiOnN0cmV0Y2giKTphLnJlcGxhY2UobywiLXdlYmtpdC0iK28pK2EucmVwbGFjZShvLCItbW96LSIrby5yZXBsYWNlKCJmaWxsLSIsIiIpKSthO2JyZWFrO2Nhc2UgOTYyOmlmKGE9Ii13ZWJraXQtIithKygxMDI9PT1hLmNoYXJDb2RlQXQoNSk/Ii1tcy0iK2E6IiIpK2EsMjExPT09bityJiYxMDU9PT1hLmNoYXJDb2RlQXQoMTMpJiYwPGEuaW5kZXhPZigidHJhbnNmb3JtIiwxMCkpcmV0dXJuIGEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCI7IiwyNykrMSkucmVwbGFjZShzLCIkMS13ZWJraXQtJDIiKSthfXJldHVybiBhfWZ1bmN0aW9uIEkoZSx0KXt2YXIgbj1lLmluZGV4T2YoMT09PXQ/IjoiOiJ7Iikscj1lLnN1YnN0cmluZygwLDMhPT10P246MTApLG49ZS5zdWJzdHJpbmcobisxLGUubGVuZ3RoLTEpO3JldHVybiBpKDIhPT10P3I6ci5yZXBsYWNlKGEsIiQxIiksbix0KX1mdW5jdGlvbiBfKGUsdCl7dmFyIG49UCh0LHQuY2hhckNvZGVBdCgwKSx0LmNoYXJDb2RlQXQoMSksdC5jaGFyQ29kZUF0KDIpKTtyZXR1cm4gbiE9PXQrIjsiP24ucmVwbGFjZShyLCIgb3IgKCQxKSIpLnN1YnN0cmluZyg0KToiKCIrdCsiKSJ9ZnVuY3Rpb24geihlLHQsbixyLG8sYSxpLGwsYyx1KXtmb3IodmFyIHMsZj0wLGQ9dDtmPCQ7KytmKXN3aXRjaChzPWJbZl0uY2FsbChwLGUsZCxuLHIsbyxhLGksbCxjLHUpKXtjYXNlIHZvaWQgMDpjYXNlITE6Y2FzZSEwOmNhc2UgbnVsbDpicmVhaztkZWZhdWx0OmQ9c31pZihkIT09dClyZXR1cm4gZH1mdW5jdGlvbiB0KGUpe3JldHVybiB2b2lkIDAhPT0oZT1lLnByZWZpeCkmJihpPW51bGwsZT8iZnVuY3Rpb24iIT10eXBlb2YgZT9IPTE6KEg9MixpPWUpOkg9MCksdH1mdW5jdGlvbiBwKGUsdCl7ZT1bZT1lLmNoYXJDb2RlQXQoMCk8MzM/ZS50cmltKCk6ZV0sMDwkJiZ2b2lkIDAhPT0obj16KC0xLHQsZSxlLEIsVSwwLDAsMCwwKSkmJiJzdHJpbmciPT10eXBlb2YgbiYmKHQ9bik7dmFyIG4sdD1mdW5jdGlvbiBlKHQsbixyLG8sYSl7Zm9yKHZhciBpLGwsYyx1LHMsZj0wLGQ9MCxwPTAsbT0wLGg9MCxnPTAsYj1jPWk9MCx5PTAsdj0wLHc9MCx4PTAsaz1yLmxlbmd0aCxTPWstMSxDPSIiLEU9IiIsTz0iIixqPSIiO3k8azspe2lmKGw9ci5jaGFyQ29kZUF0KHkpLHk9PT1TJiYwIT09ZCttK3ArZiYmKDAhPT1kJiYobD00Nz09PWQ/MTA6NDcpLG09cD1mPTAsaysrLFMrKyksMD09PWQrbStwK2Ype2lmKHk9PT1TJiYwPChDPTA8dj9DLnJlcGxhY2UoTCwiIik6QykudHJpbSgpLmxlbmd0aCl7c3dpdGNoKGwpe2Nhc2UgMzI6Y2FzZSA5OmNhc2UgNTk6Y2FzZSAxMzpjYXNlIDEwOmJyZWFrO2RlZmF1bHQ6Qys9ci5jaGFyQXQoeSl9bD01OX1zd2l0Y2gobCl7Y2FzZSAxMjM6Zm9yKGk9KEM9Qy50cmltKCkpLmNoYXJDb2RlQXQoMCksYz0xLHg9Kyt5O3k8azspe3N3aXRjaChsPXIuY2hhckNvZGVBdCh5KSl7Y2FzZSAxMjM6YysrO2JyZWFrO2Nhc2UgMTI1OmMtLTticmVhaztjYXNlIDQ3OnN3aXRjaChsPXIuY2hhckNvZGVBdCh5KzEpKXtjYXNlIDQyOmNhc2UgNDc6ZTp7Zm9yKGI9eSsxO2I8UzsrK2Ipc3dpdGNoKHIuY2hhckNvZGVBdChiKSl7Y2FzZSA0NzppZig0MiE9PWx8fDQyIT09ci5jaGFyQ29kZUF0KGItMSl8fHkrMj09PWIpYnJlYWs7eT1iKzE7YnJlYWsgZTtjYXNlIDEwOmlmKDQ3PT09bCl7eT1iKzE7YnJlYWsgZX19eT1ifX1icmVhaztjYXNlIDkxOmwrKztjYXNlIDQwOmwrKztjYXNlIDM0OmNhc2UgMzk6Zm9yKDt5Kys8UyYmci5jaGFyQ29kZUF0KHkpIT09bDspO31pZigwPT09YylicmVhazt5Kyt9aWYoYz1yLnN1YnN0cmluZyh4LHkpLDY0PT09KGk9MD09PWk/KEM9Qy5yZXBsYWNlKFQsIiIpLnRyaW0oKSkuY2hhckNvZGVBdCgwKTppKSl7c3dpdGNoKGw9KEM9MDx2P0MucmVwbGFjZShMLCIiKTpDKS5jaGFyQ29kZUF0KDEpKXtjYXNlIDEwMDpjYXNlIDEwOTpjYXNlIDExNTpjYXNlIDQ1OnY9bjticmVhaztkZWZhdWx0OnY9Vn1pZih4PShjPWUobix2LGMsbCxhKzEpKS5sZW5ndGgsMDwkJiYocz16KDMsYyx2PUEoVixDLHcpLG4sQixVLHgsbCxhLG8pLEM9di5qb2luKCIiKSx2b2lkIDAhPT1zKSYmMD09PSh4PShjPXMudHJpbSgpKS5sZW5ndGgpJiYobD0wLGM9IiIpLDA8eClzd2l0Y2gobCl7Y2FzZSAxMTU6Qz1DLnJlcGxhY2UoRCxfKTtjYXNlIDEwMDpjYXNlIDEwOTpjYXNlIDQ1OmM9QysieyIrYysifSI7YnJlYWs7Y2FzZSAxMDc6Yz0oQz1DLnJlcGxhY2UoTSwiJDEgJDIiKSkrInsiK2MrIn0iLGM9MT09PUh8fDI9PT1IJiZJKCJAIitjLDMpPyJALXdlYmtpdC0iK2MrIkAiK2M6IkAiK2M7YnJlYWs7ZGVmYXVsdDpjPUMrYywxMTI9PT1vJiYoRSs9YyxjPSIiKX1lbHNlIGM9IiJ9ZWxzZSBjPWUobixBKG4sQyx3KSxjLG8sYSsxKTtPKz1jLGM9dz12PWI9aT0wLEM9IiIsbD1yLmNoYXJDb2RlQXQoKyt5KTticmVhaztjYXNlIDEyNTpjYXNlIDU5OmlmKDE8KHg9KEM9KDA8dj9DLnJlcGxhY2UoTCwiIik6QykudHJpbSgpKS5sZW5ndGgpKXN3aXRjaCgwPT09YiYmKGk9Qy5jaGFyQ29kZUF0KDApLDQ1PT09aXx8OTY8aSYmaTwxMjMpJiYoeD0oQz1DLnJlcGxhY2UoIiAiLCI6IikpLmxlbmd0aCksMDwkJiZ2b2lkIDAhPT0ocz16KDEsQyxuLHQsQixVLEUubGVuZ3RoLG8sYSxvKSkmJjA9PT0oeD0oQz1zLnRyaW0oKSkubGVuZ3RoKSYmKEM9IlwwXDAiKSxpPUMuY2hhckNvZGVBdCgwKSxsPUMuY2hhckNvZGVBdCgxKSxpKXtjYXNlIDA6YnJlYWs7Y2FzZSA2NDppZigxMDU9PT1sfHw5OT09PWwpe2orPUMrci5jaGFyQXQoeSk7YnJlYWt9ZGVmYXVsdDo1OCE9PUMuY2hhckNvZGVBdCh4LTEpJiYoRSs9UChDLGksbCxDLmNoYXJDb2RlQXQoMikpKX13PXY9Yj1pPTAsQz0iIixsPXIuY2hhckNvZGVBdCgrK3kpfX1zd2l0Y2gobCl7Y2FzZSAxMzpjYXNlIDEwOjQ3PT09ZD9kPTA6MD09PTEraSYmMTA3IT09byYmMDxDLmxlbmd0aCYmKHY9MSxDKz0iXDAiKSwwPCQqVyYmeigwLEMsbix0LEIsVSxFLmxlbmd0aCxvLGEsbyksVT0xLEIrKzticmVhaztjYXNlIDU5OmNhc2UgMTI1OmlmKDA9PT1kK20rcCtmKXtVKys7YnJlYWt9ZGVmYXVsdDpzd2l0Y2goVSsrLHU9ci5jaGFyQXQoeSksbCl7Y2FzZSA5OmNhc2UgMzI6aWYoMD09PW0rZitkKXN3aXRjaChoKXtjYXNlIDQ0OmNhc2UgNTg6Y2FzZSA5OmNhc2UgMzI6dT0iIjticmVhaztkZWZhdWx0OjMyIT09bCYmKHU9IiAiKX1icmVhaztjYXNlIDA6dT0iXFwwIjticmVhaztjYXNlIDEyOnU9IlxcZiI7YnJlYWs7Y2FzZSAxMTp1PSJcXHYiO2JyZWFrO2Nhc2UgMzg6MD09PW0rZCtmJiYodj13PTEsdT0iXGYiK3UpO2JyZWFrO2Nhc2UgMTA4OmlmKDA9PT1tK2QrZitGJiYwPGIpc3dpdGNoKHktYil7Y2FzZSAyOjExMj09PWgmJjU4PT09ci5jaGFyQ29kZUF0KHktMykmJihGPWgpO2Nhc2UgODoxMTE9PT1nJiYoRj1nKX1icmVhaztjYXNlIDU4OjA9PT1tK2QrZiYmKGI9eSk7YnJlYWs7Y2FzZSA0NDowPT09ZCtwK20rZiYmKHY9MSx1Kz0iXHIiKTticmVhaztjYXNlIDM0OmNhc2UgMzk6MD09PWQmJihtPW09PT1sPzA6MD09PW0/bDptKTticmVhaztjYXNlIDkxOjA9PT1tK2QrcCYmZisrO2JyZWFrO2Nhc2UgOTM6MD09PW0rZCtwJiZmLS07YnJlYWs7Y2FzZSA0MTowPT09bStkK2YmJnAtLTticmVhaztjYXNlIDQwOjA9PT1tK2QrZiYmKDA9PT1pJiYyKmgrMypnIT01MzMmJihpPTEpLHArKyk7YnJlYWs7Y2FzZSA2NDowPT09ZCtwK20rZitiK2MmJihjPTEpO2JyZWFrO2Nhc2UgNDI6Y2FzZSA0NzppZighKDA8bStmK3ApKXN3aXRjaChkKXtjYXNlIDA6c3dpdGNoKDIqbCszKnIuY2hhckNvZGVBdCh5KzEpKXtjYXNlIDIzNTpkPTQ3O2JyZWFrO2Nhc2UgMjIwOng9eSxkPTQyfWJyZWFrO2Nhc2UgNDI6NDc9PT1sJiY0Mj09PWgmJngrMiE9PXkmJigzMz09PXIuY2hhckNvZGVBdCh4KzIpJiYoRSs9ci5zdWJzdHJpbmcoeCx5KzEpKSx1PSIiLGQ9MCl9fTA9PT1kJiYoQys9dSl9Zz1oLGg9bCx5Kyt9aWYoMDwoeD1FLmxlbmd0aCkpe2lmKHY9biwwPCQmJnZvaWQgMCE9PShzPXooMixFLHYsdCxCLFUseCxvLGEsbykpJiYwPT09KEU9cykubGVuZ3RoKXJldHVybiBqK0UrTztpZihFPXYuam9pbigiLCIpKyJ7IitFKyJ9IiwwIT1IKkYpe3N3aXRjaChGPTIhPT1IfHxJKEUsMik/RjowKXtjYXNlIDExMTpFPUUucmVwbGFjZShOLCI6LW1vei0kMSIpK0U7YnJlYWs7Y2FzZSAxMTI6RT1FLnJlcGxhY2UoUiwiOjotd2Via2l0LWlucHV0LSQxIikrRS5yZXBsYWNlKFIsIjo6LW1vei0kMSIpK0UucmVwbGFjZShSLCI6LW1zLWlucHV0LSQxIikrRX1GPTB9fXJldHVybiBqK0UrT30oVixlLHQsMCwwKTtyZXR1cm4gMDwkJiZ2b2lkIDAhPT0obj16KC0yLHQsZSxlLEIsVSx0Lmxlbmd0aCwwLDAsMCkpJiYodD1uKSxGPTAsVT1CPTEsdH12YXIgVD0vXlwwKy9nLEw9L1tcMFxyXGZdL2csbD0vOiAqL2csYz0vem9vfGdyYS8scz0vKFssOiBdKSh0cmFuc2Zvcm0pL2csZj0vLFxyKz8vZyxvPS8oW1x0XHJcbiBdKSpcZj8mL2csTT0vQChrXHcrKVxzKihcUyopXHMqLyxSPS86OihwbGFjZSkvZyxOPS86KHJlYWQtb25seSkvZyxkPS9bc3ZoXVx3Ky1bdGJscl17Mn0vLEQ9L1woXHMqKC4qKVxzKlwpL2cscj0vKFtcc1xTXSo/KTsvZyxtPS8tc2VsZnxmbGV4LS9nLGE9L1teXSo/KDpbcnBdW2VsXWFbXHctXSspW15dKi8saD0vc3RyZXRjaHw6XHMqXHcrXC0oPzpjb250ZXxhdmFpbCkvLGc9LyhbXi1dKShpbWFnZS1zZXRcKCkvLFU9MSxCPTEsRj0wLEg9MSxWPVtdLGI9W10sJD0wLGk9bnVsbCxXPTA7cmV0dXJuIHAudXNlPWZ1bmN0aW9uIGUodCl7c3dpdGNoKHQpe2Nhc2Ugdm9pZCAwOmNhc2UgbnVsbDokPWIubGVuZ3RoPTA7YnJlYWs7ZGVmYXVsdDppZigiZnVuY3Rpb24iPT10eXBlb2YgdCliWyQrK109dDtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgdClmb3IodmFyIG49MCxyPXQubGVuZ3RoO248cjsrK24pZSh0W25dKTtlbHNlIFc9MHwhIXR9cmV0dXJuIGV9LHAuc2V0PXQsdm9pZCAwIT09ZSYmdChlKSxwfX0sZnVuY3Rpb24oZSx0LG4pe3QuYT17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6MSxib3JkZXJJbWFnZU91dHNldDoxLGJvcmRlckltYWdlU2xpY2U6MSxib3JkZXJJbWFnZVdpZHRoOjEsYm94RmxleDoxLGJveEZsZXhHcm91cDoxLGJveE9yZGluYWxHcm91cDoxLGNvbHVtbkNvdW50OjEsY29sdW1uczoxLGZsZXg6MSxmbGV4R3JvdzoxLGZsZXhQb3NpdGl2ZToxLGZsZXhTaHJpbms6MSxmbGV4TmVnYXRpdmU6MSxmbGV4T3JkZXI6MSxncmlkUm93OjEsZ3JpZFJvd0VuZDoxLGdyaWRSb3dTcGFuOjEsZ3JpZFJvd1N0YXJ0OjEsZ3JpZENvbHVtbjoxLGdyaWRDb2x1bW5FbmQ6MSxncmlkQ29sdW1uU3BhbjoxLGdyaWRDb2x1bW5TdGFydDoxLG1zR3JpZFJvdzoxLG1zR3JpZFJvd1NwYW46MSxtc0dyaWRDb2x1bW46MSxtc0dyaWRDb2x1bW5TcGFuOjEsZm9udFdlaWdodDoxLGxpbmVIZWlnaHQ6MSxvcGFjaXR5OjEsb3JkZXI6MSxvcnBoYW5zOjEsdGFiU2l6ZToxLHdpZG93czoxLHpJbmRleDoxLHpvb206MSxXZWJraXRMaW5lQ2xhbXA6MSxmaWxsT3BhY2l0eToxLGZsb29kT3BhY2l0eToxLHN0b3BPcGFjaXR5OjEsc3Ryb2tlRGFzaGFycmF5OjEsc3Ryb2tlRGFzaG9mZnNldDoxLHN0cm9rZU1pdGVybGltaXQ6MSxzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2lkdGg6MX19LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9big5OSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDEwMCk7bigxNjMpLG4oMTY0KSxuKDE2NSksbigxNjYpLGUuZXhwb3J0cz1yfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxMDEpO24oMTYyKSxlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTAyKTtuKDE1OSksZS5leHBvcnRzPXJ9LGZ1bmN0aW9uKGUsdCxuKXtuKDU5KSxuKDc5KSxuKDEzMiksbigxMzQpLG4oODkpLG4oOTApLG4oOTEpLG4oMTU1KSxuKDE1Nik7bj1uKDE1OCk7ZS5leHBvcnRzPW4uUHJvbWlzZX0sZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIG8oZSx0KXt2YXIgbixyPWEodix0aGlzKTtyZXR1cm4gbD9uPWwobmV3IGIscj9pKHRoaXMpOnYpOihuPXI/dGhpczp1KHYpLHMobixnLCJFcnJvciIpKSx2b2lkIDAhPT10JiZzKG4sIm1lc3NhZ2UiLGgodCkpLHAobixvLG4uc3RhY2ssMSksMjxhcmd1bWVudHMubGVuZ3RoJiZkKG4sYXJndW1lbnRzWzJdKSxtKGUseSx7dGhhdDpyPVtdfSkscyhuLCJlcnJvcnMiLHIpLG59dmFyIHI9big3KSxhPW4oMzEpLGk9big1MSksbD1uKDUyKSxjPW4oNzMpLHU9bigzNikscz1uKDE4KSxmPW4oMjMpLGQ9bigxMjEpLHA9bigxMjIpLG09bigyNSksaD1uKDEyOSksZz1uKDUpKCJ0b1N0cmluZ1RhZyIpLGI9RXJyb3IseT1bXS5wdXNoLHY9KGw/bChvLGIpOmMobyxiLHtuYW1lOiEwfSksby5wcm90b3R5cGU9dShiLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6ZigxLG8pLG1lc3NhZ2U6ZigxLCIiKSxuYW1lOmYoMSwiQWdncmVnYXRlRXJyb3IiKX0pKTtyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6Mn0se0FnZ3JlZ2F0ZUVycm9yOm99KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixhPW8mJiFyLmNhbGwoezE6Mn0sMSk7dC5mPWE/ZnVuY3Rpb24oZSl7ZT1vKHRoaXMsZSk7cmV0dXJuISFlJiZlLmVudW1lcmFibGV9OnJ9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQpLG89big2KSxhPW4oMjkpLGk9T2JqZWN0LGw9cigiIi5zcGxpdCk7ZS5leHBvcnRzPW8oZnVuY3Rpb24oKXtyZXR1cm4haSgieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSk/ZnVuY3Rpb24oZSl7cmV0dXJuIlN0cmluZyI9PT1hKGUpP2woZSwiIik6aShlKX06aX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oOCksbz1uKDEzKSxhPW4oNjIpLGk9big0MyksbD1uKDEwNyksbj1uKDUpLGM9VHlwZUVycm9yLHU9bigidG9QcmltaXRpdmUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZighbyhlKXx8YShlKSlyZXR1cm4gZTt2YXIgbj1pKGUsdSk7aWYobil7aWYobj1yKG4sZSx0PXZvaWQgMD09PXQ/ImRlZmF1bHQiOnQpLCFvKG4pfHxhKG4pKXJldHVybiBuO3Rocm93IG5ldyBjKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gbChlLHQ9dm9pZCAwPT09dD8ibnVtYmVyIjp0KX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1uKDgpLGE9bigyKSxpPW4oMTMpLGw9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuLHI7aWYoInN0cmluZyI9PT10JiZhKG49ZS50b1N0cmluZykmJiFpKHI9byhuLGUpKSlyZXR1cm4gcjtpZihhKG49ZS52YWx1ZU9mKSYmIWkocj1vKG4sZSkpKXJldHVybiByO2lmKCJzdHJpbmciIT09dCYmYShuPWUudG9TdHJpbmcpJiYhaShyPW8obixlKSkpcmV0dXJuIHI7dGhyb3cgbmV3IGwoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMyksbj1uKDIpLHI9ci5XZWFrTWFwO2UuZXhwb3J0cz1uKHIpJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKHIpKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTQpLG89big0KSxhPW4oMTEwKSxpPW4oMTE1KSxsPW4oMTIpLGM9byhbXS5jb25jYXQpO2UuZXhwb3J0cz1yKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbihlKXt2YXIgdD1hLmYobChlKSksbj1pLmY7cmV0dXJuIG4/Yyh0LG4oZSkpOnR9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big3NCksbz1uKDUwKS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO3QuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSxvKX19LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKGwpe3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHIsbz1jKGUpLGE9cyhvKSxpPXUobixhKTtpZihsJiZ0IT10KXtmb3IoO2k8YTspaWYoKHI9b1tpKytdKSE9cilyZXR1cm4hMH1lbHNlIGZvcig7aTxhO2krKylpZigobHx8aSBpbiBvKSYmb1tpXT09PXQpcmV0dXJuIGx8fGl8fDA7cmV0dXJuIWwmJi0xfX12YXIgYz1uKDI0KSx1PW4oMTEyKSxzPW4oNzUpO2UuZXhwb3J0cz17aW5jbHVkZXM6cighMCksaW5kZXhPZjpyKCExKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQ5KSxvPU1hdGgubWF4LGE9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7ZT1yKGUpO3JldHVybiBlPDA/byhlK3QsMCk6YShlLHQpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPU1hdGguY2VpbCxvPU1hdGguZmxvb3I7ZS5leHBvcnRzPU1hdGgudHJ1bmN8fGZ1bmN0aW9uKGUpe2U9K2U7cmV0dXJuKDA8ZT9vOnIpKGUpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDkpLG89TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiAwPGU/byhyKGUpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSxmdW5jdGlvbihlLHQsbil7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LGZ1bmN0aW9uKGUsdCxuKXtuPW4oNik7ZS5leHBvcnRzPSFuKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IGUpIT09ZS5wcm90b3R5cGV9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNCksbz1uKDEwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3RyeXtyZXR1cm4gcihvKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KVtuXSkpfWNhdGNoKGUpe319fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyKSxvPVN0cmluZyxhPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlfHxyKGUpKXJldHVybiBlO3Rocm93IG5ldyBhKCJDYW4ndCBzZXQgIitvKGUpKyIgYXMgYSBwcm90b3R5cGUiKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDkpLG89big3MCksbD1uKDE3KSxjPW4oMTIpLHU9bigyNCkscz1uKDEyMCk7dC5mPXImJiFvP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKGUsdCl7YyhlKTtmb3IodmFyIG4scj11KHQpLG89cyh0KSxhPW8ubGVuZ3RoLGk9MDtpPGE7KWwuZihlLG49b1tpKytdLHJbbl0pO3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNzQpLG89big1MCk7ZS5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbihlKXtyZXR1cm4gcihlLG8pfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTMpLG89bigxOCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cih0KSYmImNhdXNlImluIHQmJm8oZSwiY2F1c2UiLHQuY2F1c2UpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4oMTgpLGE9bigxMjMpLGk9bigxMjQpLGw9RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHIpe2kmJihsP2woZSx0KTpvKGUsInN0YWNrIixhKG4scikpKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgbj1uKDQpLHI9RXJyb3Isbz1uKCIiLnJlcGxhY2UpLG49U3RyaW5nKG5ldyByKCJ6eGNhc2QiKS5zdGFjayksYT0vXG5ccyphdCBbXjpdKjpbXlxuXSovLGk9YS50ZXN0KG4pO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKGkmJiJzdHJpbmciPT10eXBlb2YgZSYmIXIucHJlcGFyZVN0YWNrVHJhY2UpZm9yKDt0LS07KWU9byhlLGEsIiIpO3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNiksbz1uKDIzKTtlLmV4cG9ydHM9IXIoZnVuY3Rpb24oKXt2YXIgZT1uZXcgRXJyb3IoImEiKTtyZXR1cm4hKCJzdGFjayJpbiBlKXx8KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJzdGFjayIsbygxLDcpKSw3IT09ZS5zdGFjayl9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMjkpLG89big0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIkZ1bmN0aW9uIj09PXIoZSkpcmV0dXJuIG8oZSl9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big1KSxvPW4oMjYpLGE9cigiaXRlcmF0b3IiKSxpPUFycmF5LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJihvLkFycmF5PT09ZXx8aVthXT09PWUpfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oOCksbz1uKDEwKSxhPW4oMTIpLGk9bigzMyksbD1uKDc4KSxjPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0PWFyZ3VtZW50cy5sZW5ndGg8Mj9sKGUpOnQ7aWYobyh0KSlyZXR1cm4gYShyKHQsZSkpO3Rocm93IG5ldyBjKGkoZSkrIiBpcyBub3QgaXRlcmFibGUiKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgYT1uKDgpLGk9bigxMiksbD1uKDQzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG87aShlKTt0cnl7aWYoIShyPWwoZSwicmV0dXJuIikpKXtpZigidGhyb3ciPT09dCl0aHJvdyBuO3JldHVybiBufXI9YShyLGUpfWNhdGNoKGUpe289ITAscj1lfWlmKCJ0aHJvdyI9PT10KXRocm93IG47aWYobyl0aHJvdyByO3JldHVybiBpKHIpLG59fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big1NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWU/YXJndW1lbnRzLmxlbmd0aDwyPyIiOnQ6cihlKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDUpLG89bigzNiksbj1uKDE3KS5mLGE9cigidW5zY29wYWJsZXMiKSxpPUFycmF5LnByb3RvdHlwZTt2b2lkIDA9PT1pW2FdJiZuKGksYSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOm8obnVsbCl9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aVthXVtlXT0hMH19LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiBvKCl7cmV0dXJuIHRoaXN9dmFyIGE9big4MSkuSXRlcmF0b3JQcm90b3R5cGUsaT1uKDM2KSxsPW4oMjMpLGM9bigzOCksdT1uKDI2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4scil7dCs9IiBJdGVyYXRvciI7cmV0dXJuIGUucHJvdG90eXBlPWkoYSx7bmV4dDpsKCshcixuKX0pLGMoZSx0LCExLCEwKSx1W3RdPW8sZX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDU0KSxvPW4oMTkpLG49bigxMzMpO3J8fG8oT2JqZWN0LnByb3RvdHlwZSwidG9TdHJpbmciLG4se3Vuc2FmZTohMH0pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big1NCksbz1uKDM3KTtlLmV4cG9ydHM9cj97fS50b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0ICIrbyh0aGlzKSsiXSJ9fSxmdW5jdGlvbihlLHQsbil7bigxMzUpLG4oMTQ5KSxuKDE1MSksbigxNTIpLG4oMTUzKSxuKDE1NCl9LGZ1bmN0aW9uKFIsTixlKXtmdW5jdGlvbiBhKGUsdCl7dmFyIG4scixvLGEsaT10LnZhbHVlLGw9dC5zdGF0ZT09PU8sYz1sP2Uub2s6ZS5mYWlsLHU9ZS5yZXNvbHZlLHM9ZS5yZWplY3QsZj1lLmRvbWFpbjt0cnl7Yz8obHx8KHQucmVqZWN0aW9uPT09QSYmKGE9dCxtKGgscCxmdW5jdGlvbigpe3ZhciBlPWEuZmFjYWRlO2Q/Uy5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixlKTpfKEosZSxhLnZhbHVlKX0pKSx0LnJlamVjdGlvbj1qKSwhMD09PWM/bj1pOihmJiZmLmVudGVyKCksbj1jKGkpLGYmJihmLmV4aXQoKSxvPSEwKSksbj09PWUucHJvbWlzZT9zKG5ldyB4KCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOihyPVAobikpP20ocixuLHUscyk6dShuKSk6cyhpKX1jYXRjaChlKXtmJiYhbyYmZi5leGl0KCkscyhlKX19dmFyIG4sdCxyLEQ9ZSg3KSxVPWUoMTUpLGQ9ZSgzOSkscD1lKDMpLG09ZSg4KSxvPWUoMTkpLGk9ZSg1MiksQj1lKDM4KSxGPWUoMTM2KSxIPWUoMTApLGw9ZSgyKSxWPWUoMTMpLCQ9ZSgxMzgpLFc9ZSg4MyksaD1lKDg0KS5zZXQsYz1lKDE0NCksRz1lKDE0NykscT1lKDIwKSxaPWUoODYpLHU9ZSgzNSkscz1lKDIxKSxmPWUoMjcpLGU9ZSgxNiksZz0iUHJvbWlzZSIsYj1mLkNPTlNUUlVDVE9SLFg9Zi5SRUpFQ1RJT05fRVZFTlQsZj1mLlNVQkNMQVNTSU5HLHk9dS5nZXR0ZXJGb3IoZyksWT11LnNldCx1PXMmJnMucHJvdG90eXBlLHY9cyx3PXUseD1wLlR5cGVFcnJvcixrPXAuZG9jdW1lbnQsUz1wLnByb2Nlc3MsQz1lLmYsUT1DLEs9ISEoayYmay5jcmVhdGVFdmVudCYmcC5kaXNwYXRjaEV2ZW50KSxFPSJ1bmhhbmRsZWRyZWplY3Rpb24iLEo9InJlamVjdGlvbmhhbmRsZWQiLE89MSxlZT0yLGo9MSxBPTIsUD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4hKCFWKGUpfHwhbCh0PWUudGhlbikpJiZ0fSxJPWZ1bmN0aW9uKG4sbyl7bi5ub3RpZmllZHx8KG4ubm90aWZpZWQ9ITAsYyhmdW5jdGlvbigpe2Zvcih2YXIgZSxyLHQ9bi5yZWFjdGlvbnM7ZT10LmdldCgpOylhKGUsbik7bi5ub3RpZmllZD0hMSxvJiYhbi5yZWplY3Rpb24mJihyPW4sbShoLHAsZnVuY3Rpb24oKXt2YXIgZT1yLmZhY2FkZSx0PXIudmFsdWUsbj16KHIpO2lmKG4mJihuPXEoZnVuY3Rpb24oKXtkP1MuZW1pdCgidW5oYW5kbGVkUmVqZWN0aW9uIix0LGUpOl8oRSxlLHQpfSksci5yZWplY3Rpb249ZHx8eihyKT9BOmosbi5lcnJvcikpdGhyb3cgbi52YWx1ZX0pKX0pKX0sXz1mdW5jdGlvbihlLHQsbil7dmFyIHI7Sz8oKHI9ay5jcmVhdGVFdmVudCgiRXZlbnQiKSkucHJvbWlzZT10LHIucmVhc29uPW4sci5pbml0RXZlbnQoZSwhMSwhMCkscC5kaXNwYXRjaEV2ZW50KHIpKTpyPXtwcm9taXNlOnQscmVhc29uOm59LCFYJiYodD1wWyJvbiIrZV0pP3Qocik6ZT09PUUmJkcoIlVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbiIsbil9LHo9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVqZWN0aW9uIT09aiYmIWUucGFyZW50fSxUPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gZnVuY3Rpb24oZSl7dChuLGUscil9fSxMPWZ1bmN0aW9uKGUsdCxuKXtlLmRvbmV8fChlLmRvbmU9ITAsKGU9bj9uOmUpLnZhbHVlPXQsZS5zdGF0ZT1lZSxJKGUsITApKX0sTT1mdW5jdGlvbihuLGUsdCl7aWYoIW4uZG9uZSl7bi5kb25lPSEwLHQmJihuPXQpO3RyeXtpZihuLmZhY2FkZT09PWUpdGhyb3cgbmV3IHgoIlByb21pc2UgY2FuJ3QgYmUgcmVzb2x2ZWQgaXRzZWxmIik7dmFyIHI9UChlKTtyP2MoZnVuY3Rpb24oKXt2YXIgdD17ZG9uZTohMX07dHJ5e20ocixlLFQoTSx0LG4pLFQoTCx0LG4pKX1jYXRjaChlKXtMKHQsZSxuKX19KToobi52YWx1ZT1lLG4uc3RhdGU9TyxJKG4sITEpKX1jYXRjaChlKXtMKHtkb25lOiExfSxlLG4pfX19O2lmKGImJih3PSh2PWZ1bmN0aW9uKGUpeyQodGhpcyx3KSxIKGUpLG0obix0aGlzKTt2YXIgdD15KHRoaXMpO3RyeXtlKFQoTSx0KSxUKEwsdCkpfWNhdGNoKGUpe0wodCxlKX19KS5wcm90b3R5cGUsKG49ZnVuY3Rpb24oZSl7WSh0aGlzLHt0eXBlOmcsZG9uZTohMSxub3RpZmllZDohMSxwYXJlbnQ6ITEscmVhY3Rpb25zOm5ldyBaLHJlamVjdGlvbjohMSxzdGF0ZTowLHZhbHVlOnZvaWQgMH0pfSkucHJvdG90eXBlPW8odywidGhlbiIsZnVuY3Rpb24oZSx0KXt2YXIgbj15KHRoaXMpLHI9QyhXKHRoaXMsdikpO3JldHVybiBuLnBhcmVudD0hMCxyLm9rPSFsKGUpfHxlLHIuZmFpbD1sKHQpJiZ0LHIuZG9tYWluPWQ/Uy5kb21haW46dm9pZCAwLDA9PT1uLnN0YXRlP24ucmVhY3Rpb25zLmFkZChyKTpjKGZ1bmN0aW9uKCl7YShyLG4pfSksci5wcm9taXNlfSksdD1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLHQ9eShlKTt0aGlzLnByb21pc2U9ZSx0aGlzLnJlc29sdmU9VChNLHQpLHRoaXMucmVqZWN0PVQoTCx0KX0sZS5mPUM9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT12fHx2b2lkIDA9PT1lP25ldyB0OlEoZSl9LCFVKSYmbChzKSYmdSE9PU9iamVjdC5wcm90b3R5cGUpe3I9dS50aGVuLGZ8fG8odSwidGhlbiIsZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3JldHVybiBuZXcgdihmdW5jdGlvbihlLHQpe20ocixuLGUsdCl9KS50aGVuKGUsdCl9LHt1bnNhZmU6ITB9KTt0cnl7ZGVsZXRlIHUuY29uc3RydWN0b3J9Y2F0Y2goZSl7fWkmJmkodSx3KX1EKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsd3JhcDohMCxmb3JjZWQ6Yn0se1Byb21pc2U6dn0pLEIodixnLCExLCEwKSxGKGcpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNCksbz1uKDEzNyksYT1uKDUpLGk9big5KSxsPWEoInNwZWNpZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZT1yKGUpO2kmJmUmJiFlW2xdJiZvKGUsbCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNzEpLG89bigxNyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbi5nZXQmJnIobi5nZXQsdCx7Z2V0dGVyOiEwfSksbi5zZXQmJnIobi5zZXQsdCx7c2V0dGVyOiEwfSksby5mKGUsdCxuKX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDMxKSxvPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihyKHQsZSkpcmV0dXJuIGU7dGhyb3cgbmV3IG8oIkluY29ycmVjdCBpbnZvY2F0aW9uIil9fSxmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNDApLG89bigzMyksYT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHIoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IGEobyhlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIil9fSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcigpe31mdW5jdGlvbiBvKGUpe2lmKCFjKGUpKXJldHVybiExO3RyeXtyZXR1cm4gcChyLGQsZSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGEoZSl7aWYoIWMoZSkpcmV0dXJuITE7c3dpdGNoKHUoZSkpe2Nhc2UiQXN5bmNGdW5jdGlvbiI6Y2FzZSJHZW5lcmF0b3JGdW5jdGlvbiI6Y2FzZSJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIjpyZXR1cm4hMX10cnl7cmV0dXJuIGd8fCEhaChtLGYoZSkpfWNhdGNoKGUpe3JldHVybiEwfX12YXIgaT1uKDQpLGw9big2KSxjPW4oMiksdT1uKDM3KSxzPW4oMTQpLGY9big0NiksZD1bXSxwPXMoIlJlZmxlY3QiLCJjb25zdHJ1Y3QiKSxtPS9eXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXGIvLGg9aShtLmV4ZWMpLGc9IW0udGVzdChyKTthLnNoYW09ITAsZS5leHBvcnRzPSFwfHxsKGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIG8oby5jYWxsKXx8IW8oT2JqZWN0KXx8IW8oZnVuY3Rpb24oKXtlPSEwfSl8fGV9KT9hOm99LGZ1bmN0aW9uKGUsdCxuKXt2YXIgbj1uKDI4KSxyPUZ1bmN0aW9uLnByb3RvdHlwZSxvPXIuYXBwbHksYT1yLmNhbGw7ZS5leHBvcnRzPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5hcHBseXx8KG4/YS5iaW5kKG8pOmZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkobyxhcmd1bWVudHMpfSl9LGZ1bmN0aW9uKGUsdCxuKXtuPW4oNCk7ZS5leHBvcnRzPW4oW10uc2xpY2UpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKGU8dCl0aHJvdyBuZXcgcigiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gZX19LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGEsaSxsLGMsdT1uKDMpLHM9big1MyksZj1uKDQxKS5mLGQ9big4NCkuc2V0LHA9big4NiksbT1uKDg1KSxoPW4oMTQ1KSxnPW4oMTQ2KSxiPW4oMzkpLG49dS5NdXRhdGlvbk9ic2VydmVyfHx1LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIseT11LmRvY3VtZW50LHY9dS5wcm9jZXNzLHc9dS5Qcm9taXNlLGY9Zih1LCJxdWV1ZU1pY3JvdGFzayIpLGY9ZiYmZi52YWx1ZTtmfHwoaT1uZXcgcCxsPWZ1bmN0aW9uKCl7dmFyIGUsdDtmb3IoYiYmKGU9di5kb21haW4pJiZlLmV4aXQoKTt0PWkuZ2V0KCk7KXRyeXt0KCl9Y2F0Y2goZSl7dGhyb3cgaS5oZWFkJiZjKCksZX1lJiZlLmVudGVyKCl9LGM9bXx8Ynx8Z3x8IW58fCF5PyFoJiZ3JiZ3LnJlc29sdmU/KChwPXcucmVzb2x2ZSh2b2lkIDApKS5jb25zdHJ1Y3Rvcj13LGE9cyhwLnRoZW4scCksZnVuY3Rpb24oKXthKGwpfSk6Yj9mdW5jdGlvbigpe3YubmV4dFRpY2sobCl9OihkPXMoZCx1KSxmdW5jdGlvbigpe2QobCl9KToocj0hMCxvPXkuY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBuKGwpLm9ic2VydmUobyx7Y2hhcmFjdGVyRGF0YTohMH0pLGZ1bmN0aW9uKCl7by5kYXRhPXI9IXJ9KSxmPWZ1bmN0aW9uKGUpe2kuaGVhZHx8YygpLGkuYWRkKGUpfSksZS5leHBvcnRzPWZ9LGZ1bmN0aW9uKGUsdCxuKXtuPW4oMzIpO2UuZXhwb3J0cz0vaXBhZHxpcGhvbmV8aXBvZC9pLnRlc3QobikmJiJ1bmRlZmluZWQiIT10eXBlb2YgUGViYmxlfSxmdW5jdGlvbihlLHQsbil7bj1uKDMyKTtlLmV4cG9ydHM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChuKX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3RyeXsxPT09YXJndW1lbnRzLmxlbmd0aD9jb25zb2xlLmVycm9yKGUpOmNvbnNvbGUuZXJyb3IoZSx0KX1jYXRjaChlKXt9fX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oODcpLG49bigzOSk7ZS5leHBvcnRzPSFyJiYhbiYmIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJiJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnR9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDcpLHM9big4KSxmPW4oMTApLG89bigxNiksYT1uKDIwKSxkPW4oMjUpO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6big0MCl9LHthbGw6ZnVuY3Rpb24oZSl7dmFyIGw9dGhpcyx0PW8uZihsKSxjPXQucmVzb2x2ZSx1PXQucmVqZWN0LG49YShmdW5jdGlvbigpe3ZhciByPWYobC5yZXNvbHZlKSxvPVtdLGE9MCxpPTE7ZChlLGZ1bmN0aW9uKGUpe3ZhciB0PWErKyxuPSExO2krKyxzKHIsbCxlKS50aGVuKGZ1bmN0aW9uKGUpe258fChuPSEwLG9bdF09ZSwtLWkpfHxjKG8pfSx1KX0pLC0taXx8YyhvKX0pO3JldHVybiBuLmVycm9yJiZ1KG4udmFsdWUpLHQucHJvbWlzZX19KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4oNSkoIml0ZXJhdG9yIiksYT0hMTt0cnl7dmFyIHI9MCxpPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFyKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXthPSEwfX07aVtvXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKGksZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0Y2goZSl7fWUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3RyeXtpZighdCYmIWEpcmV0dXJuITF9Y2F0Y2goZSl7cmV0dXJuITF9dmFyIG49ITE7dHJ5e3ZhciByPXt9O3Jbb109ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOm49ITB9fX19LGUocil9Y2F0Y2goZSl7fXJldHVybiBufX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNyksbz1uKDE1KSxhPW4oMjcpLkNPTlNUUlVDVE9SLGk9bigyMSksbD1uKDE0KSxjPW4oMiksbj1uKDE5KSx1PWkmJmkucHJvdG90eXBlO3Ioe3RhcmdldDoiUHJvbWlzZSIscHJvdG86ITAsZm9yY2VkOmEscmVhbDohMH0se2NhdGNoOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRoZW4odm9pZCAwLGUpfX0pLCFvJiZjKGkpJiYocj1sKCJQcm9taXNlIikucHJvdG90eXBlLmNhdGNoLHUuY2F0Y2ghPT1yKSYmbih1LCJjYXRjaCIscix7dW5zYWZlOiEwfSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDcpLGE9big4KSxpPW4oMTApLGw9bigxNiksYz1uKDIwKSx1PW4oMjUpO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6big0MCl9LHtyYWNlOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1sLmYobiksbz1yLnJlamVjdCx0PWMoZnVuY3Rpb24oKXt2YXIgdD1pKG4ucmVzb2x2ZSk7dShlLGZ1bmN0aW9uKGUpe2EodCxuLGUpLnRoZW4oci5yZXNvbHZlLG8pfSl9KTtyZXR1cm4gdC5lcnJvciYmbyh0LnZhbHVlKSxyLnByb21pc2V9fSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDcpLG89big4KSxhPW4oMTYpO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6bigyNykuQ09OU1RSVUNUT1J9LHtyZWplY3Q6ZnVuY3Rpb24oZSl7dmFyIHQ9YS5mKHRoaXMpO3JldHVybiBvKHQucmVqZWN0LHZvaWQgMCxlKSx0LnByb21pc2V9fSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDcpLG89bigxNCksYT1uKDE1KSxpPW4oMjEpLGw9bigyNykuQ09OU1RSVUNUT1IsYz1uKDg4KSx1PW8oIlByb21pc2UiKSxzPWEmJiFsO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6YXx8bH0se3Jlc29sdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIGMocyYmdGhpcz09PXU/aTp0aGlzLGUpfX0pfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big3KSxvPW4oMTUpLGE9bigyMSksaT1uKDYpLGw9bigxNCksYz1uKDIpLHU9big4Mykscz1uKDg4KSxuPW4oMTkpLGY9YSYmYS5wcm90b3R5cGU7cih7dGFyZ2V0OiJQcm9taXNlIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohIWEmJmkoZnVuY3Rpb24oKXtmLmZpbmFsbHkuY2FsbCh7dGhlbjpmdW5jdGlvbigpe319LGZ1bmN0aW9uKCl7fSl9KX0se2ZpbmFsbHk6ZnVuY3Rpb24odCl7dmFyIG49dSh0aGlzLGwoIlByb21pc2UiKSksZT1jKHQpO3JldHVybiB0aGlzLnRoZW4oZT9mdW5jdGlvbihlKXtyZXR1cm4gcyhuLHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlfSl9OnQsZT9mdW5jdGlvbihlKXtyZXR1cm4gcyhuLHQoKSkudGhlbihmdW5jdGlvbigpe3Rocm93IGV9KX06dCl9fSksIW8mJmMoYSkmJihyPWwoIlByb21pc2UiKS5wcm90b3R5cGUuZmluYWxseSxmLmZpbmFsbHkhPT1yKSYmbihmLCJmaW5hbGx5IixyLHt1bnNhZmU6ITB9KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTU3KS5jaGFyQXQsbz1uKDU1KSxhPW4oMzUpLGk9big4MCksbD1uKDgyKSxjPSJTdHJpbmcgSXRlcmF0b3IiLHU9YS5zZXQscz1hLmdldHRlckZvcihjKTtpKFN0cmluZywiU3RyaW5nIixmdW5jdGlvbihlKXt1KHRoaXMse3R5cGU6YyxzdHJpbmc6byhlKSxpbmRleDowfSl9LGZ1bmN0aW9uKCl7dmFyIGU9cyh0aGlzKSx0PWUuc3RyaW5nLG49ZS5pbmRleDtyZXR1cm4gbj49dC5sZW5ndGg/bCh2b2lkIDAsITApOih0PXIodCxuKSxlLmluZGV4Kz10Lmxlbmd0aCxsKHQsITEpKX0pfSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcihvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbixlPWkobChlKSksdD1hKHQpLHI9ZS5sZW5ndGg7cmV0dXJuIHQ8MHx8cjw9dD9vPyIiOnZvaWQgMDoobj11KGUsdCkpPDU1Mjk2fHw1NjMxOTxufHx0KzE9PT1yfHwocj11KGUsdCsxKSk8NTYzMjB8fDU3MzQzPHI/bz9jKGUsdCk6bjpvP3MoZSx0LHQrMik6ci01NjMyMCsobi01NTI5Njw8MTApKzY1NTM2fX12YXIgbz1uKDQpLGE9big0OSksaT1uKDU1KSxsPW4oNDIpLGM9bygiIi5jaGFyQXQpLHU9bygiIi5jaGFyQ29kZUF0KSxzPW8oIiIuc2xpY2UpO2UuZXhwb3J0cz17Y29kZUF0OnIoITEpLGNoYXJBdDpyKCEwKX19LGZ1bmN0aW9uKGUsdCxuKXtuPW4oMyk7ZS5leHBvcnRzPW59LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKHQsZSl7aWYodCl7aWYodFtmXSE9PWQpdHJ5e3UodCxmLGQpfWNhdGNoKGUpe3RbZl09ZH1pZihzKHQsZSwhMCksaVtlXSlmb3IodmFyIG4gaW4gYylpZih0W25dIT09Y1tuXSl0cnl7dSh0LG4sY1tuXSl9Y2F0Y2goZSl7dFtuXT1jW25dfX19dmFyIG8sYT1uKDMpLGk9bigxNjApLGw9bigxNjEpLGM9big3OSksdT1uKDE4KSxzPW4oMzgpLGY9big1KSgiaXRlcmF0b3IiKSxkPWMudmFsdWVzO2ZvcihvIGluIGkpcihhW29dJiZhW29dLnByb3RvdHlwZSxvKTtyKGwsIkRPTVRva2VuTGlzdCIpfSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfX0sZnVuY3Rpb24oZSx0LG4pe249bigzNCkoInNwYW4iKS5jbGFzc0xpc3Qsbj1uJiZuLmNvbnN0cnVjdG9yJiZuLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtlLmV4cG9ydHM9bj09PU9iamVjdC5wcm90b3R5cGU/dm9pZCAwOm59LGZ1bmN0aW9uKGUsdCxuKXtuKDkxKX0sZnVuY3Rpb24oZSx0LG4pe24oNTkpfSxmdW5jdGlvbihlLHQsbil7big4OSl9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDcpLG89bigxNiksYT1uKDIwKTtyKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7dHJ5OmZ1bmN0aW9uKGUpe3ZhciB0PW8uZih0aGlzKSxlPWEoZSk7cmV0dXJuKGUuZXJyb3I/dC5yZWplY3Q6dC5yZXNvbHZlKShlLnZhbHVlKSx0LnByb21pc2V9fSl9LGZ1bmN0aW9uKGUsdCxuKXtuKDkwKX0sZnVuY3Rpb24oZSx0LG4peyFmdW5jdGlvbihlKXt2YXIgdCxuLGM9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzfHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fHZvaWQgMCE9PWUmJmV8fHt9LHI9IlVSTFNlYXJjaFBhcmFtcyJpbiBjLG89IlN5bWJvbCJpbiBjJiYiaXRlcmF0b3IiaW4gU3ltYm9sLHU9IkZpbGVSZWFkZXIiaW4gYyYmIkJsb2IiaW4gYyYmZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBCbG9iLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKSxhPSJGb3JtRGF0YSJpbiBjLHM9IkFycmF5QnVmZmVyImluIGM7ZnVuY3Rpb24gZihlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUmJihlPVN0cmluZyhlKSksL1teYS16MC05XC0jJCUmJyorLl5fYHx+IV0vaS50ZXN0KGUpfHwiIj09PWUpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBjaGFyYWN0ZXIgaW4gaGVhZGVyIGZpZWxkIG5hbWU6ICInK2UrJyInKTtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIGU9InN0cmluZyIhPXR5cGVvZiBlP1N0cmluZyhlKTplfWZ1bmN0aW9uIGkodCl7dmFyIGU9e25leHQ6ZnVuY3Rpb24oKXt2YXIgZT10LnNoaWZ0KCk7cmV0dXJue2RvbmU6dm9pZCAwPT09ZSx2YWx1ZTplfX19O3JldHVybiBvJiYoZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGV9KSxlfWZ1bmN0aW9uIHAodCl7dGhpcy5tYXA9e30sdCBpbnN0YW5jZW9mIHA/dC5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7dGhpcy5hcHBlbmQodCxlKX0sdGhpcyk6QXJyYXkuaXNBcnJheSh0KT90LmZvckVhY2goZnVuY3Rpb24oZSl7aWYoMiE9ZS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiSGVhZGVycyBjb25zdHJ1Y3RvcjogZXhwZWN0ZWQgbmFtZS92YWx1ZSBwYWlyIHRvIGJlIGxlbmd0aCAyLCBmb3VuZCIrZS5sZW5ndGgpO3RoaXMuYXBwZW5kKGVbMF0sZVsxXSl9LHRoaXMpOnQmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7dGhpcy5hcHBlbmQoZSx0W2VdKX0sdGhpcyl9ZnVuY3Rpb24gbChlKXtpZighZS5fbm9Cb2R5KXJldHVybiBlLmJvZHlVc2VkP1Byb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoIkFscmVhZHkgcmVhZCIpKTp2b2lkKGUuYm9keVVzZWQ9ITApfWZ1bmN0aW9uIG0obil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7bi5vbmxvYWQ9ZnVuY3Rpb24oKXtlKG4ucmVzdWx0KX0sbi5vbmVycm9yPWZ1bmN0aW9uKCl7dChuLmVycm9yKX19KX1mdW5jdGlvbiBoKGUpe3ZhciB0PW5ldyBGaWxlUmVhZGVyLG49bSh0KTtyZXR1cm4gdC5yZWFkQXNBcnJheUJ1ZmZlcihlKSxufWZ1bmN0aW9uIGcoZSl7dmFyIHQ7cmV0dXJuIGUuc2xpY2U/ZS5zbGljZSgwKTooKHQ9bmV3IFVpbnQ4QXJyYXkoZS5ieXRlTGVuZ3RoKSkuc2V0KG5ldyBVaW50OEFycmF5KGUpKSx0LmJ1ZmZlcil9ZnVuY3Rpb24gYigpe3JldHVybiB0aGlzLmJvZHlVc2VkPSExLHRoaXMuX2luaXRCb2R5PWZ1bmN0aW9uKGUpe3ZhciB0O3RoaXMuYm9keVVzZWQ9dGhpcy5ib2R5VXNlZCwodGhpcy5fYm9keUluaXQ9ZSk/InN0cmluZyI9PXR5cGVvZiBlP3RoaXMuX2JvZHlUZXh0PWU6dSYmQmxvYi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKT90aGlzLl9ib2R5QmxvYj1lOmEmJkZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGUpP3RoaXMuX2JvZHlGb3JtRGF0YT1lOnImJlVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKT90aGlzLl9ib2R5VGV4dD1lLnRvU3RyaW5nKCk6cyYmdSYmKHQ9ZSkmJkRhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpPyh0aGlzLl9ib2R5QXJyYXlCdWZmZXI9ZyhlLmJ1ZmZlciksdGhpcy5fYm9keUluaXQ9bmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTpzJiYoQXJyYXlCdWZmZXIucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSl8fG4oZSkpP3RoaXMuX2JvZHlBcnJheUJ1ZmZlcj1nKGUpOnRoaXMuX2JvZHlUZXh0PWU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpOih0aGlzLl9ub0JvZHk9ITAsdGhpcy5fYm9keVRleHQ9IiIpLHRoaXMuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpfHwoInN0cmluZyI9PXR5cGVvZiBlP3RoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpOnRoaXMuX2JvZHlCbG9iJiZ0aGlzLl9ib2R5QmxvYi50eXBlP3RoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsdGhpcy5fYm9keUJsb2IudHlwZSk6ciYmVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGUpJiZ0aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIpKX0sdSYmKHRoaXMuYmxvYj1mdW5jdGlvbigpe3ZhciBlPWwodGhpcyk7aWYoZSlyZXR1cm4gZTtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlCbG9iKTtpZih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSkpO2lmKHRoaXMuX2JvZHlGb3JtRGF0YSl0aHJvdyBuZXcgRXJyb3IoImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgYmxvYiIpO3JldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpfSksdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gbCh0aGlzKXx8KEFycmF5QnVmZmVyLmlzVmlldyh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpP1Byb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnVmZmVyLnNsaWNlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlT2Zmc2V0LHRoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlT2Zmc2V0K3RoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKSk6UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpO2lmKHUpcmV0dXJuIHRoaXMuYmxvYigpLnRoZW4oaCk7dGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBhcyBBcnJheUJ1ZmZlciIpfSx0aGlzLnRleHQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scj1sKHRoaXMpO2lmKHIpcmV0dXJuIHI7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIHI9dGhpcy5fYm9keUJsb2IsZT1uZXcgRmlsZVJlYWRlcix0PW0oZSksbj0obj0vY2hhcnNldD0oW0EtWmEtejAtOV8tXSspLy5leGVjKHIudHlwZSkpP25bMV06InV0Zi04IixlLnJlYWRBc1RleHQocixuKSx0O2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlKSxuPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0wO3I8dC5sZW5ndGg7cisrKW5bcl09U3RyaW5nLmZyb21DaGFyQ29kZSh0W3JdKTtyZXR1cm4gbi5qb2luKCIiKX0odGhpcy5fYm9keUFycmF5QnVmZmVyKSk7aWYodGhpcy5fYm9keUZvcm1EYXRhKXRocm93IG5ldyBFcnJvcigiY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0Iik7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dCl9LGEmJih0aGlzLmZvcm1EYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4odyl9KSx0aGlzLmpzb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKX0sdGhpc31zJiYodD1bIltvYmplY3QgSW50OEFycmF5XSIsIltvYmplY3QgVWludDhBcnJheV0iLCJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsIltvYmplY3QgSW50MTZBcnJheV0iLCJbb2JqZWN0IFVpbnQxNkFycmF5XSIsIltvYmplY3QgSW50MzJBcnJheV0iLCJbb2JqZWN0IFVpbnQzMkFycmF5XSIsIltvYmplY3QgRmxvYXQzMkFycmF5XSIsIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdLG49QXJyYXlCdWZmZXIuaXNWaWV3fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmLTE8dC5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSl9KSxwLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXtlPWYoZSksdD1kKHQpO3ZhciBuPXRoaXMubWFwW2VdO3RoaXMubWFwW2VdPW4/bisiLCAiK3Q6dH0scC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe2RlbGV0ZSB0aGlzLm1hcFtmKGUpXX0scC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBlPWYoZSksdGhpcy5oYXMoZSk/dGhpcy5tYXBbZV06bnVsbH0scC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShmKGUpKX0scC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dGhpcy5tYXBbZihlKV09ZCh0KX0scC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0aGlzLm1hcCl0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShuKSYmZS5jYWxsKHQsdGhpcy5tYXBbbl0sbix0aGlzKX0scC5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3ZhciBuPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSx0KXtuLnB1c2godCl9KSxpKG4pfSxwLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaChlKX0pLGkodCl9LHAucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7bi5wdXNoKFt0LGVdKX0pLGkobil9LG8mJihwLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPXAucHJvdG90eXBlLmVudHJpZXMpO3ZhciB5PVsiQ09OTkVDVCIsIkRFTEVURSIsIkdFVCIsIkhFQUQiLCJPUFRJT05TIiwiUEFUQ0giLCJQT1NUIiwiUFVUIiwiVFJBQ0UiXTtmdW5jdGlvbiB2KGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgdikpdGhyb3cgbmV3IFR5cGVFcnJvcignUGxlYXNlIHVzZSB0aGUgIm5ldyIgb3BlcmF0b3IsIHRoaXMgRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uJyk7dmFyIG4scj0odD10fHx7fSkuYm9keTtpZihlIGluc3RhbmNlb2Ygdil7aWYoZS5ib2R5VXNlZCl0aHJvdyBuZXcgVHlwZUVycm9yKCJBbHJlYWR5IHJlYWQiKTt0aGlzLnVybD1lLnVybCx0aGlzLmNyZWRlbnRpYWxzPWUuY3JlZGVudGlhbHMsdC5oZWFkZXJzfHwodGhpcy5oZWFkZXJzPW5ldyBwKGUuaGVhZGVycykpLHRoaXMubWV0aG9kPWUubWV0aG9kLHRoaXMubW9kZT1lLm1vZGUsdGhpcy5zaWduYWw9ZS5zaWduYWwscnx8bnVsbD09ZS5fYm9keUluaXR8fChyPWUuX2JvZHlJbml0LGUuYm9keVVzZWQ9ITApfWVsc2UgdGhpcy51cmw9U3RyaW5nKGUpO2lmKHRoaXMuY3JlZGVudGlhbHM9dC5jcmVkZW50aWFsc3x8dGhpcy5jcmVkZW50aWFsc3x8InNhbWUtb3JpZ2luIiwhdC5oZWFkZXJzJiZ0aGlzLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IHAodC5oZWFkZXJzKSksdGhpcy5tZXRob2Q9KGU9dC5tZXRob2R8fHRoaXMubWV0aG9kfHwiR0VUIixuPWUudG9VcHBlckNhc2UoKSwtMTx5LmluZGV4T2Yobik/bjplKSx0aGlzLm1vZGU9dC5tb2RlfHx0aGlzLm1vZGV8fG51bGwsdGhpcy5zaWduYWw9dC5zaWduYWx8fHRoaXMuc2lnbmFsfHxmdW5jdGlvbigpe2lmKCJBYm9ydENvbnRyb2xsZXIiaW4gYylyZXR1cm4obmV3IEFib3J0Q29udHJvbGxlcikuc2lnbmFsfSgpLHRoaXMucmVmZXJyZXI9bnVsbCwoIkdFVCI9PT10aGlzLm1ldGhvZHx8IkhFQUQiPT09dGhpcy5tZXRob2QpJiZyKXRocm93IG5ldyBUeXBlRXJyb3IoIkJvZHkgbm90IGFsbG93ZWQgZm9yIEdFVCBvciBIRUFEIHJlcXVlc3RzIik7dGhpcy5faW5pdEJvZHkociksIkdFVCIhPT10aGlzLm1ldGhvZCYmIkhFQUQiIT09dGhpcy5tZXRob2R8fCJuby1zdG9yZSIhPT10LmNhY2hlJiYibm8tY2FjaGUiIT09dC5jYWNoZXx8KChuPS8oWz8mXSlfPVteJl0qLykudGVzdCh0aGlzLnVybCk/dGhpcy51cmw9dGhpcy51cmwucmVwbGFjZShuLCIkMV89IisobmV3IERhdGUpLmdldFRpbWUoKSk6dGhpcy51cmwrPSgvXD8vLnRlc3QodGhpcy51cmwpPyImIjoiPyIpKyJfPSIrKG5ldyBEYXRlKS5nZXRUaW1lKCkpfWZ1bmN0aW9uIHcoZSl7dmFyIG49bmV3IEZvcm1EYXRhO3JldHVybiBlLnRyaW0oKS5zcGxpdCgiJiIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ7ZSYmKHQ9KGU9ZS5zcGxpdCgiPSIpKS5zaGlmdCgpLnJlcGxhY2UoL1wrL2csIiAiKSxlPWUuam9pbigiPSIpLnJlcGxhY2UoL1wrL2csIiAiKSxuLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQodCksZGVjb2RlVVJJQ29tcG9uZW50KGUpKSl9KSxufWZ1bmN0aW9uIHgoZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiB4KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdQbGVhc2UgdXNlIHRoZSAibmV3IiBvcGVyYXRvciwgdGhpcyBET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4nKTtpZih0PXR8fHt9LHRoaXMudHlwZT0iZGVmYXVsdCIsdGhpcy5zdGF0dXM9dm9pZCAwPT09dC5zdGF0dXM/MjAwOnQuc3RhdHVzLHRoaXMuc3RhdHVzPDIwMHx8NTk5PHRoaXMuc3RhdHVzKXRocm93IG5ldyBSYW5nZUVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0ICdSZXNwb25zZSc6IFRoZSBzdGF0dXMgcHJvdmlkZWQgKDApIGlzIG91dHNpZGUgdGhlIHJhbmdlIFsyMDAsIDU5OV0uIik7dGhpcy5vaz0yMDA8PXRoaXMuc3RhdHVzJiZ0aGlzLnN0YXR1czwzMDAsdGhpcy5zdGF0dXNUZXh0PXZvaWQgMD09PXQuc3RhdHVzVGV4dD8iIjoiIit0LnN0YXR1c1RleHQsdGhpcy5oZWFkZXJzPW5ldyBwKHQuaGVhZGVycyksdGhpcy51cmw9dC51cmx8fCIiLHRoaXMuX2luaXRCb2R5KGUpfXYucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB2KHRoaXMse2JvZHk6dGhpcy5fYm9keUluaXR9KX0sYi5jYWxsKHYucHJvdG90eXBlKSxiLmNhbGwoeC5wcm90b3R5cGUpLHgucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB4KHRoaXMuX2JvZHlJbml0LHtzdGF0dXM6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0aGlzLnN0YXR1c1RleHQsaGVhZGVyczpuZXcgcCh0aGlzLmhlYWRlcnMpLHVybDp0aGlzLnVybH0pfSx4LmVycm9yPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHgobnVsbCx7c3RhdHVzOjIwMCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIGUuc3RhdHVzPTAsZS50eXBlPSJlcnJvciIsZX07dmFyIGs9WzMwMSwzMDIsMzAzLDMwNywzMDhdLFM9KHgucmVkaXJlY3Q9ZnVuY3Rpb24oZSx0KXtpZigtMT09PWsuaW5kZXhPZih0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBzdGF0dXMgY29kZSIpO3JldHVybiBuZXcgeChudWxsLHtzdGF0dXM6dCxoZWFkZXJzOntsb2NhdGlvbjplfX0pfSxjLkRPTUV4Y2VwdGlvbik7dHJ5e25ldyBTfWNhdGNoKGUpeyhTPWZ1bmN0aW9uKGUsdCl7dGhpcy5tZXNzYWdlPWUsdGhpcy5uYW1lPXQ7dD1FcnJvcihlKTt0aGlzLnN0YWNrPXQuc3RhY2t9KS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLFMucHJvdG90eXBlLmNvbnN0cnVjdG9yPVN9ZnVuY3Rpb24gQyhyLGwpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvLGUpe3ZhciBhPW5ldyB2KHIsbCk7aWYoYS5zaWduYWwmJmEuc2lnbmFsLmFib3J0ZWQpcmV0dXJuIGUobmV3IFMoIkFib3J0ZWQiLCJBYm9ydEVycm9yIikpO3ZhciBuLGk9bmV3IFhNTEh0dHBSZXF1ZXN0O2Z1bmN0aW9uIHQoKXtpLmFib3J0KCl9aS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZSxuLHQ9e3N0YXR1c1RleHQ6aS5zdGF0dXNUZXh0LGhlYWRlcnM6KGU9aS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8IiIsbj1uZXcgcCxlLnJlcGxhY2UoL1xyP1xuW1x0IF0rL2csIiAiKS5zcGxpdCgiXHIiKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lLmluZGV4T2YoIlxuIik/ZS5zdWJzdHIoMSxlLmxlbmd0aCk6ZX0pLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGU9ZS5zcGxpdCgiOiIpLHQ9ZS5zaGlmdCgpLnRyaW0oKTtpZih0KXtlPWUuam9pbigiOiIpLnRyaW0oKTt0cnl7bi5hcHBlbmQodCxlKX1jYXRjaChlKXtjb25zb2xlLndhcm4oIlJlc3BvbnNlICIrZS5tZXNzYWdlKX19fSksbil9LHI9KGEudXJsLnN0YXJ0c1dpdGgoImZpbGU6Ly8iKSYmKGkuc3RhdHVzPDIwMHx8NTk5PGkuc3RhdHVzKT90LnN0YXR1cz0yMDA6dC5zdGF0dXM9aS5zdGF0dXMsdC51cmw9InJlc3BvbnNlVVJMImluIGk/aS5yZXNwb25zZVVSTDp0LmhlYWRlcnMuZ2V0KCJYLVJlcXVlc3QtVVJMIiksInJlc3BvbnNlImluIGk/aS5yZXNwb25zZTppLnJlc3BvbnNlVGV4dCk7c2V0VGltZW91dChmdW5jdGlvbigpe28obmV3IHgocix0KSl9LDApfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZShuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSwwKX0saS5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZShuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgdGltZWQgb3V0IikpfSwwKX0saS5vbmFib3J0PWZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2UobmV3IFMoIkFib3J0ZWQiLCJBYm9ydEVycm9yIikpfSwwKX0saS5vcGVuKGEubWV0aG9kLGZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4iIj09PXQmJmMubG9jYXRpb24uaHJlZj9jLmxvY2F0aW9uLmhyZWY6dH1jYXRjaChlKXtyZXR1cm4gdH19KGEudXJsKSwhMCksImluY2x1ZGUiPT09YS5jcmVkZW50aWFscz9pLndpdGhDcmVkZW50aWFscz0hMDoib21pdCI9PT1hLmNyZWRlbnRpYWxzJiYoaS53aXRoQ3JlZGVudGlhbHM9ITEpLCJyZXNwb25zZVR5cGUiaW4gaSYmKHU/aS5yZXNwb25zZVR5cGU9ImJsb2IiOnMmJihpLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiKSksbCYmIm9iamVjdCI9PXR5cGVvZiBsLmhlYWRlcnMmJiEobC5oZWFkZXJzIGluc3RhbmNlb2YgcHx8Yy5IZWFkZXJzJiZsLmhlYWRlcnMgaW5zdGFuY2VvZiBjLkhlYWRlcnMpPyhuPVtdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGwuaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbihlKXtuLnB1c2goZihlKSksaS5zZXRSZXF1ZXN0SGVhZGVyKGUsZChsLmhlYWRlcnNbZV0pKX0pLGEuaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7LTE9PT1uLmluZGV4T2YodCkmJmkuc2V0UmVxdWVzdEhlYWRlcih0LGUpfSkpOmEuaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7aS5zZXRSZXF1ZXN0SGVhZGVyKHQsZSl9KSxhLnNpZ25hbCYmKGEuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0Iix0KSxpLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PT1pLnJlYWR5U3RhdGUmJmEuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0Iix0KX0pLGkuc2VuZCh2b2lkIDA9PT1hLl9ib2R5SW5pdD9udWxsOmEuX2JvZHlJbml0KX0pfUMucG9seWZpbGw9ITAsYy5mZXRjaHx8KGMuZmV0Y2g9QyxjLkhlYWRlcnM9cCxjLlJlcXVlc3Q9dixjLlJlc3BvbnNlPXgpfS5jYWxsKHRoaXMsbigyMikpfSxmdW5jdGlvbihlLHQsbil7dmFyIGY9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLGQ9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIikscj1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLG89U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxhPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksaT1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLGw9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGM9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSx1PVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIikscz1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIikscD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IiksbT1TeW1ib2wuaXRlcmF0b3I7dmFyIGg9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LGc9T2JqZWN0LmFzc2lnbixiPXt9O2Z1bmN0aW9uIHkoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Yix0aGlzLnVwZGF0ZXI9bnx8aH1mdW5jdGlvbiB2KCl7fWZ1bmN0aW9uIHcoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Yix0aGlzLnVwZGF0ZXI9bnx8aH15LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LHkucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0seS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LHYucHJvdG90eXBlPXkucHJvdG90eXBlO3ZhciB4PXcucHJvdG90eXBlPW5ldyB2LGs9KHguY29uc3RydWN0b3I9dyxnKHgseS5wcm90b3R5cGUpLHguaXNQdXJlUmVhY3RDb21wb25lbnQ9ITAsQXJyYXkuaXNBcnJheSksUz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEM9e2N1cnJlbnQ6bnVsbH0sRT17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O2Z1bmN0aW9uIE8oZSx0LG4pe3ZhciByLG89e30sYT1udWxsLGk9bnVsbDtpZihudWxsIT10KWZvcihyIGluIHZvaWQgMCE9PXQucmVmJiYoaT10LnJlZiksdm9pZCAwIT09dC5rZXkmJihhPSIiK3Qua2V5KSx0KVMuY2FsbCh0LHIpJiYhRS5oYXNPd25Qcm9wZXJ0eShyKSYmKG9bcl09dFtyXSk7dmFyIGw9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1sKW8uY2hpbGRyZW49bjtlbHNlIGlmKDE8bCl7Zm9yKHZhciBjPUFycmF5KGwpLHU9MDt1PGw7dSsrKWNbdV09YXJndW1lbnRzW3UrMl07by5jaGlsZHJlbj1jfWlmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihyIGluIGw9ZS5kZWZhdWx0UHJvcHMpdm9pZCAwPT09b1tyXSYmKG9bcl09bFtyXSk7cmV0dXJueyQkdHlwZW9mOmYsdHlwZTplLGtleTphLHJlZjppLHByb3BzOm8sX293bmVyOkMuY3VycmVudH19ZnVuY3Rpb24gaihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZlLiQkdHlwZW9mPT09Zn12YXIgQT0vXC8rL2c7ZnVuY3Rpb24gUChlLHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJm51bGwhPWUua2V5PyhlPSIiK2Uua2V5LG49eyI9IjoiPTAiLCI6IjoiPTIifSwiJCIrZS5yZXBsYWNlKC9bPTpdL2csZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV19KSk6dC50b1N0cmluZygzNik7dmFyIG59ZnVuY3Rpb24gSShlLHQsbixyLG8pe3ZhciBhLGksbD0hMTtpZihudWxsPT09KGU9InVuZGVmaW5lZCIhPT0odT10eXBlb2YgZSkmJiJib29sZWFuIiE9PXU/ZTpudWxsKSlsPSEwO2Vsc2Ugc3dpdGNoKHUpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6bD0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgZjpjYXNlIGQ6bD0hMH19aWYobClyZXR1cm4gbz1vKGw9ZSksZT0iIj09PXI/Ii4iK1AobCwwKTpyLGsobyk/KG49IiIsSShvLHQsbj1udWxsIT1lP2UucmVwbGFjZShBLCIkJi8iKSsiLyI6biwiIixmdW5jdGlvbihlKXtyZXR1cm4gZX0pKTpudWxsIT1vJiYoaihvKSYmKGk9bisoIShhPW8pLmtleXx8bCYmbC5rZXk9PT1vLmtleT8iIjooIiIrby5rZXkpLnJlcGxhY2UoQSwiJCYvIikrIi8iKStlLG89eyQkdHlwZW9mOmYsdHlwZTphLnR5cGUsa2V5OmkscmVmOmEucmVmLHByb3BzOmEucHJvcHMsX293bmVyOmEuX293bmVyfSksdC5wdXNoKG8pKSwxO2lmKGw9MCxyPSIiPT09cj8iLiI6cisiOiIsayhlKSlmb3IodmFyIGM9MDtjPGUubGVuZ3RoO2MrKyl7dmFyIHUscz1yK1AodT1lW2NdLGMpO2wrPUkodSx0LG4scyxvKX1lbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZihzPW51bGwhPT0oaT1lKSYmIm9iamVjdCI9PXR5cGVvZiBpJiYiZnVuY3Rpb24iPT10eXBlb2YoaT1tJiZpW21dfHxpWyJAQGl0ZXJhdG9yIl0pP2k6bnVsbCkpZm9yKGU9cy5jYWxsKGUpLGM9MDshKHU9ZS5uZXh0KCkpLmRvbmU7KWwrPUkodT11LnZhbHVlLHQsbixzPXIrUCh1LGMrKyksbyk7ZWxzZSBpZigib2JqZWN0Ij09PXUpdGhyb3cgdD1TdHJpbmcoZSksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoIltvYmplY3QgT2JqZWN0XSI9PT10PyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGUpLmpvaW4oIiwgIikrIn0iOnQpKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIik7cmV0dXJuIGx9ZnVuY3Rpb24gXyhlLHQsbil7dmFyIHI7cmV0dXJuIG51bGw9PWV8fChyPTAsSShlLGU9W10sIiIsIiIsZnVuY3Rpb24oZSl7cmV0dXJuIHQuY2FsbChuLGUscisrKX0pKSxlfWZ1bmN0aW9uIHoodCl7dmFyIGU7aWYoLTE9PT10Ll9zdGF0dXMmJigoZT0oZT10Ll9yZXN1bHQpKCkpLnRoZW4oZnVuY3Rpb24oZSl7MCE9PXQuX3N0YXR1cyYmLTEhPT10Ll9zdGF0dXN8fCh0Ll9zdGF0dXM9MSx0Ll9yZXN1bHQ9ZSl9LGZ1bmN0aW9uKGUpezAhPT10Ll9zdGF0dXMmJi0xIT09dC5fc3RhdHVzfHwodC5fc3RhdHVzPTIsdC5fcmVzdWx0PWUpfSksLTE9PT10Ll9zdGF0dXMpJiYodC5fc3RhdHVzPTAsdC5fcmVzdWx0PWUpLDE9PT10Ll9zdGF0dXMpcmV0dXJuIHQuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IHQuX3Jlc3VsdH12YXIgVD17Y3VycmVudDpudWxsfSxMPXt0cmFuc2l0aW9uOm51bGx9LHg9e1JlYWN0Q3VycmVudERpc3BhdGNoZXI6VCxSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzpMLFJlYWN0Q3VycmVudE93bmVyOkN9O3QuQ2hpbGRyZW49e21hcDpfLGZvckVhY2g6ZnVuY3Rpb24oZSx0LG4pe18oZSxmdW5jdGlvbigpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxuKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gXyhlLGZ1bmN0aW9uKCl7dCsrfSksdH0sdG9BcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gXyhlLGZ1bmN0aW9uKGUpe3JldHVybiBlfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGUpe2lmKGooZSkpcmV0dXJuIGU7dGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpfX0sdC5Db21wb25lbnQ9eSx0LkZyYWdtZW50PXIsdC5Qcm9maWxlcj1hLHQuUHVyZUNvbXBvbmVudD13LHQuU3RyaWN0TW9kZT1vLHQuU3VzcGVuc2U9dSx0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPXgsdC5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe2lmKG51bGw9PWUpdGhyb3cgRXJyb3IoIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkICIrZSsiLiIpO3ZhciByPWcoe30sZS5wcm9wcyksbz1lLmtleSxhPWUucmVmLGk9ZS5fb3duZXI7aWYobnVsbCE9dClmb3IobCBpbiB2b2lkIDAhPT10LnJlZiYmKGE9dC5yZWYsaT1DLmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYobz0iIit0LmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzJiYoYz1lLnR5cGUuZGVmYXVsdFByb3BzKSx0KVMuY2FsbCh0LGwpJiYhRS5oYXNPd25Qcm9wZXJ0eShsKSYmKHJbbF09KHZvaWQgMD09PXRbbF0mJnZvaWQgMCE9PWM/Yzp0KVtsXSk7dmFyIGw9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1sKXIuY2hpbGRyZW49bjtlbHNlIGlmKDE8bCl7Zm9yKHZhciBjPUFycmF5KGwpLHU9MDt1PGw7dSsrKWNbdV09YXJndW1lbnRzW3UrMl07ci5jaGlsZHJlbj1jfXJldHVybnskJHR5cGVvZjpmLHR5cGU6ZS50eXBlLGtleTpvLHJlZjphLHByb3BzOnIsX293bmVyOml9fSx0LmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9eyQkdHlwZW9mOmwsX2N1cnJlbnRWYWx1ZTplLF9jdXJyZW50VmFsdWUyOmUsX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsLF9kZWZhdWx0VmFsdWU6bnVsbCxfZ2xvYmFsTmFtZTpudWxsfSkuUHJvdmlkZXI9eyQkdHlwZW9mOmksX2NvbnRleHQ6ZX0sZS5Db25zdW1lcj1lfSx0LmNyZWF0ZUVsZW1lbnQ9Tyx0LmNyZWF0ZUZhY3Rvcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9Ty5iaW5kKG51bGwsZSk7cmV0dXJuIHQudHlwZT1lLHR9LHQuY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19LHQuZm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6YyxyZW5kZXI6ZX19LHQuaXNWYWxpZEVsZW1lbnQ9aix0Lmxhenk9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOnAsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDplfSxfaW5pdDp6fX0sdC5tZW1vPWZ1bmN0aW9uKGUsdCl7cmV0dXJueyQkdHlwZW9mOnMsdHlwZTplLGNvbXBhcmU6dm9pZCAwPT09dD9udWxsOnR9fSx0LnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihlKXt2YXIgdD1MLnRyYW5zaXRpb247TC50cmFuc2l0aW9uPXt9O3RyeXtlKCl9ZmluYWxseXtMLnRyYW5zaXRpb249dH19LHQudW5zdGFibGVfYWN0PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoImFjdCguLi4pIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgb2YgUmVhY3QuIil9LHQudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVC5jdXJyZW50LnVzZUNhbGxiYWNrKGUsdCl9LHQudXNlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gVC5jdXJyZW50LnVzZUNvbnRleHQoZSl9LHQudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sdC51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBULmN1cnJlbnQudXNlRGVmZXJyZWRWYWx1ZShlKX0sdC51c2VFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVC5jdXJyZW50LnVzZUVmZmVjdChlLHQpfSx0LnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIFQuY3VycmVudC51c2VJZCgpfSx0LnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBULmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQsbil9LHQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFQuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sdC51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVC5jdXJyZW50LnVzZUxheW91dEVmZmVjdChlLHQpfSx0LnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVC5jdXJyZW50LnVzZU1lbW8oZSx0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gVC5jdXJyZW50LnVzZVJlZHVjZXIoZSx0LG4pfSx0LnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gVC5jdXJyZW50LnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gVC5jdXJyZW50LnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gVC5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxuKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIFQuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj0iMTguMi4wIn0sZnVuY3Rpb24oZSx0LG4peyFmdW5jdGlvbiBlKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJiJmdW5jdGlvbiI9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0oKSxlLmV4cG9ydHM9bigxNzApfSxmdW5jdGlvbihhLGMsUil7dmFyIE49UigwKSxCPVIoMTcxKTtmdW5jdGlvbiBEKGUpe2Zvcih2YXIgdD0iaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9IitlLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXQrPSImYXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSk7cmV0dXJuIk1pbmlmaWVkIFJlYWN0IGVycm9yICMiK2UrIjsgdmlzaXQgIit0KyIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiJ9dmFyIEY9bmV3IFNldCxIPXt9O2Z1bmN0aW9uIFYoZSx0KXskKGUsdCksJChlKyJDYXB0dXJlIix0KX1mdW5jdGlvbiAkKGUsdCl7Zm9yKEhbZV09dCxlPTA7ZTx0Lmxlbmd0aDtlKyspRi5hZGQodFtlXSl9dmFyIFI9ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8dm9pZCAwPT09d2luZG93LmRvY3VtZW50fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksVz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEc9L15bOkEtWl9hLXpcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyRkZcdTAzNzAtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRF1bOkEtWl9hLXpcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyRkZcdTAzNzAtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRFwtLjAtOVx1MDBCN1x1MDMwMC1cdTAzNkZcdTIwM0YtXHUyMDQwXSokLyxxPXt9LFo9e307ZnVuY3Rpb24gWChlLHQsbixyKXtpZihudWxsPT10fHxmdW5jdGlvbihlLHQsbixyKXtpZihudWxsPT09bnx8MCE9PW4udHlwZSlzd2l0Y2godHlwZW9mIHQpe2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjpyZXR1cm4gMTtjYXNlImJvb2xlYW4iOnJldHVybiByP3ZvaWQgMDpudWxsIT09bj8hbi5hY2NlcHRzQm9vbGVhbnM6ImRhdGEtIiE9PShlPWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpKSYmImFyaWEtIiE9PWU7ZGVmYXVsdDpyZXR1cm59fShlLHQsbixyKSlyZXR1cm4gMTtpZighciYmbnVsbCE9PW4pc3dpdGNoKG4udHlwZSl7Y2FzZSAzOnJldHVybiF0O2Nhc2UgNDpyZXR1cm4hMT09PXQ7Y2FzZSA1OnJldHVybiBpc05hTih0KTtjYXNlIDY6cmV0dXJuIGlzTmFOKHQpfHx0PDF9fWZ1bmN0aW9uIG4oZSx0LG4scixvLGEsaSl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PXR8fDM9PT10fHw0PT09dCx0aGlzLmF0dHJpYnV0ZU5hbWU9cix0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1vLHRoaXMubXVzdFVzZVByb3BlcnR5PW4sdGhpcy5wcm9wZXJ0eU5hbWU9ZSx0aGlzLnR5cGU9dCx0aGlzLnNhbml0aXplVVJMPWEsdGhpcy5yZW1vdmVFbXB0eVN0cmluZz1pfXZhciBpPXt9LFk9KCJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZhdWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGUiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihlKXtpW2VdPW5ldyBuKGUsMCwhMSxlLG51bGwsITEsITEpfSksW1siYWNjZXB0Q2hhcnNldCIsImFjY2VwdC1jaGFyc2V0Il0sWyJjbGFzc05hbWUiLCJjbGFzcyJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF07aVt0XT1uZXcgbih0LDEsITEsZVsxXSxudWxsLCExLCExKX0pLFsiY29udGVudEVkaXRhYmxlIiwiZHJhZ2dhYmxlIiwic3BlbGxDaGVjayIsInZhbHVlIl0uZm9yRWFjaChmdW5jdGlvbihlKXtpW2VdPW5ldyBuKGUsMiwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSxbImF1dG9SZXZlcnNlIiwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCIsImZvY3VzYWJsZSIsInByZXNlcnZlQWxwaGEiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lbZV09bmV3IG4oZSwyLCExLGUsbnVsbCwhMSwhMSl9KSwiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lbZV09bmV3IG4oZSwzLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pLFsiY2hlY2tlZCIsIm11bHRpcGxlIiwibXV0ZWQiLCJzZWxlY3RlZCJdLmZvckVhY2goZnVuY3Rpb24oZSl7aVtlXT1uZXcgbihlLDMsITAsZSxudWxsLCExLCExKX0pLFsiY2FwdHVyZSIsImRvd25sb2FkIl0uZm9yRWFjaChmdW5jdGlvbihlKXtpW2VdPW5ldyBuKGUsNCwhMSxlLG51bGwsITEsITEpfSksWyJjb2xzIiwicm93cyIsInNpemUiLCJzcGFuIl0uZm9yRWFjaChmdW5jdGlvbihlKXtpW2VdPW5ldyBuKGUsNiwhMSxlLG51bGwsITEsITEpfSksWyJyb3dTcGFuIiwic3RhcnQiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lbZV09bmV3IG4oZSw1LCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pLC9bXC06XShbYS16XSkvZyk7ZnVuY3Rpb24gUShlKXtyZXR1cm4gZVsxXS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIEsoZSx0LG4scil7dmFyIG8sYT1pLmhhc093blByb3BlcnR5KHQpP2lbdF06bnVsbDsobnVsbCE9PWE/MCE9PWEudHlwZTpyfHwhKDI8dC5sZW5ndGgpfHwibyIhPT10WzBdJiYiTyIhPT10WzBdfHwibiIhPT10WzFdJiYiTiIhPT10WzFdKSYmKFgodCxuLGEscikmJihuPW51bGwpLHJ8fG51bGw9PT1hPyhvPXQsKFcuY2FsbChaLG8pfHwhVy5jYWxsKHEsbykmJihHLnRlc3Qobyk/WltvXT0hMDp2b2lkKHFbb109ITApKSkmJihudWxsPT09bj9lLnJlbW92ZUF0dHJpYnV0ZSh0KTplLnNldEF0dHJpYnV0ZSh0LCIiK24pKSk6YS5tdXN0VXNlUHJvcGVydHk/ZVthLnByb3BlcnR5TmFtZV09bnVsbD09PW4/MyE9PWEudHlwZSYmIiI6bjoodD1hLmF0dHJpYnV0ZU5hbWUscj1hLmF0dHJpYnV0ZU5hbWVzcGFjZSxudWxsPT09bj9lLnJlbW92ZUF0dHJpYnV0ZSh0KToobj0zPT09KGE9YS50eXBlKXx8ND09PWEmJiEwPT09bj8iIjoiIituLHI/ZS5zZXRBdHRyaWJ1dGVOUyhyLHQsbik6ZS5zZXRBdHRyaWJ1dGUodCxuKSkpKX0iYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoWSxRKTtpW3RdPW5ldyBuKHQsMSwhMSxlLG51bGwsITEsITEpfSksInhsaW5rOmFjdHVhdGUgeGxpbms6YXJjcm9sZSB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxpbms6dGl0bGUgeGxpbms6dHlwZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShZLFEpO2lbdF09bmV3IG4odCwxLCExLGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCExLCExKX0pLFsieG1sOmJhc2UiLCJ4bWw6bGFuZyIsInhtbDpzcGFjZSJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKFksUSk7aVt0XT1uZXcgbih0LDEsITEsZSwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwhMSwhMSl9KSxbInRhYkluZGV4IiwiY3Jvc3NPcmlnaW4iXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lbZV09bmV3IG4oZSwxLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pLGkueGxpbmtIcmVmPW5ldyBuKCJ4bGlua0hyZWYiLDEsITEsInhsaW5rOmhyZWYiLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwhMCwhMSksWyJzcmMiLCJocmVmIiwiYWN0aW9uIiwiZm9ybUFjdGlvbiJdLmZvckVhY2goZnVuY3Rpb24oZSl7aVtlXT1uZXcgbihlLDEsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITAsITApfSk7dmFyIEo9Ti5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxlZT1TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksdGU9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksbmU9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxyZT1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLG9lPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksYWU9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxpZT1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksbGU9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSxjZT1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLHVlPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSxzZT1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksZmU9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLGRlPShTeW1ib2wuZm9yKCJyZWFjdC5zY29wZSIpLFN5bWJvbC5mb3IoInJlYWN0LmRlYnVnX3RyYWNlX21vZGUiKSxTeW1ib2wuZm9yKCJyZWFjdC5vZmZzY3JlZW4iKSkscGU9KFN5bWJvbC5mb3IoInJlYWN0LmxlZ2FjeV9oaWRkZW4iKSxTeW1ib2wuZm9yKCJyZWFjdC5jYWNoZSIpLFN5bWJvbC5mb3IoInJlYWN0LnRyYWNpbmdfbWFya2VyIiksU3ltYm9sLml0ZXJhdG9yKTtmdW5jdGlvbiBtZShlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSYmImZ1bmN0aW9uIj09dHlwZW9mKGU9cGUmJmVbcGVdfHxlWyJAQGl0ZXJhdG9yIl0pP2U6bnVsbH12YXIgaGUsZz1PYmplY3QuYXNzaWduO2Z1bmN0aW9uIGdlKGUpe2lmKHZvaWQgMD09PWhlKXRyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGUpe3ZhciB0PWUuc3RhY2sudHJpbSgpLm1hdGNoKC9cbiggKihhdCApPykvKTtoZT10JiZ0WzFdfHwiIn1yZXR1cm4iXG4iK2hlK2V9dmFyIGJlPSExO2Z1bmN0aW9uIHllKHQsZSl7aWYoIXR8fGJlKXJldHVybiIiO2JlPSEwO3ZhciBuPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7aWYoZSlpZihlPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwcm9wcyIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCl9fSksIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmNvbnN0cnVjdCl7dHJ5e1JlZmxlY3QuY29uc3RydWN0KGUsW10pfWNhdGNoKGUpe3ZhciByPWV9UmVmbGVjdC5jb25zdHJ1Y3QodCxbXSxlKX1lbHNle3RyeXtlLmNhbGwoKX1jYXRjaChlKXtyPWV9dC5jYWxsKGUucHJvdG90eXBlKX1lbHNle3RyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGUpe3I9ZX10KCl9fWNhdGNoKGUpe2lmKGUmJnImJiJzdHJpbmciPT10eXBlb2YgZS5zdGFjayl7Zm9yKHZhciBvLGE9ZS5zdGFjay5zcGxpdCgiXG4iKSxpPXIuc3RhY2suc3BsaXQoIlxuIiksbD1hLmxlbmd0aC0xLGM9aS5sZW5ndGgtMTsxPD1sJiYwPD1jJiZhW2xdIT09aVtjXTspYy0tO2Zvcig7MTw9bCYmMDw9YztsLS0sYy0tKWlmKGFbbF0hPT1pW2NdKXtpZigxIT09bHx8MSE9PWMpZG97aWYobC0tLC0tYzwwfHxhW2xdIT09aVtjXSlyZXR1cm4gbz0iXG4iK2FbbF0ucmVwbGFjZSgiIGF0IG5ldyAiLCIgYXQgIiksbz10LmRpc3BsYXlOYW1lJiZvLmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpP28ucmVwbGFjZSgiPGFub255bW91cz4iLHQuZGlzcGxheU5hbWUpOm99d2hpbGUoMTw9bCYmMDw9Yyk7YnJlYWt9fX1maW5hbGx5e2JlPSExLEVycm9yLnByZXBhcmVTdGFja1RyYWNlPW59cmV0dXJuKHQ9dD90LmRpc3BsYXlOYW1lfHx0Lm5hbWU6IiIpP2dlKHQpOiIifWZ1bmN0aW9uIHZlKGUpe3ZhciB0PWUudHlwZTtzd2l0Y2goZS50YWcpe2Nhc2UgMjQ6cmV0dXJuIkNhY2hlIjtjYXNlIDk6cmV0dXJuKHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Db25zdW1lciI7Y2FzZSAxMDpyZXR1cm4odC5fY29udGV4dC5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLlByb3ZpZGVyIjtjYXNlIDE4OnJldHVybiJEZWh5ZHJhdGVkRnJhZ21lbnQiO2Nhc2UgMTE6cmV0dXJuIGU9KGU9dC5yZW5kZXIpLmRpc3BsYXlOYW1lfHxlLm5hbWV8fCIiLHQuZGlzcGxheU5hbWV8fCgiIiE9PWU/IkZvcndhcmRSZWYoIitlKyIpIjoiRm9yd2FyZFJlZiIpO2Nhc2UgNzpyZXR1cm4iRnJhZ21lbnQiO2Nhc2UgNTpyZXR1cm4gdDtjYXNlIDQ6cmV0dXJuIlBvcnRhbCI7Y2FzZSAzOnJldHVybiJSb290IjtjYXNlIDY6cmV0dXJuIlRleHQiO2Nhc2UgMTY6cmV0dXJuIGZ1bmN0aW9uIGUodCl7aWYobnVsbCE9dCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIHQuZGlzcGxheU5hbWV8fHQubmFtZXx8bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7c3dpdGNoKHQpe2Nhc2UgbmU6cmV0dXJuIkZyYWdtZW50IjtjYXNlIHRlOnJldHVybiJQb3J0YWwiO2Nhc2Ugb2U6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIHJlOnJldHVybiJTdHJpY3RNb2RlIjtjYXNlIGNlOnJldHVybiJTdXNwZW5zZSI7Y2FzZSB1ZTpyZXR1cm4iU3VzcGVuc2VMaXN0In1pZigib2JqZWN0Ij09dHlwZW9mIHQpc3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgaWU6cmV0dXJuKHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Db25zdW1lciI7Y2FzZSBhZTpyZXR1cm4odC5fY29udGV4dC5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLlByb3ZpZGVyIjtjYXNlIGxlOnZhciBuPXQucmVuZGVyO3JldHVybiB0PSh0PXQuZGlzcGxheU5hbWUpfHwoIiIhPT0odD1uLmRpc3BsYXlOYW1lfHxuLm5hbWV8fCIiKT8iRm9yd2FyZFJlZigiK3QrIikiOiJGb3J3YXJkUmVmIik7Y2FzZSBzZTpyZXR1cm4gbnVsbCE9PShuPXQuZGlzcGxheU5hbWV8fG51bGwpP246ZSh0LnR5cGUpfHwiTWVtbyI7Y2FzZSBmZTpuPXQuX3BheWxvYWQsdD10Ll9pbml0O3RyeXtyZXR1cm4gZSh0KG4pKX1jYXRjaChlKXt9fX1yZXR1cm4gbnVsbH0odCk7Y2FzZSA4OnJldHVybiB0PT09cmU/IlN0cmljdE1vZGUiOiJNb2RlIjtjYXNlIDIyOnJldHVybiJPZmZzY3JlZW4iO2Nhc2UgMTI6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIDIxOnJldHVybiJTY29wZSI7Y2FzZSAxMzpyZXR1cm4iU3VzcGVuc2UiO2Nhc2UgMTk6cmV0dXJuIlN1c3BlbnNlTGlzdCI7Y2FzZSAyNTpyZXR1cm4iVHJhY2luZ01hcmtlciI7Y2FzZSAxOmNhc2UgMDpjYXNlIDE3OmNhc2UgMjpjYXNlIDE0OmNhc2UgMTU6aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIHQuZGlzcGxheU5hbWV8fHQubmFtZXx8bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gd2UoZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlImJvb2xlYW4iOmNhc2UibnVtYmVyIjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOmNhc2Uib2JqZWN0IjpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiB4ZShlKXt2YXIgdD1lLnR5cGU7cmV0dXJuKGU9ZS5ub2RlTmFtZSkmJiJpbnB1dCI9PT1lLnRvTG93ZXJDYXNlKCkmJigiY2hlY2tib3giPT09dHx8InJhZGlvIj09PXQpfWZ1bmN0aW9uIGtlKGUpe2UuX3ZhbHVlVHJhY2tlcnx8KGUuX3ZhbHVlVHJhY2tlcj1mdW5jdGlvbihlKXt2YXIgdCxuLHI9eGUoZSk/ImNoZWNrZWQiOiJ2YWx1ZSIsbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUuY29uc3RydWN0b3IucHJvdG90eXBlLHIpLGE9IiIrZVtyXTtpZighZS5oYXNPd25Qcm9wZXJ0eShyKSYmdm9pZCAwIT09byYmImZ1bmN0aW9uIj09dHlwZW9mIG8uZ2V0JiYiZnVuY3Rpb24iPT10eXBlb2Ygby5zZXQpcmV0dXJuIHQ9by5nZXQsbj1vLnNldCxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGUpe2E9IiIrZSxuLmNhbGwodGhpcyxlKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOm8uZW51bWVyYWJsZX0pLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBhfSxzZXRWYWx1ZTpmdW5jdGlvbihlKXthPSIiK2V9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2UuX3ZhbHVlVHJhY2tlcj1udWxsLGRlbGV0ZSBlW3JdfX19KGUpKX1mdW5jdGlvbiBTZShlKXt2YXIgdCxuLHI7aWYoZSlyZXR1cm4odD1lLl92YWx1ZVRyYWNrZXIpPyhuPXQuZ2V0VmFsdWUoKSxyPSIiLChlPXI9ZT94ZShlKT9lLmNoZWNrZWQ/InRydWUiOiJmYWxzZSI6ZS52YWx1ZTpyKSE9PW4mJih0LnNldFZhbHVlKGUpLDEpKToxfWZ1bmN0aW9uIENlKHQpe2lmKHZvaWQgMD09PSh0PXR8fCgidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50OnZvaWQgMCkpKXJldHVybiBudWxsO3RyeXtyZXR1cm4gdC5hY3RpdmVFbGVtZW50fHx0LmJvZHl9Y2F0Y2goZSl7cmV0dXJuIHQuYm9keX19ZnVuY3Rpb24gRWUoZSx0KXt2YXIgbj10LmNoZWNrZWQ7cmV0dXJuIGcoe30sdCx7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9bj9uOmUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIE9lKGUsdCl7dmFyIG49bnVsbD09dC5kZWZhdWx0VmFsdWU/IiI6dC5kZWZhdWx0VmFsdWUscj1udWxsIT10LmNoZWNrZWQ/dC5jaGVja2VkOnQuZGVmYXVsdENoZWNrZWQsbj13ZShudWxsIT10LnZhbHVlP3QudmFsdWU6bik7ZS5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpyLGluaXRpYWxWYWx1ZTpuLGNvbnRyb2xsZWQ6ImNoZWNrYm94Ij09PXQudHlwZXx8InJhZGlvIj09PXQudHlwZT9udWxsIT10LmNoZWNrZWQ6bnVsbCE9dC52YWx1ZX19ZnVuY3Rpb24gamUoZSx0KXtudWxsIT0odD10LmNoZWNrZWQpJiZLKGUsImNoZWNrZWQiLHQsITEpfWZ1bmN0aW9uIEFlKGUsdCl7amUoZSx0KTt2YXIgbj13ZSh0LnZhbHVlKSxyPXQudHlwZTtpZihudWxsIT1uKSJudW1iZXIiPT09cj8oMD09PW4mJiIiPT09ZS52YWx1ZXx8ZS52YWx1ZSE9bikmJihlLnZhbHVlPSIiK24pOmUudmFsdWUhPT0iIituJiYoZS52YWx1ZT0iIituKTtlbHNlIGlmKCJzdWJtaXQiPT09cnx8InJlc2V0Ij09PXIpcmV0dXJuIHZvaWQgZS5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIik7dC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKT9JZShlLHQudHlwZSxuKTp0Lmhhc093blByb3BlcnR5KCJkZWZhdWx0VmFsdWUiKSYmSWUoZSx0LnR5cGUsd2UodC5kZWZhdWx0VmFsdWUpKSxudWxsPT10LmNoZWNrZWQmJm51bGwhPXQuZGVmYXVsdENoZWNrZWQmJihlLmRlZmF1bHRDaGVja2VkPSEhdC5kZWZhdWx0Q2hlY2tlZCl9ZnVuY3Rpb24gUGUoZSx0LG4pe2lmKHQuaGFzT3duUHJvcGVydHkoInZhbHVlIil8fHQuaGFzT3duUHJvcGVydHkoImRlZmF1bHRWYWx1ZSIpKXt2YXIgcj10LnR5cGU7aWYoISgic3VibWl0IiE9PXImJiJyZXNldCIhPT1yfHx2b2lkIDAhPT10LnZhbHVlJiZudWxsIT09dC52YWx1ZSkpcmV0dXJuO3Q9IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSxufHx0PT09ZS52YWx1ZXx8KGUudmFsdWU9dCksZS5kZWZhdWx0VmFsdWU9dH0iIiE9PShuPWUubmFtZSkmJihlLm5hbWU9IiIpLGUuZGVmYXVsdENoZWNrZWQ9ISFlLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWQsIiIhPT1uJiYoZS5uYW1lPW4pfWZ1bmN0aW9uIEllKGUsdCxuKXsibnVtYmVyIj09PXQmJkNlKGUub3duZXJEb2N1bWVudCk9PT1lfHwobnVsbD09bj9lLmRlZmF1bHRWYWx1ZT0iIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmUuZGVmYXVsdFZhbHVlIT09IiIrbiYmKGUuZGVmYXVsdFZhbHVlPSIiK24pKX12YXIgX2U9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiB6ZShlLHQsbixyKXtpZihlPWUub3B0aW9ucyx0KXt0PXt9O2Zvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKXRbIiQiK25bb11dPSEwO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspbz10Lmhhc093blByb3BlcnR5KCIkIitlW25dLnZhbHVlKSxlW25dLnNlbGVjdGVkIT09byYmKGVbbl0uc2VsZWN0ZWQ9byksbyYmciYmKGVbbl0uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2ZvcihuPSIiK3dlKG4pLHQ9bnVsbCxvPTA7bzxlLmxlbmd0aDtvKyspe2lmKGVbb10udmFsdWU9PT1uKXJldHVybiBlW29dLnNlbGVjdGVkPSEwLHZvaWQociYmKGVbb10uZGVmYXVsdFNlbGVjdGVkPSEwKSk7bnVsbCE9PXR8fGVbb10uZGlzYWJsZWR8fCh0PWVbb10pfW51bGwhPT10JiYodC5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIFRlKGUsdCl7aWYobnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcihEKDkxKSk7cmV0dXJuIGcoe30sdCx7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIExlKGUsdCl7dmFyIG49dC52YWx1ZTtpZihudWxsPT1uKXtpZihuPXQuY2hpbGRyZW4sdD10LmRlZmF1bHRWYWx1ZSxudWxsIT1uKXtpZihudWxsIT10KXRocm93IEVycm9yKEQoOTIpKTtpZihfZShuKSl7aWYoMTxuLmxlbmd0aCl0aHJvdyBFcnJvcihEKDkzKSk7bj1uWzBdfXQ9bn1uPXQ9bnVsbD09dD8iIjp0fWUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOndlKG4pfX1mdW5jdGlvbiBNZShlLHQpe3ZhciBuPXdlKHQudmFsdWUpLHI9d2UodC5kZWZhdWx0VmFsdWUpO251bGwhPW4mJigobj0iIituKSE9PWUudmFsdWUmJihlLnZhbHVlPW4pLG51bGw9PXQuZGVmYXVsdFZhbHVlKSYmZS5kZWZhdWx0VmFsdWUhPT1uJiYoZS5kZWZhdWx0VmFsdWU9biksbnVsbCE9ciYmKGUuZGVmYXVsdFZhbHVlPSIiK3IpfWZ1bmN0aW9uIFJlKGUpe3ZhciB0PWUudGV4dENvbnRlbnQ7dD09PWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJiIiIT09dCYmbnVsbCE9PXQmJihlLnZhbHVlPXQpfWZ1bmN0aW9uIE5lKGUpe3N3aXRjaChlKXtjYXNlInN2ZyI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjtjYXNlIm1hdGgiOnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIjtkZWZhdWx0OnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIn19ZnVuY3Rpb24gRGUoZSx0KXtyZXR1cm4gbnVsbD09ZXx8Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09ZT9OZSh0KToiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPT09ZSYmImZvcmVpZ25PYmplY3QiPT09dD8iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI6ZX1CZT1mdW5jdGlvbihlLHQpe2lmKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIhPT1lLm5hbWVzcGFjZVVSSXx8ImlubmVySFRNTCJpbiBlKWUuaW5uZXJIVE1MPXQ7ZWxzZXtmb3IoKFVlPVVlfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPSI8c3ZnPiIrdC52YWx1ZU9mKCkudG9TdHJpbmcoKSsiPC9zdmc+Iix0PVVlLmZpcnN0Q2hpbGQ7ZS5maXJzdENoaWxkOyllLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCk7Zm9yKDt0LmZpcnN0Q2hpbGQ7KWUuYXBwZW5kQ2hpbGQodC5maXJzdENoaWxkKX19O3ZhciBVZSxCZSxGZT0idW5kZWZpbmVkIiE9dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihlLHQsbixyKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbigpe3JldHVybiBCZShlLHQpfSl9OkJlO2Z1bmN0aW9uIEhlKGUsdCl7aWYodCl7dmFyIG49ZS5maXJzdENoaWxkO2lmKG4mJm49PT1lLmxhc3RDaGlsZCYmMz09PW4ubm9kZVR5cGUpcmV0dXJuIHZvaWQobi5ub2RlVmFsdWU9dCl9ZS50ZXh0Q29udGVudD10fXZhciBWZT17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYXNwZWN0UmF0aW86ITAsYm9yZGVySW1hZ2VPdXRzZXQ6ITAsYm9yZGVySW1hZ2VTbGljZTohMCxib3JkZXJJbWFnZVdpZHRoOiEwLGJveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGJveE9yZGluYWxHcm91cDohMCxjb2x1bW5Db3VudDohMCxjb2x1bW5zOiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZsZXhPcmRlcjohMCxncmlkQXJlYTohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1NwYW46ITAsZ3JpZFJvd1N0YXJ0OiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3BhbjohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZm9udFdlaWdodDohMCxsaW5lQ2xhbXA6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsdGFiU2l6ZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZURhc2hhcnJheTohMCxzdHJva2VEYXNob2Zmc2V0OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH0sJGU9WyJXZWJraXQiLCJtcyIsIk1veiIsIk8iXTtmdW5jdGlvbiBXZShlLHQsbil7cmV0dXJuIG51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCIiPT09dD8iIjpufHwibnVtYmVyIiE9dHlwZW9mIHR8fDA9PT10fHxWZS5oYXNPd25Qcm9wZXJ0eShlKSYmVmVbZV0/KCIiK3QpLnRyaW0oKTp0KyJweCJ9ZnVuY3Rpb24gR2UoZSx0KXtmb3IodmFyIG4gaW4gZT1lLnN0eWxlLHQpe3ZhciByLG87dC5oYXNPd25Qcm9wZXJ0eShuKSYmKHI9MD09PW4uaW5kZXhPZigiLS0iKSxvPVdlKG4sdFtuXSxyKSwiZmxvYXQiPT09biYmKG49ImNzc0Zsb2F0Iikscj9lLnNldFByb3BlcnR5KG4sbyk6ZVtuXT1vKX19T2JqZWN0LmtleXMoVmUpLmZvckVhY2goZnVuY3Rpb24odCl7JGUuZm9yRWFjaChmdW5jdGlvbihlKXtlPWUrdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnN1YnN0cmluZygxKSxWZVtlXT1WZVt0XX0pfSk7dmFyIHFlPWcoe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7ZnVuY3Rpb24gWmUoZSx0KXtpZih0KXtpZihxZVtlXSYmKG51bGwhPXQuY2hpbGRyZW58fG51bGwhPXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKEQoMTM3LGUpKTtpZihudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXtpZihudWxsIT10LmNoaWxkcmVuKXRocm93IEVycm9yKEQoNjApKTtpZigib2JqZWN0IiE9dHlwZW9mIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8fCEoIl9faHRtbCJpbiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihEKDYxKSl9aWYobnVsbCE9dC5zdHlsZSYmIm9iamVjdCIhPXR5cGVvZiB0LnN0eWxlKXRocm93IEVycm9yKEQoNjIpKX19ZnVuY3Rpb24gWGUoZSx0KXtpZigtMT09PWUuaW5kZXhPZigiLSIpKXJldHVybiJzdHJpbmciPT10eXBlb2YgdC5pcztzd2l0Y2goZSl7Y2FzZSJhbm5vdGF0aW9uLXhtbCI6Y2FzZSJjb2xvci1wcm9maWxlIjpjYXNlImZvbnQtZmFjZSI6Y2FzZSJmb250LWZhY2Utc3JjIjpjYXNlImZvbnQtZmFjZS11cmkiOmNhc2UiZm9udC1mYWNlLWZvcm1hdCI6Y2FzZSJmb250LWZhY2UtbmFtZSI6Y2FzZSJtaXNzaW5nLWdseXBoIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgWWU9bnVsbDtmdW5jdGlvbiBRZShlKXtyZXR1cm4gMz09PShlPShlPWUudGFyZ2V0fHxlLnNyY0VsZW1lbnR8fHdpbmRvdykuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQ/ZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudDplKS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZX12YXIgS2U9bnVsbCxKZT1udWxsLGV0PW51bGw7ZnVuY3Rpb24gdHQoZSl7aWYoZT16byhlKSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEtlKXRocm93IEVycm9yKEQoMjgwKSk7dmFyIHQ9ZS5zdGF0ZU5vZGU7dCYmKHQ9TG8odCksS2UoZS5zdGF0ZU5vZGUsZS50eXBlLHQpKX19ZnVuY3Rpb24gbnQoZSl7SmU/ZXQ/ZXQucHVzaChlKTpldD1bZV06SmU9ZX1mdW5jdGlvbiBydCgpe2lmKEplKXt2YXIgZT1KZSx0PWV0O2lmKGV0PUplPW51bGwsdHQoZSksdClmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKXR0KHRbZV0pfX1mdW5jdGlvbiBvdChlLHQpe3JldHVybiBlKHQpfWZ1bmN0aW9uIGF0KCl7fXZhciBpdD0hMTtmdW5jdGlvbiBsdChlLHQsbil7aWYoaXQpcmV0dXJuIGUodCxuKTtpdD0hMDt0cnl7b3QoZSx0LG4pfWZpbmFsbHl7aXQ9ITEsbnVsbD09PUplJiZudWxsPT09ZXR8fChhdCgpLHJ0KCkpfX1mdW5jdGlvbiBjdChlLHQpe3ZhciBuPWUuc3RhdGVOb2RlO2lmKG51bGw9PT1uKXJldHVybiBudWxsO3ZhciByPUxvKG4pO2lmKG51bGw9PT1yKXJldHVybiBudWxsO3N3aXRjaChuPXJbdF0sdCl7Y2FzZSJvbkNsaWNrIjpjYXNlIm9uQ2xpY2tDYXB0dXJlIjpjYXNlIm9uRG91YmxlQ2xpY2siOmNhc2Uib25Eb3VibGVDbGlja0NhcHR1cmUiOmNhc2Uib25Nb3VzZURvd24iOmNhc2Uib25Nb3VzZURvd25DYXB0dXJlIjpjYXNlIm9uTW91c2VNb3ZlIjpjYXNlIm9uTW91c2VNb3ZlQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlVXAiOmNhc2Uib25Nb3VzZVVwQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRW50ZXIiOmU9IShyPShyPSFyLmRpc2FibGVkKT9yOiEoImJ1dHRvbiI9PT0oZT1lLnR5cGUpfHwiaW5wdXQiPT09ZXx8InNlbGVjdCI9PT1lfHwidGV4dGFyZWEiPT09ZSkpO2JyZWFrO2RlZmF1bHQ6ZT0hMX1pZihlKXJldHVybiBudWxsO2lmKG4mJiJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IEVycm9yKEQoMjMxLHQsdHlwZW9mIG4pKTtyZXR1cm4gbn12YXIgdXQ9ITE7aWYoUil0cnl7dmFyIGU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt1dD0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsZSxlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsZSxlKX1jYXRjaChlKXt1dD0hMX12YXIgc3Q9ITEsZnQ9bnVsbCxkdD0hMSxwdD1udWxsLG10PXtvbkVycm9yOmZ1bmN0aW9uKGUpe3N0PSEwLGZ0PWV9fTtmdW5jdGlvbiBodChlLHQsbixyLG8sYSxpLGwsYyl7c3Q9ITEsZnQ9bnVsbCxmdW5jdGlvbihlLHQsbixyLG8sYSxpLGwsYyl7dmFyIHU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpO3RyeXt0LmFwcGx5KG4sdSl9Y2F0Y2goZSl7dGhpcy5vbkVycm9yKGUpfX0uYXBwbHkobXQsYXJndW1lbnRzKX1mdW5jdGlvbiBndChlKXt2YXIgdD1lLG49ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2UgZm9yKGU9dDswIT0oNDA5OCYodD1lKS5mbGFncykmJihuPXQucmV0dXJuKSxlPXQucmV0dXJuOyk7cmV0dXJuIDM9PT10LnRhZz9uOm51bGx9ZnVuY3Rpb24gYnQoZSl7aWYoMTM9PT1lLnRhZyl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT0odD1udWxsPT09dCYmbnVsbCE9PShlPWUuYWx0ZXJuYXRlKT9lLm1lbW9pemVkU3RhdGU6dCkpcmV0dXJuIHQuZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiB5dChlKXtpZihndChlKSE9PWUpdGhyb3cgRXJyb3IoRCgxODgpKX1mdW5jdGlvbiB2dChlKXtyZXR1cm4gbnVsbCE9PShlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO2lmKCF0KXtpZihudWxsPT09KHQ9Z3QoZSkpKXRocm93IEVycm9yKEQoMTg4KSk7cmV0dXJuIHQhPT1lP251bGw6ZX1mb3IodmFyIG49ZSxyPXQ7Oyl7dmFyIG89bi5yZXR1cm47aWYobnVsbD09PW8pYnJlYWs7dmFyIGE9by5hbHRlcm5hdGU7aWYobnVsbD09PWEpe2lmKG51bGw9PT0ocj1vLnJldHVybikpYnJlYWs7bj1yfWVsc2V7aWYoby5jaGlsZD09PWEuY2hpbGQpe2ZvcihhPW8uY2hpbGQ7YTspe2lmKGE9PT1uKXJldHVybiB5dChvKSxlO2lmKGE9PT1yKXJldHVybiB5dChvKSx0O2E9YS5zaWJsaW5nfXRocm93IEVycm9yKEQoMTg4KSl9aWYobi5yZXR1cm4hPT1yLnJldHVybiluPW8scj1hO2Vsc2V7Zm9yKHZhciBpPSExLGw9by5jaGlsZDtsOyl7aWYobD09PW4pe2k9ITAsbj1vLHI9YTticmVha31pZihsPT09cil7aT0hMCxyPW8sbj1hO2JyZWFrfWw9bC5zaWJsaW5nfWlmKCFpKXtmb3IobD1hLmNoaWxkO2w7KXtpZihsPT09bil7aT0hMCxuPWEscj1vO2JyZWFrfWlmKGw9PT1yKXtpPSEwLHI9YSxuPW87YnJlYWt9bD1sLnNpYmxpbmd9aWYoIWkpdGhyb3cgRXJyb3IoRCgxODkpKX19aWYobi5hbHRlcm5hdGUhPT1yKXRocm93IEVycm9yKEQoMTkwKSl9fWlmKDMhPT1uLnRhZyl0aHJvdyBFcnJvcihEKDE4OCkpO3JldHVybiBuLnN0YXRlTm9kZS5jdXJyZW50PT09bj9lOnR9KGUpKT9mdW5jdGlvbiBlKHQpe2lmKDU9PT10LnRhZ3x8Nj09PXQudGFnKXJldHVybiB0O2Zvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXt2YXIgbj1lKHQpO2lmKG51bGwhPT1uKXJldHVybiBuO3Q9dC5zaWJsaW5nfXJldHVybiBudWxsfShlKTpudWxsfXZhciB3dD1CLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2sseHQ9Qi51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxrdD1CLnVuc3RhYmxlX3Nob3VsZFlpZWxkLFN0PUIudW5zdGFibGVfcmVxdWVzdFBhaW50LGg9Qi51bnN0YWJsZV9ub3csQ3Q9Qi51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxFdD1CLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LE90PUIudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksanQ9Qi51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxBdD1CLnVuc3RhYmxlX0xvd1ByaW9yaXR5LFB0PUIudW5zdGFibGVfSWRsZVByaW9yaXR5LEl0PW51bGwsX3Q9bnVsbDt2YXIgenQ9TWF0aC5jbHozMnx8ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PShlPj4+PTApPzMyOjMxLShUdChlKS9MdHwwKXwwfSxUdD1NYXRoLmxvZyxMdD1NYXRoLkxOMjt2YXIgTXQ9NjQsUnQ9NDE5NDMwNDtmdW5jdGlvbiBOdChlKXtzd2l0Y2goZSYtZSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIDQxOTQyNDAmZTtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OnJldHVybiAxMzAwMjM0MjQmZTtjYXNlIDEzNDIxNzcyODpyZXR1cm4gMTM0MjE3NzI4O2Nhc2UgMjY4NDM1NDU2OnJldHVybiAyNjg0MzU0NTY7Y2FzZSA1MzY4NzA5MTI6cmV0dXJuIDUzNjg3MDkxMjtjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuIDEwNzM3NDE4MjQ7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gRHQoZSx0KXt2YXIgbj1lLnBlbmRpbmdMYW5lcztpZigwPT09bilyZXR1cm4gMDt2YXIgcixvPTAsYT1lLnN1c3BlbmRlZExhbmVzLGk9ZS5waW5nZWRMYW5lcyxsPTI2ODQzNTQ1NSZuO2lmKDAhPWw/MCE9KHI9bCZ+YSk/bz1OdChyKTowIT09KGkmPWwpJiYobz1OdChpKSk6MCE9KGw9biZ+YSk/bz1OdChsKTowIT09aSYmKG89TnQoaSkpLDA9PT1vKXJldHVybiAwO2lmKDAhPT10JiZ0IT09byYmMD09KHQmYSkmJigoaT10Ji10KTw9KGE9byYtbyl8fDE2PT09YSYmMCE9KDQxOTQyNDAmaSkpKXJldHVybiB0O2lmKDAhPSg0Jm8pJiYob3w9MTYmbiksMCE9PSh0PWUuZW50YW5nbGVkTGFuZXMpKWZvcihlPWUuZW50YW5nbGVtZW50cyx0Jj1vOzA8dDspb3w9ZVtuPTMxLXp0KHQpXSx0Jj1+KGE9MTw8bik7cmV0dXJuIG99ZnVuY3Rpb24gVXQoZSx0KXtmb3IodmFyIG49ZS5zdXNwZW5kZWRMYW5lcyxyPWUucGluZ2VkTGFuZXMsbz1lLmV4cGlyYXRpb25UaW1lcyxhPWUucGVuZGluZ0xhbmVzOzA8YTspe3ZhciBpPTMxLXp0KGEpLGw9MTw8aSxjPW9baV07LTE9PT1jPzAhPShsJm4pJiYwPT0obCZyKXx8KG9baV09ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIHQrMjUwO2Nhc2UgODpjYXNlIDE2OmNhc2UgMzI6Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gdCs1ZTM7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpyZXR1cm4tMTtkZWZhdWx0OnJldHVybi0xfX0obCx0KSk6Yzw9dCYmKGUuZXhwaXJlZExhbmVzfD1sKSxhJj1+bH19ZnVuY3Rpb24gQnQoZSl7cmV0dXJuIDAhPT0oZT0tMTA3Mzc0MTgyNSZlLnBlbmRpbmdMYW5lcyk/ZToxMDczNzQxODI0JmU/MTA3Mzc0MTgyNDowfWZ1bmN0aW9uIEZ0KCl7dmFyIGU9TXQ7cmV0dXJuIDA9PSg0MTk0MjQwJihNdDw8PTEpKSYmKE10PTY0KSxlfWZ1bmN0aW9uIEh0KGUpe2Zvcih2YXIgdD1bXSxuPTA7bjwzMTtuKyspdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIFZ0KGUsdCxuKXtlLnBlbmRpbmdMYW5lc3w9dCw1MzY4NzA5MTIhPT10JiYoZS5zdXNwZW5kZWRMYW5lcz0wLGUucGluZ2VkTGFuZXM9MCksKGU9ZS5ldmVudFRpbWVzKVt0PTMxLXp0KHQpXT1ufWZ1bmN0aW9uICR0KGUsdCl7dmFyIG49ZS5lbnRhbmdsZWRMYW5lc3w9dDtmb3IoZT1lLmVudGFuZ2xlbWVudHM7bjspe3ZhciByPTMxLXp0KG4pLG89MTw8cjtvJnR8ZVtyXSZ0JiYoZVtyXXw9dCksbiY9fm99fXZhciB4PTA7ZnVuY3Rpb24gV3QoZSl7cmV0dXJuIDE8KGUmPS1lKT80PGU/MCE9KDI2ODQzNTQ1NSZlKT8xNjo1MzY4NzA5MTI6NDoxfXZhciBHdCxxdCxadCxYdCxZdCxRdD0hMSxLdD1bXSxKdD1udWxsLGVuPW51bGwsdG49bnVsbCxubj1uZXcgTWFwLHJuPW5ldyBNYXAsb249W10sYW49Im1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCBzdWJtaXQiLnNwbGl0KCIgIik7ZnVuY3Rpb24gbG4oZSx0KXtzd2l0Y2goZSl7Y2FzZSJmb2N1c2luIjpjYXNlImZvY3Vzb3V0IjpKdD1udWxsO2JyZWFrO2Nhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdsZWF2ZSI6ZW49bnVsbDticmVhaztjYXNlIm1vdXNlb3ZlciI6Y2FzZSJtb3VzZW91dCI6dG49bnVsbDticmVhaztjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJvdXQiOm5uLmRlbGV0ZSh0LnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOnJuLmRlbGV0ZSh0LnBvaW50ZXJJZCl9fWZ1bmN0aW9uIGNuKGUsdCxuLHIsbyxhKXtyZXR1cm4gbnVsbD09PWV8fGUubmF0aXZlRXZlbnQhPT1hPyhlPXtibG9ja2VkT246dCxkb21FdmVudE5hbWU6bixldmVudFN5c3RlbUZsYWdzOnIsbmF0aXZlRXZlbnQ6YSx0YXJnZXRDb250YWluZXJzOltvXX0sbnVsbCE9PXQmJm51bGwhPT0odD16byh0KSkmJnF0KHQpKTooZS5ldmVudFN5c3RlbUZsYWdzfD1yLHQ9ZS50YXJnZXRDb250YWluZXJzLG51bGwhPT1vJiYtMT09PXQuaW5kZXhPZihvKSYmdC5wdXNoKG8pKSxlfWZ1bmN0aW9uIHVuKGUpe3ZhciB0PV9vKGUudGFyZ2V0KTtpZihudWxsIT09dCl7dmFyIG49Z3QodCk7aWYobnVsbCE9PW4paWYoMTM9PT0odD1uLnRhZykpe2lmKG51bGwhPT0odD1idChuKSkpcmV0dXJuIGUuYmxvY2tlZE9uPXQsdm9pZCBZdChlLnByaW9yaXR5LGZ1bmN0aW9uKCl7WnQobil9KX1lbHNlIGlmKDM9PT10JiZuLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiB2b2lkKGUuYmxvY2tlZE9uPTM9PT1uLnRhZz9uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGwpfWUuYmxvY2tlZE9uPW51bGx9ZnVuY3Rpb24gc24oZSl7aWYobnVsbD09PWUuYmxvY2tlZE9uKXtmb3IodmFyIHQ9ZS50YXJnZXRDb250YWluZXJzOzA8dC5sZW5ndGg7KXt2YXIgbj14bihlLmRvbUV2ZW50TmFtZSxlLmV2ZW50U3lzdGVtRmxhZ3MsdFswXSxlLm5hdGl2ZUV2ZW50KTtpZihudWxsIT09bilyZXR1cm4gbnVsbCE9PSh0PXpvKG4pKSYmcXQodCksZS5ibG9ja2VkT249biwwO3ZhciByPW5ldyhuPWUubmF0aXZlRXZlbnQpLmNvbnN0cnVjdG9yKG4udHlwZSxuKTtZZT1yLG4udGFyZ2V0LmRpc3BhdGNoRXZlbnQociksWWU9bnVsbCx0LnNoaWZ0KCl9cmV0dXJuIDF9fWZ1bmN0aW9uIGZuKGUsdCxuKXtzbihlKSYmbi5kZWxldGUodCl9ZnVuY3Rpb24gZG4oKXtRdD0hMSxudWxsIT09SnQmJnNuKEp0KSYmKEp0PW51bGwpLG51bGwhPT1lbiYmc24oZW4pJiYoZW49bnVsbCksbnVsbCE9PXRuJiZzbih0bikmJih0bj1udWxsKSxubi5mb3JFYWNoKGZuKSxybi5mb3JFYWNoKGZuKX1mdW5jdGlvbiBwbihlLHQpe2UuYmxvY2tlZE9uPT09dCYmKGUuYmxvY2tlZE9uPW51bGwsUXR8fChRdD0hMCxCLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soQi51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxkbikpKX1mdW5jdGlvbiBtbih0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBwbihlLHQpfWlmKDA8S3QubGVuZ3RoKXtwbihLdFswXSx0KTtmb3IodmFyIG49MTtuPEt0Lmxlbmd0aDtuKyspe3ZhciByPUt0W25dO3IuYmxvY2tlZE9uPT09dCYmKHIuYmxvY2tlZE9uPW51bGwpfX1mb3IobnVsbCE9PUp0JiZwbihKdCx0KSxudWxsIT09ZW4mJnBuKGVuLHQpLG51bGwhPT10biYmcG4odG4sdCksbm4uZm9yRWFjaChlKSxybi5mb3JFYWNoKGUpLG49MDtuPG9uLmxlbmd0aDtuKyspKHI9b25bbl0pLmJsb2NrZWRPbj09PXQmJihyLmJsb2NrZWRPbj1udWxsKTtmb3IoOzA8b24ubGVuZ3RoJiZudWxsPT09KG49b25bMF0pLmJsb2NrZWRPbjspdW4obiksbnVsbD09PW4uYmxvY2tlZE9uJiZvbi5zaGlmdCgpfXZhciBobj1KLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLGduPSEwO2Z1bmN0aW9uIGJuKGUsdCxuLHIpe3ZhciBvPXgsYT1obi50cmFuc2l0aW9uO2huLnRyYW5zaXRpb249bnVsbDt0cnl7eD0xLHZuKGUsdCxuLHIpfWZpbmFsbHl7eD1vLGhuLnRyYW5zaXRpb249YX19ZnVuY3Rpb24geW4oZSx0LG4scil7dmFyIG89eCxhPWhuLnRyYW5zaXRpb247aG4udHJhbnNpdGlvbj1udWxsO3RyeXt4PTQsdm4oZSx0LG4scil9ZmluYWxseXt4PW8saG4udHJhbnNpdGlvbj1hfX1mdW5jdGlvbiB2bihlLHQsbixyKXtpZihnbil7dmFyIG89eG4oZSwwLDAscik7aWYobnVsbD09PW8pcm8oZSx0LHIsd24sbiksbG4oZSxyKTtlbHNlIGlmKGZ1bmN0aW9uKGUsdCxuLHIsbyl7c3dpdGNoKHQpe2Nhc2UiZm9jdXNpbiI6cmV0dXJuIEp0PWNuKEp0LGUsdCxuLHIsbyksMTtjYXNlImRyYWdlbnRlciI6cmV0dXJuIGVuPWNuKGVuLGUsdCxuLHIsbyksMTtjYXNlIm1vdXNlb3ZlciI6cmV0dXJuIHRuPWNuKHRuLGUsdCxuLHIsbyksMTtjYXNlInBvaW50ZXJvdmVyIjp2YXIgYT1vLnBvaW50ZXJJZDtyZXR1cm4gbm4uc2V0KGEsY24obm4uZ2V0KGEpfHxudWxsLGUsdCxuLHIsbykpLDE7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6cmV0dXJuIGE9by5wb2ludGVySWQscm4uc2V0KGEsY24ocm4uZ2V0KGEpfHxudWxsLGUsdCxuLHIsbykpLDF9fShvLGUsdCxuLHIpKXIuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihsbihlLHIpLDQmdCYmLTE8YW4uaW5kZXhPZihlKSl7Zm9yKDtudWxsIT09bzspe3ZhciBhPXpvKG8pO2lmKG51bGwhPT1hJiZHdChhKSxudWxsPT09KGE9eG4oZSwwLDAscikpJiZybyhlLHQscix3bixuKSxhPT09bylicmVhaztvPWF9bnVsbCE9PW8mJnIuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBybyhlLHQscixudWxsLG4pfX12YXIgd249bnVsbDtmdW5jdGlvbiB4bihlLHQsbixyKXtpZigod249bnVsbCkhPT0oZT1fbyhlPVFlKHIpKSkpaWYobnVsbD09PSh0PWd0KGUpKSllPW51bGw7ZWxzZSBpZigxMz09PShuPXQudGFnKSl7aWYobnVsbCE9PShlPWJ0KHQpKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzPT09bil7aWYodC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gMz09PXQudGFnP3Quc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSB0IT09ZSYmKGU9bnVsbCk7cmV0dXJuIHduPWUsbnVsbH1mdW5jdGlvbiBrbihlKXtzd2l0Y2goZSl7Y2FzZSJjYW5jZWwiOmNhc2UiY2xpY2siOmNhc2UiY2xvc2UiOmNhc2UiY29udGV4dG1lbnUiOmNhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UiYXV4Y2xpY2siOmNhc2UiZGJsY2xpY2siOmNhc2UiZHJhZ2VuZCI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6Y2FzZSJmb2N1c2luIjpjYXNlImZvY3Vzb3V0IjpjYXNlImlucHV0IjpjYXNlImludmFsaWQiOmNhc2Uia2V5ZG93biI6Y2FzZSJrZXlwcmVzcyI6Y2FzZSJrZXl1cCI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2V1cCI6Y2FzZSJwYXN0ZSI6Y2FzZSJwYXVzZSI6Y2FzZSJwbGF5IjpjYXNlInBvaW50ZXJjYW5jZWwiOmNhc2UicG9pbnRlcmRvd24iOmNhc2UicG9pbnRlcnVwIjpjYXNlInJhdGVjaGFuZ2UiOmNhc2UicmVzZXQiOmNhc2UicmVzaXplIjpjYXNlInNlZWtlZCI6Y2FzZSJzdWJtaXQiOmNhc2UidG91Y2hjYW5jZWwiOmNhc2UidG91Y2hlbmQiOmNhc2UidG91Y2hzdGFydCI6Y2FzZSJ2b2x1bWVjaGFuZ2UiOmNhc2UiY2hhbmdlIjpjYXNlInNlbGVjdGlvbmNoYW5nZSI6Y2FzZSJ0ZXh0SW5wdXQiOmNhc2UiY29tcG9zaXRpb25zdGFydCI6Y2FzZSJjb21wb3NpdGlvbmVuZCI6Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6Y2FzZSJiZWZvcmVpbnB1dCI6Y2FzZSJibHVyIjpjYXNlImZ1bGxzY3JlZW5jaGFuZ2UiOmNhc2UiZm9jdXMiOmNhc2UiaGFzaGNoYW5nZSI6Y2FzZSJwb3BzdGF0ZSI6Y2FzZSJzZWxlY3QiOmNhc2Uic2VsZWN0c3RhcnQiOnJldHVybiAxO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlIm1vdXNlbW92ZSI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJzY3JvbGwiOmNhc2UidG9nZ2xlIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ3aGVlbCI6Y2FzZSJtb3VzZWVudGVyIjpjYXNlIm1vdXNlbGVhdmUiOmNhc2UicG9pbnRlcmVudGVyIjpjYXNlInBvaW50ZXJsZWF2ZSI6cmV0dXJuIDQ7Y2FzZSJtZXNzYWdlIjpzd2l0Y2goQ3QoKSl7Y2FzZSBFdDpyZXR1cm4gMTtjYXNlIE90OnJldHVybiA0O2Nhc2UganQ6Y2FzZSBBdDpyZXR1cm4gMTY7Y2FzZSBQdDpyZXR1cm4gNTM2ODcwOTEyO2RlZmF1bHQ6cmV0dXJuIDE2fWRlZmF1bHQ6cmV0dXJuIDE2fX12YXIgU249bnVsbCxDbj1udWxsLEVuPW51bGw7ZnVuY3Rpb24gT24oKXtpZihFbilyZXR1cm4gRW47Zm9yKHZhciBlPUNuLHQ9ZS5sZW5ndGgsbj0oInZhbHVlImluIFNuP1NuLnZhbHVlOlNuLnRleHRDb250ZW50KSxyPW4ubGVuZ3RoLG89MDtvPHQmJmVbb109PT1uW29dO28rKyk7Zm9yKHZhciBhPXQtbyxpPTE7aTw9YSYmZVt0LWldPT09bltyLWldO2krKyk7cmV0dXJuIEVuPW4uc2xpY2UobywxPGk/MS1pOnZvaWQgMCl9ZnVuY3Rpb24gam4oZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiBlPzA9PT0oZT1lLmNoYXJDb2RlKSYmMTM9PT10JiYoZT0xMyk6ZT10LDMyPD0oZT0xMD09PWU/MTM6ZSl8fDEzPT09ZT9lOjB9ZnVuY3Rpb24gQW4oKXtyZXR1cm4hMH1mdW5jdGlvbiBQbigpe3JldHVybiExfWZ1bmN0aW9uIEluKGkpe2Z1bmN0aW9uIGUoZSx0LG4scixvKXtmb3IodmFyIGEgaW4gdGhpcy5fcmVhY3ROYW1lPWUsdGhpcy5fdGFyZ2V0SW5zdD1uLHRoaXMudHlwZT10LHRoaXMubmF0aXZlRXZlbnQ9cix0aGlzLnRhcmdldD1vLHRoaXMuY3VycmVudFRhcmdldD1udWxsLGkpaS5oYXNPd25Qcm9wZXJ0eShhKSYmKGU9aVthXSx0aGlzW2FdPWU/ZShyKTpyW2FdKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPXIuZGVmYXVsdFByZXZlbnRlZD9yLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1yLnJldHVyblZhbHVlKT9BbjpQbix0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPVBuLHRoaXN9cmV0dXJuIGcoZS5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOiJ1bmtub3duIiE9dHlwZW9mIGUucmV0dXJuVmFsdWUmJihlLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1Bbil9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uP2Uuc3RvcFByb3BhZ2F0aW9uKCk6InVua25vd24iIT10eXBlb2YgZS5jYW5jZWxCdWJibGUmJihlLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1Bbil9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpBbn0pLGV9dmFyIF9uLHpuLFRuLGU9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihlKXtyZXR1cm4gZS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sTG49SW4oZSksdD1nKHt9LGUse3ZpZXc6MCxkZXRhaWw6MH0pLE1uPUluKHQpLHI9Zyh7fSx0LHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOkduLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lLnJlbGF0ZWRUYXJnZXQ/ZS5mcm9tRWxlbWVudD09PWUuc3JjRWxlbWVudD9lLnRvRWxlbWVudDplLmZyb21FbGVtZW50OmUucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKGUpe3JldHVybiJtb3ZlbWVudFgiaW4gZT9lLm1vdmVtZW50WDooZSE9PVRuJiYoem49VG4mJiJtb3VzZW1vdmUiPT09ZS50eXBlPyhfbj1lLnNjcmVlblgtVG4uc2NyZWVuWCxlLnNjcmVlblktVG4uc2NyZWVuWSk6X249MCxUbj1lKSxfbil9LG1vdmVtZW50WTpmdW5jdGlvbihlKXtyZXR1cm4ibW92ZW1lbnRZImluIGU/ZS5tb3ZlbWVudFk6em59fSksUm49SW4ociksTm49SW4oZyh7fSxyLHtkYXRhVHJhbnNmZXI6MH0pKSxEbj1JbihnKHt9LHQse3JlbGF0ZWRUYXJnZXQ6MH0pKSxVbj1JbihnKHt9LGUse2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSxCbj1JbihnKHt9LGUse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuKCJjbGlwYm9hcmREYXRhImluIGU/ZTp3aW5kb3cpLmNsaXBib2FyZERhdGF9fSkpLEZuPUluKGcoe30sZSx7ZGF0YTowfSkpLEhuPXtFc2M6IkVzY2FwZSIsU3BhY2ViYXI6IiAiLExlZnQ6IkFycm93TGVmdCIsVXA6IkFycm93VXAiLFJpZ2h0OiJBcnJvd1JpZ2h0IixEb3duOiJBcnJvd0Rvd24iLERlbDoiRGVsZXRlIixXaW46Ik9TIixNZW51OiJDb250ZXh0TWVudSIsQXBwczoiQ29udGV4dE1lbnUiLFNjcm9sbDoiU2Nyb2xsTG9jayIsTW96UHJpbnRhYmxlS2V5OiJVbmlkZW50aWZpZWQifSxWbj17ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEyOiJDbGVhciIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwxOToiUGF1c2UiLDIwOiJDYXBzTG9jayIsMjc6IkVzY2FwZSIsMzI6IiAiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTQ0OiJOdW1Mb2NrIiwxNDU6IlNjcm9sbExvY2siLDIyNDoiTWV0YSJ9LCRuPXtBbHQ6ImFsdEtleSIsQ29udHJvbDoiY3RybEtleSIsTWV0YToibWV0YUtleSIsU2hpZnQ6InNoaWZ0S2V5In07ZnVuY3Rpb24gV24oZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPSRuW2VdKSYmISF0W2VdfWZ1bmN0aW9uIEduKCl7cmV0dXJuIFdufXZhciBxbj1JbihnKHt9LHQse2tleTpmdW5jdGlvbihlKXtpZihlLmtleSl7dmFyIHQ9SG5bZS5rZXldfHxlLmtleTtpZigiVW5pZGVudGlmaWVkIiE9PXQpcmV0dXJuIHR9cmV0dXJuImtleXByZXNzIj09PWUudHlwZT8xMz09PShlPWpuKGUpKT8iRW50ZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP1ZuW2Uua2V5Q29kZV18fCJVbmlkZW50aWZpZWQiOiIifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTpHbixjaGFyQ29kZTpmdW5jdGlvbihlKXtyZXR1cm4ia2V5cHJlc3MiPT09ZS50eXBlP2puKGUpOjB9LGtleUNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2Uua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihlKXtyZXR1cm4ia2V5cHJlc3MiPT09ZS50eXBlP2puKGUpOiJrZXlkb3duIj09PWUudHlwZXx8ImtleXVwIj09PWUudHlwZT9lLmtleUNvZGU6MH19KSksWm49SW4oZyh7fSxyLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pKSxYbj1JbihnKHt9LHQse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpHbn0pKSxZbj1JbihnKHt9LGUse3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkpLFFuPUluKGcoe30scix7ZGVsdGFYOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVgiaW4gZT9lLmRlbHRhWDoid2hlZWxEZWx0YVgiaW4gZT8tZS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oZSl7cmV0dXJuImRlbHRhWSJpbiBlP2UuZGVsdGFZOiJ3aGVlbERlbHRhWSJpbiBlPy1lLndoZWVsRGVsdGFZOiJ3aGVlbERlbHRhImluIGU/LWUud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pKSxLbj1bOSwxMywyNywzMl0sSm49UiYmIkNvbXBvc2l0aW9uRXZlbnQiaW4gd2luZG93LHQ9bnVsbCxlcj0oUiYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmKHQ9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSxSJiYiVGV4dEV2ZW50ImluIHdpbmRvdyYmIXQpLHRyPVImJighSm58fHQmJjg8dCYmdDw9MTEpLG5yPVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLHJyPSExO2Z1bmN0aW9uIG9yKGUsdCl7c3dpdGNoKGUpe2Nhc2Uia2V5dXAiOnJldHVybi0xIT09S24uaW5kZXhPZih0LmtleUNvZGUpO2Nhc2Uia2V5ZG93biI6cmV0dXJuIDIyOSE9PXQua2V5Q29kZTtjYXNlImtleXByZXNzIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJmb2N1c291dCI6cmV0dXJuIDE7ZGVmYXVsdDpyZXR1cm59fWZ1bmN0aW9uIGFyKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YoZT1lLmRldGFpbCkmJiJkYXRhImluIGU/ZS5kYXRhOm51bGx9dmFyIGlyPSExO3ZhciBscj17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCwiZGF0ZXRpbWUtbG9jYWwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gY3IoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT10P2xyW2UudHlwZV06InRleHRhcmVhIj09PXR9ZnVuY3Rpb24gdXIoZSx0LG4scil7bnQociksMDwodD1hbyh0LCJvbkNoYW5nZSIpKS5sZW5ndGgmJihuPW5ldyBMbigib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsbixyKSxlLnB1c2goe2V2ZW50Om4sbGlzdGVuZXJzOnR9KSl9dmFyIHNyPW51bGwsZnI9bnVsbDtmdW5jdGlvbiBkcihlKXtLcihlLDApfWZ1bmN0aW9uIHByKGUpe2lmKFNlKFRvKGUpKSlyZXR1cm4gZX1mdW5jdGlvbiBtcihlLHQpe2lmKCJjaGFuZ2UiPT09ZSlyZXR1cm4gdH12YXIgaHI9ITE7ZnVuY3Rpb24gZ3IoKXtzciYmKHNyLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixiciksZnI9c3I9bnVsbCl9ZnVuY3Rpb24gYnIoZSl7dmFyIHQ7InZhbHVlIj09PWUucHJvcGVydHlOYW1lJiZwcihmcikmJih1cih0PVtdLGZyLGUsUWUoZSkpLGx0KGRyLHQpKX1mdW5jdGlvbiB5cihlLHQsbil7ImZvY3VzaW4iPT09ZT8oZ3IoKSxmcj1uLChzcj10KS5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsYnIpKToiZm9jdXNvdXQiPT09ZSYmZ3IoKX1mdW5jdGlvbiB2cihlKXtpZigic2VsZWN0aW9uY2hhbmdlIj09PWV8fCJrZXl1cCI9PT1lfHwia2V5ZG93biI9PT1lKXJldHVybiBwcihmcil9ZnVuY3Rpb24gd3IoZSx0KXtpZigiY2xpY2siPT09ZSlyZXR1cm4gcHIodCl9ZnVuY3Rpb24geHIoZSx0KXtpZigiaW5wdXQiPT09ZXx8ImNoYW5nZSI9PT1lKXJldHVybiBwcih0KX1SJiYodD1SJiYoKGU9Im9uaW5wdXQiaW4gZG9jdW1lbnQpfHwoKHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLnNldEF0dHJpYnV0ZSgib25pbnB1dCIsInJldHVybjsiKSxlPSJmdW5jdGlvbiI9PXR5cGVvZiByLm9uaW5wdXQpLGUpLGhyPXQmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSkpO3ZhciBrcj0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpmdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKDAhPT1lfHwxL2U9PTEvdCl8fGUhPWUmJnQhPXR9O2Z1bmN0aW9uIFNyKGUsdCl7aWYoIWtyKGUsdCkpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7dmFyIG49T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2ZvcihyPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBvPW5bcl07aWYoIVcuY2FsbCh0LG8pfHwha3IoZVtvXSx0W29dKSlyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gQ3IoZSl7Zm9yKDtlJiZlLmZpcnN0Q2hpbGQ7KWU9ZS5maXJzdENoaWxkO3JldHVybiBlfWZ1bmN0aW9uIEVyKGUsdCl7dmFyIG4scj1DcihlKTtmb3IoZT0wO3I7KXtpZigzPT09ci5ub2RlVHlwZSl7aWYobj1lK3IudGV4dENvbnRlbnQubGVuZ3RoLGU8PXQmJnQ8PW4pcmV0dXJue25vZGU6cixvZmZzZXQ6dC1lfTtlPW59ZTp7Zm9yKDtyOyl7aWYoci5uZXh0U2libGluZyl7cj1yLm5leHRTaWJsaW5nO2JyZWFrIGV9cj1yLnBhcmVudE5vZGV9cj12b2lkIDB9cj1DcihyKX19ZnVuY3Rpb24gT3IoKXtmb3IodmFyIGU9d2luZG93LHQ9Q2UoKTt0IGluc3RhbmNlb2YgZS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgbj0ic3RyaW5nIj09dHlwZW9mIHQuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGUpe249ITF9aWYoIW4pYnJlYWs7dD1DZSgoZT10LmNvbnRlbnRXaW5kb3cpLmRvY3VtZW50KX1yZXR1cm4gdH1mdW5jdGlvbiBqcihlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQmJigiaW5wdXQiPT09dCYmKCJ0ZXh0Ij09PWUudHlwZXx8InNlYXJjaCI9PT1lLnR5cGV8fCJ0ZWwiPT09ZS50eXBlfHwidXJsIj09PWUudHlwZXx8InBhc3N3b3JkIj09PWUudHlwZSl8fCJ0ZXh0YXJlYSI9PT10fHwidHJ1ZSI9PT1lLmNvbnRlbnRFZGl0YWJsZSl9ZnVuY3Rpb24gQXIoZSl7dmFyIHQsbixyLG89T3IoKSxhPWUuZm9jdXNlZEVsZW0saT1lLnNlbGVjdGlvblJhbmdlO2lmKG8hPT1hJiZhJiZhLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxuKXtyZXR1cm4hKCF0fHwhbikmJih0PT09bnx8KCF0fHwzIT09dC5ub2RlVHlwZSkmJihuJiYzPT09bi5ub2RlVHlwZT9lKHQsbi5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gdD90LmNvbnRhaW5zKG4pOiEhdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmISEoMTYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuKSkpKX0oYS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxhKSl7bnVsbCE9PWkmJmpyKGEpJiYobz1pLnN0YXJ0LHZvaWQgMD09PShlPWkuZW5kKSYmKGU9byksInNlbGVjdGlvblN0YXJ0ImluIGE/KGEuc2VsZWN0aW9uU3RhcnQ9byxhLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihlLGEudmFsdWUubGVuZ3RoKSk6KGU9KG89YS5vd25lckRvY3VtZW50fHxkb2N1bWVudCkmJm8uZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uJiYoZT1lLmdldFNlbGVjdGlvbigpLG49YS50ZXh0Q29udGVudC5sZW5ndGgsdD1NYXRoLm1pbihpLnN0YXJ0LG4pLGk9dm9pZCAwPT09aS5lbmQ/dDpNYXRoLm1pbihpLmVuZCxuKSwhZS5leHRlbmQmJmk8dCYmKG49aSxpPXQsdD1uKSxuPUVyKGEsdCkscj1FcihhLGkpLG4pJiZyJiYoMSE9PWUucmFuZ2VDb3VudHx8ZS5hbmNob3JOb2RlIT09bi5ub2RlfHxlLmFuY2hvck9mZnNldCE9PW4ub2Zmc2V0fHxlLmZvY3VzTm9kZSE9PXIubm9kZXx8ZS5mb2N1c09mZnNldCE9PXIub2Zmc2V0KSYmKChvPW8uY3JlYXRlUmFuZ2UoKSkuc2V0U3RhcnQobi5ub2RlLG4ub2Zmc2V0KSxlLnJlbW92ZUFsbFJhbmdlcygpLGk8dD8oZS5hZGRSYW5nZShvKSxlLmV4dGVuZChyLm5vZGUsci5vZmZzZXQpKTooby5zZXRFbmQoci5ub2RlLHIub2Zmc2V0KSxlLmFkZFJhbmdlKG8pKSkpLG89W107Zm9yKGU9YTtlPWUucGFyZW50Tm9kZTspMT09PWUubm9kZVR5cGUmJm8ucHVzaCh7ZWxlbWVudDplLGxlZnQ6ZS5zY3JvbGxMZWZ0LHRvcDplLnNjcm9sbFRvcH0pO2ZvcigiZnVuY3Rpb24iPT10eXBlb2YgYS5mb2N1cyYmYS5mb2N1cygpLGE9MDthPG8ubGVuZ3RoO2ErKykoZT1vW2FdKS5lbGVtZW50LnNjcm9sbExlZnQ9ZS5sZWZ0LGUuZWxlbWVudC5zY3JvbGxUb3A9ZS50b3B9fXZhciBQcj1SJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudE1vZGU8PTExLElyPW51bGwsX3I9bnVsbCx6cj1udWxsLFRyPSExO2Z1bmN0aW9uIExyKGUsdCxuKXt2YXIgcj1uLndpbmRvdz09PW4/bi5kb2N1bWVudDo5PT09bi5ub2RlVHlwZT9uOm4ub3duZXJEb2N1bWVudDtUcnx8bnVsbD09SXJ8fElyIT09Q2Uocil8fChyPSJzZWxlY3Rpb25TdGFydCJpbihyPUlyKSYmanIocik/e3N0YXJ0OnIuc2VsZWN0aW9uU3RhcnQsZW5kOnIuc2VsZWN0aW9uRW5kfTp7YW5jaG9yTm9kZToocj0oci5vd25lckRvY3VtZW50JiZyLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCkpLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OnIuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpyLmZvY3VzTm9kZSxmb2N1c09mZnNldDpyLmZvY3VzT2Zmc2V0fSx6ciYmU3IoenIscikpfHwoenI9ciwwPChyPWFvKF9yLCJvblNlbGVjdCIpKS5sZW5ndGgmJih0PW5ldyBMbigib25TZWxlY3QiLCJzZWxlY3QiLG51bGwsdCxuKSxlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOnJ9KSx0LnRhcmdldD1JcikpfWZ1bmN0aW9uIE1yKGUsdCl7dmFyIG49e307cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksblsiV2Via2l0IitlXT0id2Via2l0Iit0LG5bIk1veiIrZV09Im1veiIrdCxufXZhciBScj17YW5pbWF0aW9uZW5kOk1yKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246TXIoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0Ok1yKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25lbmQ6TXIoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uRW5kIil9LE5yPXt9LERyPXt9O2Z1bmN0aW9uIFVyKGUpe2lmKE5yW2VdKXJldHVybiBOcltlXTtpZihScltlXSl7dmFyIHQsbj1ScltlXTtmb3IodCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodCkmJnQgaW4gRHIpcmV0dXJuIE5yW2VdPW5bdF19cmV0dXJuIGV9UiYmKERyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJBbmltYXRpb25FdmVudCJpbiB3aW5kb3d8fChkZWxldGUgUnIuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgUnIuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgUnIuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSwiVHJhbnNpdGlvbkV2ZW50ImluIHdpbmRvd3x8ZGVsZXRlIFJyLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7dmFyIEJyPVVyKCJhbmltYXRpb25lbmQiKSxGcj1VcigiYW5pbWF0aW9uaXRlcmF0aW9uIiksSHI9VXIoImFuaW1hdGlvbnN0YXJ0IiksVnI9VXIoInRyYW5zaXRpb25lbmQiKSwkcj1uZXcgTWFwLFdyPSJhYm9ydCBhdXhDbGljayBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBHcihlLHQpeyRyLnNldChlLHQpLFYodCxbZV0pfWZvcih2YXIgcXI9MDtxcjxXci5sZW5ndGg7cXIrKyl7dmFyIFpyPVdyW3FyXTtHcihaci50b0xvd2VyQ2FzZSgpLCJvbiIrKFpyWzBdLnRvVXBwZXJDYXNlKCkrWnIuc2xpY2UoMSkpKX1HcihCciwib25BbmltYXRpb25FbmQiKSxHcihGciwib25BbmltYXRpb25JdGVyYXRpb24iKSxHcihIciwib25BbmltYXRpb25TdGFydCIpLEdyKCJkYmxjbGljayIsIm9uRG91YmxlQ2xpY2siKSxHcigiZm9jdXNpbiIsIm9uRm9jdXMiKSxHcigiZm9jdXNvdXQiLCJvbkJsdXIiKSxHcihWciwib25UcmFuc2l0aW9uRW5kIiksJCgib25Nb3VzZUVudGVyIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pLCQoIm9uTW91c2VMZWF2ZSIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSwkKCJvblBvaW50ZXJFbnRlciIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSksJCgib25Qb2ludGVyTGVhdmUiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLFYoIm9uQ2hhbmdlIiwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLFYoIm9uU2VsZWN0IiwiZm9jdXNvdXQgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1c2luIGtleWRvd24ga2V5dXAgbW91c2Vkb3duIG1vdXNldXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSxWKCJvbkJlZm9yZUlucHV0IixbImNvbXBvc2l0aW9uZW5kIiwia2V5cHJlc3MiLCJ0ZXh0SW5wdXQiLCJwYXN0ZSJdKSxWKCJvbkNvbXBvc2l0aW9uRW5kIiwiY29tcG9zaXRpb25lbmQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLFYoIm9uQ29tcG9zaXRpb25TdGFydCIsImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLFYoIm9uQ29tcG9zaXRpb25VcGRhdGUiLCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSk7dmFyIFhyPSJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZyIuc3BsaXQoIiAiKSxZcj1uZXcgU2V0KCJjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCB0b2dnbGUiLnNwbGl0KCIgIikuY29uY2F0KFhyKSk7ZnVuY3Rpb24gUXIoZSx0LG4pe3ZhciByPWUudHlwZXx8InVua25vd24tZXZlbnQiO2UuY3VycmVudFRhcmdldD1uLGZ1bmN0aW9uKCl7dmFyIGU7aHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHN0JiYoZT1mdCxzdD0hMSxmdD1udWxsLGR0fHwoZHQ9ITAscHQ9ZSkpfShyLHQsdm9pZCAwLGUpLGUuY3VycmVudFRhcmdldD1udWxsfWZ1bmN0aW9uIEtyKGUsdCl7dD0wIT0oNCZ0KTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9KG89ZVtuXSkuZXZlbnQsbz1vLmxpc3RlbmVycztlOnt2YXIgYT12b2lkIDA7aWYodClmb3IodmFyIGk9by5sZW5ndGgtMTswPD1pO2ktLSl7dmFyIGw9KHU9b1tpXSkuaW5zdGFuY2UsYz11LmN1cnJlbnRUYXJnZXQsdT11Lmxpc3RlbmVyO2lmKGwhPT1hJiZyLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtRcihyLHUsYyksYT1sfWVsc2UgZm9yKGk9MDtpPG8ubGVuZ3RoO2krKyl7aWYobD0odT1vW2ldKS5pbnN0YW5jZSxjPXUuY3VycmVudFRhcmdldCx1PXUubGlzdGVuZXIsbCE9PWEmJnIuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO1FyKHIsdSxjKSxhPWx9fX1pZihkdCl0aHJvdyBlPXB0LGR0PSExLHB0PW51bGwsZX1mdW5jdGlvbiBzKGUsdCl7dmFyIG49dFtBb10scj1lKyJfX2J1YmJsZSI7KG49dm9pZCAwPT09bj90W0FvXT1uZXcgU2V0Om4pLmhhcyhyKXx8KG5vKHQsZSwyLCExKSxuLmFkZChyKSl9ZnVuY3Rpb24gSnIoZSx0LG4pe3ZhciByPTA7dCYmKHJ8PTQpLG5vKG4sZSxyLHQpfXZhciBlbz0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiB0byh0KXt2YXIgZTt0W2VvXXx8KHRbZW9dPSEwLEYuZm9yRWFjaChmdW5jdGlvbihlKXsic2VsZWN0aW9uY2hhbmdlIiE9PWUmJihZci5oYXMoZSl8fEpyKGUsITEsdCksSnIoZSwhMCx0KSl9KSxudWxsPT09KGU9OT09PXQubm9kZVR5cGU/dDp0Lm93bmVyRG9jdW1lbnQpKXx8ZVtlb118fEpyKCJzZWxlY3Rpb25jaGFuZ2UiLCEoZVtlb109ITApLGUpfWZ1bmN0aW9uIG5vKGUsdCxuLHIpe3N3aXRjaChrbih0KSl7Y2FzZSAxOnZhciBvPWJuO2JyZWFrO2Nhc2UgNDpvPXluO2JyZWFrO2RlZmF1bHQ6bz12bn1uPW8uYmluZChudWxsLHQsbixlKSxvPSF1dHx8InRvdWNoc3RhcnQiIT09dCYmInRvdWNobW92ZSIhPT10JiYid2hlZWwiIT09dD92b2lkIDA6ITAscj92b2lkIDAhPT1vP2UuYWRkRXZlbnRMaXN0ZW5lcih0LG4se2NhcHR1cmU6ITAscGFzc2l2ZTpvfSk6ZS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMCk6dm9pZCAwIT09bz9lLmFkZEV2ZW50TGlzdGVuZXIodCxuLHtwYXNzaXZlOm99KTplLmFkZEV2ZW50TGlzdGVuZXIodCxuLCExKX1mdW5jdGlvbiBybyhnLGIseSxlLHQpe3ZhciB2PWU7aWYoMD09KDEmYikmJjA9PSgyJmIpJiZudWxsIT09ZSllOmZvcig7Oyl7aWYobnVsbD09PWUpcmV0dXJuO3ZhciBuPWUudGFnO2lmKDM9PT1ufHw0PT09bil7dmFyIHI9ZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihyPT09dHx8OD09PXIubm9kZVR5cGUmJnIucGFyZW50Tm9kZT09PXQpYnJlYWs7aWYoND09PW4pZm9yKG49ZS5yZXR1cm47bnVsbCE9PW47KXt2YXIgbz1uLnRhZztpZigoMz09PW98fDQ9PT1vKSYmKChvPW4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pPT09dHx8OD09PW8ubm9kZVR5cGUmJm8ucGFyZW50Tm9kZT09PXQpKXJldHVybjtuPW4ucmV0dXJufWZvcig7bnVsbCE9PXI7KXtpZihudWxsPT09KG49X28ocikpKXJldHVybjtpZig1PT09KG89bi50YWcpfHw2PT09byl7ZT12PW47Y29udGludWUgZX1yPXIucGFyZW50Tm9kZX19ZT1lLnJldHVybn1sdChmdW5jdGlvbigpe3ZhciBlLHQsbixyPXYsbz1RZSh5KSxhPVtdO2U6e3ZhciBpPSRyLmdldChnKTtpZih2b2lkIDAhPT1pKXt2YXIgbD1MbixjPWc7c3dpdGNoKGcpe2Nhc2Uia2V5cHJlc3MiOmlmKDA9PT1qbih5KSlicmVhayBlO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6bD1xbjticmVhaztjYXNlImZvY3VzaW4iOmM9ImZvY3VzIixsPURuO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOmM9ImJsdXIiLGw9RG47YnJlYWs7Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6bD1EbjticmVhaztjYXNlImNsaWNrIjppZigyPT09eS5idXR0b24pYnJlYWsgZTtjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2V1cCI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UiY29udGV4dG1lbnUiOmw9Um47YnJlYWs7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6bD1ObjticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0IjpsPVhuO2JyZWFrO2Nhc2UgQnI6Y2FzZSBGcjpjYXNlIEhyOmw9VW47YnJlYWs7Y2FzZSBWcjpsPVluO2JyZWFrO2Nhc2Uic2Nyb2xsIjpsPU1uO2JyZWFrO2Nhc2Uid2hlZWwiOmw9UW47YnJlYWs7Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJwYXN0ZSI6bD1CbjticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcnVwIjpsPVpufWZvcih2YXIgdT0hKGY9MCE9KDQmYikpJiYic2Nyb2xsIj09PWcscz1mP251bGwhPT1pP2krIkNhcHR1cmUiOm51bGw6aSxmPVtdLGQ9cjtudWxsIT09ZDspe3ZhciBwLG09KHA9ZCkuc3RhdGVOb2RlO2lmKDU9PT1wLnRhZyYmbnVsbCE9PW0mJihwPW0sbnVsbCE9PXMpJiZudWxsIT0obT1jdChkLHMpKSYmZi5wdXNoKG9vKGQsbSxwKSksdSlicmVhaztkPWQucmV0dXJufTA8Zi5sZW5ndGgmJihpPW5ldyBsKGksYyxudWxsLHksbyksYS5wdXNoKHtldmVudDppLGxpc3RlbmVyczpmfSkpfX1pZigwPT0oNyZiKSl7aWYobD0ibW91c2VvdXQiPT09Z3x8InBvaW50ZXJvdXQiPT09ZywoIShpPSJtb3VzZW92ZXIiPT09Z3x8InBvaW50ZXJvdmVyIj09PWcpfHx5PT09WWV8fCEoYz15LnJlbGF0ZWRUYXJnZXR8fHkuZnJvbUVsZW1lbnQpfHwhX28oYykmJiFjW2pvXSkmJihsfHxpKSYmKGk9by53aW5kb3c9PT1vP286KGk9by5vd25lckRvY3VtZW50KT9pLmRlZmF1bHRWaWV3fHxpLnBhcmVudFdpbmRvdzp3aW5kb3csbD8obD1yLG51bGwhPT0oYz0oYz15LnJlbGF0ZWRUYXJnZXR8fHkudG9FbGVtZW50KT9fbyhjKTpudWxsKSYmKGMhPT0odT1ndChjKSl8fDUhPT1jLnRhZyYmNiE9PWMudGFnKSYmKGM9bnVsbCkpOihsPW51bGwsYz1yKSxsIT09Yykpe2lmKGY9Um4sbT0ib25Nb3VzZUxlYXZlIixzPSJvbk1vdXNlRW50ZXIiLGQ9Im1vdXNlIiwicG9pbnRlcm91dCIhPT1nJiYicG9pbnRlcm92ZXIiIT09Z3x8KGY9Wm4sbT0ib25Qb2ludGVyTGVhdmUiLHM9Im9uUG9pbnRlckVudGVyIixkPSJwb2ludGVyIiksdT1udWxsPT1sP2k6VG8obCkscD1udWxsPT1jP2k6VG8oYyksKGk9bmV3IGYobSxkKyJsZWF2ZSIsbCx5LG8pKS50YXJnZXQ9dSxpLnJlbGF0ZWRUYXJnZXQ9cCxtPW51bGwsX28obyk9PT1yJiYoKGY9bmV3IGYocyxkKyJlbnRlciIsYyx5LG8pKS50YXJnZXQ9cCxmLnJlbGF0ZWRUYXJnZXQ9dSxtPWYpLHU9bSxsJiZjKWU6e2ZvcihzPWMsZD0wLHA9Zj1sO3A7cD1pbyhwKSlkKys7Zm9yKHA9MCxtPXM7bTttPWlvKG0pKXArKztmb3IoOzA8ZC1wOylmPWlvKGYpLGQtLTtmb3IoOzA8cC1kOylzPWlvKHMpLHAtLTtmb3IoO2QtLTspe2lmKGY9PT1zfHxudWxsIT09cyYmZj09PXMuYWx0ZXJuYXRlKWJyZWFrIGU7Zj1pbyhmKSxzPWlvKHMpfWY9bnVsbH1lbHNlIGY9bnVsbDtudWxsIT09bCYmbG8oYSxpLGwsZiwhMSksbnVsbCE9PWMmJm51bGwhPT11JiZsbyhhLHUsYyxmLCEwKX1zd2l0Y2goInNlbGVjdCI9PT0obD0oaT1yP1RvKHIpOndpbmRvdykubm9kZU5hbWUmJmkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl8fCJpbnB1dCI9PT1sJiYiZmlsZSI9PT1pLnR5cGU/ZT1tcjpjcihpKT9ocj9lPXhyOihlPXZyLHQ9eXIpOiEobD1pLm5vZGVOYW1lKXx8ImlucHV0IiE9PWwudG9Mb3dlckNhc2UoKXx8ImNoZWNrYm94IiE9PWkudHlwZSYmInJhZGlvIiE9PWkudHlwZXx8KGU9d3IpLChlPWUmJmUoZyxyKSk/dXIoYSxlLHksbyk6KHQmJnQoZyxpLHIpLCJmb2N1c291dCI9PT1nJiYodD1pLl93cmFwcGVyU3RhdGUpJiZ0LmNvbnRyb2xsZWQmJiJudW1iZXIiPT09aS50eXBlJiZJZShpLCJudW1iZXIiLGkudmFsdWUpKSx0PXI/VG8ocik6d2luZG93LGcpe2Nhc2UiZm9jdXNpbiI6IWNyKHQpJiYidHJ1ZSIhPT10LmNvbnRlbnRFZGl0YWJsZXx8KElyPXQsX3I9cix6cj1udWxsKTticmVhaztjYXNlImZvY3Vzb3V0Ijp6cj1fcj1Jcj1udWxsO2JyZWFrO2Nhc2UibW91c2Vkb3duIjpUcj0hMDticmVhaztjYXNlImNvbnRleHRtZW51IjpjYXNlIm1vdXNldXAiOmNhc2UiZHJhZ2VuZCI6VHI9ITEsTHIoYSx5LG8pO2JyZWFrO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihQcilicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOkxyKGEseSxvKX1pZihKbillOntzd2l0Y2goZyl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp2YXIgaD0ib25Db21wb3NpdGlvblN0YXJ0IjticmVhayBlO2Nhc2UiY29tcG9zaXRpb25lbmQiOmg9Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6aD0ib25Db21wb3NpdGlvblVwZGF0ZSI7YnJlYWsgZX1oPXZvaWQgMH1lbHNlIGlyP29yKGcseSkmJihoPSJvbkNvbXBvc2l0aW9uRW5kIik6ImtleWRvd24iPT09ZyYmMjI5PT09eS5rZXlDb2RlJiYoaD0ib25Db21wb3NpdGlvblN0YXJ0Iik7aCYmKHRyJiYia28iIT09eS5sb2NhbGUmJihpcnx8Im9uQ29tcG9zaXRpb25TdGFydCIhPT1oPyJvbkNvbXBvc2l0aW9uRW5kIj09PWgmJmlyJiYobj1PbigpKTooQ249InZhbHVlImluKFNuPW8pP1NuLnZhbHVlOlNuLnRleHRDb250ZW50LGlyPSEwKSksMDwodD1hbyhyLGgpKS5sZW5ndGgpJiYoaD1uZXcgRm4oaCxnLG51bGwseSxvKSxhLnB1c2goe2V2ZW50OmgsbGlzdGVuZXJzOnR9KSxufHxudWxsIT09KG49YXIoeSkpKSYmKGguZGF0YT1uKSwobj0oZXI/ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbmVuZCI6cmV0dXJuIGFyKHQpO2Nhc2Uia2V5cHJlc3MiOnJldHVybiAzMiE9PXQud2hpY2g/bnVsbDoocnI9ITAsbnIpO2Nhc2UidGV4dElucHV0IjpyZXR1cm4oZT10LmRhdGEpPT09bnImJnJyP251bGw6ZTtkZWZhdWx0OnJldHVybiBudWxsfX06ZnVuY3Rpb24oZSx0KXtpZihpcilyZXR1cm4iY29tcG9zaXRpb25lbmQiPT09ZXx8IUpuJiZvcihlLHQpPyhlPU9uKCksRW49Q249U249bnVsbCxpcj0hMSxlKTpudWxsO3N3aXRjaChlKXtjYXNlInBhc3RlIjpyZXR1cm4gbnVsbDtjYXNlImtleXByZXNzIjppZighKHQuY3RybEtleXx8dC5hbHRLZXl8fHQubWV0YUtleSl8fHQuY3RybEtleSYmdC5hbHRLZXkpe2lmKHQuY2hhciYmMTx0LmNoYXIubGVuZ3RoKXJldHVybiB0LmNoYXI7aWYodC53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0LndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gdHImJiJrbyIhPT10LmxvY2FsZT9udWxsOnQuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX0pKGcseSkpJiYwPChyPWFvKHIsIm9uQmVmb3JlSW5wdXQiKSkubGVuZ3RoJiYobz1uZXcgRm4oIm9uQmVmb3JlSW5wdXQiLCJiZWZvcmVpbnB1dCIsbnVsbCx5LG8pLGEucHVzaCh7ZXZlbnQ6byxsaXN0ZW5lcnM6cn0pLG8uZGF0YT1uKX1LcihhLGIpfSl9ZnVuY3Rpb24gb28oZSx0LG4pe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOnQsY3VycmVudFRhcmdldDpufX1mdW5jdGlvbiBhbyhlLHQpe2Zvcih2YXIgbj10KyJDYXB0dXJlIixyPVtdO251bGwhPT1lOyl7dmFyIG89ZSxhPW8uc3RhdGVOb2RlOzU9PT1vLnRhZyYmbnVsbCE9PWEmJihvPWEsbnVsbCE9KGE9Y3QoZSxuKSkmJnIudW5zaGlmdChvbyhlLGEsbykpLG51bGwhPShhPWN0KGUsdCkpKSYmci5wdXNoKG9vKGUsYSxvKSksZT1lLnJldHVybn1yZXR1cm4gcn1mdW5jdGlvbiBpbyhlKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtmb3IoOyhlPWUucmV0dXJuKSYmNSE9PWUudGFnOyk7cmV0dXJuIGV8fG51bGx9ZnVuY3Rpb24gbG8oZSx0LG4scixvKXtmb3IodmFyIGE9dC5fcmVhY3ROYW1lLGk9W107bnVsbCE9PW4mJm4hPT1yOyl7dmFyIGw9bixjPWwuYWx0ZXJuYXRlLHU9bC5zdGF0ZU5vZGU7aWYobnVsbCE9PWMmJmM9PT1yKWJyZWFrOzU9PT1sLnRhZyYmbnVsbCE9PXUmJihsPXUsbz9udWxsIT0oYz1jdChuLGEpKSYmaS51bnNoaWZ0KG9vKG4sYyxsKSk6bnVsbCE9KGM9Y3QobixhKSkmJmkucHVzaChvbyhuLGMsbCkpKSxuPW4ucmV0dXJufTAhPT1pLmxlbmd0aCYmZS5wdXNoKHtldmVudDp0LGxpc3RlbmVyczppfSl9dmFyIGNvPS9cclxuPy9nLHVvPS9cdTAwMDB8XHVGRkZEL2c7ZnVuY3Rpb24gc28oZSl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2YgZT9lOiIiK2UpLnJlcGxhY2UoY28sIlxuIikucmVwbGFjZSh1bywiIil9ZnVuY3Rpb24gZm8oZSx0LG4pe2lmKHQ9c28odCksc28oZSkhPT10JiZuKXRocm93IEVycm9yKEQoNDI1KSl9ZnVuY3Rpb24gcG8oKXt9dmFyIG1vPW51bGwsaG89bnVsbDtmdW5jdGlvbiBnbyhlLHQpe3JldHVybiJ0ZXh0YXJlYSI9PT1lfHwibm9zY3JpcHQiPT09ZXx8InN0cmluZyI9PXR5cGVvZiB0LmNoaWxkcmVufHwibnVtYmVyIj09dHlwZW9mIHQuY2hpbGRyZW58fCJvYmplY3QiPT10eXBlb2YgdC5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfXZhciBibz0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCx5bz0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDp2b2lkIDAsdm89ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZTp2b2lkIDAsd289ImZ1bmN0aW9uIj09dHlwZW9mIHF1ZXVlTWljcm90YXNrP3F1ZXVlTWljcm90YXNrOnZvaWQgMCE9PXZvP2Z1bmN0aW9uKGUpe3JldHVybiB2by5yZXNvbHZlKG51bGwpLnRoZW4oZSkuY2F0Y2goeG8pfTpibztmdW5jdGlvbiB4byhlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfWZ1bmN0aW9uIGtvKGUsdCl7dmFyIG49dCxyPTA7ZG97dmFyIG89bi5uZXh0U2libGluZztpZihlLnJlbW92ZUNoaWxkKG4pLG8mJjg9PT1vLm5vZGVUeXBlKWlmKCIvJCI9PT0obj1vLmRhdGEpKXtpZigwPT09cilyZXR1cm4gZS5yZW1vdmVDaGlsZChvKSx2b2lkIG1uKHQpO3ItLX1lbHNlIiQiIT09biYmIiQ/IiE9PW4mJiIkISIhPT1ufHxyKyt9d2hpbGUobj1vKTttbih0KX1mdW5jdGlvbiBTbyhlKXtmb3IoO251bGwhPWU7ZT1lLm5leHRTaWJsaW5nKXt2YXIgdD1lLm5vZGVUeXBlO2lmKDE9PT10fHwzPT09dClicmVhaztpZig4PT09dCl7aWYoIiQiPT09KHQ9ZS5kYXRhKXx8IiQhIj09PXR8fCIkPyI9PT10KWJyZWFrO2lmKCIvJCI9PT10KXJldHVybiBudWxsfX1yZXR1cm4gZX1mdW5jdGlvbiBDbyhlKXtlPWUucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgdD0wO2U7KXtpZig4PT09ZS5ub2RlVHlwZSl7dmFyIG49ZS5kYXRhO2lmKCIkIj09PW58fCIkISI9PT1ufHwiJD8iPT09bil7aWYoMD09PXQpcmV0dXJuIGU7dC0tfWVsc2UiLyQiPT09biYmdCsrfWU9ZS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9dmFyIHI9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksRW89Il9fcmVhY3RGaWJlciQiK3IsT289Il9fcmVhY3RQcm9wcyQiK3Isam89Il9fcmVhY3RDb250YWluZXIkIityLEFvPSJfX3JlYWN0RXZlbnRzJCIrcixQbz0iX19yZWFjdExpc3RlbmVycyQiK3IsSW89Il9fcmVhY3RIYW5kbGVzJCIrcjtmdW5jdGlvbiBfbyhlKXt2YXIgdD1lW0VvXTtpZih0KXJldHVybiB0O2Zvcih2YXIgbj1lLnBhcmVudE5vZGU7bjspe2lmKHQ9bltqb118fG5bRW9dKXtpZihuPXQuYWx0ZXJuYXRlLG51bGwhPT10LmNoaWxkfHxudWxsIT09biYmbnVsbCE9PW4uY2hpbGQpZm9yKGU9Q28oZSk7bnVsbCE9PWU7KXtpZihuPWVbRW9dKXJldHVybiBuO2U9Q28oZSl9cmV0dXJuIHR9bj0oZT1uKS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIHpvKGUpe3JldHVybiEoZT1lW0VvXXx8ZVtqb10pfHw1IT09ZS50YWcmJjYhPT1lLnRhZyYmMTMhPT1lLnRhZyYmMyE9PWUudGFnP251bGw6ZX1mdW5jdGlvbiBUbyhlKXtpZig1PT09ZS50YWd8fDY9PT1lLnRhZylyZXR1cm4gZS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IoRCgzMykpfWZ1bmN0aW9uIExvKGUpe3JldHVybiBlW09vXXx8bnVsbH12YXIgTW89W10sUm89LTE7ZnVuY3Rpb24gTm8oZSl7cmV0dXJue2N1cnJlbnQ6ZX19ZnVuY3Rpb24gdShlKXtSbzwwfHwoZS5jdXJyZW50PU1vW1JvXSxNb1tSb109bnVsbCxSby0tKX1mdW5jdGlvbiBiKGUsdCl7TW9bKytSb109ZS5jdXJyZW50LGUuY3VycmVudD10fXZhciBEbz17fSx5PU5vKERvKSx2PU5vKCExKSxVbz1EbztmdW5jdGlvbiBCbyhlLHQpe3ZhciBuPWUudHlwZS5jb250ZXh0VHlwZXM7aWYoIW4pcmV0dXJuIERvO3ZhciByPWUuc3RhdGVOb2RlO2lmKHImJnIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD09PXQpcmV0dXJuIHIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7dmFyIG8sYT17fTtmb3IobyBpbiBuKWFbb109dFtvXTtyZXR1cm4gciYmKChlPWUuc3RhdGVOb2RlKS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PXQsZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1hKSxhfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGwhPShlPWUuY2hpbGRDb250ZXh0VHlwZXMpfWZ1bmN0aW9uIEZvKCl7dSh2KSx1KHkpfWZ1bmN0aW9uIEhvKGUsdCxuKXtpZih5LmN1cnJlbnQhPT1Ebyl0aHJvdyBFcnJvcihEKDE2OCkpO2IoeSx0KSxiKHYsbil9ZnVuY3Rpb24gVm8oZSx0LG4pe3ZhciByLG89ZS5zdGF0ZU5vZGU7aWYodD10LmNoaWxkQ29udGV4dFR5cGVzLCJmdW5jdGlvbiIhPXR5cGVvZiBvLmdldENoaWxkQ29udGV4dClyZXR1cm4gbjtmb3IociBpbiBvPW8uZ2V0Q2hpbGRDb250ZXh0KCkpaWYoIShyIGluIHQpKXRocm93IEVycm9yKEQoMTA4LHZlKGUpfHwiVW5rbm93biIscikpO3JldHVybiBnKHt9LG4sbyl9ZnVuY3Rpb24gJG8oZSl7ZT0oZT1lLnN0YXRlTm9kZSkmJmUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fERvLFVvPXkuY3VycmVudCxiKHksZSksYih2LHYuY3VycmVudCl9ZnVuY3Rpb24gV28oZSx0LG4pe3ZhciByPWUuc3RhdGVOb2RlO2lmKCFyKXRocm93IEVycm9yKEQoMTY5KSk7bj8oZT1WbyhlLHQsVW8pLHIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9ZSx1KHYpLHUoeSksYih5LGUpKTp1KHYpLGIodixuKX12YXIgR289bnVsbCxxbz0hMSxabz0hMTtmdW5jdGlvbiBYbyhlKXtudWxsPT09R28/R289W2VdOkdvLnB1c2goZSl9ZnVuY3Rpb24gWW8oKXtpZighWm8mJm51bGwhPT1Hbyl7Wm89ITA7dmFyIHQ9MCxlPXg7dHJ5e3ZhciBuPUdvO2Zvcih4PTE7dDxuLmxlbmd0aDt0KyspZm9yKHZhciByPW5bdF07bnVsbCE9PShyPXIoITApKTspO0dvPW51bGwscW89ITF9Y2F0Y2goZSl7dGhyb3cgbnVsbCE9PUdvJiYoR289R28uc2xpY2UodCsxKSksd3QoRXQsWW8pLGV9ZmluYWxseXt4PWUsWm89ITF9fXJldHVybiBudWxsfXZhciBRbz1bXSxLbz0wLEpvPW51bGwsZWE9MCx0YT1bXSxuYT0wLHJhPW51bGwsb2E9MSxhYT0iIjtmdW5jdGlvbiBpYShlLHQpe1FvW0tvKytdPWVhLFFvW0tvKytdPUpvLEpvPWUsZWE9dH1mdW5jdGlvbiBsYShlLHQsbil7dGFbbmErK109b2EsdGFbbmErK109YWEsdGFbbmErK109cmEscmE9ZTt2YXIgcixvPW9hLGE9KGU9YWEsMzItenQobyktMSksaT0obyY9figxPDxhKSxuKz0xLDMyLXp0KHQpK2EpO2FhPTMwPGk/KGk9KG8mKDE8PChyPWEtYSU1KSktMSkudG9TdHJpbmcoMzIpLG8+Pj1yLGEtPXIsb2E9MTw8MzItenQodCkrYXxuPDxhfG8saStlKToob2E9MTw8aXxuPDxhfG8sZSl9ZnVuY3Rpb24gY2EoZSl7bnVsbCE9PWUucmV0dXJuJiYoaWEoZSwxKSxsYShlLDEsMCkpfWZ1bmN0aW9uIHVhKGUpe2Zvcig7ZT09PUpvOylKbz1Rb1stLUtvXSxRb1tLb109bnVsbCxlYT1Rb1stLUtvXSxRb1tLb109bnVsbDtmb3IoO2U9PT1yYTspcmE9dGFbLS1uYV0sdGFbbmFdPW51bGwsYWE9dGFbLS1uYV0sdGFbbmFdPW51bGwsb2E9dGFbLS1uYV0sdGFbbmFdPW51bGx9dmFyIHNhPW51bGwsaz1udWxsLFU9ITEsZmE9bnVsbDtmdW5jdGlvbiBkYShlLHQpe3ZhciBuPW51KDUsbnVsbCxudWxsLDApO24uZWxlbWVudFR5cGU9IkRFTEVURUQiLG4uc3RhdGVOb2RlPXQsbnVsbD09PSh0PShuLnJldHVybj1lKS5kZWxldGlvbnMpPyhlLmRlbGV0aW9ucz1bbl0sZS5mbGFnc3w9MTYpOnQucHVzaChuKX1mdW5jdGlvbiBwYShlLHQpe3N3aXRjaChlLnRhZyl7Y2FzZSA1OnZhciBuPWUudHlwZTtyZXR1cm4gbnVsbCE9PSh0PTEhPT10Lm5vZGVUeXBlfHxuLnRvTG93ZXJDYXNlKCkhPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDp0KSYmKGUuc3RhdGVOb2RlPXQsc2E9ZSxrPVNvKHQuZmlyc3RDaGlsZCksMSk7Y2FzZSA2OnJldHVybiBudWxsIT09KHQ9IiI9PT1lLnBlbmRpbmdQcm9wc3x8MyE9PXQubm9kZVR5cGU/bnVsbDp0KSYmKGUuc3RhdGVOb2RlPXQsc2E9ZSxrPW51bGwsMSk7Y2FzZSAxMzpyZXR1cm4gbnVsbCE9PSh0PTghPT10Lm5vZGVUeXBlP251bGw6dCkmJihuPW51bGwhPT1yYT97aWQ6b2Esb3ZlcmZsb3c6YWF9Om51bGwsZS5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOnQsdHJlZUNvbnRleHQ6bixyZXRyeUxhbmU6MTA3Mzc0MTgyNH0sKG49bnUoMTgsbnVsbCxudWxsLDApKS5zdGF0ZU5vZGU9dCwobi5yZXR1cm49ZSkuY2hpbGQ9bixzYT1lLGs9bnVsbCwxKTtkZWZhdWx0OnJldHVybn19ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIDAhPSgxJmUubW9kZSkmJjA9PSgxMjgmZS5mbGFncyl9ZnVuY3Rpb24gaGEoZSl7aWYoVSlpZihrKXt2YXIgdD1rO2lmKCFwYShlLGspKXtpZihtYShlKSl0aHJvdyBFcnJvcihEKDQxOCkpO3ZhciBuPVNvKHQubmV4dFNpYmxpbmcpLHI9c2E7biYmcGEoZSxuKT9kYShyLHQpOihlLmZsYWdzPS00MDk3JmUuZmxhZ3N8MixVPSExLHNhPWUpfX1lbHNle2lmKG1hKGUpKXRocm93IEVycm9yKEQoNDE4KSk7ZS5mbGFncz0tNDA5NyZlLmZsYWdzfDIsVT0hMSxzYT1lfX1mdW5jdGlvbiBnYShlKXtmb3IoZT1lLnJldHVybjtudWxsIT09ZSYmNSE9PWUudGFnJiYzIT09ZS50YWcmJjEzIT09ZS50YWc7KWU9ZS5yZXR1cm47c2E9ZX1mdW5jdGlvbiBiYShlKXtpZihlIT09c2EpcmV0dXJuITE7aWYoIVUpcmV0dXJuIGdhKGUpLCEoVT0hMCk7dmFyIHQ7aWYodD0odD0odD0zIT09ZS50YWcpJiYhKHQ9NSE9PWUudGFnKT8iaGVhZCIhPT0odD1lLnR5cGUpJiYiYm9keSIhPT10JiYhZ28oZS50eXBlLGUubWVtb2l6ZWRQcm9wcyk6dCkmJmspe2lmKG1hKGUpKXRocm93IHlhKCksRXJyb3IoRCg0MTgpKTtmb3IoO3Q7KWRhKGUsdCksdD1Tbyh0Lm5leHRTaWJsaW5nKX1pZihnYShlKSwxMz09PWUudGFnKXtpZighKGU9bnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSk/ZS5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKEQoMzE3KSk7ZTp7Zm9yKGU9ZS5uZXh0U2libGluZyx0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYoIi8kIj09PW4pe2lmKDA9PT10KXtrPVNvKGUubmV4dFNpYmxpbmcpO2JyZWFrIGV9dC0tfWVsc2UiJCIhPT1uJiYiJCEiIT09biYmIiQ/IiE9PW58fHQrK31lPWUubmV4dFNpYmxpbmd9az1udWxsfX1lbHNlIGs9c2E/U28oZS5zdGF0ZU5vZGUubmV4dFNpYmxpbmcpOm51bGw7cmV0dXJuITB9ZnVuY3Rpb24geWEoKXtmb3IodmFyIGU9aztlOyllPVNvKGUubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIHZhKCl7az1zYT1udWxsLFU9ITF9ZnVuY3Rpb24gd2EoZSl7bnVsbD09PWZhP2ZhPVtlXTpmYS5wdXNoKGUpfXZhciB4YT1KLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO2Z1bmN0aW9uIGthKGUsdCl7aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKHZhciBuIGluIHQ9Zyh7fSx0KSxlPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PXRbbl0mJih0W25dPWVbbl0pO3JldHVybiB0fXZhciBTYT1ObyhudWxsKSxDYT1udWxsLEVhPW51bGwsT2E9bnVsbDtmdW5jdGlvbiBqYSgpe09hPUVhPUNhPW51bGx9ZnVuY3Rpb24gQWEoZSl7dmFyIHQ9U2EuY3VycmVudDt1KFNhKSxlLl9jdXJyZW50VmFsdWU9dH1mdW5jdGlvbiBQYShlLHQsbil7Zm9yKDtudWxsIT09ZTspe3ZhciByPWUuYWx0ZXJuYXRlO2lmKChlLmNoaWxkTGFuZXMmdCkhPT10PyhlLmNoaWxkTGFuZXN8PXQsbnVsbCE9PXImJihyLmNoaWxkTGFuZXN8PXQpKTpudWxsIT09ciYmKHIuY2hpbGRMYW5lcyZ0KSE9PXQmJihyLmNoaWxkTGFuZXN8PXQpLGU9PT1uKWJyZWFrO2U9ZS5yZXR1cm59fWZ1bmN0aW9uIElhKGUsdCl7KE9hPUVhPW51bGwpIT09KGU9KENhPWUpLmRlcGVuZGVuY2llcykmJm51bGwhPT1lLmZpcnN0Q29udGV4dCYmKDAhPShlLmxhbmVzJnQpJiYoaj0hMCksZS5maXJzdENvbnRleHQ9bnVsbCl9ZnVuY3Rpb24gX2EoZSl7dmFyIHQ9ZS5fY3VycmVudFZhbHVlO2lmKE9hIT09ZSlpZihlPXtjb250ZXh0OmUsbWVtb2l6ZWRWYWx1ZTp0LG5leHQ6bnVsbH0sbnVsbD09PUVhKXtpZihudWxsPT09Q2EpdGhyb3cgRXJyb3IoRCgzMDgpKTtFYT1lLENhLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6ZX19ZWxzZSBFYT1FYS5uZXh0PWU7cmV0dXJuIHR9dmFyIHphPW51bGw7ZnVuY3Rpb24gVGEoZSl7bnVsbD09PXphP3phPVtlXTp6YS5wdXNoKGUpfWZ1bmN0aW9uIExhKGUsdCxuLHIpe3ZhciBvPXQuaW50ZXJsZWF2ZWQ7cmV0dXJuIG51bGw9PT1vPyhuLm5leHQ9bixUYSh0KSk6KG4ubmV4dD1vLm5leHQsby5uZXh0PW4pLHQuaW50ZXJsZWF2ZWQ9bixNYShlLHIpfWZ1bmN0aW9uIE1hKGUsdCl7ZS5sYW5lc3w9dDt2YXIgbj1lLmFsdGVybmF0ZTtmb3IobnVsbCE9PW4mJihuLmxhbmVzfD10KSxlPShuPWUpLnJldHVybjtudWxsIT09ZTspZS5jaGlsZExhbmVzfD10LG51bGwhPT0obj1lLmFsdGVybmF0ZSkmJihuLmNoaWxkTGFuZXN8PXQpLGU9KG49ZSkucmV0dXJuO3JldHVybiAzPT09bi50YWc/bi5zdGF0ZU5vZGU6bnVsbH12YXIgUmE9ITE7ZnVuY3Rpb24gTmEoZSl7ZS51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUubWVtb2l6ZWRTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6bnVsbCxsYXN0QmFzZVVwZGF0ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MH0sZWZmZWN0czpudWxsfX1mdW5jdGlvbiBEYShlLHQpe2U9ZS51cGRhdGVRdWV1ZSx0LnVwZGF0ZVF1ZXVlPT09ZSYmKHQudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTplLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6ZS5maXJzdEJhc2VVcGRhdGUsbGFzdEJhc2VVcGRhdGU6ZS5sYXN0QmFzZVVwZGF0ZSxzaGFyZWQ6ZS5zaGFyZWQsZWZmZWN0czplLmVmZmVjdHN9KX1mdW5jdGlvbiBVYShlLHQpe3JldHVybntldmVudFRpbWU6ZSxsYW5lOnQsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiBCYShlLHQsbil7dmFyIHIsbz1lLnVwZGF0ZVF1ZXVlO3JldHVybiBudWxsPT09bz9udWxsOihvPW8uc2hhcmVkLDAhPSgyJl8pPyhudWxsPT09KHI9by5wZW5kaW5nKT90Lm5leHQ9dDoodC5uZXh0PXIubmV4dCxyLm5leHQ9dCksby5wZW5kaW5nPXQpOihudWxsPT09KHI9by5pbnRlcmxlYXZlZCk/KHQubmV4dD10LFRhKG8pKToodC5uZXh0PXIubmV4dCxyLm5leHQ9dCksby5pbnRlcmxlYXZlZD10KSxNYShlLG4pKX1mdW5jdGlvbiBGYShlLHQsbil7dmFyIHI7bnVsbCE9PSh0PXQudXBkYXRlUXVldWUpJiYodD10LnNoYXJlZCwwIT0oNDE5NDI0MCZuKSkmJihyPXQubGFuZXMsciY9ZS5wZW5kaW5nTGFuZXMsJHQoZSx0LmxhbmVzPW58PXIpKX1mdW5jdGlvbiBIYShlLHQpe3ZhciBuPWUudXBkYXRlUXVldWUscj1lLmFsdGVybmF0ZTtpZihudWxsIT09ciYmbj09PShyPXIudXBkYXRlUXVldWUpKXt2YXIgbz1udWxsLGE9bnVsbDtpZihudWxsIT09KG49bi5maXJzdEJhc2VVcGRhdGUpKXtkb3t2YXIgaT17ZXZlbnRUaW1lOm4uZXZlbnRUaW1lLGxhbmU6bi5sYW5lLHRhZzpuLnRhZyxwYXlsb2FkOm4ucGF5bG9hZCxjYWxsYmFjazpuLmNhbGxiYWNrLG5leHQ6bnVsbH19d2hpbGUobnVsbD09PWE/bz1hPWk6YT1hLm5leHQ9aSxudWxsIT09KG49bi5uZXh0KSk7bnVsbD09PWE/bz1hPXQ6YT1hLm5leHQ9dH1lbHNlIG89YT10O249e2Jhc2VTdGF0ZTpyLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6byxsYXN0QmFzZVVwZGF0ZTphLHNoYXJlZDpyLnNoYXJlZCxlZmZlY3RzOnIuZWZmZWN0c30sZS51cGRhdGVRdWV1ZT1ufWVsc2UgbnVsbD09PShlPW4ubGFzdEJhc2VVcGRhdGUpP24uZmlyc3RCYXNlVXBkYXRlPXQ6ZS5uZXh0PXQsbi5sYXN0QmFzZVVwZGF0ZT10fWZ1bmN0aW9uIFZhKGUsdCxuLHIpe3ZhciBvLGEsaT1lLnVwZGF0ZVF1ZXVlLGw9KFJhPSExLGkuZmlyc3RCYXNlVXBkYXRlKSxjPWkubGFzdEJhc2VVcGRhdGU7aWYobnVsbCE9PShmPWkuc2hhcmVkLnBlbmRpbmcpJiYoaS5zaGFyZWQucGVuZGluZz1udWxsLGE9KG89ZikubmV4dCwoby5uZXh0PW51bGwpPT09Yz9sPWE6Yy5uZXh0PWEsYz1vLG51bGwhPT0ocz1lLmFsdGVybmF0ZSkpJiYoZj0ocz1zLnVwZGF0ZVF1ZXVlKS5sYXN0QmFzZVVwZGF0ZSkhPT1jJiYobnVsbD09PWY/cy5maXJzdEJhc2VVcGRhdGU9YTpmLm5leHQ9YSxzLmxhc3RCYXNlVXBkYXRlPW8pLG51bGwhPT1sKXtmb3IodmFyIHU9aS5iYXNlU3RhdGUsYz0wLHM9YT1vPW51bGwsZj1sOzspe3ZhciBkPWYubGFuZSxwPWYuZXZlbnRUaW1lO2lmKChyJmQpPT09ZCl7bnVsbCE9PXMmJihzPXMubmV4dD17ZXZlbnRUaW1lOnAsbGFuZTowLHRhZzpmLnRhZyxwYXlsb2FkOmYucGF5bG9hZCxjYWxsYmFjazpmLmNhbGxiYWNrLG5leHQ6bnVsbH0pO2U6e3ZhciBtPWUsaD1mLGQ9dCxwPW47c3dpdGNoKGgudGFnKXtjYXNlIDE6aWYoImZ1bmN0aW9uIj09dHlwZW9mKG09aC5wYXlsb2FkKSl7dT1tLmNhbGwocCx1LGQpO2JyZWFrIGV9dT1tO2JyZWFrIGU7Y2FzZSAzOm0uZmxhZ3M9LTY1NTM3Jm0uZmxhZ3N8MTI4O2Nhc2UgMDppZihudWxsPT0oZD0iZnVuY3Rpb24iPT10eXBlb2YobT1oLnBheWxvYWQpP20uY2FsbChwLHUsZCk6bSkpYnJlYWsgZTt1PWcoe30sdSxkKTticmVhayBlO2Nhc2UgMjpSYT0hMH19bnVsbCE9PWYuY2FsbGJhY2smJjAhPT1mLmxhbmUmJihlLmZsYWdzfD02NCxudWxsPT09KGQ9aS5lZmZlY3RzKT9pLmVmZmVjdHM9W2ZdOmQucHVzaChmKSl9ZWxzZSBwPXtldmVudFRpbWU6cCxsYW5lOmQsdGFnOmYudGFnLHBheWxvYWQ6Zi5wYXlsb2FkLGNhbGxiYWNrOmYuY2FsbGJhY2ssbmV4dDpudWxsfSxudWxsPT09cz8oYT1zPXAsbz11KTpzPXMubmV4dD1wLGN8PWQ7aWYobnVsbD09PShmPWYubmV4dCkpe2lmKG51bGw9PT0oZj1pLnNoYXJlZC5wZW5kaW5nKSlicmVhaztmPShkPWYpLm5leHQsZC5uZXh0PW51bGwsaS5sYXN0QmFzZVVwZGF0ZT1kLGkuc2hhcmVkLnBlbmRpbmc9bnVsbH19aWYobnVsbD09PXMmJihvPXUpLGkuYmFzZVN0YXRlPW8saS5maXJzdEJhc2VVcGRhdGU9YSxpLmxhc3RCYXNlVXBkYXRlPXMsbnVsbCE9PSh0PWkuc2hhcmVkLmludGVybGVhdmVkKSlmb3IoaT10O2N8PWkubGFuZSwoaT1pLm5leHQpIT09dDspO2Vsc2UgbnVsbD09PWwmJihpLnNoYXJlZC5sYW5lcz0wKTtoY3w9YyxlLmxhbmVzPWMsZS5tZW1vaXplZFN0YXRlPXV9fWZ1bmN0aW9uICRhKGUsdCxuKXtpZihlPXQuZWZmZWN0cywodC5lZmZlY3RzPW51bGwpIT09ZSlmb3IodD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgcj1lW3RdLG89ci5jYWxsYmFjaztpZihudWxsIT09byl7aWYoci5jYWxsYmFjaz1udWxsLHI9biwiZnVuY3Rpb24iIT10eXBlb2Ygbyl0aHJvdyBFcnJvcihEKDE5MSxvKSk7by5jYWxsKHIpfX19dmFyIFdhPShuZXcgTi5Db21wb25lbnQpLnJlZnM7ZnVuY3Rpb24gR2EoZSx0LG4scil7bj1udWxsPT0obj1uKHIsdD1lLm1lbW9pemVkU3RhdGUpKT90Omcoe30sdCxuKSxlLm1lbW9pemVkU3RhdGU9biwwPT09ZS5sYW5lcyYmKGUudXBkYXRlUXVldWUuYmFzZVN0YXRlPW4pfXZhciBxYT17aXNNb3VudGVkOmZ1bmN0aW9uKGUpe3JldHVybiEhKGU9ZS5fcmVhY3RJbnRlcm5hbHMpJiZndChlKT09PWV9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihlLHQsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1tKCksbz16YyhlKSxhPVVhKHIsbyk7YS5wYXlsb2FkPXQsbnVsbCE9biYmKGEuY2FsbGJhY2s9biksbnVsbCE9PSh0PUJhKGUsYSxvKSkmJihUYyh0LGUsbyxyKSxGYSh0LGUsbykpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGUsdCxuKXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciByPW0oKSxvPXpjKGUpLGE9VWEocixvKTthLnRhZz0xLGEucGF5bG9hZD10LG51bGwhPW4mJihhLmNhbGxiYWNrPW4pLG51bGwhPT0odD1CYShlLGEsbykpJiYoVGModCxlLG8sciksRmEodCxlLG8pKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGUsdCl7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgbj1tKCkscj16YyhlKSxvPVVhKG4scik7by50YWc9MixudWxsIT10JiYoby5jYWxsYmFjaz10KSxudWxsIT09KHQ9QmEoZSxvLHIpKSYmKFRjKHQsZSxyLG4pLEZhKHQsZSxyKSl9fTtmdW5jdGlvbiBaYShlLHQsbixyLG8sYSxpKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YoZT1lLnN0YXRlTm9kZSkuc2hvdWxkQ29tcG9uZW50VXBkYXRlP2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKHIsYSxpKTohKHQucHJvdG90eXBlJiZ0LnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudCYmU3IobixyKSYmU3IobyxhKSl9ZnVuY3Rpb24gWGEoZSx0LG4pe3ZhciByPSExLG89RG8sYT10LmNvbnRleHRUeXBlO3Q9bmV3IHQobixhPSJvYmplY3QiPT10eXBlb2YgYSYmbnVsbCE9PWE/X2EoYSk6KG89dyh0KT9Vbzp5LmN1cnJlbnQsKHI9bnVsbCE9KHI9dC5jb250ZXh0VHlwZXMpKT9CbyhlLG8pOkRvKSksZS5tZW1vaXplZFN0YXRlPW51bGwhPT10LnN0YXRlJiZ2b2lkIDAhPT10LnN0YXRlP3Quc3RhdGU6bnVsbCx0LnVwZGF0ZXI9cWEsKGUuc3RhdGVOb2RlPXQpLl9yZWFjdEludGVybmFscz1lLHImJigoZT1lLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1vLGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9YSl9ZnVuY3Rpb24gWWEoZSx0LG4scil7ZT10LnN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJnQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuLHIpLCJmdW5jdGlvbiI9PXR5cGVvZiB0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZ0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sciksdC5zdGF0ZSE9PWUmJnFhLmVucXVldWVSZXBsYWNlU3RhdGUodCx0LnN0YXRlLG51bGwpfWZ1bmN0aW9uIFFhKGUsdCxuLHIpe3ZhciBvPWUuc3RhdGVOb2RlLGE9KG8ucHJvcHM9bixvLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxvLnJlZnM9V2EsTmEoZSksdC5jb250ZXh0VHlwZSk7Im9iamVjdCI9PXR5cGVvZiBhJiZudWxsIT09YT9vLmNvbnRleHQ9X2EoYSk6KGE9dyh0KT9Vbzp5LmN1cnJlbnQsby5jb250ZXh0PUJvKGUsYSkpLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZihhPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKSYmKEdhKGUsMCxhLG4pLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fCJmdW5jdGlvbiI9PXR5cGVvZiBvLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHwiZnVuY3Rpb24iIT10eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiYiZnVuY3Rpb24iIT10eXBlb2Ygby5jb21wb25lbnRXaWxsTW91bnR8fCh0PW8uc3RhdGUsImZ1bmN0aW9uIj09dHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50JiZvLmNvbXBvbmVudFdpbGxNb3VudCgpLCJmdW5jdGlvbiI9PXR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJm8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLHQhPT1vLnN0YXRlJiZxYS5lbnF1ZXVlUmVwbGFjZVN0YXRlKG8sby5zdGF0ZSxudWxsKSxWYShlLG4sbyxyKSxvLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSksImZ1bmN0aW9uIj09dHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQmJihlLmZsYWdzfD00MTk0MzA4KX1mdW5jdGlvbiBLYShlLHQsbil7aWYobnVsbCE9PShlPW4ucmVmKSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUmJiJvYmplY3QiIT10eXBlb2YgZSl7aWYobi5fb3duZXIpe2lmKG49bi5fb3duZXIpe2lmKDEhPT1uLnRhZyl0aHJvdyBFcnJvcihEKDMwOSkpO3ZhciByPW4uc3RhdGVOb2RlfXZhciBvLGE7aWYocilyZXR1cm4gbz1yLGE9IiIrZSxudWxsIT09dCYmbnVsbCE9PXQucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5yZWYmJnQucmVmLl9zdHJpbmdSZWY9PT1hP3QucmVmOigodD1mdW5jdGlvbihlKXt2YXIgdD1vLnJlZnM7dD09PVdhJiYodD1vLnJlZnM9e30pLG51bGw9PT1lP2RlbGV0ZSB0W2FdOnRbYV09ZX0pLl9zdHJpbmdSZWY9YSx0KTt0aHJvdyBFcnJvcihEKDE0NyxlKSl9aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IEVycm9yKEQoMjg0KSk7aWYoIW4uX293bmVyKXRocm93IEVycm9yKEQoMjkwLGUpKX1yZXR1cm4gZX1mdW5jdGlvbiBKYShlLHQpe3Rocm93IGU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLEVycm9yKEQoMzEsIltvYmplY3QgT2JqZWN0XSI9PT1lPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKHQpLmpvaW4oIiwgIikrIn0iOmUpKX1mdW5jdGlvbiBlaShlKXtyZXR1cm4oMCxlLl9pbml0KShlLl9wYXlsb2FkKX1mdW5jdGlvbiB0aShBKXtmdW5jdGlvbiBQKGUsdCl7dmFyIG47QSYmKG51bGw9PT0obj1lLmRlbGV0aW9ucyk/KGUuZGVsZXRpb25zPVt0XSxlLmZsYWdzfD0xNik6bi5wdXNoKHQpKX1mdW5jdGlvbiBJKGUsdCl7aWYoQSlmb3IoO251bGwhPT10OylQKGUsdCksdD10LnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gXyhlLHQpe2ZvcihlPW5ldyBNYXA7bnVsbCE9PXQ7KW51bGwhPT10LmtleT9lLnNldCh0LmtleSx0KTplLnNldCh0LmluZGV4LHQpLHQ9dC5zaWJsaW5nO3JldHVybiBlfWZ1bmN0aW9uIHooZSx0KXtyZXR1cm4oZT1vdShlLHQpKS5pbmRleD0wLGUuc2libGluZz1udWxsLGV9ZnVuY3Rpb24gVChlLHQsbil7aWYoZS5pbmRleD1uLEEpe2lmKG51bGwhPT0obj1lLmFsdGVybmF0ZSkpcmV0dXJuKG49bi5pbmRleCk8dD8oZS5mbGFnc3w9Mix0KTpuO2UuZmxhZ3N8PTJ9ZWxzZSBlLmZsYWdzfD0xMDQ4NTc2O3JldHVybiB0fWZ1bmN0aW9uIEwoZSl7cmV0dXJuIEEmJm51bGw9PT1lLmFsdGVybmF0ZSYmKGUuZmxhZ3N8PTIpLGV9ZnVuY3Rpb24gYShlLHQsbixyKXtyZXR1cm4gbnVsbD09PXR8fDYhPT10LnRhZz8odD1jdShuLGUubW9kZSxyKSkucmV0dXJuPWU6KHQ9eih0LG4pKS5yZXR1cm49ZSx0fWZ1bmN0aW9uIGkoZSx0LG4scil7dmFyIG89bi50eXBlO3JldHVybiBvPT09bmU/YyhlLHQsbi5wcm9wcy5jaGlsZHJlbixyLG4ua2V5KToobnVsbCE9PXQmJih0LmVsZW1lbnRUeXBlPT09b3x8Im9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09byYmby4kJHR5cGVvZj09PWZlJiZlaShvKT09PXQudHlwZSk/KHI9eih0LG4ucHJvcHMpKS5yZWY9S2EoMCx0LG4pOihyPWF1KG4udHlwZSxuLmtleSxuLnByb3BzLG51bGwsZS5tb2RlLHIpKS5yZWY9S2EoMCx0LG4pLHIucmV0dXJuPWUscil9ZnVuY3Rpb24gbChlLHQsbixyKXtyZXR1cm4gbnVsbD09PXR8fDQhPT10LnRhZ3x8dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PW4uY29udGFpbmVySW5mb3x8dC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT1uLmltcGxlbWVudGF0aW9uPyh0PXV1KG4sZS5tb2RlLHIpKS5yZXR1cm49ZToodD16KHQsbi5jaGlsZHJlbnx8W10pKS5yZXR1cm49ZSx0fWZ1bmN0aW9uIGMoZSx0LG4scixvKXtyZXR1cm4gbnVsbD09PXR8fDchPT10LnRhZz8odD1pdShuLGUubW9kZSxyLG8pKS5yZXR1cm49ZToodD16KHQsbikpLnJldHVybj1lLHR9ZnVuY3Rpb24gTShlLHQsbil7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYiIiE9PXR8fCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4odD1jdSgiIit0LGUubW9kZSxuKSkucmV0dXJuPWUsdDtpZigib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10KXtzd2l0Y2godC4kJHR5cGVvZil7Y2FzZSBlZTpyZXR1cm4obj1hdSh0LnR5cGUsdC5rZXksdC5wcm9wcyxudWxsLGUubW9kZSxuKSkucmVmPUthKDAsbnVsbCx0KSxuLnJldHVybj1lLG47Y2FzZSB0ZTpyZXR1cm4odD11dSh0LGUubW9kZSxuKSkucmV0dXJuPWUsdDtjYXNlIGZlOnJldHVybiBNKGUsKDAsdC5faW5pdCkodC5fcGF5bG9hZCksbil9aWYoX2UodCl8fG1lKHQpKXJldHVybih0PWl1KHQsZS5tb2RlLG4sbnVsbCkpLnJldHVybj1lLHQ7SmEoMCx0KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBSKGUsdCxuLHIpe3ZhciBvPW51bGwhPT10P3Qua2V5Om51bGw7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYiIiE9PW58fCJudW1iZXIiPT10eXBlb2YgbilyZXR1cm4gbnVsbCE9PW8/bnVsbDphKGUsdCwiIituLHIpO2lmKCJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4pe3N3aXRjaChuLiQkdHlwZW9mKXtjYXNlIGVlOnJldHVybiBuLmtleT09PW8/aShlLHQsbixyKTpudWxsO2Nhc2UgdGU6cmV0dXJuIG4ua2V5PT09bz9sKGUsdCxuLHIpOm51bGw7Y2FzZSBmZTpyZXR1cm4gUihlLHQsKG89bi5faW5pdCkobi5fcGF5bG9hZCkscil9aWYoX2Uobil8fG1lKG4pKXJldHVybiBudWxsIT09bz9udWxsOmMoZSx0LG4scixudWxsKTtKYSgwLG4pfXJldHVybiBudWxsfWZ1bmN0aW9uIE4oZSx0LG4scixvKXtpZigic3RyaW5nIj09dHlwZW9mIHImJiIiIT09cnx8Im51bWJlciI9PXR5cGVvZiByKXJldHVybiBhKHQsZT1lLmdldChuKXx8bnVsbCwiIityLG8pO2lmKCJvYmplY3QiPT10eXBlb2YgciYmbnVsbCE9PXIpe3N3aXRjaChyLiQkdHlwZW9mKXtjYXNlIGVlOnJldHVybiBpKHQsZT1lLmdldChudWxsPT09ci5rZXk/bjpyLmtleSl8fG51bGwscixvKTtjYXNlIHRlOnJldHVybiBsKHQsZT1lLmdldChudWxsPT09ci5rZXk/bjpyLmtleSl8fG51bGwscixvKTtjYXNlIGZlOnJldHVybiBOKGUsdCxuLCgwLHIuX2luaXQpKHIuX3BheWxvYWQpLG8pfWlmKF9lKHIpfHxtZShyKSlyZXR1cm4gYyh0LGU9ZS5nZXQobil8fG51bGwscixvLG51bGwpO0phKDAscil9cmV0dXJuIG51bGx9cmV0dXJuIGZ1bmN0aW9uIGUodCxuLHIsbyl7aWYoIm9iamVjdCI9PXR5cGVvZihyPSJvYmplY3QiPT10eXBlb2YgciYmbnVsbCE9PXImJnIudHlwZT09PW5lJiZudWxsPT09ci5rZXk/ci5wcm9wcy5jaGlsZHJlbjpyKSYmbnVsbCE9PXIpe3N3aXRjaChyLiQkdHlwZW9mKXtjYXNlIGVlOmU6e2Zvcih2YXIgYT1yLmtleSxpPW47bnVsbCE9PWk7KXtpZihpLmtleT09PWEpe2lmKChhPXIudHlwZSk9PT1uZSl7aWYoNz09PWkudGFnKXtJKHQsaS5zaWJsaW5nKSwobj16KGksci5wcm9wcy5jaGlsZHJlbikpLnJldHVybj10LHQ9bjticmVhayBlfX1lbHNlIGlmKGkuZWxlbWVudFR5cGU9PT1hfHwib2JqZWN0Ij09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09ZmUmJmVpKGEpPT09aS50eXBlKXtJKHQsaS5zaWJsaW5nKSwobj16KGksci5wcm9wcykpLnJlZj1LYSgwLGksciksbi5yZXR1cm49dCx0PW47YnJlYWsgZX1JKHQsaSk7YnJlYWt9UCh0LGkpLGk9aS5zaWJsaW5nfXQ9ci50eXBlPT09bmU/KChuPWl1KHIucHJvcHMuY2hpbGRyZW4sdC5tb2RlLG8sci5rZXkpKS5yZXR1cm49dCxuKTooKG89YXUoci50eXBlLHIua2V5LHIucHJvcHMsbnVsbCx0Lm1vZGUsbykpLnJlZj1LYSgwLG4sciksby5yZXR1cm49dCxvKX1yZXR1cm4gTCh0KTtjYXNlIHRlOmU6e2ZvcihpPXIua2V5O251bGwhPT1uOyl7aWYobi5rZXk9PT1pKXtpZig0PT09bi50YWcmJm4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1yLmNvbnRhaW5lckluZm8mJm4uc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09ci5pbXBsZW1lbnRhdGlvbil7SSh0LG4uc2libGluZyksKG49eihuLHIuY2hpbGRyZW58fFtdKSkucmV0dXJuPXQsdD1uO2JyZWFrIGV9SSh0LG4pO2JyZWFrfVAodCxuKSxuPW4uc2libGluZ30obj11dShyLHQubW9kZSxvKSkucmV0dXJuPXQsdD1ufXJldHVybiBMKHQpO2Nhc2UgZmU6cmV0dXJuIGUodCxuLChpPXIuX2luaXQpKHIuX3BheWxvYWQpLG8pfWlmKF9lKHIpKXtmb3IodmFyIGw9dCxjPW4sdT1yLHM9byxmPW51bGwsZD1udWxsLHA9YyxtPWM9MCxoPW51bGw7bnVsbCE9PXAmJm08dS5sZW5ndGg7bSsrKXtwLmluZGV4Pm0/KGg9cCxwPW51bGwpOmg9cC5zaWJsaW5nO3ZhciBnPVIobCxwLHVbbV0scyk7aWYobnVsbD09PWcpe251bGw9PT1wJiYocD1oKTticmVha31BJiZwJiZudWxsPT09Zy5hbHRlcm5hdGUmJlAobCxwKSxjPVQoZyxjLG0pLG51bGw9PT1kP2Y9ZzpkLnNpYmxpbmc9ZyxkPWcscD1ofWlmKG09PT11Lmxlbmd0aClJKGwscCk7ZWxzZSBpZihudWxsPT09cClmb3IoO208dS5sZW5ndGg7bSsrKW51bGwhPT0ocD1NKGwsdVttXSxzKSkmJihjPVQocCxjLG0pLG51bGw9PT1kP2Y9cDpkLnNpYmxpbmc9cCxkPXApO2Vsc2V7Zm9yKHA9XyhsLHApO208dS5sZW5ndGg7bSsrKW51bGwhPT0oaD1OKHAsbCxtLHVbbV0scykpJiYoQSYmbnVsbCE9PWguYWx0ZXJuYXRlJiZwLmRlbGV0ZShudWxsPT09aC5rZXk/bTpoLmtleSksYz1UKGgsYyxtKSxudWxsPT09ZD9mPWg6ZC5zaWJsaW5nPWgsZD1oKTtBJiZwLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIFAobCxlKX0pfXJldHVybiBVJiZpYShsLG0pLGZ9aWYobWUocikpe3ZhciBiPXQseT1uLHY9cix3PW8seD1tZSh2KTtpZigiZnVuY3Rpb24iIT10eXBlb2YgeCl0aHJvdyBFcnJvcihEKDE1MCkpO2lmKG51bGw9PSh2PXguY2FsbCh2KSkpdGhyb3cgRXJyb3IoRCgxNTEpKTtmb3IodmFyIGs9eD1udWxsLFM9eSxDPXk9MCxFPW51bGwsTz12Lm5leHQoKTtudWxsIT09UyYmIU8uZG9uZTtDKyssTz12Lm5leHQoKSl7Uy5pbmRleD5DPyhFPVMsUz1udWxsKTpFPVMuc2libGluZzt2YXIgaj1SKGIsUyxPLnZhbHVlLHcpO2lmKG51bGw9PT1qKXtudWxsPT09UyYmKFM9RSk7YnJlYWt9QSYmUyYmbnVsbD09PWouYWx0ZXJuYXRlJiZQKGIsUykseT1UKGoseSxDKSxudWxsPT09az94PWo6ay5zaWJsaW5nPWosaz1qLFM9RX1pZihPLmRvbmUpSShiLFMpO2Vsc2UgaWYobnVsbD09PVMpZm9yKDshTy5kb25lO0MrKyxPPXYubmV4dCgpKW51bGwhPT0oTz1NKGIsTy52YWx1ZSx3KSkmJih5PVQoTyx5LEMpLG51bGw9PT1rP3g9TzprLnNpYmxpbmc9TyxrPU8pO2Vsc2V7Zm9yKFM9XyhiLFMpOyFPLmRvbmU7QysrLE89di5uZXh0KCkpbnVsbCE9PShPPU4oUyxiLEMsTy52YWx1ZSx3KSkmJihBJiZudWxsIT09Ty5hbHRlcm5hdGUmJlMuZGVsZXRlKG51bGw9PT1PLmtleT9DOk8ua2V5KSx5PVQoTyx5LEMpLG51bGw9PT1rP3g9TzprLnNpYmxpbmc9TyxrPU8pO0EmJlMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gUChiLGUpfSl9cmV0dXJuIFUmJmlhKGIsQykseH1KYSgwLHIpfXJldHVybiJzdHJpbmciPT10eXBlb2YgciYmIiIhPT1yfHwibnVtYmVyIj09dHlwZW9mIHI/KHI9IiIrciwobj1udWxsIT09biYmNj09PW4udGFnPyhJKHQsbi5zaWJsaW5nKSx6KG4scikpOihJKHQsbiksY3Uocix0Lm1vZGUsbykpKS5yZXR1cm49dCxMKHQ9bikpOkkodCxuKX19dmFyIG5pPXRpKCEwKSxyaT10aSghMSksb2k9e30sYWk9Tm8ob2kpLGlpPU5vKG9pKSxsaT1ObyhvaSk7ZnVuY3Rpb24gY2koZSl7aWYoZT09PW9pKXRocm93IEVycm9yKEQoMTc0KSk7cmV0dXJuIGV9ZnVuY3Rpb24gdWkoZSx0KXtzd2l0Y2goYihsaSx0KSxiKGlpLGUpLGIoYWksb2kpLGU9dC5ub2RlVHlwZSl7Y2FzZSA5OmNhc2UgMTE6dD0odD10LmRvY3VtZW50RWxlbWVudCk/dC5uYW1lc3BhY2VVUkk6RGUobnVsbCwiIik7YnJlYWs7ZGVmYXVsdDp0PURlKHQ9KGU9OD09PWU/dC5wYXJlbnROb2RlOnQpLm5hbWVzcGFjZVVSSXx8bnVsbCxlPWUudGFnTmFtZSl9dShhaSksYihhaSx0KX1mdW5jdGlvbiBzaSgpe3UoYWkpLHUoaWkpLHUobGkpfWZ1bmN0aW9uIGZpKGUpe2NpKGxpLmN1cnJlbnQpO3ZhciB0PWNpKGFpLmN1cnJlbnQpLG49RGUodCxlLnR5cGUpO3QhPT1uJiYoYihpaSxlKSxiKGFpLG4pKX1mdW5jdGlvbiBkaShlKXtpaS5jdXJyZW50PT09ZSYmKHUoYWkpLHUoaWkpKX12YXIgUz1ObygwKTtmdW5jdGlvbiBwaShlKXtmb3IodmFyIHQ9ZTtudWxsIT09dDspe2lmKDEzPT09dC50YWcpe3ZhciBuPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09biYmKG51bGw9PT0obj1uLmRlaHlkcmF0ZWQpfHwiJD8iPT09bi5kYXRhfHwiJCEiPT09bi5kYXRhKSlyZXR1cm4gdH1lbHNlIGlmKDE5PT09dC50YWcmJnZvaWQgMCE9PXQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcil7aWYoMCE9KDEyOCZ0LmZsYWdzKSlyZXR1cm4gdH1lbHNlIGlmKG51bGwhPT10LmNoaWxkKXt0PSh0LmNoaWxkLnJldHVybj10KS5jaGlsZDtjb250aW51ZX1pZih0PT09ZSlicmVhaztmb3IoO251bGw9PT10LnNpYmxpbmc7KXtpZihudWxsPT09dC5yZXR1cm58fHQucmV0dXJuPT09ZSlyZXR1cm4gbnVsbDt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIG1pPVtdO2Z1bmN0aW9uIGhpKCl7Zm9yKHZhciBlPTA7ZTxtaS5sZW5ndGg7ZSsrKW1pW2VdLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5PW51bGw7bWkubGVuZ3RoPTB9dmFyIGdpPUouUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixiaT1KLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLHlpPTAsQz1udWxsLEU9bnVsbCxPPW51bGwsdmk9ITEsd2k9ITEseGk9MCxraT0wO2Z1bmN0aW9uIG8oKXt0aHJvdyBFcnJvcihEKDMyMSkpfWZ1bmN0aW9uIFNpKGUsdCl7aWYobnVsbCE9PXQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGgmJm48ZS5sZW5ndGg7bisrKWlmKCFrcihlW25dLHRbbl0pKXJldHVybjtyZXR1cm4gMX19ZnVuY3Rpb24gQ2koZSx0LG4scixvLGEpe2lmKHlpPWEsKEM9dCkubWVtb2l6ZWRTdGF0ZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCx0LmxhbmVzPTAsZ2kuY3VycmVudD1udWxsPT09ZXx8bnVsbD09PWUubWVtb2l6ZWRTdGF0ZT9vbDphbCxlPW4ocixvKSx3aSl7YT0wO2Rve2lmKHdpPSExLHhpPTAsMjU8PWEpdGhyb3cgRXJyb3IoRCgzMDEpKX13aGlsZShhKz0xLE89RT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCxnaS5jdXJyZW50PWlsLGU9bihyLG8pLHdpKX1pZihnaS5jdXJyZW50PXJsLHQ9bnVsbCE9PUUmJm51bGwhPT1FLm5leHQseWk9MCxPPUU9Qz1udWxsLHZpPSExLHQpdGhyb3cgRXJyb3IoRCgzMDApKTtyZXR1cm4gZX1mdW5jdGlvbiBFaSgpe3ZhciBlPTAhPT14aTtyZXR1cm4geGk9MCxlfWZ1bmN0aW9uIE9pKCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIG51bGw9PT1PP0MubWVtb2l6ZWRTdGF0ZT1PPWU6Tz1PLm5leHQ9ZSxPfWZ1bmN0aW9uIGppKCl7ZT1udWxsPT09RT9udWxsIT09KGU9Qy5hbHRlcm5hdGUpP2UubWVtb2l6ZWRTdGF0ZTpudWxsOkUubmV4dDt2YXIgZSx0PW51bGw9PT1PP0MubWVtb2l6ZWRTdGF0ZTpPLm5leHQ7aWYobnVsbCE9PXQpTz10LEU9ZTtlbHNle2lmKG51bGw9PT1lKXRocm93IEVycm9yKEQoMzEwKSk7ZT17bWVtb2l6ZWRTdGF0ZTooRT1lKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpFLmJhc2VTdGF0ZSxiYXNlUXVldWU6RS5iYXNlUXVldWUscXVldWU6RS5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1PP0MubWVtb2l6ZWRTdGF0ZT1PPWU6Tz1PLm5leHQ9ZX1yZXR1cm4gT31mdW5jdGlvbiBBaShlLHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoZSk6dH1mdW5jdGlvbiBQaShlKXt2YXIgdD1qaSgpLG49dC5xdWV1ZTtpZihudWxsPT09bil0aHJvdyBFcnJvcihEKDMxMSkpO24ubGFzdFJlbmRlcmVkUmVkdWNlcj1lO3ZhciByLG89KGk9RSkuYmFzZVF1ZXVlO2lmKG51bGwhPT0oYT1uLnBlbmRpbmcpJiYobnVsbCE9PW8mJihyPW8ubmV4dCxvLm5leHQ9YS5uZXh0LGEubmV4dD1yKSxpLmJhc2VRdWV1ZT1vPWEsbi5wZW5kaW5nPW51bGwpLG51bGwhPT1vKXt2YXIgYT1vLm5leHQsaT1pLmJhc2VTdGF0ZSxsPXI9bnVsbCxjPW51bGwsdT1hO2Rve3ZhciBzLGY9dS5sYW5lfXdoaWxlKCh5aSZmKT09PWY/KG51bGwhPT1jJiYoYz1jLm5leHQ9e2xhbmU6MCxhY3Rpb246dS5hY3Rpb24saGFzRWFnZXJTdGF0ZTp1Lmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTp1LmVhZ2VyU3RhdGUsbmV4dDpudWxsfSksaT11Lmhhc0VhZ2VyU3RhdGU/dS5lYWdlclN0YXRlOmUoaSx1LmFjdGlvbikpOihzPXtsYW5lOmYsYWN0aW9uOnUuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6dS5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6dS5lYWdlclN0YXRlLG5leHQ6bnVsbH0sbnVsbD09PWM/KGw9Yz1zLHI9aSk6Yz1jLm5leHQ9cyxDLmxhbmVzfD1mLGhjfD1mKSxudWxsIT09KHU9dS5uZXh0KSYmdSE9PWEpO251bGw9PT1jP3I9aTpjLm5leHQ9bCxrcihpLHQubWVtb2l6ZWRTdGF0ZSl8fChqPSEwKSx0Lm1lbW9pemVkU3RhdGU9aSx0LmJhc2VTdGF0ZT1yLHQuYmFzZVF1ZXVlPWMsbi5sYXN0UmVuZGVyZWRTdGF0ZT1pfWlmKG51bGwhPT0oZT1uLmludGVybGVhdmVkKSlmb3Iobz1lO2E9by5sYW5lLEMubGFuZXN8PWEsaGN8PWEsKG89by5uZXh0KSE9PWU7KTtlbHNlIG51bGw9PT1vJiYobi5sYW5lcz0wKTtyZXR1cm5bdC5tZW1vaXplZFN0YXRlLG4uZGlzcGF0Y2hdfWZ1bmN0aW9uIElpKGUpe3ZhciB0PWppKCksbj10LnF1ZXVlO2lmKG51bGw9PT1uKXRocm93IEVycm9yKEQoMzExKSk7bi5sYXN0UmVuZGVyZWRSZWR1Y2VyPWU7dmFyIHI9bi5kaXNwYXRjaCxvPW4ucGVuZGluZyxhPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09byl7bi5wZW5kaW5nPW51bGw7Zm9yKHZhciBpPW89by5uZXh0O2E9ZShhLGkuYWN0aW9uKSwoaT1pLm5leHQpIT09bzspO2tyKGEsdC5tZW1vaXplZFN0YXRlKXx8KGo9ITApLHQubWVtb2l6ZWRTdGF0ZT1hLG51bGw9PT10LmJhc2VRdWV1ZSYmKHQuYmFzZVN0YXRlPWEpLG4ubGFzdFJlbmRlcmVkU3RhdGU9YX1yZXR1cm5bYSxyXX1mdW5jdGlvbiBfaSgpe31mdW5jdGlvbiB6aShlLHQpe3ZhciBuPUMscj1qaSgpLG89dCgpLGE9IWtyKHIubWVtb2l6ZWRTdGF0ZSxvKTtpZihhJiYoci5tZW1vaXplZFN0YXRlPW8saj0hMCkscj1yLnF1ZXVlLCRpKE1pLmJpbmQobnVsbCxuLHIsZSksW2VdKSxyLmdldFNuYXBzaG90IT09dHx8YXx8bnVsbCE9PU8mJjEmTy5tZW1vaXplZFN0YXRlLnRhZyl7aWYobi5mbGFnc3w9MjA0OCxVaSg5LExpLmJpbmQobnVsbCxuLHIsbyx0KSx2b2lkIDAsbnVsbCksbnVsbD09PXApdGhyb3cgRXJyb3IoRCgzNDkpKTswPT0oMzAmeWkpJiZUaShuLHQsbyl9cmV0dXJuIG99ZnVuY3Rpb24gVGkoZSx0LG4pe2UuZmxhZ3N8PTE2Mzg0LGU9e2dldFNuYXBzaG90OnQsdmFsdWU6bn0sbnVsbD09PSh0PUMudXBkYXRlUXVldWUpPyhDLnVwZGF0ZVF1ZXVlPXQ9e2xhc3RFZmZlY3Q6bnVsbCxzdG9yZXM6bnVsbH0pLnN0b3Jlcz1bZV06bnVsbD09PShuPXQuc3RvcmVzKT90LnN0b3Jlcz1bZV06bi5wdXNoKGUpfWZ1bmN0aW9uIExpKGUsdCxuLHIpe3QudmFsdWU9bix0LmdldFNuYXBzaG90PXIsUmkodCkmJk5pKGUpfWZ1bmN0aW9uIE1pKGUsdCxuKXtyZXR1cm4gbihmdW5jdGlvbigpe1JpKHQpJiZOaShlKX0pfWZ1bmN0aW9uIFJpKGUpe3ZhciB0PWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgbj10KCk7cmV0dXJuIWtyKGUsbil9Y2F0Y2goZSl7cmV0dXJuIDF9fWZ1bmN0aW9uIE5pKGUpe3ZhciB0PU1hKGUsMSk7bnVsbCE9PXQmJlRjKHQsZSwxLC0xKX1mdW5jdGlvbiBEaShlKXt2YXIgdD1PaSgpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lKCkpLHQubWVtb2l6ZWRTdGF0ZT10LmJhc2VTdGF0ZT1lLGU9KHQucXVldWU9ZT17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6QWksbGFzdFJlbmRlcmVkU3RhdGU6ZX0pLmRpc3BhdGNoPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj16YyhlKSxvPXtsYW5lOnIsYWN0aW9uOm4saGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZihlbChlKSl0bCh0LG8pO2Vsc2V7dmFyIGE9ZS5hbHRlcm5hdGU7aWYoMD09PWUubGFuZXMmJihudWxsPT09YXx8MD09PWEubGFuZXMpJiZudWxsIT09KGE9dC5sYXN0UmVuZGVyZWRSZWR1Y2VyKSl0cnl7dmFyIGksbD10Lmxhc3RSZW5kZXJlZFN0YXRlLGM9YShsLG4pO2lmKG8uaGFzRWFnZXJTdGF0ZT0hMCxvLmVhZ2VyU3RhdGU9YyxrcihjLGwpKXJldHVybiBudWxsPT09KGk9dC5pbnRlcmxlYXZlZCk/KG8ubmV4dD1vLFRhKHQpKTooby5uZXh0PWkubmV4dCxpLm5leHQ9byksdm9pZCh0LmludGVybGVhdmVkPW8pfWNhdGNoKGUpe31udWxsIT09KG49TGEoZSx0LG8scikpJiYobz1tKCksVGMobixlLHIsbyksbmwobix0LHIpKX19LmJpbmQobnVsbCxDLGUpLFt0Lm1lbW9pemVkU3RhdGUsZV19ZnVuY3Rpb24gVWkoZSx0LG4scil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTp0LGRlc3Ryb3k6bixkZXBzOnIsbmV4dDpudWxsfSxudWxsPT09KHQ9Qy51cGRhdGVRdWV1ZSk/KEMudXBkYXRlUXVldWU9dD17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSkubGFzdEVmZmVjdD1lLm5leHQ9ZTpudWxsPT09KG49dC5sYXN0RWZmZWN0KT90Lmxhc3RFZmZlY3Q9ZS5uZXh0PWU6KHI9bi5uZXh0LChuLm5leHQ9ZSkubmV4dD1yLHQubGFzdEVmZmVjdD1lKSxlfWZ1bmN0aW9uIEJpKCl7cmV0dXJuIGppKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBGaShlLHQsbixyKXt2YXIgbz1PaSgpO0MuZmxhZ3N8PWUsby5tZW1vaXplZFN0YXRlPVVpKDF8dCxuLHZvaWQgMCx2b2lkIDA9PT1yP251bGw6cil9ZnVuY3Rpb24gSGkoZSx0LG4scil7dmFyIG89amkoKSxhPShyPXZvaWQgMD09PXI/bnVsbDpyLHZvaWQgMCk7aWYobnVsbCE9PUUpe3ZhciBpPUUubWVtb2l6ZWRTdGF0ZSxhPWkuZGVzdHJveTtpZihudWxsIT09ciYmU2kocixpLmRlcHMpKXJldHVybiB2b2lkKG8ubWVtb2l6ZWRTdGF0ZT1VaSh0LG4sYSxyKSl9Qy5mbGFnc3w9ZSxvLm1lbW9pemVkU3RhdGU9VWkoMXx0LG4sYSxyKX1mdW5jdGlvbiBWaShlLHQpe3JldHVybiBGaSg4MzkwNjU2LDgsZSx0KX1mdW5jdGlvbiAkaShlLHQpe3JldHVybiBIaSgyMDQ4LDgsZSx0KX1mdW5jdGlvbiBXaShlLHQpe3JldHVybiBIaSg0LDIsZSx0KX1mdW5jdGlvbiBHaShlLHQpe3JldHVybiBIaSg0LDQsZSx0KX1mdW5jdGlvbiBxaShlLHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0PyhlPWUoKSx0KGUpLGZ1bmN0aW9uKCl7dChudWxsKX0pOm51bGwhPXQ/KGU9ZSgpLHQuY3VycmVudD1lLGZ1bmN0aW9uKCl7dC5jdXJyZW50PW51bGx9KTp2b2lkIDB9ZnVuY3Rpb24gWmkoZSx0LG4pe3JldHVybiBuPW51bGwhPW4/bi5jb25jYXQoW2VdKTpudWxsLEhpKDQsNCxxaS5iaW5kKG51bGwsdCxlKSxuKX1mdW5jdGlvbiBYaSgpe31mdW5jdGlvbiBZaShlLHQpe3ZhciBuPWppKCkscj0odD12b2lkIDA9PT10P251bGw6dCxuLm1lbW9pemVkU3RhdGUpO3JldHVybiBudWxsIT09ciYmbnVsbCE9PXQmJlNpKHQsclsxXSk/clswXToobi5tZW1vaXplZFN0YXRlPVtlLHRdLGUpfWZ1bmN0aW9uIFFpKGUsdCl7dmFyIG49amkoKSxyPSh0PXZvaWQgMD09PXQ/bnVsbDp0LG4ubWVtb2l6ZWRTdGF0ZSk7cmV0dXJuIG51bGwhPT1yJiZudWxsIT09dCYmU2kodCxyWzFdKT9yWzBdOihlPWUoKSxuLm1lbW9pemVkU3RhdGU9W2UsdF0sZSl9ZnVuY3Rpb24gS2koZSx0LG4pe3JldHVybiAwPT0oMjEmeWkpPyhlLmJhc2VTdGF0ZSYmKGUuYmFzZVN0YXRlPSExLGo9ITApLGUubWVtb2l6ZWRTdGF0ZT1uKTooa3Iobix0KXx8KG49RnQoKSxDLmxhbmVzfD1uLGhjfD1uLGUuYmFzZVN0YXRlPSEwKSx0KX1mdW5jdGlvbiBKaSgpe3JldHVybiBqaSgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gZWwoZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7cmV0dXJuIGU9PT1DfHxudWxsIT09dCYmdD09PUN9ZnVuY3Rpb24gdGwoZSx0KXt3aT12aT0hMDt2YXIgbj1lLnBlbmRpbmc7bnVsbD09PW4/dC5uZXh0PXQ6KHQubmV4dD1uLm5leHQsbi5uZXh0PXQpLGUucGVuZGluZz10fWZ1bmN0aW9uIG5sKGUsdCxuKXt2YXIgcjswIT0oNDE5NDI0MCZuKSYmKHI9dC5sYW5lcyxyJj1lLnBlbmRpbmdMYW5lcywkdChlLHQubGFuZXM9bnw9cikpfXZhciBybD17cmVhZENvbnRleHQ6X2EsdXNlQ2FsbGJhY2s6byx1c2VDb250ZXh0Om8sdXNlRWZmZWN0Om8sdXNlSW1wZXJhdGl2ZUhhbmRsZTpvLHVzZUluc2VydGlvbkVmZmVjdDpvLHVzZUxheW91dEVmZmVjdDpvLHVzZU1lbW86byx1c2VSZWR1Y2VyOm8sdXNlUmVmOm8sdXNlU3RhdGU6byx1c2VEZWJ1Z1ZhbHVlOm8sdXNlRGVmZXJyZWRWYWx1ZTpvLHVzZVRyYW5zaXRpb246byx1c2VNdXRhYmxlU291cmNlOm8sdXNlU3luY0V4dGVybmFsU3RvcmU6byx1c2VJZDpvLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sb2w9e3JlYWRDb250ZXh0Ol9hLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9pKCkubWVtb2l6ZWRTdGF0ZT1bZSx2b2lkIDA9PT10P251bGw6dF0sZX0sdXNlQ29udGV4dDpfYSx1c2VFZmZlY3Q6VmksdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG49bnVsbCE9bj9uLmNvbmNhdChbZV0pOm51bGwsRmkoNDE5NDMwOCw0LHFpLmJpbmQobnVsbCx0LGUpLG4pfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gRmkoNDE5NDMwOCw0LGUsdCl9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbihlLHQpe3JldHVybiBGaSg0LDIsZSx0KX0sdXNlTWVtbzpmdW5jdGlvbihlLHQpe3ZhciBuPU9pKCk7cmV0dXJuIHQ9dm9pZCAwPT09dD9udWxsOnQsZT1lKCksbi5tZW1vaXplZFN0YXRlPVtlLHRdLGV9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPU9pKCk7cmV0dXJuIHQ9dm9pZCAwIT09bj9uKHQpOnQsci5tZW1vaXplZFN0YXRlPXIuYmFzZVN0YXRlPXQsZT0oci5xdWV1ZT1lPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplLGxhc3RSZW5kZXJlZFN0YXRlOnR9KS5kaXNwYXRjaD1mdW5jdGlvbihlLHQsbil7dmFyIHI9emMoZSk7bj17bGFuZTpyLGFjdGlvbjpuLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0sZWwoZSk/dGwodCxuKTpudWxsIT09KG49TGEoZSx0LG4scikpJiYoVGMobixlLHIsbSgpKSxubChuLHQscikpfS5iaW5kKG51bGwsQyxlKSxbci5tZW1vaXplZFN0YXRlLGVdfSx1c2VSZWY6ZnVuY3Rpb24oZSl7cmV0dXJuIE9pKCkubWVtb2l6ZWRTdGF0ZT1lPXtjdXJyZW50OmV9fSx1c2VTdGF0ZTpEaSx1c2VEZWJ1Z1ZhbHVlOlhpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIE9pKCkubWVtb2l6ZWRTdGF0ZT1lfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9KHQ9RGkoITEpKVswXSx0PWZ1bmN0aW9uKGUsdCl7dmFyIG49eCxyPSh4PTAhPT1uJiZuPDQ/bjo0LGUoITApLGJpLnRyYW5zaXRpb24pO2JpLnRyYW5zaXRpb249e307dHJ5e2UoITEpLHQoKX1maW5hbGx5e3g9bixiaS50cmFuc2l0aW9uPXJ9fS5iaW5kKG51bGwsdFsxXSk7cmV0dXJuW2UsT2koKS5tZW1vaXplZFN0YXRlPXRdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKCl7fSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9QyxvPU9pKCk7aWYoVSl7aWYodm9pZCAwPT09bil0aHJvdyBFcnJvcihEKDQwNykpO249bigpfWVsc2V7aWYobj10KCksbnVsbD09PXApdGhyb3cgRXJyb3IoRCgzNDkpKTswPT0oMzAmeWkpJiZUaShyLHQsbil9dmFyIGE9e3ZhbHVlOm8ubWVtb2l6ZWRTdGF0ZT1uLGdldFNuYXBzaG90OnR9O3JldHVybiBvLnF1ZXVlPWEsVmkoTWkuYmluZChudWxsLHIsYSxlKSxbZV0pLHIuZmxhZ3N8PTIwNDgsVWkoOSxMaS5iaW5kKG51bGwscixhLG4sdCksdm9pZCAwLG51bGwpLG59LHVzZUlkOmZ1bmN0aW9uKCl7dmFyIGUsdD1PaSgpLG49cC5pZGVudGlmaWVyUHJlZml4O3JldHVybiBVPyhlPWFhLG49IjoiK24rIlIiKyhlPShvYSZ+KDE8PDMyLXp0KG9hKS0xKSkudG9TdHJpbmcoMzIpK2UpLDA8KGU9eGkrKykmJihuKz0iSCIrZS50b1N0cmluZygzMikpLG4rPSI6Iik6bj0iOiIrbisiciIrKGU9a2krKykudG9TdHJpbmcoMzIpKyI6Iix0Lm1lbW9pemVkU3RhdGU9bn0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxhbD17cmVhZENvbnRleHQ6X2EsdXNlQ2FsbGJhY2s6WWksdXNlQ29udGV4dDpfYSx1c2VFZmZlY3Q6JGksdXNlSW1wZXJhdGl2ZUhhbmRsZTpaaSx1c2VJbnNlcnRpb25FZmZlY3Q6V2ksdXNlTGF5b3V0RWZmZWN0OkdpLHVzZU1lbW86UWksdXNlUmVkdWNlcjpQaSx1c2VSZWY6QmksdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gUGkoQWkpfSx1c2VEZWJ1Z1ZhbHVlOlhpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIEtpKGppKCksRS5tZW1vaXplZFN0YXRlLGUpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuW1BpKEFpKVswXSxqaSgpLm1lbW9pemVkU3RhdGVdfSx1c2VNdXRhYmxlU291cmNlOl9pLHVzZVN5bmNFeHRlcm5hbFN0b3JlOnppLHVzZUlkOkppLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0saWw9e3JlYWRDb250ZXh0Ol9hLHVzZUNhbGxiYWNrOllpLHVzZUNvbnRleHQ6X2EsdXNlRWZmZWN0OiRpLHVzZUltcGVyYXRpdmVIYW5kbGU6WmksdXNlSW5zZXJ0aW9uRWZmZWN0OldpLHVzZUxheW91dEVmZmVjdDpHaSx1c2VNZW1vOlFpLHVzZVJlZHVjZXI6SWksdXNlUmVmOkJpLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIElpKEFpKX0sdXNlRGVidWdWYWx1ZTpYaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWppKCk7cmV0dXJuIG51bGw9PT1FP3QubWVtb2l6ZWRTdGF0ZT1lOktpKHQsRS5tZW1vaXplZFN0YXRlLGUpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuW0lpKEFpKVswXSxqaSgpLm1lbW9pemVkU3RhdGVdfSx1c2VNdXRhYmxlU291cmNlOl9pLHVzZVN5bmNFeHRlcm5hbFN0b3JlOnppLHVzZUlkOkppLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX07ZnVuY3Rpb24gbGwoZSx0KXt0cnl7Zm9yKHZhciBuPSIiLHI9dDtuKz1mdW5jdGlvbihlKXtzd2l0Y2goZS50YWcpe2Nhc2UgNTpyZXR1cm4gZ2UoZS50eXBlKTtjYXNlIDE2OnJldHVybiBnZSgiTGF6eSIpO2Nhc2UgMTM6cmV0dXJuIGdlKCJTdXNwZW5zZSIpO2Nhc2UgMTk6cmV0dXJuIGdlKCJTdXNwZW5zZUxpc3QiKTtjYXNlIDA6Y2FzZSAyOmNhc2UgMTU6cmV0dXJuIGU9eWUoZS50eXBlLCExKTtjYXNlIDExOnJldHVybiBlPXllKGUudHlwZS5yZW5kZXIsITEpO2Nhc2UgMTpyZXR1cm4gZT15ZShlLnR5cGUsITApO2RlZmF1bHQ6cmV0dXJuIiJ9fShyKSxyPXIucmV0dXJuOyk7dmFyIG89bn1jYXRjaChlKXtvPSJcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6ICIrZS5tZXNzYWdlKyJcbiIrZS5zdGFja31yZXR1cm57dmFsdWU6ZSxzb3VyY2U6dCxzdGFjazpvLGRpZ2VzdDpudWxsfX1mdW5jdGlvbiBjbChlLHQsbil7cmV0dXJue3ZhbHVlOmUsc291cmNlOm51bGwsc3RhY2s6bnVsbCE9bj9uOm51bGwsZGlnZXN0Om51bGwhPXQ/dDpudWxsfX1mdW5jdGlvbiB1bChlLHQpe3RyeXtjb25zb2xlLmVycm9yKHQudmFsdWUpfWNhdGNoKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9fXZhciBzbD0iZnVuY3Rpb24iPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcDtmdW5jdGlvbiBmbChlLHQsbil7KG49VWEoLTEsbikpLnRhZz0zLG4ucGF5bG9hZD17ZWxlbWVudDpudWxsfTt2YXIgcj10LnZhbHVlO3JldHVybiBuLmNhbGxiYWNrPWZ1bmN0aW9uKCl7a2N8fChrYz0hMCxTYz1yKSx1bCgwLHQpfSxufWZ1bmN0aW9uIGRsKGUsdCxuKXsobj1VYSgtMSxuKSkudGFnPTM7dmFyIHIsbz1lLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yLGU9KCJmdW5jdGlvbiI9PXR5cGVvZiBvJiYocj10LnZhbHVlLG4ucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiBvKHIpfSxuLmNhbGxiYWNrPWZ1bmN0aW9uKCl7dWwoMCx0KX0pLGUuc3RhdGVOb2RlKTtyZXR1cm4gbnVsbCE9PWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbXBvbmVudERpZENhdGNoJiYobi5jYWxsYmFjaz1mdW5jdGlvbigpe3VsKDAsdCksImZ1bmN0aW9uIiE9dHlwZW9mIG8mJihudWxsPT09Q2M/Q2M9bmV3IFNldChbdGhpc10pOkNjLmFkZCh0aGlzKSk7dmFyIGU9dC5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKHQudmFsdWUse2NvbXBvbmVudFN0YWNrOm51bGwhPT1lP2U6IiJ9KX0pLG59ZnVuY3Rpb24gcGwoZSx0LG4pe3ZhciByLG89ZS5waW5nQ2FjaGU7bnVsbD09PW8/KG89ZS5waW5nQ2FjaGU9bmV3IHNsLHI9bmV3IFNldCxvLnNldCh0LHIpKTp2b2lkIDA9PT0ocj1vLmdldCh0KSkmJihyPW5ldyBTZXQsby5zZXQodCxyKSksci5oYXMobil8fChyLmFkZChuKSxlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLnBpbmdDYWNoZTtudWxsIT09ciYmci5kZWxldGUodCksdD1tKCksZS5waW5nZWRMYW5lc3w9ZS5zdXNwZW5kZWRMYW5lcyZuLHA9PT1lJiYoVCZuKT09PW4mJig0PT09THx8Mz09PUwmJigxMzAwMjM0MjQmVCk9PT1UJiZoKCktdmM8NTAwP1ZjKGUsMCk6YmN8PW4pLExjKGUsdCl9LmJpbmQobnVsbCxlLHQsbiksdC50aGVuKGUsZSkpfWZ1bmN0aW9uIG1sKGUpe2Rve3ZhciB0O2lmKHQ9KHQ9MTM9PT1lLnRhZyk/bnVsbD09PSh0PWUubWVtb2l6ZWRTdGF0ZSl8fG51bGwhPT10LmRlaHlkcmF0ZWQ6dClyZXR1cm4gZX13aGlsZShudWxsIT09KGU9ZS5yZXR1cm4pKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBobChlLHQsbixyLG8pe2lmKDA9PSgxJmUubW9kZSkpcmV0dXJuIGU9PT10P2UuZmxhZ3N8PTY1NTM2OihlLmZsYWdzfD0xMjgsbi5mbGFnc3w9MTMxMDcyLG4uZmxhZ3MmPS01MjgwNSwxPT09bi50YWcmJihudWxsPT09bi5hbHRlcm5hdGU/bi50YWc9MTc6KCh0PVVhKC0xLDEpKS50YWc9MixCYShuLHQsMSkpKSxuLmxhbmVzfD0xKTtlLmZsYWdzfD02NTUzNixlLmxhbmVzPW99dmFyIGdsPUouUmVhY3RDdXJyZW50T3duZXIsaj0hMTtmdW5jdGlvbiBBKGUsdCxuLHIpe3QuY2hpbGQ9bnVsbD09PWU/cmkodCxudWxsLG4scik6bmkodCxlLmNoaWxkLG4scil9ZnVuY3Rpb24gYmwoZSx0LG4scixvKXtuPW4ucmVuZGVyO3ZhciBhPXQucmVmO3JldHVybiBJYSh0LG8pLHI9Q2koZSx0LG4scixhLG8pLG49RWkoKSxudWxsPT09ZXx8aj8oVSYmbiYmY2EodCksdC5mbGFnc3w9MSxBKGUsdCxyLG8pLHQuY2hpbGQpOih0LnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdC5mbGFncyY9LTIwNTMsZS5sYW5lcyY9fm8sUmwoZSx0LG8pKX1mdW5jdGlvbiB5bChlLHQsbixyLG8pe3ZhciBhO2lmKG51bGw9PT1lKXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZihhPW4udHlwZSl8fHJ1KGEpfHx2b2lkIDAhPT1hLmRlZmF1bHRQcm9wc3x8bnVsbCE9PW4uY29tcGFyZXx8dm9pZCAwIT09bi5kZWZhdWx0UHJvcHM/KChlPWF1KG4udHlwZSxudWxsLHIsdCx0Lm1vZGUsbykpLnJlZj10LnJlZiwoZS5yZXR1cm49dCkuY2hpbGQ9ZSk6KHQudGFnPTE1LHQudHlwZT1hLHZsKGUsdCxhLHIsbykpO2lmKGE9ZS5jaGlsZCwwPT0oZS5sYW5lcyZvKSl7dmFyIGk9YS5tZW1vaXplZFByb3BzO2lmKChuPW51bGwhPT0obj1uLmNvbXBhcmUpP246U3IpKGkscikmJmUucmVmPT09dC5yZWYpcmV0dXJuIFJsKGUsdCxvKX1yZXR1cm4gdC5mbGFnc3w9MSwoZT1vdShhLHIpKS5yZWY9dC5yZWYsKGUucmV0dXJuPXQpLmNoaWxkPWV9ZnVuY3Rpb24gdmwoZSx0LG4scixvKXtpZihudWxsIT09ZSl7dmFyIGE9ZS5tZW1vaXplZFByb3BzO2lmKFNyKGEscikmJmUucmVmPT09dC5yZWYpe2lmKGo9ITEsdC5wZW5kaW5nUHJvcHM9cj1hLDA9PShlLmxhbmVzJm8pKXJldHVybiB0LmxhbmVzPWUubGFuZXMsUmwoZSx0LG8pOzAhPSgxMzEwNzImZS5mbGFncykmJihqPSEwKX19cmV0dXJuIGtsKGUsdCxuLHIsbyl9ZnVuY3Rpb24gd2woZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzLG89ci5jaGlsZHJlbixhPW51bGwhPT1lP2UubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKCJoaWRkZW4iPT09ci5tb2RlKWlmKDA9PSgxJnQubW9kZSkpdC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfSxiKHBjLGRjKSxkY3w9bjtlbHNle2lmKDA9PSgxMDczNzQxODI0Jm4pKXJldHVybiBlPW51bGwhPT1hP2EuYmFzZUxhbmVzfG46bix0LmxhbmVzPXQuY2hpbGRMYW5lcz0xMDczNzQxODI0LHQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmUsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sdC51cGRhdGVRdWV1ZT1udWxsLGIocGMsZGMpLGRjfD1lLG51bGw7dC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfSxyPW51bGwhPT1hP2EuYmFzZUxhbmVzOm4sYihwYyxkYyksZGN8PXJ9ZWxzZSBudWxsIT09YT8ocj1hLmJhc2VMYW5lc3xuLHQubWVtb2l6ZWRTdGF0ZT1udWxsKTpyPW4sYihwYyxkYyksZGN8PXI7cmV0dXJuIEEoZSx0LG8sbiksdC5jaGlsZH1mdW5jdGlvbiB4bChlLHQpe3ZhciBuPXQucmVmOyhudWxsPT09ZSYmbnVsbCE9PW58fG51bGwhPT1lJiZlLnJlZiE9PW4pJiYodC5mbGFnc3w9NTEyLHQuZmxhZ3N8PTIwOTcxNTIpfWZ1bmN0aW9uIGtsKGUsdCxuLHIsbyl7dmFyIGE9Qm8odCx3KG4pP1VvOnkuY3VycmVudCk7cmV0dXJuIElhKHQsbyksbj1DaShlLHQsbixyLGEsbykscj1FaSgpLG51bGw9PT1lfHxqPyhVJiZyJiZjYSh0KSx0LmZsYWdzfD0xLEEoZSx0LG4sbyksdC5jaGlsZCk6KHQudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0LmZsYWdzJj0tMjA1MyxlLmxhbmVzJj1+byxSbChlLHQsbykpfWZ1bmN0aW9uIFNsKGUsdCxuLHIsbyl7dmFyIGEsaSxsLGMsdSxzLGYsZCxwLG07cmV0dXJuIHcobik/KGE9ITAsJG8odCkpOmE9ITEsSWEodCxvKSxyPW51bGw9PT10LnN0YXRlTm9kZT8oTWwoZSx0KSxYYSh0LG4sciksUWEodCxuLHIsbyksITApOm51bGw9PT1lPyhpPXQuc3RhdGVOb2RlLGw9dC5tZW1vaXplZFByb3BzLGkucHJvcHM9bCxkPWkuY29udGV4dCxjPSJvYmplY3QiPT10eXBlb2YoYz1uLmNvbnRleHRUeXBlKSYmbnVsbCE9PWM/X2EoYyk6Qm8odCxjPXcobik/VW86eS5jdXJyZW50KSwocz0iZnVuY3Rpb24iPT10eXBlb2YodT1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBpLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJiJmdW5jdGlvbiIhPXR5cGVvZiBpLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fGw9PT1yJiZkPT09Y3x8WWEoMCxpLHIsYyksUmE9ITEsZj10Lm1lbW9pemVkU3RhdGUsaS5zdGF0ZT1mLFZhKHQscixpLG8pLGQ9dC5tZW1vaXplZFN0YXRlLGwhPT1yfHxmIT09ZHx8di5jdXJyZW50fHxSYT8oImZ1bmN0aW9uIj09dHlwZW9mIHUmJihHYSh0LDAsdSxyKSxkPXQubWVtb2l6ZWRTdGF0ZSksKGw9UmF8fFphKHQsbixsLHIsZixkLGMpKT8oc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIGkuY29tcG9uZW50V2lsbE1vdW50fHwoImZ1bmN0aW9uIj09dHlwZW9mIGkuY29tcG9uZW50V2lsbE1vdW50JiZpLmNvbXBvbmVudFdpbGxNb3VudCgpLCJmdW5jdGlvbiI9PXR5cGVvZiBpLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmkuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSwiZnVuY3Rpb24iPT10eXBlb2YgaS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpKTooImZ1bmN0aW9uIj09dHlwZW9mIGkuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00MTk0MzA4KSx0Lm1lbW9pemVkUHJvcHM9cix0Lm1lbW9pemVkU3RhdGU9ZCksaS5wcm9wcz1yLGkuc3RhdGU9ZCxpLmNvbnRleHQ9YyxsKTooImZ1bmN0aW9uIj09dHlwZW9mIGkuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00MTk0MzA4KSwhMSkpOihpPXQuc3RhdGVOb2RlLERhKGUsdCksbD10Lm1lbW9pemVkUHJvcHMsYz10LnR5cGU9PT10LmVsZW1lbnRUeXBlP2w6a2EodC50eXBlLGwpLGkucHJvcHM9YyxzPXQucGVuZGluZ1Byb3BzLGY9aS5jb250ZXh0LGQ9Im9iamVjdCI9PXR5cGVvZihkPW4uY29udGV4dFR5cGUpJiZudWxsIT09ZD9fYShkKTpCbyh0LGQ9dyhuKT9Vbzp5LmN1cnJlbnQpLCh1PSJmdW5jdGlvbiI9PXR5cGVvZihwPW4uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHwiZnVuY3Rpb24iIT10eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9dHlwZW9mIGkuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8bD09PXMmJmY9PT1kfHxZYSgwLGkscixkKSxSYT0hMSxmPXQubWVtb2l6ZWRTdGF0ZSxpLnN0YXRlPWYsVmEodCxyLGksbyksbT10Lm1lbW9pemVkU3RhdGUsbCE9PXN8fGYhPT1tfHx2LmN1cnJlbnR8fFJhPygiZnVuY3Rpb24iPT10eXBlb2YgcCYmKEdhKHQsMCxwLHIpLG09dC5tZW1vaXplZFN0YXRlKSwoYz1SYXx8WmEodCxuLGMscixmLG0sZCl8fCExKT8odXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBpLmNvbXBvbmVudFdpbGxVcGRhdGV8fCgiZnVuY3Rpb24iPT10eXBlb2YgaS5jb21wb25lbnRXaWxsVXBkYXRlJiZpLmNvbXBvbmVudFdpbGxVcGRhdGUocixtLGQpLCJmdW5jdGlvbiI9PXR5cGVvZiBpLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZpLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKHIsbSxkKSksImZ1bmN0aW9uIj09dHlwZW9mIGkuY29tcG9uZW50RGlkVXBkYXRlJiYodC5mbGFnc3w9NCksImZ1bmN0aW9uIj09dHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJih0LmZsYWdzfD0xMDI0KSk6KCJmdW5jdGlvbiIhPXR5cGVvZiBpLmNvbXBvbmVudERpZFVwZGF0ZXx8bD09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiBpLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxsPT09ZS5tZW1vaXplZFByb3BzJiZmPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MTAyNCksdC5tZW1vaXplZFByb3BzPXIsdC5tZW1vaXplZFN0YXRlPW0pLGkucHJvcHM9cixpLnN0YXRlPW0saS5jb250ZXh0PWQsYyk6KCJmdW5jdGlvbiIhPXR5cGVvZiBpLmNvbXBvbmVudERpZFVwZGF0ZXx8bD09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiBpLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxsPT09ZS5tZW1vaXplZFByb3BzJiZmPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MTAyNCksITEpKSxDbChlLHQsbixyLGEsbyl9ZnVuY3Rpb24gQ2woZSx0LG4scixvLGEpe3hsKGUsdCk7dmFyIGk9MCE9KDEyOCZ0LmZsYWdzKTtpZighciYmIWkpcmV0dXJuIG8mJldvKHQsbiwhMSksUmwoZSx0LGEpO3I9dC5zdGF0ZU5vZGUsZ2wuY3VycmVudD10O3ZhciBsPWkmJiJmdW5jdGlvbiIhPXR5cGVvZiBuLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOnIucmVuZGVyKCk7cmV0dXJuIHQuZmxhZ3N8PTEsbnVsbCE9PWUmJmk/KHQuY2hpbGQ9bmkodCxlLmNoaWxkLG51bGwsYSksdC5jaGlsZD1uaSh0LG51bGwsbCxhKSk6QShlLHQsbCxhKSx0Lm1lbW9pemVkU3RhdGU9ci5zdGF0ZSxvJiZXbyh0LG4sITApLHQuY2hpbGR9ZnVuY3Rpb24gRWwoZSl7dmFyIHQ9ZS5zdGF0ZU5vZGU7dC5wZW5kaW5nQ29udGV4dD9IbygwLHQucGVuZGluZ0NvbnRleHQsdC5wZW5kaW5nQ29udGV4dCE9PXQuY29udGV4dCk6dC5jb250ZXh0JiZIbygwLHQuY29udGV4dCwhMSksdWkoZSx0LmNvbnRhaW5lckluZm8pfWZ1bmN0aW9uIE9sKGUsdCxuLHIsbyl7cmV0dXJuIHZhKCksd2EobyksdC5mbGFnc3w9MjU2LEEoZSx0LG4sciksdC5jaGlsZH12YXIgamw9e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowfTtmdW5jdGlvbiBBbChlKXtyZXR1cm57YmFzZUxhbmVzOmUsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH19ZnVuY3Rpb24gUGwoZSx0LG4pe3ZhciByLG8sYT10LnBlbmRpbmdQcm9wcyxpPVMuY3VycmVudCxsPSExLGM9MCE9KDEyOCZ0LmZsYWdzKTtpZigobz0obz1jKXx8KG51bGw9PT1lfHxudWxsIT09ZS5tZW1vaXplZFN0YXRlKSYmMCE9KDImaSkpPyhsPSEwLHQuZmxhZ3MmPS0xMjkpOm51bGwhPT1lJiZudWxsPT09ZS5tZW1vaXplZFN0YXRlfHwoaXw9MSksYihTLDEmaSksbnVsbD09PWUpcmV0dXJuIGhhKHQpLG51bGwhPT0oZT10Lm1lbW9pemVkU3RhdGUpJiZudWxsIT09KGU9ZS5kZWh5ZHJhdGVkKT8oMD09KDEmdC5tb2RlKT90LmxhbmVzPTE6IiQhIj09PWUuZGF0YT90LmxhbmVzPTg6dC5sYW5lcz0xMDczNzQxODI0LG51bGwpOihjPWEuY2hpbGRyZW4sZT1hLmZhbGxiYWNrLGw/KGE9dC5tb2RlLGw9dC5jaGlsZCxjPXttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmN9LDA9PSgxJmEpJiZudWxsIT09bD8obC5jaGlsZExhbmVzPTAsbC5wZW5kaW5nUHJvcHM9Yyk6bD1sdShjLGEsMCxudWxsKSxlPWl1KGUsYSxuLG51bGwpLGwucmV0dXJuPXQsZS5yZXR1cm49dCxsLnNpYmxpbmc9ZSx0LmNoaWxkPWwsdC5jaGlsZC5tZW1vaXplZFN0YXRlPUFsKG4pLHQubWVtb2l6ZWRTdGF0ZT1qbCxlKTpJbCh0LGMpKTtpZihudWxsPT09KGk9ZS5tZW1vaXplZFN0YXRlKXx8bnVsbD09PShvPWkuZGVoeWRyYXRlZCkpcmV0dXJuIGw/KGw9YS5mYWxsYmFjayxjPXQubW9kZSxvPShpPWUuY2hpbGQpLnNpYmxpbmcsdT17bW9kZToiaGlkZGVuIixjaGlsZHJlbjphLmNoaWxkcmVufSwwPT0oMSZjKSYmdC5jaGlsZCE9PWk/KChhPXQuY2hpbGQpLmNoaWxkTGFuZXM9MCxhLnBlbmRpbmdQcm9wcz11LHQuZGVsZXRpb25zPW51bGwpOihhPW91KGksdSkpLnN1YnRyZWVGbGFncz0xNDY4MDA2NCZpLnN1YnRyZWVGbGFncyxudWxsIT09bz9sPW91KG8sbCk6KGw9aXUobCxjLG4sbnVsbCkpLmZsYWdzfD0yLGwucmV0dXJuPXQsYS5yZXR1cm49dCxhLnNpYmxpbmc9bCx0LmNoaWxkPWEsYT1sLGw9dC5jaGlsZCxjPW51bGw9PT0oYz1lLmNoaWxkLm1lbW9pemVkU3RhdGUpP0FsKG4pOntiYXNlTGFuZXM6Yy5iYXNlTGFuZXN8bixjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpjLnRyYW5zaXRpb25zfSxsLm1lbW9pemVkU3RhdGU9YyxsLmNoaWxkTGFuZXM9ZS5jaGlsZExhbmVzJn5uLHQubWVtb2l6ZWRTdGF0ZT1qbCk6KGU9KGw9ZS5jaGlsZCkuc2libGluZyxhPW91KGwse21vZGU6InZpc2libGUiLGNoaWxkcmVuOmEuY2hpbGRyZW59KSwwPT0oMSZ0Lm1vZGUpJiYoYS5sYW5lcz1uKSxhLnJldHVybj10LChhLnNpYmxpbmc9bnVsbCkhPT1lJiYobnVsbD09PShuPXQuZGVsZXRpb25zKT8odC5kZWxldGlvbnM9W2VdLHQuZmxhZ3N8PTE2KTpuLnB1c2goZSkpLHQuY2hpbGQ9YSx0Lm1lbW9pemVkU3RhdGU9bnVsbCksYTt2YXIgdT1lLGw9dCxlPWEscz1vLHQ9aSxhPW47aWYoYylyZXR1cm4gMjU2JmwuZmxhZ3M/KGwuZmxhZ3MmPS0yNTcsZT1jbChFcnJvcihEKDQyMikpKSxfbCh1LGwsYSxlKSk6bnVsbCE9PWwubWVtb2l6ZWRTdGF0ZT8obC5jaGlsZD11LmNoaWxkLGwuZmxhZ3N8PTEyOCxudWxsKToodD1lLmZhbGxiYWNrLHM9bC5tb2RlLGU9bHUoe21vZGU6InZpc2libGUiLGNoaWxkcmVuOmUuY2hpbGRyZW59LHMsMCxudWxsKSwodD1pdSh0LHMsYSxudWxsKSkuZmxhZ3N8PTIsZS5yZXR1cm49bCx0LnJldHVybj1sLGUuc2libGluZz10LGwuY2hpbGQ9ZSwwIT0oMSZsLm1vZGUpJiZuaShsLHUuY2hpbGQsbnVsbCxhKSxsLmNoaWxkLm1lbW9pemVkU3RhdGU9QWwoYSksbC5tZW1vaXplZFN0YXRlPWpsLHQpO2lmKDA9PSgxJmwubW9kZSkpcmV0dXJuIF9sKHUsbCxhLG51bGwpO2lmKCIkISI9PT1zLmRhdGEpcmV0dXJuIGU9cj0oZT1zLm5leHRTaWJsaW5nJiZzLm5leHRTaWJsaW5nLmRhdGFzZXQpP2UuZGdzdDpyLHQ9RXJyb3IoRCg0MTkpKSxlPWNsKHQsZSx2b2lkIDApLF9sKHUsbCxhLGUpO2lmKHI9MCE9KGEmdS5jaGlsZExhbmVzKSxqfHxyKXtpZihudWxsIT09KGU9cCkpe3N3aXRjaChhJi1hKXtjYXNlIDQ6cz0yO2JyZWFrO2Nhc2UgMTY6cz04O2JyZWFrO2Nhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpzPTMyO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOnM9MjY4NDM1NDU2O2JyZWFrO2RlZmF1bHQ6cz0wfTAhPT0ocz0wIT0ocyYoZS5zdXNwZW5kZWRMYW5lc3xhKSk/MDpzKSYmcyE9PXQucmV0cnlMYW5lJiYodC5yZXRyeUxhbmU9cyxNYSh1LHMpLFRjKGUsdSxzLC0xKSl9cmV0dXJuIEdjKCksZT1jbChFcnJvcihEKDQyMSkpKSxfbCh1LGwsYSxlKX1yZXR1cm4iJD8iPT09cy5kYXRhPyhsLmZsYWdzfD0xMjgsbC5jaGlsZD11LmNoaWxkLGw9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlLG49MDtudWxsIT09dCYmKG49dC5yZXRyeUxhbmUpLEpjKGUsbil9LmJpbmQobnVsbCx1KSxzLl9yZWFjdFJldHJ5PWwsbnVsbCk6KHU9dC50cmVlQ29udGV4dCxrPVNvKHMubmV4dFNpYmxpbmcpLHNhPWwsVT0hMCwoZmE9bnVsbCkhPT11JiYodGFbbmErK109b2EsdGFbbmErK109YWEsdGFbbmErK109cmEsb2E9dS5pZCxhYT11Lm92ZXJmbG93LHJhPWwpLChsPUlsKGwsZS5jaGlsZHJlbikpLmZsYWdzfD00MDk2LGwpfWZ1bmN0aW9uIElsKGUsdCl7cmV0dXJuKCh0PWx1KHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjp0fSxlLm1vZGUsMCxudWxsKSkucmV0dXJuPWUpLmNoaWxkPXR9ZnVuY3Rpb24gX2woZSx0LG4scil7cmV0dXJuIG51bGwhPT1yJiZ3YShyKSxuaSh0LGUuY2hpbGQsbnVsbCxuKSwoZT1JbCh0LHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuKSkuZmxhZ3N8PTIsdC5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiB6bChlLHQsbil7ZS5sYW5lc3w9dDt2YXIgcj1lLmFsdGVybmF0ZTtudWxsIT09ciYmKHIubGFuZXN8PXQpLFBhKGUucmV0dXJuLHQsbil9ZnVuY3Rpb24gVGwoZSx0LG4scixvKXt2YXIgYT1lLm1lbW9pemVkU3RhdGU7bnVsbD09PWE/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczp0LHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6cix0YWlsOm4sdGFpbE1vZGU6b306KGEuaXNCYWNrd2FyZHM9dCxhLnJlbmRlcmluZz1udWxsLGEucmVuZGVyaW5nU3RhcnRUaW1lPTAsYS5sYXN0PXIsYS50YWlsPW4sYS50YWlsTW9kZT1vKX1mdW5jdGlvbiBMbChlLHQsbil7dmFyIHI9dC5wZW5kaW5nUHJvcHMsbz1yLnJldmVhbE9yZGVyLGE9ci50YWlsO2lmKEEoZSx0LHIuY2hpbGRyZW4sbiksMCE9KDImKHI9Uy5jdXJyZW50KSkpcj0xJnJ8Mix0LmZsYWdzfD0xMjg7ZWxzZXtpZihudWxsIT09ZSYmMCE9KDEyOCZlLmZsYWdzKSllOmZvcihlPXQuY2hpbGQ7bnVsbCE9PWU7KXtpZigxMz09PWUudGFnKW51bGwhPT1lLm1lbW9pemVkU3RhdGUmJnpsKGUsbix0KTtlbHNlIGlmKDE5PT09ZS50YWcpemwoZSxuLHQpO2Vsc2UgaWYobnVsbCE9PWUuY2hpbGQpe2U9KGUuY2hpbGQucmV0dXJuPWUpLmNoaWxkO2NvbnRpbnVlfWlmKGU9PT10KWJyZWFrO2Zvcig7bnVsbD09PWUuc2libGluZzspe2lmKG51bGw9PT1lLnJldHVybnx8ZS5yZXR1cm49PT10KWJyZWFrIGU7ZT1lLnJldHVybn1lLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nfXImPTF9aWYoYihTLHIpLDA9PSgxJnQubW9kZSkpdC5tZW1vaXplZFN0YXRlPW51bGw7ZWxzZSBzd2l0Y2gobyl7Y2FzZSJmb3J3YXJkcyI6Zm9yKG49dC5jaGlsZCxvPW51bGw7bnVsbCE9PW47KW51bGwhPT0oZT1uLmFsdGVybmF0ZSkmJm51bGw9PT1waShlKSYmKG89biksbj1uLnNpYmxpbmc7bnVsbD09PShuPW8pPyhvPXQuY2hpbGQsdC5jaGlsZD1udWxsKToobz1uLnNpYmxpbmcsbi5zaWJsaW5nPW51bGwpLFRsKHQsITEsbyxuLGEpO2JyZWFrO2Nhc2UiYmFja3dhcmRzIjpmb3Iobz10LmNoaWxkLHQuY2hpbGQ9bj1udWxsO251bGwhPT1vOyl7aWYobnVsbCE9PShlPW8uYWx0ZXJuYXRlKSYmbnVsbD09PXBpKGUpKXt0LmNoaWxkPW87YnJlYWt9ZT1vLnNpYmxpbmcsby5zaWJsaW5nPW4sbj1vLG89ZX1UbCh0LCEwLG4sbnVsbCxhKTticmVhaztjYXNlInRvZ2V0aGVyIjpUbCh0LCExLG51bGwsbnVsbCx2b2lkIDApO2JyZWFrO2RlZmF1bHQ6dC5tZW1vaXplZFN0YXRlPW51bGx9cmV0dXJuIHQuY2hpbGR9ZnVuY3Rpb24gTWwoZSx0KXswPT0oMSZ0Lm1vZGUpJiZudWxsIT09ZSYmKGUuYWx0ZXJuYXRlPW51bGwsdC5hbHRlcm5hdGU9bnVsbCx0LmZsYWdzfD0yKX1mdW5jdGlvbiBSbChlLHQsbil7aWYobnVsbCE9PWUmJih0LmRlcGVuZGVuY2llcz1lLmRlcGVuZGVuY2llcyksaGN8PXQubGFuZXMsMD09KG4mdC5jaGlsZExhbmVzKSlyZXR1cm4gbnVsbDtpZihudWxsIT09ZSYmdC5jaGlsZCE9PWUuY2hpbGQpdGhyb3cgRXJyb3IoRCgxNTMpKTtpZihudWxsIT09dC5jaGlsZCl7Zm9yKG49b3UoZT10LmNoaWxkLGUucGVuZGluZ1Byb3BzKSwodC5jaGlsZD1uKS5yZXR1cm49dDtudWxsIT09ZS5zaWJsaW5nOyllPWUuc2libGluZywobj1uLnNpYmxpbmc9b3UoZSxlLnBlbmRpbmdQcm9wcykpLnJldHVybj10O24uc2libGluZz1udWxsfXJldHVybiB0LmNoaWxkfWZ1bmN0aW9uIE5sKGUsdCl7aWYoIVUpc3dpdGNoKGUudGFpbE1vZGUpe2Nhc2UiaGlkZGVuIjp0PWUudGFpbDtmb3IodmFyIG49bnVsbDtudWxsIT09dDspbnVsbCE9PXQuYWx0ZXJuYXRlJiYobj10KSx0PXQuc2libGluZztudWxsPT09bj9lLnRhaWw9bnVsbDpuLnNpYmxpbmc9bnVsbDticmVhaztjYXNlImNvbGxhcHNlZCI6Zm9yKHZhciBuPWUudGFpbCxyPW51bGw7bnVsbCE9PW47KW51bGwhPT1uLmFsdGVybmF0ZSYmKHI9biksbj1uLnNpYmxpbmc7bnVsbD09PXI/dHx8bnVsbD09PWUudGFpbD9lLnRhaWw9bnVsbDplLnRhaWwuc2libGluZz1udWxsOnIuc2libGluZz1udWxsfX1mdW5jdGlvbiBmKGUpe3ZhciB0PW51bGwhPT1lLmFsdGVybmF0ZSYmZS5hbHRlcm5hdGUuY2hpbGQ9PT1lLmNoaWxkLG49MCxyPTA7aWYodClmb3IodmFyIG89ZS5jaGlsZDtudWxsIT09bzspbnw9by5sYW5lc3xvLmNoaWxkTGFuZXMscj0ocnw9MTQ2ODAwNjQmby5zdWJ0cmVlRmxhZ3MpfDE0NjgwMDY0Jm8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztlbHNlIGZvcihvPWUuY2hpbGQ7bnVsbCE9PW87KW58PW8ubGFuZXN8by5jaGlsZExhbmVzLHI9KHJ8PW8uc3VidHJlZUZsYWdzKXxvLmZsYWdzLG8ucmV0dXJuPWUsbz1vLnNpYmxpbmc7ZS5zdWJ0cmVlRmxhZ3N8PXIsZS5jaGlsZExhbmVzPW59dmFyIERsPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPXQuY2hpbGQ7bnVsbCE9PW47KXtpZig1PT09bi50YWd8fDY9PT1uLnRhZyllLmFwcGVuZENoaWxkKG4uc3RhdGVOb2RlKTtlbHNlIGlmKDQhPT1uLnRhZyYmbnVsbCE9PW4uY2hpbGQpe249KG4uY2hpbGQucmV0dXJuPW4pLmNoaWxkO2NvbnRpbnVlfWlmKG49PT10KWJyZWFrO2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bi5yZXR1cm49PT10KXJldHVybjtuPW4ucmV0dXJufW4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9fSxVbD1mdW5jdGlvbihlLHQsbixyKXt2YXIgbz1lLm1lbW9pemVkUHJvcHM7aWYobyE9PXIpe2U9dC5zdGF0ZU5vZGUsY2koYWkuY3VycmVudCk7dmFyIGEsaT1udWxsO3N3aXRjaChuKXtjYXNlImlucHV0IjpvPUVlKGUsbykscj1FZShlLHIpLGk9W107YnJlYWs7Y2FzZSJzZWxlY3QiOm89Zyh7fSxvLHt2YWx1ZTp2b2lkIDB9KSxyPWcoe30scix7dmFsdWU6dm9pZCAwfSksaT1bXTticmVhaztjYXNlInRleHRhcmVhIjpvPVRlKGUsbykscj1UZShlLHIpLGk9W107YnJlYWs7ZGVmYXVsdDoiZnVuY3Rpb24iIT10eXBlb2Ygby5vbkNsaWNrJiYiZnVuY3Rpb24iPT10eXBlb2Ygci5vbkNsaWNrJiYoZS5vbmNsaWNrPXBvKX1mb3IodSBpbiBaZShuLHIpLG49bnVsbCxvKWlmKCFyLmhhc093blByb3BlcnR5KHUpJiZvLmhhc093blByb3BlcnR5KHUpJiZudWxsIT1vW3VdKWlmKCJzdHlsZSI9PT11KXt2YXIgbD1vW3VdO2ZvcihhIGluIGwpbC5oYXNPd25Qcm9wZXJ0eShhKSYmKG49bnx8e30sblthXT0iIil9ZWxzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCIhPT11JiYiY2hpbGRyZW4iIT09dSYmInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT11JiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PXUmJiJhdXRvRm9jdXMiIT09dSYmKEguaGFzT3duUHJvcGVydHkodSk/aT1pfHxbXTooaT1pfHxbXSkucHVzaCh1LG51bGwpKTtmb3IodSBpbiByKXt2YXIgYz1yW3VdLGw9bnVsbCE9bz9vW3VdOnZvaWQgMDtpZihyLmhhc093blByb3BlcnR5KHUpJiZjIT09bCYmKG51bGwhPWN8fG51bGwhPWwpKWlmKCJzdHlsZSI9PT11KWlmKGwpe2ZvcihhIGluIGwpIWwuaGFzT3duUHJvcGVydHkoYSl8fGMmJmMuaGFzT3duUHJvcGVydHkoYSl8fChuPW58fHt9LG5bYV09IiIpO2ZvcihhIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShhKSYmbFthXSE9PWNbYV0mJihuPW58fHt9LG5bYV09Y1thXSl9ZWxzZSBufHwoaT1pfHxbXSkucHVzaCh1LG4pLG49YztlbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PXU/KGM9Yz9jLl9faHRtbDp2b2lkIDAsbD1sP2wuX19odG1sOnZvaWQgMCxudWxsIT1jJiZsIT09YyYmKGk9aXx8W10pLnB1c2godSxjKSk6ImNoaWxkcmVuIj09PXU/InN0cmluZyIhPXR5cGVvZiBjJiYibnVtYmVyIiE9dHlwZW9mIGN8fChpPWl8fFtdKS5wdXNoKHUsIiIrYyk6InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT11JiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PXUmJihILmhhc093blByb3BlcnR5KHUpPyhudWxsIT1jJiYib25TY3JvbGwiPT09dSYmcygic2Nyb2xsIixlKSxpfHxsPT09Y3x8KGk9W10pKTooaT1pfHxbXSkucHVzaCh1LGMpKX1uJiYoaT1pfHxbXSkucHVzaCgic3R5bGUiLG4pO3ZhciB1PWk7KHQudXBkYXRlUXVldWU9dSkmJih0LmZsYWdzfD00KX19LEJsPWZ1bmN0aW9uKGUsdCxuLHIpe24hPT1yJiYodC5mbGFnc3w9NCl9LEZsPSExLFA9ITEsSGw9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsST1udWxsO2Z1bmN0aW9uIFZsKHQsbil7dmFyIGU9dC5yZWY7aWYobnVsbCE9PWUpaWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpdHJ5e2UobnVsbCl9Y2F0Y2goZSl7TSh0LG4sZSl9ZWxzZSBlLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiAkbCh0LG4sZSl7dHJ5e2UoKX1jYXRjaChlKXtNKHQsbixlKX19dmFyIFdsPSExO2Z1bmN0aW9uIEdsKGUsdCxuKXt2YXIgcj10LnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT0ocj1udWxsIT09cj9yLmxhc3RFZmZlY3Q6bnVsbCkpe3ZhciBvLGE9cj1yLm5leHQ7ZG97fXdoaWxlKChhLnRhZyZlKT09PWUmJihvPWEuZGVzdHJveSwoYS5kZXN0cm95PXZvaWQgMCkhPT1vKSYmJGwodCxuLG8pLChhPWEubmV4dCkhPT1yKX19ZnVuY3Rpb24gcWwoZSx0KXtpZihudWxsIT09KHQ9bnVsbCE9PSh0PXQudXBkYXRlUXVldWUpP3QubGFzdEVmZmVjdDpudWxsKSl7dmFyIG4scj10PXQubmV4dDtkb3t9d2hpbGUoKHIudGFnJmUpPT09ZSYmKG49ci5jcmVhdGUsci5kZXN0cm95PW4oKSksKHI9ci5uZXh0KSE9PXQpfX1mdW5jdGlvbiBabChlKXt2YXIgdCxuPWUucmVmO251bGwhPT1uJiYodD1lLnN0YXRlTm9kZSxlLnRhZyxlPXQsImZ1bmN0aW9uIj09dHlwZW9mIG4/bihlKTpuLmN1cnJlbnQ9ZSl9ZnVuY3Rpb24gWGwoZSl7cmV0dXJuIDU9PT1lLnRhZ3x8Mz09PWUudGFnfHw0PT09ZS50YWd9ZnVuY3Rpb24gWWwoZSl7ZTpmb3IoOzspe2Zvcig7bnVsbD09PWUuc2libGluZzspe2lmKG51bGw9PT1lLnJldHVybnx8WGwoZS5yZXR1cm4pKXJldHVybiBudWxsO2U9ZS5yZXR1cm59Zm9yKGUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmc7NSE9PWUudGFnJiY2IT09ZS50YWcmJjE4IT09ZS50YWc7KXtpZigyJmUuZmxhZ3MpY29udGludWUgZTtpZihudWxsPT09ZS5jaGlsZHx8ND09PWUudGFnKWNvbnRpbnVlIGU7ZT0oZS5jaGlsZC5yZXR1cm49ZSkuY2hpbGR9aWYoISgyJmUuZmxhZ3MpKXJldHVybiBlLnN0YXRlTm9kZX19dmFyIGQ9bnVsbCxRbD0hMTtmdW5jdGlvbiBLbChlLHQsbil7Zm9yKG49bi5jaGlsZDtudWxsIT09bjspSmwoZSx0LG4pLG49bi5zaWJsaW5nfWZ1bmN0aW9uIEpsKGUsdCxuKXtpZihfdCYmImZ1bmN0aW9uIj09dHlwZW9mIF90Lm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtfdC5vbkNvbW1pdEZpYmVyVW5tb3VudChJdCxuKX1jYXRjaChlKXt9c3dpdGNoKG4udGFnKXtjYXNlIDU6UHx8Vmwobix0KTtjYXNlIDY6dmFyIHI9ZCxvPVFsO2Q9bnVsbCxLbChlLHQsbiksUWw9byxudWxsIT09KGQ9cikmJihRbD8oZT1kLG49bi5zdGF0ZU5vZGUsKDg9PT1lLm5vZGVUeXBlP2UucGFyZW50Tm9kZTplKS5yZW1vdmVDaGlsZChuKSk6ZC5yZW1vdmVDaGlsZChuLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgMTg6bnVsbCE9PWQmJihRbD8oZT1kLG49bi5zdGF0ZU5vZGUsOD09PWUubm9kZVR5cGU/a28oZS5wYXJlbnROb2RlLG4pOjE9PT1lLm5vZGVUeXBlJiZrbyhlLG4pLG1uKGUpKTprbyhkLG4uc3RhdGVOb2RlKSk7YnJlYWs7Y2FzZSA0OnI9ZCxvPVFsLGQ9bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxRbD0hMCxLbChlLHQsbiksZD1yLFFsPW87YnJlYWs7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmlmKCFQJiZudWxsIT09KHI9bi51cGRhdGVRdWV1ZSkmJm51bGwhPT0ocj1yLmxhc3RFZmZlY3QpKXtvPXI9ci5uZXh0O2Rve3ZhciBhPW8uZGVzdHJveSxpPW8udGFnfXdoaWxlKHZvaWQgMD09PWF8fDA9PSgyJmkpJiYwPT0oNCZpKXx8JGwobix0LGEpLChvPW8ubmV4dCkhPT1yKX1LbChlLHQsbik7YnJlYWs7Y2FzZSAxOmlmKCFQJiYoVmwobix0KSwiZnVuY3Rpb24iPT10eXBlb2Yocj1uLnN0YXRlTm9kZSkuY29tcG9uZW50V2lsbFVubW91bnQpKXRyeXtyLnByb3BzPW4ubWVtb2l6ZWRQcm9wcyxyLnN0YXRlPW4ubWVtb2l6ZWRTdGF0ZSxyLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goZSl7TShuLHQsZSl9S2woZSx0LG4pO2JyZWFrO2Nhc2UgMjE6S2woZSx0LG4pO2JyZWFrO2Nhc2UgMjI6MSZuLm1vZGU/KFA9KHI9UCl8fG51bGwhPT1uLm1lbW9pemVkU3RhdGUsS2woZSx0LG4pLFA9cik6S2woZSx0LG4pO2JyZWFrO2RlZmF1bHQ6S2woZSx0LG4pfX1mdW5jdGlvbiBlYyhuKXt2YXIgcixlPW4udXBkYXRlUXVldWU7bnVsbCE9PWUmJigobi51cGRhdGVRdWV1ZT1udWxsKT09PShyPW4uc3RhdGVOb2RlKSYmKHI9bi5zdGF0ZU5vZGU9bmV3IEhsKSxlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj0wO3N3aXRjaChlLnRhZyl7Y2FzZSAxMzp2YXIgcj1lLnN0YXRlTm9kZSxvPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09byYmKG49by5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6cj1lLnN0YXRlTm9kZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKEQoMzE0KSl9bnVsbCE9PXImJnIuZGVsZXRlKHQpLEpjKGUsbil9LmJpbmQobnVsbCxuLGUpO3IuaGFzKGUpfHwoci5hZGQoZSksZS50aGVuKHQsdCkpfSkpfWZ1bmN0aW9uIHRjKGUsdCl7dmFyIG49dC5kZWxldGlvbnM7aWYobnVsbCE9PW4pZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBvPW5bcl07dHJ5e3ZhciBhPWUsaT10LGw9aTtlOmZvcig7bnVsbCE9PWw7KXtzd2l0Y2gobC50YWcpe2Nhc2UgNTpkPWwuc3RhdGVOb2RlLFFsPSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpkPWwuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sUWw9ITA7YnJlYWsgZX1sPWwucmV0dXJufWlmKG51bGw9PT1kKXRocm93IEVycm9yKEQoMTYwKSk7SmwoYSxpLG8pLGQ9bnVsbCxRbD0hMTt2YXIgYz1vLmFsdGVybmF0ZTtudWxsIT09YyYmKGMucmV0dXJuPW51bGwpLG8ucmV0dXJuPW51bGx9Y2F0Y2goZSl7TShvLHQsZSl9fWlmKDEyODU0JnQuc3VidHJlZUZsYWdzKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KW5jKHQsZSksdD10LnNpYmxpbmd9ZnVuY3Rpb24gbmModCxlKXt2YXIgbj10LmFsdGVybmF0ZSxyPXQuZmxhZ3M7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aWYodGMoZSx0KSxyYyh0KSw0JnIpe3RyeXtHbCgzLHQsdC5yZXR1cm4pLHFsKDMsdCl9Y2F0Y2goZSl7TSh0LHQucmV0dXJuLGUpfXRyeXtHbCg1LHQsdC5yZXR1cm4pfWNhdGNoKGUpe00odCx0LnJldHVybixlKX19YnJlYWs7Y2FzZSAxOnRjKGUsdCkscmModCksNTEyJnImJm51bGwhPT1uJiZWbChuLG4ucmV0dXJuKTticmVhaztjYXNlIDU6aWYodGMoZSx0KSxyYyh0KSw1MTImciYmbnVsbCE9PW4mJlZsKG4sbi5yZXR1cm4pLDMyJnQuZmxhZ3Mpe3ZhciBvPXQuc3RhdGVOb2RlO3RyeXtIZShvLCIiKX1jYXRjaChlKXtNKHQsdC5yZXR1cm4sZSl9fWlmKDQmciYmbnVsbCE9KG89dC5zdGF0ZU5vZGUpKXt2YXIgYT10Lm1lbW9pemVkUHJvcHMsaT1udWxsIT09bj9uLm1lbW9pemVkUHJvcHM6YSxsPXQudHlwZSxjPXQudXBkYXRlUXVldWU7aWYoKHQudXBkYXRlUXVldWU9bnVsbCkhPT1jKXRyeXsiaW5wdXQiPT09bCYmInJhZGlvIj09PWEudHlwZSYmbnVsbCE9YS5uYW1lJiZqZShvLGEpLFhlKGwsaSk7Zm9yKHZhciB1PVhlKGwsYSksaT0wO2k8Yy5sZW5ndGg7aSs9Mil7dmFyIHM9Y1tpXSxmPWNbaSsxXTsic3R5bGUiPT09cz9HZShvLGYpOiJkYW5nZXJvdXNseVNldElubmVySFRNTCI9PT1zP0ZlKG8sZik6ImNoaWxkcmVuIj09PXM/SGUobyxmKTpLKG8scyxmLHUpfXN3aXRjaChsKXtjYXNlImlucHV0IjpBZShvLGEpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOk1lKG8sYSk7YnJlYWs7Y2FzZSJzZWxlY3QiOnZhciBkPW8uX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSxwPShvLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFhLm11bHRpcGxlLGEudmFsdWUpO251bGwhPXA/emUobywhIWEubXVsdGlwbGUscCwhMSk6ZCE9PSEhYS5tdWx0aXBsZSYmKG51bGwhPWEuZGVmYXVsdFZhbHVlP3plKG8sISFhLm11bHRpcGxlLGEuZGVmYXVsdFZhbHVlLCEwKTp6ZShvLCEhYS5tdWx0aXBsZSxhLm11bHRpcGxlP1tdOiIiLCExKSl9b1tPb109YX1jYXRjaChlKXtNKHQsdC5yZXR1cm4sZSl9fWJyZWFrO2Nhc2UgNjppZih0YyhlLHQpLHJjKHQpLDQmcil7aWYobnVsbD09PXQuc3RhdGVOb2RlKXRocm93IEVycm9yKEQoMTYyKSk7bz10LnN0YXRlTm9kZSxhPXQubWVtb2l6ZWRQcm9wczt0cnl7by5ub2RlVmFsdWU9YX1jYXRjaChlKXtNKHQsdC5yZXR1cm4sZSl9fWJyZWFrO2Nhc2UgMzppZih0YyhlLHQpLHJjKHQpLDQmciYmbnVsbCE9PW4mJm4ubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e21uKGUuY29udGFpbmVySW5mbyl9Y2F0Y2goZSl7TSh0LHQucmV0dXJuLGUpfWJyZWFrO2Nhc2UgNDp0YyhlLHQpLHJjKHQpO2JyZWFrO2Nhc2UgMTM6dGMoZSx0KSxyYyh0KSw4MTkyJihvPXQuY2hpbGQpLmZsYWdzJiYoYT1udWxsIT09by5tZW1vaXplZFN0YXRlLCEoby5zdGF0ZU5vZGUuaXNIaWRkZW49YSl8fG51bGwhPT1vLmFsdGVybmF0ZSYmbnVsbCE9PW8uYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGV8fCh2Yz1oKCkpKSw0JnImJmVjKHQpO2JyZWFrO2Nhc2UgMjI6aWYocz1udWxsIT09biYmbnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZSwxJnQubW9kZT8oUD0odT1QKXx8cyx0YyhlLHQpLFA9dSk6dGMoZSx0KSxyYyh0KSw4MTkyJnIpe2lmKHU9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSwodC5zdGF0ZU5vZGUuaXNIaWRkZW49dSkmJiFzJiYwIT0oMSZ0Lm1vZGUpKWZvcihzPShJPXQpLmNoaWxkO251bGwhPT1zOyl7Zm9yKGY9ST1zO251bGwhPT1JOyl7c3dpdGNoKHA9KGQ9SSkuY2hpbGQsZC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpHbCg0LGQsZC5yZXR1cm4pO2JyZWFrO2Nhc2UgMTpWbChkLGQucmV0dXJuKTt2YXIgbT1kLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbS5jb21wb25lbnRXaWxsVW5tb3VudCl7bj0ocj1kKS5yZXR1cm47dHJ5e2U9cixtLnByb3BzPWUubWVtb2l6ZWRQcm9wcyxtLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxtLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goZSl7TShyLG4sZSl9fWJyZWFrO2Nhc2UgNTpWbChkLGQucmV0dXJuKTticmVhaztjYXNlIDIyOmlmKG51bGwhPT1kLm1lbW9pemVkU3RhdGUpe2ljKGYpO2NvbnRpbnVlfX1udWxsIT09cD8ocC5yZXR1cm49ZCxJPXApOmljKGYpfXM9cy5zaWJsaW5nfWU6Zm9yKHM9bnVsbCxmPXQ7Oyl7aWYoNT09PWYudGFnKXtpZihudWxsPT09cyl7cz1mO3RyeXtvPWYuc3RhdGVOb2RlLHU/ImZ1bmN0aW9uIj09dHlwZW9mKGE9by5zdHlsZSkuc2V0UHJvcGVydHk/YS5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsIm5vbmUiLCJpbXBvcnRhbnQiKTphLmRpc3BsYXk9Im5vbmUiOihsPWYuc3RhdGVOb2RlLGk9bnVsbCE9KGM9Zi5tZW1vaXplZFByb3BzLnN0eWxlKSYmYy5oYXNPd25Qcm9wZXJ0eSgiZGlzcGxheSIpP2MuZGlzcGxheTpudWxsLGwuc3R5bGUuZGlzcGxheT1XZSgiZGlzcGxheSIsaSkpfWNhdGNoKGUpe00odCx0LnJldHVybixlKX19fWVsc2UgaWYoNj09PWYudGFnKXtpZihudWxsPT09cyl0cnl7Zi5zdGF0ZU5vZGUubm9kZVZhbHVlPXU/IiI6Zi5tZW1vaXplZFByb3BzfWNhdGNoKGUpe00odCx0LnJldHVybixlKX19ZWxzZSBpZigoMjIhPT1mLnRhZyYmMjMhPT1mLnRhZ3x8bnVsbD09PWYubWVtb2l6ZWRTdGF0ZXx8Zj09PXQpJiZudWxsIT09Zi5jaGlsZCl7Zj0oZi5jaGlsZC5yZXR1cm49ZikuY2hpbGQ7Y29udGludWV9aWYoZj09PXQpYnJlYWs7Zm9yKDtudWxsPT09Zi5zaWJsaW5nOyl7aWYobnVsbD09PWYucmV0dXJufHxmLnJldHVybj09PXQpYnJlYWsgZTtzPT09ZiYmKHM9bnVsbCksZj1mLnJldHVybn1zPT09ZiYmKHM9bnVsbCksZi5zaWJsaW5nLnJldHVybj1mLnJldHVybixmPWYuc2libGluZ319YnJlYWs7Y2FzZSAxOTp0YyhlLHQpLHJjKHQpLDQmciYmZWModCk7YnJlYWs7Y2FzZSAyMTpicmVhaztkZWZhdWx0OnRjKGUsdCkscmModCl9fWZ1bmN0aW9uIHJjKHQpe3ZhciBlPXQuZmxhZ3M7aWYoMiZlKXt0cnl7ZTp7Zm9yKHZhciBuPXQucmV0dXJuO251bGwhPT1uOyl7aWYoWGwobikpe3ZhciByPW47YnJlYWsgZX1uPW4ucmV0dXJufXRocm93IEVycm9yKEQoMTYwKSl9c3dpdGNoKHIudGFnKXtjYXNlIDU6dmFyIG89ci5zdGF0ZU5vZGU7MzImci5mbGFncyYmKEhlKG8sIiIpLHIuZmxhZ3MmPS0zMyksIWZ1bmN0aW9uIGUodCxuLHIpe3ZhciBvPXQudGFnO2lmKDU9PT1vfHw2PT09byl0PXQuc3RhdGVOb2RlLG4/ci5pbnNlcnRCZWZvcmUodCxuKTpyLmFwcGVuZENoaWxkKHQpO2Vsc2UgaWYoNCE9PW8mJm51bGwhPT0odD10LmNoaWxkKSlmb3IoZSh0LG4sciksdD10LnNpYmxpbmc7bnVsbCE9PXQ7KWUodCxuLHIpLHQ9dC5zaWJsaW5nfSh0LFlsKHQpLG8pO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dmFyIGE9ci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzshZnVuY3Rpb24gZSh0LG4scil7dmFyIG89dC50YWc7aWYoNT09PW98fDY9PT1vKXQ9dC5zdGF0ZU5vZGUsbj8oOD09PXIubm9kZVR5cGU/ci5wYXJlbnROb2RlOnIpLmluc2VydEJlZm9yZSh0LG4pOig4PT09ci5ub2RlVHlwZT8obj1yLnBhcmVudE5vZGUpLmluc2VydEJlZm9yZSh0LHIpOihuPXIpLmFwcGVuZENoaWxkKHQpLG51bGw9PShyPXIuX3JlYWN0Um9vdENvbnRhaW5lcikmJm51bGw9PT1uLm9uY2xpY2smJihuLm9uY2xpY2s9cG8pKTtlbHNlIGlmKDQhPT1vJiZudWxsIT09KHQ9dC5jaGlsZCkpZm9yKGUodCxuLHIpLHQ9dC5zaWJsaW5nO251bGwhPT10OyllKHQsbixyKSx0PXQuc2libGluZ30odCxZbCh0KSxhKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKEQoMTYxKSl9fWNhdGNoKGUpe00odCx0LnJldHVybixlKX10LmZsYWdzJj0tM300MDk2JmUmJih0LmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24gb2MoZSx0LG4peyFmdW5jdGlvbiBlKHQsbixyKXtmb3IodmFyIG89MCE9KDEmdC5tb2RlKTtudWxsIT09STspe3ZhciBhPUksaT1hLmNoaWxkO2lmKDIyPT09YS50YWcmJm8pe3ZhciBsPW51bGwhPT1hLm1lbW9pemVkU3RhdGV8fEZsO2lmKCFsKXt2YXIgYz1hLmFsdGVybmF0ZSx1PW51bGwhPT1jJiZudWxsIT09Yy5tZW1vaXplZFN0YXRlfHxQLHM9KGM9RmwsUCk7aWYoRmw9bCwoUD11KSYmIXMpZm9yKEk9YTtudWxsIT09STspdT0obD1JKS5jaGlsZCwoMjIhPT1sLnRhZ3x8bnVsbD09PWwubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT11Pyh1LnJldHVybj1sLEk9dSk6bGMoYSk7Zm9yKDtudWxsIT09aTspZShJPWksbixyKSxpPWkuc2libGluZztJPWEsRmw9YyxQPXN9YWModCl9ZWxzZSAwIT0oODc3MiZhLnN1YnRyZWVGbGFncykmJm51bGwhPT1pPyhpLnJldHVybj1hLEk9aSk6YWModCl9fShJPWUsdCxuKX1mdW5jdGlvbiBhYyhlKXtmb3IoO251bGwhPT1JOyl7dmFyIHQ9STtpZigwIT0oODc3MiZ0LmZsYWdzKSl7dmFyIG4scixvLGE9dC5hbHRlcm5hdGU7dHJ5e2lmKDAhPSg4NzcyJnQuZmxhZ3MpKXN3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpQfHxxbCg1LHQpO2JyZWFrO2Nhc2UgMTp2YXIgaSxsPXQuc3RhdGVOb2RlLGM9KDQmdC5mbGFncyYmIVAmJihudWxsPT09YT9sLmNvbXBvbmVudERpZE1vdW50KCk6KGk9dC5lbGVtZW50VHlwZT09PXQudHlwZT9hLm1lbW9pemVkUHJvcHM6a2EodC50eXBlLGEubWVtb2l6ZWRQcm9wcyksbC5jb21wb25lbnREaWRVcGRhdGUoaSxhLm1lbW9pemVkU3RhdGUsbC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSkpKSx0LnVwZGF0ZVF1ZXVlKTtudWxsIT09YyYmJGEoMCxjLGwpO2JyZWFrO2Nhc2UgMzp2YXIgdT10LnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT11KXtpZigoYT1udWxsKSE9PXQuY2hpbGQpc3dpdGNoKHQuY2hpbGQudGFnKXtjYXNlIDU6Y2FzZSAxOmE9dC5jaGlsZC5zdGF0ZU5vZGV9JGEoMCx1LGEpfWJyZWFrO2Nhc2UgNTp2YXIgcz10LnN0YXRlTm9kZTtpZihudWxsPT09YSYmNCZ0LmZsYWdzKXt2YXIgYT1zLGY9dC5tZW1vaXplZFByb3BzO3N3aXRjaCh0LnR5cGUpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6Zi5hdXRvRm9jdXMmJmEuZm9jdXMoKTticmVhaztjYXNlImltZyI6Zi5zcmMmJihhLnNyYz1mLnNyYyl9fWJyZWFrO2Nhc2UgNjpjYXNlIDQ6Y2FzZSAxMjpicmVhaztjYXNlIDEzOm51bGw9PT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT0obj10LmFsdGVybmF0ZSkmJm51bGwhPT0ocj1uLm1lbW9pemVkU3RhdGUpJiZudWxsIT09KG89ci5kZWh5ZHJhdGVkKSYmbW4obyk7YnJlYWs7Y2FzZSAxOTpjYXNlIDE3OmNhc2UgMjE6Y2FzZSAyMjpjYXNlIDIzOmNhc2UgMjU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihEKDE2MykpfVB8fDUxMiZ0LmZsYWdzJiZabCh0KX1jYXRjaChlKXtNKHQsdC5yZXR1cm4sZSl9fWlmKHQ9PT1lKXtJPW51bGw7YnJlYWt9aWYobnVsbCE9PShhPXQuc2libGluZykpe2EucmV0dXJuPXQucmV0dXJuLEk9YTticmVha31JPXQucmV0dXJufX1mdW5jdGlvbiBpYyhlKXtmb3IoO251bGwhPT1JOyl7dmFyIHQ9STtpZih0PT09ZSl7ST1udWxsO2JyZWFrfXZhciBuPXQuc2libGluZztpZihudWxsIT09bil7bi5yZXR1cm49dC5yZXR1cm4sST1uO2JyZWFrfUk9dC5yZXR1cm59fWZ1bmN0aW9uIGxjKGUpe2Zvcig7bnVsbCE9PUk7KXt2YXIgdD1JO3RyeXtzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dmFyIG49dC5yZXR1cm47dHJ5e3FsKDQsdCl9Y2F0Y2goZSl7TSh0LG4sZSl9YnJlYWs7Y2FzZSAxOnZhciByPXQuc3RhdGVOb2RlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiByLmNvbXBvbmVudERpZE1vdW50KXt2YXIgbz10LnJldHVybjt0cnl7ci5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKGUpe00odCxvLGUpfX12YXIgYT10LnJldHVybjt0cnl7WmwodCl9Y2F0Y2goZSl7TSh0LGEsZSl9YnJlYWs7Y2FzZSA1OnZhciBpPXQucmV0dXJuO3RyeXtabCh0KX1jYXRjaChlKXtNKHQsaSxlKX19fWNhdGNoKGUpe00odCx0LnJldHVybixlKX1pZih0PT09ZSl7ST1udWxsO2JyZWFrfXZhciBsPXQuc2libGluZztpZihudWxsIT09bCl7bC5yZXR1cm49dC5yZXR1cm4sST1sO2JyZWFrfUk9dC5yZXR1cm59fXZhciBjYz1NYXRoLmNlaWwsdWM9Si5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLHNjPUouUmVhY3RDdXJyZW50T3duZXIsZmM9Si5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxfPTAscD1udWxsLHo9bnVsbCxUPTAsZGM9MCxwYz1ObygwKSxMPTAsbWM9bnVsbCxoYz0wLGdjPTAsYmM9MCx5Yz1udWxsLGw9bnVsbCx2Yz0wLHdjPTEvMCx4Yz1udWxsLGtjPSExLFNjPW51bGwsQ2M9bnVsbCxFYz0hMSxPYz1udWxsLGpjPTAsQWM9MCxQYz1udWxsLEljPS0xLF9jPTA7ZnVuY3Rpb24gbSgpe3JldHVybiAwIT0oNiZfKT9oKCk6LTEhPT1JYz9JYzpJYz1oKCl9ZnVuY3Rpb24gemMoZSl7cmV0dXJuIDA9PSgxJmUubW9kZSk/MTowIT0oMiZfKSYmMCE9PVQ/VCYtVDpudWxsIT09eGEudHJhbnNpdGlvbj9fYz0wPT09X2M/RnQoKTpfYzowPT09KGU9eCk/dm9pZCAwPT09KGU9d2luZG93LmV2ZW50KT8xNjprbihlLnR5cGUpOmV9ZnVuY3Rpb24gVGMoZSx0LG4scil7aWYoNTA8QWMpdGhyb3cgQWM9MCxQYz1udWxsLEVycm9yKEQoMTg1KSk7VnQoZSxuLHIpLDAhPSgyJl8pJiZlPT09cHx8KGU9PT1wJiYoMD09KDImXykmJihnY3w9biksND09PUwpJiZEYyhlLFQpLExjKGUsciksMT09PW4mJjA9PT1fJiYwPT0oMSZ0Lm1vZGUpJiYod2M9aCgpKzUwMCxxbykmJllvKCkpfWZ1bmN0aW9uIExjKGUsdCl7dmFyIG4scj1lLmNhbGxiYWNrTm9kZSxvPShVdChlLHQpLER0KGUsZT09PXA/VDowKSk7aWYoMD09PW8pbnVsbCE9PXImJnh0KHIpLGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7ZWxzZSBpZihlLmNhbGxiYWNrUHJpb3JpdHkhPT0odD1vJi1vKSl7aWYobnVsbCE9ciYmeHQociksMT09PXQpMD09PWUudGFnPyhuPVVjLmJpbmQobnVsbCxlKSxxbz0hMCxYbyhuKSk6WG8oVWMuYmluZChudWxsLGUpKSx3byhmdW5jdGlvbigpezA9PSg2Jl8pJiZZbygpfSkscj1udWxsO2Vsc2V7c3dpdGNoKFd0KG8pKXtjYXNlIDE6cj1FdDticmVhaztjYXNlIDQ6cj1PdDticmVhaztjYXNlIDE2OnI9anQ7YnJlYWs7Y2FzZSA1MzY4NzA5MTI6cj1QdDticmVhaztkZWZhdWx0OnI9anR9cj1ldShyLE1jLmJpbmQobnVsbCxlKSl9ZS5jYWxsYmFja1ByaW9yaXR5PXQsZS5jYWxsYmFja05vZGU9cn19ZnVuY3Rpb24gTWModCxlKXtpZihJYz0tMSwoX2M9MCkhPSg2Jl8pKXRocm93IEVycm9yKEQoMzI3KSk7dmFyIG49dC5jYWxsYmFja05vZGU7aWYoUWMoKSYmdC5jYWxsYmFja05vZGUhPT1uKXJldHVybiBudWxsO3ZhciByPUR0KHQsdD09PXA/VDowKTtpZigwPT09cilyZXR1cm4gbnVsbDtpZigwIT0oMzAmcil8fDAhPShyJnQuZXhwaXJlZExhbmVzKXx8ZSllPXFjKHQscik7ZWxzZXtlPXI7dmFyIG89XyxhPShffD0yLFdjKCkpO2ZvcihwPT09dCYmVD09PWV8fCh4Yz1udWxsLHdjPWgoKSs1MDAsVmModCxlKSk7Oyl0cnl7Zm9yKDtudWxsIT09eiYmIWt0KCk7KVpjKHopO2JyZWFrfWNhdGNoKGUpeyRjKHQsZSl9amEoKSx1Yy5jdXJyZW50PWEsXz1vLGU9bnVsbCE9PXo/MDoocD1udWxsLFQ9MCxMKX1pZigwIT09ZSl7aWYoMT09PShlPTI9PT1lJiYwIT09KG89QnQodCkpP1JjKHQscj1vKTplKSl0aHJvdyBuPW1jLFZjKHQsMCksRGModCxyKSxMYyh0LGgoKSksbjtpZig2PT09ZSlEYyh0LHIpO2Vsc2V7aWYobz10LmN1cnJlbnQuYWx0ZXJuYXRlLDA9PSgzMCZyKSYmIWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lOzspe2lmKDE2Mzg0JnQuZmxhZ3Mpe3ZhciBuPXQudXBkYXRlUXVldWU7aWYobnVsbCE9PW4mJm51bGwhPT0obj1uLnN0b3JlcykpZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBvPW5bcl0sYT1vLmdldFNuYXBzaG90O289by52YWx1ZTt0cnl7aWYoIWtyKGEoKSxvKSlyZXR1cm59Y2F0Y2goZSl7cmV0dXJufX19aWYobj10LmNoaWxkLDE2Mzg0JnQuc3VidHJlZUZsYWdzJiZudWxsIT09biluLnJldHVybj10LHQ9bjtlbHNle2lmKHQ9PT1lKWJyZWFrO2Zvcig7bnVsbD09PXQuc2libGluZzspe2lmKG51bGw9PT10LnJldHVybnx8dC5yZXR1cm49PT1lKXJldHVybiAxO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ319cmV0dXJuIDF9KG8pJiYxPT09KGU9Mj09PShlPXFjKHQscikpJiYwIT09KGE9QnQodCkpP1JjKHQscj1hKTplKSl0aHJvdyBuPW1jLFZjKHQsMCksRGModCxyKSxMYyh0LGgoKSksbjtzd2l0Y2godC5maW5pc2hlZFdvcms9byx0LmZpbmlzaGVkTGFuZXM9cixlKXtjYXNlIDA6Y2FzZSAxOnRocm93IEVycm9yKEQoMzQ1KSk7Y2FzZSAyOlljKHQsbCx4Yyk7YnJlYWs7Y2FzZSAzOmlmKERjKHQsciksKDEzMDAyMzQyNCZyKT09PXImJjEwPChlPXZjKzUwMC1oKCkpKXtpZigwIT09RHQodCwwKSlicmVhaztpZigoKG89dC5zdXNwZW5kZWRMYW5lcykmcikhPT1yKXttKCksdC5waW5nZWRMYW5lc3w9dC5zdXNwZW5kZWRMYW5lcyZvO2JyZWFrfXQudGltZW91dEhhbmRsZT1ibyhZYy5iaW5kKG51bGwsdCxsLHhjKSxlKX1lbHNlIFljKHQsbCx4Yyk7YnJlYWs7Y2FzZSA0OmlmKERjKHQsciksKDQxOTQyNDAmcikhPT1yKXtmb3IoZT10LmV2ZW50VGltZXMsbz0tMTswPHI7KXt2YXIgaT0zMS16dChyKSxhPTE8PGk7bzwoaT1lW2ldKSYmKG89aSksciY9fmF9cj1vLDEwPChyPSgocj1oKCktcik8MTIwPzEyMDpyPDQ4MD80ODA6cjwxMDgwPzEwODA6cjwxOTIwPzE5MjA6cjwzZTM/M2UzOnI8NDMyMD80MzIwOjE5NjAqY2Moci8xOTYwKSktcik/dC50aW1lb3V0SGFuZGxlPWJvKFljLmJpbmQobnVsbCx0LGwseGMpLHIpOlljKHQsbCx4Yyl9YnJlYWs7Y2FzZSA1OlljKHQsbCx4Yyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihEKDMyOSkpfX19cmV0dXJuIExjKHQsaCgpKSx0LmNhbGxiYWNrTm9kZT09PW4/TWMuYmluZChudWxsLHQpOm51bGx9ZnVuY3Rpb24gUmMoZSx0KXt2YXIgbj15YztyZXR1cm4gZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYoVmMoZSx0KS5mbGFnc3w9MjU2KSwyIT09KGU9cWMoZSx0KSkmJih0PWwsbD1uLG51bGwhPT10KSYmTmModCksZX1mdW5jdGlvbiBOYyhlKXtudWxsPT09bD9sPWU6bC5wdXNoLmFwcGx5KGwsZSl9ZnVuY3Rpb24gRGMoZSx0KXtmb3IodD10Jn5iYyZ+Z2MsZS5zdXNwZW5kZWRMYW5lc3w9dCxlLnBpbmdlZExhbmVzJj1+dCxlPWUuZXhwaXJhdGlvblRpbWVzOzA8dDspe3ZhciBuPTMxLXp0KHQpLHI9MTw8bjtlW25dPS0xLHQmPX5yfX1mdW5jdGlvbiBVYyhlKXtpZigwIT0oNiZfKSl0aHJvdyBFcnJvcihEKDMyNykpO1FjKCk7dmFyIHQ9RHQoZSwwKTtpZigwIT0oMSZ0KSl7dmFyIG4scj1xYyhlLHQpO2lmKDE9PT0ocj0wIT09ZS50YWcmJjI9PT1yJiYwIT09KG49QnQoZSkpP1JjKGUsdD1uKTpyKSl0aHJvdyByPW1jLFZjKGUsMCksRGMoZSx0KSxMYyhlLGgoKSkscjtpZig2PT09cil0aHJvdyBFcnJvcihEKDM0NSkpO2UuZmluaXNoZWRXb3JrPWUuY3VycmVudC5hbHRlcm5hdGUsZS5maW5pc2hlZExhbmVzPXQsWWMoZSxsLHhjKX1yZXR1cm4gTGMoZSxoKCkpLG51bGx9ZnVuY3Rpb24gQmMoZSx0KXt2YXIgbj1fO198PTE7dHJ5e3JldHVybiBlKHQpfWZpbmFsbHl7MD09PShfPW4pJiYod2M9aCgpKzUwMCxxbykmJllvKCl9fWZ1bmN0aW9uIEZjKGUpe251bGwhPT1PYyYmMD09PU9jLnRhZyYmMD09KDYmXykmJlFjKCk7dmFyIHQ9XyxuPShffD0xLGZjLnRyYW5zaXRpb24pLHI9eDt0cnl7aWYoZmMudHJhbnNpdGlvbj1udWxsLHg9MSxlKXJldHVybiBlKCl9ZmluYWxseXt4PXIsZmMudHJhbnNpdGlvbj1uLDA9PSg2JihfPXQpKSYmWW8oKX19ZnVuY3Rpb24gSGMoKXtkYz1wYy5jdXJyZW50LHUocGMpfWZ1bmN0aW9uIFZjKGUsdCl7ZS5maW5pc2hlZFdvcms9bnVsbCxlLmZpbmlzaGVkTGFuZXM9MDt2YXIgbixyLG8sYT1lLnRpbWVvdXRIYW5kbGU7aWYoLTEhPT1hJiYoZS50aW1lb3V0SGFuZGxlPS0xLHlvKGEpKSxudWxsIT09eilmb3IoYT16LnJldHVybjtudWxsIT09YTspe3ZhciBpPWE7c3dpdGNoKHVhKGkpLGkudGFnKXtjYXNlIDE6bnVsbCE9KGk9aS50eXBlLmNoaWxkQ29udGV4dFR5cGVzKSYmRm8oKTticmVhaztjYXNlIDM6c2koKSx1KHYpLHUoeSksaGkoKTticmVhaztjYXNlIDU6ZGkoaSk7YnJlYWs7Y2FzZSA0OnNpKCk7YnJlYWs7Y2FzZSAxMzpjYXNlIDE5OnUoUyk7YnJlYWs7Y2FzZSAxMDpBYShpLnR5cGUuX2NvbnRleHQpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpIYygpfWE9YS5yZXR1cm59aWYoej1lPW91KChwPWUpLmN1cnJlbnQsbnVsbCksVD1kYz10LGJjPWdjPWhjPUw9MCwobD15Yz1tYz1udWxsKSE9PXphKXtmb3IodD0wO3Q8emEubGVuZ3RoO3QrKyludWxsIT09KGk9KGE9emFbdF0pLmludGVybGVhdmVkKSYmKGEuaW50ZXJsZWF2ZWQ9bnVsbCxuPWkubmV4dCxudWxsIT09KHI9YS5wZW5kaW5nKSYmKG89ci5uZXh0LHIubmV4dD1uLGkubmV4dD1vKSxhLnBlbmRpbmc9aSk7emE9bnVsbH1yZXR1cm4gZX1mdW5jdGlvbiAkYyhlLHQpe2Rve3ZhciBuPXo7dHJ5e2lmKGphKCksZ2kuY3VycmVudD1ybCx2aSl7Zm9yKHZhciByPUMubWVtb2l6ZWRTdGF0ZTtudWxsIT09cjspe3ZhciBvPXIucXVldWU7bnVsbCE9PW8mJihvLnBlbmRpbmc9bnVsbCkscj1yLm5leHR9dmk9ITF9aWYoTz1FPUM9bnVsbCx3aT0hMSx4aT15aT0wLChzYy5jdXJyZW50PW51bGwpPT09bnx8bnVsbD09PW4ucmV0dXJuKXtMPTEsbWM9dCx6PW51bGw7YnJlYWt9ZTp7dmFyIGE9ZSxpPW4ucmV0dXJuLGw9dDtpZih0PVQsKGc9bikuZmxhZ3N8PTMyNzY4LG51bGwhPT1sJiYib2JqZWN0Ij09dHlwZW9mIGwmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLnRoZW4pe3ZhciBjLHU9bCxzPWcsZj1zLnRhZyxkPSgwIT0oMSZzLm1vZGUpfHwwIT09ZiYmMTEhPT1mJiYxNSE9PWZ8fCgoYz1zLmFsdGVybmF0ZSk/KHMudXBkYXRlUXVldWU9Yy51cGRhdGVRdWV1ZSxzLm1lbW9pemVkU3RhdGU9Yy5tZW1vaXplZFN0YXRlLHMubGFuZXM9Yy5sYW5lcyk6KHMudXBkYXRlUXVldWU9bnVsbCxzLm1lbW9pemVkU3RhdGU9bnVsbCkpLG1sKGkpKTtpZihudWxsIT09ZCl7ZC5mbGFncyY9LTI1NyxobChkLGksZywwLHQpLDEmZC5tb2RlJiZwbChhLHUsdCk7dmFyIHAsbD11LG09KHQ9ZCkudXBkYXRlUXVldWU7bnVsbD09PW0/KChwPW5ldyBTZXQpLmFkZChsKSx0LnVwZGF0ZVF1ZXVlPXApOm0uYWRkKGwpO2JyZWFrIGV9aWYoMD09KDEmdCkpe3BsKGEsdSx0KSxHYygpO2JyZWFrIGV9bD1FcnJvcihEKDQyNikpfWVsc2UgaWYoVSYmMSZnLm1vZGUpe3ZhciBoPW1sKGkpO2lmKG51bGwhPT1oKXswPT0oNjU1MzYmaC5mbGFncykmJihoLmZsYWdzfD0yNTYpLGhsKGgsaSxnLDAsdCksd2EobGwobCxnKSk7YnJlYWsgZX19YT1sPWxsKGwsZyksNCE9PUwmJihMPTIpLG51bGw9PT15Yz95Yz1bYV06eWMucHVzaChhKSxhPWk7ZG97c3dpdGNoKGEudGFnKXtjYXNlIDM6YS5mbGFnc3w9NjU1MzYsdCY9LXQsYS5sYW5lc3w9dCxIYShhLGZsKDAsbCx0KSk7YnJlYWsgZTtjYXNlIDE6dmFyIGc9bCxiPWEudHlwZSx5PWEuc3RhdGVOb2RlO2lmKDA9PSgxMjgmYS5mbGFncykmJigiZnVuY3Rpb24iPT10eXBlb2YgYi5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT15JiYiZnVuY3Rpb24iPT10eXBlb2YgeS5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1DY3x8IUNjLmhhcyh5KSkpKXthLmZsYWdzfD02NTUzNix0Jj0tdCxhLmxhbmVzfD10LEhhKGEsZGwoYSxnLHQpKTticmVhayBlfX19d2hpbGUobnVsbCE9PShhPWEucmV0dXJuKSl9WGMobil9Y2F0Y2goZSl7dD1lLHo9PT1uJiZudWxsIT09biYmKHo9bi5yZXR1cm4pO2NvbnRpbnVlfWJyZWFrfXdoaWxlKDEpfWZ1bmN0aW9uIFdjKCl7dmFyIGU9dWMuY3VycmVudDtyZXR1cm4gdWMuY3VycmVudD1ybCxudWxsPT09ZT9ybDplfWZ1bmN0aW9uIEdjKCl7MCE9PUwmJjMhPT1MJiYyIT09THx8KEw9NCksbnVsbD09PXB8fDA9PSgyNjg0MzU0NTUmaGMpJiYwPT0oMjY4NDM1NDU1JmdjKXx8RGMocCxUKX1mdW5jdGlvbiBxYyh0LGUpe3ZhciBuPV8scj0oX3w9MixXYygpKTtmb3IocD09PXQmJlQ9PT1lfHwoeGM9bnVsbCxWYyh0LGUpKTs7KXRyeXtmb3IoO251bGwhPT16OylaYyh6KTticmVha31jYXRjaChlKXskYyh0LGUpfWlmKGphKCksXz1uLHVjLmN1cnJlbnQ9cixudWxsIT09eil0aHJvdyBFcnJvcihEKDI2MSkpO3JldHVybiBwPW51bGwsVD0wLEx9ZnVuY3Rpb24gWmMoZSl7dmFyIHQ9eXUoZS5hbHRlcm5hdGUsZSxkYyk7ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT10P1hjKGUpOno9dCxzYy5jdXJyZW50PW51bGx9ZnVuY3Rpb24gWGMoZSl7dmFyIHQ9ZTtkb3t2YXIgbj10LmFsdGVybmF0ZTtpZihlPXQucmV0dXJuLDA9PSgzMjc2OCZ0LmZsYWdzKSl7aWYobnVsbCE9PShuPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcztzd2l0Y2godWEodCksdC50YWcpe2Nhc2UgMjpjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiBmKHQpLG51bGw7Y2FzZSAxOnJldHVybiB3KHQudHlwZSkmJkZvKCksZih0KSxudWxsO2Nhc2UgMzpyZXR1cm4gcj10LnN0YXRlTm9kZSxzaSgpLHUodiksdSh5KSxoaSgpLHIucGVuZGluZ0NvbnRleHQmJihyLmNvbnRleHQ9ci5wZW5kaW5nQ29udGV4dCxyLnBlbmRpbmdDb250ZXh0PW51bGwpLG51bGwhPT1lJiZudWxsIT09ZS5jaGlsZHx8KGJhKHQpP3QuZmxhZ3N8PTQ6bnVsbD09PWV8fGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJjA9PSgyNTYmdC5mbGFncyl8fCh0LmZsYWdzfD0xMDI0LG51bGwhPT1mYSYmKE5jKGZhKSxmYT1udWxsKSkpLGYodCksbnVsbDtjYXNlIDU6ZGkodCk7dmFyIG8sYT1jaShsaS5jdXJyZW50KTtpZihuPXQudHlwZSxudWxsIT09ZSYmbnVsbCE9dC5zdGF0ZU5vZGUpVWwoZSx0LG4sciksZS5yZWYhPT10LnJlZiYmKHQuZmxhZ3N8PTUxMix0LmZsYWdzfD0yMDk3MTUyKTtlbHNle2lmKCFyKXtpZihudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IoRCgxNjYpKTtyZXR1cm4gZih0KSxudWxsfWlmKGU9Y2koYWkuY3VycmVudCksYmEodCkpe3I9dC5zdGF0ZU5vZGUsbj10LnR5cGU7dmFyIGksbCxjPXQubWVtb2l6ZWRQcm9wcztzd2l0Y2gocltFb109dCxyW09vXT1jLGU9MCE9KDEmdC5tb2RlKSxuKXtjYXNlImRpYWxvZyI6cygiY2FuY2VsIixyKSxzKCJjbG9zZSIscik7YnJlYWs7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpzKCJsb2FkIixyKTticmVhaztjYXNlInZpZGVvIjpjYXNlImF1ZGlvIjpmb3IoYT0wO2E8WHIubGVuZ3RoO2ErKylzKFhyW2FdLHIpO2JyZWFrO2Nhc2Uic291cmNlIjpzKCJlcnJvciIscik7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6cygiZXJyb3IiLHIpLHMoImxvYWQiLHIpO2JyZWFrO2Nhc2UiZGV0YWlscyI6cygidG9nZ2xlIixyKTticmVhaztjYXNlImlucHV0IjpPZShyLGMpLHMoImludmFsaWQiLHIpO2JyZWFrO2Nhc2Uic2VsZWN0IjpyLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhYy5tdWx0aXBsZX0scygiaW52YWxpZCIscik7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6TGUocixjKSxzKCJpbnZhbGlkIixyKX1mb3IoaSBpbiBaZShuLGMpLGE9bnVsbCxjKWMuaGFzT3duUHJvcGVydHkoaSkmJihsPWNbaV0sImNoaWxkcmVuIj09PWk/InN0cmluZyI9PXR5cGVvZiBsP3IudGV4dENvbnRlbnQhPT1sJiYoITAhPT1jLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmZm8oci50ZXh0Q29udGVudCxsLGUpLGE9WyJjaGlsZHJlbiIsbF0pOiJudW1iZXIiPT10eXBlb2YgbCYmci50ZXh0Q29udGVudCE9PSIiK2wmJighMCE9PWMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJiZmbyhyLnRleHRDb250ZW50LGwsZSksYT1bImNoaWxkcmVuIiwiIitsXSk6SC5oYXNPd25Qcm9wZXJ0eShpKSYmbnVsbCE9bCYmIm9uU2Nyb2xsIj09PWkmJnMoInNjcm9sbCIscikpO3N3aXRjaChuKXtjYXNlImlucHV0IjprZShyKSxQZShyLGMsITApO2JyZWFrO2Nhc2UidGV4dGFyZWEiOmtlKHIpLFJlKHIpO2JyZWFrO2Nhc2Uic2VsZWN0IjpjYXNlIm9wdGlvbiI6YnJlYWs7ZGVmYXVsdDoiZnVuY3Rpb24iPT10eXBlb2YgYy5vbkNsaWNrJiYoci5vbmNsaWNrPXBvKX1yPWEsbnVsbCE9PSh0LnVwZGF0ZVF1ZXVlPXIpJiYodC5mbGFnc3w9NCl9ZWxzZXtpPTk9PT1hLm5vZGVUeXBlP2E6YS5vd25lckRvY3VtZW50LCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PShlPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PWU/TmUobik6ZSk/InNjcmlwdCI9PT1uPygoZT1pLmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9IjxzY3JpcHQ+PFwvc2NyaXB0PiIsZT1lLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCkpOiJzdHJpbmciPT10eXBlb2Ygci5pcz9lPWkuY3JlYXRlRWxlbWVudChuLHtpczpyLmlzfSk6KGU9aS5jcmVhdGVFbGVtZW50KG4pLCJzZWxlY3QiPT09biYmKGk9ZSxyLm11bHRpcGxlP2kubXVsdGlwbGU9ITA6ci5zaXplJiYoaS5zaXplPXIuc2l6ZSkpKTplPWkuY3JlYXRlRWxlbWVudE5TKGUsbiksZVtFb109dCxlW09vXT1yLERsKGUsdCksdC5zdGF0ZU5vZGU9ZTtlOntzd2l0Y2goaT1YZShuLHIpLG4pe2Nhc2UiZGlhbG9nIjpzKCJjYW5jZWwiLGUpLHMoImNsb3NlIixlKSxhPXI7YnJlYWs7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpzKCJsb2FkIixlKSxhPXI7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKGE9MDthPFhyLmxlbmd0aDthKyspcyhYclthXSxlKTthPXI7YnJlYWs7Y2FzZSJzb3VyY2UiOnMoImVycm9yIixlKSxhPXI7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6cygiZXJyb3IiLGUpLHMoImxvYWQiLGUpLGE9cjticmVhaztjYXNlImRldGFpbHMiOnMoInRvZ2dsZSIsZSksYT1yO2JyZWFrO2Nhc2UiaW5wdXQiOk9lKGUsciksYT1FZShlLHIpLHMoImludmFsaWQiLGUpO2JyZWFrO2Nhc2Uib3B0aW9uIjphPXI7YnJlYWs7Y2FzZSJzZWxlY3QiOmUuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFyLm11bHRpcGxlfSxhPWcoe30scix7dmFsdWU6dm9pZCAwfSkscygiaW52YWxpZCIsZSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6TGUoZSxyKSxhPVRlKGUscikscygiaW52YWxpZCIsZSk7YnJlYWs7ZGVmYXVsdDphPXJ9Zm9yKGMgaW4gWmUobixhKSxsPWEpbC5oYXNPd25Qcm9wZXJ0eShjKSYmKG89bFtjXSwic3R5bGUiPT09Yz9HZShlLG8pOiJkYW5nZXJvdXNseVNldElubmVySFRNTCI9PT1jP251bGwhPShvPW8/by5fX2h0bWw6dm9pZCAwKSYmRmUoZSxvKToiY2hpbGRyZW4iPT09Yz8ic3RyaW5nIj09dHlwZW9mIG8/InRleHRhcmVhIj09PW4mJiIiPT09b3x8SGUoZSxvKToibnVtYmVyIj09dHlwZW9mIG8mJkhlKGUsIiIrbyk6InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1jJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PWMmJiJhdXRvRm9jdXMiIT09YyYmKEguaGFzT3duUHJvcGVydHkoYyk/bnVsbCE9byYmIm9uU2Nyb2xsIj09PWMmJnMoInNjcm9sbCIsZSk6bnVsbCE9byYmSyhlLGMsbyxpKSkpO3N3aXRjaChuKXtjYXNlImlucHV0IjprZShlKSxQZShlLHIsITEpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOmtlKGUpLFJlKGUpO2JyZWFrO2Nhc2Uib3B0aW9uIjpudWxsIT1yLnZhbHVlJiZlLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiK3dlKHIudmFsdWUpKTticmVhaztjYXNlInNlbGVjdCI6ZS5tdWx0aXBsZT0hIXIubXVsdGlwbGUsbnVsbCE9KGM9ci52YWx1ZSk/emUoZSwhIXIubXVsdGlwbGUsYywhMSk6bnVsbCE9ci5kZWZhdWx0VmFsdWUmJnplKGUsISFyLm11bHRpcGxlLHIuZGVmYXVsdFZhbHVlLCEwKTticmVhaztkZWZhdWx0OiJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQ2xpY2smJihlLm9uY2xpY2s9cG8pfXN3aXRjaChuKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOnI9ISFyLmF1dG9Gb2N1czticmVhayBlO2Nhc2UiaW1nIjpyPSEwO2JyZWFrIGU7ZGVmYXVsdDpyPSExfX1yJiYodC5mbGFnc3w9NCl9bnVsbCE9PXQucmVmJiYodC5mbGFnc3w9NTEyLHQuZmxhZ3N8PTIwOTcxNTIpfXJldHVybiBmKHQpLG51bGw7Y2FzZSA2OmlmKGUmJm51bGwhPXQuc3RhdGVOb2RlKUJsKDAsdCxlLm1lbW9pemVkUHJvcHMscik7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIHImJm51bGw9PT10LnN0YXRlTm9kZSl0aHJvdyBFcnJvcihEKDE2NikpO2lmKG49Y2kobGkuY3VycmVudCksY2koYWkuY3VycmVudCksYmEodCkpe2lmKHI9dC5zdGF0ZU5vZGUsbj10Lm1lbW9pemVkUHJvcHMscltFb109dCwoYz1yLm5vZGVWYWx1ZSE9PW4pJiZudWxsIT09KGU9c2EpKXN3aXRjaChlLnRhZyl7Y2FzZSAzOmZvKHIubm9kZVZhbHVlLG4sMCE9KDEmZS5tb2RlKSk7YnJlYWs7Y2FzZSA1OiEwIT09ZS5tZW1vaXplZFByb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmZm8oci5ub2RlVmFsdWUsbiwwIT0oMSZlLm1vZGUpKX1jJiYodC5mbGFnc3w9NCl9ZWxzZSgocj0oOT09PW4ubm9kZVR5cGU/bjpuLm93bmVyRG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKHIpKVtFb109dCkuc3RhdGVOb2RlPXJ9cmV0dXJuIGYodCksbnVsbDtjYXNlIDEzOmlmKHUoUykscj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYoVSYmbnVsbCE9PWsmJjAhPSgxJnQubW9kZSkmJjA9PSgxMjgmdC5mbGFncykpeWEoKSx2YSgpLHQuZmxhZ3N8PTk4NTYwLGM9ITE7ZWxzZSBpZihjPWJhKHQpLG51bGwhPT1yJiZudWxsIT09ci5kZWh5ZHJhdGVkKXtpZihudWxsPT09ZSl7aWYoIWMpdGhyb3cgRXJyb3IoRCgzMTgpKTtpZighKGM9bnVsbCE9PShjPXQubWVtb2l6ZWRTdGF0ZSk/Yy5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKEQoMzE3KSk7Y1tFb109dH1lbHNlIHZhKCksMD09KDEyOCZ0LmZsYWdzKSYmKHQubWVtb2l6ZWRTdGF0ZT1udWxsKSx0LmZsYWdzfD00O2YodCksYz0hMX1lbHNlIG51bGwhPT1mYSYmKE5jKGZhKSxmYT1udWxsKSxjPSEwO2lmKCFjKXJldHVybiA2NTUzNiZ0LmZsYWdzP3Q6bnVsbH1yZXR1cm4gMCE9KDEyOCZ0LmZsYWdzKT8odC5sYW5lcz1uLHQpOigocj1udWxsIT09cikhPT0obnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUpJiZyJiYodC5jaGlsZC5mbGFnc3w9ODE5MiwwIT0oMSZ0Lm1vZGUpKSYmKG51bGw9PT1lfHwwIT0oMSZTLmN1cnJlbnQpPzA9PT1MJiYoTD0zKTpHYygpKSxudWxsIT09dC51cGRhdGVRdWV1ZSYmKHQuZmxhZ3N8PTQpLGYodCksbnVsbCk7Y2FzZSA0OnJldHVybiBzaSgpLG51bGw9PT1lJiZ0byh0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxmKHQpLG51bGw7Y2FzZSAxMDpyZXR1cm4gQWEodC50eXBlLl9jb250ZXh0KSxmKHQpLG51bGw7Y2FzZSAxNzpyZXR1cm4gdyh0LnR5cGUpJiZGbygpLGYodCksbnVsbDtjYXNlIDE5OmlmKHUoUyksbnVsbD09PShjPXQubWVtb2l6ZWRTdGF0ZSkpO2Vsc2V7aWYocj0wIT0oMTI4JnQuZmxhZ3MpLG51bGw9PT0oaT1jLnJlbmRlcmluZykpaWYocilObChjLCExKTtlbHNle2lmKDAhPT1MfHxudWxsIT09ZSYmMCE9KDEyOCZlLmZsYWdzKSlmb3IoZT10LmNoaWxkO251bGwhPT1lOyl7aWYobnVsbCE9PShpPXBpKGUpKSl7Zm9yKHQuZmxhZ3N8PTEyOCxObChjLCExKSxudWxsIT09KHI9aS51cGRhdGVRdWV1ZSkmJih0LnVwZGF0ZVF1ZXVlPXIsdC5mbGFnc3w9NCksdC5zdWJ0cmVlRmxhZ3M9MCxyPW4sbj10LmNoaWxkO251bGwhPT1uOyllPXIsKGM9bikuZmxhZ3MmPTE0NjgwMDY2LG51bGw9PT0oaT1jLmFsdGVybmF0ZSk/KGMuY2hpbGRMYW5lcz0wLGMubGFuZXM9ZSxjLmNoaWxkPW51bGwsYy5zdWJ0cmVlRmxhZ3M9MCxjLm1lbW9pemVkUHJvcHM9bnVsbCxjLm1lbW9pemVkU3RhdGU9bnVsbCxjLnVwZGF0ZVF1ZXVlPW51bGwsYy5kZXBlbmRlbmNpZXM9bnVsbCxjLnN0YXRlTm9kZT1udWxsKTooYy5jaGlsZExhbmVzPWkuY2hpbGRMYW5lcyxjLmxhbmVzPWkubGFuZXMsYy5jaGlsZD1pLmNoaWxkLGMuc3VidHJlZUZsYWdzPTAsYy5kZWxldGlvbnM9bnVsbCxjLm1lbW9pemVkUHJvcHM9aS5tZW1vaXplZFByb3BzLGMubWVtb2l6ZWRTdGF0ZT1pLm1lbW9pemVkU3RhdGUsYy51cGRhdGVRdWV1ZT1pLnVwZGF0ZVF1ZXVlLGMudHlwZT1pLnR5cGUsZT1pLmRlcGVuZGVuY2llcyxjLmRlcGVuZGVuY2llcz1udWxsPT09ZT9udWxsOntsYW5lczplLmxhbmVzLGZpcnN0Q29udGV4dDplLmZpcnN0Q29udGV4dH0pLG49bi5zaWJsaW5nO3JldHVybiBiKFMsMSZTLmN1cnJlbnR8MiksdC5jaGlsZH1lPWUuc2libGluZ31udWxsIT09Yy50YWlsJiZoKCk+d2MmJih0LmZsYWdzfD0xMjgsTmwoYywhKHI9ITApKSx0LmxhbmVzPTQxOTQzMDQpfWVsc2V7aWYoIXIpaWYobnVsbCE9PShlPXBpKGkpKSl7aWYodC5mbGFnc3w9MTI4LHI9ITAsbnVsbCE9PShuPWUudXBkYXRlUXVldWUpJiYodC51cGRhdGVRdWV1ZT1uLHQuZmxhZ3N8PTQpLE5sKGMsITApLG51bGw9PT1jLnRhaWwmJiJoaWRkZW4iPT09Yy50YWlsTW9kZSYmIWkuYWx0ZXJuYXRlJiYhVSlyZXR1cm4gZih0KSxudWxsfWVsc2UgMipoKCktYy5yZW5kZXJpbmdTdGFydFRpbWU+d2MmJjEwNzM3NDE4MjQhPT1uJiYodC5mbGFnc3w9MTI4LE5sKGMsIShyPSEwKSksdC5sYW5lcz00MTk0MzA0KTtjLmlzQmFja3dhcmRzPyhpLnNpYmxpbmc9dC5jaGlsZCx0LmNoaWxkPWkpOihudWxsIT09KG49Yy5sYXN0KT9uLnNpYmxpbmc9aTp0LmNoaWxkPWksYy5sYXN0PWkpfWlmKG51bGwhPT1jLnRhaWwpcmV0dXJuIHQ9Yy50YWlsLGMucmVuZGVyaW5nPXQsYy50YWlsPXQuc2libGluZyxjLnJlbmRlcmluZ1N0YXJ0VGltZT1oKCksdC5zaWJsaW5nPW51bGwsbj1TLmN1cnJlbnQsYihTLHI/MSZufDI6MSZuKSx0fXJldHVybiBmKHQpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBIYygpLHI9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSxudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSE9PXImJih0LmZsYWdzfD04MTkyKSxyJiYwIT0oMSZ0Lm1vZGUpPzAhPSgxMDczNzQxODI0JmRjKSYmKGYodCksNiZ0LnN1YnRyZWVGbGFncykmJih0LmZsYWdzfD04MTkyKTpmKHQpLG51bGw7Y2FzZSAyNDpjYXNlIDI1OnJldHVybiBudWxsfXRocm93IEVycm9yKEQoMTU2LHQudGFnKSl9KG4sdCxkYykpKXJldHVybiB2b2lkKHo9bil9ZWxzZXtpZihudWxsIT09KG49ZnVuY3Rpb24oZSx0KXtzd2l0Y2godWEodCksdC50YWcpe2Nhc2UgMTpyZXR1cm4gdyh0LnR5cGUpJiZGbygpLDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMzpyZXR1cm4gc2koKSx1KHYpLHUoeSksaGkoKSwwIT0oNjU1MzYmKGU9dC5mbGFncykpJiYwPT0oMTI4JmUpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgNTpyZXR1cm4gZGkodCksbnVsbDtjYXNlIDEzOmlmKHUoUyksbnVsbCE9PShlPXQubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1lLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT10LmFsdGVybmF0ZSl0aHJvdyBFcnJvcihEKDM0MCkpO3ZhKCl9cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMTk6cmV0dXJuIHUoUyksbnVsbDtjYXNlIDQ6cmV0dXJuIHNpKCksbnVsbDtjYXNlIDEwOnJldHVybiBBYSh0LnR5cGUuX2NvbnRleHQpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBIYygpLG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KG4sdCkpKXJldHVybiBuLmZsYWdzJj0zMjc2Nyx2b2lkKHo9bik7aWYobnVsbD09PWUpcmV0dXJuIEw9Nix2b2lkKHo9bnVsbCk7ZS5mbGFnc3w9MzI3NjgsZS5zdWJ0cmVlRmxhZ3M9MCxlLmRlbGV0aW9ucz1udWxsfWlmKG51bGwhPT0odD10LnNpYmxpbmcpKXJldHVybiB2b2lkKHo9dCl9d2hpbGUoej10PWUsbnVsbCE9PXQpOzA9PT1MJiYoTD01KX1mdW5jdGlvbiBZYyhlLHQsbil7dmFyIHI9eCxvPWZjLnRyYW5zaXRpb247dHJ5e2ZjLnRyYW5zaXRpb249bnVsbCx4PTE7Zm9yKHZhciBhPWUsaT10LGw9bixjPXI7UWMoKSxudWxsIT09T2M7KTtpZigwIT0oNiZfKSl0aHJvdyBFcnJvcihEKDMyNykpO2w9YS5maW5pc2hlZFdvcms7dmFyIHU9YS5maW5pc2hlZExhbmVzO2lmKG51bGwhPT1sKXtpZihhLmZpbmlzaGVkV29yaz1udWxsLGEuZmluaXNoZWRMYW5lcz0wLGw9PT1hLmN1cnJlbnQpdGhyb3cgRXJyb3IoRCgxNzcpKTthLmNhbGxiYWNrTm9kZT1udWxsLGEuY2FsbGJhY2tQcmlvcml0eT0wO3ZhciBzLGYsZD1sLmxhbmVzfGwuY2hpbGRMYW5lcztpZighZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnBlbmRpbmdMYW5lcyZ+dCxyPShlLnBlbmRpbmdMYW5lcz10LGUuc3VzcGVuZGVkTGFuZXM9MCxlLnBpbmdlZExhbmVzPTAsZS5leHBpcmVkTGFuZXMmPXQsZS5tdXRhYmxlUmVhZExhbmVzJj10LGUuZW50YW5nbGVkTGFuZXMmPXQsdD1lLmVudGFuZ2xlbWVudHMsZS5ldmVudFRpbWVzKTtmb3IoZT1lLmV4cGlyYXRpb25UaW1lczswPG47KXt2YXIgbz0zMS16dChuKSxhPTE8PG87dFtvXT0wLHJbb109LTEsZVtvXT0tMSxuJj1+YX19KGEsZCksYT09PXAmJih6PXA9bnVsbCxUPTApLDA9PSgyMDY0Jmwuc3VidHJlZUZsYWdzKSYmMD09KDIwNjQmbC5mbGFncyl8fEVjfHwoRWM9ITAsZXUoanQsZnVuY3Rpb24oKXtyZXR1cm4gUWMoKSxudWxsfSkpLGQ9MCE9KDE1OTkwJmwuZmxhZ3MpLDAhPSgxNTk5MCZsLnN1YnRyZWVGbGFncyl8fGQ/KGQ9ZmMudHJhbnNpdGlvbixmYy50cmFuc2l0aW9uPW51bGwscz14LHg9MSxmPV8sX3w9NCxzYy5jdXJyZW50PW51bGwsZnVuY3Rpb24oZSx0KXtpZihtbz1nbixqcihlPU9yKCkpKXtpZigic2VsZWN0aW9uU3RhcnQiaW4gZSl2YXIgbj17c3RhcnQ6ZS5zZWxlY3Rpb25TdGFydCxlbmQ6ZS5zZWxlY3Rpb25FbmR9O2Vsc2UgZTppZigoYT0obj0obj1lLm93bmVyRG9jdW1lbnQpJiZuLmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmbi5nZXRTZWxlY3Rpb24oKSkmJjAhPT1hLnJhbmdlQ291bnQpe3ZhciBuPWEuYW5jaG9yTm9kZSxyPWEuYW5jaG9yT2Zmc2V0LG89YS5mb2N1c05vZGUsYT1hLmZvY3VzT2Zmc2V0O3RyeXtuLm5vZGVUeXBlLG8ubm9kZVR5cGV9Y2F0Y2goZSl7bj1udWxsO2JyZWFrIGV9dmFyIGksbD0wLGM9LTEsdT0tMSxzPTAsZj0wLGQ9ZSxwPW51bGw7dDpmb3IoOzspe2Zvcig7ZCE9PW58fDAhPT1yJiYzIT09ZC5ub2RlVHlwZXx8KGM9bCtyKSxkIT09b3x8MCE9PWEmJjMhPT1kLm5vZGVUeXBlfHwodT1sK2EpLDM9PT1kLm5vZGVUeXBlJiYobCs9ZC5ub2RlVmFsdWUubGVuZ3RoKSxudWxsIT09KGk9ZC5maXJzdENoaWxkKTspcD1kLGQ9aTtmb3IoOzspe2lmKGQ9PT1lKWJyZWFrIHQ7aWYocD09PW4mJisrcz09PXImJihjPWwpLHA9PT1vJiYrK2Y9PT1hJiYodT1sKSxudWxsIT09KGk9ZC5uZXh0U2libGluZykpYnJlYWs7cD0oZD1wKS5wYXJlbnROb2RlfWQ9aX1uPS0xPT09Y3x8LTE9PT11P251bGw6e3N0YXJ0OmMsZW5kOnV9fWVsc2Ugbj1udWxsO249bnx8e3N0YXJ0OjAsZW5kOjB9fWVsc2Ugbj1udWxsO2Zvcihnbj0hKGhvPXtmb2N1c2VkRWxlbTplLHNlbGVjdGlvblJhbmdlOm59KSxJPXQ7bnVsbCE9PUk7KWlmKGU9KHQ9SSkuY2hpbGQsMCE9KDEwMjgmdC5zdWJ0cmVlRmxhZ3MpJiZudWxsIT09ZSllLnJldHVybj10LEk9ZTtlbHNlIGZvcig7bnVsbCE9PUk7KXt0PUk7dHJ5e3ZhciBtLGgsZyxiLHk9dC5hbHRlcm5hdGU7aWYoMCE9KDEwMjQmdC5mbGFncykpc3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmJyZWFrO2Nhc2UgMTpudWxsIT09eSYmKG09eS5tZW1vaXplZFByb3BzLGg9eS5tZW1vaXplZFN0YXRlLGI9KGc9dC5zdGF0ZU5vZGUpLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKHQuZWxlbWVudFR5cGU9PT10LnR5cGU/bTprYSh0LnR5cGUsbSksaCksZy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1iKTticmVhaztjYXNlIDM6dmFyIHY9dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzsxPT09di5ub2RlVHlwZT92LnRleHRDb250ZW50PSIiOjk9PT12Lm5vZGVUeXBlJiZ2LmRvY3VtZW50RWxlbWVudCYmdi5yZW1vdmVDaGlsZCh2LmRvY3VtZW50RWxlbWVudCk7YnJlYWs7Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztkZWZhdWx0OnRocm93IEVycm9yKEQoMTYzKSl9fWNhdGNoKGUpe00odCx0LnJldHVybixlKX1pZihudWxsIT09KGU9dC5zaWJsaW5nKSl7ZS5yZXR1cm49dC5yZXR1cm4sST1lO2JyZWFrfUk9dC5yZXR1cm59eT1XbCxXbD0hMX0oYSxsKSxuYyhsLGEpLEFyKGhvKSxnbj0hIW1vLGhvPW1vPW51bGwsb2MoYS5jdXJyZW50PWwsYSx1KSxTdCgpLF89Zix4PXMsZmMudHJhbnNpdGlvbj1kKTphLmN1cnJlbnQ9bCxFYyYmKEVjPSExLE9jPWEsamM9dSksMD09PShkPWEucGVuZGluZ0xhbmVzKSYmKENjPW51bGwpLCFmdW5jdGlvbihlKXtpZihfdCYmImZ1bmN0aW9uIj09dHlwZW9mIF90Lm9uQ29tbWl0RmliZXJSb290KXRyeXtfdC5vbkNvbW1pdEZpYmVyUm9vdChJdCxlLHZvaWQgMCwxMjg9PSgxMjgmZS5jdXJyZW50LmZsYWdzKSl9Y2F0Y2goZSl7fX0obC5zdGF0ZU5vZGUpLExjKGEsaCgpKSxudWxsIT09aSlmb3IoYz1hLm9uUmVjb3ZlcmFibGVFcnJvcixsPTA7bDxpLmxlbmd0aDtsKyspdT1pW2xdLGModS52YWx1ZSx7Y29tcG9uZW50U3RhY2s6dS5zdGFjayxkaWdlc3Q6dS5kaWdlc3R9KTtpZihrYyl0aHJvdyBrYz0hMSxhPVNjLFNjPW51bGwsYTswIT0oMSZqYykmJjAhPT1hLnRhZyYmUWMoKSwwIT0oMSYoZD1hLnBlbmRpbmdMYW5lcykpP2E9PT1QYz9BYysrOihBYz0wLFBjPWEpOkFjPTAsWW8oKX19ZmluYWxseXtmYy50cmFuc2l0aW9uPW8seD1yfXJldHVybiBudWxsfWZ1bmN0aW9uIFFjKCl7aWYobnVsbCE9PU9jKXt2YXIgZT1XdChqYyksdD1mYy50cmFuc2l0aW9uLG49eDt0cnl7aWYoZmMudHJhbnNpdGlvbj1udWxsLHg9ZTwxNj8xNjplLG51bGw9PT1PYyl2YXIgcj0hMTtlbHNle2lmKGU9T2MsT2M9bnVsbCwoamM9MCkhPSg2Jl8pKXRocm93IEVycm9yKEQoMzMxKSk7dmFyIG89Xztmb3IoX3w9NCxJPWUuY3VycmVudDtudWxsIT09STspe3ZhciBhPUksaT1hLmNoaWxkO2lmKDAhPSgxNiZJLmZsYWdzKSl7dmFyIGw9YS5kZWxldGlvbnM7aWYobnVsbCE9PWwpe2Zvcih2YXIgYz0wO2M8bC5sZW5ndGg7YysrKXt2YXIgdT1sW2NdO2ZvcihJPXU7bnVsbCE9PUk7KXtzd2l0Y2goKGY9SSkudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OkdsKDgsZixhKX12YXIgcz1mLmNoaWxkO2lmKG51bGwhPT1zKXMucmV0dXJuPWYsST1zO2Vsc2UgZm9yKDtudWxsIT09STspe3ZhciBmLGQ9KGY9SSkuc2libGluZyxwPWYucmV0dXJuO2lmKCFmdW5jdGlvbiBlKHQpe3ZhciBuPXQuYWx0ZXJuYXRlO251bGwhPT1uJiYodC5hbHRlcm5hdGU9bnVsbCxlKG4pKSx0LmNoaWxkPW51bGwsdC5kZWxldGlvbnM9bnVsbCx0LnNpYmxpbmc9bnVsbCw1PT09dC50YWcmJm51bGwhPT0obj10LnN0YXRlTm9kZSkmJihkZWxldGUgbltFb10sZGVsZXRlIG5bT29dLGRlbGV0ZSBuW0FvXSxkZWxldGUgbltQb10sZGVsZXRlIG5bSW9dKSx0LnN0YXRlTm9kZT1udWxsLHQucmV0dXJuPW51bGwsdC5kZXBlbmRlbmNpZXM9bnVsbCx0Lm1lbW9pemVkUHJvcHM9bnVsbCx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnBlbmRpbmdQcm9wcz1udWxsLHQuc3RhdGVOb2RlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsfShmKSxmPT09dSl7ST1udWxsO2JyZWFrfWlmKG51bGwhPT1kKXtkLnJldHVybj1wLEk9ZDticmVha31JPXB9fX12YXIgbT1hLmFsdGVybmF0ZTtpZihudWxsIT09bSl7dmFyIGg9bS5jaGlsZDtpZihudWxsIT09aCl7bS5jaGlsZD1udWxsO2Rve3ZhciBnPWguc2libGluZ313aGlsZSgoaC5zaWJsaW5nPW51bGwpIT09KGg9ZykpfX1JPWF9fWlmKDAhPSgyMDY0JmEuc3VidHJlZUZsYWdzKSYmbnVsbCE9PWkpaS5yZXR1cm49YSxJPWk7ZWxzZSBmb3IoO251bGwhPT1JOyl7aWYoMCE9KDIwNDgmKGE9SSkuZmxhZ3MpKXN3aXRjaChhLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpHbCg5LGEsYS5yZXR1cm4pfXZhciBiPWEuc2libGluZztpZihudWxsIT09Yil7Yi5yZXR1cm49YS5yZXR1cm4sST1iO2JyZWFrfUk9YS5yZXR1cm59fXZhciB5PWUuY3VycmVudDtmb3IoST15O251bGwhPT1JOyl7dmFyIHY9KGk9SSkuY2hpbGQ7aWYoMCE9KDIwNjQmaS5zdWJ0cmVlRmxhZ3MpJiZudWxsIT09dil2LnJldHVybj1pLEk9djtlbHNlIGZvcihpPXk7bnVsbCE9PUk7KXtpZigwIT0oMjA0OCYobD1JKS5mbGFncykpdHJ5e3N3aXRjaChsLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpxbCg5LGwpfX1jYXRjaChlKXtNKGwsbC5yZXR1cm4sZSl9aWYobD09PWkpe0k9bnVsbDticmVha312YXIgdz1sLnNpYmxpbmc7aWYobnVsbCE9PXcpe3cucmV0dXJuPWwucmV0dXJuLEk9dzticmVha31JPWwucmV0dXJufX1pZihfPW8sWW8oKSxfdCYmImZ1bmN0aW9uIj09dHlwZW9mIF90Lm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7X3Qub25Qb3N0Q29tbWl0RmliZXJSb290KEl0LGUpfWNhdGNoKGUpe31yPSEwfXJldHVybiByfWZpbmFsbHl7eD1uLGZjLnRyYW5zaXRpb249dH19fWZ1bmN0aW9uIEtjKGUsdCxuKXtlPUJhKGUsdD1mbCgwLHQ9bGwobix0KSwxKSwxKSx0PW0oKSxudWxsIT09ZSYmKFZ0KGUsMSx0KSxMYyhlLHQpKX1mdW5jdGlvbiBNKGUsdCxuKXtpZigzPT09ZS50YWcpS2MoZSxlLG4pO2Vsc2UgZm9yKDtudWxsIT09dDspe2lmKDM9PT10LnRhZyl7S2ModCxlLG4pO2JyZWFrfWlmKDE9PT10LnRhZyl7dmFyIHI9dC5zdGF0ZU5vZGU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fCJmdW5jdGlvbiI9PXR5cGVvZiByLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PUNjfHwhQ2MuaGFzKHIpKSl7dD1CYSh0LGU9ZGwodCxlPWxsKG4sZSksMSksMSksZT1tKCksbnVsbCE9PXQmJihWdCh0LDEsZSksTGModCxlKSk7YnJlYWt9fXQ9dC5yZXR1cm59fWZ1bmN0aW9uIEpjKGUsdCl7MD09PXQmJigwPT0oMSZlLm1vZGUpP3Q9MToodD1SdCwwPT0oMTMwMDIzNDI0JihSdDw8PTEpKSYmKFJ0PTQxOTQzMDQpKSk7dmFyIG49bSgpO251bGwhPT0oZT1NYShlLHQpKSYmKFZ0KGUsdCxuKSxMYyhlLG4pKX1mdW5jdGlvbiBldShlLHQpe3JldHVybiB3dChlLHQpfWZ1bmN0aW9uIHR1KGUsdCxuLHIpe3RoaXMudGFnPWUsdGhpcy5rZXk9bix0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsLHRoaXMuaW5kZXg9MCx0aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPXQsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPXIsdGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wLHRoaXMuZGVsZXRpb25zPW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIG51KGUsdCxuLHIpe3JldHVybiBuZXcgdHUoZSx0LG4scil9ZnVuY3Rpb24gcnUoZSl7cmV0dXJuKGU9ZS5wcm90b3R5cGUpJiZlLmlzUmVhY3RDb21wb25lbnR9ZnVuY3Rpb24gb3UoZSx0KXt2YXIgbj1lLmFsdGVybmF0ZTtyZXR1cm4gbnVsbD09PW4/KChuPW51KGUudGFnLHQsZS5rZXksZS5tb2RlKSkuZWxlbWVudFR5cGU9ZS5lbGVtZW50VHlwZSxuLnR5cGU9ZS50eXBlLG4uc3RhdGVOb2RlPWUuc3RhdGVOb2RlLChuLmFsdGVybmF0ZT1lKS5hbHRlcm5hdGU9bik6KG4ucGVuZGluZ1Byb3BzPXQsbi50eXBlPWUudHlwZSxuLmZsYWdzPTAsbi5zdWJ0cmVlRmxhZ3M9MCxuLmRlbGV0aW9ucz1udWxsKSxuLmZsYWdzPTE0NjgwMDY0JmUuZmxhZ3Msbi5jaGlsZExhbmVzPWUuY2hpbGRMYW5lcyxuLmxhbmVzPWUubGFuZXMsbi5jaGlsZD1lLmNoaWxkLG4ubWVtb2l6ZWRQcm9wcz1lLm1lbW9pemVkUHJvcHMsbi5tZW1vaXplZFN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxuLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdD1lLmRlcGVuZGVuY2llcyxuLmRlcGVuZGVuY2llcz1udWxsPT09dD9udWxsOntsYW5lczp0LmxhbmVzLGZpcnN0Q29udGV4dDp0LmZpcnN0Q29udGV4dH0sbi5zaWJsaW5nPWUuc2libGluZyxuLmluZGV4PWUuaW5kZXgsbi5yZWY9ZS5yZWYsbn1mdW5jdGlvbiBhdShlLHQsbixyLG8sYSl7dmFyIGk9MjtpZigiZnVuY3Rpb24iPT10eXBlb2Yocj1lKSlydShlKSYmKGk9MSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpaT01O2Vsc2UgZTpzd2l0Y2goZSl7Y2FzZSBuZTpyZXR1cm4gaXUobi5jaGlsZHJlbixvLGEsdCk7Y2FzZSByZTpvfD1pPTg7YnJlYWs7Y2FzZSBvZTpyZXR1cm4oZT1udSgxMixuLHQsMnxvKSkuZWxlbWVudFR5cGU9b2UsZS5sYW5lcz1hLGU7Y2FzZSBjZTpyZXR1cm4oZT1udSgxMyxuLHQsbykpLmVsZW1lbnRUeXBlPWNlLGUubGFuZXM9YSxlO2Nhc2UgdWU6cmV0dXJuKGU9bnUoMTksbix0LG8pKS5lbGVtZW50VHlwZT11ZSxlLmxhbmVzPWEsZTtjYXNlIGRlOnJldHVybiBsdShuLG8sYSx0KTtkZWZhdWx0OmlmKCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUpc3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgYWU6aT0xMDticmVhayBlO2Nhc2UgaWU6aT05O2JyZWFrIGU7Y2FzZSBsZTppPTExO2JyZWFrIGU7Y2FzZSBzZTppPTE0O2JyZWFrIGU7Y2FzZSBmZTppPTE2LHI9bnVsbDticmVhayBlfXRocm93IEVycm9yKEQoMTMwLG51bGw9PWU/ZTp0eXBlb2YgZSwiIikpfXJldHVybih0PW51KGksbix0LG8pKS5lbGVtZW50VHlwZT1lLHQudHlwZT1yLHQubGFuZXM9YSx0fWZ1bmN0aW9uIGl1KGUsdCxuLHIpe3JldHVybihlPW51KDcsZSxyLHQpKS5sYW5lcz1uLGV9ZnVuY3Rpb24gbHUoZSx0LG4scil7cmV0dXJuKGU9bnUoMjIsZSxyLHQpKS5lbGVtZW50VHlwZT1kZSxlLmxhbmVzPW4sZS5zdGF0ZU5vZGU9e2lzSGlkZGVuOiExfSxlfWZ1bmN0aW9uIGN1KGUsdCxuKXtyZXR1cm4oZT1udSg2LGUsbnVsbCx0KSkubGFuZXM9bixlfWZ1bmN0aW9uIHV1KGUsdCxuKXtyZXR1cm4odD1udSg0LG51bGwhPT1lLmNoaWxkcmVuP2UuY2hpbGRyZW46W10sZS5rZXksdCkpLmxhbmVzPW4sdC5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86ZS5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOmUuaW1wbGVtZW50YXRpb259LHR9ZnVuY3Rpb24gc3UoZSx0LG4scixvKXt0aGlzLnRhZz10LHRoaXMuY29udGFpbmVySW5mbz1lLHRoaXMuZmluaXNoZWRXb3JrPXRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLmNhbGxiYWNrTm9kZT10aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsLHRoaXMuY2FsbGJhY2tQcmlvcml0eT0wLHRoaXMuZXZlbnRUaW1lcz1IdCgwKSx0aGlzLmV4cGlyYXRpb25UaW1lcz1IdCgtMSksdGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLmZpbmlzaGVkTGFuZXM9dGhpcy5tdXRhYmxlUmVhZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wLHRoaXMuZW50YW5nbGVtZW50cz1IdCgwKSx0aGlzLmlkZW50aWZpZXJQcmVmaXg9cix0aGlzLm9uUmVjb3ZlcmFibGVFcnJvcj1vLHRoaXMubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1udWxsfWZ1bmN0aW9uIGZ1KGUsdCxuLHIsbyxhLGksbCxjKXtyZXR1cm4gZT1uZXcgc3UoZSx0LDAsbCxjKSwxPT09dD8odD0xLCEwPT09YSYmKHR8PTgpKTp0PTAsYT1udSgzLG51bGwsbnVsbCx0KSwoZS5jdXJyZW50PWEpLnN0YXRlTm9kZT1lLGEubWVtb2l6ZWRTdGF0ZT17ZWxlbWVudDpyLGlzRGVoeWRyYXRlZDpuLGNhY2hlOm51bGwsdHJhbnNpdGlvbnM6bnVsbCxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOm51bGx9LE5hKGEpLGV9ZnVuY3Rpb24gZHUoZSl7aWYoIWUpcmV0dXJuIERvO2U6e2lmKGd0KGU9ZS5fcmVhY3RJbnRlcm5hbHMpIT09ZXx8MSE9PWUudGFnKXRocm93IEVycm9yKEQoMTcwKSk7dmFyIHQ9ZTtkb3tzd2l0Y2godC50YWcpe2Nhc2UgMzp0PXQuc3RhdGVOb2RlLmNvbnRleHQ7YnJlYWsgZTtjYXNlIDE6aWYodyh0LnR5cGUpKXt0PXQuc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O2JyZWFrIGV9fX13aGlsZShudWxsIT09KHQ9dC5yZXR1cm4pKTt0aHJvdyBFcnJvcihEKDE3MSkpfWlmKDE9PT1lLnRhZyl7dmFyIG49ZS50eXBlO2lmKHcobikpcmV0dXJuIFZvKGUsbix0KX1yZXR1cm4gdH1mdW5jdGlvbiBwdShlLHQsbixyLG8sYSxpLGwsYyl7cmV0dXJuKGU9ZnUobixyLCEwLGUsMCxhLDAsbCxjKSkuY29udGV4dD1kdShudWxsKSxuPWUuY3VycmVudCwoYT1VYShyPW0oKSxvPXpjKG4pKSkuY2FsbGJhY2s9bnVsbCE9dD90Om51bGwsQmEobixhLG8pLGUuY3VycmVudC5sYW5lcz1vLFZ0KGUsbyxyKSxMYyhlLHIpLGV9ZnVuY3Rpb24gbXUoZSx0LG4scil7dmFyIG89dC5jdXJyZW50LGE9bSgpLGk9emMobyk7bj1kdShuKSxudWxsPT09dC5jb250ZXh0P3QuY29udGV4dD1uOnQucGVuZGluZ0NvbnRleHQ9biwodD1VYShhLGkpKS5wYXlsb2FkPXtlbGVtZW50OmV9LG51bGwhPT0ocj12b2lkIDA9PT1yP251bGw6cikmJih0LmNhbGxiYWNrPXIpLG51bGwhPT0oZT1CYShvLHQsaSkpJiYoVGMoZSxvLGksYSksRmEoZSxvLGkpKX1mdW5jdGlvbiBodShlKXtyZXR1cm4oZT1lLmN1cnJlbnQpLmNoaWxkPyhlLmNoaWxkLnRhZyxlLmNoaWxkLnN0YXRlTm9kZSk6bnVsbH1mdW5jdGlvbiBndShlLHQpe3ZhciBuO251bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpJiZudWxsIT09ZS5kZWh5ZHJhdGVkJiYobj1lLnJldHJ5TGFuZSxlLnJldHJ5TGFuZT0wIT09biYmbjx0P246dCl9ZnVuY3Rpb24gYnUoZSx0KXtndShlLHQpLChlPWUuYWx0ZXJuYXRlKSYmZ3UoZSx0KX12YXIgeXU9ZnVuY3Rpb24oZSx0LG4pe2lmKG51bGwhPT1lKWlmKGUubWVtb2l6ZWRQcm9wcyE9PXQucGVuZGluZ1Byb3BzfHx2LmN1cnJlbnQpaj0hMDtlbHNle2lmKDA9PShlLmxhbmVzJm4pJiYwPT0oMTI4JnQuZmxhZ3MpKXtqPSExO3t2YXIgcj1lO3ZhciBvPXQ7dmFyIGE9bjtzd2l0Y2goby50YWcpe2Nhc2UgMzpFbChvKSx2YSgpO2JyZWFrO2Nhc2UgNTpmaShvKTticmVhaztjYXNlIDE6dyhvLnR5cGUpJiYkbyhvKTticmVhaztjYXNlIDQ6dWkobyxvLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnZhciBpPW8udHlwZS5fY29udGV4dCxsPW8ubWVtb2l6ZWRQcm9wcy52YWx1ZTtiKFNhLGkuX2N1cnJlbnRWYWx1ZSksaS5fY3VycmVudFZhbHVlPWw7YnJlYWs7Y2FzZSAxMzppZihudWxsIT09KGk9by5tZW1vaXplZFN0YXRlKSlyZXR1cm4gbnVsbCE9PWkuZGVoeWRyYXRlZD8oYihTLDEmUy5jdXJyZW50KSxvLmZsYWdzfD0xMjgsbnVsbCk6MCE9KGEmby5jaGlsZC5jaGlsZExhbmVzKT9QbChyLG8sYSk6KGIoUywxJlMuY3VycmVudCksbnVsbCE9PShyPVJsKHIsbyxhKSk/ci5zaWJsaW5nOm51bGwpO2IoUywxJlMuY3VycmVudCk7YnJlYWs7Y2FzZSAxOTppZihpPTAhPShhJm8uY2hpbGRMYW5lcyksMCE9KDEyOCZyLmZsYWdzKSl7aWYoaSlyZXR1cm4gTGwocixvLGEpO28uZmxhZ3N8PTEyOH1pZihudWxsIT09KGw9by5tZW1vaXplZFN0YXRlKSYmKGwucmVuZGVyaW5nPW51bGwsbC50YWlsPW51bGwsbC5sYXN0RWZmZWN0PW51bGwpLGIoUyxTLmN1cnJlbnQpLGkpYnJlYWs7cmV0dXJuIG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvLmxhbmVzPTAsd2wocixvLGEpfXJldHVybiBSbChyLG8sYSk7cmV0dXJufX1qPTAhPSgxMzEwNzImZS5mbGFncyl9ZWxzZSBqPSExLFUmJjAhPSgxMDQ4NTc2JnQuZmxhZ3MpJiZsYSh0LGVhLHQuaW5kZXgpO3N3aXRjaCh0LmxhbmVzPTAsdC50YWcpe2Nhc2UgMjp2YXIgYz10LnR5cGUsdT0oTWwoZSx0KSxlPXQucGVuZGluZ1Byb3BzLEJvKHQseS5jdXJyZW50KSkscz0oSWEodCxuKSx1PUNpKG51bGwsdCxjLGUsdSxuKSxFaSgpKTtyZXR1cm4gdC5mbGFnc3w9MSx0PSJvYmplY3QiPT10eXBlb2YgdSYmbnVsbCE9PXUmJiJmdW5jdGlvbiI9PXR5cGVvZiB1LnJlbmRlciYmdm9pZCAwPT09dS4kJHR5cGVvZj8odC50YWc9MSx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnVwZGF0ZVF1ZXVlPW51bGwsdyhjKT8ocz0hMCwkbyh0KSk6cz0hMSx0Lm1lbW9pemVkU3RhdGU9bnVsbCE9PXUuc3RhdGUmJnZvaWQgMCE9PXUuc3RhdGU/dS5zdGF0ZTpudWxsLE5hKHQpLHUudXBkYXRlcj1xYSxRYSgodC5zdGF0ZU5vZGU9dSkuX3JlYWN0SW50ZXJuYWxzPXQsYyxlLG4pLENsKG51bGwsdCxjLCEwLHMsbikpOih0LnRhZz0wLFUmJnMmJmNhKHQpLEEobnVsbCx0LHUsbiksdC5jaGlsZCk7Y2FzZSAxNjpjPXQuZWxlbWVudFR5cGU7ZTp7c3dpdGNoKE1sKGUsdCksZT10LnBlbmRpbmdQcm9wcyxjPSh1PWMuX2luaXQpKGMuX3BheWxvYWQpLHQudHlwZT1jLHU9dC50YWc9ZnVuY3Rpb24oZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpcmV0dXJuIHJ1KGUpPzE6MDtpZihudWxsIT1lKXtpZigoZT1lLiQkdHlwZW9mKT09PWxlKXJldHVybiAxMTtpZihlPT09c2UpcmV0dXJuIDE0fXJldHVybiAyfShjKSxlPWthKGMsZSksdSl7Y2FzZSAwOnQ9a2wobnVsbCx0LGMsZSxuKTticmVhayBlO2Nhc2UgMTp0PVNsKG51bGwsdCxjLGUsbik7YnJlYWsgZTtjYXNlIDExOnQ9YmwobnVsbCx0LGMsZSxuKTticmVhayBlO2Nhc2UgMTQ6dD15bChudWxsLHQsYyxrYShjLnR5cGUsZSksbik7YnJlYWsgZX10aHJvdyBFcnJvcihEKDMwNixjLCIiKSl9cmV0dXJuIHQ7Y2FzZSAwOnJldHVybiBjPXQudHlwZSx1PXQucGVuZGluZ1Byb3BzLGtsKGUsdCxjLHU9dC5lbGVtZW50VHlwZT09PWM/dTprYShjLHUpLG4pO2Nhc2UgMTpyZXR1cm4gYz10LnR5cGUsdT10LnBlbmRpbmdQcm9wcyxTbChlLHQsYyx1PXQuZWxlbWVudFR5cGU9PT1jP3U6a2EoYyx1KSxuKTtjYXNlIDM6ZTp7aWYoRWwodCksbnVsbD09PWUpdGhyb3cgRXJyb3IoRCgzODcpKTtjPXQucGVuZGluZ1Byb3BzLHU9KHM9dC5tZW1vaXplZFN0YXRlKS5lbGVtZW50LERhKGUsdCksVmEodCxjLG51bGwsbik7dmFyIGY9dC5tZW1vaXplZFN0YXRlLGM9Zi5lbGVtZW50O2lmKHMuaXNEZWh5ZHJhdGVkKXtpZihzPXtlbGVtZW50OmMsaXNEZWh5ZHJhdGVkOiExLGNhY2hlOmYuY2FjaGUscGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczpmLnBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXMsdHJhbnNpdGlvbnM6Zi50cmFuc2l0aW9uc30sdC51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9cyx0Lm1lbW9pemVkU3RhdGU9cywyNTYmdC5mbGFncyl7dD1PbChlLHQsYyxuLHU9bGwoRXJyb3IoRCg0MjMpKSx0KSk7YnJlYWsgZX1pZihjIT09dSl7dD1PbChlLHQsYyxuLHU9bGwoRXJyb3IoRCg0MjQpKSx0KSk7YnJlYWsgZX1mb3Ioaz1Tbyh0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvLmZpcnN0Q2hpbGQpLFU9ITAsbj1yaShzYT10LGZhPW51bGwsYyxuKSx0LmNoaWxkPW47bjspbi5mbGFncz0tMyZuLmZsYWdzfDQwOTYsbj1uLnNpYmxpbmd9ZWxzZXtpZih2YSgpLGM9PT11KXt0PVJsKGUsdCxuKTticmVhayBlfUEoZSx0LGMsbil9dD10LmNoaWxkfXJldHVybiB0O2Nhc2UgNTpyZXR1cm4gZmkodCksbnVsbD09PWUmJmhhKHQpLGM9dC50eXBlLHU9dC5wZW5kaW5nUHJvcHMscz1udWxsIT09ZT9lLm1lbW9pemVkUHJvcHM6bnVsbCxmPXUuY2hpbGRyZW4sZ28oYyx1KT9mPW51bGw6bnVsbCE9PXMmJmdvKGMscykmJih0LmZsYWdzfD0zMikseGwoZSx0KSxBKGUsdCxmLG4pLHQuY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09ZSYmaGEodCksbnVsbDtjYXNlIDEzOnJldHVybiBQbChlLHQsbik7Y2FzZSA0OnJldHVybiB1aSh0LHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLGM9dC5wZW5kaW5nUHJvcHMsbnVsbD09PWU/dC5jaGlsZD1uaSh0LG51bGwsYyxuKTpBKGUsdCxjLG4pLHQuY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gYz10LnR5cGUsdT10LnBlbmRpbmdQcm9wcyxibChlLHQsYyx1PXQuZWxlbWVudFR5cGU9PT1jP3U6a2EoYyx1KSxuKTtjYXNlIDc6cmV0dXJuIEEoZSx0LHQucGVuZGluZ1Byb3BzLG4pLHQuY2hpbGQ7Y2FzZSA4OmNhc2UgMTI6cmV0dXJuIEEoZSx0LHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLG4pLHQuY2hpbGQ7Y2FzZSAxMDplOntpZihjPXQudHlwZS5fY29udGV4dCx1PXQucGVuZGluZ1Byb3BzLHM9dC5tZW1vaXplZFByb3BzLGY9dS52YWx1ZSxiKFNhLGMuX2N1cnJlbnRWYWx1ZSksYy5fY3VycmVudFZhbHVlPWYsbnVsbCE9PXMpaWYoa3Iocy52YWx1ZSxmKSl7aWYocy5jaGlsZHJlbj09PXUuY2hpbGRyZW4mJiF2LmN1cnJlbnQpe3Q9UmwoZSx0LG4pO2JyZWFrIGV9fWVsc2UgZm9yKG51bGwhPT0ocz10LmNoaWxkKSYmKHMucmV0dXJuPXQpO251bGwhPT1zOyl7dmFyIGQ9cy5kZXBlbmRlbmNpZXM7aWYobnVsbCE9PWQpZm9yKHZhciBwLG0sZj1zLmNoaWxkLGg9ZC5maXJzdENvbnRleHQ7bnVsbCE9PWg7KXtpZihoLmNvbnRleHQ9PT1jKXsxPT09cy50YWcmJigoaD1VYSgtMSxuJi1uKSkudGFnPTIsbnVsbCE9PShwPXMudXBkYXRlUXVldWUpKSYmKG51bGw9PT0obT0ocD1wLnNoYXJlZCkucGVuZGluZyk/aC5uZXh0PWg6KGgubmV4dD1tLm5leHQsbS5uZXh0PWgpLHAucGVuZGluZz1oKSxzLmxhbmVzfD1uLG51bGwhPT0oaD1zLmFsdGVybmF0ZSkmJihoLmxhbmVzfD1uKSxQYShzLnJldHVybixuLHQpLGQubGFuZXN8PW47YnJlYWt9aD1oLm5leHR9ZWxzZSBpZigxMD09PXMudGFnKWY9cy50eXBlPT09dC50eXBlP251bGw6cy5jaGlsZDtlbHNlIGlmKDE4PT09cy50YWcpe2lmKG51bGw9PT0oZj1zLnJldHVybikpdGhyb3cgRXJyb3IoRCgzNDEpKTtmLmxhbmVzfD1uLG51bGwhPT0oZD1mLmFsdGVybmF0ZSkmJihkLmxhbmVzfD1uKSxQYShmLG4sdCksZj1zLnNpYmxpbmd9ZWxzZSBmPXMuY2hpbGQ7aWYobnVsbCE9PWYpZi5yZXR1cm49cztlbHNlIGZvcihmPXM7bnVsbCE9PWY7KXtpZihmPT09dCl7Zj1udWxsO2JyZWFrfWlmKG51bGwhPT0ocz1mLnNpYmxpbmcpKXtzLnJldHVybj1mLnJldHVybixmPXM7YnJlYWt9Zj1mLnJldHVybn1zPWZ9QShlLHQsdS5jaGlsZHJlbixuKSx0PXQuY2hpbGR9cmV0dXJuIHQ7Y2FzZSA5OnJldHVybiB1PXQudHlwZSxjPXQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLElhKHQsbiksYz1jKHU9X2EodSkpLHQuZmxhZ3N8PTEsQShlLHQsYyxuKSx0LmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIHU9a2EoYz10LnR5cGUsdC5wZW5kaW5nUHJvcHMpLHlsKGUsdCxjLHU9a2EoYy50eXBlLHUpLG4pO2Nhc2UgMTU6cmV0dXJuIHZsKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsbik7Y2FzZSAxNzpyZXR1cm4gYz10LnR5cGUsdT10LnBlbmRpbmdQcm9wcyx1PXQuZWxlbWVudFR5cGU9PT1jP3U6a2EoYyx1KSxNbChlLHQpLHQudGFnPTEsdyhjKT8oZT0hMCwkbyh0KSk6ZT0hMSxJYSh0LG4pLFhhKHQsYyx1KSxRYSh0LGMsdSxuKSxDbChudWxsLHQsYywhMCxlLG4pO2Nhc2UgMTk6cmV0dXJuIExsKGUsdCxuKTtjYXNlIDIyOnJldHVybiB3bChlLHQsbil9dGhyb3cgRXJyb3IoRCgxNTYsdC50YWcpKX0sdnU9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcG9ydEVycm9yP3JlcG9ydEVycm9yOmZ1bmN0aW9uKGUpe2NvbnNvbGUuZXJyb3IoZSl9O2Z1bmN0aW9uIHd1KGUpe3RoaXMuX2ludGVybmFsUm9vdD1lfWZ1bmN0aW9uIHh1KGUpe3RoaXMuX2ludGVybmFsUm9vdD1lfWZ1bmN0aW9uIGt1KGUpe3JldHVybiBlJiYoMT09PWUubm9kZVR5cGV8fDk9PT1lLm5vZGVUeXBlfHwxMT09PWUubm9kZVR5cGUpfWZ1bmN0aW9uIFN1KGUpe3JldHVybiBlJiYoMT09PWUubm9kZVR5cGV8fDk9PT1lLm5vZGVUeXBlfHwxMT09PWUubm9kZVR5cGV8fDg9PT1lLm5vZGVUeXBlJiYiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlICI9PT1lLm5vZGVWYWx1ZSl9ZnVuY3Rpb24gQ3UoKXt9ZnVuY3Rpb24gRXUoZSx0LG4scixvKXt2YXIgYSxpLGw9bi5fcmVhY3RSb290Q29udGFpbmVyO3JldHVybiBsPygiZnVuY3Rpb24iPT10eXBlb2YgbyYmKGk9byxvPWZ1bmN0aW9uKCl7dmFyIGU9aHUoYSk7aS5jYWxsKGUpfSksbXUodCxhPWwsZSxvKSk6YT1mdW5jdGlvbihlLHQsbixyLG8pe3ZhciBhLGksbDtpZihvKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByJiYoYT1yLHI9ZnVuY3Rpb24oKXt2YXIgZT1odShpKTthLmNhbGwoZSl9KSxpPXB1KHQscixlLDAsbnVsbCwhMSwwLCIiLEN1KSxlLl9yZWFjdFJvb3RDb250YWluZXI9aSxlW2pvXT1pLmN1cnJlbnQsdG8oOD09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmUpLEZjKCksaTtmb3IoO289ZS5sYXN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQobyk7ImZ1bmN0aW9uIj09dHlwZW9mIHImJihsPXIscj1mdW5jdGlvbigpe3ZhciBlPWh1KGMpO2wuY2FsbChlKX0pO3ZhciBjPWZ1KGUsMCwhMSxudWxsLDAsITEsMCwiIixDdSk7cmV0dXJuIGUuX3JlYWN0Um9vdENvbnRhaW5lcj1jLGVbam9dPWMuY3VycmVudCx0byg4PT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZSksRmMoZnVuY3Rpb24oKXttdSh0LGMsbixyKX0pLGN9KG4sdCxlLG8sciksaHUoYSl9eHUucHJvdG90eXBlLnJlbmRlcj13dS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09dCl0aHJvdyBFcnJvcihEKDQwOSkpO211KGUsdCxudWxsLG51bGwpfSx4dS5wcm90b3R5cGUudW5tb3VudD13dS5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5faW50ZXJuYWxSb290O251bGwhPT10JiYodGhpcy5faW50ZXJuYWxSb290PW51bGwsZT10LmNvbnRhaW5lckluZm8sRmMoZnVuY3Rpb24oKXttdShudWxsLHQsbnVsbCxudWxsKX0pLGVbam9dPW51bGwpfSx4dS5wcm90b3R5cGUudW5zdGFibGVfc2NoZWR1bGVIeWRyYXRpb249ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9WHQoKTtlPXtibG9ja2VkT246bnVsbCx0YXJnZXQ6ZSxwcmlvcml0eTp0fTtmb3IodmFyIG49MDtuPG9uLmxlbmd0aCYmMCE9PXQmJnQ8b25bbl0ucHJpb3JpdHk7bisrKTtvbi5zcGxpY2UobiwwLGUpLDA9PT1uJiZ1bihlKX19LEd0PWZ1bmN0aW9uKG4pe3N3aXRjaChuLnRhZyl7Y2FzZSAzOnZhciBlLHQ9bi5zdGF0ZU5vZGU7dC5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYwIT09KGU9TnQodC5wZW5kaW5nTGFuZXMpKSYmKCR0KHQsMXxlKSxMYyh0LGgoKSksMD09KDYmXykpJiYod2M9aCgpKzUwMCxZbygpKTticmVhaztjYXNlIDEzOkZjKGZ1bmN0aW9uKCl7dmFyIGUsdD1NYShuLDEpO251bGwhPT10JiYoZT1tKCksVGModCxuLDEsZSkpfSksYnUobiwxKX19LHF0PWZ1bmN0aW9uKGUpe3ZhciB0OzEzPT09ZS50YWcmJihudWxsIT09KHQ9TWEoZSwxMzQyMTc3MjgpKSYmVGModCxlLDEzNDIxNzcyOCxtKCkpLGJ1KGUsMTM0MjE3NzI4KSl9LFp0PWZ1bmN0aW9uKGUpe3ZhciB0LG47MTM9PT1lLnRhZyYmKG51bGwhPT0obj1NYShlLHQ9emMoZSkpKSYmVGMobixlLHQsbSgpKSxidShlLHQpKX0sWHQ9ZnVuY3Rpb24oKXtyZXR1cm4geH0sWXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj14O3RyeXtyZXR1cm4geD1lLHQoKX1maW5hbGx5e3g9bn19LGF0PUZjO2U9e3VzaW5nQ2xpZW50RW50cnlQb2ludDohKEtlPWZ1bmN0aW9uKGUsdCxuKXtzd2l0Y2godCl7Y2FzZSJpbnB1dCI6aWYoQWUoZSxuKSx0PW4ubmFtZSwicmFkaW8iPT09bi50eXBlJiZudWxsIT10KXtmb3Iobj1lO24ucGFyZW50Tm9kZTspbj1uLnBhcmVudE5vZGU7Zm9yKG49bi5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dFtuYW1lPSIrSlNPTi5zdHJpbmdpZnkoIiIrdCkrJ11bdHlwZT0icmFkaW8iXScpLHQ9MDt0PG4ubGVuZ3RoO3QrKyl7dmFyIHI9blt0XTtpZihyIT09ZSYmci5mb3JtPT09ZS5mb3JtKXt2YXIgbz1MbyhyKTtpZighbyl0aHJvdyBFcnJvcihEKDkwKSk7U2UociksQWUocixvKX19fWJyZWFrO2Nhc2UidGV4dGFyZWEiOk1lKGUsbik7YnJlYWs7Y2FzZSJzZWxlY3QiOm51bGwhPSh0PW4udmFsdWUpJiZ6ZShlLCEhbi5tdWx0aXBsZSx0LCExKX19KSxFdmVudHM6W3pvLFRvLExvLG50LHJ0LG90PUJjXX0sdD17ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6X28sYnVuZGxlVHlwZTowLHZlcnNpb246IjE4LjIuMCIscmVuZGVyZXJQYWNrYWdlTmFtZToicmVhY3QtZG9tIn0sUj17YnVuZGxlVHlwZTp0LmJ1bmRsZVR5cGUsdmVyc2lvbjp0LnZlcnNpb24scmVuZGVyZXJQYWNrYWdlTmFtZTp0LnJlbmRlcmVyUGFja2FnZU5hbWUscmVuZGVyZXJDb25maWc6dC5yZW5kZXJlckNvbmZpZyxvdmVycmlkZUhvb2tTdGF0ZTpudWxsLG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDpudWxsLG92ZXJyaWRlUHJvcHM6bnVsbCxvdmVycmlkZVByb3BzRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoOm51bGwsc2V0RXJyb3JIYW5kbGVyOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjpKLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsZmluZEhvc3RJbnN0YW5jZUJ5RmliZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT0oZT12dChlKSk/bnVsbDplLnN0YXRlTm9kZX0sZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6dC5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoOm51bGwsc2NoZWR1bGVSZWZyZXNoOm51bGwsc2NoZWR1bGVSb290Om51bGwsc2V0UmVmcmVzaEhhbmRsZXI6bnVsbCxnZXRDdXJyZW50RmliZXI6bnVsbCxyZWNvbmNpbGVyVmVyc2lvbjoiMTguMi4wLW5leHQtOWUzYjc3MmI4LTIwMjIwNjA4In07aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3I9X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO2lmKCFyLmlzRGlzYWJsZWQmJnIuc3VwcG9ydHNGaWJlcil0cnl7SXQ9ci5pbmplY3QoUiksX3Q9cn1jYXRjaChlKXt9fWMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9ZSxjLmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihlLHQpe2lmKGt1KHQpKXJldHVybiBmdW5jdGlvbihlLHQsbixyKXtyZXR1cm57JCR0eXBlb2Y6dGUsa2V5Om51bGw9PShyPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09cj9yOm51bGwpP251bGw6IiIrcixjaGlsZHJlbjplLGNvbnRhaW5lckluZm86dCxpbXBsZW1lbnRhdGlvbjpufX0oZSx0LG51bGwsMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwpO3Rocm93IEVycm9yKEQoMjAwKSl9LGMuY3JlYXRlUm9vdD1mdW5jdGlvbihlLHQpe3ZhciBuLHIsbztpZihrdShlKSlyZXR1cm4gbj0hMSxyPSIiLG89dnUsbnVsbCE9dCYmKCEwPT09dC51bnN0YWJsZV9zdHJpY3RNb2RlJiYobj0hMCksdm9pZCAwIT09dC5pZGVudGlmaWVyUHJlZml4JiYocj10LmlkZW50aWZpZXJQcmVmaXgpLHZvaWQgMCE9PXQub25SZWNvdmVyYWJsZUVycm9yKSYmKG89dC5vblJlY292ZXJhYmxlRXJyb3IpLHQ9ZnUoZSwxLCExLG51bGwsMCxuLDAscixvKSxlW2pvXT10LmN1cnJlbnQsdG8oOD09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmUpLG5ldyB3dSh0KTt0aHJvdyBFcnJvcihEKDI5OSkpfSxjLmZpbmRET01Ob2RlPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuIG51bGw7aWYoMSE9PWUubm9kZVR5cGUpe3ZhciB0PWUuX3JlYWN0SW50ZXJuYWxzO2lmKHZvaWQgMD09PXQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLnJlbmRlcil0aHJvdyBFcnJvcihEKDE4OCkpO3Rocm93IGU9T2JqZWN0LmtleXMoZSkuam9pbigiLCIpLEVycm9yKEQoMjY4LGUpKX1lPW51bGw9PT0oZT12dCh0KSk/bnVsbDplLnN0YXRlTm9kZX1yZXR1cm4gZX0sYy5mbHVzaFN5bmM9RmMsYy5oeWRyYXRlPWZ1bmN0aW9uKGUsdCxuKXtpZihTdSh0KSlyZXR1cm4gRXUobnVsbCxlLHQsITAsbik7dGhyb3cgRXJyb3IoRCgyMDApKX0sYy5oeWRyYXRlUm9vdD1mdW5jdGlvbihlLHQsbil7aWYoIWt1KGUpKXRocm93IEVycm9yKEQoNDA1KSk7dmFyIHI9bnVsbCE9biYmbi5oeWRyYXRlZFNvdXJjZXN8fG51bGwsbz0hMSxhPSIiLGk9dnU7aWYobnVsbCE9biYmKCEwPT09bi51bnN0YWJsZV9zdHJpY3RNb2RlJiYobz0hMCksdm9pZCAwIT09bi5pZGVudGlmaWVyUHJlZml4JiYoYT1uLmlkZW50aWZpZXJQcmVmaXgpLHZvaWQgMCE9PW4ub25SZWNvdmVyYWJsZUVycm9yKSYmKGk9bi5vblJlY292ZXJhYmxlRXJyb3IpLHQ9cHUodCxudWxsLGUsMSxudWxsIT1uP246bnVsbCxvLDAsYSxpKSxlW2pvXT10LmN1cnJlbnQsdG8oZSkscilmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKW89KG89KG49cltlXSkuX2dldFZlcnNpb24pKG4uX3NvdXJjZSksbnVsbD09dC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhP3QubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1bbixvXTp0Lm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEucHVzaChuLG8pO3JldHVybiBuZXcgeHUodCl9LGMucmVuZGVyPWZ1bmN0aW9uKGUsdCxuKXtpZihTdSh0KSlyZXR1cm4gRXUobnVsbCxlLHQsITEsbik7dGhyb3cgRXJyb3IoRCgyMDApKX0sYy51bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bmN0aW9uKGUpe2lmKFN1KGUpKXJldHVybiEhZS5fcmVhY3RSb290Q29udGFpbmVyJiYoRmMoZnVuY3Rpb24oKXtFdShudWxsLG51bGwsZSwhMSxmdW5jdGlvbigpe2UuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsLGVbam9dPW51bGx9KX0pLCEwKTt0aHJvdyBFcnJvcihEKDQwKSl9LGMudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9QmMsYy51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcj1mdW5jdGlvbihlLHQsbixyKXtpZighU3UobikpdGhyb3cgRXJyb3IoRCgyMDApKTtpZihudWxsPT1lfHx2b2lkIDA9PT1lLl9yZWFjdEludGVybmFscyl0aHJvdyBFcnJvcihEKDM4KSk7cmV0dXJuIEV1KGUsdCxuLCExLHIpfSxjLnZlcnNpb249IjE4LjIuMC1uZXh0LTllM2I3NzJiOC0yMDIyMDYwOCJ9LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigxNzIpfSxmdW5jdGlvbihlLFQsdCl7IWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGEoZSx0KXt2YXIgbj1lLmxlbmd0aDtmb3IoZS5wdXNoKHQpOzA8bjspe3ZhciByPW4tMT4+PjEsbz1lW3JdO2lmKCEoMDxzKG8sdCkpKWJyZWFrO2Vbcl09dCxlW25dPW8sbj1yfX1mdW5jdGlvbiBsKGUpe3JldHVybiAwPT09ZS5sZW5ndGg/bnVsbDplWzBdfWZ1bmN0aW9uIGMoZSl7aWYoMCE9PWUubGVuZ3RoKXt2YXIgdD1lWzBdLG49ZS5wb3AoKTtpZihuIT09dCl7ZVswXT1uO2Zvcih2YXIgcj0wLG89ZS5sZW5ndGgsYT1vPj4+MTtyPGE7KXt2YXIgaT0yKihyKzEpLTEsbD1lW2ldLGM9MStpLHU9ZVtjXTtpZihzKGwsbik8MClyPWM8byYmcyh1LGwpPDA/KGVbcl09dSxlW2NdPW4sYyk6KGVbcl09bCxlW2ldPW4saSk7ZWxzZXtpZighKGM8byYmcyh1LG4pPDApKWJyZWFrO2Vbcl09dSxlW2NdPW4scj1jfX19fX1mdW5jdGlvbiBzKGUsdCl7dmFyIG49ZS5zb3J0SW5kZXgtdC5zb3J0SW5kZXg7cmV0dXJuIDAhPW4/bjplLmlkLXQuaWR9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIHBlcmZvcm1hbmNlLm5vdz8odD1wZXJmb3JtYW5jZSxULnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiB0Lm5vdygpfSk6KG49RGF0ZSxyPW4ubm93KCksVC51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gbi5ub3coKS1yfSk7dmFyIHQsbixyLHU9W10sZj1bXSxpPTEsZD1udWxsLHA9MyxtPSExLGg9ITEsZz0hMSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6bnVsbCxiPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0Om51bGwseT12b2lkIDAhPT1lP2U6bnVsbDtmdW5jdGlvbiB2KGUpe2Zvcih2YXIgdD1sKGYpO251bGwhPT10Oyl7aWYobnVsbD09PXQuY2FsbGJhY2spYyhmKTtlbHNle2lmKCEodC5zdGFydFRpbWU8PWUpKWJyZWFrO2MoZiksdC5zb3J0SW5kZXg9dC5leHBpcmF0aW9uVGltZSxhKHUsdCl9dD1sKGYpfX1mdW5jdGlvbiB3KGUpe3ZhciB0O2c9ITEsdihlKSxofHwobnVsbCE9PWwodSk/KGg9ITAsXyh4KSk6bnVsbCE9PSh0PWwoZikpJiZ6KHcsdC5zdGFydFRpbWUtZSkpfWZ1bmN0aW9uIHgoZSx0KXtoPSExLGcmJihnPSExLGIoTyksTz0tMSksbT0hMDt2YXIgbj1wO3RyeXtmb3Iodih0KSxkPWwodSk7bnVsbCE9PWQmJighKGQuZXhwaXJhdGlvblRpbWU+dCl8fGUmJiFQKCkpOyl7dmFyIHIsbz1kLmNhbGxiYWNrOyJmdW5jdGlvbiI9PXR5cGVvZiBvPyhkLmNhbGxiYWNrPW51bGwscD1kLnByaW9yaXR5TGV2ZWwscj1vKGQuZXhwaXJhdGlvblRpbWU8PXQpLHQ9VC51bnN0YWJsZV9ub3coKSwiZnVuY3Rpb24iPT10eXBlb2Ygcj9kLmNhbGxiYWNrPXI6ZD09PWwodSkmJmModSksdih0KSk6Yyh1KSxkPWwodSl9dmFyIGEsaT1udWxsIT09ZHx8KG51bGwhPT0oYT1sKGYpKSYmeih3LGEuc3RhcnRUaW1lLXQpLCExKTtyZXR1cm4gaX1maW5hbGx5e2Q9bnVsbCxwPW4sbT0hMX19InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nJiZ2b2lkIDAhPT1uYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZyYmbmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcuYmluZChuYXZpZ2F0b3Iuc2NoZWR1bGluZyk7dmFyIGssUyxDPSExLEU9bnVsbCxPPS0xLGo9NSxBPS0xO2Z1bmN0aW9uIFAoKXtyZXR1cm4hKFQudW5zdGFibGVfbm93KCktQTxqKX1mdW5jdGlvbiBJKCl7aWYobnVsbCE9PUUpe3ZhciBlPVQudW5zdGFibGVfbm93KCksdD0oQT1lLCEwKTt0cnl7dD1FKCEwLGUpfWZpbmFsbHl7dD9rKCk6KEM9ITEsRT1udWxsKX19ZWxzZSBDPSExfWZ1bmN0aW9uIF8oZSl7RT1lLEN8fChDPSEwLGsoKSl9ZnVuY3Rpb24geihlLHQpe089byhmdW5jdGlvbigpe2UoVC51bnN0YWJsZV9ub3coKSl9LHQpfWs9ImZ1bmN0aW9uIj09dHlwZW9mIHk/ZnVuY3Rpb24oKXt5KEkpfToidW5kZWZpbmVkIiE9dHlwZW9mIE1lc3NhZ2VDaGFubmVsPyhlPW5ldyBNZXNzYWdlQ2hhbm5lbCxTPWUucG9ydDIsZS5wb3J0MS5vbm1lc3NhZ2U9SSxmdW5jdGlvbigpe1MucG9zdE1lc3NhZ2UobnVsbCl9KTpmdW5jdGlvbigpe28oSSwwKX0sVC51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NSxULnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTEsVC51bnN0YWJsZV9Mb3dQcmlvcml0eT00LFQudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MyxULnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsLFQudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MixULnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGUpe2UuY2FsbGJhY2s9bnVsbH0sVC51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe2h8fG18fChoPSEwLF8oeCkpfSxULnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGUpe2U8MHx8MTI1PGU/Y29uc29sZS5lcnJvcigiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkIik6aj0wPGU/TWF0aC5mbG9vcigxZTMvZSk6NX0sVC51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBwfSxULnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIGwodSl9LFQudW5zdGFibGVfbmV4dD1mdW5jdGlvbihlKXtzd2l0Y2gocCl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6dmFyIHQ9MzticmVhaztkZWZhdWx0OnQ9cH12YXIgbj1wO3A9dDt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e3A9bn19LFQudW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9LFQudW5zdGFibGVfcmVxdWVzdFBhaW50PWZ1bmN0aW9uKCl7fSxULnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6ZT0zfXZhciBuPXA7cD1lO3RyeXtyZXR1cm4gdCgpfWZpbmFsbHl7cD1ufX0sVC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1ULnVuc3RhYmxlX25vdygpO3N3aXRjaChuPSJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4mJiJudW1iZXIiPT10eXBlb2Yobj1uLmRlbGF5KSYmMDxuP3IrbjpyLGUpe2Nhc2UgMTp2YXIgbz0tMTticmVhaztjYXNlIDI6bz0yNTA7YnJlYWs7Y2FzZSA1Om89MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6bz0xZTQ7YnJlYWs7ZGVmYXVsdDpvPTVlM31yZXR1cm4gZT17aWQ6aSsrLGNhbGxiYWNrOnQscHJpb3JpdHlMZXZlbDplLHN0YXJ0VGltZTpuLGV4cGlyYXRpb25UaW1lOm89bitvLHNvcnRJbmRleDotMX0scjxuPyhlLnNvcnRJbmRleD1uLGEoZixlKSxudWxsPT09bCh1KSYmZT09PWwoZikmJihnPyhiKE8pLE89LTEpOmc9ITAseih3LG4tcikpKTooZS5zb3J0SW5kZXg9byxhKHUsZSksaHx8bXx8KGg9ITAsXyh4KSkpLGV9LFQudW5zdGFibGVfc2hvdWxkWWllbGQ9UCxULnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbih0KXt2YXIgbj1wO3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXA7cD1uO3RyeXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtwPWV9fX19LmNhbGwodGhpcyx0KDE3Mykuc2V0SW1tZWRpYXRlKX0sZnVuY3Rpb24oZSxvLGEpeyFmdW5jdGlvbihlKXt2YXIgdD12b2lkIDAhPT1lJiZlfHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fHdpbmRvdyxuPUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseTtmdW5jdGlvbiByKGUsdCl7dGhpcy5faWQ9ZSx0aGlzLl9jbGVhckZuPXR9by5zZXRUaW1lb3V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyByKG4uY2FsbChzZXRUaW1lb3V0LHQsYXJndW1lbnRzKSxjbGVhclRpbWVvdXQpfSxvLnNldEludGVydmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyByKG4uY2FsbChzZXRJbnRlcnZhbCx0LGFyZ3VtZW50cyksY2xlYXJJbnRlcnZhbCl9LG8uY2xlYXJUaW1lb3V0PW8uY2xlYXJJbnRlcnZhbD1mdW5jdGlvbihlKXtlJiZlLmNsb3NlKCl9LHIucHJvdG90eXBlLnVucmVmPXIucHJvdG90eXBlLnJlZj1mdW5jdGlvbigpe30sci5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXt0aGlzLl9jbGVhckZuLmNhbGwodCx0aGlzLl9pZCl9LG8uZW5yb2xsPWZ1bmN0aW9uKGUsdCl7Y2xlYXJUaW1lb3V0KGUuX2lkbGVUaW1lb3V0SWQpLGUuX2lkbGVUaW1lb3V0PXR9LG8udW5lbnJvbGw9ZnVuY3Rpb24oZSl7Y2xlYXJUaW1lb3V0KGUuX2lkbGVUaW1lb3V0SWQpLGUuX2lkbGVUaW1lb3V0PS0xfSxvLl91bnJlZkFjdGl2ZT1vLmFjdGl2ZT1mdW5jdGlvbihlKXtjbGVhclRpbWVvdXQoZS5faWRsZVRpbWVvdXRJZCk7dmFyIHQ9ZS5faWRsZVRpbWVvdXQ7MDw9dCYmKGUuX2lkbGVUaW1lb3V0SWQ9c2V0VGltZW91dChmdW5jdGlvbigpe2UuX29uVGltZW91dCYmZS5fb25UaW1lb3V0KCl9LHQpKX0sYSgxNzQpLG8uc2V0SW1tZWRpYXRlPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5zZXRJbW1lZGlhdGV8fHZvaWQgMCE9PWUmJmUuc2V0SW1tZWRpYXRlfHx0aGlzJiZ0aGlzLnNldEltbWVkaWF0ZSxvLmNsZWFySW1tZWRpYXRlPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5jbGVhckltbWVkaWF0ZXx8dm9pZCAwIT09ZSYmZS5jbGVhckltbWVkaWF0ZXx8dGhpcyYmdGhpcy5jbGVhckltbWVkaWF0ZX0uY2FsbCh0aGlzLGEoMjIpKX0sZnVuY3Rpb24oZSx0LG4peyFmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGEoZSl7ZGVsZXRlIGNbZV19ZnVuY3Rpb24gaShlKXtpZih1KXNldFRpbWVvdXQoaSwwLGUpO2Vsc2V7dmFyIHQ9Y1tlXTtpZih0KXt1PSEwO3RyeXt2YXIgbj10LHI9bi5jYWxsYmFjayxvPW4uYXJncztzd2l0Y2goby5sZW5ndGgpe2Nhc2UgMDpyKCk7YnJlYWs7Y2FzZSAxOnIob1swXSk7YnJlYWs7Y2FzZSAyOnIob1swXSxvWzFdKTticmVhaztjYXNlIDM6cihvWzBdLG9bMV0sb1syXSk7YnJlYWs7ZGVmYXVsdDpyLmFwcGx5KGwsbyl9fWZpbmFsbHl7YShlKSx1PSExfX19fWZ1bmN0aW9uIG4oKXtmdW5jdGlvbiBlKGUpe2Uuc291cmNlPT09ciYmInN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT1lLmRhdGEuaW5kZXhPZih0KSYmaSgrZS5kYXRhLnNsaWNlKHQubGVuZ3RoKSl9dmFyIHQ9InNldEltbWVkaWF0ZSQiK01hdGgucmFuZG9tKCkrIiQiO3IuYWRkRXZlbnRMaXN0ZW5lcj9yLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGUsITEpOnIuYXR0YWNoRXZlbnQoIm9ubWVzc2FnZSIsZSksZj1mdW5jdGlvbihlKXtyLnBvc3RNZXNzYWdlKHQrZSwiKiIpfX12YXIgcixsLG8sYyx1LHMsZixkLHA7KHI9InVuZGVmaW5lZCI9PXR5cGVvZiBzZWxmP3ZvaWQgMD09PWU/dGhpczplOnNlbGYpLnNldEltbWVkaWF0ZXx8KG89MSx1PSEoYz17fSkscz1yLmRvY3VtZW50LGU9KGU9T2JqZWN0LmdldFByb3RvdHlwZU9mJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YocikpJiZlLnNldFRpbWVvdXQ/ZTpyLCJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoci5wcm9jZXNzKT9mPWZ1bmN0aW9uKGUpe3QubmV4dFRpY2soZnVuY3Rpb24oKXtpKGUpfSl9OiFmdW5jdGlvbigpe3ZhciBlLHQ7aWYoci5wb3N0TWVzc2FnZSYmIXIuaW1wb3J0U2NyaXB0cylyZXR1cm4gZT0hMCx0PXIub25tZXNzYWdlLHIub25tZXNzYWdlPWZ1bmN0aW9uKCl7ZT0hMX0sci5wb3N0TWVzc2FnZSgiIiwiKiIpLHIub25tZXNzYWdlPXQsZX0oKT9mPXIuTWVzc2FnZUNoYW5uZWw/KChwPW5ldyBNZXNzYWdlQ2hhbm5lbCkucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKGUpe2koZS5kYXRhKX0sZnVuY3Rpb24oZSl7cC5wb3J0Mi5wb3N0TWVzc2FnZShlKX0pOnMmJiJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4gcy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKT8oZD1zLmRvY3VtZW50RWxlbWVudCxmdW5jdGlvbihlKXt2YXIgdD1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Qub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aShlKSx0Lm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGQucmVtb3ZlQ2hpbGQodCksdD1udWxsfSxkLmFwcGVuZENoaWxkKHQpfSk6ZnVuY3Rpb24oZSl7c2V0VGltZW91dChpLDAsZSl9Om4oKSxlLnNldEltbWVkaWF0ZT1mdW5jdGlvbihlKXsiZnVuY3Rpb24iIT10eXBlb2YgZSYmKGU9bmV3IEZ1bmN0aW9uKCIiK2UpKTtmb3IodmFyIHQ9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSksbj0wO248dC5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW24rMV07cmV0dXJuIGNbb109e2NhbGxiYWNrOmUsYXJnczp0fSxmKG8pLG8rK30sZS5jbGVhckltbWVkaWF0ZT1hKX0uY2FsbCh0aGlzLG4oMjIpLG4oOTIpKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByLG89U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLGE9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksaT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGw9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxjPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksdT1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLHM9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGY9U3ltYm9sLmZvcigicmVhY3Quc2VydmVyX2NvbnRleHQiKSxkPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIikscD1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLG09U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLGg9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLGc9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLGI9U3ltYm9sLmZvcigicmVhY3Qub2Zmc2NyZWVuIik7ZnVuY3Rpb24geShlKXtpZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lKXt2YXIgdD1lLiQkdHlwZW9mO3N3aXRjaCh0KXtjYXNlIG86c3dpdGNoKGU9ZS50eXBlKXtjYXNlIGk6Y2FzZSBjOmNhc2UgbDpjYXNlIHA6Y2FzZSBtOnJldHVybiBlO2RlZmF1bHQ6c3dpdGNoKGU9ZSYmZS4kJHR5cGVvZil7Y2FzZSBmOmNhc2UgczpjYXNlIGQ6Y2FzZSBnOmNhc2UgaDpjYXNlIHU6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gdH19Y2FzZSBhOnJldHVybiB0fX19cj1TeW1ib2wuZm9yKCJyZWFjdC5tb2R1bGUucmVmZXJlbmNlIiksdC5Db250ZXh0Q29uc3VtZXI9cyx0LkNvbnRleHRQcm92aWRlcj11LHQuRWxlbWVudD1vLHQuRm9yd2FyZFJlZj1kLHQuRnJhZ21lbnQ9aSx0Lkxhenk9Zyx0Lk1lbW89aCx0LlBvcnRhbD1hLHQuUHJvZmlsZXI9Yyx0LlN0cmljdE1vZGU9bCx0LlN1c3BlbnNlPXAsdC5TdXNwZW5zZUxpc3Q9bSx0LmlzQXN5bmNNb2RlPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHQuaXNDb25jdXJyZW50TW9kZT1mdW5jdGlvbigpe3JldHVybiExfSx0LmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGUpe3JldHVybiB5KGUpPT09c30sdC5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihlKXtyZXR1cm4geShlKT09PXV9LHQuaXNFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1vfSx0LmlzRm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm4geShlKT09PWR9LHQuaXNGcmFnbWVudD1mdW5jdGlvbihlKXtyZXR1cm4geShlKT09PWl9LHQuaXNMYXp5PWZ1bmN0aW9uKGUpe3JldHVybiB5KGUpPT09Z30sdC5pc01lbW89ZnVuY3Rpb24oZSl7cmV0dXJuIHkoZSk9PT1ofSx0LmlzUG9ydGFsPWZ1bmN0aW9uKGUpe3JldHVybiB5KGUpPT09YX0sdC5pc1Byb2ZpbGVyPWZ1bmN0aW9uKGUpe3JldHVybiB5KGUpPT09Y30sdC5pc1N0cmljdE1vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHkoZSk9PT1sfSx0LmlzU3VzcGVuc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHkoZSk9PT1wfSx0LmlzU3VzcGVuc2VMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiB5KGUpPT09bX0sdC5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZXx8ZT09PWl8fGU9PT1jfHxlPT09bHx8ZT09PXB8fGU9PT1tfHxlPT09Ynx8Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmKGUuJCR0eXBlb2Y9PT1nfHxlLiQkdHlwZW9mPT09aHx8ZS4kJHR5cGVvZj09PXV8fGUuJCR0eXBlb2Y9PT1zfHxlLiQkdHlwZW9mPT09ZHx8ZS4kJHR5cGVvZj09PXJ8fHZvaWQgMCE9PWUuZ2V0TW9kdWxlSWQpfSx0LnR5cGVPZj15fSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPW4oMTc3KX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Isbz1yP1N5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKTo2MDEwMyxhPXI/U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIik6NjAxMDYsaT1yP1N5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iik6NjAxMDcsbD1yP1N5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIik6NjAxMDgsYz1yP1N5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIik6NjAxMTQsdT1yP1N5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIik6NjAxMDkscz1yP1N5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKTo2MDExMCxmPXI/U3ltYm9sLmZvcigicmVhY3QuYXN5bmNfbW9kZSIpOjYwMTExLGQ9cj9TeW1ib2wuZm9yKCJyZWFjdC5jb25jdXJyZW50X21vZGUiKTo2MDExMSxwPXI/U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKTo2MDExMixtPXI/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKTo2MDExMyxoPXI/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpOjYwMTIwLGc9cj9TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIik6NjAxMTUsYj1yP1N5bWJvbC5mb3IoInJlYWN0LmxhenkiKTo2MDExNix5PXI/U3ltYm9sLmZvcigicmVhY3QuYmxvY2siKTo2MDEyMSx2PXI/U3ltYm9sLmZvcigicmVhY3QuZnVuZGFtZW50YWwiKTo2MDExNyx3PXI/U3ltYm9sLmZvcigicmVhY3QucmVzcG9uZGVyIik6NjAxMTgseD1yP1N5bWJvbC5mb3IoInJlYWN0LnNjb3BlIik6NjAxMTk7ZnVuY3Rpb24gayhlKXtpZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lKXt2YXIgdD1lLiQkdHlwZW9mO3N3aXRjaCh0KXtjYXNlIG86c3dpdGNoKGU9ZS50eXBlKXtjYXNlIGY6Y2FzZSBkOmNhc2UgaTpjYXNlIGM6Y2FzZSBsOmNhc2UgbTpyZXR1cm4gZTtkZWZhdWx0OnN3aXRjaChlPWUmJmUuJCR0eXBlb2Ype2Nhc2UgczpjYXNlIHA6Y2FzZSBiOmNhc2UgZzpjYXNlIHU6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gdH19Y2FzZSBhOnJldHVybiB0fX19ZnVuY3Rpb24gUyhlKXtyZXR1cm4gayhlKT09PWR9dC5Bc3luY01vZGU9Zix0LkNvbmN1cnJlbnRNb2RlPWQsdC5Db250ZXh0Q29uc3VtZXI9cyx0LkNvbnRleHRQcm92aWRlcj11LHQuRWxlbWVudD1vLHQuRm9yd2FyZFJlZj1wLHQuRnJhZ21lbnQ9aSx0Lkxhenk9Yix0Lk1lbW89Zyx0LlBvcnRhbD1hLHQuUHJvZmlsZXI9Yyx0LlN0cmljdE1vZGU9bCx0LlN1c3BlbnNlPW0sdC5pc0FzeW5jTW9kZT1mdW5jdGlvbihlKXtyZXR1cm4gUyhlKXx8ayhlKT09PWZ9LHQuaXNDb25jdXJyZW50TW9kZT1TLHQuaXNDb250ZXh0Q29uc3VtZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSk9PT1zfSx0LmlzQ29udGV4dFByb3ZpZGVyPWZ1bmN0aW9uKGUpe3JldHVybiBrKGUpPT09dX0sdC5pc0VsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmZS4kJHR5cGVvZj09PW99LHQuaXNGb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybiBrKGUpPT09cH0sdC5pc0ZyYWdtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBrKGUpPT09aX0sdC5pc0xhenk9ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSk9PT1ifSx0LmlzTWVtbz1mdW5jdGlvbihlKXtyZXR1cm4gayhlKT09PWd9LHQuaXNQb3J0YWw9ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSk9PT1hfSx0LmlzUHJvZmlsZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSk9PT1jfSx0LmlzU3RyaWN0TW9kZT1mdW5jdGlvbihlKXtyZXR1cm4gayhlKT09PWx9LHQuaXNTdXNwZW5zZT1mdW5jdGlvbihlKXtyZXR1cm4gayhlKT09PW19LHQuaXNWYWxpZEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGV8fGU9PT1pfHxlPT09ZHx8ZT09PWN8fGU9PT1sfHxlPT09bXx8ZT09PWh8fCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJihlLiQkdHlwZW9mPT09Ynx8ZS4kJHR5cGVvZj09PWd8fGUuJCR0eXBlb2Y9PT11fHxlLiQkdHlwZW9mPT09c3x8ZS4kJHR5cGVvZj09PXB8fGUuJCR0eXBlb2Y9PT12fHxlLiQkdHlwZW9mPT09d3x8ZS4kJHR5cGVvZj09PXh8fGUuJCR0eXBlb2Y9PT15KX0sdC50eXBlT2Y9a30sZnVuY3Rpb24oYixlLHQpe3QucihlKSx0LmQoZSwic2NyaXB0SWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGd9KTt0KDk4KSx0KDE2Nyk7dmFyIG4sRj10KDApLEg9dC5uKEYpLGU9dCg5MykseT10Lm4oZSk7ZnVuY3Rpb24gbygpe3JldHVybiBuYXZpZ2F0b3IudXNlckFnZW50fHxuYXZpZ2F0b3IudmVuZG9yfWZ1bmN0aW9uIHYoKXtyZXR1cm4gMDw9bmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTUFDIil9ZnVuY3Rpb24gYSgpe3JldHVybiEhL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKXx8ISEvaXAoaG9uZXxvZHxhZCkvaS50ZXN0KG8oKSl8fG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyYmMjxuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMmJi9NYWNJbnRlbC8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pfWZ1bmN0aW9uIHcoKXtyZXR1cm4tMSE9PW8oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImFuZHJvaWQiKX1mdW5jdGlvbiBEKCl7dmFyIGU7cmV0dXJuIHZvaWQgMD09PW4mJiExPT09KG49YSgpfHx3KCkpJiYoZT1vKCksbj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm8vaS50ZXN0KGUpfHwvMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pLnRlc3QoZS5zdWJzdHIoMCw0KSkpLG59ZnVuY3Rpb24gVSgpe3JldHVybiFEKCl9dmFyIGU9dCg5NCkseD10Lm4oZSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4oaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0pKGUpfWZ1bmN0aW9uIF8odCxlKXt2YXIgbixyPU9iamVjdC5rZXlzKHQpO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYobj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLGUmJihuPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSxyLnB1c2guYXBwbHkocixuKSkscn12YXIgbD17Y2FsbFRvQWN0aW9uOiJNZXNzYWdlIHVzIPCfkYsiLGJ1dHRvblRleHQ6IkNvbnRhY3QgdXMiLGJ1dHRvblRleHRDbG9zZToiQ2xvc2UiLGdyZWV0aW5nTWVzc2FnZToiSGVsbG8g8J+RiyBIb3cgbWF5IHdlIGhlbHAgeW91PyBKdXN0IHNlbmQgdXMgYSBtZXNzYWdlIG5vdyB0byBnZXQgYXNzaXN0YW5jZS4iLGdyZWV0aW5nTWVzc2FnZURlbGF5OjUsY2FsbFRvQWN0aW9uRGVsYXk6M2UzLGNvbXBhbnlMb2dvVXJsOiExLGJ1dHRvbkltYWdlVXJsOiExLHBvc2l0aW9uOiJyaWdodCIsZ3JlZXRpbmc6ITEsYW5pbWF0aW9uOiExLGdyZWV0aW5nU3R5bGU6ImNsYXNzaWMiLGdyZWV0aW5nQWdlbnROYW1lOiJCb2IiLGdyZWV0aW5nRGlyZWN0aW9uOiJjb2x1bW4iLGdyZWV0aW5nQWdlbnRQb3NpdGlvbjoiTWFuYWdlciIsZ3JlZXRpbmdTdGFydENoYXRXaXRoOiJTdGFydCBDaGF0IHdpdGg6IixncmVldGluZ01lc3NlbmdlcnM6ITAsZ3JlZXRpbmdDb29raWU6ODY0MDAsYnJhbmRpbmc6ITEsZGlyZWN0aW9uOiJjb2x1bW4iLGJvcmRlcjohMSxub3RpZmljYXRpb25JbmRpY2F0b3I6ITEsYnV0dG9uQm9yZGVyUmFkaXVzOjUwLGFjdGl2YXRvclNpemU6NTAsYnV0dG9uU2hhZG93OjQwLGJ1dHRvbk9wYWNpdHk6MTAwLGJnU3R5bGU6ImNvbG9yIixidXR0b25BbmltYXRpb246InB1bHNlIixhY3RpdmF0b3JJY29uOiJjbGFzc2ljIixidXR0b25TdHlsZToiY2xhc3NpYyIsc2hpZnRIb3Jpem9udGFsOjAsc2hpZnRWZXJ0aWNhbDowLGdhOiExLG1pcnJvcjohMSxtb2JpbGU6ITAsZGVza3RvcDohMCxkb21haW46ITEsa2V5OiExLG9yZGVyOltdLGlzU2luZ2xlOiExLHNob3dXaWRnZXQ6ITAsY29uZmlnTG9hZGVkOiExLGRpc3BsYXlPbkFsbFBhZ2VzOiEwLHBhZ2VMaXN0VG9TaG93OltdLHBhZ2VMaXN0VG9IaWRlOltdLHN1YnNjcmlwdGlvbkNyZWF0ZWREYXRlOm51bGwsYnV0dG9uQ29sb3I6IiNGRjY1NTAiLGFwcGxlOiExLGFwcGxlTGFiZWw6IkFwcGxlIE1lc3NhZ2VzIixhcHBsZUNvbG9yOiIjMzNkOTRmIixhcHBsZUljb246ITEseW91dHViZTohMSx5b3V0dWJlTGFiZWw6IllvdXR1YmUiLHlvdXR1YmVDb2xvcjoiI2ZmMDAwMCIseW91dHViZUljb246ITEseW91dHViZVNob3dQb3B1cFBsYXRmb3JtOiJldmVyeXdoZXJlIixjYWxsOiExLGNhbGxMYWJlbDoiUGhvbmUiLGNhbGxDb2xvcjoiI2VjNTkyMyIsY2FsbEljb246ITEsY2FsbFFyQ29kZTohMSxjYWxsU2hvd1BvcHVwUGxhdGZvcm06ImRlc2t0b3AiLGNvbnRhY3Rmb3JtSG9zdDpudWxsLGNvbnRhY3Rmb3JtOiExLGNvbnRhY3Rmb3JtTGFiZWw6IkNvbnRhY3QgRm9ybSIsY29udGFjdGZvcm1Db2xvcjoiIzAwNjNmZiIsY29udGFjdGZvcm1JY29uOiExLGNvbnRhY3Rmb3JtUG9wdXBUaXRsZToiQ29udGFjdCBVcyIsY29udGFjdGZvcm1Qb3B1cExhbmc6ImVuIixkaXNjb3JkOiExLGRpc2NvcmRMYWJlbDoiRGlzY29yZCIsZGlzY29yZENvbG9yOiIjNTg2NUYyIixkaXNjb3JkSWNvbjohMSx0ZWFtczohMSx0ZWFtc0xhYmVsOiJUZWFtcyIsdGVhbXNDb2xvcjoiI2ZmZmZmZiIsdGVhbXNJY29uOiExLGVtYWlsOiExLGVtYWlsTGFiZWw6IkVtYWlsIixlbWFpbENvbG9yOiIjNjA2MDYwIixlbWFpbEljb246ITEsZmFjZWJvb2s6ITEsZmFjZWJvb2tMYWJlbDoiTWVzc2VuZ2VyIixmYWNlYm9va0NvbG9yOiIjMDA4NGZmIixmYWNlYm9va0ljb246ITEsZmFjZWJvb2tGcmFtZTpudWxsLGNhbGVuZGFySG9zdDpudWxsLGNhbGVuZGFyOiExLGNhbGVuZGFyTGFiZWw6IkFwcG9pbnRtZW50IixjYWxlbmRhckNvbG9yOiIjMDA2M2ZmIixjYWxlbmRhckljb246ITEsY2FsZW5kYXJDdXN0b21NZXNzYWdlOiJNYWtlIGFuIGFwcG9pbnRtZW50ISIsY2FsZW5kYXJOYW1lUGxhY2Vob2xkZXI6Ik5hbWUiLGNhbGVuZGFyUGhvbmVQbGFjZWhvbGRlcjoiUGhvbmUiLGNhbGVuZGFyRW1haWxQbGFjZWhvbGRlcjoiRW1haWwiLGNhbGVuZGFyTWVzc2FnZVBsYWNlaG9sZGVyOiJNZXNzYWdlIixjYWxlbmRhclNlbmRCdXR0b25UZXh0OiJTRU5EIixnb29nbGVtYXA6ITEsZ29vZ2xlbWFwTGFiZWw6Ikdvb2dsZSBNYXBzIixnb29nbGVtYXBDdXN0b21NZXNzYWdlOiExLGdvb2dsZW1hcENvbG9yOiIjZjNmM2YzIixnb29nbGVtYXBJY29uOiExLGdvb2dsZW1hcFNob3dQb3B1cFBsYXRmb3JtOiJub3doZXJlIixpbnN0YWdyYW06ITEsaW5zdGFncmFtTGFiZWw6Ikluc3RhZ3JhbSIsaW5zdGFncmFtQ29sb3I6IiNGNzc3MzciLGluc3RhZ3JhbUljb246ITEsbGluZTohMSxsaW5lTGFiZWw6IkxpbmUiLGxpbmVDb2xvcjoiIzAwYzMwMCIsbGluZUljb246ITEsbGluZVNob3dQb3B1cFBsYXRmb3JtOiJkZXNrdG9wIixsaW5rOiExLGxpbmtMYWJlbDoiTGluayIsbGlua0NvbG9yOiIjMWY4OGU1IixsaW5rSWNvbjohMSxsaW5rZWRpbjohMSxsaW5rZWRpbkxhYmVsOiJMaW5rZWRJbiIsbGlua2VkaW5Db2xvcjoiIzAwN2ViYiIsbGlua2VkaW5JY29uOiExLHNreXBlOiExLHNreXBlTGFiZWw6IlNreXBlIixza3lwZUNvbG9yOiIjMDBhZmYwIixza3lwZUljb246ITEsc2xhY2s6ITEsc2xhY2tMYWJlbDoiU2xhY2siLHNsYWNrQ29sb3I6IiNmZmZmZmYiLHNsYWNrSWNvbjohMSxzbXM6ITEsc21zTGFiZWw6IlNNUyIsc21zQ29sb3I6IiMxZWNlYTgiLHNtc0ljb246ITEsc21zU2hvd1BvcHVwUGxhdGZvcm06ImRlc2t0b3AiLHNuYXBjaGF0OiExLHNuYXBjaGF0TGFiZWw6IlNuYXBjaGF0IixzbmFwY2hhdENvbG9yOiIjRkZFQTAwIixzbmFwY2hhdEljb246ITEsc25hcGNoYXRTaG93UG9wdXBQbGF0Zm9ybToiZGVza3RvcCIsdGVsZWdyYW06ITEsdGVsZWdyYW1MYWJlbDoiVGVsZWdyYW0iLHRlbGVncmFtQ29sb3I6IiMwMDg3Y2IiLHRlbGVncmFtSWNvbjohMSx0aWt0b2s6ITEsdGlrdG9rTGFiZWw6IlRpa1RvayIsdGlrdG9rQ29sb3I6IiMwMDAwMDAiLHRpa3Rva0ljb246ITEsdHdpdHRlcjohMSx0d2l0dGVyTGFiZWw6IlguY29tIix0d2l0dGVyQ29sb3I6IiMwMDAwMDAiLHR3aXR0ZXJJY29uOiExLHZpYmVyOiExLHZpYmVyTGFiZWw6IlZpYmVyIix2aWJlckNvbG9yOiIjN2I1MTlkIix2aWJlckljb246ITEsdmliZXJTaG93UG9wdXBQbGF0Zm9ybToiZGVza3RvcCIsdmtvbnRha3RlOiExLHZrb250YWt0ZUxhYmVsOiJWa29udGFrdGUiLHZrb250YWt0ZUNvbG9yOiIjNjM4M2E4Iix2a29udGFrdGVJY29uOiExLGNhbGxiYWNrSG9zdDpudWxsLGNhbGxiYWNrOiExLGNhbGxiYWNrTGFiZWw6IkNhbGxiYWNrIixjYWxsYmFja0NvbG9yOiIjMDA2M2ZmIixjYWxsYmFja0ljb246ITEsY2FsbGJhY2tDdXN0b21NZXNzYWdlOiJXZSB3aWxsIGNhbGwgeW91IGJhY2sgaW4gNSBtaW5zISIsY2FsbGJhY2tOYW1lUGxhY2Vob2xkZXI6Ik5hbWUiLGNhbGxiYWNrUGhvbmVQbGFjZWhvbGRlcjoiUGhvbmUiLGNhbGxiYWNrU2VuZEJ1dHRvblRleHQ6IkNhbGwgbWUiLHdhemU6ITEsd2F6ZUxhYmVsOiJXYXplIix3YXplQ29sb3I6IiMzMmNjZmYiLHdhemVJY29uOiExLHdlY2hhdDohMSx3ZWNoYXRMYWJlbDoiV2VDaGF0Iix3ZWNoYXRDb2xvcjoiIzJkYzEwMCIsd2VjaGF0SWNvbjohMSx3ZWNoYXRTaG93UG9wdXBQbGF0Zm9ybToiZGVza3RvcCIsd2hhdHNhcHBMYWJlbDoiV2hhdHNBcHAiLHdoYXRzYXBwQ29sb3I6IiM0ZGMyNDciLHdoYXRzYXBwSWNvbjohMSx3aGF0c2FwcFNob3dQb3B1cDohMSx3aGF0c2FwcFBvcHVwVGl0bGU6ITEsd2hhdHNhcHBQb3B1cFN1YnRpdGxlOiExLHdoYXRzYXBwOiExLHdoYXRzYXBwQWdlbnROdW1iZXIyOiExLHdoYXRzYXBwQWdlbnROdW1iZXIzOiExLHdoYXRzYXBwQWdlbnROdW1iZXI0OiExLHdoYXRzYXBwQWdlbnROdW1iZXI1OiExLHdoYXRzYXBwQWdlbnROYW1lMToiQWdlbnQgbmFtZSIsd2hhdHNhcHBBZ2VudE5hbWUyOiJBZ2VudCBuYW1lIix3aGF0c2FwcEFnZW50TmFtZTM6IkFnZW50IG5hbWUiLHdoYXRzYXBwQWdlbnROYW1lNDoiQWdlbnQgbmFtZSIsd2hhdHNhcHBBZ2VudE5hbWU1OiJBZ2VudCBuYW1lIix3aGF0c2FwcEFnZW50UG9zaXRpb24xOiJBZ2VudCBwb3NpdGlvbiIsd2hhdHNhcHBBZ2VudFBvc2l0aW9uMjoiQWdlbnQgcG9zaXRpb24iLHdoYXRzYXBwQWdlbnRQb3NpdGlvbjM6IkFnZW50IHBvc2l0aW9uIix3aGF0c2FwcEFnZW50UG9zaXRpb240OiJBZ2VudCBwb3NpdGlvbiIsd2hhdHNhcHBBZ2VudFBvc2l0aW9uNToiQWdlbnQgcG9zaXRpb24iLHByZUZpbGxlZE1lc3NhZ2U6ITEsd2hhdHNhcHBQcmVGaWxsZWRNZXNzYWdlMjohMSx3aGF0c2FwcFByZUZpbGxlZE1lc3NhZ2UzOiExLHdoYXRzYXBwUHJlRmlsbGVkTWVzc2FnZTQ6ITEsd2hhdHNhcHBQcmVGaWxsZWRNZXNzYWdlNTohMSx3aGF0c2FwcEFnZW50SW1hZ2UxOiExLHdoYXRzYXBwQWdlbnRJbWFnZTI6ITEsd2hhdHNhcHBBZ2VudEltYWdlMzohMSx3aGF0c2FwcEFnZW50SW1hZ2U0OiExLHdoYXRzYXBwQWdlbnRJbWFnZTU6ITEsd29uZGVyY2hhdDohMSx3b25kZXJjaGF0TGFiZWw6IkFJIGFzc2lzdGFudCIsd29uZGVyY2hhdENvbG9yOiIjNjIzMmViIix3b25kZXJjaGF0SWNvbjohMSxhaTohMSxhaUxhYmVsOiJBSSBjaGF0Ym90IixhaUNvbG9yOiIjMTI5YmYzIixhaUljb246ITEsYWlBdXRvb3BlbjpudWxsLGtha2FvdGFsazohMSxrYWthb3RhbGtMYWJlbDoiS2FrYW9UYWxrIixrYWthb3RhbGtDb2xvcjoiI2YyZGMwMCIsa2FrYW90YWxrSWNvbjohMX0sYz1mdW5jdGlvbihyKXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbz1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj9fKE9iamVjdChvKSwhMCkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuO3Q9cixuPW9bZT1lXSwoZT1mdW5jdGlvbihlKXtlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT1pKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwPT09bilyZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpO249bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PWkobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PT1pKGUpP2U6U3RyaW5nKGUpfShlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW59KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG8pKTpfKE9iamVjdChvKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxlKSl9KX1yZXR1cm4gcn0oe30sbCk7ZnVuY3Rpb24gdShlKXtyZXR1cm4odT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0pKGUpfWZ1bmN0aW9uIHoodCxlKXt2YXIgbixyPU9iamVjdC5rZXlzKHQpO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYobj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLGUmJihuPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSxyLnB1c2guYXBwbHkocixuKSkscn1mdW5jdGlvbiByKHIpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBvPW51bGwhPWFyZ3VtZW50c1tlXT9hcmd1bWVudHNbZV06e307ZSUyP3ooT2JqZWN0KG8pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG47dD1yLG49b1tlPWVdLChlPWZ1bmN0aW9uKGUpe2U9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PXUoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDA9PT1uKXJldHVybigic3RyaW5nIj09PXQ/U3RyaW5nOk51bWJlcikoZSk7bj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09dShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PXUoZSk/ZTpTdHJpbmcoZSl9KGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09bn0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobykpOnooT2JqZWN0KG8pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLGUpKX0pfXJldHVybiByfXZhciBUPXtidXR0b25zOiExLGdyZWV0aW5nTWVzc2FnZTohMCxjYWxsVG9BY3Rpb246ITEsYnV0dG9uUG9wdXA6ITF9LEw9ImFjdGl2YXRvcl9jbGlja2VkIixNPSJhY3RpdmF0b3Jfb3ZlciIsUj0iZ3JlZXRpbmdfbWVzc2FnZV9jbG9zZWQiLHE9ImdyZWV0aW5nX21lc3NhZ2Vfb3BlbmVkIixaPSJidXR0b25fY2xpY2tlZCIsWD0ic2hvd19idXR0b25fcG9wdXAiLHM9e0FDVElWQVRPUl9DTElDS0VEOkwsQUNUSVZBVE9SX09WRVI6TSxHUkVFVElOR19NRVNTQUdFX0NMT1NFRDpSLEdSRUVUSU5HX01FU1NBR0VfT1BFTkVEOnEsQlVUVE9OX0NMSUNLRUQ6Wn07ZnVuY3Rpb24gWShlLHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UgTDpyZXR1cm4gcihyKHIoe30sZSksdC5wYXlsb2FkKSx7fSx7YnV0dG9uczohZS5idXR0b25zLGNhbGxUb0FjdGlvbjplLmJ1dHRvbnN9KTtjYXNlIE06Y2FzZSBaOmNhc2UgWDpjYXNlIFI6Y2FzZSBxOnJldHVybiByKHIoe30sZSksdC5wYXlsb2FkKTtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBRKCl7Qi53aGF0c2FwcC5zaG93UG9wdXA9Yy53aGF0c2FwcFNob3dQb3B1cCxCLnlvdXR1YmUuc2hvd1BvcHVwPWYoYy55b3V0dWJlU2hvd1BvcHVwUGxhdGZvcm0pLEIuY2FsbC5zaG93UG9wdXA9ZihjLmNhbGxTaG93UG9wdXBQbGF0Zm9ybSksQi5zbXMuc2hvd1BvcHVwPWYoYy5zbXNTaG93UG9wdXBQbGF0Zm9ybSksQi5saW5lLnNob3dQb3B1cD1mKGMubGluZVNob3dQb3B1cFBsYXRmb3JtKSxCLnNuYXBjaGF0LnNob3dQb3B1cD1mKGMuc25hcGNoYXRTaG93UG9wdXBQbGF0Zm9ybSksQi52aWJlci5zaG93UG9wdXA9ZihjLnZpYmVyU2hvd1BvcHVwUGxhdGZvcm0pLEIud2VjaGF0LnNob3dQb3B1cD1mKGMud2VjaGF0U2hvd1BvcHVwUGxhdGZvcm0pLEIuZ29vZ2xlbWFwLnNob3dQb3B1cD1mKGMuZ29vZ2xlbWFwU2hvd1BvcHVwUGxhdGZvcm0pO3ZhciB0PVtdO3JldHVybiBKLm1hcChmdW5jdGlvbihlKXtCW2VdLnNob3dQb3B1cCYmdC5wdXNoKGUpfSksdH12YXIgSz1VKCkmJi0xPT09WyJmaXJlZm94IiwiZWRnIiwic2FmYXJpIl0uaW5kZXhPZihmdW5jdGlvbigpe2Zvcih2YXIgZT1vKCkudG9Mb3dlckNhc2UoKSx0PTAsbj1bImZpcmVmb3giLCJ0cmlkZW50IiwiZWRnZSIsImVkZyIsIm9wZXJhIiwiY2hyb21lIiwic2FmYXJpIl07dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF07aWYoLTE8ZS5pbmRleE9mKHIpKXJldHVybiByfX0oKSksZj1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSJldmVyeXdoZXJlIjpyZXR1cm4hMDtjYXNlImRlc2t0b3AiOnJldHVybiBVKCk7Y2FzZSJtb2JpbGUiOnJldHVybiFVKCk7ZGVmYXVsdDpyZXR1cm4hMX19LEI9e2FjdGl2YXRvcjp7Y29sb3I6Yy5idXR0b25Db2xvcixzaG93UG9wdXA6ITEsdGl0bGU6bnVsbCxvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LGFwcGxlOntjb2xvcjpjLmFwcGxlQ29sb3Isc2hvd1BvcHVwOiFhKCkmJiF2KCksdGl0bGU6Yy5hcHBsZUxhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24tYXBwbGUiLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMH0seW91dHViZTp7Y29sb3I6Yy55b3V0dWJlQ29sb3Isc2hvd1BvcHVwOiEwLHRpdGxlOmMueW91dHViZUxhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24teW91dHViZSIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfSxjYWxsOntjb2xvcjpjLmNhbGxDb2xvcixzaG93UG9wdXA6VSgpLGNhbGxRckNvZGU6ITAsdGl0bGU6Yy5jYWxsTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi1jYWxsIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LGNvbnRhY3Rmb3JtOntob3N0OmMuY29udGFjdGZvcm1Ib3N0LGNvbG9yOmMuY29udGFjdGZvcm1Db2xvcixzaG93UG9wdXA6ITAsdGl0bGU6Yy5jb250YWN0Zm9ybUxhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24tY29udGFjdGZvcm0iLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMH0sY2FsZW5kYXI6e2hvc3Q6Yy5jYWxlbmRhckhvc3QsY29sb3I6Yy5jYWxlbmRhckNvbG9yLHNob3dQb3B1cDohMCx0aXRsZTpjLmNhbGVuZGFyTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi1jYWxlbmRhciIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfSxkaXNjb3JkOntjb2xvcjpjLmRpc2NvcmRDb2xvcixzaG93UG9wdXA6ITEsdGl0bGU6Yy5kaXNjb3JkTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi1kaXNjb3JkIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LHRlYW1zOntjb2xvcjpjLnRlYW1zQ29sb3Isc2hvd1BvcHVwOiExLHRpdGxlOmMudGVhbXNMYWJlbCxidXR0b25JZDoiZ2V0YnV0dG9uLXRlYW1zIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LGVtYWlsOntjb2xvcjpjLmVtYWlsQ29sb3Isc2hvd1BvcHVwOiExLHRpdGxlOmMuZW1haWxMYWJlbCxidXR0b25JZDoiZ2V0YnV0dG9uLWVtYWlsIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LGZhY2Vib29rOntjb2xvcjpjLmZhY2Vib29rQ29sb3Isc2hvd1BvcHVwOkssdGl0bGU6Yy5mYWNlYm9va0xhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24tZmFjZWJvb2siLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMH0sZ29vZ2xlbWFwOntjb2xvcjpjLmdvb2dsZW1hcENvbG9yLHRpdGxlOmMuZ29vZ2xlbWFwTGFiZWwsc2hvd1BvcHVwOiExLGJ1dHRvbklkOiJnZXRidXR0b24tZ29vZ2xlbWFwIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LGluc3RhZ3JhbTp7Y29sb3I6Yy5pbnN0YWdyYW1Db2xvcixzaG93UG9wdXA6ITEsdGl0bGU6Yy5pbnN0YWdyYW1MYWJlbCxidXR0b25JZDoiZ2V0YnV0dG9uLWluc3RhZ3JhbSIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfSxsaW5lOntjb2xvcjpjLmxpbmVDb2xvcixzaG93UG9wdXA6VSgpLHRpdGxlOmMubGluZUxhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24tbGluZSIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfSxsaW5rOntjb2xvcjpjLmxpbmtDb2xvcixzaG93UG9wdXA6ITEsdGl0bGU6Yy5saW5rTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi1saW5rIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LGxpbmtlZGluOntjb2xvcjpjLmxpbmtlZGluQ29sb3IsdGl0bGU6Yy5saW5rZWRpbkxhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24tbGlua2VkaW4iLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMH0sc2t5cGU6e2NvbG9yOmMuc2t5cGVDb2xvcix0aXRsZTpjLnNreXBlTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi1za3lwZSIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfSxzbGFjazp7Y29sb3I6Yy5zbGFja0NvbG9yLHRpdGxlOmMuc2xhY2tMYWJlbCxidXR0b25JZDoiZ2V0YnV0dG9uLXNsYWNrIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LHNtczp7Y29sb3I6Yy5zbXNDb2xvcixzaG93UG9wdXA6VSgpLHRpdGxlOmMuc21zTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi1zbXMiLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMX0sc25hcGNoYXQ6e2NvbG9yOmMuc25hcGNoYXRDb2xvcixzaG93UG9wdXA6VSgpLHRpdGxlOmMuc25hcGNoYXRMYWJlbCxidXR0b25JZDoiZ2V0YnV0dG9uLXNuYXBjaGF0IixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LHRlbGVncmFtOntjb2xvcjpjLnRlbGVncmFtQ29sb3Isc2hvd1BvcHVwOiExLHRpdGxlOmMudGVsZWdyYW1MYWJlbCxidXR0b25JZDoiZ2V0YnV0dG9uLXRlbGVncmFtIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LHRpa3Rvazp7Y29sb3I6Yy50aWt0b2tDb2xvcix0aXRsZTpjLnRpa3Rva0xhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24tdGlrdG9rIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LHR3aXR0ZXI6e2NvbG9yOmMudHdpdHRlckNvbG9yLHRpdGxlOmMudHdpdHRlckxhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24tdHdpdHRlciIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfSx2aWJlcjp7Y29sb3I6Yy52aWJlckNvbG9yLHNob3dQb3B1cDpVKCksdGl0bGU6Yy52aWJlckxhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24tdmliZXIiLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMH0sY2FsbGJhY2s6e2hvc3Q6Yy5jYWxsYmFja0hvc3QsY29sb3I6Yy5jYWxsYmFja0NvbG9yLHNob3dQb3B1cDohMCx0aXRsZTpjLmNhbGxiYWNrTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi1jYWxsYmFjayIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfSx2a29udGFrdGU6e2NvbG9yOmMudmtvbnRha3RlQ29sb3Isc2hvd1BvcHVwOiExLHRpdGxlOmMudmtvbnRha3RlTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi12a29udGFrdGUiLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMH0sd2F6ZTp7Y29sb3I6Yy53YXplQ29sb3IsdGl0bGU6Yy53YXplTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi13YXplIixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LHdlY2hhdDp7Y29sb3I6Yy53ZWNoYXRDb2xvcix0aXRsZTpjLndlY2hhdExhYmVsLHNob3dQb3B1cDpVKCksYnV0dG9uSWQ6ImdldGJ1dHRvbi13ZWNoYXQiLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMH0sd2hhdHNhcHA6e2NvbG9yOmMud2hhdHNhcHBDb2xvcixzaG93UG9wdXA6Yy53aGF0c2FwcFNob3dQb3B1cCx0aXRsZTpjLndoYXRzYXBwTGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi13aGF0c2FwcCIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfSx3b25kZXJjaGF0Ontjb2xvcjpjLndvbmRlcmNoYXRDb2xvcixzaG93UG9wdXA6ITAsdGl0bGU6Yy53b25kZXJjaGF0TGFiZWwsYnV0dG9uSWQ6ImdldGJ1dHRvbi13b25kZXJjaGF0IixvbkRlc2t0b3A6ITAsb25Nb2JpbGU6ITAsb25UYWJsZXQ6ITB9LGFpOntjb2xvcjpjLmFpQ29sb3Isc2hvd1BvcHVwOiEwLHRpdGxlOmMuYWlMYWJlbCxidXR0b25JZDoiYWkiLG9uRGVza3RvcDohMCxvbk1vYmlsZTohMCxvblRhYmxldDohMH0sa2FrYW90YWxrOntjb2xvcjpjLmtha2FvdGFsa0NvbG9yLHNob3dQb3B1cDohMSx0aXRsZTpjLmtha2FvdGFsa0xhYmVsLGJ1dHRvbklkOiJnZXRidXR0b24ta2FrYW90YWxrdCIsb25EZXNrdG9wOiEwLG9uTW9iaWxlOiEwLG9uVGFibGV0OiEwfX0sSj1PYmplY3Qua2V5cyhCKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIEJbZV0ub25EZXNrdG9wJiZVKCl8fEJbZV0ub25Nb2JpbGUmJiFVKCl9KTtmdW5jdGlvbiBkKGUpe3JldHVybihkPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSkoZSl9ZnVuY3Rpb24gZWUodCxlKXt2YXIgbixyPU9iamVjdC5rZXlzKHQpO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYobj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLGUmJihuPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSxyLnB1c2guYXBwbHkocixuKSkscn1mdW5jdGlvbiB0ZSh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj9lZShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24oZSl7bmUodCxlLG5bZV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6ZWUoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pfXJldHVybiB0fWZ1bmN0aW9uIG5lKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXtlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT1kKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwPT09bilyZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpO249bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PWQobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PT1kKGUpP2U6U3RyaW5nKGUpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiByZShlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP29lKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP29lKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gb2UoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgYWU9ZnVuY3Rpb24oKXt2YXIgZT1yZShPYmplY3QoRi51c2VTdGF0ZSkoYyksMiksdD1lWzBdLHI9ZVsxXTtyZXR1cm4gT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dmFyIHQ9KGU9ZS5kZXRhaWwpLmtleSxuPWUudmFsdWU7cihmdW5jdGlvbihlKXtyZXR1cm4gdGUodGUoe30sZSkse30sbmUoe30sZmUodCksbikpfSl9cmV0dXJuImFkbWluLmdldGJ1dHRvbi5pbywgbmV4dC5nZXRidXR0b24uaW8sIDEyNy4wLjAuMSwgbG9jYWxob3N0LCB0ZXN0LmdldGJ1dHRvbi5pbywgZGV2LmdldGJ1dHRvbi5pbywgZ2V0YnV0dG9uLmlvLCBhZG1pbi5zaG9waWZ5LmNvbSIuaW5jbHVkZXMobG9jYXRpb24uaG9zdG5hbWUpJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZXR0aW5nVXBkYXRlZCIsZSksZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXR0aW5nVXBkYXRlZCIsZSl9fSxbY10pLHR9O2Z1bmN0aW9uIGllKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/bGUoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/bGUoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBsZShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBjZT1ILmEuY3JlYXRlQ29udGV4dChudWxsKTtmdW5jdGlvbiB1ZShlKXt2YXIgZT1lLmNoaWxkcmVuLHQ9aWUoT2JqZWN0KEYudXNlUmVkdWNlcikoWSxUKSwyKSxuPXRbMF0scj10WzFdLHQ9e3RvZ2dsZUJ1dHRvbnM6ZnVuY3Rpb24oKXtyKHt0eXBlOnMuQUNUSVZBVE9SX0NMSUNLRUQscGF5bG9hZDp7YnV0dG9uUG9wdXA6ITEsZ3JlZXRpbmdNZXNzYWdlOiExfX0pfSxzaG93QnV0dG9uczpmdW5jdGlvbigpe3Ioe3R5cGU6cy5BQ1RJVkFUT1JfT1ZFUixwYXlsb2FkOntidXR0b25zOiEwLGJ1dHRvblBvcHVwOiExLGdyZWV0aW5nTWVzc2FnZTohMSxjYWxsVG9BY3Rpb246ITF9fSl9LGNsb3NlR3JlZXRpbmdNZXNzYWdlOmZ1bmN0aW9uKCl7cih7dHlwZTpzLkdSRUVUSU5HX01FU1NBR0VfQ0xPU0VELHBheWxvYWQ6e2dyZWV0aW5nTWVzc2FnZTohMSxidXR0b25Qb3B1cDohMSxjYWxsVG9BY3Rpb246ITB9fSl9LG9wZW5HcmVldGluZ01lc3NhZ2U6ZnVuY3Rpb24oKXtyKHt0eXBlOnMuR1JFRVRJTkdfTUVTU0FHRV9PUEVORUQscGF5bG9hZDp7Z3JlZXRpbmdNZXNzYWdlOiEwLGNhbGxUb0FjdGlvbjohMX19KX0sYnV0dG9uQ2xpY2tlZDpmdW5jdGlvbigpe3Ioe3R5cGU6cy5CVVRUT05fQ0xJQ0tFRCxwYXlsb2FkOntidXR0b25zOiExLGdyZWV0aW5nTWVzc2FnZTohMSxjYWxsVG9BY3Rpb246ITAsYnV0dG9uUG9wdXA6ITB9fSl9LHNob3dCdXR0b25Qb3B1cDpmdW5jdGlvbigpe3IoZnVuY3Rpb24oZSl7cmV0dXJuIGU9MDxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1lP2U6IiIsZT0tMSE9PVEoKS5pbmRleE9mKGUpJiZlLHt0eXBlOnMuQlVUVE9OX0NMSUNLRUQscGF5bG9hZDp7YnV0dG9uczohMSxidXR0b25Qb3B1cDplLGdyZWV0aW5nTWVzc2FnZTohMSxjYWxsVG9BY3Rpb246ITE9PT1lfX19KDA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIikpfSxjbG9zZUJ1dHRvblBvcHVwOmZ1bmN0aW9uKCl7cih7dHlwZTpzLkJVVFRPTl9DTElDS0VELHBheWxvYWQ6e2J1dHRvbnM6ITEsYnV0dG9uUG9wdXA6ITEsZ3JlZXRpbmdNZXNzYWdlOiExLGNhbGxUb0FjdGlvbjohMCxjYWxsVG9BY3Rpb25UaW1lcjohMH19KX19LG89YWUoKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQoY2UuUHJvdmlkZXIse3ZhbHVlOntzdGF0ZTpuLGFjdGlvbnM6dCxzZXR0aW5nczpvfX0sZSl9Y2UuQ29uc3VtZXI7ZnVuY3Rpb24gc2UoZSl7dmFyIHQ9ZS5jaGlsZHJlbixlPWUudGhlbWU7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KEMuYSx7dGhlbWU6ZGVbZV19LHQpfWZ1bmN0aW9uIGZlKGUpe3JldHVybiBlLnJlcGxhY2UoLyhbLV9dW2EtejAtOV0pL2csZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9VcHBlckNhc2UoKS5yZXBsYWNlKCItIiwiIikucmVwbGFjZSgiXyIsIiIpfSl9dmFyIFY9Y2UsQz10KDEpLGRlPXtsZWZ0Ontwb3NpdGlvbjoibGVmdCIsYnV0dG9uc09yZGVyOjEscG9wdXBzT3JkZXI6Mixjb250YWluZXJEaXJlY3Rpb246ImZsZXgtc3RhcnQiLGNhbGxUb0FjdGlvbk1hcmdpbjoiYXV0byBhdXRvIGF1dG8gMzFweCIsZ3JlZXRpbmdNYXJnaW46IjIxcHggMjBweCAwIDAifSxyaWdodDp7cG9zaXRpb246InJpZ2h0IixidXR0b25zT3JkZXI6Mixwb3B1cHNPcmRlcjoxLGNvbnRhaW5lckRpcmVjdGlvbjoiZmxleC1lbmQiLGNhbGxUb0FjdGlvbk1hcmdpbjoiYXV0byAzMXB4IGF1dG8gYXV0byIsZ3JlZXRpbmdNYXJnaW46IjIxcHggMCAwIDIwcHgifX0sJD1mdW5jdGlvbihlKXtyZXR1cm4gSC5hLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKGUpe3JldHVybiA0MDxlPzI6MzA8ZT8wOjIwPGU/LTE6MTA8ZT8tMjotNH0sW10pKGUpfSxwZT1mdW5jdGlvbihlLHQpe3JldHVybiBILmEudXNlQ2FsbGJhY2soZnVuY3Rpb24oZSx0KXt2YXIgbj0oZT1lKT97cjpwYXJzZUludChlLnN1YnN0cmluZygxLDMpLDE2KSxnOnBhcnNlSW50KGUuc3Vic3RyaW5nKDMsNSksMTYpLGI6cGFyc2VJbnQoZS5zdWJzdHJpbmcoNSw3KSwxNil9Om51bGw7aWYoIW4pcmV0dXJuIG51bGw7Zm9yKHZhciByPSgyNTUtbi5yKS8odC0yKSxvPSgyNTUtbi5nKS8odCsxKSxhPSgyNTUtbi5iKS8odCs1KSxpPVtdLGw9MDtsPD10O2wrKyl7dmFyIGM9TWF0aC5yb3VuZChuLnIrcipsKSx1PU1hdGgucm91bmQobi5nK28qbCkscz1NYXRoLnJvdW5kKG4uYithKmwpLGM9KHU9dSxzPXMsIm51bWJlciIhPXR5cGVvZihjPWMpfHwibnVtYmVyIiE9dHlwZW9mIHV8fCJudW1iZXIiIT10eXBlb2Ygcz9udWxsOiIjIitjLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikrdS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpK3MudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSk7YyYmaS5wdXNoKGMpfXJldHVybiBpLnNwbGljZSgtMyksaX0sW10pKGUsdCl9O2Z1bmN0aW9uIG1lKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/aGUoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/aGUoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBoZShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGdlKG8pe3ZhciBlPW1lKEguYS51c2VTdGF0ZSghMSksMiksdD1lWzBdLGE9ZVsxXTtyZXR1cm4gSC5hLnVzZUVmZmVjdChmdW5jdGlvbigpe2Z1bmN0aW9uIHQobil7dmFyIHI9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3ImJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0KCl9LHIpO3ZhciBlPW5ldyBJbWFnZTtlLnNyYz1uLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oZSl7dCgpfSl9KX12YXIgbj1vJiY1MDA8PW8/by01MDA6bnVsbCxlPVtjLmJ1dHRvbkltYWdlVXJsLGMuY29tcGFueUxvZ29VcmxdLHI9W2MuY2FsbEljb24sYy5lbWFpbEljb24sYy5mYWNlYm9va0ljb24sYy5pbnN0YWdyYW1JY29uLGMubGlua0ljb24sYy5saW5lSWNvbixjLnNtc0ljb24sYy5zbmFwY2hhdEljb24sYy50ZWxlZ3JhbUljb24sYy52aWJlckljb24sYy52a29udGFrdGVJY29uLGMud2hhdHNhcHBJY29uLGMuYWlJY29uXSxlPWUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUsNTAwKX0pO1Byb21pc2UuYWxsKGUpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT1yLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdChlLG4pfSk7UHJvbWlzZS5hbGwoZSkudGhlbihmdW5jdGlvbigpe2EoITApfSl9KX0sW10pLHR9dmFyIFc9ZnVuY3Rpb24oZSl7aWYoImFkbWluLmdldGJ1dHRvbi5pbywgbmV4dC5nZXRidXR0b24uaW8sIDEyNy4wLjAuMSwgbG9jYWxob3N0LCB0ZXN0LmdldGJ1dHRvbi5pbywgZGV2LmdldGJ1dHRvbi5pbywgZ2V0YnV0dG9uLmlvLCBhZG1pbi5zaG9waWZ5LmNvbSIuaW5jbHVkZXMobG9jYXRpb24uaG9zdG5hbWUpKXJldHVybiBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZWxlbWVudEFwcGVhcmVkIix7ZGV0YWlsOnt3aWRnZXRXaWR0aDplfX0pKX07ZnVuY3Rpb24gYmUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGEsaSxsPVtdLGM9ITAsdT0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYobC5wdXNoKHIudmFsdWUpLGwubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe3U9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGk9bi5yZXR1cm4oKSxPYmplY3QoaSkhPT1pKSlyZXR1cm59ZmluYWxseXtpZih1KXRocm93IG99fXJldHVybiBsfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZihlKXJldHVybiJzdHJpbmciPT10eXBlb2YgZT95ZShlLHQpOiJNYXAiPT09KG49Ik9iamVjdCI9PT0obj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSkpJiZlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IubmFtZTpuKXx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT95ZShlLHQpOnZvaWQgMH0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHllKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdmUoKXt2YXIgZT1iZShPYmplY3QoRi51c2VTdGF0ZSkoe3dpZHRoOnZvaWQgMCxoZWlnaHQ6dm9pZCAwfSksMiksdD1lWzBdLG49ZVsxXTtyZXR1cm4gT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtuKHt3aWR0aDp3aW5kb3cuaW5uZXJXaWR0aCxoZWlnaHQ6d2luZG93LmlubmVySGVpZ2h0fSl9cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGUpLGUoKSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixlKX19LFtdKSx0fWZ1bmN0aW9uIHdlKGUpe3JldHVybih3ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0pKGUpfWZ1bmN0aW9uIHhlKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxmdW5jdGlvbihlKXtlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT13ZShlKXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMD09PW4pcmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKTtuPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPT13ZShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PXdlKGUpP2U6U3RyaW5nKGUpfShyLmtleSkscil9fXZhciBrZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX12YXIgdCxuLHI7cmV0dXJuIHQ9ZSxyPVt7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwscj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbCxvPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTpudWxsLGE9NTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0mJmFyZ3VtZW50c1s1XSxlPShlPWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnRvU3RyaW5nKCkpKyI7ICIpKygicGF0aD0iKyhyfHwiLyIpKyI7ICIpKyJzYW1lc2l0ZT1sYXg7ICI7biYmKCJzdHJpbmciPT10eXBlb2Ygbnx8biBpbnN0YW5jZW9mIFN0cmluZz9lKz0iZXhwaXJlcz0iK24rIjsgIjooKHQ9bmV3IERhdGUpLnNldFRpbWUodC5nZXRUaW1lKCkrMWUzKm4pLGUrPSJleHBpcmVzPSIrdC50b1VUQ1N0cmluZygpKyI7ICIpKSxvJiYoZSs9ImRvbWFpbj0iK28rIjsgIiksYSYmKGUrPSJzZWN1cmU7ICIpLGRvY3VtZW50LmNvb2tpZT1lfX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZSsiPSIsbj1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxyPTA7cjxuLmxlbmd0aDtyKyspe2Zvcih2YXIgbz1uW3JdOyIgIj09PW8uY2hhckF0KDApOylvPW8uc3Vic3RyaW5nKDEpO2lmKDA9PT1vLmluZGV4T2YodCkpcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChvLnN1YnN0cmluZyh0Lmxlbmd0aCxvLmxlbmd0aCkpfXJldHVybiBudWxsfX1dLChuPW51bGwpJiZ4ZSh0LnByb3RvdHlwZSxuKSxyJiZ4ZSh0LHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCksU2U9MTYsQ2U9MTQsRWU9ImdiLXdpZGdldC1jb29raWUiLE9lPSExO2Z1bmN0aW9uIGplKCl7Y29uc29sZS5sb2coInZhbGlkYXRpb24uLi4iLGcpO2Z1bmN0aW9uIG8oZSl7ZS5zdGFydHNXaXRoKCJ3d3cuIikmJihlPWUuc2xpY2UoNCkpO3ZhciB0PWxvY2F0aW9uLmhvc3RuYW1lLGU9ZS50b0xvd2VyQ2FzZSgpLG49dC5zbGljZSgwLC1lLmxlbmd0aCkscj10LmVuZHNXaXRoKGUpJiZbIiIsIi4iXS5pbmNsdWRlcyhuLmNoYXJBdChuLmxlbmd0aC0xKSk7cmV0dXJuIHJ8fGNvbnNvbGUud2FybigicmVhc29uOiBkb21haW4iLHQsbixlKSxyfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuKXt2YXIgZSx0OyFnJiYiYWRtaW4uZ2V0YnV0dG9uLmlvLCBuZXh0LmdldGJ1dHRvbi5pbywgMTI3LjAuMC4xLCBsb2NhbGhvc3QsIHRlc3QuZ2V0YnV0dG9uLmlvLCBkZXYuZ2V0YnV0dG9uLmlvLCBnZXRidXR0b24uaW8sIGFkbWluLnNob3BpZnkuY29tIi5pbmNsdWRlcyhsb2NhdGlvbi5ob3N0bmFtZSk/KGMuaXNQcm89ITAsbigpKTpjLmtleXx8Z3x8Yy5oYXNoSWQ/KGU9KHQ9Imh0dHBzOi8vd2lkZ2V0LmdldGJ1dHRvbi5pby9hcGkvdmFsaWRhdGUiKSsiP2tleT0iK2Mua2V5LHQ9Zz90KyI/aGFzaF9pZD0iK2c6Yy5oYXNoSWQ/dCsiP2hhc2hfaWQ9IitjLmhhc2hJZDplLGZldGNoKHQpLnRoZW4oZnVuY3Rpb24oZSl7ZS5vaz9lLmpzb24oKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PW51bGwhPWUmJmUuY3JlYXRlZF9hdD9lLmNyZWF0ZWRfYXQ6bnVsbDtjLmlzUHJvPSEwPT09ZS52YWxpZCYmZnVuY3Rpb24oKXt2YXIgZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCx0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLG49KGNvbnNvbGUubG9nKCJ2YWxpZGF0ZURvbWFpbiIsZSx0KSxuZXcgRGF0ZSgiMjAyMi0wNS0xMyIpKSxyPXQ/bmV3IERhdGUodCk6bnVsbDtyZXR1cm4gbnVsbD09PXQ/byhlKTohKG48PXIpfHwoZT9vKGUpOihjb25zb2xlLndhcm4oInJlYXNvbjogaW52YWxpZCBkb21haW4iLGUpLCExKSl9KGUuZG9tYWlucyx0KSxjLnN1YnNjcmlwdGlvbkNyZWF0ZWREYXRlPXQsZS5vcHRpb25zJiYoT2U9ZS5vcHRpb25zKSxjLmlzUHJvfHxjb25zb2xlLndhcm4oIkdldEJ1dHRvbiB3b3JrcyBpbiBERU1PIG1vZGUsIHBsZWFzZSByZW5ldyBzdWJzY3JpcHRpb24gb3IgY29udGFjdCB3aXRoIHVzOiBodHRwczovL2dldGJ1dHRvbi5pbyIpLG4oKX0pOihjLmlzUHJvPSEwLG4oKSl9KSk6KGMuaXNQcm89ITEsbigpKX0pfWZ1bmN0aW9uIEFlKGUpe3ZhciB0PVtdO3JldHVybih0PSJzdHJpbmciPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIFN0cmluZz8oZT1lLnRyaW0oKSkuc3BsaXQoL1ssXG5dKy8pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9KTp0KS5maWx0ZXIoZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmIiIhPT1lLnRyaW0oKSYmbi5pbmRleE9mKGUpPT09dH0pfWZ1bmN0aW9uIFBlKGUpe3JldHVybiBlLnJlcGxhY2UoL1wvJC8sIiIpfWZ1bmN0aW9uIEllKGUsdCxuKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG8sYSxpPWVbcl0udHJpbSgpOyIiIT09aSYmKGkuZW5kc1dpdGgoIioiKT8obz1QZShpLnJlcGxhY2UoIioiLCIiKSksKGE9UGUod2luZG93LmxvY2F0aW9uLmhyZWYudG9Mb3dlckNhc2UoKSkpLnN0YXJ0c1dpdGgobykmJmEubGVuZ3RoPm8ubGVuZ3RoP2Muc2hvd1dpZGdldD10OmMuc2hvd1dpZGdldD0hdCk6bmV3IFJlZ0V4cCgiXiIuY29uY2F0KFBlKGkucmVwbGFjZSgvXCovZywiLioiKSksIiQiKSwiaSIpLnRlc3QoUGUod2luZG93LmxvY2F0aW9uLmhyZWYpKSYmKGMuc2hvd1dpZGdldD10KSl9biYmIWMuc2hvd1dpZGdldCYmKGMuc2hvd1dpZGdldD0hMSl9ZnVuY3Rpb24gX2UoZSl7Zm9yKHZhciB0PTAsbj1PYmplY3Qua2V5cyhlKTt0PG4ubGVuZ3RoO3QrKyl7dmFyIHI9blt0XTtjW2ZlKHIpXT1lW3JdfX1mdW5jdGlvbiB6ZShlLHQpe2Zvcih2YXIgbj0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbCxyPTAsbz1PYmplY3Qua2V5cyhsKTtyPG8ubGVuZ3RoO3IrKyl7dmFyIGE9b1tyXTtjW2FdPWxbYV19biYmX2UobiksamUoIiIuY29uY2F0KHQsIi8vIikuY29uY2F0KGUsIi8iKSkudGhlbihmdW5jdGlvbigpe3ZhciBlLHQsbjtpZihPZSYmX2UoT2UpLGMuaXNQcm8/Yy5hY3RpdmF0b3JTaXplPWMuYWN0aXZhdG9yU2l6ZXx8NTA6Yy5hY3RpdmF0b3JTaXplPTUwLGMuaGFzT3duUHJvcGVydHkoInNoaWZ0SG9yaXpvbnRhbCIpJiYhKGMuc2hpZnRIb3Jpem9udGFsPFNlKSYmYy5pc1Byb3x8KGMuc2hpZnRIb3Jpem9udGFsPVNlKSxjLmhhc093blByb3BlcnR5KCJzaGlmdFZlcnRpY2FsIikmJiEoYy5zaGlmdFZlcnRpY2FsPENlKSYmYy5pc1Byb3x8KGMuc2hpZnRWZXJ0aWNhbD1DZSksInN0cmluZyI9PXR5cGVvZiBjLm9yZGVyfHxjLm9yZGVyIGluc3RhbmNlb2YgU3RyaW5nP2Mub3JkZXI9Yy5vcmRlci5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9KTpBcnJheS5pc0FycmF5KGMub3JkZXIpJiYoYy5vcmRlcj1bXSksYy5vcmRlcj1jLm9yZGVyLmNvbmNhdChPYmplY3Qua2V5cyh4KCkoYyxKKSkpLDA9PT1jLm9yZGVyLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkJ1dHRvbiBpcyBlbXB0eSIpO2Mub3JkZXI9Yy5vcmRlci5maWx0ZXIoZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmbi5pbmRleE9mKGUpPT09dH0pLGMub3JkZXI9Yy5vcmRlci5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFlJiZjLmhhc093blByb3BlcnR5KGUpJiYhIWNbZV19KSxjLmlzUHJvfHwoYy5vcmRlcj1jLm9yZGVyLnNsaWNlKDAsMikpLGMuYnV0dG9uQ29sb3I9bnVsbCE9KGU9Yy5idXR0b25Db2xvcik/ZToiI2ZmNjU1MCIsYy5pc1NpbmdsZT0xPT09Yy5vcmRlci5sZW5ndGgsYy5pc1Byb3x8KGMuYnV0dG9uSW1hZ2VVcmw9bnVsbCxjLmFwcGxlSWNvbj1udWxsLGMuY2FsbEljb249bnVsbCxjLmNvbnRhY3Rmb3JtSWNvbj1udWxsLGMuZGlzY29yZEljb249bnVsbCxjLmVtYWlsSWNvbj1udWxsLGMuZmFjZWJvb2tJY29uPW51bGwsYy5nb29nbGVtYXBJY29uPW51bGwsYy5pbnN0YWdyYW1JY29uPW51bGwsYy5saW5lSWNvbj1udWxsLGMubGlua0ljb249bnVsbCxjLmxpbmtlZGluSWNvbj1udWxsLGMuc2t5cGVJY29uPW51bGwsYy5zbGFja0ljb249bnVsbCxjLnNtc0ljb249bnVsbCxjLnNuYXBjaGF0SWNvbj1udWxsLGMudGVsZWdyYW1JY29uPW51bGwsYy50d2l0dGVySWNvbj1udWxsLGMudGlrdG9rSWNvbj1udWxsLGMudmliZXJJY29uPW51bGwsYy52a29udGFrdGVJY29uPW51bGwsYy53YXplSWNvbj1udWxsLGMud2VjaGF0SWNvbj1udWxsLGMud2hhdHNhcHBJY29uPW51bGwpLGMuaXNQcm98fChjLmFwcGxlTGFiZWw9Qi5hcHBsZS50aXRsZSxjLmNhbGxMYWJlbD1CLmNhbGwudGl0bGUsYy5jb250YWN0Zm9ybUxhYmVsPUIuY29udGFjdGZvcm0udGl0bGUsYy5kaXNjb3JkTGFiZWw9Qi5kaXNjb3JkLnRpdGxlLGMuZW1haWxMYWJlbD1CLmVtYWlsLnRpdGxlLGMuZmFjZWJvb2tMYWJlbD1CLmZhY2Vib29rLnRpdGxlLGMuZ29vZ2xlbWFwTGFiZWw9Qi5nb29nbGVtYXAudGl0bGUsYy5pbnN0YWdyYW1MYWJlbD1CLmluc3RhZ3JhbS50aXRsZSxjLmxpbmVMYWJlbD1CLmxpbmUudGl0bGUsYy5saW5rTGFiZWw9Qi5saW5rLnRpdGxlLGMubGlua2VkaW5MYWJlbD1CLmxpbmtlZGluLnRpdGxlLGMuc2t5cGVMYWJlbD1CLnNreXBlLnRpdGxlLGMuc2xhY2tMYWJlbD1CLnNsYWNrLnRpdGxlLGMuc21zTGFiZWw9Qi5zbXMudGl0bGUsYy5zbmFwY2hhdExhYmVsPUIuc25hcGNoYXQudGl0bGUsYy50ZWxlZ3JhbUxhYmVsPUIudGVsZWdyYW0udGl0bGUsYy50aWt0b2tMYWJlbD1CLnRpa3Rvay50aXRsZSxjLnR3aXR0ZXJMYWJlbD1CLnR3aXR0ZXIudGl0bGUsYy52aWJlckxhYmVsPUIudmliZXIudGl0bGUsYy52a29udGFrdGVMYWJlbD1CLnZrb250YWt0ZS50aXRsZSxjLndhemVMYWJlbD1CLndhemUudGl0bGUsYy53ZWNoYXRMYWJlbD1CLndlY2hhdC50aXRsZSxjLndoYXRzYXBwTGFiZWw9Qi53aGF0c2FwcC50aXRsZSksYy5ncmVldGluZz1jLmdyZWV0aW5nJiZjLmlzUHJvLGMuZ3JlZXRpbmcmJjAhPT1jLmdyZWV0aW5nQ29va2llJiYoZT1EYXRlLm5vdygpLG49RWUrKGd8fCIiKSwhKHQ9a2UuZ2V0KG4pKXx8KGUtKHQ9cGFyc2VJbnQodCwxMCkpKS8xZTM+PWMuZ3JlZXRpbmdDb29raWU/a2Uuc2V0KG4sZSxudWxsKTpjLmdyZWV0aW5nPSExKSxjLnBvc2l0aW9uPSJsZWZ0Ij09PWMucG9zaXRpb24/ImxlZnQiOiJyaWdodCIsIWMuaXNQcm8mJihjLmJyYW5kaW5nPSEwLGMuYW5pbWF0aW9uPSExLGMuZGlyZWN0aW9uPSJjb2x1bW4iLGMuYm9yZGVyPSExLGMubm90aWZpY2F0aW9uSW5kaWNhdG9yPSExLGMuYnV0dG9uQm9yZGVyUmFkaXVzPTUwLGMuYnV0dG9uU2hhZG93PTQwLGMuYnV0dG9uT3BhY2l0eT1sLmJ1dHRvbk9wYWNpdHksYy5iZ1N0eWxlPSJjb2xvciIsYy5hY3RpdmF0b3JJY29uPSJjbGFzc2ljIixjLmJ1dHRvblN0eWxlPSJjbGFzc2ljIixnfHxjLmhhc2hJZCkmJihjLmNhbGxUb0FjdGlvbj0hMSxjLmFjdGl2YXRvclNpemU9bC5hY3RpdmF0b3JTaXplLGMuYnV0dG9uQ29sb3I9bC5idXR0b25Db2xvcixjLmJ1dHRvblNoYWRvdz0wLGMuZ3JlZXRpbmc9ITEsYy5wb3NpdGlvbj1sLnBvc2l0aW9uLGMuc2hpZnRIb3Jpem9udGFsPTE2LGMuc2hpZnRWZXJ0aWNhbD0xNCksYy5nYT1jLmlzUHJvJiZjLmdhLHQ9QWUoYy5wYWdlTGlzdFRvU2hvdyksbj1BZShjLnBhZ2VMaXN0VG9IaWRlKSxjLmRpc3BsYXlPbkFsbFBhZ2VzP2Muc2hvd1dpZGdldD0hMDp0Lmxlbmd0aHx8bi5sZW5ndGg/dC5sZW5ndGg/bi5sZW5ndGg/KEllKHQsIShjLnNob3dXaWRnZXQ9ITEpLCExKSxJZShuLCExLCEwKSk6SWUodCwhKGMuc2hvd1dpZGdldD0hMSksITEpOkllKG4sIShjLnNob3dXaWRnZXQ9ITApLCEwKTpjLnNob3dXaWRnZXQ9ITEsYy5zaG93V2lkZ2V0JiYoYy5zaG93V2lkZ2V0PUQoKT9jLm1vYmlsZTpjLmRlc2t0b3ApLGMuY29uZmlnTG9hZGVkPSEwfSksc2V0VGltZW91dChmdW5jdGlvbigpe1coImNsYXNzaWMiPT09Yy5idXR0b25TdHlsZT9jLmFjdGl2YXRvclNpemU6MypjLmFjdGl2YXRvclNpemUpfSw1MDApfWZ1bmN0aW9uIFRlKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7Yy5jb25maWdMb2FkZWQ/ZSghMCk6dCghMSl9KX1mdW5jdGlvbiBMZShyLGUsdCl7dmFyIG89MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1lP2U6MTAsYT0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PXQ/dDo1MDA7cmV0dXJuIGNvbnNvbGUubG9nKCJjb25maWcgbG9hZGluZy4uIixvKSxuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe3IoKS50aGVuKHQpLmNhdGNoKGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXsxPT09bz8obihlKSxjb25zb2xlLmVycm9yKCJzdG9wIGNvbmZpZyBsb2FkcyIpKTpMZShyLGEsby0xKS50aGVuKHQsbil9LGEpfSl9KX1mdW5jdGlvbiBNZShlKXt3aW5kb3cuaGFzT3duUHJvcGVydHkoImRhdGFMYXllciIpJiYodD1lLHdpbmRvdy5kYXRhTGF5ZXIucHVzaCh7ZXZlbnQ6ImdldGJ1dHRvbl9jbGljayIsZXZlbnRfY2F0ZWdvcnk6IkdldEJ1dHRvbiBXaWRnZXQiLGV2ZW50X2xhYmVsOiJjbGlja18iLmNvbmNhdCh0KSxldmVudENhdGVnb3J5OiJHZXRCdXR0b24gV2lkZ2V0IixldmVudEFjdGlvbjoiY2xpY2tfIi5jb25jYXQodCl9KSksd2luZG93Lmhhc093blByb3BlcnR5KCJndGFnIikmJih0PXtldmVudF9jYXRlZ29yeToiR2V0QnV0dG9uIFdpZGdldCIsZXZlbnRfbGFiZWw6ImNsaWNrXyIuY29uY2F0KHQ9ZSl9LHdpbmRvdy5ndGFnKCJldmVudCIsImNsaWNrIix0KSksd2luZG93Lmhhc093blByb3BlcnR5KCJnYSIpJiYobj17ZXZlbnRDYXRlZ29yeToiR2V0QnV0dG9uIFdpZGdldCIsZXZlbnRBY3Rpb246ImNsaWNrXyIuY29uY2F0KG49ZSl9LHI9d2luZG93LmdhLmdldEFsbD93aW5kb3cuZ2EuZ2V0QWxsKClbMF06dm9pZCAwKSYmci5zZW5kKCJldmVudCIsImNsaWNrIixuKTt2YXIgdCxuLHI9ZTtyPXtjb250ZW50X2NhdGVnb3J5OiJHZXRCdXR0b24gV2lkZ2V0Iixjb250ZW50X25hbWU6ImNsaWNrXyIuY29uY2F0KHIpfSwiZnVuY3Rpb24iPT10eXBlb2YgZmJxJiZmYnEoInRyYWNrIiwiY2xpY2siLHIpfXZhciBSZT1PYmplY3QoQy5lKShbIjAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg0NXB4KTt9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO30iXSksTmU9T2JqZWN0KEMuZSkoWyIwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDQ1cHgpO30iXSksRGU9T2JqZWN0KEMuZSkoWyIwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNDVweCk7fXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt9Il0pLFVlPU9iamVjdChDLmUpKFsiMCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC00NXB4KTt9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO30iXSksQmU9T2JqZWN0KEMuZSkoWyIwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7fXRve29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCg0NXB4KTt9Il0pLEZlPU9iamVjdChDLmUpKFsiMCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO310b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTQ1cHgpO30iXSksSGU9T2JqZWN0KEMuZSkoWyIwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSgtNjBkZWcpO310b3tvcGFjaXR5OjE7fSJdKSxWZT1PYmplY3QoQy5lKShbIjAle29wYWNpdHk6MTt9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoLTYwZGVnKTt9Il0pLGU9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMXMxOHEzZC0wIn0pKFsiYW5pbWF0aW9uLWR1cmF0aW9uOi4yczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2U7YW5pbWF0aW9uLWRlbGF5Oi4wNXM7IiwiICIsIiAiLCIiXSxmdW5jdGlvbihlKXtyZXR1cm4icm93Ij09PWUuZGlyZWN0aW9uJiZPYmplY3QoQy5jKShbInRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOyIsIjsiLCI7Il0sZS5pc1Nob3cmJk9iamVjdChDLmMpKFsiYW5pbWF0aW9uLWZpbGwtbW9kZTpiYWNrd2FyZHM7YW5pbWF0aW9uLW5hbWU6IiwiOyJdLCJyaWdodCI9PT1lLnRoZW1lLnBvc2l0aW9uP0RlOlVlKSwhZS5pc1Nob3cmJk9iamVjdChDLmMpKFsiYW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczthbmltYXRpb24tbmFtZToiLCI7Il0sInJpZ2h0Ij09PWUudGhlbWUucG9zaXRpb24/QmU6RmUpKX0sZnVuY3Rpb24oZSl7cmV0dXJuImNvbHVtbiI9PT1lLmRpcmVjdGlvbiYmT2JqZWN0KEMuYykoWyJ0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTsiLCI7IiwiOyJdLGUuaXNTaG93JiZPYmplY3QoQy5jKShbImFuaW1hdGlvbi1maWxsLW1vZGU6YmFja3dhcmRzO2FuaW1hdGlvbi1uYW1lOiIsIjsiXSxSZSksIWUuaXNTaG93JiZPYmplY3QoQy5jKShbImFuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHM7YW5pbWF0aW9uLW5hbWU6IiwiOyJdLE5lKSl9LGZ1bmN0aW9uKGUpe3JldHVybiJhcm91bmQiPT09ZS5kaXJlY3Rpb24mJk9iamVjdChDLmMpKFsiYW5pbWF0aW9uLWR1cmF0aW9uOi40czthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7IiwiOyIsIjsiXSxlLmlzU2hvdyYmT2JqZWN0KEMuYykoWyJhbmltYXRpb24tbmFtZToiLCI7Il0sSGUpLCFlLmlzU2hvdyYmT2JqZWN0KEMuYykoWyJhbmltYXRpb24tbmFtZToiLCI7Il0sVmUpKX0pLHQ9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMXMxOHEzZC0xIn0pKFsiYW5pbWF0aW9uLWR1cmF0aW9uOi4yczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2U7YW5pbWF0aW9uLWRlbGF5Oi4wNXM7IiwiICIsIiJdLGZ1bmN0aW9uKGUpe3JldHVybiJyb3ciPT09ZS5kaXJlY3Rpb24mJk9iamVjdChDLmMpKFsidHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7IiwiOyIsIjsiXSxlLmlzU2hvdyYmT2JqZWN0KEMuYykoWyJhbmltYXRpb24tZmlsbC1tb2RlOmJhY2t3YXJkczthbmltYXRpb24tbmFtZToiLCI7Il0sInJpZ2h0Ij09PWUudGhlbWUucG9zaXRpb24/RGU6VWUpLCFlLmlzU2hvdyYmT2JqZWN0KEMuYykoWyJhbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzO2FuaW1hdGlvbi1uYW1lOiIsIjsiXSwicmlnaHQiPT09ZS50aGVtZS5wb3NpdGlvbj9CZTpGZSkpfSxmdW5jdGlvbihlKXtyZXR1cm4icm93IiE9PWUuZGlyZWN0aW9uJiZPYmplY3QoQy5jKShbInRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOyIsIjsiLCI7Il0sZS5pc1Nob3cmJk9iamVjdChDLmMpKFsiYW5pbWF0aW9uLWZpbGwtbW9kZTpiYWNrd2FyZHM7YW5pbWF0aW9uLW5hbWU6IiwiOyJdLFJlKSwhZS5pc1Nob3cmJk9iamVjdChDLmMpKFsiYW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczthbmltYXRpb24tbmFtZToiLCI7Il0sTmUpKX0pLCRlPU9iamVjdChDLmUpKFsiMCV7b3BhY2l0eTowO2xlZnQ6LTIwcHg7fXRve29wYWNpdHk6MTtsZWZ0OjA7fSJdKSxXZT1PYmplY3QoQy5lKShbIjAle29wYWNpdHk6MTsiLCI6MDt9dG97b3BhY2l0eTowOyIsIjotMjBweDt9Il0sZnVuY3Rpb24oZSl7cmV0dXJuIGUudGhlbWUucG9zaXRpb259LGZ1bmN0aW9uKGUpe3JldHVybiBlLnRoZW1lLnBvc2l0aW9ufSksR2U9T2JqZWN0KEMuZSkoWyIwJXtvcGFjaXR5OjA7cmlnaHQ6LTIwcHg7fXRve29wYWNpdHk6MTtyaWdodDowO30iXSkscWU9T2JqZWN0KEMuZSkoWyIwJXtvcGFjaXR5OjE7IiwiOjA7fXRve29wYWNpdHk6MDsiLCI6LTIwcHg7fSJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLnRoZW1lLnBvc2l0aW9ufSxmdW5jdGlvbihlKXtyZXR1cm4gZS50aGVtZS5wb3NpdGlvbn0pLFplPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLTFzMThxM2QtMiJ9KShbInRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3Bvc2l0aW9uOnJlbGF0aXZlO2FuaW1hdGlvbi1kdXJhdGlvbjowLjY0czthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjMsMSwuMzIsMSk7YW5pbWF0aW9uLWRlbGF5OjAuMTZzOyIsIjsiLCI7Il0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNTaG93JiZPYmplY3QoQy5jKShbImFuaW1hdGlvbi1maWxsLW1vZGU6YmFja3dhcmRzO2FuaW1hdGlvbi1uYW1lOiIsIjsiXSxmdW5jdGlvbihlKXtyZXR1cm4ibGVmdCI9PT1lLnRoZW1lLnBvc2l0aW9uPyRlOkdlfSl9LGZ1bmN0aW9uKGUpe3JldHVybiFlLmlzU2hvdyYmT2JqZWN0KEMuYykoWyJhbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzO2FuaW1hdGlvbi1uYW1lOiIsIjsiXSxmdW5jdGlvbihlKXtyZXR1cm4ibGVmdCI9PT1lLnRoZW1lLnBvc2l0aW9uP1dlOnFlfSl9KSxYZT1PYmplY3QoQy5lKShbImZyb217b3BhY2l0eTowO21hcmdpbi1sZWZ0Oi0yMHB4O310b3tvcGFjaXR5OjE7fSJdKSxZZT1PYmplY3QoQy5lKShbImZyb217b3BhY2l0eTowO21hcmdpbi1yaWdodDotMjBweDt9dG97b3BhY2l0eToxO30iXSksUWU9T2JqZWN0KEMuZSkoWyIwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7fTE0JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjMpO3RyYW5zZm9ybTpzY2FsZSgxLjMpO30yOCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO300MiV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4zKTt0cmFuc2Zvcm06c2NhbGUoMS4zKTt9NzAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTt9Il0pLEtlPU9iamVjdChDLmUpKFsiZnJvbXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt9MTUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yNSUsMCwwKSByb3RhdGUzZCgwLDAsMSwtNWRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yNSUsMCwwKSByb3RhdGUzZCgwLDAsMSwtNWRlZyk7fTMwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMCUsMCwwKSByb3RhdGUzZCgwLDAsMSwzZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAlLDAsMCkgcm90YXRlM2QoMCwwLDEsM2RlZyk7fTQ1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTUlLDAsMCkgcm90YXRlM2QoMCwwLDEsLTNkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTUlLDAsMCkgcm90YXRlM2QoMCwwLDEsLTNkZWcpO302MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAlLDAsMCkgcm90YXRlM2QoMCwwLDEsMmRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwJSwwLDApIHJvdGF0ZTNkKDAsMCwxLDJkZWcpO303NSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUlLDAsMCkgcm90YXRlM2QoMCwwLDEsLTFkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNSUsMCwwKSByb3RhdGUzZCgwLDAsMSwtMWRlZyk7fXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO30iXSksSmU9T2JqZWN0KEMuZSkoWyJmcm9tey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMSwxLDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKTt9MzAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4yNSwwLjc1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMjUsMC43NSwxKTt9NDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMC43NSwxLjI1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKDAuNzUsMS4yNSwxKTt9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xNSwwLjg1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMTUsMC44NSwxKTt9NjUley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMC45NSwxLjA1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKDAuOTUsMS4wNSwxKTt9NzUley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4wNSwwLjk1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMDUsMC45NSwxKTt9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMSwxLDEpO30iXSksZXQ9T2JqZWN0KEMuZSkoWyJmcm9tLDIwJSw1MyUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjIxNSwwLjYxLDAuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMjE1LDAuNjEsMC4zNTUsMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7fTQwJSw0MyV7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjc1NSwwLjA1LDAuODU1LDAuMDYpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuNzU1LDAuMDUsMC44NTUsMC4wNik7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzBweCwwKSBzY2FsZVkoMS4xKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzBweCwwKSBzY2FsZVkoMS4xKTt9NzAley13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC43NTUsMC4wNSwwLjg1NSwwLjA2KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjc1NSwwLjA1LDAuODU1LDAuMDYpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTE1cHgsMCkgc2NhbGVZKDEuMDUpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xNXB4LDApIHNjYWxlWSgxLjA1KTt9ODAley13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMjE1LDAuNjEsMC4zNTUsMSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMjE1LDAuNjEsMC4zNTUsMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlWSgwLjk1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlWSgwLjk1KTt9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTRweCwwKSBzY2FsZVkoMS4wMik7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTRweCwwKSBzY2FsZVkoMS4wMik7fSJdKSx0dD1PYmplY3QoQy5lKShbImZyb217LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMSwxLDEpO301MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpO310b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSk7fSJdKSxudD1PYmplY3QoQy5lKShbIjAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7fTYuNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTt9MTguNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpO30zMS41JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO300My41JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7fTUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO30iXSkscnQ9T2JqZWN0KEMuZSkoWyIyMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMCwwLDEsMTVkZWcpO3RyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSwxNWRlZyk7fTQwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSwtMTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSwtMTBkZWcpO302MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMCwwLDEsNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZTNkKDAsMCwxLDVkZWcpO304MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMCwwLDEsLTVkZWcpO3RyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSwtNWRlZyk7fXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKDAsMCwxLDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSwwZGVnKTt9Il0pLG90PU9iamVjdChDLmUpKFsiZnJvbXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSk7fTEwJSwyMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgwLjksMC45LDAuOSkgcm90YXRlM2QoMCwwLDEsLTNkZWcpO3RyYW5zZm9ybTpzY2FsZTNkKDAuOSwwLjksMC45KSByb3RhdGUzZCgwLDAsMSwtM2RlZyk7fTMwJSw1MCUsNzAlLDkwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMSwxLjEsMS4xKSByb3RhdGUzZCgwLDAsMSwzZGVnKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlM2QoMCwwLDEsM2RlZyk7fTQwJSw2MCUsODAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpIHJvdGF0ZTNkKDAsMCwxLC0zZGVnKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlM2QoMCwwLDEsLTNkZWcpO310b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSk7fSJdKSxhdD1PYmplY3QoQy5lKShbImZyb20sMTEuMSUsdG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7fTIyLjIley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7dHJhbnNmb3JtOnNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7fTMzLjMley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO3RyYW5zZm9ybTpza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTt9NDQuNCV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO3RyYW5zZm9ybTpza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7fTU1LjUley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTt0cmFuc2Zvcm06c2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO302Ni42JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO3RyYW5zZm9ybTpza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO303Ny43JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgwLjM5MDYyNWRlZykgc2tld1koMC4zOTA2MjVkZWcpO3RyYW5zZm9ybTpza2V3WCgwLjM5MDYyNWRlZykgc2tld1koMC4zOTA2MjVkZWcpO304OC44JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKTt0cmFuc2Zvcm06c2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7fSJdKSxpdD1PYmplY3QoQy5lKShbIjAle3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7b3BhY2l0eToxO30xMDAle3dpZHRoOiIsInB4O2hlaWdodDoiLCJweDtvcGFjaXR5OjA7fSJdLDMqYy5hY3RpdmF0b3JTaXplKzIwLGMuYWN0aXZhdG9yU2l6ZSs1MCksbHQ9T2JqZWN0KEMuZSkoWyIwJXt3aWR0aDozMHB4O2hlaWdodDozMHB4O29wYWNpdHk6MTt9MTAwJXt3aWR0aDoiLCJweDtoZWlnaHQ6IiwicHg7b3BhY2l0eTowO30iXSwzKmMuYWN0aXZhdG9yU2l6ZSsyMCxjLmFjdGl2YXRvclNpemUrNTApLGN0PU9iamVjdChDLmUpKFsiMCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVgoMSkgc2NhbGVZKDEpO301MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZVgoMS40KSBzY2FsZVkoMS40KTt9MTAwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlWCgxKSBzY2FsZVkoMSk7fSJdKTtmdW5jdGlvbiB1dChlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP3N0KGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP3N0KGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gc3QoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgZnQ9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtOGVxYzN5LTAifSkoWyIiLCIiXSxmdW5jdGlvbihlKXt2YXIgdD1lLm1pcnJvcixlPWUuYWN0aXZhdG9yU2l6ZTtyZXR1cm4gT2JqZWN0KEMuYykoWyJ0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjdweCAxMHB4O2xpbmUtaGVpZ2h0OjE2cHg7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhIE5ldWUsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOiIsInB4O21hcmdpbjphdXRvOyIsIiJdLE1hdGgubWluKC4yOCplLDE3LjUpLHQmJk9iamVjdChDLmMpKFsiZGlyZWN0aW9uOnJ0bDt1bmljb2RlLWJpZGk6cGxhaW50ZXh0OyJdKSl9KSxkdD1PYmplY3QoQy5kKShaZSkud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLThlcWMzeS0xIn0pKFsiIiwiIl0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5idXR0b25TaGFkb3csZT1lLnRoZW1lO3JldHVybiBPYmplY3QoQy5jKShbImJveC1zaGFkb3c6MHB4IDFweCA3cHggcmdiYSgxMzYsMTM2LDEzNiwiLCIlKTtmbGV4LXNocmluazowO2JvcmRlcjoxcHggc29saWQgI2UyZTJlMjtib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kOndoaXRlO3RleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnQ7Y29sb3I6IzAwMDAwMCAhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyO21hcmdpbjoiLCI7bWF4LXdpZHRoOjE3MnB4O21heC1oZWlnaHQ6NjVweDtkaXNwbGF5OmZsZXg7b3JkZXI6IiwiOyY6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyLSIsIjoxcHggc29saWQgI2UyZTJlMjtib3JkZXItIiwiOjFweCBzb2xpZCAjZTJlMmUyOyIsIjotNXB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNHB4O3dpZHRoOjhweDtoZWlnaHQ6OHB4O3otaW5kZXg6MTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7fSY6OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDp3aGl0ZTtib3JkZXItIiwiOjFweCBzb2xpZCAjZTJlMmUyO2JvcmRlci0iLCI6MXB4IHNvbGlkICNlMmUyZTI7IiwiOi01cHg7dG9wOjUwJTttYXJnaW4tdG9wOi00cHg7d2lkdGg6OHB4O2hlaWdodDo4cHg7ei1pbmRleDoxO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt9Il0sMjA8dD90OjIwLGUuY2FsbFRvQWN0aW9uTWFyZ2luLGUucG9wdXBzT3JkZXIsImxlZnQiPT09ZS5wb3NpdGlvbj8idG9wIjoiYm90dG9tIixlLnBvc2l0aW9uLGUucG9zaXRpb24sImxlZnQiPT09ZS5wb3NpdGlvbj8idG9wIjoiYm90dG9tIixlLnBvc2l0aW9uLGUucG9zaXRpb24pfSkscHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ocmVmLHQ9dm9pZCAwPT09dD9udWxsOnQsZT1lLnRhcmdldCxlPXZvaWQgMD09PWU/bnVsbDplLG49T2JqZWN0KEYudXNlQ29udGV4dCkoVikscj1uLnN0YXRlLG89bi5hY3Rpb25zLnNob3dCdXR0b25zLG49bi5zZXR0aW5ncyxhPW4uY2FsbFRvQWN0aW9uLGk9bi5jYWxsVG9BY3Rpb25EZWxheSxsPW4uZGlyZWN0aW9uLGM9bi5idXR0b25TdHlsZSx1PW4uYWN0aXZhdG9yU2l6ZSxzPW4ubWlycm9yLG49bi5idXR0b25TaGFkb3csZj11dChPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLGQ9ZlswXSxwPWZbMV0sZj11dChPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLG09ZlswXSxoPWZbMV0sZz1PYmplY3QoRi51c2VSZWYpKDApO3JldHVybiBPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7IXIuYnV0dG9ucyYmITAhPT1yLmNhbGxUb0FjdGlvblRpbWVyfHwoY2xlYXJUaW1lb3V0KGcuY3VycmVudCksZy5jdXJyZW50PTApLHIuY2FsbFRvQWN0aW9uJiYwPGEubGVuZ3RoPzA9PT1nLmN1cnJlbnQmJihnLmN1cnJlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe3Aoci5jYWxsVG9BY3Rpb24pLGgoci5jYWxsVG9BY3Rpb24pLFcoImFyb3VuZCIhPT1sPyJjbGFzc2ljIj09PWM/MjgwOjMqdSsyMDA6OTk5OTk5OTk5KX0saSkpOnAoITEpfSksT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe3IuY2FsbFRvQWN0aW9uJiYwPGEubGVuZ3RoJiZXKCJhcm91bmQiIT09bD8iY2xhc3NpYyI9PT1jPzI4MDozKnUrMjAwOjk5OTk5OTk5OSl9LFtyLmNhbGxUb0FjdGlvbixhLGMsbCx1XSksbSYmSC5hLmNyZWF0ZUVsZW1lbnQoZHQse2FzOm51bGw9PT10PyJkaXYiOiJhIixocmVmOnQsdGFyZ2V0OmUsb25Nb3VzZVVwOmZ1bmN0aW9uKCl7bygpfSxpc1Nob3c6ZCxvbkFuaW1hdGlvbkVuZDpmdW5jdGlvbigpe2goZCl9LGJ1dHRvblNoYWRvdzpufSxILmEuY3JlYXRlRWxlbWVudChmdCx7bWlycm9yOnMsYWN0aXZhdG9yU2l6ZTp1fSxhKSl9O2Z1bmN0aW9uIG10KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/aHQoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/aHQoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBodChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGd0KGUpe3N3aXRjaCghMCl7Y2FzZSJudW1iZXIiPT10eXBlb2YgZTpyZXR1cm4gZSsicHgiO2Nhc2Uic21hbGwiPT09ZTpyZXR1cm4iMzRweCI7Y2FzZSJtZWRpdW0iPT09ZTpyZXR1cm4iNDVweCI7ZGVmYXVsdDpyZXR1cm4iNTBweCJ9fWZ1bmN0aW9uIEUoZSl7c3dpdGNoKGUpe2Nhc2UiaGVhcnRCZWF0IjpyZXR1cm4gUWU7Y2FzZSJ3b2JibGUiOnJldHVybiBLZTtjYXNlInJ1YmJlckJhbmQiOnJldHVybiBKZTtjYXNlImJvdW5jZSI6cmV0dXJuIGV0O2Nhc2UicHVsc2UiOnJldHVybiB0dDtjYXNlImhlYWRTaGFrZSI6cmV0dXJuIG50O2Nhc2Uic3dpbmciOnJldHVybiBydDtjYXNlInRhZGEiOnJldHVybiBvdDtjYXNlImplbGxvIjpyZXR1cm4gYXQ7Y2FzZSJyaW5nIjpyZXR1cm4gaXQ7Y2FzZSJkb3VibGVSaW5nIjpyZXR1cm4gbHQ7Y2FzZSJtb3ZlSW4iOnJldHVybiBjdDtkZWZhdWx0OnJldHVybiJzdGFuZGFyZCJ9fWZ1bmN0aW9uIE8oZSl7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDI6cmV0dXJuIDUuMTtjYXNlIDM6cmV0dXJuIDg7ZGVmYXVsdDpyZXR1cm4gMTJ9fWZ1bmN0aW9uIHAoZSl7ZnVuY3Rpb24gdCgpe058fChkP2goKTooUyYmTWUoYSkscCgpLG0oYSksITE9PT1CW2FdLnNob3dQb3B1cCYmZygpKSl9ZnVuY3Rpb24gbigpe0QoKXx8InNtYWxsIj09PXJ8fCJtZWRpdW0iPT09cnx8ImZhY2Vib29rIj09PWF8fGR8fChNKCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7TSghMSl9LDFlMyksdCgpKX12YXIgcj1lLnNpemUsbz1lLmxpbmssYT1lLm5hbWUsaT1lLmljb24sbD1lLnRhcmdldCxjPWUuY29sb3IsdT1lLmN1c3RvbUljb24sZT1lLmxhYmVsLHM9KGI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikpLnN0YXRlLGY9cy5idXR0b25zLGQ9cy5idXR0b25Qb3B1cDtzLmdyZWV0aW5nTWVzc2FnZTt2YXIgcD0ocz1iLmFjdGlvbnMpLmJ1dHRvbkNsaWNrZWQsbT1zLnNob3dCdXR0b25Qb3B1cCxoPXMuY2xvc2VCdXR0b25Qb3B1cCxnPXMub3BlbkdyZWV0aW5nTWVzc2FnZSxiPShzPWIuc2V0dGluZ3MpLmJ1dHRvbkJvcmRlclJhZGl1cyx5PXMuYWN0aXZhdG9yU2l6ZSx2PXMuaXNQcm8sdz1zLmlzU2luZ2xlLHg9cy5kaXJlY3Rpb24saz1zLmJ1dHRvblN0eWxlLFM9cy5nYSxDPXMuYnV0dG9uQW5pbWF0aW9uLEU9cy5ib3JkZXIsTz1zLmJ1dHRvblNoYWRvdyxqPXMuYnV0dG9uT3BhY2l0eSxBPXMuYmdTdHlsZSxQPXMubm90aWZpY2F0aW9uSW5kaWNhdG9yLEk9cy5taXJyb3IsXz1zLm9yZGVyLHo9cy5wb3NpdGlvbixUPXMuYW5pbWF0aW9uLFI9JChiKSxMPSIiLHI9InNtYWxsIj09PXJ8fCJtZWRpdW0iPT09cj9yOnkseT0odj8oYz1jfHxCW2FdLmNvbG9yLEw9QlthXS5idXR0b25JZCk6Yz1idChjKT9jOkJbYV0uY29sb3IsdyYmKHMuYnV0dG9uQ29sb3I9YykscGUoYyw1KSksTj0odj1tdChPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpKVswXSxNPXZbMV07cmV0dXJuIE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgZTtpZigiY29sdW1uIj09PXgpcmV0dXJuIGU9c2V0VGltZW91dChmdW5jdGlvbigpe1coImNsYXNzaWMiPT09az9yOjMqcil9LDM1MCksZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZSl9O1coZj85OTk5OTk5OToiY2xhc3NpYyI9PT1rP3I6MypyKX0sW2sseCxyXSksT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtXKCJjbGFzc2ljIj09PWs/cjozKnIpfSw1MDApO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChlKX19LFtrLHJdKSwhMD09PXc/SC5hLmNyZWF0ZUVsZW1lbnQoU3Qse29uTW91c2VVcDp0fSxVKCkmJkguYS5jcmVhdGVFbGVtZW50KHB0LHtocmVmOm8sdGFyZ2V0Omwsc2l6ZTpyfSksSC5hLmNyZWF0ZUVsZW1lbnQoeHQse2J1dHRvbkFuaW1hdGlvbjpDLGNvbG9yOmMsYnV0dG9uQm9yZGVyUmFkaXVzOmIsc2l6ZTpyLGFuaW1hdGlvbjpULGJ1dHRvblN0eWxlOmsscG9wdXBPcGVuZWQ6ZH0sSC5hLmNyZWF0ZUVsZW1lbnQod3Qse29uTW91c2VFbnRlcjpuLHNpemU6cixocmVmOm8sdGFyZ2V0OmwsImFyaWEtbGFiZWwiOiJHbyB0byAiLmNvbmNhdChhKSxjb2xvcjpjLGlkOkwsY3VzdG9tSWNvbjp1LGdyYWRpZW50OnksaW5kaWNhdG9yUG9zaXRpb246Uixib3JkZXI6RSxidXR0b25Cb3JkZXJSYWRpdXM6YixidXR0b25TaGFkb3c6TyxidXR0b25PcGFjaXR5OmosYmdTdHlsZTpBLGJ1dHRvblN0eWxlOmssYnV0dG9uQW5pbWF0aW9uOkMsbm90aWZpY2F0aW9uSW5kaWNhdG9yOlAsbWlycm9yOkksaXNTaW5nbGU6dyxkaXJlY3Rpb246eCxwb3NpdGlvbjp6LG9yZGVyOl8sYW5pbWF0aW9uOlQscG9wdXBPcGVuZWQ6ZH0saSwibWVkaXVtIj09PXImJkguYS5jcmVhdGVFbGVtZW50KEcse2NvbG9yOmMsbWlycm9yOkksc2l6ZTpyfSxlKSwibWVkaXVtIiE9PXImJiJjbGFzc2ljIiE9PWsmJkguYS5jcmVhdGVFbGVtZW50KEcse2NvbG9yOmMsbWlycm9yOkksc2l6ZTpyfSxlKSkpKTpILmEuY3JlYXRlRWxlbWVudChTdCx7b25Nb3VzZVVwOnQsZGF0YUluZGV4Onl0KF8sYSksb3BlbmVkOmYsc2l6ZTpyLGRpcmVjdGlvbjp4LG9yZGVyOl99LEguYS5jcmVhdGVFbGVtZW50KGt0LHtzaXplOnIsbWlycm9yOkksYnV0dG9uU3R5bGU6ayxkaXJlY3Rpb246eCxvcmRlcjpfLGRhdGFJbmRleDp5dChfLGEpLGJ1dHRvblNoYWRvdzpPfSxlKSxILmEuY3JlYXRlRWxlbWVudCh4dCx7c2l6ZTpyfSxILmEuY3JlYXRlRWxlbWVudCh3dCx7c2l6ZTpyLGhyZWY6byx0YXJnZXQ6bCwiYXJpYS1sYWJlbCI6IkdvIHRvICIuY29uY2F0KGEpLGNvbG9yOmMsaWQ6TCxjdXN0b21JY29uOnUsZ3JhZGllbnQ6eSwiZGF0YS1jb21wb25lbnQtbmFtZSI6IkJhc2VCdXR0b24iLGJvcmRlcjpFLGRhdGFJbmRleDp5dChfLGEpLGJ1dHRvbkJvcmRlclJhZGl1czpiLGJ1dHRvblNoYWRvdzpPLGJ1dHRvbk9wYWNpdHk6aixiZ1N0eWxlOkEsYnV0dG9uU3R5bGU6ayxtaXJyb3I6SSxpc1NpbmdsZTp3LGRpcmVjdGlvbjp4LHBvc2l0aW9uOnosb3JkZXI6X30saSwibWVkaXVtIiE9PXImJiJzbWFsbCIhPT1yJiYiY2xhc3NpYyIhPT1rJiZILmEuY3JlYXRlRWxlbWVudChHLHtjb2xvcjpjLG1pcnJvcjpJLHNpemU6cn0sZSkpKSl9dmFyIGJ0PWZ1bmN0aW9uKGUpe3JldHVybiEhWyIjNjY2NjY2IiwiIzY2NiIsIiNFNzQzMzkiLCIjRkY2NTUwIiwiI0E4Q0U1MCIsIiMxMjlCRjQiLCIjOTMyQzhCIiwiI0ZGMzE4RSIsIiMwMDAwMDAiLCIjMDAwIl0uaW5jbHVkZXMoZS50b1VwcGVyQ2FzZSgpKX0seXQ9ZnVuY3Rpb24oZSx0KXtlPWUuaW5kZXhPZih0KTtpZigtMSE9PWUpcmV0dXJuIGUrMX0sdnQ9MTQsd3Q9Qy5kLmEud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXE4YzZ0dC0wIn0pKFsiIiwiICJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUuYnV0dG9uT3BhY2l0eSxuPWUuc2l6ZSxyPWUuYnV0dG9uU3R5bGUsbz1lLmlzU2luZ2xlLGE9ZS5iZ1N0eWxlLGk9ZS5jb2xvcixsPWUuZ3JhZGllbnQsYz1lLmJ1dHRvbkJvcmRlclJhZGl1cyx1PWUuYnV0dG9uSW1hZ2Uscz1lLnRoZW1lLGY9ZS5jdXN0b21JY29uLGQ9ZS5ub3RpZmljYXRpb25JbmRpY2F0b3IscD1lLmJ1dHRvblNoYWRvdyxtPWUuYm9yZGVyLGg9ZS5hbmltYXRpb24sZz1lLmJ1dHRvbkFuaW1hdGlvbixiPWUub3BlbmVkLHk9ZS5pbmRpY2F0b3JQb3NpdGlvbix2PWUubWlycm9yLHc9ZS5kYXRhSW5kZXgseD1lLmRpcmVjdGlvbixrPWUucG9zaXRpb24sUz1lLm9yZGVyLGU9ZS5wb3B1cE9wZW5lZDtyZXR1cm4gT2JqZWN0KEMuYykoWyJkaXNwbGF5OiIsIjtmbGV4LXNocmluazowO29wYWNpdHk6IiwiJTt0ZXh0LWRlY29yYXRpb246bm9uZSAhaW1wb3J0YW50O3dpZHRoOiIsIjtoZWlnaHQ6IiwiO2JvcmRlci1yYWRpdXM6IiwiOyIsIjsiLCIgIiwiIG9yZGVyOiIsIjtwYWRkaW5nOiIsIjtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6IiwiOyIsIjt0cmFuc2l0aW9uOmFsbCAwLjVzO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjAwO2JvcmRlcjoiLCI7IiwiICIsIiAiLCI7Jjpob3ZlcntjdXJzb3I6cG9pbnRlcjtjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7fSIsIjsiLCIgIiwiICIsIiAiLCIgIiwiICIsIiAiLCIgIiwiICIsIiJdLDA9PT1uPyJub25lIjoiYmxvY2siLHQsZ3QoIm1lZGl1bSIhPT1uJiYic21hbGwiIT09biYmImNsYXNzaWMiIT09cj8zKm46biksZ3QobiksIiIuY29uY2F0KGMsIm1lZGl1bSIhPT1uJiYic21hbGwiIT09biYmImNsYXNzaWMiIT09cj8icHgiOiIlIiksbyYmIm1lZGl1bSI9PT1uJiZPYmplY3QoQy5jKShbIndpZHRoOjI5MHB4O2JvcmRlci1yYWRpdXM6MTBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MTBweDtjb2xvcjojZmZmZmZmO2ZvbnQtd2VpZ2h0OmJvbGQ7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDo1MnB4OyJdKSwiY29sb3IiPT09YT9PYmplY3QoQy5jKShbImJhY2tncm91bmQtY29sb3I6IiwiICFpbXBvcnRhbnQ7Il0saXx8IiM4NDg0ODQiKTpPYmplY3QoQy5jKShbImJhY2tncm91bmQ6IiwiOyJdLCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAiLmNvbmNhdChsLCIpIikpLHUmJiJjbGFzc2ljIj09PXImJk9iamVjdChDLmMpKFsiYmFja2dyb3VuZC1pbWFnZTp1cmwoICIsIiApO2JhY2tncm91bmQtc2l6ZTpjb3ZlciAhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsiXSx1KSxzLmJ1dHRvbnNPcmRlcixmPyIwIjoiNXB4IiwhZCYmImhpZGRlbiIsIm1lZGl1bSIhPT1uJiYic21hbGwiIT09biYmT2JqZWN0KEMuYykoWyJib3gtc2hhZG93OjBweCAxcHggN3B4IHJnYmEoMTM2LDEzNiwxMzYsIiwiJSk7Il0scCksbSYmIm1lZGl1bSIhPT1uJiYic21hbGwiIT09biYmIiIuY29uY2F0KC4wNDUqbiwicHggc29saWQgI2ZmZmZmZiIpLCJzbWFsbCI9PT1uJiYiI2ZmZmZmZiI9PT1pJiZPYmplY3QoQy5jKShbImJvcmRlcjoxcHggc29saWQgbGlnaHRncmF5O2NvbG9yOmJsYWNrICFpbXBvcnRhbnQ7Jjpob3Zlcntjb2xvcjpibGFjayAhaW1wb3J0YW50O30iXSksIm1lZGl1bSI9PT1uJiYiI2ZmZmZmZiI9PT1pJiZPYmplY3QoQy5jKShbImJvcmRlcjoxcHggc29saWQgbGlnaHRncmF5O2NvbG9yOmJsYWNrICFpbXBvcnRhbnQ7Jjpob3Zlcntjb2xvcjpibGFjayAhaW1wb3J0YW50O30iXSksaCYmT2JqZWN0KEMuYykoWyIiLCIiXSwic3RhbmRhcmQiIT09ZyYmInJpbmciIT09ZyYmImRvdWJsZVJpbmciIT09ZyYmIm1vdmVJbiIhPT1nJiYibWVkaXVtIiE9PW4mJk9iamVjdChDLmMpKFsiYW5pbWF0aW9uOiIsIiAycyBpbmZpbml0ZTthbmltYXRpb24tZGVsYXk6MXM7Jjpob3ZlcnthbmltYXRpb246bm9uZTt9Il0sRShnKSkpLGQmJiJtZWRpdW0iIT09biYmIWImJk9iamVjdChDLmMpKFsiJjpiZWZvcmV7Y29udGVudDonMSc7d2lkdGg6IiwicHg7aGVpZ2h0OiIsInB4O2Rpc3BsYXk6Z3JpZDtwbGFjZS1jb250ZW50OmNlbnRlcjtjb2xvcjojZmZmZmZmO2ZvbnQtc2l6ZToxM3B4O2JhY2tncm91bmQtY29sb3I6cmVkO2JvcmRlci1yYWRpdXM6NTAlO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7cG9zaXRpb246YWJzb2x1dGU7dG9wOiIsInB4OyIsIiBib3gtc2hhZG93OjBweCAxcHggMnB4IHJnYmEoMCwwLDAsNTAlKTt9OyJdLE1hdGgubWluKC4zKm4sMjApLE1hdGgubWluKC4zKm4sMjApLHktNCx2P09iamVjdChDLmMpKFsibGVmdDoiLCJweDsiXSx5LTQpOk9iamVjdChDLmMpKFsicmlnaHQ6IiwicHg7Il0seS00KSksYiYmT2JqZWN0KEMuYykoWyJhbmltYXRpb246bm9uZTsiXSksZSYmT2JqZWN0KEMuYykoWyJhbmltYXRpb246bm9uZTsiXSksIm1lZGl1bSIhPT1uJiYic21hbGwiIT09biYmImNsYXNzaWMiIT09ciYmT2JqZWN0KEMuYykoWyJhbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpOyIsIiJdLHY/T2JqZWN0KEMuYykoWyJwYWRkaW5nOjAgMTVweCAwIDIwcHg7Il0pOk9iamVjdChDLmMpKFsicGFkZGluZzowIDIwcHggMCAxNXB4OyJdKSksImNsYXNzaWMiIT09ciYmIm1lZGl1bSI9PT1ufHwic21hbGwiPT09biYmT2JqZWN0KEMuYykoWyJkaXNwbGF5OmdyaWQ7cGxhY2UtY29udGVudDpjZW50ZXI7Il0pLHYmJk9iamVjdChDLmMpKFsiZGlyZWN0aW9uOnJ0bDsiXSksInNtYWxsIj09PW4mJk9iamVjdChDLmMpKFsiZGlzcGxheTpibG9jazsiXSksdyYmImFyb3VuZCI9PT14JiYibWVkaXVtIiE9PW4mJiJzbWFsbCIhPT1uJiZPYmplY3QoQy5jKShbInRyYW5zZm9ybTpyb3RhdGUoIiwiZGVnKTsiXSwicmlnaHQiPT09az93KigzNjAvLU8oUykpLTE1KlMuc2xpY2UoMCw0KS5sZW5ndGg6dyooMzYwLy1PKFMpKS0xNSpTLnNsaWNlKDAsNCkubGVuZ3RoLTkwKSxwPDI1JiYiI2ZmZmZmZiI9PT1pJiZPYmplY3QoQy5jKShbIm91dGxpbmU6MXB4IHNvbGlkIGxpZ2h0Z3JheTsmOmhvdmVye291dGxpbmU6MXB4IHNvbGlkIGxpZ2h0Z3JheSAhaW1wb3J0YW50O30iXSkscDwyNSYmbSYmT2JqZWN0KEMuYykoWyJvdXRsaW5lOjFweCBzb2xpZCBsaWdodGdyYXk7Jjpob3ZlcntvdXRsaW5lOjFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDt9Il0pKX0pLHh0PUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXE4YzZ0dC0xIn0pKFsiIiwiIl0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS50aGVtZSxuPWUuYW5pbWF0aW9uLHI9ZS5idXR0b25BbmltYXRpb24sbz1lLnNpemUsYT1lLmJ1dHRvblN0eWxlLGk9ZS5idXR0b25Cb3JkZXJSYWRpdXMsbD1lLmNvbG9yLGM9ZS5vcGVuZWQsZT1lLnBvcHVwT3BlbmVkO3JldHVybiBPYmplY3QoQy5jKShbIm9yZGVyOiIsIjtwb3NpdGlvbjpyZWxhdGl2ZTsiLCIgIiwiICIsIiAiLCIiXSx0LmJ1dHRvbnNPcmRlcixuJiZPYmplY3QoQy5jKShbIiIsIiAiLCIgIiwiIl0sInJpbmciPT09ciYmT2JqZWN0KEMuYykoWyJhbmltYXRpb24tZGVsYXk6MXM7Jjo6YWZ0ZXJ7Y29udGVudDonJztib3JkZXItcmFkaXVzOiIsIjtib3JkZXI6NnB4IHNvbGlkICIsIjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Oi0xO3RvcDo1MCU7bGVmdDo1MCU7aGVpZ2h0OiIsIjt3aWR0aDoiLCI7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO2FuaW1hdGlvbjoiLCIgMS41cyBpbmZpbml0ZTtvcGFjaXR5OjA7fSY6aG92ZXJ7YW5pbWF0aW9uOm5vbmU7fSJdLCIiLmNvbmNhdChpLCJtZWRpdW0iIT09byYmInNtYWxsIiE9PW8mJiJjbGFzc2ljIiE9PWE/InB4IjoiJSIpLGwsImNsYXNzaWMiIT09YT8iMTMwJSI6IjE1MCUiLCJjbGFzc2ljIiE9PWE/IjEzMCUiOiIxNTAlIixFKHIpKSwiZG91YmxlUmluZyI9PT1yJiZPYmplY3QoQy5jKShbImFuaW1hdGlvbi1kZWxheToxczsmOmhvdmVye2FuaW1hdGlvbjpub25lO30mOjphZnRlcntjb250ZW50OicnO29wYWNpdHk6MDtib3JkZXItcmFkaXVzOiIsIjtib3JkZXI6NnB4IHNvbGlkICIsIjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Oi0xO3RvcDo1MCU7bGVmdDo1MCU7aGVpZ2h0OiIsIjt3aWR0aDoiLCI7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO2FuaW1hdGlvbjoiLCIgMS41cyBpbmZpbml0ZTt9Jjo6YmVmb3Jle2NvbnRlbnQ6Jyc7Ym9yZGVyLXJhZGl1czoiLCI7Ym9yZGVyOjZweCBzb2xpZCAiLCI7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDotMTt0b3A6NTAlO2xlZnQ6NTAlO2hlaWdodDoiLCI7d2lkdGg6IiwiO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTthbmltYXRpb246IiwiIDNzIGluZmluaXRlO29wYWNpdHk6MDt9Il0sIiIuY29uY2F0KGksIm1lZGl1bSIhPT1vJiYic21hbGwiIT09byYmImNsYXNzaWMiIT09YT8icHgiOiIlIiksbCwiY2xhc3NpYyIhPT1hPyIxMzAlIjoiMTUwJSIsImNsYXNzaWMiIT09YT8iMTMwJSI6IjE1MCUiLEUociksIiIuY29uY2F0KGksIm1lZGl1bSIhPT1vJiYic21hbGwiIT09byYmImNsYXNzaWMiIT09YT8icHgiOiIlIiksbCwiY2xhc3NpYyIhPT1hPyIxMzAlIjoiMTUwJSIsImNsYXNzaWMiIT09YT8iMTMwJSI6IjE1MCUiLEUocikpLCJtb3ZlSW4iPT09ciYmT2JqZWN0KEMuYykoWydhbmltYXRpb24tZGVsYXk6MXM7b3ZlcmZsb3c6dW5zZXQ7Jjpob3ZlcnthbmltYXRpb246bm9uZTt9JjphZnRlcntjb250ZW50OiIiO2FuaW1hdGlvbjonLCIgM3MgaW5maW5pdGU7b3BhY2l0eTowO2JhY2tncm91bmQtY29sb3I6IiwiNjk7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOiIsIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ei1pbmRleDotMTtib3gtc2hhZG93OjAgMCA1MHB4IHJnYmEoMCwwLDAsMC4xKTt9Il0sRShyKSxsLCIiLmNvbmNhdChpLCJtZWRpdW0iIT09byYmInNtYWxsIiE9PW8mJiJjbGFzc2ljIiE9PWE/InB4IjoiJSIpKSksYyYmT2JqZWN0KEMuYykoWyImOmFmdGVyLCY6YmVmb3Jle2FuaW1hdGlvbjpub25lO30iXSksZSYmT2JqZWN0KEMuYykoWyImOmFmdGVyLCY6YmVmb3Jle2FuaW1hdGlvbjpub25lO30iXSksIm1lZGl1bSI9PT1vJiZPYmplY3QoQy5jKShbIiY6YWZ0ZXIsJjpiZWZvcmV7YW5pbWF0aW9uOm5vbmU7fSJdKSl9KSxrdD1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1xOGM2dHQtMiJ9KShbIiIsIiJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUuYnV0dG9uU3R5bGUsbj1lLnNpemUscj1lLnRoZW1lLG89ZS5idXR0b25TaGFkb3csYT1lLmRpcmVjdGlvbixpPWUubWlycm9yLGw9ZS5vcmRlcixlPWUuZGF0YUluZGV4O3JldHVybiBPYmplY3QoQy5jKShbInBvc2l0aW9uOmFic29sdXRlOyIsIiAiLCIgei1pbmRleDoxMDAwO3BhZGRpbmc6N3B4IDEwcHg7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhIE5ldWUsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOiIsInB4O2xpbmUtaGVpZ2h0OjEuMSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZDp3aGl0ZTtib3gtc2hhZG93OjBweCAxcHggN3B4IHJnYmEoMTM2LDEzNiwxMzYsIiwiJSk7d2hpdGUtc3BhY2U6bm93cmFwO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtLW9yaWdpbjoiLCI7IiwiICIsIiAiLCIgIiwiIl0sImNsYXNzaWMiIT09dCYmIm1lZGl1bSIhPT1uJiYic21hbGwiIT09bj9PYmplY3QoQy5jKShbImRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyJdKTpPYmplY3QoQy5jKShbImRpc3BsYXk6bm9uZTsiXSksInNtYWxsIiE9PW4mJiJtZWRpdW0iIT09bj9PYmplY3QoQy5jKShbIiIsIjoiLCJweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyJdLHIucG9zaXRpb24sbisxNyk6T2JqZWN0KEMuYykoWyJsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtib3R0b206IiwicHg7Il0sInNtYWxsIj09PW4/LTMzOiJtZWRpdW0iPT09bj8tMzg6biksTWF0aC5taW4oInNtYWxsIj09PW4/MzQqLjI4OiJtZWRpdW0iPT09bj80NSouMjg6LjI4Km4sMTcuNSksMjA8bz9vOjIwLHIucG9zaXRpb24sInNtYWxsIiE9PW4mJiJtZWRpdW0iIT09biYmInJvdyI9PT1hJiZPYmplY3QoQy5jKShbInRvcDotNDVweDsiLCI6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKCIsIik7Il0sci5wb3NpdGlvbiwibGVmdCI9PT1yLnBvc2l0aW9uPyItNTAlIjoiNTAlIiksInNtYWxsIiE9PW4mJiJtZWRpdW0iIT09biYmT2JqZWN0KEMuYykoWyImOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo1cHggc29saWQgcmdiYSgwLDAsMCwuMDkpO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKCIsIik7IiwifSY6OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkICNmZmY7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoIiwiKTsiLCJ9Il0sInJpZ2h0Ij09PXIucG9zaXRpb24/IjE4MGRlZyI6IjBkZWciLCJyaWdodCI9PT1yLnBvc2l0aW9uP09iamVjdChDLmMpKFsicmlnaHQ6LTExcHg7IiwiIl0sInJvdyI9PT1hJiZPYmplY3QoQy5jKShbInRvcDp1bnNldDtyaWdodDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNTAlKSByb3RhdGUoMjcwZGVnKTtib3R0b206LTExcHg7Il0pKTpPYmplY3QoQy5jKShbImxlZnQ6LTExcHg7IiwiIl0sInJvdyI9PT1hJiZPYmplY3QoQy5jKShbInRvcDp1bnNldDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoMjcwZGVnKTtib3R0b206LTExcHg7Il0pKSwicmlnaHQiPT09ci5wb3NpdGlvbj8iMTgwZGVnIjoiMGRlZyIsInJpZ2h0Ij09PXIucG9zaXRpb24mJiJyb3ciIT09YT9PYmplY3QoQy5jKShbInJpZ2h0Oi0xMHB4OyIsIiJdLCJyb3ciPT09YSYmT2JqZWN0KEMuYykoWyJ0b3A6dW5zZXQ7cmlnaHQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSkgcm90YXRlKDI3MGRlZyk7Ym90dG9tOi0xMHB4OyJdKSk6T2JqZWN0KEMuYykoWyJsZWZ0Oi0xMHB4OyIsIiJdLCJyb3ciPT09YSYmT2JqZWN0KEMuYykoWyJ0b3A6dW5zZXQ7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDI3MGRlZyk7Ym90dG9tOi0xMHB4OyJdKSkpLGkmJk9iamVjdChDLmMpKFsiZGlyZWN0aW9uOnJ0bDt1bmljb2RlLWJpZGk6cGxhaW50ZXh0OyJdKSxlJiYiYXJvdW5kIj09PWEmJiJtZWRpdW0iIT09biYmInNtYWxsIiE9PW4mJk9iamVjdChDLmMpKFsidG9wOnVuc2V0O2xlZnQ6dW5zZXQ7cmlnaHQ6dW5zZXQ7Ym90dG9tOnVuc2V0OyIsIiAiLCIgIiwiICIsIiAiLCIgIiwiICIsIiAiLCIgdHJhbnNmb3JtOnJvdGF0ZSgiLCJkZWcpOyJdLDE9PT1lJiZPYmplY3QoQy5jKShbIiIsIiJdLCJyaWdodCI9PT1yLnBvc2l0aW9uP09iamVjdChDLmMpKFsicmlnaHQ6NTAlO2JvdHRvbTotNTAlOyJdKTpPYmplY3QoQy5jKShbInJpZ2h0OjUwJTtib3R0b206MjUlOyJdKSksMj09PWUmJjQ9PT1sLnNsaWNlKDAsNCkubGVuZ3RoJiZPYmplY3QoQy5jKShbIiIsIiJdLCJyaWdodCI9PT1yLnBvc2l0aW9uP09iamVjdChDLmMpKFsicmlnaHQ6MTAlO2JvdHRvbTotNDAlOyJdKTpPYmplY3QoQy5jKShbInJpZ2h0OjEyJTtib3R0b206LTE1JTsiXSkpLDM9PT1lJiY0PT09bC5zbGljZSgwLDQpLmxlbmd0aCYmT2JqZWN0KEMuYykoWyIiLCIiXSwicmlnaHQiPT09ci5wb3NpdGlvbj9PYmplY3QoQy5jKShbInJpZ2h0Oi0yMCU7Ym90dG9tOi01JTsiXSk6T2JqZWN0KEMuYykoWyJyaWdodDotNDElO2JvdHRvbTotNTMlOyJdKSksND09PWUmJjQ9PT1sLnNsaWNlKDAsNCkubGVuZ3RoJiZPYmplY3QoQy5jKShbIiIsIiJdLCJyaWdodCI9PT1yLnBvc2l0aW9uP09iamVjdChDLmMpKFsicmlnaHQ6LTMwJTtib3R0b206MzAlOyJdKTpPYmplY3QoQy5jKShbInJpZ2h0Oi04OCU7Ym90dG9tOi02MSU7Il0pKSwyPT09ZSYmMz09PWwuc2xpY2UoMCw0KS5sZW5ndGgmJk9iamVjdChDLmMpKFsiIiwiIl0sInJpZ2h0Ij09PXIucG9zaXRpb24/T2JqZWN0KEMuYykoWyJyaWdodDotNSU7Ym90dG9tOi0yNSU7Il0pOk9iamVjdChDLmMpKFsicmlnaHQ6NSU7Ym90dG9tOi0zOCU7Il0pKSwzPT09ZSYmMz09PWwuc2xpY2UoMCw0KS5sZW5ndGgmJk9iamVjdChDLmMpKFsiIiwiIl0sInJpZ2h0Ij09PXIucG9zaXRpb24/T2JqZWN0KEMuYykoWyJyaWdodDotMjUlO2JvdHRvbToyNSU7Il0pOk9iamVjdChDLmMpKFsicmlnaHQ6LTkwJTtib3R0b206LTYwJTsiXSkpLDE9PT1lJiYyPT09bC5zbGljZSgwLDQpLmxlbmd0aCYmT2JqZWN0KEMuYykoWyIiLCIiXSwicmlnaHQiPT09ci5wb3NpdGlvbj9PYmplY3QoQy5jKShbInJpZ2h0OjM1JTtib3R0b206LTUwJTsiXSk6T2JqZWN0KEMuYykoWyJyaWdodDo0NiU7Ym90dG9tOjglOyJdKSksMj09PWUmJjI9PT1sLnNsaWNlKDAsNCkubGVuZ3RoJiZPYmplY3QoQy5jKShbIiIsIiJdLCJyaWdodCI9PT1yLnBvc2l0aW9uP09iamVjdChDLmMpKFsicmlnaHQ6LTI1JTtib3R0b206MTUlOyJdKTpPYmplY3QoQy5jKShbInJpZ2h0Oi03NCU7Ym90dG9tOi02MCU7Il0pKSwicmlnaHQiPT09ci5wb3NpdGlvbj9lKigzNjAvLU8obCkpLTE1Kmwuc2xpY2UoMCw0KS5sZW5ndGg6ZSooMzYwLy1PKGwpKS0xNSpsLnNsaWNlKDAsNCkubGVuZ3RoLTkwKSl9KSxTdD1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1xOGM2dHQtMyJ9KShbIiIsIiJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUudGhlbWUsbj1lLnNpemUscj1lLmRhdGFJbmRleCxvPWUuZGlyZWN0aW9uLGU9ZS5vcmRlcjtyZXR1cm4gT2JqZWN0KEMuYykoWyJkaXNwbGF5OmZsZXg7bWFyZ2luOiIsInB4O3Bvc2l0aW9uOnJlbGF0aXZlO2p1c3RpZnktY29udGVudDoiLCI7bWF4LWhlaWdodDoiLCJweDsiLCIgIiwiIl0sdnQvMix0LmNvbnRhaW5lckRpcmVjdGlvbixuLHImJiJhcm91bmQiPT09byYmIm1lZGl1bSIhPT1uJiYic21hbGwiIT09biYmT2JqZWN0KEMuYykoWyJwb3NpdGlvbjpmaXhlZDt0cmFuc2Zvcm06cm90YXRlKCIsImRlZykgdHJhbnNsYXRlWSgiLCJweCk7Il0sciooMzYwL08oZSkpLDIqbitmdW5jdGlvbihlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMjpyZXR1cm4tMjA7Y2FzZSAzOnJldHVybiAwO2RlZmF1bHQ6cmV0dXJuIDUwfX0oZSkpLFUoKSYmT2JqZWN0KEMuYykoWyImOmhvdmVyICIsIntkaXNwbGF5OmZsZXg7YW5pbWF0aW9uOiIsIiAwLjFzIGxpbmVhcjt9Il0sa3QsImxlZnQiPT09dC5wb3NpdGlvbj9YZTpZZSkpfSksRz1DLmQucC53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcThjNnR0LTQifSkoWyIiLCIgICJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUuY29sb3Isbj1lLnNpemUsZT1lLm1pcnJvcjtyZXR1cm4gT2JqZWN0KEMuYykoWyJtYXJnaW46MCAhaW1wb3J0YW50O2xldHRlci1zcGFjaW5nOjAuNXB4O2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSBOZXVlLEhlbHZldGljYSxzYW5zLXNlcmlmOyIsIiBncmlkLWFyZWE6MSAvIDIgLyAyIC8gNTsiLCIiXSwiI2ZmZmZmZiI9PT10fHwiI2YzZjNmMyI9PT10P09iamVjdChDLmMpKFsiY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyY6aG92ZXJ7Y29sb3I6IzAwMDAwMCAhaW1wb3J0YW50O30iXSk6T2JqZWN0KEMuYykoWyJjb2xvcjojZmZmZmZmOyJdKSwibWVkaXVtIiE9PW4/T2JqZWN0KEMuYykoWyIiLCIgbGluZS1oZWlnaHQ6MS4yNSAhaW1wb3J0YW50O2ZvbnQtc2l6ZToiLCJweDsiXSxlP09iamVjdChDLmMpKFsibWFyZ2luLXJpZ2h0OjEwcHg7dW5pY29kZS1iaWRpOnBsYWludGV4dDsiXSk6T2JqZWN0KEMuYykoWyJ0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luLWxlZnQ6MTBweDsiXSksTWF0aC5taW4oLjI5Km4sMjIpKTpPYmplY3QoQy5jKShbImxpbmUtaGVpZ2h0OjEgIWltcG9ydGFudDtmb250LXNpemU6MjBweDsiXSkpfSk7ZnVuY3Rpb24gQ3QoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGEsaSxsPVtdLGM9ITAsdT0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYobC5wdXNoKHIudmFsdWUpLGwubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe3U9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGk9bi5yZXR1cm4oKSxPYmplY3QoaSkhPT1pKSlyZXR1cm59ZmluYWxseXtpZih1KXRocm93IG99fXJldHVybiBsfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZihlKXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9FdChlLHQpOiJNYXAiPT09KG49Ik9iamVjdCI9PT0obj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSkpJiZlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IubmFtZTpuKXx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9FdChlLHQpOnZvaWQgMH0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEV0KGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gT3QoKXt2YXIgZT0uMDEqd2luZG93LmlubmVySGVpZ2h0O2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS12aCIsIiIuY29uY2F0KGUsInB4IikpfU90KCksd2luZG93Lm9ucmVzaXplPWZ1bmN0aW9uKCl7T3QoKX07ZnVuY3Rpb24ganQoZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLmFwcGxlSWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmVyc2lvbjoiMS4xIix2aWV3Qm94OiIwIDAgMTM4IDEyNSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNjguODIsMTMuNzJjLTI5LjU1LDAtNTMuNSwyMC01My41LDQ0LjU2LDAsMTUuNjQsOS44OSwzMC4xMiwyNiwzOC4xNkE0Mi40Miw0Mi40MiwwLDAsMSwzMiwxMDkuNTMsNTcuMyw1Ny4zLDAsMCwwLDUzLjY4LDEwMWE2NCw2NCwwLDAsMCwxNS4xNCwxLjg0YzI5LjU1LDAsNTMuNS0yMCw1My41LTQ0LjU2Uzk4LjM3LDEzLjcyLDY4LjgyLDEzLjcyWiJ9KSl9dmFyIGs9T2JqZWN0KEMuZCkodCkud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXI4cmZ6eC0wIn0pKFsiIiwiIl0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5taXJyb3Isbj1lLnRoZW1lLHI9ZS5zaXplLG89ZS5idXR0b25TaGFkb3csZT1lLmN1c3RvbVNldHRpbmdzO3JldHVybiBPYmplY3QoQy5jKShbImJveC1zaGFkb3c6MHB4IDFweCA3cHggcmdiYSgxMzYsMTM2LDEzNiwiLCIlKTttaW4taGVpZ2h0OjE0OXB4O2JvcmRlci1yYWRpdXM6MTBweDsiLCI6MDtib3R0b206IiwncHg7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO3dpZHRoOjMwMnB4O3Bvc2l0aW9uOmFic29sdXRlO2xpbmUtaGVpZ2h0OjIzcHg7Zm9udC1zaXplOjE0cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1mYW1pbHk6Um9ib3RvLCJIZWx2ZXRpY2EgTmV1ZSIsc2Fucy1zZXJpZjsnLCIgIiwiIl0sMjA8bz9vOjIwLG4ucG9zaXRpb24sciszMCwid2hhdHNhcHAiIT09ZSYmRCgpJiZPYmplY3QoQy5jKShbInBvc2l0aW9uOmZpeGVkO2JvdHRvbTowO3JpZ2h0OjA7ei1pbmRleDo5OTk5O2JvcmRlci1yYWRpdXM6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2hlaWdodDpjYWxjKHZhcigtLXZoKSAqIDEwMCk7Il0pLHQmJk9iamVjdChDLmMpKFsiZGlyZWN0aW9uOnJ0bDsiXSkpfSksUz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yOHJmengtMSJ9KShbImN1cnNvcjpwb2ludGVyO3dpZHRoOjI0cHg7IiwiIl0sZnVuY3Rpb24oZSl7cmV0dXJuIGUubWlycm9yP09iamVjdChDLmMpKFsibWFyZ2luOjZweCBhdXRvIDAgMTJweDsiXSk6T2JqZWN0KEMuYykoWyJtYXJnaW46NnB4IDEycHggMCBhdXRvOyJdKX0pLGo9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcjhyZnp4LTIifSkoWyIiLCIiXSxmdW5jdGlvbihlKXt2YXIgdD1lLmdyYWRpZW50LG49ZS5iZ1N0eWxlLGU9ZS5jb2xvcjtyZXR1cm4gT2JqZWN0KEMuYykoWyIiLCIgZGlzcGxheTpmbGV4O2hlaWdodDo1MHB4O2JvcmRlci1yYWRpdXM6OXB4IDlweCAwIDA7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtYWxpZ246bGVmdDsiLCIiXSwiY29sb3IiPT09bj9PYmplY3QoQy5jKShbImJhY2tncm91bmQtY29sb3I6IiwiOyJdLGUpOk9iamVjdChDLmMpKFsiYmFja2dyb3VuZDoiLCI7Il0sImxpbmVhci1ncmFkaWVudCgxMzVkZWcsICIuY29uY2F0KHQsIikiKSksRCgpJiZPYmplY3QoQy5jKShbImJvcmRlci1yYWRpdXM6MDsiXSkpfSksQXQ9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcjhyZnp4LTMifSkoWyJ0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6I0ZGRkZGRjsiLCIiXSxmdW5jdGlvbihlKXtyZXR1cm4gZS5taXJyb3ImJk9iamVjdChDLmMpKFsidW5pY29kZS1iaWRpOnBsYWludGV4dDsiXSl9KSxBPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXI4cmZ6eC00In0pKFsid2lkdGg6MjhweDtoZWlnaHQ6MjhweDsiLCIiXSxmdW5jdGlvbihlKXtyZXR1cm4gZS5taXJyb3I/T2JqZWN0KEMuYykoWyJtYXJnaW46MCAxMnB4IDAgM3B4OyJdKTpPYmplY3QoQy5jKShbIm1hcmdpbjowIDNweCAwIDEycHg7Il0pfSksUHQ9T2JqZWN0KEMuZCkoaykud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXI4cmZ6eC01In0pKFsiYm9yZGVyLXJhZGl1czoxNnB4O3dpZHRoOjMyMHB4OyJdKSxJdD1PYmplY3QoQy5kKShqKS53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcjhyZnp4LTYifSkoWyJqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjtib3JkZXItcmFkaXVzOjE2cHggMTZweCAwIDA7cGFkZGluZzowIDE1cHg7aGVpZ2h0OjgwcHg7Il0pLF90PUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXI4cmZ6eC03In0pKFsiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDsiXSksenQ9Qy5kLmg0LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yOHJmengtOCJ9KShbImNvbG9yOiNGRkZGRkY7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MTtmb250LXNpemU6MTVweDtmb250LXdlaWdodDpib2xkOyIsIiBsZXR0ZXItc3BhY2luZzowLjNweDsiXSxmdW5jdGlvbihlKXtyZXR1cm4gZS5taXJyb3I/T2JqZWN0KEMuYykoWyJ0ZXh0LWFsaWduOnJpZ2h0O3VuaWNvZGUtYmlkaTpwbGFpbnRleHQ7Il0pOk9iamVjdChDLmMpKFsidGV4dC1hbGlnbjpsZWZ0OyJdKX0pLFR0PUMuZC5wLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yOHJmengtOSJ9KShbIiIsIiBjb2xvcjojZmZmZmZmY2M7bWFyZ2luOjVweCAwIDAgMDtsaW5lLWhlaWdodDoxO3dpZHRoOjE4MHB4O2xldHRlci1zcGFjaW5nOjAuM3B4OyJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1pcnJvcj9PYmplY3QoQy5jKShbInRleHQtYWxpZ246cmlnaHQ7dW5pY29kZS1iaWRpOnBsYWludGV4dDsiXSk6T2JqZWN0KEMuYykoWyJ0ZXh0LWFsaWduOmxlZnQ7Il0pfSksTHQ9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcjhyZnp4LTEwIn0pKFsid2lkdGg6NDVweDtoZWlnaHQ6NDVweDsiXSksTXQ9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcjhyZnp4LTExIn0pKFsiY3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpncmlkOyJdKSxSdD1PYmplY3QoQy5kKShrKS53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcjhyZnp4LTEyIn0pKFsid2lkdGg6NTA1cHg7IiwiIl0sRCgpJiZPYmplY3QoQy5jKShbIndpZHRoOjEwMCU7Il0pKSxOdD1PYmplY3QoQy5kKShrKS53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcjhyZnp4LTEzIn0pKFsid2lkdGg6NDgwcHg7bGluZS1oZWlnaHQ6MHB4OyIsIiJdLEQoKT9PYmplY3QoQy5jKShbIndpZHRoOjEwMCU7Il0pOk9iamVjdChDLmMpKFsiQG1lZGlhIChtYXgtd2lkdGg6NTIwcHgpe3dpZHRoOjM4MHB4O31AbWVkaWEgKG1heC13aWR0aDo0MDBweCl7d2lkdGg6MjgwcHg7fUBtZWRpYSAobWF4LWhlaWdodDo2MDBweCl7Ym90dG9tOjdweCAhaW1wb3J0YW50OyIsIjoiLCJweCAhaW1wb3J0YW50O30iXSxmdW5jdGlvbihlKXtyZXR1cm4gZS50aGVtZS5wb3NpdGlvbn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2l6ZSszMH0pKSxEdD1PYmplY3QoQy5kKShrKS53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtcjhyZnp4LTE0In0pKFsiaGVpZ2h0OjY4MHB4O21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDE3MHB4KTtib3JkZXItcmFkaXVzOjIzcHg7d2lkdGg6MzMwcHg7IiwiIl0sRCgpP09iamVjdChDLmMpKFsid2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtoZWlnaHQ6Y2FsYyh2YXIoLS12aCkgKiAxMDApO21heC1oZWlnaHQ6dW5zZXQ7Ym9yZGVyLXJhZGl1czowOyJdKTpPYmplY3QoQy5jKShbIkBtZWRpYSAobWF4LWhlaWdodDo1MDBweCl7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gNDBweCk7Ym90dG9tOjdweCAhaW1wb3J0YW50OyIsIjoiLCJweCAhaW1wb3J0YW50O31AbWVkaWEgKG1heC13aWR0aDozNzBweCl7d2lkdGg6MjgwcHg7fSJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLnRoZW1lLnBvc2l0aW9ufSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zaXplKzMwfSkpLFV0PU9iamVjdChDLmQpKGspLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yOHJmengtMTUifSkoWyJ3aWR0aDo0ODBweDtsaW5lLWhlaWdodDowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lOyIsIiJdLEQoKT9PYmplY3QoQy5jKShbIndpZHRoOjEwMCU7YmFja2dyb3VuZDojZmZmZmZmOyJdKTpPYmplY3QoQy5jKShbIkBtZWRpYSAobWF4LXdpZHRoOjUyMHB4KXt3aWR0aDozODBweDt9QG1lZGlhIChtYXgtd2lkdGg6NDAwcHgpe3dpZHRoOjI4MHB4O31AbWVkaWEgKG1heC1oZWlnaHQ6NTAwcHgpe2JvdHRvbTo3cHggIWltcG9ydGFudDsiLCI6IiwicHggIWltcG9ydGFudDt9Il0sZnVuY3Rpb24oZSl7cmV0dXJuIGUudGhlbWUucG9zaXRpb259LGZ1bmN0aW9uKGUpe3JldHVybiBlLnNpemUrMzB9KSksQnQ9T2JqZWN0KEMuZCkoUykud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXI4cmZ6eC0xNiJ9KShbImJhY2tncm91bmQ6I2ZmZmZmZjtib3JkZXItcmFkaXVzOjMwcHg7cGFkZGluZzo2cHg7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDsiLCIgIiwiIl0sIUQoKSYmT2JqZWN0KEMuYykoWyJib3gtc2hhZG93OjBweCAxcHggN3B4IHJnYmEoMTM2LDEzNiwxMzYsIiwiJSk7Il0sZnVuY3Rpb24oZSl7cmV0dXJuIDIwPGUuYnV0dG9uU2hhZG93P2UuYnV0dG9uU2hhZG93OjIwfSksZnVuY3Rpb24oZSl7cmV0dXJuIGUubWlycm9yP09iamVjdChDLmMpKFsibWFyZ2luOjAgYXV0byAwIDA7Il0pOk9iamVjdChDLmMpKFsibWFyZ2luOjAgMCAwIGF1dG87Il0pfSksUD1mdW5jdGlvbihlKXtlPWUuY3VzdG9tU2V0dGluZ3M7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToid2hhdHNhcHAiPT09ZT97d2lkdGg6IjI1cHgiLGhlaWdodDoiMjVweCIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn06InlvdXR1YmUiPT09ZT97d2lkdGg6IjEwMCUiLGZpbGw6IiMwMDAwMDAiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIyNHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSkpfSxOPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXt4KHkpfWZ1bmN0aW9uIG4oKXtmKCl9dmFyIHI9ZS5pY29uLG89ZS5tZXNzZW5nZXJUaXRsZSxhPWUuY29sb3IsaT1lLmNoaWxkcmVuLGw9ZS5lbmFibGVQb3B1cCxjPWUuY3VzdG9tU2V0dGluZ3MsYz12b2lkIDAhPT1jJiZjLHU9ZS5iZ1N0eWxlLHU9dm9pZCAwPT09dT8iY29sb3IiOnUsZT1lLnNpemUscz1PYmplY3QoRi51c2VDb250ZXh0KShWKSxmPXMuYWN0aW9ucy5jbG9zZUJ1dHRvblBvcHVwLHM9cy5zZXR0aW5ncyxkPXMubWlycm9yLHA9cy53aGF0c2FwcFBvcHVwVGl0bGUsbT1zLndoYXRzYXBwUG9wdXBTdWJ0aXRsZSxoPXMuYnV0dG9uU2hhZG93LHM9cy5kaXJlY3Rpb24sZz1wZShhLDUpLGI9Q3QoT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSx5PWJbMF0sdj1iWzFdLGI9Q3QoT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSx3PWJbMF0seD1iWzFdO09iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtsPyh2KCEwKSx4KCEwKSk6dighMSl9KTtyZXR1cm4ieW91dHViZSI9PT1jP3cmJkguYS5jcmVhdGVFbGVtZW50KFV0LHtpc1Nob3c6eSxvbkFuaW1hdGlvbkVuZDp0LHNpemU6ZSxidXR0b25TaGFkb3c6aCxkaXJlY3Rpb246cyxjdXN0b21TZXR0aW5nczpjfSxILmEuY3JlYXRlRWxlbWVudChqLG51bGwsRCgpJiZILmEuY3JlYXRlRWxlbWVudChBLHttaXJyb3I6ZH0sciksSC5hLmNyZWF0ZUVsZW1lbnQoQnQse29uTW91c2VVcDpuLG1pcnJvcjpkLGJ1dHRvblNoYWRvdzpofSxILmEuY3JlYXRlRWxlbWVudChQLHtjdXN0b21TZXR0aW5nczpjfSkpKSxpKToid29uZGVyY2hhdCI9PT1jP3cmJkguYS5jcmVhdGVFbGVtZW50KER0LHtpc1Nob3c6eSxvbkFuaW1hdGlvbkVuZDp0LHNpemU6ZSxidXR0b25TaGFkb3c6aCxkaXJlY3Rpb246cyxjdXN0b21TZXR0aW5nczpjfSxEKCkmJkguYS5jcmVhdGVFbGVtZW50KGose2NvbG9yOmEsYmdTdHlsZTp1LGdyYWRpZW50Omd9LEguYS5jcmVhdGVFbGVtZW50KEEse21pcnJvcjpkfSxyKSxILmEuY3JlYXRlRWxlbWVudChBdCx7bWlycm9yOmR9LG8pLEguYS5jcmVhdGVFbGVtZW50KFMse29uTW91c2VVcDpuLG1pcnJvcjpkfSxILmEuY3JlYXRlRWxlbWVudChQLG51bGwpKSksaSk6Imdvb2dsZW1hcCI9PT1jP3cmJkguYS5jcmVhdGVFbGVtZW50KE50LHtpc1Nob3c6eSxvbkFuaW1hdGlvbkVuZDp0LHNpemU6ZSxidXR0b25TaGFkb3c6aCxkaXJlY3Rpb246cyxjdXN0b21TZXR0aW5nczpjfSxILmEuY3JlYXRlRWxlbWVudChqLHtjb2xvcjphLGJnU3R5bGU6dSxncmFkaWVudDpnfSxILmEuY3JlYXRlRWxlbWVudChBLHttaXJyb3I6ZH0sciksSC5hLmNyZWF0ZUVsZW1lbnQoQXQse21pcnJvcjpkfSxvKSxILmEuY3JlYXRlRWxlbWVudChTLHtvbk1vdXNlVXA6bixtaXJyb3I6ZH0sSC5hLmNyZWF0ZUVsZW1lbnQoUCxudWxsKSkpLGkpOiJ3aGF0c2FwcCI9PT1jP3cmJkguYS5jcmVhdGVFbGVtZW50KFB0LHtpc1Nob3c6eSxvbkFuaW1hdGlvbkVuZDp0LHNpemU6ZSxtaXJyb3I6ZCxidXR0b25TaGFkb3c6aCxkaXJlY3Rpb246cyxjdXN0b21TZXR0aW5nczpjfSxILmEuY3JlYXRlRWxlbWVudChJdCx7Y29sb3I6YSxiZ1N0eWxlOnUsZ3JhZGllbnQ6Z30sSC5hLmNyZWF0ZUVsZW1lbnQoX3QsbnVsbCxILmEuY3JlYXRlRWxlbWVudChMdCxudWxsLHIpLEguYS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwscCYmSC5hLmNyZWF0ZUVsZW1lbnQoenQse21pcnJvcjpkfSxwKSxtJiZILmEuY3JlYXRlRWxlbWVudChUdCx7bWlycm9yOmR9LG0pKSksSC5hLmNyZWF0ZUVsZW1lbnQoTXQse29uTW91c2VVcDpufSxILmEuY3JlYXRlRWxlbWVudChQLHtjdXN0b21TZXR0aW5nczpjfSkpKSxpKToiY2FsZW5kYXIiPT09Yz93JiZILmEuY3JlYXRlRWxlbWVudChSdCx7aXNTaG93Onksb25BbmltYXRpb25FbmQ6dCxzaXplOmUsbWlycm9yOmQsYnV0dG9uU2hhZG93OmgsZGlyZWN0aW9uOnN9LEguYS5jcmVhdGVFbGVtZW50KGose2NvbG9yOmEsYmdTdHlsZTp1LGdyYWRpZW50Omd9LEguYS5jcmVhdGVFbGVtZW50KEEse21pcnJvcjpkfSxyKSxILmEuY3JlYXRlRWxlbWVudChBdCx7bWlycm9yOmR9LG8pLEguYS5jcmVhdGVFbGVtZW50KFMse29uTW91c2VVcDpuLG1pcnJvcjpkfSxILmEuY3JlYXRlRWxlbWVudChQLG51bGwpKSksaSk6dyYmSC5hLmNyZWF0ZUVsZW1lbnQoayx7aXNTaG93Onksb25BbmltYXRpb25FbmQ6dCxzaXplOmUsbWlycm9yOmQsYnV0dG9uU2hhZG93OmgsZGlyZWN0aW9uOnMsY3VzdG9tU2V0dGluZ3M6Y30sSC5hLmNyZWF0ZUVsZW1lbnQoaix7Y29sb3I6YSxiZ1N0eWxlOnUsZ3JhZGllbnQ6Z30sSC5hLmNyZWF0ZUVsZW1lbnQoQSx7bWlycm9yOmR9LHIpLEguYS5jcmVhdGVFbGVtZW50KEF0LHttaXJyb3I6ZH0sbyksSC5hLmNyZWF0ZUVsZW1lbnQoUyx7b25Nb3VzZVVwOm4sbWlycm9yOmR9LEguYS5jcmVhdGVFbGVtZW50KFAsbnVsbCkpKSxpKX0sRnQ9Qy5kLnNwYW4ud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLTE2Z2R4MGktMCJ9KShbIiIsIiJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUuYmdVcmwsbj1lLnNpemUscj1lLmlzU2luZ2xlLG89ZS5idXR0b25TdHlsZSxlPWUuYnV0dG9uQm9yZGVyUmFkaXVzO3JldHVybiBPYmplY3QoQy5jKShbJ2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudDtiYWNrZ3JvdW5kOnVybCgiJywnIikgbm8tcmVwZWF0IGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7d2lkdGg6JywiO2hlaWdodDoiLCI7IiwiIHBvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoiLCI7Il0sdCwibWVkaXVtIj09PW4mJnI/IjMwcHgiOiIxMDAlIiwibWVkaXVtIj09PW4mJnI/IjMwcHgiOiIxMDAlIiwiY2xhc3NpYyIhPT1vJiYibWVkaXVtIiE9PW4mJiJzbWFsbCIhPT1uJiZPYmplY3QoQy5jKShbIndpZHRoOiIsInB4O2hlaWdodDoiLCJweDsiXSxNYXRoLm1pbiguNTUqbiw0MCksTWF0aC5taW4oLjU1Km4sNDApKSwibWVkaXVtIiE9PW4mJiJzbWFsbCIhPT1uJiYiY2xhc3NpYyI9PT1vPyIiLmNvbmNhdChlLCIlIik6IiIuY29uY2F0KC4zNSplLCJweCIpKX0pLG09ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pY29uVXJsLGU9ZS5zaXplLG49T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Mscj1uLmlzU2luZ2xlLG89bi5idXR0b25TdHlsZSxuPW4uYnV0dG9uQm9yZGVyUmFkaXVzO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChGdCx7YmdVcmw6dCxzaXplOmUsaXNTaW5nbGU6cixidXR0b25TdHlsZTpvLGJ1dHRvbkJvcmRlclJhZGl1czpufSl9O2Z1bmN0aW9uIEh0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/VnQoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/VnQoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBWdChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uICR0KGUpe3ZhciB0PWUuc2l6ZSxlPXZvaWQgMD09PShlPWUuY3VzdG9tU2V0dGluZ3MpP251bGw6ZSxuPShvPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS55b3V0dWJlSWNvbixyPW8uaXNQcm8sbz1vLmlzU2luZ2xlO3JldHVybiByJiZuP0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6bixzaXplOnR9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT10JiZvP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmVyc2lvbjoiMS4xIix2aWV3Qm94OiItMyAtMyAzOCAzOCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTIuOTMyIDIwLjQ1OXYtOC45MTdsNy44MzkgNC40NTl6TTMwLjM2OCA4LjczNWMtMC4zNTQtMS4zMDEtMS4zNTQtMi4zMDctMi42MjUtMi42NjNsLTAuMDI3LTAuMDA2Yy0zLjE5My0wLjQwNi02Ljg4Ni0wLjYzOC0xMC42MzQtMC42MzgtMC4zODEgMC0wLjc2MSAwLjAwMi0xLjE0IDAuMDA3bDAuMDU4LTAuMDAxYy0wLjMyMi0wLjAwNC0wLjcwMS0wLjAwNy0xLjA4Mi0wLjAwNy0zLjc0OCAwLTcuNDQzIDAuMjMyLTExLjA3MCAwLjY4MWwwLjQzNC0wLjA0NGMtMS4yOTcgMC4zNjMtMi4yOTcgMS4zNjgtMi42NDQgMi42NDNsLTAuMDA2IDAuMDI2Yy0wLjQgMi4xMDktMC42MjggNC41MzYtMC42MjggNy4wMTYgMCAwLjA4OCAwIDAuMTc2IDAuMDAxIDAuMjYzbC0wLTAuMDE0Yy0wIDAuMDc0LTAuMDAxIDAuMTYyLTAuMDAxIDAuMjUgMCAyLjQ4IDAuMjI5IDQuOTA2IDAuNjY2IDcuMjU5bC0wLjAzOC0wLjI0NGMwLjM1NCAxLjMwMSAxLjM1NCAyLjMwNyAyLjYyNSAyLjY2M2wwLjAyNyAwLjAwNmMzLjE5MyAwLjQwNiA2Ljg4NiAwLjYzOCAxMC42MzQgMC42MzggMC4zOCAwIDAuNzYtMC4wMDIgMS4xNC0wLjAwN2wtMC4wNTggMC4wMDFjMC4zMjIgMC4wMDQgMC43MDIgMC4wMDcgMS4wODIgMC4wMDcgMy43NDkgMCA3LjQ0My0wLjIzMiAxMS4wNzAtMC42ODFsLTAuNDM0IDAuMDQ0YzEuMjk4LTAuMzYyIDIuMjk4LTEuMzY4IDIuNjQ2LTIuNjQzbDAuMDA2LTAuMDI2YzAuMzk5LTIuMTA5IDAuNjI3LTQuNTM2IDAuNjI3LTcuMDE1IDAtMC4wODgtMC0wLjE3Ni0wLjAwMS0wLjI2M2wwIDAuMDEzYzAtMC4wNzQgMC4wMDEtMC4xNjIgMC4wMDEtMC4yNSAwLTIuNDgtMC4yMjktNC45MDYtMC42NjYtNy4yNTlsMC4wMzggMC4yNDR6IixmaWxsOiJ5b3V0dWJlIj09PWUmJiIjZmYwMDAwIn0pKX12YXIgV3Q9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMWVhNDV4aS0wIn0pKFsibWFyZ2luOjYwcHggMCA2MHB4IDA7bGluZS1oZWlnaHQ6MjNweDsmIGF7Y29sb3I6IzExMTtmb250LXNpemU6MjZweDt0ZXh0LWRlY29yYXRpb246bm9uZTt1bmljb2RlLWJpZGk6cGxhaW50ZXh0O30iXSksR3Q9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MteTVqbTd5LTAifSkoWyJwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTsiXSksWmU9T2JqZWN0KEMuZSkoWyIwJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpO30xMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt9Il0pLHF0PUMuZC5zcGFuLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy15NWptN3ktMSJ9KShbImRpc3BsYXk6YmxvY2s7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtib3JkZXI6MTBweCBzb2xpZCAjZjNmM2YzO2JvcmRlci10b3A6MTBweCBzb2xpZCAjMzgzNjM2O2JvcmRlci1yYWRpdXM6NTAlO2FuaW1hdGlvbjoiLCIgMS41cyBsaW5lYXIgaW5maW5pdGU7Il0sWmUpO2Z1bmN0aW9uIEkoZSl7ZS5jaGlsZHJlbjtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQoR3Qse2NsYXNzTmFtZToic3Bpbm5lci1jb250YWluZXIifSxILmEuY3JlYXRlRWxlbWVudChxdCx7Y2xhc3NOYW1lOiJsb2FkaW5nLXNwaW5uZXIifSkpfWZ1bmN0aW9uIFp0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/WHQoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/WHQoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBYdChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIFl0KGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS5jYWxsSWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiLTcyIC03MiA3MDQgNzA0Iix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6IiBNMTY2LjE1Niw1MTJoLTQxLjUzMWMtNy4zNzUtMC4wMzEtMjAuNTYzLTguNTYzLTIwLjkzOC04LjkwNkMzNy40MzgsNDM3Ljk2OSwwLDM0OC45MDYsMCwyNTUuOTM4IEMwLDE2Mi43MTksMzcuNjU2LDczLjM3NSwxMDQuMjgxLDguMjE5QzEwNC4zMTMsOC4xODgsMTE3LjI1LDAsMTI0LjYyNSwwaDQxLjUzMWMxNS4yMTksMCwzMy4yNSwxMS4xMjUsNDAuMDYzLDI0Ljc4MWwyLjkwNiw1Ljg0NCBjNi43ODEsMTMuNTk0LDYuMTg4LDM1LjU2My0xLjM0NCw0OC43NWwtMjcuOTA2LDQ4LjgxM2MtNy41NjMsMTMuMjE5LTI2LjE4OCwyNC4yNS00MS40MDYsMjQuMjVIMTEwLjc1IGMtMzYuODEzLDY0LTM2LjgxMywxNDMuMDk0LTAuMDMxLDIwNy4xMjVoMjcuNzVjMTUuMjE5LDAsMzMuODQ0LDExLjAzMSw0MS40MDYsMjQuMjVsMjcuODc1LDQ4LjgxMyBjNy41MzEsMTMuMTg4LDguMTU2LDM1LjA5NCwxLjM3NSw0OC43ODFsLTIuOTA2LDUuODQ0QzE5OS4zNzUsNTAwLjg0NCwxODEuMzc1LDUxMiwxNjYuMTU2LDUxMnogTTUxMiwxMjh2MjU2IGMwLDM1LjM0NC0yOC42NTYsNjQtNjQsNjRIMjQ0LjY4OGMtMS4yNS0xMS4yMTktMy45NjktMjIuMTU2LTkuMTU2LTMxLjI1bC0yNy44NzUtNDguODEzIGMtMTMuNDA2LTIzLjQwNi00Mi40NjktNDAuMzc1LTY5LjE4OC00MC4zNzVoLTguMTU2Yy0yMC4xODgtNDUuNDM4LTIwLjE4OC05Ny43MTksMC0xNDMuMTI1aDguMTU2IGMyNi43MTksMCw1NS43ODEtMTYuOTY5LDY5LjE4OC00MC4zNzVsMjcuOTA2LTQ4LjgxM2M1LjE4OC05LjA5NCw3LjkwNi0yMC4wNjMsOS4xNTYtMzEuMjVINDQ4QzQ4My4zNDQsNjQsNTEyLDkyLjY1Niw1MTIsMTI4eiBNMzI4LDM2OGMwLTEzLjI1LTEwLjc1LTI0LTI0LTI0cy0yNCwxMC43NS0yNCwyNHMxMC43NSwyNCwyNCwyNFMzMjgsMzgxLjI1LDMyOCwzNjh6IE0zMjgsMzA0YzAtMTMuMjUtMTAuNzUtMjQtMjQtMjQgcy0yNCwxMC43NS0yNCwyNHMxMC43NSwyNCwyNCwyNFMzMjgsMzE3LjI1LDMyOCwzMDR6IE0zMjgsMjQwYzAtMTMuMjUtMTAuNzUtMjQtMjQtMjRzLTI0LDEwLjc1LTI0LDI0czEwLjc1LDI0LDI0LDI0IFMzMjgsMjUzLjI1LDMyOCwyNDB6IE0zOTIsMzY4YzAtMTMuMjUtMTAuNzUtMjQtMjQtMjRzLTI0LDEwLjc1LTI0LDI0czEwLjc1LDI0LDI0LDI0UzM5MiwzODEuMjUsMzkyLDM2OHogTTM5MiwzMDQgYzAtMTMuMjUtMTAuNzUtMjQtMjQtMjRzLTI0LDEwLjc1LTI0LDI0czEwLjc1LDI0LDI0LDI0UzM5MiwzMTcuMjUsMzkyLDMwNHogTTM5MiwyNDBjMC0xMy4yNS0xMC43NS0yNC0yNC0yNHMtMjQsMTAuNzUtMjQsMjQgczEwLjc1LDI0LDI0LDI0UzM5MiwyNTMuMjUsMzkyLDI0MHogTTQ1NiwzNjhjMC0xMy4yNS0xMC43NS0yNC0yNC0yNHMtMjQsMTAuNzUtMjQsMjRzMTAuNzUsMjQsMjQsMjRTNDU2LDM4MS4yNSw0NTYsMzY4eiBNNDU2LDMwNCBjMC0xMy4yNS0xMC43NS0yNC0yNC0yNHMtMjQsMTAuNzUtMjQsMjRzMTAuNzUsMjQsMjQsMjRTNDU2LDMxNy4yNSw0NTYsMzA0eiBNNDU2LDI0MGMwLTEzLjI1LTEwLjc1LTI0LTI0LTI0cy0yNCwxMC43NS0yNCwyNCBzMTAuNzUsMjQsMjQsMjRTNDU2LDI1My4yNSw0NTYsMjQweiBNNDU2LDE0NGMwLTguODQ0LTcuMTU2LTE2LTE2LTE2SDI5NmMtOC44NDQsMC0xNiw3LjE1Ni0xNiwxNnYzMmMwLDguODQ0LDcuMTU2LDE2LDE2LDE2aDE0NCBjOC44NDQsMCwxNi03LjE1NiwxNi0xNlYxNDR6In0pKX12YXIgUXQ9Qy5kLmlmcmFtZS53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMWVoNGUzMy0wIn0pKFsiaGVpZ2h0OjI3MHB4O2JvcmRlci1yYWRpdXM6OXB4O21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDEwMHB4KTtib3JkZXI6bm9uZTtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbjpvcGFjaXR5IC41czt3aWR0aDoxMDAlO2JveC1zaGFkb3c6MHB4IDFweCA3cHggcmdiYSgxMzYsMTM2LDEzNiwiLCIlKTsiLCI7IiwiIl0sZnVuY3Rpb24oZSl7cmV0dXJuIDIwPGUuYnV0dG9uU2hhZG93P2UuYnV0dG9uU2hhZG93OjIwfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5pc0xvYWRpbmcmJk9iamVjdChDLmMpKFsib3BhY2l0eTowOyJdKX0sRCgpJiZPYmplY3QoQy5jKShbImhlaWdodDoxMDB2aDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA1MHB4KTtib3JkZXItcmFkaXVzOjA7Il0pKSxLdD1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy0xZWg0ZTMzLTEifSkoWyIgIGJvcmRlci1yYWRpdXM6OXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246YmFja2dyb3VuZCAuNXM7IiwiICIsIiJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzTG9hZGluZyYmT2JqZWN0KEMuYykoWyJiYWNrZ3JvdW5kOiMwMDAwMDA7Il0pfSxEKCkmJk9iamVjdChDLmMpKFsiYm9yZGVyLXJhZGl1czowOyJdKSk7ZnVuY3Rpb24gSnQoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGEsaSxsPVtdLGM9ITAsdT0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYobC5wdXNoKHIudmFsdWUpLGwubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe3U9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGk9bi5yZXR1cm4oKSxPYmplY3QoaSkhPT1pKSlyZXR1cm59ZmluYWxseXtpZih1KXRocm93IG99fXJldHVybiBsfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZihlKXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9lbihlLHQpOiJNYXAiPT09KG49Ik9iamVjdCI9PT0obj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSkpJiZlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IubmFtZTpuKXx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9lbihlLHQpOnZvaWQgMH0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGVuKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdG4oZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLmNvbnRhY3Rmb3JtSWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiMCAwIDMyIDMyIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6IiBNMjcgMjIuNzU3YzAgMS4yNC0uOTg4IDIuMjQzLTIuMTkgMi4yNDNINy4xOUM1Ljk4IDI1IDUgMjMuOTk0IDUgMjIuNzU3VjEzLjY3YzAtLjU1Ni4zOS0uNzczLjg1NS0uNDk2bDguNzggNS4yMzhjLjc4Mi40NjcgMS45NS40NjcgMi43MyAwbDguNzgtNS4yMzhjLjQ3Mi0uMjguODU1LS4wNjMuODU1LjQ5NXY5LjA4N3oifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiIgTTI3IDkuMjQzQzI3IDguMDA2IDI2LjAyIDcgMjQuODEgN0g3LjE5QzUuOTg4IDcgNSA4LjAwNCA1IDkuMjQzdi40NjVjMCAuNTU0LjM4NSAxLjIzMi44NTcgMS41MTRsOS42MSA1LjczM2MuMjY3LjE2LjguMTYgMS4wNjcgMGw5LjYxLTUuNzMzYy40NzMtLjI4My44NTYtLjk2Ljg1Ni0xLjUxNHYtLjQ2NXoifSkpfXZhciBubj1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy0xNXZnYmh0LTAifSkoWyJtYXJnaW46NjBweCAwIDYwcHggMDtsaW5lLWhlaWdodDoyM3B4OyYgYXtjb2xvcjojMTExO2ZvbnQtc2l6ZToyNnB4O3RleHQtZGVjb3JhdGlvbjpub25lO3VuaWNvZGUtYmlkaTpwbGFpbnRleHQ7fSJdKSxybj1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy0xNXZnYmh0LTEifSkoWyJtYXJnaW46MzBweCAyNXB4IDIwcHggMjVweDt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzOyIsIjsmIGltZ3t3aWR0aDoxNTBweDttYXJnaW46MCBhdXRvO30mIGF7Y29sb3I6IzExMTtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MTBweDtmb250LXNpemU6MjZweDt0ZXh0LWRlY29yYXRpb246bm9uZTt1bmljb2RlLWJpZGk6cGxhaW50ZXh0O30iXSxmdW5jdGlvbihlKXtyZXR1cm4gZS5pc0xvYWRpbmcmJk9iamVjdChDLmMpKFsib3BhY2l0eTouMTU7Il0pfSk7ZnVuY3Rpb24gb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGEsaSxsPVtdLGM9ITAsdT0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYobC5wdXNoKHIudmFsdWUpLGwubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe3U9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGk9bi5yZXR1cm4oKSxPYmplY3QoaSkhPT1pKSlyZXR1cm59ZmluYWxseXtpZih1KXRocm93IG99fXJldHVybiBsfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZihlKXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9hbihlLHQpOiJNYXAiPT09KG49Ik9iamVjdCI9PT0obj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSkpJiZlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IubmFtZTpuKXx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9hbihlLHQpOnZvaWQgMH0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGFuKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbG4oZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLmRpc2NvcmRJY29uLG49ci5pc1BybyxyPXIuaXNTaW5nbGU7cmV0dXJuIG4mJnQ/SC5hLmNyZWF0ZUVsZW1lbnQobSx7aWNvblVybDp0LHNpemU6ZX0pOkguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx2aWV3Qm94OiItMTcuNiAwIDE2MC4xNCA5Ni4zNiIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4bWxuc1hsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTA3LjcsOC4wN0ExMDUuMTUsMTA1LjE1LDAsMCwwLDgxLjQ3LDBhNzIuMDYsNzIuMDYsMCwwLDAtMy4zNiw2LjgzQTk3LjY4LDk3LjY4LDAsMCwwLDQ5LDYuODMsNzIuMzcsNzIuMzcsMCwwLDAsNDUuNjQsMCwxMDUuODksMTA1Ljg5LDAsMCwwLDE5LjM5LDguMDlDMi43OSwzMi42NS0xLjcxLDU2LjYuNTQsODAuMjFoMEExMDUuNzMsMTA1LjczLDAsMCwwLDMyLjcxLDk2LjM2LDc3LjcsNzcuNywwLDAsMCwzOS42LDg1LjI1YTY4LjQyLDY4LjQyLDAsMCwxLTEwLjg1LTUuMThjLjkxLS42NiwxLjgtMS4zNCwyLjY2LTJhNzUuNTcsNzUuNTcsMCwwLDAsNjQuMzIsMGMuODcuNzEsMS43NiwxLjM5LDIuNjYsMmE2OC42OCw2OC42OCwwLDAsMS0xMC44Nyw1LjE5LDc3LDc3LDAsMCwwLDYuODksMTEuMUExMDUuMjUsMTA1LjI1LDAsMCwwLDEyNi42LDgwLjIyaDBDMTI5LjI0LDUyLjg0LDEyMi4wOSwyOS4xMSwxMDcuNyw4LjA3Wk00Mi40NSw2NS42OUMzNi4xOCw2NS42OSwzMSw2MCwzMSw1M3M1LTEyLjc0LDExLjQzLTEyLjc0UzU0LDQ2LDUzLjg5LDUzLDQ4Ljg0LDY1LjY5LDQyLjQ1LDY1LjY5Wm00Mi4yNCwwQzc4LjQxLDY1LjY5LDczLjI1LDYwLDczLjI1LDUzczUtMTIuNzQsMTEuNDQtMTIuNzRTOTYuMjMsNDYsOTYuMTIsNTMsOTEuMDgsNjUuNjksODQuNjksNjUuNjlaIn0pKX1mdW5jdGlvbiBjbihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykudGVhbXNJY29uLG49ci5pc1BybyxyPXIuaXNTaW5nbGU7cmV0dXJuIG4mJnQ/SC5hLmNyZWF0ZUVsZW1lbnQobSx7aWNvblVybDp0LHNpemU6ZX0pOkguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixzdHJva2U6Im5vbmUifSx2aWV3Qm94OiItMjAzLjMyNDk1IC01MTguMzMzNSAyODk3LjQ4MjkgMzExMC4wMDEiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseG1sbnNYbGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1NTQuNjM3IDc3Ny41aDU3NS43MTNjNTQuMzkxIDAgOTguNDgzIDQ0LjA5MiA5OC40ODMgOTguNDgzdjUyNC4zOThjMCAxOTkuOTAxLTE2Mi4wNTEgMzYxLjk1Mi0zNjEuOTUyIDM2MS45NTJoLTEuNzExYy0xOTkuOTAxLjAyOC0zNjEuOTc1LTE2Mi0zNjIuMDA0LTM2MS45MDFWODI4Ljk3MWMuMDAxLTI4LjQyNyAyMy4wNDUtNTEuNDcxIDUxLjQ3MS01MS40NzF6IixmaWxsOiIjNTA1OUM5In0pLEguYS5jcmVhdGVFbGVtZW50KCJjaXJjbGUiLHtyOiIyMzMuMjUiLGN5OiI0NDAuNTgzIixjeDoiMTk0My43NSIsZmlsbDoiIzUwNTlDOSJ9KSxILmEuY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7cjoiMzM2LjkxNyIsY3k6IjMzNi45MTciLGN4OiIxMjE4LjA4MyIsZmlsbDoiIzdCODNFQiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNjY3LjMyMyA3NzcuNUg3MTcuMDFjLTUzLjc0MyAxLjMzLTk2LjI1NyA0NS45MzEtOTUuMDEgOTkuNjc2djU5OC4xMDVjLTcuNTA1IDMyMi41MTkgMjQ3LjY1NyA1OTAuMTYgNTcwLjE2NyA1OTguMDUzIDMyMi41MS03Ljg5MyA1NzcuNjcxLTI3NS41MzQgNTcwLjE2Ny01OTguMDUzVjg3Ny4xNzZjMS4yNDUtNTMuNzQ1LTQxLjI2OC05OC4zNDYtOTUuMDExLTk5LjY3NnoiLGZpbGw6IiM3QjgzRUIifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTI0NCA3NzcuNXY4MzguMTQ1Yy0uMjU4IDM4LjQzNS0yMy41NDkgNzIuOTY0LTU5LjA5IDg3LjU5OGE5MS44NTYgOTEuODU2IDAgMDEtMzUuNzY1IDcuMjU3SDY2Ny42MTNjLTYuNzM4LTE3LjEwNS0xMi45NTgtMzQuMjEtMTguMTQyLTUxLjgzM2E2MzEuMjg3IDYzMS4yODcgMCAwMS0yNy40NzItMTgzLjQ5Vjg3Ny4wMmMtMS4yNDYtNTMuNjU5IDQxLjE5OC05OC4xOSA5NC44NTUtOTkuNTJ6IixvcGFjaXR5OiIuMSJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMTkyLjE2NyA3NzcuNXY4ODkuOTc4YTkxLjgwMiA5MS44MDIgMCAwMS03LjI1NyAzNS43NjVjLTE0LjYzNCAzNS41NDEtNDkuMTYzIDU4LjgzMy04Ny41OTggNTkuMDlINjkxLjk3NWMtOC44MTItMTcuMTA1LTE3LjEwNS0zNC4yMS0yNC4zNjItNTEuODMzLTcuMjU3LTE3LjYyMy0xMi45NTgtMzQuMjEtMTguMTQyLTUxLjgzM2E2MzEuMjgyIDYzMS4yODIgMCAwMS0yNy40NzItMTgzLjQ5Vjg3Ny4wMmMtMS4yNDYtNTMuNjU5IDQxLjE5OC05OC4xOSA5NC44NTUtOTkuNTJ6IixvcGFjaXR5OiIuMiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMTkyLjE2NyA3NzcuNXY3ODYuMzEyYy0uMzk1IDUyLjIyMy00Mi42MzIgOTQuNDYtOTQuODU1IDk0Ljg1NWgtNDQ3Ljg0QTYzMS4yODIgNjMxLjI4MiAwIDAxNjIyIDE0NzUuMTc3Vjg3Ny4wMmMtMS4yNDYtNTMuNjU5IDQxLjE5OC05OC4xOSA5NC44NTUtOTkuNTJ6IixvcGFjaXR5OiIuMiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMTQwLjMzMyA3NzcuNXY3ODYuMzEyYy0uMzk1IDUyLjIyMy00Mi42MzIgOTQuNDYtOTQuODU1IDk0Ljg1NUg2NDkuNDcyQTYzMS4yODIgNjMxLjI4MiAwIDAxNjIyIDE0NzUuMTc3Vjg3Ny4wMmMtMS4yNDYtNTMuNjU5IDQxLjE5OC05OC4xOSA5NC44NTUtOTkuNTJ6IixvcGFjaXR5OiIuMiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMjQ0IDUwOS41MjJ2MTYzLjI3NWMtOC44MTIuNTE4LTE3LjEwNSAxLjAzNy0yNS45MTcgMS4wMzctOC44MTIgMC0xNy4xMDUtLjUxOC0yNS45MTctMS4wMzdhMjg0LjQ3MiAyODQuNDcyIDAgMDEtNTEuODMzLTguMjkzYy0xMDQuOTYzLTI0Ljg1Ny0xOTEuNjc5LTk4LjQ2OS0yMzMuMjUtMTk4LjAwM2EyODguMDIgMjg4LjAyIDAgMDEtMTYuNTg3LTUxLjgzM2gyNTguNjQ4YzUyLjMwNS4xOTggOTQuNjU3IDQyLjU0OSA5NC44NTYgOTQuODU0eiIsb3BhY2l0eToiLjEifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTE5Mi4xNjcgNTYxLjM1NXYxMTEuNDQyYTI4NC40NzIgMjg0LjQ3MiAwIDAxLTUxLjgzMy04LjI5M2MtMTA0Ljk2My0yNC44NTctMTkxLjY3OS05OC40NjktMjMzLjI1LTE5OC4wMDNoMTkwLjIyOGM1Mi4zMDQuMTk4IDk0LjY1NiA0Mi41NSA5NC44NTUgOTQuODU0eiIsb3BhY2l0eToiLjIifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTE5Mi4xNjcgNTYxLjM1NXYxMTEuNDQyYTI4NC40NzIgMjg0LjQ3MiAwIDAxLTUxLjgzMy04LjI5M2MtMTA0Ljk2My0yNC44NTctMTkxLjY3OS05OC40NjktMjMzLjI1LTE5OC4wMDNoMTkwLjIyOGM1Mi4zMDQuMTk4IDk0LjY1NiA0Mi41NSA5NC44NTUgOTQuODU0eiIsb3BhY2l0eToiLjIifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTE0MC4zMzMgNTYxLjM1NXYxMDMuMTQ4Yy0xMDQuOTYzLTI0Ljg1Ny0xOTEuNjc5LTk4LjQ2OS0yMzMuMjUtMTk4LjAwM2gxMzguMzk1YzUyLjMwNS4xOTkgOTQuNjU2IDQyLjU1MSA5NC44NTUgOTQuODU1eiIsb3BhY2l0eToiLjIifSksSC5hLmNyZWF0ZUVsZW1lbnQoImxpbmVhckdyYWRpZW50Iix7Z3JhZGllbnRUcmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDIwNzUuMzMzKSIseTI6IjM5NC4yNjEiLHgyOiI5NDIuMjM0Iix5MToiMTY4My4wNzMiLHgxOiIxOTguMDk5IixncmFkaWVudFVuaXRzOiJ1c2VyU3BhY2VPblVzZSIsaWQ6ImEifSxILmEuY3JlYXRlRWxlbWVudCgic3RvcCIse29mZnNldDoiMCIsc3RvcENvbG9yOiIjNWE2MmMzIn0pLEguYS5jcmVhdGVFbGVtZW50KCJzdG9wIix7b2Zmc2V0OiIuNSIsc3RvcENvbG9yOiIjNGQ1NWJkIn0pLEguYS5jcmVhdGVFbGVtZW50KCJzdG9wIix7b2Zmc2V0OiIxIixzdG9wQ29sb3I6IiMzOTQwYWIifSkpLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTk1LjAxIDQ2Ni41aDk1MC4zMTJjNTIuNDczIDAgOTUuMDEgNDIuNTM4IDk1LjAxIDk1LjAxdjk1MC4zMTJjMCA1Mi40NzMtNDIuNTM4IDk1LjAxLTk1LjAxIDk1LjAxSDk1LjAxYy01Mi40NzMgMC05NS4wMS00Mi41MzgtOTUuMDEtOTUuMDFWNTYxLjUxYzAtNTIuNDcyIDQyLjUzOC05NS4wMSA5NS4wMS05NS4wMXoiLGZpbGw6InVybCgjYSkifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNODIwLjIxMSA4MjguMTkzaC0xODkuOTd2NTE3LjI5N2gtMTIxLjAzVjgyOC4xOTNIMzIwLjEyM1Y3MjcuODQ0aDUwMC4wODh6IixmaWxsOiIjRkZGIn0pKX1mdW5jdGlvbiB1bihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykuZW1haWxJY29uLG49ci5pc1BybyxyPXIuaXNTaW5nbGU7cmV0dXJuIG4mJnQ/SC5hLmNyZWF0ZUVsZW1lbnQobSx7aWNvblVybDp0LHNpemU6ZX0pOkguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx2aWV3Qm94OiIwIDAgMzIgMzIiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseG1sbnNYbGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE5LjYsMTkuNDdBNSw1LDAsMSwxLDIxLDE2djEuNWExLjUsMS41LDAsMCwwLDMsMFYxNmE4LDgsMCwxLDAtNC45NCw3LjRBMSwxLDAsMCwxLDIwLDI1LjE4bC0uMTQuMDZBMTAsMTAsMCwxLDEsMjYsMTZ2MS41YTMuNSwzLjUsMCwwLDEtNi40LDJaTTE2LDE5YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDE2LDE5WiJ9KSl9ZnVuY3Rpb24gc24oZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLmNhbGVuZGFySWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIix0cmFuc2Zvcm06InNjYWxlKDAuODUpIn0sdmVyc2lvbjoiMS4xIix2aWV3Qm94OiIwIDAgMjQuNSAyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNy43NSAyLjVDNy43NSAyLjA4NTc5IDcuNDE0MjEgMS43NSA3IDEuNzVDNi41ODU3OSAxLjc1IDYuMjUgMi4wODU3OSA2LjI1IDIuNVY0LjA3OTI2QzQuODEwNjcgNC4xOTQ1MSAzLjg2NTc3IDQuNDc3MzcgMy4xNzE1NyA1LjE3MTU3QzIuNDc3MzcgNS44NjU3NyAyLjE5NDUxIDYuODEwNjcgMi4wNzkyNiA4LjI1SDIxLjkyMDdDMjEuODA1NSA2LjgxMDY3IDIxLjUyMjYgNS44NjU3NyAyMC44Mjg0IDUuMTcxNTdDMjAuMTM0MiA0LjQ3NzM3IDE5LjE4OTMgNC4xOTQ1MSAxNy43NSA0LjA3OTI2VjIuNUMxNy43NSAyLjA4NTc5IDE3LjQxNDIgMS43NSAxNyAxLjc1QzE2LjU4NTggMS43NSAxNi4yNSAyLjA4NTc5IDE2LjI1IDIuNVY0LjAxMjlDMTUuNTg0NyA0IDE0LjgzOSA0IDE0IDRIMTBDOS4xNjA5NyA0IDguNDE1MjcgNCA3Ljc1IDQuMDEyOVYyLjVaIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yIDEyQzIgMTEuMTYxIDIgMTAuNDE1MyAyLjAxMjkgOS43NUgyMS45ODcxQzIyIDEwLjQxNTMgMjIgMTEuMTYxIDIyIDEyVjE0QzIyIDE3Ljc3MTIgMjIgMTkuNjU2OSAyMC44Mjg0IDIwLjgyODRDMTkuNjU2OSAyMiAxNy43NzEyIDIyIDE0IDIySDEwQzYuMjI4NzYgMjIgNC4zNDMxNSAyMiAzLjE3MTU3IDIwLjgyODRDMiAxOS42NTY5IDIgMTcuNzcxMiAyIDE0VjEyWk0xNyAxNEMxNy41NTIzIDE0IDE4IDEzLjU1MjMgMTggMTNDMTggMTIuNDQ3NyAxNy41NTIzIDEyIDE3IDEyQzE2LjQ0NzcgMTIgMTYgMTIuNDQ3NyAxNiAxM0MxNiAxMy41NTIzIDE2LjQ0NzcgMTQgMTcgMTRaTTE3IDE4QzE3LjU1MjMgMTggMTggMTcuNTUyMyAxOCAxN0MxOCAxNi40NDc3IDE3LjU1MjMgMTYgMTcgMTZDMTYuNDQ3NyAxNiAxNiAxNi40NDc3IDE2IDE3QzE2IDE3LjU1MjMgMTYuNDQ3NyAxOCAxNyAxOFpNMTMgMTNDMTMgMTMuNTUyMyAxMi41NTIzIDE0IDEyIDE0QzExLjQ0NzcgMTQgMTEgMTMuNTUyMyAxMSAxM0MxMSAxMi40NDc3IDExLjQ0NzcgMTIgMTIgMTJDMTIuNTUyMyAxMiAxMyAxMi40NDc3IDEzIDEzWk0xMyAxN0MxMyAxNy41NTIzIDEyLjU1MjMgMTggMTIgMThDMTEuNDQ3NyAxOCAxMSAxNy41NTIzIDExIDE3QzExIDE2LjQ0NzcgMTEuNDQ3NyAxNiAxMiAxNkMxMi41NTIzIDE2IDEzIDE2LjQ0NzcgMTMgMTdaTTcgMTRDNy41NTIyOCAxNCA4IDEzLjU1MjMgOCAxM0M4IDEyLjQ0NzcgNy41NTIyOCAxMiA3IDEyQzYuNDQ3NzIgMTIgNiAxMi40NDc3IDYgMTNDNiAxMy41NTIzIDYuNDQ3NzIgMTQgNyAxNFpNNyAxOEM3LjU1MjI4IDE4IDggMTcuNTUyMyA4IDE3QzggMTYuNDQ3NyA3LjU1MjI4IDE2IDcgMTZDNi40NDc3MiAxNiA2IDE2LjQ0NzcgNiAxN0M2IDE3LjU1MjMgNi40NDc3MiAxOCA3IDE4WiJ9KSl9dmFyIGZuPUMuZC5pZnJhbWUud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLTE5bnpuamMtMCJ9KShbImhlaWdodDozNTZweDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAxNTBweCk7Ym9yZGVyOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246b3BhY2l0eSAuNXM7IiwiOyIsIiJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzTG9hZGluZyYmT2JqZWN0KEMuYykoWyJvcGFjaXR5Oi4xNTsiXSl9LEQoKSYmT2JqZWN0KEMuYykoWyJ3aWR0aDoxMDAlO2hlaWdodDoxMDB2aDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA1N3B4KTsiXSkpO2Z1bmN0aW9uIGRuKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/cG4oZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/cG4oZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBwbihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBtbj1DLmQuaWZyYW1lLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy0xdXcwamMxLTAifSkoWyJoZWlnaHQ6NDA0cHg7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMTkwcHgpO2JvcmRlcjpub25lO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzO3dpZHRoOjEwMCU7IiwiOyIsIiJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzTG9hZGluZyYmT2JqZWN0KEMuYykoWyJvcGFjaXR5OjA7Il0pfSxEKCkmJk9iamVjdChDLmMpKFsiaGVpZ2h0OjEwMHZoO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDUwcHgpOyJdKSksaG49ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LmZhY2Vib29rSWNvbixyPXQuaXNQcm8sdD10LmlzU2luZ2xlO3JldHVybiByJiZuP0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6bixzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZ0P3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiMCAwIDMyIDMyIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNiA2QzkuOTI1IDYgNSAxMC41NiA1IDE2LjE4NWMwIDMuMjA1IDEuNiA2LjA2NSA0LjEgNy45MzJWMjhsMy43NDUtMi4wNTZjMSAuMjc3IDIuMDU4LjQyNiAzLjE1NS40MjYgNi4wNzUgMCAxMS00LjU2IDExLTEwLjE4NUMyNyAxMC41NiAyMi4wNzUgNiAxNiA2em0xLjA5MyAxMy43MTZsLTIuOC0yLjk4OC01LjQ2NyAyLjk4OCA2LjAxMy02LjM4MyAyLjg2OCAyLjk4OCA1LjM5OC0yLjk4Ny02LjAxMyA2LjM4M3oifSkpfTtmdW5jdGlvbiBnbihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2JuKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP2JuKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gYm4oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiB5bigpe3ZhciBlPShhPU9iamVjdChGLnVzZUNvbnRleHQpKFYpKS5zdGF0ZSx0PShhPWEuc2V0dGluZ3MpLmZhY2Vib29rLG49YS5mYWNlYm9va0xhYmVsLHI9YS5mYWNlYm9va0NvbG9yLG89YS5iZ1N0eWxlLGE9YS5hY3RpdmF0b3JTaXplLGk9KHM9Z24oT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSlbMF0sbD1zWzFdO09iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtsKCJmYWNlYm9vayI9PT1lLmJ1dHRvblBvcHVwKX0pO3ZhciBjPShzPWduKE9iamVjdChGLnVzZVN0YXRlKSghMCksMikpWzBdLHU9c1sxXSxzPShPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7ImZhY2Vib29rIj09PWUuYnV0dG9uUG9wdXAmJnUoITApfSxbZS5idXR0b25Qb3B1cF0pLCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcGx1Z2lucy9wYWdlLnBocD9ocmVmPWh0dHBzJTNBJTJGJTJGd3d3LmZhY2Vib29rLmNvbSUyRiIuY29uY2F0KHQsIiZ0YWJzPW1lc3NhZ2VzJndpZHRoPTMwMiZoZWlnaHQ9MzAwJnNtYWxsX2hlYWRlcj10cnVlJmFkYXB0X2NvbnRhaW5lcl93aWR0aD10cnVlJmhpZGVfY292ZXI9dHJ1ZSZzaG93X2ZhY2VwaWxlPWZhbHNlJmFwcElkIikpO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChOLHtjb2xvcjpyLG1lc3NlbmdlclRpdGxlOm4saWNvbjpILmEuY3JlYXRlRWxlbWVudChobixudWxsKSxlbmFibGVQb3B1cDppLGJnU3R5bGU6byxzaXplOmF9LGMmJkguYS5jcmVhdGVFbGVtZW50KEksbnVsbCksSC5hLmNyZWF0ZUVsZW1lbnQod24se29uTG9hZDpmdW5jdGlvbihlKXt1KCExKX0sc2Nyb2xsaW5nOiJubyIsZnJhbWVCb3JkZXI6IjAiLGFsbG93dHJhbnNwYXJlbmN5OiJ0cnVlIixzcmM6c30pKX1mdW5jdGlvbiB2bihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykuZ29vZ2xlbWFwSWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiJyZ2IoMjM0LCA2NywgNTMpIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoicmdiKDIzNCwgNjcsIDUzKSIsc3Ryb2tlOiJub25lIn0sdmVyc2lvbjoiMS4xIix2aWV3Qm94OiIwIDAgMTIwIDEyMCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNjAsNy41QTM0LjU3LDM0LjU3LDAsMCwwLDI1LjQzLDQyLjA3QzI1LjQzLDYzLjIzLDQwLDcyLjgsNTAuMjgsODguOWM3LDExLDUuNTcsMTcuNiw5LjcyLDE3LjZzMi42OS02LjU4LDkuNzItMTcuNkM4MCw3Mi44LDk0LjU3LDYzLjIzLDk0LjU3LDQyLjA3QTM0LjU3LDM0LjU3LDAsMCwwLDYwLDcuNVptMCw0Ny44MUExMy4yNCwxMy4yNCwwLDEsMSw3My4yNCw0Mi4wNywxMy4yNCwxMy4yNCwwLDAsMSw2MCw1NS4zMVoifSkpfXZhciB3bj1DLmQuaWZyYW1lLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy0xOTQyYTQ2LTAifSkoWyJib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjAgMCAxNnB4IDE2cHg7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjMwMnB4O2hlaWdodDozMDBweDsiXSkseG49ZnVuY3Rpb24oZSx0KXtyZXR1cm4hIWUmJm51bGw9PT10JiZuZXcgRGF0ZShlKTxuZXcgRGF0ZSgiMjAyMi0wNS0yMCIpfTtmdW5jdGlvbiBrbihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP1NuKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1NuKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gU24oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBDbihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykuaW5zdGFncmFtSWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiMCAwIDMyIDMyIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Im0yMC45NzM1NSw1bC05Ljg4NTM3LDBjLTMuMzU3MDIsMCAtNi4wODgxOCwyLjczMTI5IC02LjA4ODE4LDYuMDg4MzFsMCw5Ljg4NTM3YzAsMy4zNTcxNSAyLjczMTE2LDYuMDg4MzEgNi4wODgxOCw2LjA4ODMxbDkuODg1MzcsMGMzLjM1NzI4LDAgNi4wODg0NCwtMi43MzEyOSA2LjA4ODQ0LC02LjA4ODMxbDAsLTkuODg1MzdjMC4wMDAxMywtMy4zNTcwMiAtMi43MzExNiwtNi4wODgzMSAtNi4wODg0NCwtNi4wODgzMXptNC4xMzExMywxNS45NzM2OGMwLDIuMjc3ODIgLTEuODUzMTgsNC4xMzA4NyAtNC4xMzEsNC4xMzA4N2wtOS44ODU1LDBjLTIuMjc3NjksMC4wMDAxMyAtNC4xMzA3NCwtMS44NTMwNSAtNC4xMzA3NCwtNC4xMzA4N2wwLC05Ljg4NTM3YzAsLTIuMjc3NjkgMS44NTMwNSwtNC4xMzA4NyA0LjEzMDc0LC00LjEzMDg3bDkuODg1MzcsMGMyLjI3NzgyLDAgNC4xMzEsMS44NTMxOCA0LjEzMSw0LjEzMDg3bDAsOS44ODUzN2wwLjAwMDEzLDB6In0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoibTE2LjAzMSwxMC4zNDY0NGMtMy4xMzQ2NiwwIC01LjY4NDgyLDIuNTUwMTYgLTUuNjg0ODIsNS42ODQ4MmMwLDMuMTM0NTMgMi41NTAxNiw1LjY4NDU2IDUuNjg0ODIsNS42ODQ1NmMzLjEzNDY2LDAgNS42ODQ4MiwtMi41NTAwMyA1LjY4NDgyLC01LjY4NDU2YzAsLTMuMTM0NjYgLTIuNTUwMTYsLTUuNjg0ODIgLTUuNjg0ODIsLTUuNjg0ODJ6bTAsOS40MTE4Yy0yLjA1NTE5LDAgLTMuNzI3MzcsLTEuNjcxOTIgLTMuNzI3MzcsLTMuNzI3MTFjMCwtMi4wNTUzMiAxLjY3MjA1LC0zLjcyNzM3IDMuNzI3MzcsLTMuNzI3MzdjMi4wNTUzMiwwIDMuNzI3MzcsMS42NzIwNSAzLjcyNzM3LDMuNzI3MzdjMCwyLjA1NTE5IC0xLjY3MjE4LDMuNzI3MTEgLTMuNzI3MzcsMy43MjcxMXoifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJtMjEuOTU0MjMsOC42ODY2NmMtMC4zNzcxMywwIC0wLjc0NzYxLDAuMTUyNjggLTEuMDEzOTYsMC40MjAyYy0wLjI2NzY1LDAuMjY2MjEgLTAuNDIxNSwwLjYzNjgyIC0wLjQyMTUsMS4wMTUyNmMwLDAuMzc3MjcgMC4xNTM5OSwwLjc0Nzc0IDAuNDIxNSwxLjAxNTI2YzAuMjY2MjEsMC4yNjYyMSAwLjYzNjgyLDAuNDIwMiAxLjAxMzk2LDAuNDIwMmMwLjM3ODQ0LDAgMC43NDc3NCwtMC4xNTM5OSAxLjAxNTI2LC0wLjQyMDJjMC4yNjc1MiwtMC4yNjc1MiAwLjQyMDIsLTAuNjM4MTMgMC40MjAyLC0xLjAxNTI2YzAsLTAuMzc4NDQgLTAuMTUyNjgsLTAuNzQ5MDUgLTAuNDIwMiwtMS4wMTUyNmMtMC4yNjYyMSwtMC4yNjc1MiAtMC42MzY4MiwtMC40MjAyIC0xLjAxNTI2LC0wLjQyMDJ6In0pKX1mdW5jdGlvbiBFbihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykubGluZUljb24sbj1yLmlzUHJvLHI9ci5pc1NpbmdsZTtyZXR1cm4gbiYmdD9ILmEuY3JlYXRlRWxlbWVudChtLHtpY29uVXJsOnQsc2l6ZTplfSk6SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOiJtZWRpdW0iPT09ZSYmcj97aGVpZ2h0OiIzMHB4IixtaW5XaWR0aDoiMzBweCIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9LHZpZXdCb3g6IjAgMCAzMiAzMiIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4bWxuc1hsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMjcgMTQuOTI2QzI3IDEwLjAwNiAyMi4wNjUgNiAxNiA2UzUgMTAuMDA1IDUgMTQuOTI2YzAgNC40MTMgMy45MTMgOC4xMSA5LjIgOC44MDguMzU4LjA3Ny44NDUuMjM2Ljk2OC41NDIuMTEyLjI3OC4wNzMuNzEzLjAzNi45OTVsLS4xNTcuOTQyYy0uMDQ4LjI4LS4yMiAxLjA4OC45NTMuNTkzIDEuMTc0LS40OTQgNi4zMzQtMy43MyA4LjY0Mi02LjM4NkMyNi4yMzYgMTguNjcgMjcgMTYuODk2IDI3IDE0LjkyNXptLTQuMjQ3LS40MWEuNTc3LjU3NyAwIDAgMSAwIDEuMTUzaC0xLjYxdjEuMDNoMS42MWEuNTc4LjU3OCAwIDAgMSAwIDEuMTU1aC0yLjE4NmEuNTc4LjU3OCAwIDAgMS0uNTc3LS41Nzd2LTQuMzdjMC0uMzIuMjYtLjU3OC41NzctLjU3OGgyLjE4NmEuNTc4LjU3OCAwIDAgMSAwIDEuMTUzaC0xLjYxdjEuMDMzaDEuNjF6bS0zLjUzNyAyLjc2MmEuNTc1LjU3NSAwIDAgMS0uNTc4LjU3Ny41OC41OCAwIDAgMS0uNDYtLjIzbC0yLjI0LTMuMDV2Mi43MDNhLjU3Ny41NzcgMCAwIDEtMS4xNTQgMHYtNC4zN2EuNTc3LjU3NyAwIDAgMSAxLjAzOC0uMzQ3bDIuMjQgMy4wNXYtMi43MDNhLjU3OC41NzggMCAwIDEgMS4xNTQgMHY0LjM3em0tNS4yNiAwYS41NzcuNTc3IDAgMCAxLTEuMTU0IDB2LTQuMzdhLjU3Ny41NzcgMCAwIDEgMS4xNTMgMHY0LjM3em0tMi4yNjIuNTc3SDkuNTA4YS41NzcuNTc3IDAgMCAxLS41NzYtLjU3N3YtNC4zN2EuNTc3LjU3NyAwIDAgMSAxLjE1MyAwVjE2LjdoMS42MWEuNTc3LjU3NyAwIDAgMSAwIDEuMTU1eiJ9KSl9dmFyIE9uPUMuZC5pZnJhbWUud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLTE3dGI2d3YtMCJ9KShbImhlaWdodDo0MDBweDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAxMDBweCk7Ym9yZGVyOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246b3BhY2l0eSAuNXM7d2lkdGg6MTAwJTsiLCI7IiwiIl0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNMb2FkaW5nJiZPYmplY3QoQy5jKShbIm9wYWNpdHk6MDsiXSl9LEQoKT9PYmplY3QoQy5jKShbImhlaWdodDoxMDB2aDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA1MHB4KTtib3JkZXItcmFkaXVzOjA7Il0pOk9iamVjdChDLmMpKFsiIiwiIl0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ29vZ2xlbWFwQ3VzdG9tTWVzc2FnZT9PYmplY3QoQy5jKShbImJvcmRlci1yYWRpdXM6MDsiXSk6T2JqZWN0KEMuYykoWyJib3JkZXItcmFkaXVzOjAgMCA5cHggOXB4OyJdKX0pKTtmdW5jdGlvbiBqbihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP0FuKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP0FuKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gQW4oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBQbihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykubGlua0ljb24sbj1yLmlzUHJvLHI9ci5pc1NpbmdsZTtyZXR1cm4gbiYmdD9ILmEuY3JlYXRlRWxlbWVudChtLHtpY29uVXJsOnQsc2l6ZTplfSk6SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOiJtZWRpdW0iPT09ZSYmcj97aGVpZ2h0OiIzMHB4IixtaW5XaWR0aDoiMzBweCIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9LHZpZXdCb3g6Ii00IC00IDMyIDMyIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHg6IjBweCIseToiMHB4In0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNywyNWEyLjM4LDIuMzgsMCwwLDEtMS42OC0uN0wuNywxOS43M2EyLjM4LDIuMzgsMCwwLDEsMC0zLjM3bDUuMjItNS4yMmEyLjM3LDIuMzcsMCwwLDEsMS42OS0uN2gwYTIuMzUsMi4zNSwwLDAsMSwxLjY4LjcxbC45Mi45Mkw4LjgsMTMuNDhsLS45My0uOTNjLS4xLS4xLS4yMS0uMTQtLjI3LS4xMmEuMzkuMzksMCwwLDAtLjI3LjEyTDIuMTEsMTcuNzhhLjM5LjM5LDAsMCwwLDAsLjU0bDQuNTcsNC41N2EuMzkuMzksMCwwLDAsLjU0LDBsNS4yMi01LjIyYS4zOS4zOSwwLDAsMCwuMTItLjI4LjM2LjM2LDAsMCwwLS4xMS0uMjZsLS45NC0uOTQsMS40MS0xLjQyLjkzLjkzYTIuMzQsMi4zNCwwLDAsMSwuNywxLjY3LDIuMzcsMi4zNywwLDAsMS0uNywxLjdMOC42NCwyNC4zQTIuMzgsMi4zOCwwLDAsMSw3LDI1Wm0xLjM2LTYuOUw2LjksMTYuNjksMTYuNjksNi45LDE4LjEsOC4zMVptOS4wOC0zLjU0aDBhMi4zNSwyLjM1LDAsMCwxLTEuNjgtLjcxbC0uOTItLjkyLDEuNDItMS40MS45My45M2EuMzcuMzcsMCwwLDAsLjI3LjEyLjM5LjM5LDAsMCwwLC4yNy0uMTJsNS4yMi01LjIyYS4zOS4zOSwwLDAsMCwwLS41NEwxOC4zMiwyLjExYS4zOS4zOSwwLDAsMC0uNTQsMEwxMi41Niw3LjMzYS4zOS4zOSwwLDAsMC0uMTIuMjguMzYuMzYsMCwwLDAsLjExLjI2bC45NC45NC0xLjQxLDEuNDItLjkzLS45M2EyLjM0LDIuMzQsMCwwLDEtLjctMS42NywyLjM3LDIuMzcsMCwwLDEsLjctMS43TDE2LjM2LjdhMi4zOSwyLjM5LDAsMCwxLDMuMzcsMEwyNC4zLDUuMjdhMi4zOCwyLjM4LDAsMCwxLDAsMy4zN2wtNS4yMiw1LjIyQTIuMzcsMi4zNywwLDAsMSwxNy4zOSwxNC41NloifSkpfWZ1bmN0aW9uIEluKGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS5saW5rZWRpbkljb24sbj1yLmlzUHJvLHI9ci5pc1NpbmdsZTtyZXR1cm4gbiYmdD9ILmEuY3JlYXRlRWxlbWVudChtLHtpY29uVXJsOnQsc2l6ZTplfSk6SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOiJtZWRpdW0iPT09ZSYmcj97aGVpZ2h0OiIzMHB4IixtaW5XaWR0aDoiMzBweCIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIixmaWxsUnVsZToiZXZlbm9kZCJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUiLGZpbGxSdWxlOiJldmVub2RkIn0sdmVyc2lvbjoiMS4xIix2aWV3Qm94OiIwIDAgNzIgNzIiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTU3LDU1SDQ4Ljc4VjQxYzAtMy44NC0xLjQ2LTYtNC40OS02LTMuMzEsMC01LDIuMjMtNSw2VjU1SDMxLjMzVjI4LjMzaDcuOTJ2My42YTkuMzIsOS4zMiwwLDAsMSw4LTQuNDFDNTMsMjcuNTIsNTcsMzEsNTcsMzguMTJaTTIxLjg4LDI0Ljg0YTQuOTIsNC45MiwwLDEsMSw0Ljg5LTQuOTJBNC45LDQuOSwwLDAsMSwyMS44OCwyNC44NFpNMTcuNzksNTVoOC4yNlYyOC4zM0gxNy43OVoifSkpfWZ1bmN0aW9uIF9uKGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS5za3lwZUljb24sbj1yLmlzUHJvLHI9ci5pc1NpbmdsZTtyZXR1cm4gbiYmdD9ILmEuY3JlYXRlRWxlbWVudChtLHtpY29uVXJsOnQsc2l6ZTplfSk6SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOiJtZWRpdW0iPT09ZSYmcj97aGVpZ2h0OiIzMHB4IixtaW5XaWR0aDoiMzBweCIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9LHZlcnNpb246IjEuMSIsdmlld0JveDoiMCAwIDUxMiA1MTIiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTQzNi45LDI5Ni44YzIuOC0xMi41LDQuMi0yNS40LDQuMi0zOC43YzAtOTkuNy04Mi0xODAuNi0xODMuMi0xODAuNmMtMTAuNywwLTIxLjEsMC45LTMxLjMsMi42ICBDMjEwLjMsNjkuOSwxOTEsNjQsMTcwLjIsNjRDMTExLjYsNjQsNjQsMTEwLjksNjQsMTY4LjdjMCwxOS40LDUuMywzNy41LDE0LjYsNTNjLTIuNCwxMS43LTMuNywyMy45LTMuNywzNi4zICBjMCw5OS44LDgyLDE4MC42LDE4My4xLDE4MC42YzExLjUsMCwyMi43LTEsMzMuNS0zYzE1LDcuOSwzMi4xLDEyLjQsNTAuMiwxMi40YzU4LjcsMCwxMDYuMi00Ni45LDEwNi4yLTEwNC43ICBDNDQ4LDMyNi42LDQ0NCwzMTAuOCw0MzYuOSwyOTYuOHogTTM1MS45LDM0NC4zYy04LjUsMTEuOC0yMSwyMS4yLTM3LjIsMjcuOGMtMTYuMSw2LjYtMzUuMyw5LjktNTcuMyw5LjkgIGMtMjYuMywwLTQ4LjMtNC42LTY1LjYtMTMuNmMtMTIuMy02LjYtMjIuNC0xNS40LTMwLjItMjYuNGMtNy44LTExLTExLjctMjItMTEuNy0zMi42YzAtNi42LDIuNi0xMi4zLDcuNi0xNy4xYzUtNC42LDExLjUtNywxOS4xLTcgIGM2LjMsMCwxMS43LDEuOCwxNi4xLDUuNWM0LjIsMy41LDcuOCw4LjcsMTAuNywxNS41YzMuMyw3LjMsNi44LDEzLjUsMTAuNiwxOC40YzMuNiw0LjcsOC43LDguNiwxNS4zLDExLjcgIGM2LjcsMy4xLDE1LjYsNC43LDI2LjYsNC43YzE1LjEsMCwyNy41LTMuMiwzNi44LTkuNWM5LjItNi4xLDEzLjYtMTMuNSwxMy42LTIyLjVjMC03LjEtMi4zLTEyLjctNy4xLTE3LjEgIGMtNS00LjYtMTEuNS04LjItMTkuNi0xMC42Yy04LjMtMi42LTE5LjYtNS4zLTMzLjYtOC4yYy0xOS00LTM1LjEtOC44LTQ4LTE0LjJjLTEzLjEtNS41LTIzLjctMTMuMi0zMS41LTIyLjcgIGMtNy45LTkuNy0xMS44LTIxLjktMTEuOC0zNi4yYzAtMTMuNyw0LjItMjUuOSwxMi40LTM2LjVjOC4yLTEwLjUsMjAuMS0xOC43LDM1LjYtMjQuM2MxNS4yLTUuNiwzMy4zLTguNCw1My43LTguNCAgYzE2LjQsMCwzMC43LDEuOSw0Mi43LDUuNWMxMi4xLDMuNywyMi4yLDguNywzMC4zLDE0LjljOCw2LjIsMTQsMTIuOCwxNy44LDE5LjdjMy44LDcsNS43LDEzLjksNS43LDIwLjZjMCw2LjQtMi41LDEyLjMtNy41LDE3LjQgIGMtNSw1LjEtMTEuMyw3LjgtMTguOCw3LjhjLTYuOCwwLTEyLjEtMS42LTE1LjgtNC44Yy0zLjQtMy03LTcuNi0xMC45LTE0LjNjLTQuNi04LjUtMTAuMS0xNS4zLTE2LjQtMjAuMWMtNi4yLTQuNi0xNi40LTctMzAuNi03ICBjLTEzLjEsMC0yMy44LDIuNi0zMS43LDcuN2MtNy42LDQuOS0xMS4zLDEwLjYtMTEuMywxNy4zYzAsNC4xLDEuMiw3LjUsMy43LDEwLjVjMi42LDMuMSw2LjIsNS45LDEwLjksOC4yICBjNC44LDIuNCw5LjgsNC4zLDE0LjcsNS42YzUuMSwxLjQsMTMuNiwzLjUsMjUuMyw2LjFjMTQuOSwzLjEsMjguNSw2LjcsNDAuNSwxMC40YzEyLjIsMy45LDIyLjcsOC42LDMxLjMsMTQuMSAgYzguOCw1LjYsMTUuNywxMi45LDIwLjcsMjEuNWM0LjksOC42LDcuNCwxOS40LDcuNCwzMS44QzM2NC44LDMxOC45LDM2MC41LDMzMi41LDM1MS45LDM0NC4zeiJ9KSl9ZnVuY3Rpb24gem4oZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLnNsYWNrSWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmVyc2lvbjoiMS4xIix2aWV3Qm94OiIwIDAgMTY4IDE2OCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNDcuMiwxMDBBMTMuMiwxMy4yLDAsMSwxLDM0LDg2LjhINDcuMlptNi42LDBhMTMuMiwxMy4yLDAsMCwxLDI2LjQsMHYzM2ExMy4yLDEzLjIsMCwwLDEtMjYuNCwwWiIsZmlsbDoiI2UwMWU1YSJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik02Nyw0N0ExMy4yLDEzLjIsMCwxLDEsODAuMiwzMy44VjQ3Wm0wLDYuN2ExMy4yLDEzLjIsMCwxLDEsMCwyNi40SDMzLjlhMTMuMiwxMy4yLDAsMCwxLDAtMjYuNFoiLGZpbGw6IiMzNmM1ZjAifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTE5LjksNjYuOWExMy4yLDEzLjIsMCwxLDEsMTMuMiwxMy4ySDExOS45Wm0tNi42LDBhMTMuMiwxMy4yLDAsMCwxLTI2LjQsMFYzMy44YTEzLjIsMTMuMiwwLDAsMSwyNi40LDBaIixmaWxsOiIjMmViNjdkIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwMC4xLDExOS44QTEzLjIsMTMuMiwwLDEsMSw4Ni45LDEzM1YxMTkuOFptMC02LjZhMTMuMiwxMy4yLDAsMSwxLDAtMjYuNGgzMy4xYTEzLjIsMTMuMiwwLDEsMSwwLDI2LjRaIixmaWxsOiIjZWNiMjJlIn0pKX1mdW5jdGlvbiBUbihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykuc21zSWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7dmlld0JveDoiMCAwIDMyIDMyIixzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0yMSAyM2g0LjAxYzEuMSAwIDEuOTktLjg5MyAxLjk5LTEuOTk0VjguOTk0QzI3IDcuODk0IDI2LjExIDcgMjUuMDEgN0g2Ljk5QzUuODkgNyA1IDcuODkzIDUgOC45OTR2MTIuMDEyQzUgMjIuMTA2IDUuODkgMjMgNi45OSAyM2g5LjU2NmwzLjExNCAzLjUwNGMuNzMuODIgMS4zMy42MDIgMS4zMy0uNVYyM3pNMTAuNTE1IDEyLjE2NWMuMzYuMTEuNjgyLjI2Ljk2Mi40NDZsLS40MTMuODhhMy44ODIgMy44ODIgMCAwIDAtLjkxNS0uNDE2IDIuOSAyLjkgMCAwIDAtLjgyLS4xMzZjLS4zIDAtLjUzNi4wNTQtLjcwNy4xNmEuNTEyLjUxMiAwIDAgMC0uMjU2LjQ2YzAgLjE3My4wNTUuMzIuMTY3LjQzNy4xMS4xMi4yNTIuMjE0LjQyLjI4NS4xNy4wNzIuNDA4LjE1Mi43MTQuMjQuNC4xMi43MjUuMjM2Ljk3Ny4zNS4yNTIuMTE3LjQ2Ny4yOS42NDQuNTE4LjE3Ny4yMjguMjY2LjUyNi4yNjYuODkyIDAgLjM0NC0uMDk1LjY0Ny0uMjg1LjkwNy0uMTkuMjYtLjQ1My40Ni0uNzkuNi0uMzM4LjE0LS43MjQuMjEyLTEuMTYuMjEyLS40NSAwLS44ODgtLjA4Ni0xLjMxLS4yNTVhMy42NzMgMy42NzMgMCAwIDEtMS4xMS0uNjg0bC40MzQtLjg2M2MuMy4yNzYuNjI4LjQ5Ljk4NS42NC4zNTYuMTUuNjk1LjIyNCAxLjAxNy4yMjQuMzUgMCAuNjIyLS4wNjMuODE2LS4xOWEuNTk4LjU5OCAwIDAgMCAuMjkyLS41MjguNjE4LjYxOCAwIDAgMC0uMTc0LS40NSAxLjIxMiAxLjIxMiAwIDAgMC0uNDMtLjI4IDkuNjUgOS42NSAwIDAgMC0uNzEzLS4yMzcgNy40MTQgNy40MTQgMCAwIDEtLjk3Ny0uMzQ3IDEuNzUgMS43NSAwIDAgMS0uNjM3LS40OThjLS4xNzctLjIyLS4yNjYtLjUxLS4yNjYtLjg3NyAwLS4zMzQuMDktLjYyNS4yNy0uODc0LjE4LS4yNS40MzQtLjQ0My43Ni0uNTc4LjMyNC0uMTM1LjctLjIwMiAxLjEyNy0uMjAyLjM4IDAgLjc1LjA1NSAxLjExLjE2NXptNy43MzIgNS44bC0uMDEtNC40MjQtMS44NyAzLjgwNmgtLjY1M2wtMS44NjctMy44MDV2NC40MjZoLS45NDJWMTIuMDRoMS4xODZsMS45NTUgMy45MzggMS45NDUtMy45MzdoMS4xNzh2NS45MjZoLS45MnptNS43MjgtNS44Yy4zNi4xMS42OC4yNi45NjIuNDQ2bC0uNDEzLjg4YTMuODgyIDMuODgyIDAgMCAwLS45MTUtLjQxNiAyLjkgMi45IDAgMCAwLS44Mi0uMTM2Yy0uMyAwLS41MzcuMDU0LS43MDcuMTZhLjUxMi41MTIgMCAwIDAtLjI1Ny40NmMwIC4xNzMuMDU2LjMyLjE2OC40MzcuMTEuMTIuMjUyLjIxNC40Mi4yODUuMTcuMDcyLjQwOC4xNTIuNzE0LjI0LjQuMTIuNzI1LjIzNi45NzcuMzUuMjUyLjExNy40NjcuMjkuNjQ0LjUxOC4xNzcuMjI4LjI2Ni41MjYuMjY2Ljg5MiAwIC4zNDQtLjA5NS42NDctLjI4NS45MDctLjE5LjI2LS40NTMuNDYtLjc5LjYtLjMzOC4xNC0uNzI0LjIxMi0xLjE2LjIxMi0uNDUgMC0uODg4LS4wODYtMS4zMS0uMjU1YTMuNjczIDMuNjczIDAgMCAxLTEuMTEtLjY4NGwuNDM0LS44NjNjLjMuMjc2LjYyOC40OS45ODUuNjQuMzU2LjE1LjY5NS4yMjQgMS4wMTcuMjI0LjM1IDAgLjYyMi0uMDYzLjgxNi0uMTlhLjU5OC41OTggMCAwIDAgLjI5LS41MjguNjE4LjYxOCAwIDAgMC0uMTcyLS40NSAxLjIxMiAxLjIxMiAwIDAgMC0uNDMtLjI4IDkuNjUgOS42NSAwIDAgMC0uNzEzLS4yMzcgNy40MTQgNy40MTQgMCAwIDEtLjk3Ny0uMzQ3IDEuNzUgMS43NSAwIDAgMS0uNjM3LS40OThjLS4xNzctLjIyLS4yNjYtLjUxLS4yNjYtLjg3NyAwLS4zMzQuMDktLjYyNS4yNy0uODc0LjE4LS4yNS40MzQtLjQ0My43Ni0uNTc4LjMyNC0uMTM1LjctLjIwMiAxLjEyNi0uMjAyLjM4IDAgLjc1LjA1NSAxLjExMi4xNjV6In0pKX12YXIgTG49Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMWNnd21tYy0wIn0pKFsibWFyZ2luOjI1cHggMjBweDsiXSk7ZnVuY3Rpb24gTW4oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGEsaSxsPVtdLGM9ITAsdT0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYobC5wdXNoKHIudmFsdWUpLGwubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe3U9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGk9bi5yZXR1cm4oKSxPYmplY3QoaSkhPT1pKSlyZXR1cm59ZmluYWxseXtpZih1KXRocm93IG99fXJldHVybiBsfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZihlKXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9SbihlLHQpOiJNYXAiPT09KG49Ik9iamVjdCI9PT0obj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSkpJiZlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IubmFtZTpuKXx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9SbihlLHQpOnZvaWQgMH0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFJuKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gTm4oZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLnNuYXBjaGF0SWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiMCAwIDUxMiA1MTIiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseG1sbnNYbGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoibSAyNTQuMjMxOTIsNjcuNzQ1NjU2IGMgLTI0LjE1NTMsMC4xNjUzNiAtNDkuMTMzMyw2LjU3NjE2IC02OC43MTg4LDIyLjA2MjUgLTE0LjY2NywxMS41Nzc2NTQgLTI2LjE5OTE2LDI2LjkyMTE2NCAtMzMuNDY4NzEsNDQuMDYyNTA0IC0wLjAxMDksMC4wNDE1IC0wLjAyMTMsMC4wODMyIC0wLjAzMTIsMC4xMjUgLTYuOTIzNTgsMTcuNjYyMDYgLTYuMjgyNDEsMzYuNDU5MDggLTUuMzQzNzUsNTMuODc1IDQuOWUtNCwwLjAxMDYgLTQuOWUtNCwwLjAyMDcgMCwwLjAzMTIgMC41NzA0NiwxMi4yNDExMSAxLjkxOTIsMjQuMDkxODIgMC43ODEyNSwzNS4zNDM3NSAtMC4wOTE5LDAuNDM4MDIgLTAuMDk2LDAuNTQ3NzYgLTAuMTU2MjUsMC44MTI1IC01LjQ0NTE2LDAuOTg3MDEgLTExLjM3MiwwLjYyOTAyIC0xNy4yNSwtMC41IC0wLjAzMTIsLTIuOWUtNCAtMC4wNjI1LC0yLjllLTQgLTAuMDkzNywwIC00LjAyNjM5LC0wLjY5MzA2IC04LjMyNzk3LC0yLjM1MjI5IC0xMy4xODc1LC0zLjcxODc1IC0wLjA4MjgsLTAuMDIzIC0wLjE2NjE1LC0wLjA0MzggLTAuMjUsLTAuMDYyNSAtNC43MTYzMywtMS4wNzgyNCAtOS4zNTI0MiwwLjI5NTAxIC0xMi45MDYyNSwyLjkzNzUgLTAuMDQ1NywwLjAyOTYgLTAuMTA5ODUsMC4wNjM1IC0wLjE1NjI1LDAuMDkzNyAtMC4wNzEsMC4wNTQgLTAuMTQ4NjUsMC4xMDEyNCAtMC4yMTg3NSwwLjE1NjI1IC0yLjg5MjY1LDEuOTE1NiAtNi44NTQ5NzgsNS4xMzE5NyAtNy4wNjI0OTgsMTAuNzE4NzUgLTAuMDA5LDAuMzY2NTUgMC4wMjI1LDAuNzM0MDcgMC4wOTM3LDEuMDkzNzUgMC42MjQ2NCwzLjI4Mjk5IDIuNjQ0MDcsNS42ODM0MyA0LjQzNzQ5OCw3LjI1IDEuNzkzNDIsMS41NjY1NyAzLjQ4Nzc4LDIuNjAxMTkgNC41MzEyNSwzLjQwNjI1IDAuMDgxNCwwLjA2NTEgMC4xNjQ3NCwwLjEyNzYyIDAuMjUsMC4xODc1IDguNzk2OTUsNS45MzUxNCAxOC41MzI4MSw4LjU0Mjk5IDI3LDExLjg0Mzc1IDAuMDA5LDAuMDAzIDAuMDIyNSwtMC4wMDMgMC4wMzEyLDAgNS44NjIwNSwyLjU5NzMxIDEwLjk1NTkyLDYuNjM2MDkgMTIuMTI1LDExLjcxODc1IDEuNDU5NzcsNi40MjcxMyAtMS4yNDY4LDEzLjgwNTU4IC00Ljc4MTI1LDIwLjk2ODc1IC0wLjAwNCwwLjAwOSAwLjAwNCwwLjAyMjYgMCwwLjAzMTIgLTkuNTMzMzQsMTguOTg1NjUgLTIzLjY5MDg5LDM1LjQ5NjA5IC00MS4wOTM3NDgsNDcuNTkzNzUgLTkuMTIzNzQsNi4yOTUxMSAtMTkuNDE2NTI1LDEwLjk5NDUgLTMwLjE1NjMwNSwxMy45MDY0IC0wLjE0ODE0OSwwLjA0NTMgLTAuMjk0MTkyLDAuMDk3NCAtMC40Mzc1LDAuMTU2MjUgLTIuMjAzNzQsMC44Mjk4NiAtNy40MjkyNCwxLjM3MjQ3IC0xMC43MTg3NSw2LjM3NSAtMC4yMzM3OTMsMC4zNDkzNyAtMC40MjMyODIsMC43MjgzNSAtMC41NjI1LDEuMTI1IC0xLjEwOTIzLDMuMjE2OCAwLjE1NjIsNi42NzA1OCAxLjcxODc1LDguNTYyNSAxLjQ5MjEsMS44MDY2MiAzLjE1NjY3LDIuODU3ODYgNC41OTM3NSwzLjYyNSAwLjA3MzUsMC4wNDMgMC4xNDUxLDAuMDgyNCAwLjIxODc1LDAuMTI1IDkuMDQyNzYsNS4yMjYwOCAxOC45MTg1OTUsNy40OTE1NyAyNy45Mzc1MDUsOS44MTI1IDAuMDQxNSwwLjAxMDkgMC4wODMyLDAuMDIxMyAwLjEyNSwwLjAzMTIgNi40OTgxLDEuNDc5NzcgMTIuNDg4NzM4LDIuMjcwMjkgMTcuMzc0OTk4LDQuMzc1IDAuMjM5MjMsMC40MDIzNCAwLjcyODUyLDIuMDU4MzIgMS44NzUsNC44MTI1IDEuNjAxNTEsNC45OTk2OCAyLjMyOTUyLDEwLjkwMzcgNC4xODc1LDE3LjA5Mzc1IDAuNTA4MDQsMS43MTM0MiAyLjAwMjI1LDMuMDk1NTYgMy43NSwzLjQ2ODc1IDQuMTA0LDAuODcxOTMgNi4zNjExOSwtMC41MzYxNyA2LjcxODc1LC0wLjU2MjUgMC4xNjc1OCwtMC4wMTI0IDAuMzM0NTIsLTAuMDMzMyAwLjUsLTAuMDYyNSAxNS4xMDAxOSwtMi42NDY4IDMwLjE2ODM1LC00Ljk5MzgzIDQzLjk5OTk2LC0xLjUgMC4wMSwwLjAwMyAwLjAyMSwtMC4wMDMgMC4wMzEsMCAxNC41MTYsMy44MjM2MyAyNy4xMzA5LDEzLjkxNDQ2IDQxLjM0MzgsMjIuNTkzNzUgMC4wMjUsMC4wMTU0IDAuMDM3LDAuMDQ3MSAwLjA2MiwwLjA2MjUgbCAwLC0wLjAzMTIgYyA5LjQzNDIsNS45ODY0NiAyMC4zMzkzLDExLjg0ODUgMzIuOTM3NSwxMi4yODEyNSBsIDAsMC4wMzEyIGMgMC4wNDIsMTBlLTQgMC4wODMsLTEwZS00IDAuMTI1LDAgOS41MTU1LDAuNTM4OTYgMTguODU1LC0wLjA2NTcgMjcuOTY4NywtMC42ODc1IDAuMDUyMSw4LjFlLTQgMC4xMDQyLDguMWUtNCAwLjE1NjMsMCA3LjgwMzgsLTAuNzczMDIgMTUuMzgwNywtMy4zNzAwMiAyMiwtNy42MjUgMC4wOTQsLTAuMDUzNSAwLjE4NzYsLTAuMTAyNTggMC4yODEyLC0wLjE1NjI1IDE0Ljk0NTIsLTguNTYzNDQgMjguMjI1OCwtMTguODgyMzQgNDIuNzgxMywtMjUuMzQzNzUgMC4wMjEsLTAuMDA4IDAuMDQyLC0wLjAyMzcgMC4wNjIsLTAuMDMxMiA0LjcyMDgsLTEuNzExNTcgMTAuNjE4OSwtMS42MTUwNiAxNy4xODc1LC0yLjA2MjUgMC4wNjIsLTAuMDAyIDAuMTI1LDAuMDAyIDAuMTg3NSwwIDEyLjA1MjcsLTAuMzcyMSAyNC4xMjgzLDAuMjc0MTQgMzYuMDkzNywxLjg3NSAwLjQxNDQ4LDAuMDUyMiAwLjgzNTUyLDAuMDUyMiAxLjI1LDAgMS41NzE0LC0wLjE4NjQgMy4yODg5LC0xLjI0MTU1IDQuMTI1LC0yLjMxMjUgMC44MzYxLC0xLjA3MDk1IDEuMDc3LC0xLjk0MzE4IDEuMjUsLTIuNTYyNSAwLjM0NjIsLTEuMjM4NjQgMC42NjcsLTEuODMxMDIgMC4wOTQsLTAuODEyNSAwLjE4MTcsLTAuMzE2MDYgMC4zMjg3LC0wLjY1MjA1IDAuNDM3NSwtMSAyLjE5NzEsLTcuMjgwMDIgMy4zOTI1LC0xMy44Njc5NyA2LjkzNzUsLTE3Ljk2ODc1IDEuNTkyOSwtMS41NTcxNiA0LjMzNCwtMi4zMzg4NiA3LjQzNzUsLTIuMjgxMjUgMC4yMjk1MiwwLjAwNSAwLjQ1OTQxLC0wLjAwNSAwLjY4NzUsLTAuMDMxMiAxMC40MDI0LC0xLjIzMTMzIDE5LjgwNTIsLTQuOTg2OTYgMjguNzE4OCwtOC4xODc1IDAuMTA1NTYsLTAuMDM4MiAwLjIwOTg0LC0wLjA3OTkgMC4zMTI2LC0wLjEyNTA1IDMuMzExMywtMS40NDM0MSA4LjI0NTMsLTMuMDk5NjMgMTEuNjI1LC03Ljg0Mzc1IDAuMDE4LC0wLjAyNTQgMC4wNDQsLTAuMDM2OSAwLjA2MiwtMC4wNjI1IGwgLTAuMDMxLC0wLjAzMTIgYyAyLjg0MjgsLTMuOTcyNSAxLjUyMywtOS40MjQ2OSAtMi41LC0xMS45MDYyNSBsIDAuMDYyLC0wLjA2MjUgYyAtMC4xMjc1LC0wLjA4NjcgLTAuMjQ3NCwtMC4xMzU5NSAtMC4zNzUsLTAuMjE4NzUgLTAuMDM0LC0wLjAxODYgLTAuMDU5LC0wLjA0NDQgLTAuMDk0LC0wLjA2MjUgbCAwLDAuMDMxMiBjIC00LjgyNTksLTMuMTAwMDYgLTkuNjYxMiwtMy41MzA5MiAtMTIuNzE4NywtNC42NTYyNSAtMC4wNjIxLC0wLjAyMjEgLTAuMTI0NiwtMC4wNDI5IC0wLjE4NzUsLTAuMDYyNSAtMjAuNjg3MiwtNi42MzU2OCAtMzguNTc3OCwtMjAuOTIxMTEgLTUxLjkzNzUsLTM4LjMxMjUgLTcuNDE3MiwtOS42OTEyOSAtMTMuNjg5OSwtMjAuMjIyMDIgLTE3Ljg0MzgsLTMxLjQ2ODc1IC0wLjAxNCwtMC4wNDEgLTAuMDE4LC0wLjA4NCAtMC4wMzEsLTAuMTI1IC0xLjYyNjIsLTQuODgzNTMgLTEuNzA3NywtMTAuMjA5MDIgMC42ODc1LC0xMy40Mzc1IDAuMDMxNywtMC4wMzA4IDAuMDYzMSwtMC4wNjIgMC4wOTQsLTAuMDkzNyAzLjczNjYsLTUuMzY4MzkgMTAuNTkzNSwtOC44MTg3OCAxNy45MDYzLC0xMS41MzEyNSAwLjAzLC0wLjAxMDQgMC4wNjQsLTAuMDIwOCAwLjA5NCwtMC4wMzEyIDguMDgxOSwtMi44MTE1NyAxNi45MjYzLC02LjA4Njg2IDI0LjIxODcsLTEyLjU2MjUgMC4wMzE4LC0wLjAzMDggMC4wNjMxLC0wLjA2MiAwLjA5NCwtMC4wOTM3IDEuMTI4MywtMS4wNjY5NSAyLjQ4NTIsLTIuNDU2MDIgMy41LC00LjUzMTI1IDEuMDE0OSwtMi4wNzUyMyAxLjQ5NjEsLTUuMzEwMzIgMC4xNTYzLC04LjEyNSAzZS01LC0wLjAxMDQgM2UtNSwtMC4wMjA4IDAsLTAuMDMxMiAtMi4xMDQ0LC00LjMzNTQ5IC01Ljc3NCwtNi41NjYyIC04LjUsLTguMTg3NSAtMC4wMTAzLC0zZS01IC0wLjAyMDcsLTNlLTUgLTAuMDMxLDAgLTQuNTY3MywtMi42NjU5MiAtOS44ODE2LC0yLjgzODg3IC0xNC41LC0xLjM0Mzc1IC0wLjAxLDAuMDAzIC0wLjAyMSwtMC4wMDMgLTAuMDMxLDAgLTAuMDMxLDAuMDEwMSAtMC4wNjMsMC4wMjEgLTAuMDk0LDAuMDMxMiAtNC45ODkyLDEuNTE4MzUgLTkuMDYyNCwzLjMzMzkxIC0xMi44NDM4LDMuODEyNSAtMC4wODM5LDAuMDE4NyAtMC4xNjcyMiwwLjAzOTUgLTAuMjUsMC4wNjI1IC01LjM3MzcsMC45NTc3NyAtMTAuNTc3MywxLjE4Nzc5IC0xNC42MjUsLTAuMzEyNSAtMC4wMzgsLTAuNjA2NDkgLTAuMDU3LC0xLjc5MDEzIC0wLjIxODcsLTMuMjUgbCAwLjAzMSwwIGMgLTAuMjk4OCwtOC45MTUzIDAuNDU2NSwtMTguMTA2MDQgMC41OTM3LC0yNy42MjUgM2UtNCwtMC4wMjEyIC0zZS00LC0wLjA0MTMgMCwtMC4wNjI1IDAuNDExMiwtMTQuNDYzMTggMC45OTQ4LC0yOS4zNTI5NSAtMS4xMjUsLTQ0LjM0Mzc1IC0wLjAwOSwtMC4wNzMxIC0wLjAxOTEsLTAuMTQ2MDcgLTAuMDMxLC0wLjIxODc1IC00LjYxNTQsLTI1LjI4NzUzIC0yMC42ODcsLTQ3LjA2NzM2IC00MS4wNjI1LC02MS41NjI1MDQgLTE0LjgxMjEsLTEwLjUwOTg3IC0zMi4zOTcyLC0xNi4zNzU4MSAtNTAuMjUsLTE4LjAzMTI1IC0wLjAxLC0wLjAwMSAtMC4wMjEsMC4wMDEgLTAuMDMxLDAgLTUuOTkxMiwtMC42MDQ4NyAtMTEuOTc0MSwtMC44MTk0NSAtMTcuOTM3NSwtMC43NSB6In0pKX12YXIgRG49Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtdzB5OWo1LTAifSkoWyJtYXJnaW46NjBweCAwIDYwcHggMDtsaW5lLWhlaWdodDoyM3B4OyYgYXtjb2xvcjojMTExO2ZvbnQtc2l6ZToyNnB4O3RleHQtZGVjb3JhdGlvbjpub25lO3VuaWNvZGUtYmlkaTpwbGFpbnRleHQ7fSJdKTtmdW5jdGlvbiBVbihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP0JuKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP0JuKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gQm4oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBGbihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykudGVsZWdyYW1JY29uLG49ci5pc1BybyxyPXIuaXNTaW5nbGU7cmV0dXJuIG4mJnQ/SC5hLmNyZWF0ZUVsZW1lbnQobSx7aWNvblVybDp0LHNpemU6ZX0pOkguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx2aWV3Qm94OiItOCAtMTcgMTMwIDEzMCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4bWxuc1hsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNODguNzIzLDEyLjE0MkM3Ni40MTksMTcuMjM4LDIzLjY2MSwzOS4wOTEsOS4wODQsNDUuMDQ3Yy05Ljc3NiwzLjgxNS00LjA1Myw3LjM5Mi00LjA1Myw3LjM5MiAgICBzOC4zNDUsMi44NjEsMTUuNDk5LDUuMDA3YzcuMTUzLDIuMTQ2LDEwLjk2OC0wLjIzOCwxMC45NjgtMC4yMzhsMzMuNjItMjIuNjUyYzExLjkyMi04LjEwNyw5LjA2MS0xLjQzMSw2LjE5OSwxLjQzMSAgICBjLTYuMTk5LDYuMi0xNi40NTIsMTUuOTc1LTI1LjAzNiwyMy44NDRjLTMuODE1LDMuMzM4LTEuOTA4LDYuMTk5LTAuMjM4LDcuNjNjNi4xOTksNS4yNDYsMjMuMTI5LDE1Ljk3NiwyNC4wODIsMTYuNjkxICAgIGM1LjAzNywzLjU2NiwxNC45NDUsOC42OTksMTYuNDUyLTIuMTQ2YzAsMCw1Ljk2MS0zNy40MzUsNS45NjEtMzcuNDM1YzEuOTA4LTEyLjYzNywzLjgxNS0yNC4zMjEsNC4wNTMtMjcuNjU5ICAgIEM5Ny4zMDcsOC44MDQsODguNzIzLDEyLjE0Miw4OC43MjMsMTIuMTQyeiJ9KSl9ZnVuY3Rpb24gSG4oZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLnRpa3Rva0ljb24sbj1yLmlzUHJvLHI9ci5pc1NpbmdsZTtyZXR1cm4gbiYmdD9ILmEuY3JlYXRlRWxlbWVudChtLHtpY29uVXJsOnQsc2l6ZTplfSk6SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOiJtZWRpdW0iPT09ZSYmcj97aGVpZ2h0OiIzMHB4IixtaW5XaWR0aDoiMzBweCIsZmlsbDoiIzAwMCIsc3Ryb2tlOiJub25lIn06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGZpbGw6IiMwMDAiLHN0cm9rZToibm9uZSJ9LHZlcnNpb246IjEuMSIsdmlld0JveDoiMCAwIDEyMCAxMjAiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTQ5LjY3LDQ5Ljk0YTI2LjM3LDI2LjM3LDAsMCwxLDQuNjEuMjhWNjYuMzNDNDMsNjIuNTYsMzEuNjgsNzUuNjcsMzkuNDQsODcuMTQsMTUuNDIsNzUuNDIsNDkuNjcsNDkuOTQsNDkuNjcsNDkuOTRabTI1LjU1LTM0aDQuNHMtLjg3LDcuNDUsNS41MiwxNC43NmwuMDkuMDlDODEsMjkuNjksNzQuNjIsMjEuNTYsNzUuMjIsMTUuOTFabTI2LjUsMjIuMjJWNTMuOTFDODQuNDQsNTIuMDYsNzkuODMsNDcsNzkuNjQsNDYuODV2MzIuNkM3OS4zLDEwNCw0OS40MywxMTksMjkuNDEsOTkuNjRsMCwwYTI5LjksMjkuOSwwLDAsMCwxNi4zMiw0Ljg4QzYyLjA4LDEwNC45MSw3NS4yLDkwLDc1LDc1LjU3VjQzYy4yMS4xMiwyMi4wOC01LjMsMjIuMDgtNS4zQTE0LjkzLDE0LjkzLDAsMCwwLDEwMS43MiwzOC4xM1oiLGZpbGw6IiNlZTFkNTIifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOTcuMDksMzcuNjdWNTBhNTQuOTQsNTQuOTQsMCwwLDEtOS43Ny0xLjMzQzc4LjI1LDQ2LjUsNzUuMiw0My4wOSw3NSw0M3YzMi42YTMyLjg3LDMyLjg3LDAsMCwxLTEuOTMsMTAuMTJDNzAuMzgsOTIuNSw2Mi4yNSwxMDUsNDUuNzcsMTA0LjU2YTMwLjEsMzAuMSwwLDAsMS0xNi4zMi00Ljg4bDAsMGMtNy4xNi01LjM5LTEwLTEzLjE0LTEwLTI0LjQ1LjMxLTcuNTQsOS43NS0yNS4yNywzMC4yMy0yNS4yN1Y2Mi40M3MtNi4zNS0yLjEtMTEuNDQsMS42MmMtMy41NSwyLjc2LTUuNDQsNS40NC02LDEwLjI1LDAsMy41My44NSw4LjUyLDUuNTksMTEuODYuNTYuMzYsMS4xLjY5LDEuNjQsMSwyLjc5LDMsMTIuNTcsMy42NSwxNy4yOSwxLjExLDYuOTItMy43Miw2Ljg4LTcyLjM0LDYuODgtNzIuMzRINzUuMmEyMiwyMiwwLDAsMCw1LjMxLDEwLjg4LDI1LjgyLDI1LjgyLDAsMCwwLDQuNyw0LDI0LjQ1LDI0LjQ1LDAsMCwwLDYuNDYsNC45NCwyNC45NCwyNC45NCwwLDAsMCw1LjQyLDJaIixmaWxsOiIjZmZmIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTM5LjU2LDUyLjA2QzI4Ljk0LDU1Ljc1LDIxLjUsNjYuODgsMjEsNzguNjJjLS40MiwxMC44Nyw1LDE3LjQ0LDguMzcsMjEuMDYtNC4wOS0yLjIxLTEzLjY2LTkuMy0xMy0yNC45NC44OC0yMCwxNy4zMi0zMC4yMSwzMy4yNi0yOC4zOXYzLjU5QTM1Ljc0LDM1Ljc0LDAsMCwwLDM5LjU2LDUyLjA2WiIsZmlsbDoiIzY5YzlkMCJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik03NS4yMiwxNS45MUg2My42NVY3Ny4zNmExOS4wNiwxOS4wNiwwLDAsMS0uNzEsNi4zMywxMi44NywxMi44NywwLDAsMS03LDcuNjZjLTUsMi04Ljg3LDEuNzctMTMuNS0xLjNhMTIuNDQsMTIuNDQsMCwwLDEtMy0yLjg5YzQsMi4xLDcuNDksMi4wNiwxMS44Ni4zMWExMi43MiwxMi43MiwwLDAsMCw3LTcuNjZBMTguNSwxOC41LDAsMCwwLDU5LDczLjQ5VjEySDc1QTEzLjcsMTMuNywwLDAsMCw3NS4yMiwxNS45MVpNOTcuMDksMzQuMjV2My40MmEyNC45NCwyNC45NCwwLDAsMS01LjQyLTIsMjQuNzUsMjQuNzUsMCwwLDEtNi40Ni00Ljk0LDE4LjY2LDE4LjY2LDAsMCwwLDEuODQsMS4wNkM5MS4xMywzMy44NSw5NS4xMywzNC40Nyw5Ny4wOSwzNC4yNVoiLGZpbGw6IiM2OWM5ZDAifSkpfWZ1bmN0aW9uIFZuKGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS50d2l0dGVySWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiLTM1MCAtMzUwIDE5MDAgMTkyNyIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNzE0LjE2MyA1MTkuMjg0TDExNjAuODkgMEgxMDU1LjAzTDY2Ny4xMzcgNDUwLjg4N0wzNTcuMzI4IDBIMEw0NjguNDkyIDY4MS44MjFMMCAxMjI2LjM3SDEwNS44NjZMNTE1LjQ5MSA3NTAuMjE4TDg0Mi42NzIgMTIyNi4zN0gxMjAwTDcxNC4xMzcgNTE5LjI4NEg3MTQuMTYzWk01NjkuMTY1IDY4Ny44MjhMNTIxLjY5NyA2MTkuOTM0TDE0NC4wMTEgNzkuNjk0NEgzMDYuNjE1TDYxMS40MTIgNTE1LjY4NUw2NTguODggNTgzLjU3OUwxMDU1LjA4IDExNTAuM0g4OTIuNDc2TDU2OS4xNjUgNjg3Ljg1NFY2ODcuODI4WiJ9KSl9ZnVuY3Rpb24gJG4oZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLnZpYmVySWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiMCAwIDMyIDMyIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0yMS4xNzYgMjdjLS4yMDgtLjA2Mi0uNjE4LS4xMy0uOTg3LS4zMDMtNi40NzYtMy4wMi0xMS4xOC03Ljk3Mi0xMy44NTMtMTUuMDgyLS44OTctMi4zODMuMDQtNC4zOTYgMi4yOTgtNS4yMi40MDUtLjE0Ny44MDItLjE1NyAxLjIuMDAyLjk2NC4zODMgMy40MDQgNC4wMjIgMy40NTggNS4xMS4wNDIuODM1LS40OCAxLjI4Ny0xIDEuNjctLjk4My43MjItLjk4OCAxLjYzOC0uNTY4IDIuNjYuOTQ4IDIuMzA4IDIuNTY3IDMuODk1IDQuNjYzIDQuOTI1Ljc2LjM3NCAxLjQ4OC4zMzcgMi4wMDctLjUxNS45MjUtMS41MTggMi4wNi0xLjQ0NSAzLjMtLjUwMi42Mi40NzMgMS4yNTMuOTM2IDEuODQ0IDEuNDUuOC43MDIgMS44MTYgMS4yODUgMS4zMzYgMi43NTQtLjUgMS41MjctMi4yMjYgMy4wNjYtMy43IDMuMDV6bS00Ljc2LTIwLjk4NmM0LjU0Ni4xNjYgOC40NiA0LjY3NyA4LjQwNiA5LjU0My0uMDA1LjQ3OC4xNTMgMS4xODUtLjUwNCAxLjE3Mi0uNjI4LS4wMTUtLjQ2NC0uNzMzLS41Mi0xLjIxLS42MDMtNS4xNjctMi43ODYtNy42MDYtNy41Mi04LjM5NC0uMzkyLS4wNjYtLjk5LjAyNi0uOTYtLjUzNS4wNDQtLjgzMy43NTQtLjUyMyAxLjA5Ny0uNTc2em02LjA3MiA4LjY3MmMtLjA0NS4zNTYuMTQ3Ljk2OC0uMzg1IDEuMDU2LS43Mi4xMTgtLjU4LS41OTUtLjY1LTEuMDUzLS40OC0zLjE0NC0xLjUtNC4yOTctNC40MjMtNS4wMDUtLjQzLS4xMDUtMS4xLS4wMzItLjk5LS43NS4xMDgtLjY4NS43MS0uNDUyIDEuMTY0LS4zOTMgMi45Mi4zOCA1LjMwNyAzLjEyNiA1LjI4NCA2LjE0NHptLTIuMjIyLS41NzNjLjAxMy4zOTgtLjAyNi44MTgtLjQ2Ljg3NC0uMzE0LjA0LS41Mi0uMjQ1LS41NTMtLjU5Ny0uMTItMS4yOTYtLjc1LTIuMDYyLTEuOTUtMi4yNy0uMzYtLjA2My0uNzEyLS4xOS0uNTQ0LS43MTUuMTEtLjM1Mi40MDgtLjM4Ny43MTItLjM5NiAxLjI5Ny0uMDM2IDIuODE1IDEuNjQ3IDIuNzk0IDMuMTAzeiJ9KSl9dmFyIFduPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXZ1NmF3eC0wIn0pKFsiZm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbjo1cHggMCAxNXB4IDA7Il0pLEduPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXZ1NmF3eC0xIn0pKFsibWFyZ2luOjIxcHggMjBweCAwIDIwcHg7Il0pLHFuPUMuZC5pbWcud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXZ1NmF3eC0yIn0pKFsid2lkdGg6MjAwcHggIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7bWFyZ2luOjAgYXV0byAhaW1wb3J0YW50OyJdKTtmdW5jdGlvbiBabihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP1huKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1huKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gWG4oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgWW49Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMWJreGUxbi0wIn0pKFsibWFyZ2luOi01cHggMCAxNXB4IDA7Zm9udC1zaXplOjE2cHg7JiBpbWd7aGVpZ2h0OjIwMHB4O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOmF1dG87fSYgYXtjb2xvcjojMTExO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OmJvbGQ7dW5pY29kZS1iaWRpOnBsYWludGV4dDsmIHNwYW57Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZToxMnB4O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fX0iXSksUW49Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMWJreGUxbi0xIn0pKFsibWFyZ2luOjE1cHggMjBweCAwIDIwcHg7bGluZS1oZWlnaHQ6MjNweDsiXSk7ZnVuY3Rpb24gS24oZSl7dmFyIGU9ZS5zaXplLHQ9KHI9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLmNhbGxiYWNrSWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiLTQgLTQgNTYgNTYiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseG1sbnNYbGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTI2LjQsMzMuOWMwLDAsNC0yLjYsNC44LTNjMC44LTAuNCwxLjctMC42LDIuMi0wLjJjMC44LDAuNSw3LjUsNC45LDguMSw1LjNjMC42LDAuNCwwLjgsMS41LDAuMSwyLjYgYy0wLjgsMS4xLTQuMyw1LjUtNS44LDUuNGMtMS41LDAtOC40LDAuNC0yMC4zLTExLjRDMy42LDIwLjcsNCwxMy44LDQsMTIuM2MwLTEuNSw0LjMtNS4xLDUuNC01LjhjMS4xLTAuOCwyLjItMC41LDIuNiwwLjEgYzAuNCwwLjYsNC44LDcuMyw1LjMsOC4xYzAuMywwLjUsMC4yLDEuNC0wLjIsMi4yYy0wLjQsMC44LTMsNC44LTMsNC44czAuNywyLjgsNSw3LjJDMjMuNSwzMy4yLDI2LjQsMzMuOSwyNi40LDMzLjl6In0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTM1LDlIMjV2NGgxMGMxLjEsMCwyLDAuOSwyLDJ2MTBoNFYxNUM0MSwxMS43LDM4LjMsOSwzNSw5eiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0yOCwxNkwyMS4zLDExTDI4LDYifSkpfWZ1bmN0aW9uIEpuKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZXIoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/ZXIoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBlcihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHRyKGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS52a29udGFrdGVJY29uLG49ci5pc1BybyxyPXIuaXNTaW5nbGU7cmV0dXJuIG4mJnQ/SC5hLmNyZWF0ZUVsZW1lbnQobSx7aWNvblVybDp0LHNpemU6ZX0pOkguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx2aWV3Qm94OiIwIDAgMzIgMzIiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseG1sbnNYbGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTI2LjcxMiAxMC45NnMtLjE2Ny0uNDgtMS4yMS0uMzQ4bC0zLjQ0Ny4wMjRhLjc4NS43ODUgMCAwIDAtLjQ1NS4wNzJzLS4yMDQuMTA4LS4zLjM3YTIyLjEgMjIuMSAwIDAgMS0xLjI4IDIuNjk1Yy0xLjUzMyAyLjYxLTIuMTU2IDIuNzU0LTIuNDA3IDIuNTg3LS41ODctLjM3Mi0uNDMtMS41MS0uNDMtMi4zMjMgMC0yLjU0LjM4Mi0zLjU5Mi0uNzU2LTMuODY4LS4zNy0uMDg0LS42NDYtLjE0NC0xLjYxNi0uMTU2LTEuMjMyLS4wMTItMi4yNzQgMC0yLjg2LjI4Ny0uMzk2LjE5My0uNjk1LjYyNC0uNTE1LjY0OC4yMjcuMDM2Ljc0Mi4xNDMgMS4wMTcuNTE1IDAgMCAuMy40OS4zNDcgMS41NjguMTMgMi45ODItLjQ4IDMuMzUzLS40OCAzLjM1My0uNDY2LjI1Mi0xLjI4LS4xNjctMi40NzgtMi42MzQgMCAwLS42OTQtMS4yMjItMS4yMzMtMi41NjMtLjA5Ny0uMjUtLjI4OC0uMzgzLS4yODgtLjM4M3MtLjIxNi0uMTY4LS41MjctLjIxNmwtMy4yOC4wMjRjLS41MDQgMC0uNjgzLjIyOC0uNjgzLjIyOHMtLjE4LjE5LS4wMTIuNTg3YzIuNTYyIDYuMDIyIDUuNDgzIDkuMDQgNS40ODMgOS4wNHMyLjY3IDIuNzkgNS43IDIuNTk3aDEuMzc2Yy40MTgtLjAzNS42MzQtLjI2My42MzQtLjI2M3MuMTkyLS4yMTQuMTgtLjYxYy0uMDI0LTEuODQzLjgzOC0yLjEyLjgzOC0yLjEyLjgzOC0uMjYyIDEuOTE1IDEuNzg1IDMuMDY1IDIuNTc1IDAgMCAuODc0LjYgMS41MzIuNDY3bDMuMDY0LS4wNDhjMS42MTctLjAxLjg1LTEuMzUyLjg1LTEuMzUyLS4wNi0uMTA4LS40NDItLjkzNC0yLjI4Ni0yLjY0Ny0xLjkxNi0xLjc4NC0xLjY2NS0xLjQ5Ni42NTgtNC41ODUgMS40MTMtMS44OCAxLjk3Ni0zLjAzIDEuNzk2LTMuNTJ6In0pKX1mdW5jdGlvbiBucihlKXt2YXIgZT1lLnNpemUsdD0ocj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncykud2F6ZUljb24sbj1yLmlzUHJvLHI9ci5pc1NpbmdsZTtyZXR1cm4gbiYmdD9ILmEuY3JlYXRlRWxlbWVudChtLHtpY29uVXJsOnQsc2l6ZTplfSk6SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOiJtZWRpdW0iPT09ZSYmcj97aGVpZ2h0OiIzMHB4IixtaW5XaWR0aDoiMzBweCIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9LHZlcnNpb246IjEuMSIsdmlld0JveDoiMCAwIDMzMCAzMzAiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTI5OSwxNDkuNTlhMTIxLDEyMSwwLDAsMC0zNS42Mi04Ni4xNCwxMjIuOTMsMTIyLjkzLDAsMCwwLTg2LjE0LTM1LjYyYy0zNy4zLDAtNzIuMTMsMTYuODctOTYsNDYuODZhMTIxLjM1LDEyMS4zNSwwLDAsMC0yNi4xNSw3NS43OFYxNzBjMCwxMC4xNi03LDE5LjY0LTIxLDIwLjUyLTMuMzYuMy02LjIyLDIuNTctNi4yMiw1LjkyLS41OSw5LjI4LDkuMjgsMjYuMTUsMjIuNywzOS41N2ExMTUuOSwxMTUuOSwwLDAsMCwzMiwyMywzMy45MywzMy45MywwLDAsMCw2Ni42LDEyLjkzaDI4LjMyYzMuNjUsMTkuMTQsMjMuNTgsMzIuMjYsNDQuODksMjUsMTguNTUtNi4yMSwyNi42NC0yNy4yMywxOS45My00NC40QTEzNywxMzcsMCwwLDAsMjYzLDIzNS45MmExMjAuMzksMTIwLjM5LDAsMCwwLDM2LTg2LjMzWk0xNzcuMTQsMjU4LjEySDE0OS40MWEzNCwzNCwwLDAsMC02MS43Ni0xMS44NHYuM2ExMDAuOSwxMDAuOSwwLDAsMS0yNy4yNC0yMC4yM2MtOS41Ny05LjU3LTE0LjktMTguMjUtMTcuMDctMjMuODhhMzEuNzIsMzEuNzIsMCwwLDAsMTYuMjgtOS41NywzMy4zOCwzMy4zOCwwLDAsMCw5LTIzVjE0OS42OEExMDguNTYsMTA4LjU2LDAsMCwxLDI1My44MSw3M2ExMDguNDQsMTA4LjQ0LDAsMCwxLTc2LjY3LDE4NS4xWm02Ny42OS0xMzUuNDdhMTMuNDcsMTMuNDcsMCwxLDEtMTMuNDItMTMuNTIsMTMuNDMsMTMuNDMsMCwwLDEsMTMuNDIsMTMuNTJabS04MS40LDBBMTMuNDcsMTMuNDcsMCwxLDEsMTUwLDEwOS4xM2ExMy40MywxMy40MywwLDAsMSwxMy40MiwxMy41MlpNMTU0LjE1LDE2N2E3LjE2LDcuMTYsMCwwLDAtNi4yMi0zLjk0LDYuOCw2LjgsMCwwLDAtNi4yMSw5LjU3LDU0LjMsNTQuMywwLDAsMCw5OC4yNywwLDYuNzUsNi43NSwwLDAsMC02LjIxLTkuNTdoLS4zYTYuMzcsNi4zNywwLDAsMC01LjkyLDMuOTQsNDAuNTcsNDAuNTcsMCwwLDEtNzMuNDEsMFoifSkpfWZ1bmN0aW9uIHJyKGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS53ZWNoYXRJY29uLG49ci5pc1BybyxyPXIuaXNTaW5nbGU7cmV0dXJuIG4mJnQ/SC5hLmNyZWF0ZUVsZW1lbnQobSx7aWNvblVybDp0LHNpemU6ZX0pOkguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx2ZXJzaW9uOiIxLjEiLHZpZXdCb3g6IjAgMCAxMDAgMTAwIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik02NS42OCwzNy43NWMtNy40Ny4zOS0xNCwyLjY1LTE5LjI1LDcuNzdhMjIuODcsMjIuODcsMCwwLDAtNy4xLDE5LjM2Yy0yLjkyLS4zNi01LjU4LS43NS04LjI1LTFhNS4xMyw1LjEzLDAsMCwwLTIuODEuNDdjLTIuNTksMS40Ny01LjA5LDMuMTMtOCw1LC41NC0yLjQ1Ljg5LTQuNiwxLjUyLTYuNjZhMi41NCwyLjU0LDAsMCwwLTEuMTYtMy4zNWMtOS02LjMzLTEyLjc1LTE1LjgxLTkuOTItMjUuNTcsMi42Mi05LDktMTQuNSwxNy43OC0xNy4zNUM0MC4zOCwxMi41MSw1My43OCwxNi40OCw2MSwyNmEyMi4zNiwyMi4zNiwwLDAsMSw0LjY1LDExLjhabS0zNC40LTNBMy40MywzLjQzLDAsMCwwLDI4LDMxLjI2YTMuMzQsMy4zNCwwLDEsMC0uMjEsNi42NywzLjQsMy40LDAsMCwwLDMuNTItMy4yMlptMTcuOTUtMy40NWEzLjQ0LDMuNDQsMCwwLDAtMy4zNywzLjQsMy4zNSwzLjM1LDAsMCwwLDMuNDYsMy4yOCwzLjM0LDMuMzQsMCwxLDAtLjA5LTYuNjhaIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTgyLjQ3LDg0LjM0Yy0yLjM3LTEuMDYtNC41NC0yLjY0LTYuODUtMi44OHMtNC43MiwxLjA5LTcuMTMsMS4zNGEyMy44NCwyMy44NCwwLDAsMS0xOS4zMy02LjMxYy0xMC4zMS05LjU0LTguODMtMjQuMTUsMy4wOS0zMiwxMC42LTYuOTQsMjYuMTQtNC42MywzMy42MSw1LDYuNTMsOC40MSw1Ljc2LDE5LjU3LTIuMiwyNi42My0yLjMxLDItMy4xNCwzLjcyLTEuNjYsNi40MmE3LjQyLDcuNDIsMCwwLDEsLjQ3LDEuNzZaTTU1LjUzLDU4LjI2YTIuNzksMi43OSwwLDEsMC0yLjc5LTIuNjksMi44LDIuOCwwLDAsMCwyLjc5LDIuNjlaTTcyLjg5LDUyLjdhMi43NywyLjc3LDAsMCwwLTIuNzYsMi42NiwyLjc1LDIuNzUsMCwxLDAsMi43Ni0yLjY2WiJ9KSl9dmFyIG9yPUMuZC5pZnJhbWUud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLTFqbnU2bjItMCJ9KShbImhlaWdodDoyMjBweDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAxOTBweCk7Ym9yZGVyOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246b3BhY2l0eSAuNXM7IiwiOyIsIiJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzTG9hZGluZyYmT2JqZWN0KEMuYykoWyJvcGFjaXR5Oi4xNTsiXSl9LEQoKSYmT2JqZWN0KEMuYykoWyJ3aWR0aDoxMDAlO2hlaWdodDoxMDB2aDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA1N3B4KTsiXSkpO2Z1bmN0aW9uIGFyKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/aXIoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/aXIoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBpcihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGxyKGUpe3ZhciB0PWUuc2l6ZSxuPXZvaWQgMCE9PShuPWUuaXNJdGVtSWNvbikmJm4sZT12b2lkIDA9PT0oZT1lLmNvbG9yKT8iI2ZmZiI6ZSxyPShhPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS53aGF0c2FwcEljb24sbz1hLmlzUHJvLGE9YS5pc1NpbmdsZTtyZXR1cm4gbyYmciYmITE9PT1uP0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6cixzaXplOnR9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7dmlld0JveDoiMCAwIDMyIDMyIixzdHlsZToid2FfaGVhZGVyX2ljb24iPT09bj97d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn06bj97d2lkdGg6IjMwcHgiLGhlaWdodDoiMzBweCIsZmlsbDoiIi5jb25jYXQoZSksc3Ryb2tlOiJub25lIn06Im1lZGl1bSI9PT10JiZhP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn0seG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4bWxuc1hsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTkuMTEgMTcuMjA1Yy0uMzcyIDAtMS4wODggMS4zOS0xLjUxOCAxLjM5YS42My42MyAwIDAgMS0uMzE1LS4xYy0uODAyLS40MDItMS41MDQtLjgxNy0yLjE2My0xLjQ0Ny0uNTQ1LS41MTYtMS4xNDYtMS4yOS0xLjQ2LTEuOTYzYS40MjYuNDI2IDAgMCAxLS4wNzMtLjIxNWMwLS4zMy45OS0uOTQ1Ljk5LTEuNDkgMC0uMTQzLS43My0yLjA5LS44MzItMi4zMzUtLjE0My0uMzcyLS4yMTQtLjQ4Ny0uNi0uNDg3LS4xODcgMC0uMzYtLjA0My0uNTMtLjA0My0uMzAyIDAtLjUzLjExNS0uNzQ2LjMxNS0uNjg4LjY0NS0xLjAzMiAxLjMxOC0xLjA2IDIuMjY0di4xMTRjLS4wMTUuOTkuNDcyIDEuOTc3IDEuMDE3IDIuNzggMS4yMyAxLjgyIDIuNTA2IDMuNDEgNC41NTQgNC4zNC42MTYuMjg3IDIuMDM1Ljg4OCAyLjcyMi44ODguODE3IDAgMi4xNS0uNTE1IDIuNDc4LTEuMzE4LjEzLS4zMy4yNDQtLjczLjI0NC0xLjA4OCAwLS4wNTggMC0uMTQ0LS4wMy0uMjE1LS4xLS4xNzItMi40MzQtMS4zOS0yLjY3OC0xLjM5em0tMi45MDggNy41OTNjLTEuNzQ3IDAtMy40OC0uNTMtNC45NDItMS40OUw3Ljc5MyAyNC40MWwxLjEzMi0zLjMzN2E4Ljk1NSA4Ljk1NSAwIDAgMS0xLjcyLTUuMjcyYzAtNC45NTUgNC4wNC04Ljk5NSA4Ljk5Ny04Ljk5NVMyNS4yIDEwLjg0NSAyNS4yIDE1LjhjMCA0Ljk1OC00LjA0IDguOTk4LTguOTk4IDguOTk4em0wLTE5Ljc5OGMtNS45NiAwLTEwLjggNC44NDItMTAuOCAxMC44IDAgMS45NjQuNTMgMy44OTggMS41NDYgNS41NzRMNSAyNy4xNzZsNS45NzQtMS45MmExMC44MDcgMTAuODA3IDAgMCAwIDE2LjAzLTkuNDU1YzAtNS45NTgtNC44NDItMTAuOC0xMC44MDItMTAuOHoifSkpfXZhciBjcj1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy0yaWs1bGMtMCJ9KShbIm1hcmdpbjoyNXB4IDIwcHg7Il0pO2Z1bmN0aW9uIHVyKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/c3IoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/c3IoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBzcihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGZyKGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS53b25kZXJjaGF0SWNvbixuPXIuaXNQcm8scj1yLmlzU2luZ2xlO3JldHVybiBuJiZ0P0guYS5jcmVhdGVFbGVtZW50KG0se2ljb25Vcmw6dCxzaXplOmV9KTpILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4bWxuc1hsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIixzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLGZpbGw6IiNmZmZmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmZmZmIixzdHJva2U6Im5vbmUifSx2aWV3Qm94OiIwIDAgMTAwIDEwMCJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTg1LDQ1Ljk0YzAtMTQuMTctMTEuNTgtMjUuNjctMjUuODctMjUuNjdoLTIwLjI1Yy0xNC4yOSwwLTI1Ljg3LDExLjQ5LTI1Ljg3LDI1LjY3djIuMjNjMCwxNC4xOCwxMS41OCwyNS42NywyNS44NywyNS42N2gyMC4yNWMxLjQyLDAsMi44MS0uMTIsNC4xNy0uMzRsNS42MSw5LjQ2YzIuOTEsNC45LDEwLjQ3LDIuODYsMTAuNDctMi44M3YtMTUuOTljMy41Mi00LjM4LDUuNjItOS45Myw1LjYyLTE1Ljk3di0yLjIzWk0zMi4xMiw1MS44N2MtMi40OSwwLTQuNS0yLjAyLTQuNS00LjUxaDBjMC0yLjQ5LDIuMDEtNC41MSw0LjUtNC41MmgwYzIuNDksMCw0LjUsMi4wMyw0LjUsNC41MiwwLDIuNDktMi4wMSw0LjUxLTQuNSw0LjUxWk00NS42Miw1MS44N2MtMi40OSwwLTQuNS0yLjAyLTQuNS00LjUxaDBjMC0yLjQ5LDIuMDEtNC41MSw0LjUtNC41MmgwYzIuNDksMCw0LjUsMi4wMyw0LjUsNC41MiwwLDIuNDktMi4wMSw0LjUxLTQuNSw0LjUxWk01NC43Miw0Ny44MWMtLjI1LS41NywwLTEuMjMuNTctMS40OGwzLjg5LTEuNzNjLjI2LS4xMS40Ni0uMzIuNTctLjU3bDEuNzItMy45Yy4xMS0uMjYuMzItLjQ2LjU3LS41Ny41Ny0uMjUsMS4yMywwLDEuNDcuNTdsMS43MiwzLjljLjExLjI1LjMyLjQ2LjU3LjU3bDMuODksMS43M2MuMjYuMTEuNDYuMzIuNTcuNTcuMjUuNTcsMCwxLjIzLS41NywxLjQ4bC0zLjg5LDEuNzNjLS4yNS4xMS0uNDYuMzItLjU3LjU3bC0xLjcyLDMuOWMtLjExLjI2LS4zMi40Ni0uNTcuNTctLjU3LjI1LTEuMjIsMC0xLjQ3LS41N2wtMS43Mi0zLjljLS4xMS0uMjYtLjMyLS40Ni0uNTctLjU3bC0zLjg5LTEuNzNjLS4yNi0uMTEtLjQ2LS4zMi0uNTctLjU3WiJ9KSl9dmFyIGRyPUMuZC51bC53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtbDAzMGFkLTAifSkoWyJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O3BhZGRpbmc6MTVweDttYXJnaW46MDtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAyMjRweCk7b3ZlcmZsb3c6YXV0bzsmOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NXB4O3dpZHRoOjVweDttYXJnaW4tYm90dG9tOjVweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjAyKTt9Jjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7bWFyZ2luLWJvdHRvbToxMHB4O30mOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOnJnYmEoNTcsNTYsMTgsLjA3KTstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4O30iLCIiXSxEKCkmJk9iamVjdChDLmMpKFsibWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMTEwcHgpOyJdKSkscHI9Qy5kLmEud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLWwwMzBhZC0xIn0pKFsiIiwiIl0sZnVuY3Rpb24oZSl7ZT1lLmNvbG9yO3JldHVybiBPYmplY3QoQy5jKShbImhlaWdodDo2NXB4O2JhY2tncm91bmQtY29sb3I6IiwiMTA7Ym9yZGVyLXJhZGl1czoxMnB4O2JvcmRlcjoxcHggc29saWQgIiwiMzA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjVweCAxMHB4O3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246MC4xcyBhbGw7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1kZWNvcmF0aW9uOm5vbmUgIWltcG9ydGFudDsmOmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoycHg7aGVpZ2h0OjMyLjVweDtiYWNrZ3JvdW5kLWNvbG9yOiIsIjt9Jjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDtib3gtc2hhZG93OnJnYigwIDAgMCAvIDglKSAycHggMnB4IDZweDt9Il0sZSxlLGUpfSksbXI9Qy5kLmltZy53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtbDAzMGFkLTIifSkoWyIiLCIiXSxmdW5jdGlvbihlKXt2YXIgdD1lLmJ1dHRvbkJvcmRlclJhZGl1cyxlPWUuYm9yZGVyO3JldHVybiBPYmplY3QoQy5jKShbIndpZHRoOjQ1cHg7aGVpZ2h0OjQ1cHg7bWluLXdpZHRoOjQ1cHg7Ym9yZGVyLXJhZGl1czoiLCIlO29iamVjdC1maXQ6Y292ZXI7Ym9yZGVyOiIsIjsiXSx0LGUmJiIycHggc29saWQgI2ZmZmZmZiIpfSksaHI9Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtbDAzMGFkLTMifSkoWyIiLCIiXSxmdW5jdGlvbihlKXt2YXIgdD1lLmluZGljYXRvclBvc2l0aW9uLGU9ZS5taXJyb3I7cmV0dXJuIE9iamVjdChDLmMpKFsicG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NDVweDtoZWlnaHQ6NDVweDttaW4td2lkdGg6NDVweDsmOmFmdGVye2NvbnRlbnQ6Jyc7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZGMyNDc7Ym9yZGVyLXJhZGl1czo1MCU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOiIsInB4OyIsIiBib3gtc2hhZG93OjJweCAycHggNnB4IHJnYmEoMCwwLDAsMTAlKTt9Il0sdCxlP09iamVjdChDLmMpKFsibGVmdDoiLCJweDsiXSx0KTpPYmplY3QoQy5jKShbInJpZ2h0OiIsInB4OyJdLHQpKX0pLGdyPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLWwwMzBhZC00In0pKFsiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDsiXSksYnI9Qy5kLmg0LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1sMDMwYWQtNSJ9KShbImNvbG9yOiM0ZDUxNTc7Zm9udC1zaXplOjE0cHg7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MTZweDtmb250LXdlaWdodDo2MDA7IiwiIHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxNzBweDsiXSxmdW5jdGlvbihlKXtyZXR1cm4gZS5taXJyb3I/T2JqZWN0KEMuYykoWyJ0ZXh0LWFsaWduOnJpZ2h0OyJdKTpPYmplY3QoQy5jKShbInRleHQtYWxpZ246bGVmdDsiXSl9KSx5cj1DLmQucC53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtbDAzMGFkLTYifSkoWyJjb2xvcjojOTg5YjlmO2ZvbnQtc2l6ZToxMnB4O21hcmdpbjo1cHggMCAwIDA7bGluZS1oZWlnaHQ6MTRweDsiLCIgdGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjE3MHB4OyJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1pcnJvcj9PYmplY3QoQy5jKShbInRleHQtYWxpZ246cmlnaHQ7Il0pOk9iamVjdChDLmMpKFsidGV4dC1hbGlnbjpsZWZ0OyJdKX0pO2Z1bmN0aW9uIHZyKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/d3IoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/d3IoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB3cihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHhyKGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS5haUljb24sbj1yLmlzUHJvLHI9ci5pc1NpbmdsZTtyZXR1cm4gbiYmdD9ILmEuY3JlYXRlRWxlbWVudChtLHtpY29uVXJsOnQsc2l6ZTplfSk6SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseG1sbnNYbGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsc3R5bGU6Im1lZGl1bSI9PT1lJiZyP3toZWlnaHQ6IjMwcHgiLG1pbldpZHRoOiIzMHB4IixmaWxsOiIjZmZmZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZmZmZiIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiMCAwIDQ4IDQ4In0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiIjZmZmIixkOiJNMzguOTUsMTkuNTNjLS4yMy0uMDgtLjQyLS4yNi0uNDktLjUtMS4zMy00LjQ1LTQuNzMtNi4yMS0xMC4wOS02LjczLS4xOS0uMDItLjM3LS4xLS41MS0uMjMtLjU5LS41NC0xLjQ4LS44Ni0yLjgtLjk3LS4xNC0uMDEtLjI1LS4xMi0uMjctLjI2bC0uMjMtMS43MWMtLjAyLS4xMy4wNi0uMjYuMTgtLjMyLjc4LS4zMiwxLjMtMS4xMywxLjE4LTIuMDUtLjExLS44OC0uODMtMS41Ny0xLjctMS42Ny0xLjE3LS4xMy0yLjE2Ljc4LTIuMTYsMS45MywwLC44MS40OSwxLjUsMS4xOSwxLjc5LjEzLjA1LjIuMTguMTguMzJsLS4yMywxLjcxYy0uMDIuMTQtLjEzLjI1LS4yNy4yNi0xLjMyLjEtMi4yMS40My0yLjguOTctLjE0LjEzLS4zMi4yMS0uNTEuMjMtNS4zNi41Mi04Ljc1LDIuMjgtMTAuMDksNi43My0uMDcuMjQtLjI1LjQyLS40OS41LTEuNTYuNTMtMi4yNywxLjc2LTIuMjcsNC42N3MuNzIsNC4xNSwyLjI3LDQuNjdjLjIzLjA4LjQyLjI2LjQ5LjUsMS4zNiw0LjU1LDQuODgsNi4yOCwxMC40NCw2Ljc2aC0uMDZjLjI4LjAyLjUxLjI1LjUxLjUydjIuNjNjMCwuMzIuMzEuNTQuNjEuNDMsMS44OS0uNjksNy43OS0yLjg1LDEyLjMtNC43aDBjMi41NS0xLjAyLDQuMjctMi43Nyw1LjEzLTUuNjQuMDctLjI0LjI1LS40Mi40OS0uNSwxLjU2LS41MywyLjI3LTEuNzYsMi4yNy00LjY4cy0uNzItNC4xNS0yLjI3LTQuNjdaTTM0Ljc4LDI4Ljk1Yy0uMzYuOTEtLjg2LDEuNTYtMS41OCwyLjA2LTEuNjEsMS4xMy00LjUzLDEuNjUtOS4yMSwxLjY1cy03LjYtLjUzLTkuMjEtMS42NWMtLjcxLS41LTEuMjEtMS4xNi0xLjU4LTIuMDYtLjQ3LTEuMTctLjctMi43Ni0uNy00Ljc0cy4yNC0zLjU4LjctNC43NGMuMzYtLjkxLjg2LTEuNTYsMS41OC0yLjA2LDEuNjEtMS4xMyw0LjUzLTEuNjUsOS4yMS0xLjY1czcuNi41Miw5LjIxLDEuNjVjLjcxLjUsMS4yMSwxLjE2LDEuNTgsMi4wNi40NywxLjE3LjcsMi43Ni43LDQuNzRzLS4yNCwzLjU4LS43LDQuNzRaIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiI2ZmZiIsZDoiTTE4Ljk1LDIxLjk3Yy0xLjIxLDAtMS40NywxLjExLTEuNDcsMi4yNHMuMjYsMi4yNCwxLjQ3LDIuMjQsMS40Ny0xLjExLDEuNDctMi4yNC0uMjYtMi4yNC0xLjQ3LTIuMjRaIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiI2ZmZiIsZDoiTTI5LjA1LDIxLjk3Yy0xLjIxLDAtMS40NywxLjExLTEuNDcsMi4yNHMuMjYsMi4yNCwxLjQ3LDIuMjQsMS40Ny0xLjExLDEuNDctMi4yNC0uMjYtMi4yNC0xLjQ3LTIuMjRaIn0pKX12YXIga3I9Qy5kLmlmcmFtZS53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMWdlamdrbS0wIn0pKFsiYm9yZGVyOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246b3BhY2l0eSAuNXM7d2lkdGg6MTA4JTtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTJweCk7IiwiOyIsIiJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzTG9hZGluZyYmT2JqZWN0KEMuYykoWyJvcGFjaXR5Oi4wOyJdKX0sRCgpJiZPYmplY3QoQy5jKShbImhlaWdodDoxMDB2aDtoZWlnaHQ6Y2FsYygodmFyKC0tdmgpICogMTAwKSAtIDUwcHgpO21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gNTBweCk7d2lkdGg6Y2FsYygxMDAlICsgMTlweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTExcHgpOyJdKSk7ZnVuY3Rpb24gU3IoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGEsaSxsPVtdLGM9ITAsdT0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYobC5wdXNoKHIudmFsdWUpLGwubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe3U9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGk9bi5yZXR1cm4oKSxPYmplY3QoaSkhPT1pKSlyZXR1cm59ZmluYWxseXtpZih1KXRocm93IG99fXJldHVybiBsfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZihlKXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9DcihlLHQpOiJNYXAiPT09KG49Ik9iamVjdCI9PT0obj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSkpJiZlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IubmFtZTpuKXx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9DcihlLHQpOnZvaWQgMH0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIENyKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIEVyPSJmcm9tLWdiLXdpZGdldCIsT3I9ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ly9zdGF0aWMuZ2V0YnV0dG9uLmlvL3dpZGdldC9idW5kbGUtYWkuanMifSxqcj1mdW5jdGlvbiBlKHQpe3ZhciBuPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3dpbmRvdy5HQkFJPyh0LmlkPUVyLGNvbnNvbGUubG9nKCdHQiBzZW5kIGV2ZW50OiAiaW5pdCBhcHAiJyx0KSx3aW5kb3cuR0JBSS5pbml0KHtzZXR0aW5nczp0fSkpOihjb25zb2xlLmVycm9yKCJ3aW5kb3cuR0JBSSBub3QgZm91bmQuLi4iLHdpbmRvdy5HQkFJKSxuPDE1P3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjb25zb2xlLmxvZygid2luZG93LkdCQUkgbG9hZGlnIGF0dGVtcHQgIi5jb25jYXQobisxLCI6IHJldHJ5aW5nIGluaXRQb3B1cC4uLiIpKSxlKHQsbisxKX0sMWUzKTpjb25zb2xlLmVycm9yKCJ3aW5kb3cuR0JBSSBhdHRlbXB0cyBmaW5pc2hlZC4iKSl9LEFyPWZ1bmN0aW9uKCl7SXIoe2lzX3Nob3dfcG9wdXA6ITB9KX0sUHI9ZnVuY3Rpb24oKXtJcih7aXNfc2hvd19wb3B1cDohMX0pfSxJcj1mdW5jdGlvbihlKXtlLmlkPUVyLGNvbnNvbGUubG9nKCdHQiBzZW5kIGV2ZW50OiAidXBkYXRlIHNldHRpbmdzIicsZSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJHZXRidXR0b25BaVVwZGF0ZVN0YXRlIix7ZGV0YWlsOmV9KSl9O2Z1bmN0aW9uIF9yKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGksbD1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gbH19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/enIoZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/enIoZSx0KTp2b2lkIDB9KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB6cihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIFRyKGUpe3ZhciBlPWUuc2l6ZSx0PShyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS5rYWthb3RhbGtJY29uLG49ci5pc1BybyxyPXIuaXNTaW5nbGU7cmV0dXJuIG4mJnQ/SC5hLmNyZWF0ZUVsZW1lbnQobSx7aWNvblVybDp0LHNpemU6ZX0pOkguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToibWVkaXVtIj09PWUmJnI/e2hlaWdodDoiMzBweCIsbWluV2lkdGg6IjMwcHgiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx2ZXJzaW9uOiIxLjEiLHZpZXdCb3g6Ii0yNCAtMjQgMjUyIDIzNiIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0wLjQzNzUgODAuMjM0NEMwLjQzNzUgMzYuMDA4OCA0NS45MDgyIDAuMTU2MjUgMTAyIDAuMTU2MjVDMTU4LjA5MiAwLjE1NjI1IDIwMy41NjIgMzYuMDA4OCAyMDMuNTYyIDgwLjIzNDRDMjAzLjU2MiAxMjQuNDYxIDE1OC4wOTIgMTYwLjMxMiAxMDIgMTYwLjMxMkM5NS44NDM4IDE2MC4zMTIgODkuODE1NCAxNTkuODgyIDgzLjk2MDkgMTU5LjA1M0M3OC4xMDA2IDE2My4xODMgNDQuMjQyMiAxODYuOTY2IDQxLjA0NjkgMTg3LjQxMkM0MS4wNDY5IDE4Ny40MTIgMzkuNzM2MyAxODcuOTIyIDM4LjYyMjEgMTg3LjI2NkMzNy41MDc4IDE4Ni42MDkgMzcuNzEgMTg0Ljg4OSAzNy43MSAxODQuODg5QzM4LjA0NTkgMTgyLjU5OSA0Ni40ODczIDE1My40NDggNDguMDQzIDE0OC4wODNDMTkuNDQ3MyAxMzMuOTE2IDAuNDM3NSAxMDguODI3IDAuNDM3NSA4MC4yMzQ0Wk0zOS45ODgzIDEwMi41OTNDMzkuOTg4MyAxMDUuNjc5IDQyLjYxNjIgMTA4LjE4OCA0NS44NDc3IDEwOC4xODhDNDkuMDc5MSAxMDguMTg4IDUxLjcwNyAxMDUuNjc5IDUxLjcwNyAxMDIuNTkzVjY3Ljc4MzJINjAuODQ5NkM2NC4wMTk1IDY3Ljc4MzIgNjYuNTk5NiA2NS4yMDkgNjYuNTk5NiA2Mi4wNDU5QzY2LjU5OTYgNTguODgyOCA2NC4wMjA1IDU2LjMwODYgNjAuODQ5NiA1Ni4zMDg2SDMwLjg0NTdDMjcuNjc1OCA1Ni4zMDg2IDI1LjA5NTcgNTguODgyOCAyNS4wOTU3IDYyLjA0NTlDMjUuMDk1NyA2NS4yMDkgMjcuNjc0OCA2Ny43ODMyIDMwLjg0NTcgNjcuNzgzMkgzOS45ODgzVjEwMi41OTNaTTkyLjM1MDYgMTA1LjUyNEM5Mi45MTQxIDEwNy4xMiA5NC43ODMyIDEwOC4xMTIgOTcuMjI2NiAxMDguMTEyQzk4LjUxMTYgMTA4LjExMyA5OS43ODE5IDEwNy44MzggMTAwLjk1MSAxMDcuMzA1QzEwMi41NjYgMTA2LjU2MiAxMDQuMTE5IDEwNC41MTIgMTAyLjMzNiA5OC45NzI3TDg4LjMyNjIgNjIuMDk4NkM4Ny4zMzY5IDU5LjI4NzEgODQuMzM3OSA1Ni4zOTU1IDgwLjUxMDcgNTYuMzA5NkM3Ni42OTQzIDU2LjM5NjUgNzMuNjk1MyA1OS4yODcxIDcyLjcwOCA2Mi4wOTI4TDU4LjY5MjQgOTguOTgzNEM1Ni45MTMxIDEwNC41MSA1OC40NjU4IDEwNi41NTkgNjAuMDgxMSAxMDcuMzA0QzYxLjI1IDEwNy44MzggNjIuNTIwNCAxMDguMTE0IDYzLjgwNTcgMTA4LjExMkM2Ni4yNDkgMTA4LjExMiA2OC4xMTcyIDEwNy4xMjEgNjguNjc4NyAxMDUuNTI4TDcxLjU4MiA5Ny45Mjc3TDg5LjQ0OTIgOTcuOTI4N0w5Mi4zNTA2IDEwNS41MjRaTTgwLjUxNTYgNzAuOTIzOEw4Ni4zNjgyIDg3LjU0OThINzQuNjYzMUw4MC41MTU2IDcwLjkyMzhaTTEwNi4xNSAxMDEuOTYzQzEwNi4xNSAxMDQuOTI0IDEwOC42NjkgMTA3LjMzNCAxMTEuNzY2IDEwNy4zMzRIMTMwLjU2NEMxMzMuNjYxIDEwNy4zMzQgMTM2LjE4IDEwNC45MjQgMTM2LjE4IDEwMS45NjNDMTM2LjE4IDk5LjAwMiAxMzMuNjYxIDk2LjU5MTggMTMwLjU2NCA5Ni41OTE4SDExOC4xMTNWNjIuMTY4QzExOC4xMTMgNTguOTM2NSAxMTUuNDMgNTYuMzA4NiAxMTIuMTMyIDU2LjMwODZDMTA4LjgzNCA1Ni4zMDg2IDEwNi4xNSA1OC45MzY1IDEwNi4xNSA2Mi4xNjhWMTAxLjk2M1pNMTM4LjQ1OSAxMDIuMjUzQzEzOC40NTkgMTA1LjQ4NCAxNDEuMDg3IDEwOC4xMTIgMTQ0LjMxOCAxMDguMTEyQzE0NS44NzIgMTA4LjExIDE0Ny4zNjIgMTA3LjQ5MiAxNDguNDYxIDEwNi4zOTNDMTQ5LjU2IDEwNS4yOTQgMTUwLjE3OCAxMDMuODA0IDE1MC4xOCAxMDIuMjVWODkuNDY1OEwxNTIuMjEzIDg3LjQzMjZMMTY1Ljk1NCAxMDUuNjRDMTY2LjQ5OCAxMDYuMzY2IDE2Ny4yMDUgMTA2Ljk1NiAxNjguMDE4IDEwNy4zNkMxNjguODMxIDEwNy43NjUgMTY5LjcyNyAxMDcuOTczIDE3MC42MzUgMTA3Ljk2OUMxNzEuOTA3IDEwNy45NzIgMTczLjE0NiAxMDcuNTU2IDE3NC4xNTkgMTA2Ljc4NkMxNzQuNzc1IDEwNi4zMjQgMTc1LjI5MyAxMDUuNzQ1IDE3NS42ODMgMTA1LjA4MkMxNzYuMDczIDEwNC40MTkgMTc2LjMyOCAxMDMuNjg0IDE3Ni40MzMgMTAyLjkyMkMxNzYuNTQyIDEwMi4xNiAxNzYuNDk5IDEwMS4zODQgMTc2LjMwNiAxMDAuNjM5QzE3Ni4xMTMgOTkuODkzNCAxNzUuNzczIDk5LjE5NCAxNzUuMzA4IDk4LjU4MTFMMTYwLjg4NSA3OS40NzM2TDE3NC4yMzcgNjYuMTIzQzE3NS4xNTUgNjUuMjA0MSAxNzUuNjE1IDYzLjkzNzUgMTc1LjUzIDYyLjU1NTdDMTc1LjQ0NiA2MS4xODU2IDE3NC44MzQgNTkuODY2MiAxNzMuODA4IDU4Ljg0MDhDMTcyLjcwNyA1Ny43NDEyIDE3MS4yMzggNTcuMTEwNCAxNjkuNzc1IDU3LjExMDRDMTY4LjUyMSA1Ny4xMTA0IDE2Ny4zNjYgNTcuNTczMiAxNjYuNTI1IDU4LjQxNDFMMTUwLjE3OCA3NC43NjE3VjYyLjE2OEMxNTAuMTc4IDU4LjkzNjUgMTQ3LjU1IDU2LjMwODYgMTQ0LjMxOCA1Ni4zMDg2QzE0MS4wODcgNTYuMzA4NiAxMzguNDU5IDU4LjkzNjUgMTM4LjQ1OSA2Mi4xNjhWMTAyLjI1M1oifSkpfWZ1bmN0aW9uIExyKGUpe3ZhciB0PXZvaWQgMD09PSh0PWUuYWN0aXZhdG9ySWNvbik/bnVsbDp0LGU9ZS5idXR0b25JbWFnZSxuPShvPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS5hY3RpdmF0b3JTaXplLHI9by5idXR0b25Cb3JkZXJSYWRpdXMsbz1vLmJ1dHRvblN0eWxlO3JldHVybiBlP0guYS5jcmVhdGVFbGVtZW50KCJpbWciLHtzcmM6IiIuY29uY2F0KGUpLHN0eWxlOnt3aWR0aDoiIi5jb25jYXQoTWF0aC5taW4oLjU1Km4sNDApLCJweCIpLGhlaWdodDoiIi5jb25jYXQoTWF0aC5taW4oLjU1Km4sNDApLCJweCIpLG9iamVjdEZpdDoiY292ZXIiLGJvcmRlclJhZGl1czoiIi5jb25jYXQoLjM1KnIsInB4Iil9fSk6InNtaWxlIj09PXQ/SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOiJjbGFzc2ljIiE9PW8/e3dpZHRoOiI4NSUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn06e3dpZHRoOiI2NSUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIixkaXNwbGF5OiJibG9jayIsbWFyZ2luOiJhdXRvIixtYXJnaW5MZWZ0OiIyMCUifSx2aWV3Qm94OiIwIDAgMzAgMzAiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNNy40NjIwNCAyLjAyNzQ2QzkuNzUwMjcgMC42OTgzMjcgMTIuMzQ5NSAtMC4wMDExODM3NyAxNC45OTU1IDIuNjAzNzNlLTA2QzE3LjMwMzEgLTAuMDAxMzU3MzQgMTkuNTc5OSAwLjUzMDAyOCAyMS42NDg3IDEuNTUyNzlDMjMuNzE3NCAyLjU3NTU2IDI1LjUyMjMgNC4wNjIxIDI2LjkyMjcgNS44OTY3MUMyOC4zMjMyIDcuNzMxMzEgMjkuMjgxNSA5Ljg2NDQ3IDI5LjcyMyAxMi4xMzAxQzMwLjE2NDUgMTQuMzk1OCAzMC4wNzczIDE2LjczMjggMjkuNDY4MiAxOC45NTkyQzI4Ljg1OTEgMjEuMTg1NiAyNy43NDQ2IDIzLjI0MTQgMjYuMjExMyAyNC45NjY1QzI0LjY3OCAyNi42OTE2IDIyLjc2NzUgMjguMDM5NSAyMC42MjgzIDI4LjkwNTJDMTguNDg5MSAyOS43NzA4IDE2LjE3OSAzMC4xMzEgMTMuODc3OSAyOS45NTc2QzExLjU3NjggMjkuNzg0MiA5LjM0Njc5IDI5LjA4MTkgNy4zNjEzOSAyNy45MDU1TDEuODI5MzcgMjkuOTE4MkMxLjY3OTc5IDI5Ljk3MTkgMS41MjIwOSAyOS45OTk2IDEuMzYzMTQgMzBDMS4xNDQwNyAyOS45OTk4IDAuOTI4MjY0IDI5Ljk0NjkgMC43MzM5OTcgMjkuODQ1NkMwLjUzOTczIDI5Ljc0NDMgMC4zNzI3MjggMjkuNTk3NyAwLjI0NzEzNCAyOS40MTgxQzAuMTIxNTQgMjkuMjM4NiAwLjA0MTA1NDYgMjkuMDMxNCAwLjAxMjQ5NDQgMjguODE0MUMtMC4wMTYwNjU3IDI4LjU5NjkgMC4wMDgxNDA4MyAyOC4zNzU5IDAuMDgzMDYzNiAyOC4xN0wyLjA5Mzg0IDIyLjYzNjRDMC43NDQ5NDQgMjAuMzU5MyAwLjAyMjcwOSAxNy43NjU2IDAuMDAwNTI2ODMyIDE1LjExODlDLTAuMDIxNjU1MyAxMi40NzIxIDAuNjU3MDA3IDkuODY2NzEgMS45Njc1NSA3LjU2NzMzQzMuMjc4MDkgNS4yNjc5NSA1LjE3MzggMy4zNTY1OCA3LjQ2MjA0IDIuMDI3NDZaTTEwLjkwNiA4LjAzNjQ0QzkuODc0NSA4LjAzNjQ0IDkuMDM3ODcgOC44NzMzNyA5LjAzNzg3IDkuOTA0NjFDOS4wMzc4NyAxMC45MzY4IDkuODc0NSAxMS43NzMxIDEwLjkwNiAxMS43NzM0QzExLjkzNzMgMTEuNzczNCAxMi43NzM5IDEwLjkzNjggMTIuNzczOSA5LjkwNDYxQzEyLjc3MzkgOC44NzMwNiAxMS45MzczIDguMDM2NDQgMTAuOTA2IDguMDM2NDRaTTE5LjM3NzQgOC4wMzY0NEMxOC4zNDYyIDguMDM2NDQgMTcuNTA4NyA4Ljg3MzM3IDE3LjUwODcgOS45MDQ2MUMxNy41MDg3IDEwLjkzNjggMTguMzQ2NSAxMS43NzMxIDE5LjM3NzQgMTEuNzczNEMyMC40MDkgMTEuNzczNCAyMS4yNDU2IDEwLjkzNjggMjEuMjQ1NiA5LjkwNDYxQzIxLjI0NTYgOC44NzMwNiAyMC40MDg3IDguMDM2NDQgMTkuMzc3NCA4LjAzNjQ0Wk0xNS4wMTc4IDIxLjk2MzVDMTguMDU2NCAyMS45NjM1IDIwLjc2NzggMjAuMjMzNiAyMS45MjU2IDE3LjU1NjNDMjIuMTIzOCAxNy4wOTggMjEuOTEyOSAxNi41NjYgMjEuNDU0MSAxNi4zNjhDMjAuOTk2NSAxNi4xNjkyIDIwLjQ2NDQgMTYuMzgwNCAyMC4yNjYyIDE2LjgzODZDMTkuMzk0NiAxOC44NTQxIDE3LjMzNDUgMjAuMTU2MiAxNS4wMTc4IDIwLjE1NjJDMTIuNjQ3NCAyMC4xNTYyIDEwLjU3NTIgMTguODU1IDkuNzM4NjIgMTYuODQxQzkuNTk0MzEgMTYuNDkzMSA5LjI1ODEgMTYuMjgzNCA4LjkwMzggMTYuMjgzNEM4Ljc4ODEyIDE2LjI4MzQgOC42NzA2MiAxNi4zMDU3IDguNTU3MzQgMTYuMzUyNEM4LjA5NjEgMTYuNTQ0IDcuODc3NjggMTcuMDczIDguMDY5MjkgMTcuNTM0QzkuMTg3IDIwLjIyNDkgMTEuOTE0NCAyMS45NjM1IDE1LjAxNzggMjEuOTYzNVoiLGZpbGw6IndoaXRlIn0pKToic3F1YXJlX21lc3NhZ2UiPT09dD9ILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6ImNsYXNzaWMiIT09bz97d2lkdGg6Ijg1JSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjY1JSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUiLGRpc3BsYXk6ImJsb2NrIixtYXJnaW46ImF1dG8iLG1hcmdpbkxlZnQ6IjIwJSJ9LHZpZXdCb3g6IjAgMCAzMiAzMiIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMjMuOTU0NSAySDcuMDQ1NDVDNS4xNzc1NyAyLjAwMjE3IDMuMzg2ODMgMi43MjEyIDIuMDY2MDQgMy45OTkzOEMwLjc0NTI0MyA1LjI3NzU2IDAuMDAyMjM3NDQgNy4wMTA1MiAwIDguODE4MTRWMTkuNzI3MkMwLjAwMjA0OTU2IDIxLjI5ODMgMC41NjM3NjMgMjIuODIwOCAxLjU5MDQ3IDI0LjAzNzlDMi42MTcxNyAyNS4yNTUxIDQuMDQ2MDggMjYuMDkyNCA1LjYzNjM2IDI2LjQwODlWMzAuNjM2MkM1LjYzNjMzIDMwLjg4MyA1LjcwNTU0IDMxLjEyNTMgNS44MzY2MyAzMS4zMzcxQzUuOTY3NzIgMzEuNTQ4OSA2LjE1NTc2IDMxLjcyMjIgNi4zODA2OSAzMS44Mzg3QzYuNjA1NjMgMzEuOTU1MiA2Ljg1OTAxIDMyLjAxMDQgNy4xMTM4MiAzMS45OTg0QzcuMzY4NjIgMzEuOTg2NCA3LjYxNTI5IDMxLjkwNzcgNy44Mjc1IDMxLjc3MDdMMTUuOTIyNyAyNi41NDUzSDIzLjk1NDVDMjUuODIyNCAyNi41NDMxIDI3LjYxMzIgMjUuODI0MSAyOC45MzQgMjQuNTQ1OUMzMC4yNTQ4IDIzLjI2NzcgMzAuOTk3OCAyMS41MzQ4IDMxIDE5LjcyNzJWOC44MTgxNEMzMC45OTc4IDcuMDEwNTIgMzAuMjU0OCA1LjI3NzU2IDI4LjkzNCAzLjk5OTM4QzI3LjYxMzIgMi43MjEyIDI1LjgyMjQgMi4wMDIxNyAyMy45NTQ1IDJaTTIxLjEzNjQgMTguMzYzNUg5Ljg2MzY0QzkuNDg5OTIgMTguMzYzNSA5LjEzMTUxIDE4LjIxOTkgOC44NjcyNiAxNy45NjQxQzguNjAzIDE3LjcwODQgOC40NTQ1NSAxNy4zNjE2IDguNDU0NTUgMTYuOTk5OUM4LjQ1NDU1IDE2LjYzODIgOC42MDMgMTYuMjkxNCA4Ljg2NzI2IDE2LjAzNTdDOS4xMzE1MSAxNS43Nzk5IDkuNDg5OTIgMTUuNjM2MyA5Ljg2MzY0IDE1LjYzNjNIMjEuMTM2NEMyMS41MTAxIDE1LjYzNjMgMjEuODY4NSAxNS43Nzk5IDIyLjEzMjcgMTYuMDM1N0MyMi4zOTcgMTYuMjkxNCAyMi41NDU1IDE2LjYzODIgMjIuNTQ1NSAxNi45OTk5QzIyLjU0NTUgMTcuMzYxNiAyMi4zOTcgMTcuNzA4NCAyMi4xMzI3IDE3Ljk2NDFDMjEuODY4NSAxOC4yMTk5IDIxLjUxMDEgMTguMzYzNSAyMS4xMzY0IDE4LjM2MzVaTTIzLjk1NDUgMTIuOTA5SDcuMDQ1NDVDNi42NzE3NCAxMi45MDkgNi4zMTMzMyAxMi43NjUzIDYuMDQ5MDggMTIuNTA5NkM1Ljc4NDgyIDEyLjI1MzkgNS42MzYzNiAxMS45MDcgNS42MzYzNiAxMS41NDU0QzUuNjM2MzYgMTEuMTgzNyA1Ljc4NDgyIDEwLjgzNjkgNi4wNDkwOCAxMC41ODEyQzYuMzEzMzMgMTAuMzI1NCA2LjY3MTc0IDEwLjE4MTggNy4wNDU0NSAxMC4xODE4SDIzLjk1NDVDMjQuMzI4MyAxMC4xODE4IDI0LjY4NjcgMTAuMzI1NCAyNC45NTA5IDEwLjU4MTJDMjUuMjE1MiAxMC44MzY5IDI1LjM2MzYgMTEuMTgzNyAyNS4zNjM2IDExLjU0NTRDMjUuMzYzNiAxMS45MDcgMjUuMjE1MiAxMi4yNTM5IDI0Ljk1MDkgMTIuNTA5NkMyNC42ODY3IDEyLjc2NTMgMjQuMzI4MyAxMi45MDkgMjMuOTU0NSAxMi45MDlaIixmaWxsOiJ3aGl0ZSJ9KSk6InJvdW5kX21lc3NhZ2UiPT09dD9ILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6ImNsYXNzaWMiIT09bz97d2lkdGg6Ijg1JSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifTp7d2lkdGg6IjY1JSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUiLGRpc3BsYXk6ImJsb2NrIixtYXJnaW46ImF1dG8iLG1hcmdpbkxlZnQ6IjIwJSJ9LHZpZXdCb3g6IjAgMCAzMiAzMiIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTYgMUM3LjcyOTM4IDEgMSA3LjcyOTM4IDEgMTZWMzAuMDYyNUMxIDMwLjU4IDEuNDIgMzEgMS45Mzc1IDMxSDE2QzI0LjI3MDYgMzEgMzEgMjQuMjcwNiAzMSAxNkMzMSA3LjcyOTM4IDI0LjI3MDYgMSAxNiAxWk0xNi45Mzc1IDE5Ljc1SDkuNDM3NUM4LjkyIDE5Ljc1IDguNSAxOS4zMyA4LjUgMTguODEyNUM4LjUgMTguMjk1IDguOTIgMTcuODc1IDkuNDM3NSAxNy44NzVIMTYuOTM3NUMxNy40NTUgMTcuODc1IDE3Ljg3NSAxOC4yOTUgMTcuODc1IDE4LjgxMjVDMTcuODc1IDE5LjMzIDE3LjQ1NSAxOS43NSAxNi45Mzc1IDE5Ljc1Wk0yMi41NjI1IDE0LjEyNUg5LjQzNzVDOC45MiAxNC4xMjUgOC41IDEzLjcwNSA4LjUgMTMuMTg3NUM4LjUgMTIuNjcgOC45MiAxMi4yNSA5LjQzNzUgMTIuMjVIMjIuNTYyNUMyMy4wOCAxMi4yNSAyMy41IDEyLjY3IDIzLjUgMTMuMTg3NUMyMy41IDEzLjcwNSAyMy4wOCAxNC4xMjUgMjIuNTYyNSAxNC4xMjVaIixmaWxsOiJ3aGl0ZSJ9KSk6ImRpYWxvZyI9PT10P0guYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZToiY2xhc3NpYyIhPT1vP3t3aWR0aDoiODUlIixoZWlnaHQ6IjEwMCUiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSJ9Ont3aWR0aDoiNjUlIixoZWlnaHQ6IjEwMCUiLGZpbGw6IiNmZmYiLHN0cm9rZToibm9uZSIsZGlzcGxheToiYmxvY2siLG1hcmdpbjoiYXV0byIsbWFyZ2luTGVmdDoiMjAlIn0sdmlld0JveDoiMCAwIDMyIDMyIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0yNC45ODU3IDMwLjM2MTZDMjUuMjUxNSAzMC4zNjE2IDI1LjUxMzggMzAuNDYyNyAyNS43MTMzIDMwLjY1NTRDMjYuOTg4NyAzMS44ODcgMjguODQ5IDMyLjI5NyAzMC41MDI5IDMxLjc4MzhDMjkuNDM4NSAyOS41NjY0IDI5LjI5MSAyNy4wMjYxIDMwLjExNTggMjQuNjc0QzMxLjEzOTQgMjEuNzQ3NiAzMS4zOTYgMTguODE0NCAzMC4yMzEgMTUuODcyN0MyOS4yMDc1IDEzLjI4ODQgMjcuMjMyNSAxMS4xNDEzIDI0LjczMyA5LjkxNjk5QzI0Ljg4NjcgMTAuNzM2OCAyNC45NjQyIDExLjU3MjEgMjQuOTY0MiAxMi40MTYyQzI0Ljk2NDMgMTUuOTk5MyAyMy41ODY1IDE5LjM2OTIgMjEuMDg0OSAyMS45MDU0QzE4LjU4MjkgMjQuNDQxOSAxNS4yMjkxIDI1Ljg2ODEgMTEuNjQxMyAyNS45MjE0QzEwLjk3NDcgMjUuOTMxOCAxMC4zMTExIDI1Ljg5MjYgOS42NTUwNyAyNS44MDYyQzExLjYyNjkgMjkuMjYyNCAxNS4zNDU2IDMxLjUxMzQgMTkuNDMyMSAzMS41NzQxQzIxLjIxOTggMzEuNjAxNyAyMi45MzYyIDMxLjIyNzIgMjQuNTM0NyAzMC40NjM4QzI0LjY3ODYgMzAuMzk1IDI0LjgzMjggMzAuMzYxNiAyNC45ODU3IDMwLjM2MTZaIixmaWxsOiJ3aGl0ZSJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMS42NzA4IDEuMDAyMjhDNS4zMDYxNyAwLjg3NTg5OSAwLjAxNTM4MSA2LjAyNDgxIDMuNDUxMTVlLTA1IDEyLjM4ODFDLTAuMDAzNzI1MzkgMTMuOTQyOCAwLjI5OTc1MiAxNS40NTAxIDAuOTAyMTA0IDE2Ljg2ODRDMC45MTA4NTEgMTYuODg5MSAwLjkxODk4NSAxNi45MDk5IDAuOTI2MzUxIDE2LjkzMTFDMS43NTExNSAxOS4yODMyIDEuNjAzNzUgMjEuODIzNCAwLjUzOTMxMiAyNC4wNDA4QzIuMTkzMjggMjQuNTUzOSA0LjA1MzQ0IDI0LjE0NCA1LjMyODg5IDIyLjkxMjRDNS42NDMxMSAyMi42MDg5IDYuMTEzMjUgMjIuNTMyNCA2LjUwNzUgMjIuNzIwOUM4LjEwNTc3IDIzLjQ4NDIgOS44MjI0MyAyMy44NTk5IDExLjYxIDIzLjgzMTJDMTcuOTI0OSAyMy43Mzc0IDIyLjg3MTQgMTguNzIzNCAyMi44NzE0IDEyLjQxNjJDMjIuODcxNCA2LjI0NjY0IDE3Ljg0NjggMS4xMjY0MyAxMS42NzA4IDEuMDAyMjhaTTUuMzM1NzkgMTQuMTIxMkM0LjQyMTM3IDE0LjEyMTIgMy42ODAwNiAxMy4zODExIDMuNjgwMDYgMTIuNDY4MkMzLjY4MDA2IDExLjU1NTMgNC40MjEzNyAxMC44MTUyIDUuMzM1NzkgMTAuODE1MkM2LjI1MDIyIDEwLjgxNTIgNi45OTE1MyAxMS41NTUzIDYuOTkxNTMgMTIuNDY4MkM2Ljk5MTQ1IDEzLjM4MTEgNi4yNTAyMiAxNC4xMjEyIDUuMzM1NzkgMTQuMTIxMlpNMTEuNDM1NyAxNC4xMjEyQzEwLjUyMTMgMTQuMTIxMiA5Ljc3OTk5IDEzLjM4MTEgOS43Nzk5OSAxMi40NjgyQzkuNzc5OTkgMTEuNTU1MyAxMC41MjEzIDEwLjgxNTIgMTEuNDM1NyAxMC44MTUyQzEyLjM1MDIgMTAuODE1MiAxMy4wOTE1IDExLjU1NTMgMTMuMDkxNSAxMi40NjgyQzEzLjA5MTUgMTMuMzgxMSAxMi4zNTAyIDE0LjEyMTIgMTEuNDM1NyAxNC4xMjEyWk0xNy41MzU3IDE0LjEyMTJDMTYuNjIxMyAxNC4xMjEyIDE1Ljg4IDEzLjM4MTEgMTUuODggMTIuNDY4MkMxNS44OCAxMS41NTUzIDE2LjYyMTMgMTAuODE1MiAxNy41MzU3IDEwLjgxNTJDMTguNDUwMiAxMC44MTUyIDE5LjE5MTUgMTEuNTU1MyAxOS4xOTE1IDEyLjQ2ODJDMTkuMTkxNSAxMy4zODExIDE4LjQ1MDIgMTQuMTIxMiAxNy41MzU3IDE0LjEyMTJaIixmaWxsOiJ3aGl0ZSJ9KSk6InBsYW5lIj09PXQ/SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOiJjbGFzc2ljIiE9PW8/e3dpZHRoOiI4NSUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIn06e3dpZHRoOiI2NSUiLGhlaWdodDoiMTAwJSIsZmlsbDoiI2ZmZiIsc3Ryb2tlOiJub25lIixkaXNwbGF5OiJibG9jayIsbWFyZ2luOiJhdXRvIixtYXJnaW5SaWdodDoiMjElIn0sdmlld0JveDoiMCAwIDMwIDMwIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxILmEuY3JlYXRlRWxlbWVudCgiZyIsbnVsbCxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0yOS45NDc4IDIuMTI5NTJMMjQuNjYxMyAyNi41MTA0QzI0LjU0ODggMjcuMDQwNyAyNC4xOTczIDI3LjQ4NzMgMjMuNzA1MiAyNy43MjQ1QzIzLjIxMzEgMjcuOTYxOCAyMi42NTA3IDI3Ljk2MTggMjIuMTQ0NiAyNy43MjQ1TDE4LjIwNzggMjUuODI2NUMxOC4yMDc4IDI1LjgyNjUgMTMuMTc0NCAyOS40NDExIDEyLjE0ODEgMjkuOTE1NkMxMS45NTEyIDMwLjAxMzMgMTEuODY2OSAyOS45OTkzIDExLjcyNjMgMjkuOTk5M0MxMS41Mjk0IDI5Ljk5OTMgMTEuMzE4NSAyOS45NDM1IDExLjE0OTggMjkuODMxOEMxMC44NTQ2IDI5LjYzNjUgMTAuNjcxOCAyOS4zMTU1IDEwLjY3MTggMjguOTY2NlYyMS41NTZDMTAuNjU3NyAyMS40MDI1IDEwLjY3MTggMjEuMjQ5IDEwLjc1NjIgMjEuMDk1NUMxMC43NTYyIDIxLjA5NTUgMTAuNzcwMiAyMS4wNjc2IDEwLjc4NDMgMjEuMDUzNkMxMC44MjY1IDIwLjk4MzggMTAuODY4NiAyMC45MTQxIDEwLjkyNDkgMjAuODQ0M0wyMy44NzQgNi43NzY4MUw3Ljc3NTQ4IDE5LjkyMzJDNy42NDg5NCAyMC4wNDg4IDcuNDgwMjIgMjAuMTYwNCA3LjI5NzQ0IDIwLjIwMjNDNy4wMDIxOSAyMC4yODYxIDYuNjc4ODEgMjAuMjMwMiA2LjQyNTc0IDIwLjA2MjhMMS4wMTI3MSAxNy42MzQ0QzAuNDA4MTQxIDE3LjM0MTQgMC4wMjg1MjYxIDE2Ljc1NTIgMC4wMDA0MDY0NzYgMTYuMDg1M0MtMC4wMTM2NTMzIDE1LjQyOTQgMC4zMzc4NDIgMTQuODE1NCAwLjkyODM1MyAxNC40OTQ0TDI3LjM2MDggMC4yMTc1NjhDMjcuOTc5NCAtMC4xMTczNzIgMjguNzEwNSAtMC4wNjE1NDg5IDI5LjI4NyAwLjM1NzEyNkMyOS44NDk0IDAuNzc1ODAxIDMwLjEwMjQgMS40NTk2NCAyOS45NjE4IDIuMTI5NTJIMjkuOTQ3OFoiLGZpbGw6IndoaXRlIn0pKSk6SC5hLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixmaWxsOiIjZmZmIixzdHJva2U6Im5vbmUifSx2aWV3Qm94OiIwIC0yNTYgMTg1MCAxODUwIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse3RyYW5zZm9ybToibWF0cml4KDAuNzExODY0NDEsMCwwLC0wLjcxMTg2NDQxLDI4OC41NDIzNywxMDkzLjk0ODIpIixkOiJNIDcwNCwxMTUyIFEgNTUxLDExNTIgNDE4LDExMDAgMjg1LDEwNDggMjA2LjUsOTU5IDEyOCw4NzAgMTI4LDc2OCBxIDAsLTgyIDUzLC0xNTggNTMsLTc2IDE0OSwtMTMyIGwgOTcsLTU2IC0zNSwtODQgcSAzNCwyMCA2MiwzOSBsIDQ0LDMxIDUzLC0xMCBxIDc4LC0xNCAxNTMsLTE0IDE1MywwIDI4Niw1MiAxMzMsNTIgMjExLjUsMTQxIDc4LjUsODkgNzguNSwxOTEgMCwxMDIgLTc4LjUsMTkxIC03OC41LDg5IC0yMTEuNSwxNDEgLTEzMyw1MiAtMjg2LDUyIHogbSAwLDEyOCBxIDE5MSwwIDM1My41LC02OC41IFEgMTIyMCwxMTQzIDEzMTQsMTAyNSAxNDA4LDkwNyAxNDA4LDc2OCAxNDA4LDYyOSAxMzE0LDUxMSAxMjIwLDM5MyAxMDU3LjUsMzI0LjUgODk1LDI1NiA3MDQsMjU2IDYxOCwyNTYgNTI4LDI3MiA0MDQsMTg0IDI1MCwxNDQgMjE0LDEzNSAxNjQsMTI4IGggLTMgcSAtMTEsMCAtMjAuNSw4IC05LjUsOCAtMTEuNSwyMSAtMSwzIC0xLDYuNSAwLDMuNSAwLjUsNi41IDAuNSwzIDIsNiBsIDIuNSw1IHEgMCwwIDMuNSw1LjUgMy41LDUuNSA0LDUgMC41LC0wLjUgNC41LDUgNCw1LjUgNCw0LjUgNSw2IDIzLDI1IDE4LDE5IDI2LDI5LjUgOCwxMC41IDIyLjUsMjkgUSAyMzUsMzAzIDI0NS41LDMyMyAyNTYsMzQzIDI2NiwzNjcgMTQyLDQzOSA3MSw1NDQgMCw2NDkgMCw3NjggMCw5MDcgOTQsMTAyNSAxODgsMTE0MyAzNTAuNSwxMjExLjUgNTEzLDEyODAgNzA0LDEyODAgWiBNIDE1MjYsMTExIHEgMTAsLTI0IDIwLjUsLTQ0IDEwLjUsLTIwIDI1LC0zOC41IDE0LjUsLTE4LjUgMjIuNSwtMjkgOCwtMTAuNSAyNiwtMjkuNSAxOCwtMTkgMjMsLTI1IDEsLTEgNCwtNC41IDMsLTMuNSA0LjUsLTUgMS41LC0xLjUgNCwtNSAyLjUsLTMuNSAzLjUsLTUuNSBsIDIuNSwtNSBxIDAsMCAyLC02IDIsLTYgMC41LC02LjUgLTEuNSwtMC41IC0xLC02LjUgLTMsLTE0IC0xMywtMjIgLTEwLC04IC0yMiwtNyAtNTAsNyAtODYsMTYgUSAxMzg4LC03MiAxMjY0LDE2IDExNzQsMCAxMDg4LDAgODE3LDAgNjE2LDEzMiBxIDU4LC00IDg4LC00IDE2MSwwIDMwOSw0NSAxNDgsNDUgMjY0LDEyOSAxMjUsOTIgMTkyLDIxMiA2NywxMjAgNjcsMjU0IDAsNzcgLTIzLDE1MiAxMjksLTcxIDIwNCwtMTc4IDc1LC0xMDcgNzUsLTIzMCAwLC0xMjAgLTcxLC0yMjQuNSBRIDE2NTAsMTgzIDE1MjYsMTExIFoifSkpfWZ1bmN0aW9uIE1yKCl7dmFyIGU9KHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MpLmFjdGl2YXRvclNpemUsdD10LmJ1dHRvblN0eWxlO3JldHVybiBILmEuY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOiJjbGFzc2ljIj09PXQ/e2Rpc3BsYXk6ImdyaWQiLHBsYWNlQ29udGVudDoiY2VudGVyIixmb250U2l6ZToiIi5jb25jYXQoZS0xMCwicHgiKSxmb250V2VpZ2h0OiI2MDAiLGNvbG9yOiIjZmZmZmZmIixtYXJnaW5Ub3A6IjFweCIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsZm9udEZhbWlseToiVGltZXMgTmV3IFJvbWFuLCBzYW5zLXNlcmlmIixsaW5lSGVpZ2h0OiIxIn06e2ZvbnRTaXplOiIiLmNvbmNhdCguNSplKzE1LCJweCIpLGZvbnRXZWlnaHQ6IjYwMCIsY29sb3I6IiNmZmZmZmYiLGZvbnRGYW1pbHk6IlRpbWVzIE5ldyBSb21hbiwgc2Fucy1zZXJpZiIsbGluZUhlaWdodDoiMSJ9fSwiw5ciKX12YXIgaD17YXBwbGU6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LmFwcGxlLHI9dC5hcHBsZUNvbG9yLG89dC5hcHBsZUljb24sdD10LmFwcGxlTGFiZWwsbj1hKCl8fHYoKT8iaW1lc3NhZ2U6Ly8iLmNvbmNhdChuKTpudWxsO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChwLHtzaXplOmUsbmFtZToiYXBwbGUiLGxpbms6bixpY29uOkguYS5jcmVhdGVFbGVtZW50KGp0LHtzaXplOmV9KSxjb2xvcjpyfHwhMSxjdXN0b21JY29uOiEhbyxsYWJlbDp0fSl9LHlvdXR1YmU6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LnlvdXR1YmUscj10LnlvdXR1YmVDb2xvcixvPXQueW91dHViZUljb24sYT10LnlvdXR1YmVMYWJlbCxuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQpe2Nhc2UiZXZlcnl3aGVyZSI6cmV0dXJuIG51bGw7Y2FzZSJkZXNrdG9wIjppZihVKCkpcmV0dXJuIG51bGw7Y2FzZSJtb2JpbGUiOmlmKCFVKCkpcmV0dXJuIG51bGw7Y2FzZSJub3doZXJlIjpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiBudWxsfX0obix0LnlvdXR1YmVTaG93UG9wdXBQbGF0Zm9ybSk7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse3NpemU6ZSxuYW1lOiJ5b3V0dWJlIixsaW5rOm4sdGFyZ2V0OiJfYmxhbmsiLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoJHQse3NpemU6ZX0pLGNvbG9yOnJ8fCExLGN1c3RvbUljb246ISFvLGxhYmVsOmF9KX0sY2FsbDpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQuY2FsbCxyPXQuY2FsbENvbG9yLG89dC5jYWxsSWNvbixhPXQuY2FsbExhYmVsLG49ZnVuY3Rpb24oZSx0KXtzd2l0Y2godCl7Y2FzZSJldmVyeXdoZXJlIjpyZXR1cm4gbnVsbDtjYXNlImRlc2t0b3AiOnJldHVybiBVKCk/bnVsbDoidGVsOiIuY29uY2F0KGUpO2Nhc2UibW9iaWxlIjpyZXR1cm4gVSgpPyJ0ZWw6Ii5jb25jYXQoZSk6bnVsbDtjYXNlIm5vd2hlcmUiOnJldHVybiJ0ZWw6Ii5jb25jYXQoZSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KG4sdC5jYWxsU2hvd1BvcHVwUGxhdGZvcm0pO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChwLHtzaXplOmUsbmFtZToiY2FsbCIsbGluazpuLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoWXQse3NpemU6ZX0pLGNvbG9yOnJ8fCExLGN1c3RvbUljb246ISFvLGxhYmVsOmF9KX0sY29udGFjdGZvcm06ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LmNvbnRhY3Rmb3JtQ29sb3Iscj10LmNvbnRhY3Rmb3JtSWNvbix0PXQuY29udGFjdGZvcm1MYWJlbDtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6ImNvbnRhY3Rmb3JtIixpY29uOkguYS5jcmVhdGVFbGVtZW50KHRuLHtzaXplOmV9KSxjb2xvcjpufHwhMSxjdXN0b21JY29uOiEhcixsYWJlbDp0fSl9LGRpc2NvcmQ6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LmRpc2NvcmQscj10LmRpc2NvcmRDb2xvcixvPXQuZGlzY29yZEljb24sdD10LmRpc2NvcmRMYWJlbCxuPSIiLmNvbmNhdChuKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6ImRpc2NvcmQiLGxpbms6bix0YXJnZXQ6Il9ibGFuayIsaWNvbjpILmEuY3JlYXRlRWxlbWVudChsbix7c2l6ZTplfSksY29sb3I6cnx8ITEsY3VzdG9tSWNvbjohIW8sbGFiZWw6dH0pfSx0ZWFtczpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQudGVhbXMscj10LnRlYW1zQ29sb3Isbz10LnRlYW1zSWNvbix0PXQudGVhbXNMYWJlbCxuPSIiLmNvbmNhdChuKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6InRlYW1zIix0YXJnZXQ6Il9ibGFuayIsbGluazpuLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoY24se3NpemU6ZX0pLGNvbG9yOnJ8fCExLGN1c3RvbUljb246ISFvLGxhYmVsOnR9KX0sY2FsZW5kYXI6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LmNhbGVuZGFyQ29sb3Iscj10LmNhbGVuZGFySWNvbix0PXQuY2FsZW5kYXJMYWJlbDtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6ImNhbGVuZGFyIixpY29uOkguYS5jcmVhdGVFbGVtZW50KHNuLHtzaXplOmV9KSxjb2xvcjpufHwhMSxjdXN0b21JY29uOiEhcixsYWJlbDp0fSl9LGVtYWlsOmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC5lbWFpbCxyPXQuZW1haWxDb2xvcixvPXQuZW1haWxJY29uLHQ9dC5lbWFpbExhYmVsLG49Im1haWx0bzoiLmNvbmNhdChuKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6ImVtYWlsIix0YXJnZXQ6Il9ibGFuayIsbGluazpuLGljb246SC5hLmNyZWF0ZUVsZW1lbnQodW4se3NpemU6ZX0pLGNvbG9yOnJ8fCExLGN1c3RvbUljb246ISFvLGxhYmVsOnR9KX0sZmFjZWJvb2s6ZnVuY3Rpb24oZSl7dmFyIHQsbixlPWUuc2l6ZSxyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLG89ci5zdGF0ZSxhPXIuYWN0aW9ucy5jbG9zZUJ1dHRvblBvcHVwLHI9ci5zZXR0aW5ncyxpPXIuZmFjZWJvb2ssbD1yLmZhY2Vib29rQ29sb3IsYz1yLmZhY2Vib29rSWNvbix1PXIuZmFjZWJvb2tMYWJlbCxzPXIuZmFjZWJvb2tGcmFtZSxmPXIuc3Vic2NyaXB0aW9uQ3JlYXRlZERhdGUscj1sfHwhMSxsPSEhYztyZXR1cm4gT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpeyJmYWNlYm9vayI9PT1vLmJ1dHRvblBvcHVwJiZVKCkmJnMmJiF4bihmLHMpJiYob3BlbigiaHR0cHM6Ly9tLm1lLyIuY29uY2F0KGkpLCJnZXRidXR0b24tcG9wdXAtIitvLmJ1dHRvblBvcHVwLCJwb3B1cCxsZWZ0PTAsdG9wPTAsd2lkdGg9NjAwLGhlaWdodD01MDAiKSxhKG8uYnV0dG9uUG9wdXApKX0sW28uYnV0dG9uUG9wdXBdKSxILmEuY3JlYXRlRWxlbWVudChwLHtzaXplOmUsbmFtZToiZmFjZWJvb2siLGxpbms6KGM9Zix0PXMsbj1pLEsmJih4bihjLHQpfHx0KT92b2lkIDA6Imh0dHBzOi8vbS5tZS8iLmNvbmNhdChuKSksdGFyZ2V0OiJfYmxhbmsiLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoaG4se3NpemU6ZX0pLGNvbG9yOnIsY3VzdG9tSWNvbjpsLGxhYmVsOnV9KX0sZ29vZ2xlbWFwOmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC5nb29nbGVtYXAscj10Lmdvb2dsZW1hcENvbG9yLG89dC5nb29nbGVtYXBJY29uLGE9dC5nb29nbGVtYXBMYWJlbCxuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQpe2Nhc2UiZXZlcnl3aGVyZSI6cmV0dXJuIG51bGw7Y2FzZSJkZXNrdG9wIjppZihVKCkpcmV0dXJuIG51bGw7Y2FzZSJtb2JpbGUiOmlmKCFVKCkpcmV0dXJuIG51bGw7Y2FzZSJub3doZXJlIjpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiBudWxsfX0obix0Lmdvb2dsZW1hcFNob3dQb3B1cFBsYXRmb3JtKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6Imdvb2dsZW1hcCIsdGFyZ2V0OiJfYmxhbmsiLGxpbms6bixpY29uOkguYS5jcmVhdGVFbGVtZW50KHZuLHtzaXplOmV9KSxjb2xvcjpyfHwhMSxjdXN0b21JY29uOiEhbyxsYWJlbDphfSl9LGluc3RhZ3JhbTpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQuaW5zdGFncmFtLHI9dC5pbnN0YWdyYW1Db2xvcixvPXQuaW5zdGFncmFtSWNvbix0PXQuaW5zdGFncmFtTGFiZWwsbj1mdW5jdGlvbihlKXtlPWUmJmUuc3RhcnRzV2l0aCgiaHR0cHM6Ly9pZy5tZS9tLyIpP2U6Imh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vIi5jb25jYXQoZSk7cmV0dXJuIGV9KG4pO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChwLHtzaXplOmUsbmFtZToiaW5zdGFncmFtIixsaW5rOm4sdGFyZ2V0OiJfYmxhbmsiLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoQ24se3NpemU6ZX0pLGNvbG9yOnJ8fCExLGN1c3RvbUljb246ISFvLGxhYmVsOnR9KX0sbGluZTpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQubGluZSxyPXQubGluZUNvbG9yLG89dC5saW5lSWNvbix0PXQubGluZUxhYmVsLG49VSgpP251bGw6Ii8vIj09PShuPW4pLnN1YnN0cigwLDIpPyJodHRwczoiK246Imh0dHAiIT09bi5zdWJzdHIoMCw0KT8iaHR0cHM6Ly8iK246bjtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6ImxpbmUiLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoRW4se3NpemU6ZX0pLGNvbG9yOnJ8fCExLGxpbms6bixjdXN0b21JY29uOiEhbyxsYWJlbDp0fSl9LGxpbms6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10Lmxpbmsscj10LmxpbmtJY29uLG89dC5saW5rQ29sb3IsdD10LmxpbmtMYWJlbCxuPSIiLmNvbmNhdChuKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6ImxpbmsiLHRhcmdldDoiX2JsYW5rIixsaW5rOm4saWNvbjpILmEuY3JlYXRlRWxlbWVudChQbix7c2l6ZTplfSksY29sb3I6b3x8ITEsY3VzdG9tSWNvbjohIXIsbGFiZWw6dH0pfSxsaW5rZWRpbjpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQubGlua2VkaW4scj10LmxpbmtlZGluSWNvbixvPXQubGlua2VkaW5Db2xvcix0PXQubGlua2VkaW5MYWJlbCxuPSIiLmNvbmNhdChuKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6ImxpbmtlZGluIix0YXJnZXQ6Il9ibGFuayIsbGluazpuLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoSW4se3NpemU6ZX0pLGNvbG9yOm98fCExLGN1c3RvbUljb246ISFyLGxhYmVsOnR9KX0sc2t5cGU6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LnNreXBlLHI9dC5za3lwZUljb24sbz10LnNreXBlQ29sb3IsdD10LnNreXBlTGFiZWwsbj0ic2t5cGU6Ii5jb25jYXQobiwiP2NoYXQiKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6InNreXBlIix0YXJnZXQ6Il9ibGFuayIsbGluazpuLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoX24se3NpemU6ZX0pLGNvbG9yOm98fCExLGN1c3RvbUljb246ISFyLGxhYmVsOnR9KX0sc2xhY2s6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LnNsYWNrLHI9dC5zbGFja0ljb24sbz10LnNsYWNrQ29sb3IsdD10LnNsYWNrTGFiZWwsbj0iIi5jb25jYXQobik7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse3NpemU6ZSxuYW1lOiJzbGFjayIsdGFyZ2V0OiJfYmxhbmsiLGxpbms6bixpY29uOkguYS5jcmVhdGVFbGVtZW50KHpuLHtzaXplOmV9KSxjb2xvcjpvfHwhMSxjdXN0b21JY29uOiEhcixsYWJlbDp0fSl9LHNtczpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQuc21zLHI9dC5zbXNDb2xvcixvPXQuc21zSWNvbixhPXQuc21zTGFiZWwsbj1mdW5jdGlvbihlLHQpe3N3aXRjaCh0KXtjYXNlImV2ZXJ5d2hlcmUiOnJldHVybiBudWxsO2Nhc2UiZGVza3RvcCI6cmV0dXJuIFUoKT9udWxsOiJzbXM6Ii5jb25jYXQoZSk7Y2FzZSJtb2JpbGUiOnJldHVybiBVKCk/InNtczoiLmNvbmNhdChlKTpudWxsO2Nhc2Uibm93aGVyZSI6cmV0dXJuInNtczoiLmNvbmNhdChlKTtkZWZhdWx0OnJldHVybiBudWxsfX0obix0LnNtc1Nob3dQb3B1cFBsYXRmb3JtKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6InNtcyIsbGluazpuLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoVG4se3NpemU6ZX0pLGNvbG9yOnJ8fCExLGN1c3RvbUljb246ISFvLGxhYmVsOmF9KX0sc25hcGNoYXQ6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LnNuYXBjaGF0LHI9dC5zbmFwY2hhdENvbG9yLG89dC5zbmFwY2hhdEljb24sdD10LnNuYXBjaGF0TGFiZWwscj1yfHwhMSxvPSEhbztyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7bGluazpmdW5jdGlvbihlKXtpZihEKCkpcmV0dXJuImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvIi5jb25jYXQoZSl9KG4pLHNpemU6ZSxuYW1lOiJzbmFwY2hhdCIsaWNvbjpILmEuY3JlYXRlRWxlbWVudChObix7c2l6ZTplfSksY29sb3I6cixjdXN0b21JY29uOm8sbGFiZWw6dH0pfSx0ZWxlZ3JhbTpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQudGVsZWdyYW0scj10LnRlbGVncmFtQ29sb3Isbz10LnRlbGVncmFtSWNvbix0PXQudGVsZWdyYW1MYWJlbCxuPShVKCk/Imh0dHBzOi8vdGVsZWdyYW0ubWUvIjoidGc6Ly9yZXNvbHZlP2RvbWFpbj0iKS5jb25jYXQobik7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse3NpemU6ZSxuYW1lOiJ0ZWxlZ3JhbSIsdGFyZ2V0OiJfYmxhbmsiLGxpbms6bixpY29uOkguYS5jcmVhdGVFbGVtZW50KEZuLHtzaXplOmV9KSxjb2xvcjpyfHwhMSxjdXN0b21JY29uOiEhbyxsYWJlbDp0fSl9LHRpa3RvazpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQudGlrdG9rLHI9dC50aWt0b2tDb2xvcixvPXQudGlrdG9rSWNvbix0PXQudGlrdG9rTGFiZWwsbj0iaHR0cHM6Ly90aWt0b2suY29tL0AiLmNvbmNhdChuKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6InRpa3RvayIsdGFyZ2V0OiJfYmxhbmsiLGxpbms6bixpY29uOkguYS5jcmVhdGVFbGVtZW50KEhuLHtzaXplOmV9KSxjb2xvcjpyfHwhMSxjdXN0b21JY29uOiEhbyxsYWJlbDp0fSl9LGNhbGxiYWNrOmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC5jYWxsYmFja0NvbG9yLHI9dC5jYWxsYmFja0ljb24sdD10LmNhbGxiYWNrTGFiZWw7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse3NpemU6ZSxuYW1lOiJjYWxsYmFjayIsaWNvbjpILmEuY3JlYXRlRWxlbWVudChLbix7c2l6ZTplfSksY29sb3I6bnx8ITEsY3VzdG9tSWNvbjohIXIsbGFiZWw6dH0pfSx0d2l0dGVyOmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC50d2l0dGVyLHI9dC50d2l0dGVyQ29sb3Isbz10LnR3aXR0ZXJJY29uLHQ9dC50d2l0dGVyTGFiZWwsbj0iaHR0cDovL3R3aXR0ZXIuY29tLyIuY29uY2F0KG4pO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChwLHtzaXplOmUsbmFtZToidHdpdHRlciIsdGFyZ2V0OiJfYmxhbmsiLGxpbms6bixpY29uOkguYS5jcmVhdGVFbGVtZW50KFZuLHtzaXplOmV9KSxjb2xvcjpyfHwhMSxjdXN0b21JY29uOiEhbyxsYWJlbDp0fSl9LHZpYmVyOmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC52aWJlcixyPXQudmliZXJDb2xvcixvPXQudmliZXJJY29uLHQ9dC52aWJlckxhYmVsLHI9cnx8ITEsbz0hIW87cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse2xpbms6ZnVuY3Rpb24oZSl7aWYoRCgpJiYvXlswLTkgKCkrLV0rJC8udGVzdChlKSlyZXR1cm4gZT1lLnJlcGxhY2UoL1xEKy9nLCIiKS5yZXBsYWNlKC9eWzBdKy9nLCIiKSwodygpPyJ2aWJlcjovL2NoYXQ/bnVtYmVyPSUyQiI6YSgpPyJ2aWJlcjovL2NoYXQ/bnVtYmVyPSsiOiJ2aWJlcjovL2NoYXQ/bnVtYmVyPSIpLmNvbmNhdChlKX0obiksdGFyZ2V0OiJfYmxhbmsiLHNpemU6ZSxuYW1lOiJ2aWJlciIsaWNvbjpILmEuY3JlYXRlRWxlbWVudCgkbix7c2l6ZTplfSksY29sb3I6cixjdXN0b21JY29uOm8sbGFiZWw6dH0pfSx2a29udGFrdGU6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5zaXplLHQ9T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3Msbj10LnZrb250YWt0ZSxyPXQudmtvbnRha3RlQ29sb3Isbz10LnZrb250YWt0ZUljb24sdD10LnZrb250YWt0ZUxhYmVsLG49Imh0dHBzOi8vdmsubWUvIi5jb25jYXQobik7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse3NpemU6ZSxuYW1lOiJ2a29udGFrdGUiLHRhcmdldDoiX2JsYW5rIixsaW5rOm4saWNvbjpILmEuY3JlYXRlRWxlbWVudCh0cix7c2l6ZTplfSksY29sb3I6cnx8ITEsY3VzdG9tSWNvbjohIW8sbGFiZWw6dH0pfSx3YXplOmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC53YXplLHI9dC53YXplQ29sb3Isbz10LndhemVJY29uLHQ9dC53YXplTGFiZWwsbj0iIi5jb25jYXQobik7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse3NpemU6ZSxuYW1lOiJ3YXplIix0YXJnZXQ6Il9ibGFuayIsbGluazpuLGljb246SC5hLmNyZWF0ZUVsZW1lbnQobnIse3NpemU6ZX0pLGNvbG9yOnJ8fCExLGN1c3RvbUljb246ISFvLGxhYmVsOnR9KX0sd2VjaGF0OmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC53ZWNoYXQscj10LndlY2hhdENvbG9yLG89dC53ZWNoYXRJY29uLGE9dC53ZWNoYXRMYWJlbCxuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQpe2Nhc2UiZXZlcnl3aGVyZSI6cmV0dXJuIG51bGw7Y2FzZSJkZXNrdG9wIjpyZXR1cm4gVSgpP251bGw6Imh0dHA6Ly93ZWl4aW4ucXEuY29tL3IvIi5jb25jYXQoZSk7Y2FzZSJtb2JpbGUiOnJldHVybiBVKCk/Imh0dHA6Ly93ZWl4aW4ucXEuY29tL3IvIi5jb25jYXQoZSk6bnVsbDtjYXNlIm5vd2hlcmUiOnJldHVybiJodHRwOi8vd2VpeGluLnFxLmNvbS9yLyIuY29uY2F0KGUpO2RlZmF1bHQ6cmV0dXJuIG51bGx9fShuLHQud2VjaGF0U2hvd1BvcHVwUGxhdGZvcm0pO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChwLHtzaXplOmUsbmFtZToid2VjaGF0Iix0YXJnZXQ6Il9ibGFuayIsbGluazpuLGljb246SC5hLmNyZWF0ZUVsZW1lbnQocnIse3NpemU6ZX0pLGNvbG9yOnJ8fCExLGN1c3RvbUljb246ISFvLGxhYmVsOmF9KX0sd2hhdHNhcHA6ZnVuY3Rpb24oZSl7dmFyIHQsZT1lLnNpemUsbj1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxyPW4ud2hhdHNhcHAsbz1uLndoYXRzYXBwQ29sb3IsYT1uLndoYXRzYXBwSWNvbixpPW4ud2hhdHNhcHBMYWJlbCxsPW4ucHJlRmlsbGVkTWVzc2FnZSxuPW4ud2hhdHNhcHBTaG93UG9wdXAscj0obD1sLChyPXIpJiZyLnN0YXJ0c1dpdGgoImh0dHBzOi8vY2hhdC53aGF0c2FwcC5jb20vIik/dD1yOihyPXI/ci5tYXRjaCgvXGQrL2cpLmpvaW4oIiIpOm51bGwsdD0iaHR0cHM6Ly93YS5tZS8iLmNvbmNhdChyKSxsJiYodD0iIi5jb25jYXQodCwiP3RleHQ9IikuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudChsKSkpKSx0KTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQocCx7c2l6ZTplLG5hbWU6IndoYXRzYXBwIixsaW5rOm4/bnVsbDpyLHRhcmdldDpuP251bGw6Il9ibGFuayIsaWNvbjpILmEuY3JlYXRlRWxlbWVudChscix7c2l6ZTplfSksY29sb3I6b3x8ITEsY3VzdG9tSWNvbjohIWEsbGFiZWw6aX0pfSx3b25kZXJjaGF0OmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC53b25kZXJjaGF0Q29sb3Iscj10LndvbmRlcmNoYXRJY29uLHQ9dC53b25kZXJjaGF0TGFiZWw7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse3NpemU6ZSxuYW1lOiJ3b25kZXJjaGF0IixsaW5rOm51bGwsaWNvbjpILmEuY3JlYXRlRWxlbWVudChmcix7c2l6ZTplfSksY29sb3I6bnx8ITEsY3VzdG9tSWNvbjohIXIsbGFiZWw6dH0pfSxhaTpmdW5jdGlvbihlKXt2YXIgZT1lLnNpemUsdD1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyxuPXQuYWlDb2xvcixyPXQuYWlJY29uLHQ9dC5haUxhYmVsO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChwLHtzaXplOmUsbmFtZToiYWkiLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoeHIse3NpemU6ZX0pLGNvbG9yOm58fCExLGN1c3RvbUljb246ISFyLGxhYmVsOnR9KX0sa2FrYW90YWxrOmZ1bmN0aW9uKGUpe3ZhciBlPWUuc2l6ZSx0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLG49dC5rYWthb3RhbGsscj10Lmtha2FvdGFsa0NvbG9yLG89dC5rYWthb3RhbGtJY29uLHQ9dC5rYWthb3RhbGtMYWJlbCxuPSJodHRwczovL29wZW4ua2FrYW8uY29tL28vIi5jb25jYXQobik7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KHAse3NpemU6ZSxuYW1lOiJrYWthb3RhbGsiLGxpbms6bix0YXJnZXQ6Il9ibGFuayIsaWNvbjpILmEuY3JlYXRlRWxlbWVudChUcix7c2l6ZTplfSksY29sb3I6cnx8ITEsY3VzdG9tSWNvbjohIW8sbGFiZWw6dH0pfX0sUnI9e2FwcGxlOmZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KEYudXNlQ29udGV4dCkoViksdD1lLnN0YXRlLGU9ZS5zZXR0aW5ncyxuPWUuYXBwbGVDb2xvcixyPWUuYXBwbGVMYWJlbCxvPWUuYXBwbGUsYT1lLmJnU3R5bGUsZT1lLmFjdGl2YXRvclNpemUsaT1IdChPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLGw9aVswXSxjPWlbMV07cmV0dXJuIE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtjKCJhcHBsZSI9PT10LmJ1dHRvblBvcHVwKX0pLEguYS5jcmVhdGVFbGVtZW50KE4se2NvbG9yOm4sbWVzc2VuZ2VyVGl0bGU6cixpY29uOkguYS5jcmVhdGVFbGVtZW50KGp0LG51bGwpLGVuYWJsZVBvcHVwOmwsYmdTdHlsZTphLHNpemU6ZX0sSC5hLmNyZWF0ZUVsZW1lbnQoV3QsbnVsbCxILmEuY3JlYXRlRWxlbWVudCgiYSIse2hyZWY6ImltZXNzYWdlOi8vIi5jb25jYXQobyl9LG8pKSl9LHlvdXR1YmU6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoRi51c2VDb250ZXh0KShWKSx0PWUuc3RhdGUsZT1lLnNldHRpbmdzLG49ZS55b3V0dWJlQ29sb3Iscj1lLnlvdXR1YmVMYWJlbCxvPWUueW91dHViZSxhPWUuYmdTdHlsZSxpPWUuYWN0aXZhdG9yU2l6ZSxlPWUuYnV0dG9uU2hhZG93LG89KG89KG89bykucmVwbGFjZSgvd2F0Y2hcP3Y9LywiZW1iZWQvIikuc3BsaXQoIiYiKVswXSwobD1uZXcgVVJMU2VhcmNoUGFyYW1zKS5hcHBlbmQoImNvbnRyb2xzIiwiMCIpLGwuYXBwZW5kKCJhdXRvcGxheSIsIjEiKSxsLmFwcGVuZCgibG9vcCIsIjEiKSwiIi5jb25jYXQobywiPyIpLmNvbmNhdChsLnRvU3RyaW5nKCkpKSxsPVp0KE9iamVjdChGLnVzZVN0YXRlKSghMSksMiksYz1sWzBdLHU9bFsxXTtPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dSgieW91dHViZSI9PT10LmJ1dHRvblBvcHVwKX0pO3ZhciBsPVp0KE9iamVjdChGLnVzZVN0YXRlKSghMCksMikscz1sWzBdLGY9bFsxXTtyZXR1cm4gT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpeyJ5b3V0dWJlIj09PXQuYnV0dG9uUG9wdXAmJmYoITApfSxbdC5idXR0b25Qb3B1cF0pLEguYS5jcmVhdGVFbGVtZW50KE4se2NvbG9yOm4sbWVzc2VuZ2VyVGl0bGU6cixjdXN0b21TZXR0aW5nczoieW91dHViZSIsaWNvbjpILmEuY3JlYXRlRWxlbWVudCgkdCx7Y3VzdG9tU2V0dGluZ3M6InlvdXR1YmUifSksZW5hYmxlUG9wdXA6YyxiZ1N0eWxlOmEsc2l6ZTppfSxILmEuY3JlYXRlRWxlbWVudChLdCx7aXNMb2FkaW5nOnN9LHMmJkguYS5jcmVhdGVFbGVtZW50KEksbnVsbCksSC5hLmNyZWF0ZUVsZW1lbnQoUXQse29uTG9hZDpmdW5jdGlvbihlKXtmKCExKX0sc3JjOm8saXNMb2FkaW5nOnMsYnV0dG9uU2hhZG93OmUsYWxsb3dGdWxsU2NyZWVuOiEwLGFsbG93OiJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7In0pKSl9LGNhbGw6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoRi51c2VDb250ZXh0KShWKSx0PWUuc3RhdGUsZT1lLnNldHRpbmdzLG49ZS5jYWxsQ29sb3Iscj1lLmNhbGxMYWJlbCxvPWUuY2FsbCxhPWUuY2FsbFFyQ29kZSxpPWUuYmdTdHlsZSxlPWUuYWN0aXZhdG9yU2l6ZSxsPUp0KE9iamVjdChGLnVzZVN0YXRlKSghMSksMiksYz1sWzBdLHU9bFsxXTtPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dSgiY2FsbCI9PT10LmJ1dHRvblBvcHVwKX0pO3ZhciBsPUp0KE9iamVjdChGLnVzZVN0YXRlKSghMCksMikscz1sWzBdLGY9bFsxXSxsPShPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7ImxpbmUiPT09dC5idXR0b25Qb3B1cCYmZighMCl9LFt0LmJ1dHRvblBvcHVwXSksInRlbDoiLmNvbmNhdChvKSksZD0iaHR0cHM6Ly9hcGkucXJzZXJ2ZXIuY29tL3YxL2NyZWF0ZS1xci1jb2RlLz9zaXplPTE1MHgxNTAmbWFyZ2luPTEwJmRhdGE9Ii5jb25jYXQobCk7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KE4se2NvbG9yOm4sbWVzc2VuZ2VyVGl0bGU6cixpY29uOkguYS5jcmVhdGVFbGVtZW50KFl0LG51bGwpLGVuYWJsZVBvcHVwOmMsYmdTdHlsZTppLHNpemU6ZX0sYT9ILmEuY3JlYXRlRWxlbWVudChybix7aXNMb2FkaW5nOnN9LHMmJkguYS5jcmVhdGVFbGVtZW50KEksbnVsbCksSC5hLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOmx9LG8pLEguYS5jcmVhdGVFbGVtZW50KCJpbWciLHtvbkxvYWQ6ZnVuY3Rpb24oZSl7ZighMSl9LGFsdDoiY2FsbCIsc3JjOmQsaGVpZ2h0OiIxNTBweCIsd2lkdGg6IjE1MHB4In0pKTpILmEuY3JlYXRlRWxlbWVudChubixudWxsLEguYS5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjpsfSxvKSkpfSxjb250YWN0Zm9ybTpmdW5jdGlvbigpe3ZhciBlLHQsbj1PYmplY3QoRi51c2VDb250ZXh0KShWKSxyPW4uc3RhdGUsbj1uLnNldHRpbmdzLG89bi5jb250YWN0Zm9ybSxhPW4uY29udGFjdGZvcm1Db2xvcixpPW4uY29udGFjdGZvcm1Qb3B1cFRpdGxlLGw9KG4uY29udGFjdGZvcm1Ib3N0LG4uY29udGFjdGZvcm1Qb3B1cExhbmcpLGM9bi5rZXksYz12b2lkIDA9PT1jP251bGw6Yyx1PW4ubWlycm9yLHM9bi5iZ1N0eWxlLGY9bi5hY3RpdmF0b3JTaXplLGQ9bi5oYXNoSWQsZD12b2lkIDA9PT1kP251bGw6ZCxuPW4uc2NyaXB0SWQsbj12b2lkIDA9PT1uP251bGw6bixwPW9uKE9iamVjdChGLnVzZVN0YXRlKSghMSksMiksbT1wWzBdLGg9cFsxXSxnPShwPW8sbz1sLGw9YyxjPXUsdT1kLGQ9bixuPWxvY2F0aW9uLmhvc3RuYW1lLGc9ImdldGJ1dHRvbi5pbyIsdD0iaHR0cHM6Ly9nZXRidXR0b24uaW8iLGI9bi5zbGljZSgwLC1nLmxlbmd0aCksbi5lbmRzV2l0aChnKSYmWyIiLCIuIl0uaW5jbHVkZXMoYi5jaGFyQXQoYi5sZW5ndGgtMSkpJiYoZT0vXi4rQC4rXC4uKyQvaS50ZXN0KHApP3A6bnVsbCksbj1uZXcgVVJMU2VhcmNoUGFyYW1zLGwmJm4uYXBwZW5kKCJ3aWRnZXRfa2V5IixsKSxlJiZuLmFwcGVuZCgidG8iLGUpLGMmJm4uYXBwZW5kKCJtaXJyb3IiLGMpLG8mJiJlbiIhPT1vJiZuLmFwcGVuZCgibGFuZyIsbyksKHV8fGQpJiZuLmFwcGVuZCgiaGFzaF9pZCIsdXx8ZCksdCsiL2NvbnRhY3QtYnV0dG9uPyIrbi50b1N0cmluZygpKTtPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aCgiY29udGFjdGZvcm0iPT09ci5idXR0b25Qb3B1cCl9KTt2YXIgYj1vbihPYmplY3QoRi51c2VTdGF0ZSkoITApLDIpLHA9YlswXSx5PWJbMV07cmV0dXJuIE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsibGluZSI9PT1yLmJ1dHRvblBvcHVwJiZ5KCEwKX0sW3IuYnV0dG9uUG9wdXBdKSxILmEuY3JlYXRlRWxlbWVudChOLHtjb2xvcjphLG1lc3NlbmdlclRpdGxlOmksaWNvbjpILmEuY3JlYXRlRWxlbWVudCh0bixudWxsKSxlbmFibGVQb3B1cDptLGJnU3R5bGU6cyxzaXplOmZ9LEguYS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwscCYmSC5hLmNyZWF0ZUVsZW1lbnQoSSxudWxsKSxILmEuY3JlYXRlRWxlbWVudChmbix7b25Mb2FkOmZ1bmN0aW9uKGUpe3koITEpfSxzcmM6Zyxpc0xvYWRpbmc6cH0pKSl9LHNtczpmdW5jdGlvbigpe3ZhciBlPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLHQ9ZS5zdGF0ZSxlPWUuc2V0dGluZ3Msbj1lLnNtcyxyPWUuc21zQ29sb3Isbz1lLnNtc0xhYmVsLGE9ZS5iZ1N0eWxlLGU9ZS5hY3RpdmF0b3JTaXplLGk9TW4oT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSxsPWlbMF0sYz1pWzFdO3JldHVybiBPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7Yygic21zIj09PXQuYnV0dG9uUG9wdXApfSksSC5hLmNyZWF0ZUVsZW1lbnQoTix7Y29sb3I6cixtZXNzZW5nZXJUaXRsZTpvLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoVG4sbnVsbCksZW5hYmxlUG9wdXA6bCxiZ1N0eWxlOmEsc2l6ZTplfSxILmEuY3JlYXRlRWxlbWVudChEbixudWxsLEguYS5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjoic21zOiIuY29uY2F0KG4pfSxuKSkpfSxnb29nbGVtYXA6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoRi51c2VDb250ZXh0KShWKSx0PWUuc3RhdGUsZT1lLnNldHRpbmdzLG49KGUuZ29vZ2xlbWFwQ29sb3IsZS5nb29nbGVtYXBMYWJlbCkscj1lLmdvb2dsZW1hcCxvPWUuYmdTdHlsZSxhPWUuYWN0aXZhdG9yU2l6ZSxlPWUuZ29vZ2xlbWFwQ3VzdG9tTWVzc2FnZSxyPSJodHRwczovL2dldGJ1dHRvbi5pby8/Y29udHJvbGxlcj1NYXBCdXR0b24mYWN0aW9uPWluZGV4Jmxpbms9Ii5jb25jYXQociksaT1rbihPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLGw9aVswXSxjPWlbMV07T2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe2MoImdvb2dsZW1hcCI9PT10LmJ1dHRvblBvcHVwKX0pO3ZhciBpPWtuKE9iamVjdChGLnVzZVN0YXRlKSghMCksMiksdT1pWzBdLHM9aVsxXTtyZXR1cm4gT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpeyJnb29nbGVtYXAiPT09dC5idXR0b25Qb3B1cCYmcyghMCl9LFt0LmJ1dHRvblBvcHVwXSksSC5hLmNyZWF0ZUVsZW1lbnQoTix7Y29sb3I6IiM5MzkzOTMiLG1lc3NlbmdlclRpdGxlOm4saWNvbjpILmEuY3JlYXRlRWxlbWVudCh2bixudWxsKSxjdXN0b21TZXR0aW5nczoiZ29vZ2xlbWFwIixlbmFibGVQb3B1cDpsLGJnU3R5bGU6byxzaXplOmF9LEguYS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsdSYmSC5hLmNyZWF0ZUVsZW1lbnQoSSxudWxsKSxILmEuY3JlYXRlRWxlbWVudChPbix7b25Mb2FkOmZ1bmN0aW9uKGUpe3MoITEpfSxzcmM6cixpc0xvYWRpbmc6dSxsb2FkaW5nOiJsYXp5Iixnb29nbGVtYXBDdXN0b21NZXNzYWdlOmV9KSxlJiZILmEuY3JlYXRlRWxlbWVudCgicCIse3N0eWxlOnttYXJnaW46IjdweCAwcHgiLGxpbmVIZWlnaHQ6IjIzcHgifX0sZSkpKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZSx0LG4scj1PYmplY3QoRi51c2VDb250ZXh0KShWKSxvPXIuc3RhdGUscj1yLnNldHRpbmdzLGE9ci5jYWxsYmFjayxpPXIuY2FsbGJhY2tDb2xvcixsPXIuY2FsbGJhY2tMYWJlbCxjPShyLmNhbGxiYWNrSG9zdCxyLmNhbGxiYWNrQ3VzdG9tTWVzc2FnZSksdT1yLmNhbGxiYWNrTmFtZVBsYWNlaG9sZGVyLHM9ci5jYWxsYmFja1Bob25lUGxhY2Vob2xkZXIsZj1yLmNhbGxiYWNrU2VuZEJ1dHRvblRleHQsZD1yLmtleSxkPXZvaWQgMD09PWQ/bnVsbDpkLHA9ci5taXJyb3IsbT1yLmJnU3R5bGUsaD1yLmFjdGl2YXRvclNpemUsZz1yLmhhc2hJZCxnPXZvaWQgMD09PWc/bnVsbDpnLHI9ci5zY3JpcHRJZCxyPXZvaWQgMD09PXI/bnVsbDpyLGI9Sm4oT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSx5PWJbMF0sdj1iWzFdLHc9KGI9YSxhPWksYz1jLHU9dSxzPXMsZj1mLGQ9ZCxwPXAsZz1nLHI9cix0PWxvY2F0aW9uLmhvc3RuYW1lLHc9ImdldGJ1dHRvbi5pbyIsbj0iaHR0cHM6Ly9nZXRidXR0b24uaW8iLGR8fCh4PXQuc2xpY2UoMCwtdy5sZW5ndGgpLHQuZW5kc1dpdGgodykmJlsiIiwiLiJdLmluY2x1ZGVzKHguY2hhckF0KHgubGVuZ3RoLTEpKSYmKGU9L14uK0AuK1wuLiskL2kudGVzdChiKT9iOm51bGwpKSx0PW5ldyBVUkxTZWFyY2hQYXJhbXMsZCYmdC5hcHBlbmQoIndpZGdldF9rZXkiLGQpLGUmJnQuYXBwZW5kKCJ0byIsZSkscCYmdC5hcHBlbmQoIm1pcnJvciIscCksYSYmdC5hcHBlbmQoImNvbG9yIixhLnNsaWNlKDEpKSxjJiZ0LmFwcGVuZCgiY3VzdG9tX21lc3NhZ2UiLGMpLHUmJnQuYXBwZW5kKCJuYW1lX3BsYWNlaG9sZGVyIix1KSxzJiZ0LmFwcGVuZCgicGhvbmVfcGxhY2Vob2xkZXIiLHMpLGYmJnQuYXBwZW5kKCJzZW5kX3RleHQiLGYpLChnfHxyKSYmdC5hcHBlbmQoImhhc2hfaWQiLGd8fHIpLG4rIi9jYWxsYmFjay1idXR0b24/Iit0LnRvU3RyaW5nKCkpO09iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2KCJjYWxsYmFjayI9PT1vLmJ1dHRvblBvcHVwKX0pO3ZhciB4PUpuKE9iamVjdChGLnVzZVN0YXRlKSghMCksMiksYj14WzBdLGs9eFsxXTtyZXR1cm4gT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpeyJjYWxsYmFjayI9PT1vLmJ1dHRvblBvcHVwJiZrKCEwKX0sW28uYnV0dG9uUG9wdXBdKSxILmEuY3JlYXRlRWxlbWVudChOLHtjb2xvcjppLG1lc3NlbmdlclRpdGxlOmwsaWNvbjpILmEuY3JlYXRlRWxlbWVudChLbixudWxsKSxlbmFibGVQb3B1cDp5LGJnU3R5bGU6bSxzaXplOmh9LEguYS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsYiYmSC5hLmNyZWF0ZUVsZW1lbnQoSSxudWxsKSxILmEuY3JlYXRlRWxlbWVudChvcix7b25Mb2FkOmZ1bmN0aW9uKGUpe2soITEpfSxzcmM6dyxpc0xvYWRpbmc6Yn0pKSl9LGZhY2Vib29rOmZ1bmN0aW9uKCl7cmV0dXJuIHhuKCk/SC5hLmNyZWF0ZUVsZW1lbnQoeW4sbnVsbCk6SC5hLmNyZWF0ZUVsZW1lbnQoSC5hLkZyYWdtZW50LG51bGwpfSxjYWxlbmRhcjpmdW5jdGlvbigpe3ZhciBlLHQsbixyPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLG89ci5zdGF0ZSxyPXIuc2V0dGluZ3MsYT1yLmNhbGVuZGFyLGk9ci5jYWxlbmRhckNvbG9yLGw9ci5jYWxlbmRhckxhYmVsLGM9KHIuY2FsZW5kYXJIb3N0LHIuY2FsZW5kYXJDdXN0b21NZXNzYWdlKSx1PXIuY2FsZW5kYXJOYW1lUGxhY2Vob2xkZXIscz1yLmNhbGVuZGFyUGhvbmVQbGFjZWhvbGRlcixmPXIuY2FsZW5kYXJFbWFpbFBsYWNlaG9sZGVyLGQ9ci5jYWxlbmRhck1lc3NhZ2VQbGFjZWhvbGRlcixwPXIuY2FsZW5kYXJTZW5kQnV0dG9uVGV4dCxtPXIua2V5LG09dm9pZCAwPT09bT9udWxsOm0saD1yLm1pcnJvcixnPXIuYmdTdHlsZSxiPXIuYWN0aXZhdG9yU2l6ZSx5PXIuaGFzaElkLHk9dm9pZCAwPT09eT9udWxsOnkscj1yLnNjcmlwdElkLHI9dm9pZCAwPT09cj9udWxsOnIsdj1kbihPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLHc9dlswXSx4PXZbMV0saz0odj1hLGE9aSxjPWMsdT11LHM9cyxmPWYsZD1kLHA9cCxtPW0saD1oLHk9eSxyPXIsdD1sb2NhdGlvbi5ob3N0bmFtZSxrPSJnZXRidXR0b24uaW8iLG49Imh0dHBzOi8vZ2V0YnV0dG9uLmlvIixtfHwoUz10LnNsaWNlKDAsLWsubGVuZ3RoKSx0LmVuZHNXaXRoKGspJiZbIiIsIi4iXS5pbmNsdWRlcyhTLmNoYXJBdChTLmxlbmd0aC0xKSkmJihlPS9eLitALitcLi4rJC9pLnRlc3Qodik/djpudWxsKSksdD1uZXcgVVJMU2VhcmNoUGFyYW1zLG0mJnQuYXBwZW5kKCJ3aWRnZXRfa2V5IixtKSxlJiZ0LmFwcGVuZCgidG8iLGUpLGgmJnQuYXBwZW5kKCJtaXJyb3IiLGgpLGEmJnQuYXBwZW5kKCJjb2xvciIsYS5zbGljZSgxKSksYyYmdC5hcHBlbmQoImN1c3RvbV9tZXNzYWdlIixjKSx1JiZ0LmFwcGVuZCgibmFtZV9wbGFjZWhvbGRlciIsdSkscyYmdC5hcHBlbmQoInBob25lX3BsYWNlaG9sZGVyIixzKSxmJiZ0LmFwcGVuZCgiZW1haWxfcGxhY2Vob2xkZXIiLGYpLGQmJnQuYXBwZW5kKCJtZXNzYWdlX3BsYWNlaG9sZGVyIixkKSxwJiZ0LmFwcGVuZCgic2VuZF90ZXh0IixwKSwoeXx8cikmJnQuYXBwZW5kKCJoYXNoX2lkIix5fHxyKSxuKyIvY2FsZW5kYXItYnV0dG9uPyIrdC50b1N0cmluZygpKTtPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7eCgiY2FsZW5kYXIiPT09by5idXR0b25Qb3B1cCl9KTt2YXIgUz1kbihPYmplY3QoRi51c2VTdGF0ZSkoITApLDIpLHY9U1swXSxDPVNbMV07cmV0dXJuIE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsiY2FsZW5kYXIiPT09by5idXR0b25Qb3B1cCYmQyghMCl9LFtvLmJ1dHRvblBvcHVwXSksSC5hLmNyZWF0ZUVsZW1lbnQoTix7Y29sb3I6aSxtZXNzZW5nZXJUaXRsZTpsLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoc24sbnVsbCksY3VzdG9tU2V0dGluZ3M6ImNhbGVuZGFyIixlbmFibGVQb3B1cDp3LGJnU3R5bGU6ZyxzaXplOmJ9LEguYS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsdiYmSC5hLmNyZWF0ZUVsZW1lbnQoSSxudWxsKSxILmEuY3JlYXRlRWxlbWVudChtbix7b25Mb2FkOmZ1bmN0aW9uKGUpe0MoITEpfSxzcmM6ayxpc0xvYWRpbmc6dn0pKSl9LGxpbmU6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoRi51c2VDb250ZXh0KShWKSx0PWUuc3RhdGUsZT1lLnNldHRpbmdzLG49ZS5saW5lLHI9ZS5saW5lQ29sb3Isbz1lLmxpbmVMYWJlbCxhPWUuYmdTdHlsZSxlPWUuYWN0aXZhdG9yU2l6ZSxpPWpuKE9iamVjdChGLnVzZVN0YXRlKSghMSksMiksbD1pWzBdLGM9aVsxXTtPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7YygibGluZSI9PT10LmJ1dHRvblBvcHVwKX0pO3ZhciBpPWpuKE9iamVjdChGLnVzZVN0YXRlKSghMCksMiksdT1pWzBdLHM9aVsxXSxuPShPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7ImxpbmUiPT09dC5idXR0b25Qb3B1cCYmcyghMCl9LFt0LmJ1dHRvblBvcHVwXSksLTEhPT0obj0oaT1uKS5pbmRleE9mKCJAIikpPyhuPWkuc2xpY2UobiksImh0dHBzOi8vbGluZS5tZS90aS9wL34iLmNvbmNhdChuKSk6aSksaT0iaHR0cHM6Ly9hcGkucXJzZXJ2ZXIuY29tL3YxL2NyZWF0ZS1xci1jb2RlLz9zaXplPTI1MHgyNTAmbWFyZ2luPTEwJmRhdGE9Ii5jb25jYXQobik7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KE4se2NvbG9yOnIsbWVzc2VuZ2VyVGl0bGU6byxpY29uOkguYS5jcmVhdGVFbGVtZW50KEVuLG51bGwpLGVuYWJsZVBvcHVwOmwsYmdTdHlsZTphLHNpemU6ZX0sSC5hLmNyZWF0ZUVsZW1lbnQoTG4sbnVsbCx1JiZILmEuY3JlYXRlRWxlbWVudChJLG51bGwpLEguYS5jcmVhdGVFbGVtZW50KCJpbWciLHtvbkxvYWQ6ZnVuY3Rpb24oZSl7cyghMSl9LGFsdDoiV2VjaGF0IixzcmM6aSxoZWlnaHQ6IjI1MHB4Iix3aWR0aDoiMjUwcHgifSksSC5hLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOiIiLmNvbmNhdChuKSx0YXJnZXQ6Il9ibGFuayJ9LG4pKSl9LHNuYXBjaGF0OmZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KEYudXNlQ29udGV4dCkoViksdD1lLnN0YXRlLGU9ZS5zZXR0aW5ncyxuPWUuc25hcGNoYXQscj1lLnNuYXBjaGF0Q29sb3Isbz1lLnNuYXBjaGF0TGFiZWwsYT1lLmJnU3R5bGUsZT1lLmFjdGl2YXRvclNpemUsaT1VbihPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLGw9aVswXSxjPWlbMV07T2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe2MoInNuYXBjaGF0Ij09PXQuYnV0dG9uUG9wdXApfSk7dmFyIGk9VW4oT2JqZWN0KEYudXNlU3RhdGUpKCEwKSwyKSx1PWlbMF0scz1pWzFdLGk9KE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsic25hcGNoYXQiPT09dC5idXR0b25Qb3B1cCYmcyghMCl9LFt0LmJ1dHRvblBvcHVwXSksImh0dHBzOi8vZmVlbGluc29uaWNlLWhyZC5hcHBzcG90LmNvbS93ZWIvZGVlcGxpbmsvc25hcGNvZGU/dXNlcm5hbWU9Ii5jb25jYXQobiwiJnR5cGU9UE5HIikpO3JldHVybiBILmEuY3JlYXRlRWxlbWVudChOLHtjb2xvcjpyLG1lc3NlbmdlclRpdGxlOm8saWNvbjpILmEuY3JlYXRlRWxlbWVudChObixudWxsKSxlbmFibGVQb3B1cDpsLGJnU3R5bGU6YSxzaXplOmV9LEguYS5jcmVhdGVFbGVtZW50KEduLG51bGwsdSYmSC5hLmNyZWF0ZUVsZW1lbnQoSSxudWxsKSxILmEuY3JlYXRlRWxlbWVudChxbix7b25Mb2FkOmZ1bmN0aW9uKGUpe3MoITEpfSxhbHQ6IlNuYXBjaGF0IixzcmM6aSxoZWlnaHQ6IjIwMHB4Iix3aWR0aDoiMjAwcHgifSksSC5hLmNyZWF0ZUVsZW1lbnQoV24sbnVsbCxuKSkpfSx2aWJlcjpmdW5jdGlvbigpe3ZhciBlPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLHQ9ZS5zdGF0ZSxlPWUuc2V0dGluZ3Msbj1lLnZpYmVyLHI9ZS52aWJlckNvbG9yLG89ZS52aWJlckxhYmVsLGE9ZS5iZ1N0eWxlLGU9ZS5hY3RpdmF0b3JTaXplLGk9Wm4oT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSxsPWlbMF0sYz1pWzFdO09iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtjKCJ2aWJlciI9PT10LmJ1dHRvblBvcHVwKX0pO3ZhciBpPVpuKE9iamVjdChGLnVzZVN0YXRlKSghMCksMiksdT1pWzBdLHM9aVsxXSxmPShPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7InZpYmVyIj09PXQuYnV0dG9uUG9wdXAmJnMoITApfSxbdC5idXR0b25Qb3B1cF0pLC9eWzAtOSAoKSstXSskLy50ZXN0KGk9bik/KGY9aS5yZXBsYWNlKC9cRCsvZywiIikucmVwbGFjZSgvXlswXSsvZywiIikse3FyOiJ2aWJlcjovL2FkZD9udW1iZXI9Ii5jb25jYXQoZiksbGluazoidmliZXI6Ly9jaGF0P251bWJlcj0iLmNvbmNhdChmKX0pOntxcjoidmliZXI6Ly9hZGQ/bnVtYmVyPSIuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudChpKSksbGluazoidmliZXI6Ly9wYT9jaGF0VVJJPSIuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudChpKSl9KSxpPWYubGluayxkPSJodHRwczovL2FwaS5xcnNlcnZlci5jb20vdjEvY3JlYXRlLXFyLWNvZGUvP3NpemU9MjUweDI1MCZtYXJnaW49MTAmZGF0YT0iLmNvbmNhdChmLnFyKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQoTix7Y29sb3I6cixtZXNzZW5nZXJUaXRsZTpvLGljb246SC5hLmNyZWF0ZUVsZW1lbnQoJG4sbnVsbCksZW5hYmxlUG9wdXA6bCxiZ1N0eWxlOmEsc2l6ZTplfSxILmEuY3JlYXRlRWxlbWVudChRbixudWxsLHUmJkguYS5jcmVhdGVFbGVtZW50KEksbnVsbCksSC5hLmNyZWF0ZUVsZW1lbnQoImltZyIse29uTG9hZDpmdW5jdGlvbihlKXtzKCExKX0sYWx0OiJWaWJlciIsc3JjOmQsaGVpZ2h0OiIyNTBweCIsd2lkdGg6IjI1MHB4In0pLEguYS5jcmVhdGVFbGVtZW50KFluLG51bGwsSC5hLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOmksdGFyZ2V0OiJfYmxhbmsifSxuLEguYS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksSC5hLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIihPcGVuIGluIFZpYmVyIGZvciBEZXNrdG9wKSIpKSkpKX0sd2hhdHNhcHA6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoRi51c2VDb250ZXh0KShWKSx0PWUuc3RhdGUsZT1lLnNldHRpbmdzLG49ZS53aGF0c2FwcEFnZW50SW1hZ2UxLHI9ZS53aGF0c2FwcEFnZW50SW1hZ2UyLG89ZS53aGF0c2FwcEFnZW50SW1hZ2UzLGE9ZS53aGF0c2FwcEFnZW50SW1hZ2U0LGk9ZS53aGF0c2FwcEFnZW50SW1hZ2U1LGw9ZS53aGF0c2FwcEFnZW50TmFtZTEsYz1lLndoYXRzYXBwQWdlbnROYW1lMix1PWUud2hhdHNhcHBBZ2VudE5hbWUzLHM9ZS53aGF0c2FwcEFnZW50TmFtZTQsZj1lLndoYXRzYXBwQWdlbnROYW1lNSxkPWUud2hhdHNhcHBBZ2VudFBvc2l0aW9uMSxwPWUud2hhdHNhcHBBZ2VudFBvc2l0aW9uMixtPWUud2hhdHNhcHBBZ2VudFBvc2l0aW9uMyxoPWUud2hhdHNhcHBBZ2VudFBvc2l0aW9uNCxnPWUud2hhdHNhcHBBZ2VudFBvc2l0aW9uNSxiPWUud2hhdHNhcHAseT1lLndoYXRzYXBwQWdlbnROdW1iZXIyLHY9ZS53aGF0c2FwcEFnZW50TnVtYmVyMyx3PWUud2hhdHNhcHBBZ2VudE51bWJlcjQseD1lLndoYXRzYXBwQWdlbnROdW1iZXI1LGs9ZS5wcmVGaWxsZWRNZXNzYWdlLFM9ZS53aGF0c2FwcFByZUZpbGxlZE1lc3NhZ2UyLEM9ZS53aGF0c2FwcFByZUZpbGxlZE1lc3NhZ2UzLEU9ZS53aGF0c2FwcFByZUZpbGxlZE1lc3NhZ2U0LE89ZS53aGF0c2FwcFByZUZpbGxlZE1lc3NhZ2U1LGo9ZS5idXR0b25Cb3JkZXJSYWRpdXMsQT1lLndoYXRzYXBwQ29sb3IsUD1lLmJnU3R5bGUsST1lLmFjdGl2YXRvclNpemUsXz1lLm1pcnJvcix6PWUuYm9yZGVyLGU9ZS53aGF0c2FwcExhYmVsLFQ9dXIoT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSxMPVRbMF0sTT1UWzFdLFI9KE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtNKCJ3aGF0c2FwcCI9PT10LmJ1dHRvblBvcHVwKX0pLCQoaikpLFQ9T2JqZWN0KEYudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm5be3Bob3RvOm4sbmFtZTpsLHBvc2l0aW9uOmQsbnVtYmVyOmIsbWVzc2FnZTprfSx7cGhvdG86cixuYW1lOmMscG9zaXRpb246cCxudW1iZXI6eSxtZXNzYWdlOlN9LHtwaG90bzpvLG5hbWU6dSxwb3NpdGlvbjptLG51bWJlcjp2LG1lc3NhZ2U6Q30se3Bob3RvOmEsbmFtZTpzLHBvc2l0aW9uOmgsbnVtYmVyOncsbWVzc2FnZTpFfSx7cGhvdG86aSxuYW1lOmYscG9zaXRpb246ZyxudW1iZXI6eCxtZXNzYWdlOk99XX0sW24scixvLGEsaSxsLGMsdSxzLGYsZCxwLG0saCxnLGIseSx2LHcseCxrLFMsQyxFLE9dKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQoTix7Y29sb3I6QSxtZXNzZW5nZXJUaXRsZTplLGljb246SC5hLmNyZWF0ZUVsZW1lbnQobHIse2lzSXRlbUljb246IndhX2hlYWRlcl9pY29uIn0pLGVuYWJsZVBvcHVwOkwsY3VzdG9tU2V0dGluZ3M6IndoYXRzYXBwIixiZ1N0eWxlOlAsc2l6ZTpJfSxILmEuY3JlYXRlRWxlbWVudChkcixudWxsLFQubWFwKGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPWUucGhvdG8sYT1lLm5hbWUsaT1lLnBvc2l0aW9uLGw9ZS5udW1iZXIsZT1lLm1lc3NhZ2UsYz0oZT1lLChuPWwpJiZuLnN0YXJ0c1dpdGgoImh0dHBzOi8vY2hhdC53aGF0c2FwcC5jb20vIik/cj1uOihjPW4/bi5tYXRjaCgvXGQrL2cpLmpvaW4oIiIpOm51bGwscj0iaHR0cHM6Ly93YS5tZS8iLmNvbmNhdChjKSxudWxsIT09biYmZSYmKHI9IiIuY29uY2F0KHIsIj90ZXh0PSIpLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQoZSkpKSkscik7cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTp0LHN0eWxlOntkaXNwbGF5OiFsJiYibm9uZSJ9fSxILmEuY3JlYXRlRWxlbWVudChwcix7aHJlZjpjLHRhcmdldDoiX2JsYW5rIixyZWw6Im5vcmVmZXJyZXIiLGNvbG9yOkF9LEguYS5jcmVhdGVFbGVtZW50KGdyLG51bGwsSC5hLmNyZWF0ZUVsZW1lbnQoaHIse2luZGljYXRvclBvc2l0aW9uOlIsbWlycm9yOl99LEguYS5jcmVhdGVFbGVtZW50KG1yLHtzcmM6b3x8bnVsbCxidXR0b25Cb3JkZXJSYWRpdXM6aixib3JkZXI6en0pKSxILmEuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEguYS5jcmVhdGVFbGVtZW50KGJyLHttaXJyb3I6X30sYSksSC5hLmNyZWF0ZUVsZW1lbnQoeXIse21pcnJvcjpffSxpKSkpLEguYS5jcmVhdGVFbGVtZW50KGxyLHtpc0l0ZW1JY29uOiEwLGNvbG9yOkF9KSkpfSkpKX0sd2VjaGF0OmZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0KEYudXNlQ29udGV4dCkoViksdD1lLnN0YXRlLGU9ZS5zZXR0aW5ncyxuPWUud2VjaGF0LHI9ZS53ZWNoYXRDb2xvcixvPWUud2VjaGF0TGFiZWwsYT1lLmJnU3R5bGUsZT1lLmFjdGl2YXRvclNpemUsaT1hcihPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLGw9aVswXSxjPWlbMV07T2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe2MoIndlY2hhdCI9PT10LmJ1dHRvblBvcHVwKX0pO3ZhciBpPWFyKE9iamVjdChGLnVzZVN0YXRlKSghMCksMiksdT1pWzBdLHM9aVsxXSxpPShPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7IndlY2hhdCI9PT10LmJ1dHRvblBvcHVwJiZzKCEwKX0sW3QuYnV0dG9uUG9wdXBdKSwiaHR0cDovL3dlaXhpbi5xcS5jb20vci8iLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQobikpKSxpPSJodHRwczovL2FwaS5xcnNlcnZlci5jb20vdjEvY3JlYXRlLXFyLWNvZGUvP3NpemU9MjUweDI1MCZtYXJnaW49MTAmZGF0YT0iLmNvbmNhdChpKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQoTix7Y29sb3I6cixtZXNzZW5nZXJUaXRsZTpvLGljb246SC5hLmNyZWF0ZUVsZW1lbnQocnIsbnVsbCksZW5hYmxlUG9wdXA6bCxiZ1N0eWxlOmEsc2l6ZTplfSxILmEuY3JlYXRlRWxlbWVudChjcixudWxsLHUmJkguYS5jcmVhdGVFbGVtZW50KEksbnVsbCksSC5hLmNyZWF0ZUVsZW1lbnQoImltZyIse29uTG9hZDpmdW5jdGlvbihlKXtzKCExKX0sYWx0OiJXZWNoYXQiLHNyYzppLGhlaWdodDoiMjUwcHgiLHdpZHRoOiIyNTBweCJ9KSxILmEuY3JlYXRlRWxlbWVudCgiYSIse2hyZWY6Imh0dHA6Ly93ZWl4aW4ucXEuY29tL3IvIi5jb25jYXQobiksdGFyZ2V0OiJfYmxhbmsifSwiaHR0cDovL3dlaXhpbi5xcS5jb20vci8iLmNvbmNhdChuKSkpKX0sd29uZGVyY2hhdDpmdW5jdGlvbigpe3ZhciBlPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLHQ9ZS5zdGF0ZSxlPWUuc2V0dGluZ3Msbj1lLndvbmRlcmNoYXQscj1lLndvbmRlcmNoYXRDb2xvcixvPWUud29uZGVyY2hhdExhYmVsLGE9ZS5iZ1N0eWxlLGk9ZS5hY3RpdmF0b3JTaXplLGU9ZS5rZXksbD12cihPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLGM9bFswXSx1PWxbMV0sbj0obD1uLG49ZSxlPW5ldyBVUkxTZWFyY2hQYXJhbXMsbiYmZS5hcHBlbmQoImdldGJ1dHRvbl9mYWxsYmFjayIsbiksRCgpJiZlLmFwcGVuZCgiaGVhZGVySGlkZGVuIiwhMCksImh0dHBzOi8vYXBwLndvbmRlcmNoYXQuaW8vY2hhdGJvdCIrIi8iLmNvbmNhdChsLCI/IikrZS50b1N0cmluZygpKTtPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dSgid29uZGVyY2hhdCI9PT10LmJ1dHRvblBvcHVwKX0pO3ZhciBsPXZyKE9iamVjdChGLnVzZVN0YXRlKSghMCksMiksZT1sWzBdLHM9bFsxXTtyZXR1cm4gT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpeyJ3b25kZXJjaGF0Ij09PXQuYnV0dG9uUG9wdXAmJnMoITApfSxbdC5idXR0b25Qb3B1cF0pLEguYS5jcmVhdGVFbGVtZW50KE4se2NvbG9yOnIsbWVzc2VuZ2VyVGl0bGU6byxpY29uOkguYS5jcmVhdGVFbGVtZW50KGZyLG51bGwpLGVuYWJsZVBvcHVwOmMsYmdTdHlsZTphLHNpemU6aSxjdXN0b21TZXR0aW5nczoid29uZGVyY2hhdCJ9LEguYS5jcmVhdGVFbGVtZW50KEguYS5GcmFnbWVudCxudWxsLGUmJkguYS5jcmVhdGVFbGVtZW50KEksbnVsbCksSC5hLmNyZWF0ZUVsZW1lbnQoa3Ise29uTG9hZDpmdW5jdGlvbihlKXtzKCExKX0sc3JjOm4saXNMb2FkaW5nOmV9KSkpfSxhaTpmdW5jdGlvbigpe3ZhciB0LHIsZSxuPV9yKE9iamVjdChGLnVzZVN0YXRlKSghMSksMiksbz1uWzBdLGE9blsxXSxuPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLGk9bi5zdGF0ZSxsPW4uYWN0aW9ucyxuPW4uc2V0dGluZ3MsYz1uLmFpLHU9bi5haUNvbG9yLHM9bi5haUljb24sZj0obi5haVBvcHVwVGl0bGUsbi5iZ1N0eWxlLG4uYWlQb3B1cExhbmcsbi5rZXksbi5taXJyb3IpLGQ9bi5haUF1dG9vcGVuLHA9bi5wb3NpdGlvbixtPW4uYWN0aXZhdG9yU2l6ZSxoPW4uc2hpZnRWZXJ0aWNhbCxnPW4uc2hpZnRIb3Jpem9udGFsLG49KE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXthKCJhaSI9PT1pLmJ1dHRvblBvcHVwKX0pLE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtzJiYoKG5ldyBJbWFnZSkuc3JjPXMpfSxbXSksbj17Y2xvc2VQb3B1cDpsLmNsb3NlQnV0dG9uUG9wdXB9LHQ9bi5jbG9zZVBvcHVwLG49U3IoT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSxsPW5bMF0scj1uWzFdLE9iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgZSx0PSJnYi1haS1zY3JpcHQiLG49ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtaWQ9Ii5jb25jYXQodCwiXSIpKTtuPyJsb2FkZWQiPT09bi5nZXRBdHRyaWJ1dGUoImRhdGEtc3RhdHVzIik/cighMCk6KG4ub25sb2FkPWZ1bmN0aW9uKCl7cighMCksbi5zZXRBdHRyaWJ1dGUoImRhdGEtc3RhdHVzIiwibG9hZGVkIil9LG4ub25lcnJvcj1mdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIEFJIHNjcmlwdCIsZSl9KToobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSwwPD0oZT1PcigpKS5pbmRleE9mKCJsb2NhbGhvc3QiKSYmKG4udHlwZT0ibW9kdWxlIiksbi5zcmM9ZSxuLmRlZmVyPSEwLG4uc2V0QXR0cmlidXRlKCJkYXRhLWlkIix0KSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1zdGF0dXMiLCJsb2FkaW5nIiksbi5vbmxvYWQ9ZnVuY3Rpb24oKXtyKCEwKSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1zdGF0dXMiLCJsb2FkZWQiKX0sbi5vbmVycm9yPWZ1bmN0aW9uKGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgQUkgc2NyaXB0IixlKX0sZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSl9LFtyXSksZT1PYmplY3QoRi51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7ZT1lLmRldGFpbDtjb25zb2xlLmxvZygiR0IgcmVjZWl2ZWQgZXZlbnQ6IixlKSxlP2UuaWQhPT1Fcj9jb25zb2xlLmxvZygiR0Igc2tpcCBldmVudCwgaWQ6IixlLmlkKTp2b2lkIDAhPT1lLmlzX3Nob3dfcG9wdXAmJnQoZS5pc19zaG93X3BvcHVwKTpjb25zb2xlLmVycm9yKCJldmVudE1hbmFnZXI6IGV2ZW50LmRldGFpbCBub3QgZm91bmQhIil9LFt0XSksT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiR2V0YnV0dG9uVXBkYXRlU3RhdGUiLGUpLGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJHZXRidXR0b25VcGRhdGVTdGF0ZSIsZSl9fSxbZSx0XSkse2lzU2NyaXB0TG9hZGVkOmwsaW5pdFBvcHVwOmpyLGFwcGx5U2V0dGluZ3NQb3B1cDpJcixvcGVuUG9wdXA6QXIsY2xvc2VQb3B1cDpmdW5jdGlvbigpe3QoKSxQcigpfX0pLGI9bi5pc1NjcmlwdExvYWRlZCx5PW4ub3BlblBvcHVwLHY9bi5jbG9zZVBvcHVwLHc9bi5hcHBseVNldHRpbmdzUG9wdXAseD1uLmluaXRQb3B1cDtPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7YiYmdyh7Y29sb3JfaGVhZGVyOnV9KX0sW3VdKTt2YXIgbD1fcihPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLGs9bFswXSxTPWxbMV07T2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBlO28/az95KCk6a3x8KGI/KGU9e2JvdF9pZDpjLGJvdF9sb2dvOnN8fG51bGwsY29sb3JfaGVhZGVyOnUsaXNfc2hvd19wb3B1cDpkfHxvLGlzX3Nob3dfYWN0aXZhdG9yOiExLGFjdGl2YXRvcl9zaXplOm0sYWN0aXZhdG9yX29mZnNldF94OmcsYWN0aXZhdG9yX29mZnNldF95OmgsYWN0aXZhdG9yX3Bvc2l0aW9uOnAsaXNfbWlycm9yOmZ9LGNvbnNvbGUubG9nKCJhaSBzY3JpcHQgbG9hZGluZy4uLiIsd2luZG93LkdCQUksZSkseChlKSxTKCEwKSk6Y29uc29sZS5lcnJvcigiUG9wdXAgQUkgbm90IGluaXRpYWxpemVkIikpOihifHxkKSYmdigpfSxbb10pfX0sTnI9ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncy5vcmRlcjtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT8oZT1lWzBdLEguYS5jcmVhdGVFbGVtZW50KEguYS5GcmFnbWVudCxudWxsLGhbZV0/SC5hLmNyZWF0ZUVsZW1lbnQoaFtlXSx7a2V5OjF9KTpudWxsKSk6bnVsbH07ZnVuY3Rpb24gRHIoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGEsaSxsPVtdLGM9ITAsdT0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYobC5wdXNoKHIudmFsdWUpLGwubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe3U9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGk9bi5yZXR1cm4oKSxPYmplY3QoaSkhPT1pKSlyZXR1cm59ZmluYWxseXtpZih1KXRocm93IG99fXJldHVybiBsfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZihlKXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9VcihlLHQpOiJNYXAiPT09KG49Ik9iamVjdCI9PT0obj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSkpJiZlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IubmFtZTpuKXx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9VcihlLHQpOnZvaWQgMH0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFVyKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gQnIoKXtmdW5jdGlvbiBlKCl7SSghMCksc2V0VGltZW91dChmdW5jdGlvbigpe0koITEpfSw1MDApfXZhciB0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLG49KGo9dC5zdGF0ZSkuYnV0dG9ucyxyPWouYnV0dG9uUG9wdXAsbz0oaj10LmFjdGlvbnMpLnRvZ2dsZUJ1dHRvbnMsYT1qLnNob3dCdXR0b25zLGk9ai5jbG9zZUJ1dHRvblBvcHVwLGw9KGo9dC5zZXR0aW5ncykuZGlyZWN0aW9uLGM9ai5hY3RpdmF0b3JTaXplLHQ9ai5hY3RpdmF0b3JJY29uLHU9ai5idXR0b25TdHlsZSxzPWouYnV0dG9uQW5pbWF0aW9uLGY9ai5idXR0b25Db2xvcixkPWouYnV0dG9uQm9yZGVyUmFkaXVzLHA9ai5idXR0b25JbWFnZVVybCxtPWouYm9yZGVyLGg9ai5idXR0b25TaGFkb3csZz1qLmJ1dHRvbk9wYWNpdHksYj1qLmJnU3R5bGUseT1qLm5vdGlmaWNhdGlvbkluZGljYXRvcix2PWoubWlycm9yLHc9ai5idXR0b25UZXh0LHg9ai5idXR0b25UZXh0Q2xvc2Usaz1qLmFuaW1hdGlvbixTPWouaXNTaW5nbGUsQz1qLm9yZGVyLEU9ai5wb3NpdGlvbixPPSQoai5idXR0b25Cb3JkZXJSYWRpdXMpLGo9cGUoai5idXR0b25Db2xvciw1KSxBPURyKE9iamVjdChGLnVzZVN0YXRlKSghMSksMiksUD1BWzBdLEk9QVsxXTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQoU3QsbnVsbCxVKCkmJiJyb3ciIT09bCYmSC5hLmNyZWF0ZUVsZW1lbnQocHQsbnVsbCksSC5hLmNyZWF0ZUVsZW1lbnQoeHQse29wZW5lZDpuLHBvcHVwT3BlbmVkOnIsYnV0dG9uQW5pbWF0aW9uOnMsY29sb3I6ZixidXR0b25Cb3JkZXJSYWRpdXM6ZCxzaXplOmMsYW5pbWF0aW9uOmssYnV0dG9uU3R5bGU6dX0sSC5hLmNyZWF0ZUVsZW1lbnQod3Qse29uTW91c2VVcDpmdW5jdGlvbigpe1B8fCgocj9pOm8pKCksZSgpLFcoImFyb3VuZCI9PT1sP24/Yzo5OTk5OTk5OTk6ImNsYXNzaWMiPT09dT9jOjMqYykpfSxvbk1vdXNlRW50ZXI6ZnVuY3Rpb24oKXtQfHwhVSgpfHwhMSE9PW58fHJ8fChhKCksZSgpLCJhcm91bmQiPT09bCYmVyg5OTk5OTk5OTkpKX0sZ3JhZGllbnQ6aixpbmRpY2F0b3JQb3NpdGlvbjpPLG9wZW5lZDpuLHBvcHVwT3BlbmVkOnIsImRhdGEtY29tcG9uZW50LW5hbWUiOiJCYXNlQnV0dG9uQWN0aXZhdG9yIiwiYXJpYS1sYWJlbCI6Ik9wZW4gbWVzc2VuZ2VycyBsaXN0Iixjb2xvcjpmLHNpemU6YyxidXR0b25JbWFnZTpwLGJvcmRlcjptLGJ1dHRvbkJvcmRlclJhZGl1czpkLGJ1dHRvblNoYWRvdzpoLGJ1dHRvbk9wYWNpdHk6ZyxiZ1N0eWxlOmIsYnV0dG9uQW5pbWF0aW9uOnMsbm90aWZpY2F0aW9uSW5kaWNhdG9yOnksYnV0dG9uU3R5bGU6dSxtaXJyb3I6dixhbmltYXRpb246ayxpc1NpbmdsZTpTLGRpcmVjdGlvbjpsLHBvc2l0aW9uOkUsb3JkZXI6Q30sSC5hLmNyZWF0ZUVsZW1lbnQoVnIse29wZW5lZDpuLGJ1dHRvblN0eWxlOnUsYnV0dG9uSW1hZ2VVcmw6cH0sIW4mJkguYS5jcmVhdGVFbGVtZW50KExyLHtidXR0b25JbWFnZToiY2xhc3NpYyIhPT11JiZwLGFjdGl2YXRvckljb246IXAmJnR9KSxuJiZILmEuY3JlYXRlRWxlbWVudChNcix7c3R5bGU6IndpZHRoOiA0MXB4In0pKSwiY2xhc3NpYyIhPT11JiYhbiYmSC5hLmNyZWF0ZUVsZW1lbnQoRyx7Y29sb3I6ZixtaXJyb3I6dixzaXplOmN9LHcpLCJjbGFzc2ljIiE9PXUmJm4mJkguYS5jcmVhdGVFbGVtZW50KEcse2NvbG9yOmYsbWlycm9yOnYsc2l6ZTpjfSx4KSkpKX12YXIgRnI9T2JqZWN0KEMuZSkoWyIwJXt0cmFuc2Zvcm06cm90YXRlKC0yNzBkZWcpO310b3t0cmFuc2Zvcm06cm90YXRlKDApO30iXSksSHI9T2JqZWN0KEMuZSkoWyIwJXt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7fXRve3RyYW5zZm9ybTpyb3RhdGUoMCk7fSJdKSxWcj1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy12MnAzaDItMCJ9KShbIiIsIiJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUub3BlbmVkLG49ZS5idXR0b25TdHlsZSxlPWUuYnV0dG9uSW1hZ2VVcmw7cmV0dXJuIE9iamVjdChDLmMpKFsiYW5pbWF0aW9uLWR1cmF0aW9uOjAuNHM7YW5pbWF0aW9uLWRlbGF5Oi4wNXM7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi0xcHg7IiwiOyIsIjsiLCIgIiwiIl0sdCYmT2JqZWN0KEMuYykoWyJhbmltYXRpb24tbmFtZToiLCI7Il0sRnIpLCF0JiZPYmplY3QoQy5jKShbImFuaW1hdGlvbi1uYW1lOiIsIjsiXSxIciksImNsYXNzaWMiIT09biYmT2JqZWN0KEMuYykoWyJkaXNwbGF5OmdyaWQ7cGxhY2UtY29udGVudDpjZW50ZXI7Il0pLGUmJiJjbGFzc2ljIj09PW4mJk9iamVjdChDLmMpKFsiZGlzcGxheTpub25lOyJdKSl9KTtmdW5jdGlvbiAkcihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP1dyKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1dyKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gV3IoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBHcigpe3JldHVybiBPYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncy5pc1NpbmdsZT9ILmEuY3JlYXRlRWxlbWVudChOcixudWxsKTpILmEuY3JlYXRlRWxlbWVudChacixudWxsKX1mdW5jdGlvbiBxcigpe3ZhciBlPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzLm9yZGVyO3JldHVybiBBcnJheS5pc0FycmF5KGUpP0guYS5jcmVhdGVFbGVtZW50KEguYS5GcmFnbWVudCxudWxsLGUubWFwKGZ1bmN0aW9uKGUsdCl7aWYoUnIuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIFJyW2VdP0guYS5jcmVhdGVFbGVtZW50KFJyW2VdLHtrZXk6dH0pOm51bGx9KSk6bnVsbH12YXIgWnI9ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoRi51c2VDb250ZXh0KShWKSx0PWUuc3RhdGUsZT1lLnNldHRpbmdzLG89ZS5vcmRlcixhPWUuYWN0aXZhdG9yU2l6ZSxpPWUuc2hpZnRWZXJ0aWNhbCxuPWUuc2hpZnRIb3Jpem9udGFsLGU9ZS5kaXJlY3Rpb247aWYoIUFycmF5LmlzQXJyYXkobykpcmV0dXJuIG51bGw7dmFyIGw9dmUoKS5oZWlnaHQscj0kcihPYmplY3QoRi51c2VTdGF0ZSkoMCksMiksYz1yWzBdLHU9clsxXTtPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU9YSt2dCx0PW8ubGVuZ3RoLG49TWF0aC5mbG9vcigobC1pKS9lKS0xLG49TWF0aC5jZWlsKG4qZSkscj1NYXRoLmNlaWwoZSp0L24pO3UodC1uL2UqKHItMSk8MiYmMjxuL2U/bi0rZTpuKX0sW2xdKTt2YXIgcj0kcihPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLHM9clswXSxmPXJbMV0scj0kcihPYmplY3QoRi51c2VTdGF0ZSkoITEpLDIpLGQ9clswXSxwPXJbMV0scj0oT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe3QuYnV0dG9ucz8oZighMCkscCghMCkpOmYoITEpfSxbdC5idXR0b25zXSksImFyb3VuZCI9PT1lP28uc2xpY2UoMCw0KTpvKTtyZXR1cm4gSC5hLmNyZWF0ZUVsZW1lbnQoSC5hLkZyYWdtZW50LG51bGwsZCYmSC5hLmNyZWF0ZUVsZW1lbnQoWHIse2lzU2hvdzpzLG9uQW5pbWF0aW9uRW5kOmZ1bmN0aW9uKCl7cChzKX0saGVpZ2h0OmMsZGlyZWN0aW9uOmUsb3JkZXI6byxzaGlmdFZlcnRpY2FsOmksc2hpZnRIb3Jpem9udGFsOm4sYWN0aXZhdG9yU2l6ZTphfSxyLm1hcChmdW5jdGlvbihlLHQpe3JldHVybiBoW2VdP0guYS5jcmVhdGVFbGVtZW50KGhbZV0se2tleTp0fSk6bnVsbH0pKSxILmEuY3JlYXRlRWxlbWVudChCcixudWxsKSl9LFhyPU9iamVjdChDLmQpKGUpLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy0xd3hkZDJzLTAifSkoWyIiLCIiXSxmdW5jdGlvbihlKXt2YXIgdD1lLmRpcmVjdGlvbixuPWUudGhlbWUscj1lLm9yZGVyLG89ZS5zaGlmdFZlcnRpY2FsLGE9ZS5zaGlmdEhvcml6b250YWwsaT1lLmFjdGl2YXRvclNpemUsZT1lLmhlaWdodDtyZXR1cm4gT2JqZWN0KEMuYykoWyIiLCIgIiwiICIsIiJdLCJhcm91bmQiPT09dD9PYmplY3QoQy5jKShbImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2Zvcm06cm90YXRlKCIsImRlZyk7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOiIsInB4OyIsIjoiLCJweDsiXSwicmlnaHQiPT09bi5wb3NpdGlvbj8xNSpyLnNsaWNlKDAsNCkubGVuZ3RoOjE1KnIuc2xpY2UoMCw0KS5sZW5ndGgrOTAsbyooNzA8PWk/My4yOjIuNSksbi5wb3NpdGlvbiwyLjUqYSk6T2JqZWN0KEMuYykoWyJkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtd3JhcDoiLCI7bWFyZ2luLSIsIjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyJdLCJsZWZ0Ij09PW4ucG9zaXRpb24/IndyYXAiOiJ3cmFwLXJldmVyc2UiLCJsZWZ0Ij09PW4ucG9zaXRpb24/InJpZ2h0IjoibGVmdCIpLCJyb3ciPT09dCYmT2JqZWN0KEMuYykoWyJmbGV4LWRpcmVjdGlvbjoiLCI7ZmxleC13cmFwOiIsIjsiXSwicmlnaHQiPT09bi5wb3NpdGlvbiYmInJvdy1yZXZlcnNlIiwibGVmdCI9PT1uLnBvc2l0aW9uJiYid3JhcC1yZXZlcnNlIiksImNvbHVtbiI9PT10JiZPYmplY3QoQy5jKShbImZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlO2hlaWdodDoiLCI7Il0sZSsicHgiKSl9KTtmdW5jdGlvbiBZcihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP1FyKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1FyKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gUXIoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBLcigpe3ZhciBlPSh0PU9iamVjdChGLnVzZUNvbnRleHQpKFYpLnNldHRpbmdzKS5icmFuZGluZyx0PXQuYWN0aXZhdG9yU2l6ZTtyZXR1cm4gZSYmSC5hLmNyZWF0ZUVsZW1lbnQobm8se3NpemU6dCx0eXBlOiJsaW5rIixocmVmOnJvLHRhcmdldDoiX2JsYW5rIiwiYXJpYS1sYWJlbCI6IkdvIHRvIEdldEJ1dHRvbi5pbyB3ZWJzaXRlIn0sSC5hLmNyZWF0ZUVsZW1lbnQodG8sbnVsbCkpfXZhciBKcj1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy0xYXU4cnlsLTAifSkoWyJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo2NHB4O21hcmdpbjphdXRvOyJdKSxlbz1DLmQuc3Bhbi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtMWF1OHJ5bC0xIn0pKFsicG9zaXRpb246YWJzb2x1dGU7bGVmdDoycHg7cmlnaHQ6MDtib3R0b206LTFweDtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6I2JlYmViZTsiXSksdG89ZnVuY3Rpb24oKXt2YXIgZT1ZcihILmEudXNlU3RhdGUoITEpLDIpLHQ9ZVswXSxuPWVbMV07cmV0dXJuIEguYS5jcmVhdGVFbGVtZW50KEpyLHtvbk1vdXNlRW50ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbighMCl9LG9uTW91c2VMZWF2ZTpmdW5jdGlvbigpe3JldHVybiBuKCExKX19LEguYS5jcmVhdGVFbGVtZW50KCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCA1OC4xNiAxMC4xNSJ9LEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTIuNDksNi40MiwxLjY1LDkuNzVjLS4wOS4yNy4xOC41NC40LjIxTDMuNjgsNy44OUE1LjQ5LDUuNDksMCwwLDAsNC43Niw4QzcuNCw4LDkuNTMsNi4yMSw5LjUzLDRTNy40LDAsNC43NiwwLDAsMS43OSwwLDRBMy40NywzLjQ3LDAsMCwwLC4yNCw1LjI1YS40NS40NSwwLDAsMCwuNDkuMTgsNy4wNyw3LjA3LDAsMCwwLC43LS4yNnMuMjQtLjEuMTktLjQ4aDBBMiwyLDAsMCwxLDEuNDksNEMxLjQ5LDIuNjIsMywxLjUsNC43NiwxLjVTOCwyLjYyLDgsNCw2LjU3LDYuNSw0Ljc2LDYuNWE0LjA2LDQuMDYsMCwwLDEtMS42OC0uMzZBLjQ5LjQ5LDAsMCwwLDIuNDksNi40MloiLGZpbGw6IiNhZmFmYWYifSksSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTEuMTIsMTAuMTVIMTFsLTEuNDktLjlhNS40NSw1LjQ1LDAsMCwxLTIuNC42LDQuMTYsNC4xNiwwLDAsMS0yLjI3LS42Mkw1LDkuMTdjMi4yMiwwLDUuNDMtMS42Niw1LjYxLTQuMzdoMGEzLDMsMCwwLDEsLjU3LDEuODYsMi4zMywyLjMzLDAsMCwxLS42NSwxLjY0bC41MiwxLjI5cy4yMi40NC4xNi41MS0uMDYuMDUtLjExLjA1WiIsZmlsbDoiI2FmYWZhZiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik00OS44NCwzLjIxaDBhMi4zMywyLjMzLDAsMCwxLDIuMzIsMi4zNHYxLjNhMi4zMywyLjMzLDAsMCwxLTIuMzIsMi4zM2gwYTIuMzQsMi4zNCwwLDAsMS0yLjMzLTIuMzNWNS41NUEyLjM0LDIuMzQsMCwwLDEsNDkuODQsMy4yMVptMCwxLjE2aDBhMSwxLDAsMCwxLDEsMVY3YTEsMSwwLDAsMS0xLDFoMGExLDEsMCwwLDEtMS0xVjUuMzlBMSwxLDAsMCwxLDQ5Ljg0LDQuMzdaIixmaWxsOiIjYWZhZmFmIixmaWxsUnVsZToiZXZlbm9kZCJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik01NS44MywzLjIxaDBhMi4zNCwyLjM0LDAsMCwxLDIuMzMsMi4zNFY5LjA2SDU2Ljg0VjUuMzlhMSwxLDAsMCwwLTEtMWgwYTEsMSwwLDAsMC0xLDFWOS4wNkg1My41VjUuNTVBMi4zNCwyLjM0LDAsMCwxLDU1LjgzLDMuMjFaIixmaWxsOiIjYWZhZmFmIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTM2LjkzLDkuMDZoMGEyLjMzLDIuMzMsMCwwLDAsMi4zMy0yLjMyVjMuMjFIMzcuOTRWNi45YTEsMSwwLDAsMS0xLDFoMGExLDEsMCwwLDEtMS0xVjMuMjFIMzQuNlY2Ljc0QTIuMzMsMi4zMywwLDAsMCwzNi45Myw5LjA2WiIsZmlsbDoiI2FmYWZhZiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicG9seWdvbiIse3BvaW50czoiNDMuMiAzLjM3IDQyLjEyIDMuMzcgNDIuMTIgMS43OSA0MC45NyAxLjc5IDQwLjk3IDMuMzcgMzkuOTEgMy4zNyA0MC4yNiA0LjM5IDQwLjk3IDQuMzkgNDAuOTcgOS4wMyA0Mi4xMiA5LjAzIDQyLjEyIDQuMzkgNDMuMiA0LjM5IDQzLjIgMy4zNyIsZmlsbDoiI2FmYWZhZiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicG9seWdvbiIse3BvaW50czoiNDYuNzYgMy4zNyA0NS42NyAzLjM3IDQ1LjY3IDEuNzkgNDQuNTIgMS43OSA0NC41MiAzLjM3IDQzLjQ3IDMuMzcgNDMuODEgNC4zOSA0NC41MiA0LjM5IDQ0LjUyIDkuMDMgNDUuNjcgOS4wMyA0NS42NyA0LjM5IDQ2Ljc2IDQuMzkgNDYuNzYgMy4zNyIsZmlsbDoiI2FmYWZhZiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0yOC41NiwxLjczSDMwLjlhMy40OCwzLjQ4LDAsMCwxLDEuMzQuMTgsMS41MywxLjUzLDAsMCwxLC42Ni42MywyLjExLDIuMTEsMCwwLDEsLjI3LDEsMiwyLDAsMCwxLS4yMy45NSwxLjYsMS42LDAsMCwxLS41OS42NCwxLjQ5LDEuNDksMCwwLDEsLjguNjQsMi4wOSwyLjA5LDAsMCwxLC4zLDEuMTEsMi4zMSwyLjMxLDAsMCwxLS4zOCwxLjM1LDEuNTQsMS41NCwwLDAsMS0uODguNjhBOSw5LDAsMCwxLDMwLjU0LDloLTJaTTI5LjczLDNWNC42NGguNzhhNy4wNiw3LjA2LDAsMCwwLC44NywwLC43MS43MSwwLDAsMCwuNDctLjI2QS44Ni44NiwwLDAsMCwzMiwzLjc3YS45MS45MSwwLDAsMC0uMTQtLjUyQS42NC42NCwwLDAsMCwzMS41NSwzYTguMTYsOC4xNiwwLDAsMC0xLjE0LDBabTAsMi45VjcuNzloMS4xYTMuNDksMy40OSwwLDAsMCwuOTItLjA3LjcxLjcxLDAsMCwwLC4zNS0uMywxLjEzLDEuMTMsMCwwLDAsLjEzLS41OCwxLjIsMS4yLDAsMCwwLS4xNC0uNTkuODguODgsMCwwLDAtLjQtLjMyLDQuMSw0LjEsMCwwLDAtMS0uMDhaIixmaWxsOiIjYWZhZmFmIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwb2x5Z29uIix7cG9pbnRzOiIyNy41NiAzLjM3IDI2LjQ3IDMuMzcgMjYuNDcgMS43OSAyNS4zMiAxLjc5IDI1LjMyIDMuMzcgMjQuMjcgMy4zNyAyNC42MiA0LjM5IDI1LjMyIDQuMzkgMjUuMzIgOS4wMyAyNi40NyA5LjAzIDI2LjQ3IDQuMzkgMjcuNTYgNC4zOSAyNy41NiAzLjM3IixmaWxsOiIjYWZhZmFmIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTIxLjQ5LDMuMjFoMGEyLjM0LDIuMzQsMCwwLDEsMi4zMywyLjM0djFIMjAuNDhWN2MwLDEuMjUsMS45NCwxLjE5LDIuMy43MmwxLC43MmMtMS4xMywxLjM2LTQuNTkuODctNC41OS0xLjYxVjUuNTVBMi4zNCwyLjM0LDAsMCwxLDIxLjQ5LDMuMjFabS0xLDIuMzhoMnYtLjJhMSwxLDAsMCwwLTEtMWgwYTEsMSwwLDAsMC0xLDFaIixmaWxsOiIjYWZhZmFmIn0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE3LjI3LDMuMDVhMy44MiwzLjgyLDAsMCwwLTIuNjgsMCwxLjE0LDEuMTQsMCwwLDAtLjUuNzloMFY2Ljg2YTEuMTcsMS4xNywwLDAsMCwxLjA2LDEsMy45LDMuOSwwLDAsMCwxLjU0LS4wOVY2LjEySDE1LjlWNC43N0gxOHYzLjRhLjY0LjY0LDAsMCwxLS4zMS42NCw0LjU1LDQuNTUsMCwwLDEtMi43My40QTIuNTIsMi41MiwwLDAsMSwxMi43NSw3VjMuNzloMGEyLjY3LDIuNjcsMCwwLDEsMS4xNC0xLjkybDAsMGMxLjU2LS45MSwzLjgyLDAsMy44MywwWiIsZmlsbDoiI2FmYWZhZiJ9KSksdCYmSC5hLmNyZWF0ZUVsZW1lbnQoZW8sbnVsbCkpfSxubz1DLmQuYS53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2Mtc2JzaTdsLTAifSkoWyIiLCIiXSxmdW5jdGlvbihlKXt2YXIgdD1lLnRoZW1lLGU9ZS5zaXplO3JldHVybiBPYmplY3QoQy5jKShbIm9wYWNpdHk6MTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6N3B4O3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tIiwiOmF1dG87dGV4dC1kZWNvcmF0aW9uOm5vbmU7d2lkdGg6IiwncHg7Zm9udC1mYW1pbHk6Um9ib3RvLCJIZWx2ZXRpY2EgTmV1ZSIsc2Fucy1zZXJpZjtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMXB4O2NvbG9yOiNhZmFmYWYgIWltcG9ydGFudDtib3JkZXI6MDttYXgtd2lkdGg6aW5oZXJpdDsnLCIiXSwibGVmdCI9PT10LnBvc2l0aW9uPyJyaWdodCI6ImxlZnQiLChlfHw1MCkrMTQsVSgpJiZPYmplY3QoQy5jKShbIiY6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7fSJdKSl9KSxybz0iaHR0cHM6Ly9nZXRidXR0b24uaW8vP3V0bV9jYW1wYWlnbj1tdWx0eV93aWRnZXQmdXRtX21lZGl1bT13aWRnZXQmdXRtX3NvdXJjZT0iLmNvbmNhdCh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpO2Z1bmN0aW9uIG9vKGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBpbyhlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fGFvKGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGFvKGUsdCl7dmFyIG47aWYoZSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/aW8oZSx0KToiTWFwIj09PShuPSJPYmplY3QiPT09KG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpKSYmZS5jb25zdHJ1Y3Rvcj9lLmNvbnN0cnVjdG9yLm5hbWU6bil8fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/aW8oZSx0KTp2b2lkIDB9ZnVuY3Rpb24gaW8oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgbG89Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtZjMwZzVsLTAifSkoWyJtYXJnaW4tYm90dG9tOjA7cGFkZGluZy1ib3R0b206MjZweDsiXSksY289Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtZjMwZzVsLTEifSkoWyJkaXNwbGF5OmZsZXg7cGFkZGluZzowOyIsIiBAbWVkaWEgKG1heC13aWR0aDozNzBweCl7bWFyZ2luLWxlZnQ6MThweDt9Il0sZnVuY3Rpb24oZSl7cmV0dXJuIGUubWlycm9yP09iamVjdChDLmMpKFsibWFyZ2luOjAgODVweCAwIDA7Il0pOk9iamVjdChDLmMpKFsibWFyZ2luOjAgMCAwIDg1cHg7Il0pfSksdW89Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtZjMwZzVsLTIifSkoWyJtYXJnaW4tYm90dG9tOjA7QG1lZGlhIChtYXgtd2lkdGg6MzcwcHgpe3RyYW5zZm9ybTpzY2FsZSgwLjkpO30iXSksc289Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2MtZjMwZzVsLTMifSkoWyJkaXNwbGF5OmZsZXg7cGFkZGluZzowO2p1c3RpZnktY29udGVudDpjZW50ZXI7IiwiIEBtZWRpYShtYXggLSB3aWR0aDozNzBweCl7dHJhbnNmb3JtOnNjYWxlKDAuOSk7fSJdLGZ1bmN0aW9uKGUpe3JldHVybiJtaW5pIj09PWUuZ3JlZXRpbmdTdHlsZSYmZS5idXR0b25zTnVtYmVyPDUmJjE8ZS5idXR0b25zTnVtYmVyJiZPYmplY3QoQy5jKShbImp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O21hcmdpbi1sZWZ0OjM4cHg7Il0pfSksZm89ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QoRi51c2VDb250ZXh0KShWKS5zZXR0aW5ncyx0PWUub3JkZXIsbj1lLmdyZWV0aW5nU3R5bGUsZT1lLm1pcnJvcjtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gbnVsbDt2YXIgcixvPVtdLGE9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8sYSxpPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihpKXJldHVybiByPSEobj0hMCkse3M6ZnVuY3Rpb24oKXtpPWkuY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPWkubmV4dCgpO3JldHVybiBuPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3I9ITAsbz1lfSxmOmZ1bmN0aW9uKCl7dHJ5e258fG51bGw9PWkucmV0dXJufHxpLnJldHVybigpfWZpbmFsbHl7aWYocil0aHJvdyBvfX19O2lmKEFycmF5LmlzQXJyYXkoZSl8fChpPWFvKGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aClyZXR1cm4gaSYmKGU9aSksYT0wLHtzOnQ9ZnVuY3Rpb24oKXt9LG46ZnVuY3Rpb24oKXtyZXR1cm4gYT49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbYSsrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjp0fTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KG9vKHQpLnJldmVyc2UoKSk7dHJ5e2ZvcihhLnMoKTshKHI9YS5uKCkpLmRvbmU7KXt2YXIgaT1yLnZhbHVlLGw9QltpXTtpZigobCYmKCEwPT09VSgpJiZsLm9uRGVza3RvcHx8ITA9PT0vVGFibGV0fGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJmwub25UYWJsZXQpfHwhMD09PUQoKSYmbC5vbk1vYmlsZSkmJihvLnB1c2goaSksNDxvLmxlbmd0aCkpYnJlYWt9fWNhdGNoKGUpe2EuZShlKX1maW5hbGx5e2EuZigpfXJldHVybiJhbHRlcm5hdGl2ZSI9PT1ufHwibWluaSI9PT1uP0guYS5jcmVhdGVFbGVtZW50KHVvLG51bGwsSC5hLmNyZWF0ZUVsZW1lbnQoc28se2J1dHRvbnNOdW1iZXI6by5sZW5ndGgsZ3JlZXRpbmdTdHlsZTpufSxvLm1hcChmdW5jdGlvbihlLHQpe3JldHVybiBoW2VdP0guYS5jcmVhdGVFbGVtZW50KGhbZV0se2tleTp0LHNpemU6Im1lZGl1bSJ9KTpudWxsfSkpKTpILmEuY3JlYXRlRWxlbWVudChsbyxudWxsLEguYS5jcmVhdGVFbGVtZW50KGNvLHttaXJyb3I6ZX0sby5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm4gaFtlXT9ILmEuY3JlYXRlRWxlbWVudChoW2VdLHtrZXk6dCxzaXplOiJzbWFsbCJ9KTpudWxsfSkucmV2ZXJzZSgpKSl9LHBvPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY29sb3IsdD12b2lkIDA9PT10PyIjZmZmZmZmIjp0LGU9ZS5zaXplLGU9dm9pZCAwPT09ZT8iMjVweCI6ZTtyZXR1cm4iYWx0ZXJuYXRpdmUiPT09T2JqZWN0KEYudXNlQ29udGV4dCkoVikuc2V0dGluZ3MuZ3JlZXRpbmdTdHlsZT9ILmEuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6e3dpZHRoOmUsaGVpZ2h0OmUsZmlsbDp0LHN0cm9rZToibm9uZSJ9LHZpZXdCb3g6IjAgMCAyNCAyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sSC5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiJ9KSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0wIDBoMjR2MjRIMHoiLGZpbGw6Im5vbmUifSkpOkguYS5jcmVhdGVFbGVtZW50KCJzdmciLHtzdHlsZTp7d2lkdGg6IjE1cHgiLGhlaWdodDoiMTVweCIsZmlsbDoiI2EzYTNhMyIsc3Ryb2tlOiJub25lIn0sdmlld0JveDoiMCAwIDI0IDI0Iix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxILmEuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6In0pLEguYS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSl9O2Z1bmN0aW9uIG1vKGUpe3JldHVybihtbz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0pKGUpfWZ1bmN0aW9uIGhvKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXtlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT1tbyhlKXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMD09PW4pcmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKTtuPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPT1tbyhuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PW1vKGUpP2U6U3RyaW5nKGUpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBnbyhlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8sYSxpLGw9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7dT0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoaT1uLnJldHVybigpLE9iamVjdChpKSE9PWkpKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgb319cmV0dXJuIGx9fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2JvKGUsdCk6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP2JvKGUsdCk6dm9pZCAwfShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gYm8oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiB5byhlKXtmdW5jdGlvbiB0KCl7bygpfWZ1bmN0aW9uIG4oKXtPKFMpfXZhciBlPWUuY29sb3Iscj0oaz1PYmplY3QoRi51c2VDb250ZXh0KShWKSkuc3RhdGUsbz1rLmFjdGlvbnMuY2xvc2VHcmVldGluZ01lc3NhZ2UsYT0oaz1rLnNldHRpbmdzKS5idXR0b25Cb3JkZXJSYWRpdXMsaT1rLmdyZWV0aW5nTWVzc2FnZURlbGF5LGw9ay5ncmVldGluZyxjPWsuZ3JlZXRpbmdEaXJlY3Rpb24sdT1rLmJ1dHRvblN0eWxlLHM9ay5hY3RpdmF0b3JTaXplLGY9ay5zaGlmdFZlcnRpY2FsLGQ9ay5wb3NpdGlvbixwPWsuc2hpZnRIb3Jpem9udGFsLG09ay5ncmVldGluZ1N0eWxlLGg9ay5taXJyb3IsZz1rLmJnU3R5bGUsYj1rLmNvbXBhbnlMb2dvVXJsLHk9ay5ncmVldGluZ01lc3NhZ2Usdj1rLmdyZWV0aW5nQWdlbnROYW1lLFI9ay5ncmVldGluZ0FnZW50UG9zaXRpb24sdz1rLmdyZWV0aW5nTWVzc2VuZ2VycyxOPWsuZ3JlZXRpbmdTdGFydENoYXRXaXRoLHg9ay5pc1NpbmdsZSxrPWsuYnV0dG9uU2hhZG93LFM9KGo9Z28oT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSlbMF0sQz1qWzFdLEU9KGo9Z28oT2JqZWN0KEYudXNlU3RhdGUpKCExKSwyKSlbMF0sTz1qWzFdLGo9JChhKSxEPXBlKGUsNSksQT0iIi5jb25jYXQoaSwiMDAwIiksUD0oQS5pbmNsdWRlcygiLiIpJiYoQT0iIi5jb25jYXQoQS5yZXBsYWNlKC9cLi9nLCIiKS8xMCkpLE9iamVjdChGLnVzZVJlZikoMCkpO09iamVjdChGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtyLmdyZWV0aW5nTWVzc2FnZSYmIWw/dCgpOihyLmdyZWV0aW5nTWVzc2FnZT8wPT09UC5jdXJyZW50JiYoUC5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtDKHIuZ3JlZXRpbmdNZXNzYWdlKSxPKHIuZ3JlZXRpbmdNZXNzYWdlKX0sK0EpKTooQyghMSksTyghMSkpLHIuYnV0dG9ucyYmY2xlYXJUaW1lb3V0KFAuY3VycmVudCkpfSksT2JqZWN0KEYudXNlRWZmZWN0KShmdW5jdGlvbigpe3IuZ3JlZXRpbmdNZXNzYWdlPyJyb3ciPT09YyYmVyg5OTk5OTk5OTkpOiJyb3ciPT09YyYmVygiY2xhc3NpYyI9PT11P3M6MypzKX0sW2MsdSxyLmdyZWV0aW5nTWVzc2FnZSxzXSk7dmFyIEk9KGk9dmUoKSkuaGVpZ2h0LGk9aS53aWR0aCxfPShNPWdvKE9iamVjdChGLnVzZVN0YXRlKSgiYXV0byIpLDIpKVswXSxVPU1bMV0sej0oTT1nbyhPYmplY3QoRi51c2VTdGF0ZSkoe3dpZHRoOiJhdXRvIixoZWlnaHQ6ImF1dG8ifSksMikpWzBdLEI9TVsxXSxUPU9iamVjdChGLnVzZVJlZikoKSxMPU9iamVjdChGLnVzZVJlZikoKSxNPShPYmplY3QoRi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGUsdDtULmN1cnJlbnQmJih0PUktZi1zLXZ0LGU9VC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCsxNzgsVSh0PGU/dC0xNDg6ImF1dG8iKSksTC5jdXJyZW50JiYoZT1MLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LHQ9TC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLEIoe3dpZHRoOnQsaGVpZ2h0OmV9KSl9LFtJLEUsaSxMXSksImNlbnRlciIhPT1jPyJjb2x1bW4iPT09Yz97Ym90dG9tOnMrMzB9OiJyaWdodCI9PT1kP3tyaWdodDoiY2xhc3NpYyI9PT11P3MrMzA6MypzKzMwLGJvdHRvbTo3fTp7bGVmdDoiY2xhc3NpYyI9PT11P3MrMzA6MypzKzMwLGJvdHRvbTo3fTpobyh7Ym90dG9tOiJjYWxjKDUwdmggLSAiLmNvbmNhdCh6LmhlaWdodC8yKzEwLCJweCAtICIpLmNvbmNhdChmLzItMiwicHgpIil9LCJyaWdodCI9PT1kPyJyaWdodCI6ImxlZnQiLCJjYWxjKDUwdncgLSAiLmNvbmNhdCh6LndpZHRoLzIrMjAsInB4IC0gIikuY29uY2F0KHAvMi0yLCJweCkiKSkpLGk9KG5ldyBEYXRlKS5nZXRIb3VycygpKyI6IisobmV3IERhdGUpLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKTtyZXR1cm4iYWx0ZXJuYXRpdmUiPT09bT9FJiZILmEuY3JlYXRlRWxlbWVudChPbyx7aXNTaG93OlMsb25BbmltYXRpb25FbmQ6bixzaGlmdEhvcml6b250YWw6cCxtaXJyb3I6aCxyZWY6TCxzdHlsZTpNLGdyZWV0aW5nRGlyZWN0aW9uOmMsYWN0aXZhdG9yU2l6ZTpzfSxILmEuY3JlYXRlRWxlbWVudChqbyx7YnV0dG9uU2hhZG93OmssZ3JlZXRpbmdNZXNzZW5nZXJzOnd9LEguYS5jcmVhdGVFbGVtZW50KEFvLHtjb2xvcjplLGJnU3R5bGU6ZyxncmFkaWVudDpEfSxILmEuY3JlYXRlRWxlbWVudChQbyx7aXNTaW5nbGU6eH0sSC5hLmNyZWF0ZUVsZW1lbnQoSW8sbnVsbCxILmEuY3JlYXRlRWxlbWVudChMbyx7aW5kaWNhdG9yUG9zaXRpb246aixtaXJyb3I6aH0sSC5hLmNyZWF0ZUVsZW1lbnQoVG8se2NvbXBhbnlMb2dvVXJsOmIsYnV0dG9uQm9yZGVyUmFkaXVzOmF9KSksSC5hLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxILmEuY3JlYXRlRWxlbWVudChfbyx7bWlycm9yOmh9LHYpLEguYS5jcmVhdGVFbGVtZW50KHpvLHttaXJyb3I6aH0sUikpKSxILmEuY3JlYXRlRWxlbWVudChNbyx7b25Nb3VzZVVwOnR9LEguYS5jcmVhdGVFbGVtZW50KHBvLG51bGwpKSkpLEguYS5jcmVhdGVFbGVtZW50KFJvLHtncmVldGluZ01lc3NlbmdlcnM6d30sSC5hLmNyZWF0ZUVsZW1lbnQoR28se29uTW91c2VVcDp0fSxILmEuY3JlYXRlRWxlbWVudChwbyx7Y29sb3I6IiNlMGRmZGYiLHNpemU6IjIwcHgifSkpLEguYS5jcmVhdGVFbGVtZW50KCRvLG51bGwsaSksSC5hLmNyZWF0ZUVsZW1lbnQoRG8sbnVsbCxILmEuY3JlYXRlRWxlbWVudChCbyx7Y29tcGFueUxvZ29Vcmw6YixzaGlmdEhvcml6b250YWw6cCxidXR0b25Cb3JkZXJSYWRpdXM6YX0pLEguYS5jcmVhdGVFbGVtZW50KEZvLHtoZWlnaHQ6XyxtaXJyb3I6aH0sSC5hLmNyZWF0ZUVsZW1lbnQoVm8se21pcnJvcjpofSxILmEuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjpUfSx5KSkpKSx3JiZILmEuY3JlYXRlRWxlbWVudChILmEuRnJhZ21lbnQsbnVsbCxILmEuY3JlYXRlRWxlbWVudChXbyx7bWlycm9yOmh9LE4pLEguYS5jcmVhdGVFbGVtZW50KGZvLG51bGwpKSkpKToibWluaSI9PT1tP0UmJkguYS5jcmVhdGVFbGVtZW50KE9vLHtpc1Nob3c6UyxvbkFuaW1hdGlvbkVuZDpuLHNoaWZ0SG9yaXpvbnRhbDpwLHJlZjpMLHN0eWxlOk0sbWlycm9yOmgsZ3JlZXRpbmdEaXJlY3Rpb246YyxhY3RpdmF0b3JTaXplOnN9LEguYS5jcmVhdGVFbGVtZW50KGpvLHtidXR0b25TaGFkb3c6ayxncmVldGluZ01lc3NlbmdlcnM6d30sSC5hLmNyZWF0ZUVsZW1lbnQoTm8sbnVsbCxILmEuY3JlYXRlRWxlbWVudChxbyx7b25Nb3VzZVVwOnR9LEguYS5jcmVhdGVFbGVtZW50KHBvLHtjb2xvcjoiI2UwZGZkZiIsc2l6ZToiMjBweCJ9KSksSC5hLmNyZWF0ZUVsZW1lbnQoVW8sbnVsbCxILmEuY3JlYXRlRWxlbWVudChCbyx7Y29tcGFueUxvZ29Vcmw6YixzaGlmdEhvcml6b250YWw6cCxidXR0b25Cb3JkZXJSYWRpdXM6YX0pLEguYS5jcmVhdGVFbGVtZW50KEhvLHtoZWlnaHQ6XyxtaXJyb3I6aH0sSC5hLmNyZWF0ZUVsZW1lbnQoVm8se21pcnJvcjpofSxILmEuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjpUfSx5KSkpKSx3JiZILmEuY3JlYXRlRWxlbWVudChmbyxudWxsKSkpKTpFJiZILmEuY3JlYXRlRWxlbWVudCh2byx7aXNTaG93OlMsb25BbmltYXRpb25FbmQ6bixyZWY6TCxzdHlsZTpNLHNoaWZ0SG9yaXpvbnRhbDpwLG1pcnJvcjpoLGdyZWV0aW5nRGlyZWN0aW9uOmMsYWN0aXZhdG9yU2l6ZTpzfSxILmEuY3JlYXRlRWxlbWVudCh3byx7YnV0dG9uU2hhZG93OmssZ3JlZXRpbmdNZXNzZW5nZXJzOnd9LEguYS5jcmVhdGVFbGVtZW50KEVvLHtvbk1vdXNlVXA6dCxtaXJyb3I6aH0sSC5hLmNyZWF0ZUVsZW1lbnQocG8sbnVsbCkpLEguYS5jcmVhdGVFbGVtZW50KFNvLG51bGwsSC5hLmNyZWF0ZUVsZW1lbnQoQ28se2NvbXBhbnlMb2dvVXJsOmIsc2hpZnRIb3Jpem9udGFsOnB9KSxILmEuY3JlYXRlRWxlbWVudChrbyx7aGVpZ2h0Ol8sbWlycm9yOmh9LEguYS5jcmVhdGVFbGVtZW50KHhvLHttaXJyb3I6aH0sSC5hLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6VH0seSkpKSksIXgmJncmJkguYS5jcmVhdGVFbGVtZW50KGZvLG51bGwpKSl9dmFyIHZvPU9iamVjdChDLmQpKHQpLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMCJ9KShbIiIsIiJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUudGhlbWUsbj1lLm1pcnJvcixyPWUuZ3JlZXRpbmdEaXJlY3Rpb24sZT1lLmFjdGl2YXRvclNpemU7cmV0dXJuIE9iamVjdChDLmMpKFsnb3BhY2l0eToxO3BhZGRpbmc6MDtib3JkZXI6MDt3aWR0aDozNDNweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LWZhbWlseTpSb2JvdG8sIkhlbHZldGljYSBOZXVlIixzYW5zLXNlcmlmO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo3M3B4O2xpbmUtaGVpZ2h0OjIzcHg7Zm9udC1zaXplOjE0cHg7JywiOjA7QG1lZGlhIChtYXgtd2lkdGg6MzcwcHgpe3dpZHRoOjI4MHB4O30iLCIgQG1lZGlhIChtYXgtd2lkdGg6NDcwcHgpeyIsIn0iXSx0LnBvc2l0aW9uLG4mJk9iamVjdChDLmMpKFsiZGlyZWN0aW9uOnJ0bDsiXSksInJvdyI9PT1yJiZPYmplY3QoQy5jKShbImJvdHRvbToiLCJweCAhaW1wb3J0YW50OyIsIjowICFpbXBvcnRhbnQ7Il0sZSszMCx0LnBvc2l0aW9uKSl9KSx3bz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMSJ9KShbIiIsIiJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUuYnV0dG9uU2hhZG93LGU9ZS5ncmVldGluZ01lc3NlbmdlcnM7cmV0dXJuIE9iamVjdChDLmMpKFsiYm94LXNoYWRvdzowcHggMXB4IDdweCByZ2JhKDEzNiwxMzYsMTM2LCIsIiUpO2JvcmRlcjoxcHggc29saWQgI2UyZTJlMjtwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OiIsIjtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtkaXNwbGF5OmJsb2NrOyJdLDIwPHQ/dDoyMCxlPyIxNDlweCI6InVuc2V0Iil9KSx4bz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMiJ9KShbInBhZGRpbmc6MTBweCAxNnB4O2xpbmUtaGVpZ2h0OjIwcHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7b3ZlcmZsb3cteTphdXRvO2hlaWdodDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDsiLCIgJjo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjVweDt3aWR0aDo1cHg7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wMik7fSY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6cmdiYSg1Nyw1NiwxOCwuMDcpOy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7fSJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1pcnJvcj9PYmplY3QoQy5jKShbInRleHQtYWxpZ246cmlnaHQ7dW5pY29kZS1iaWRpOnBsYWludGV4dDsiXSk6T2JqZWN0KEMuYykoWyJ0ZXh0LWFsaWduOmxlZnQ7Il0pfSksa289Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2Mtcms3MmJoLTMifSkoWyIiLCIiXSxmdW5jdGlvbihlKXt2YXIgdD1lLmhlaWdodCxlPWUubWlycm9yO3JldHVybiBPYmplY3QoQy5jKShbIm1pbi1oZWlnaHQ6NTZweDtoZWlnaHQ6IiwiO3dpZHRoOjIzNHB4O2JvcmRlcjoxcHggc29saWQgI2UyZTJlMjtib3JkZXItcmFkaXVzOjhweDtwb3NpdGlvbjpyZWxhdGl2ZTsiLCIgJjo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwcHg7Ym9yZGVyOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkICNlMmUyZTI7IiwifSY6OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwcHg7Ym9yZGVyOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkICNmZmY7IiwifSJdLHQrInB4IixlP09iamVjdChDLmMpKFsibWFyZ2luOjAgYXV0byAwIDVweDsiXSk6T2JqZWN0KEMuYykoWyJtYXJnaW46MCA1cHggMCBhdXRvOyJdKSxlP09iamVjdChDLmMpKFsicmlnaHQ6LTEwcHg7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOyJdKTpPYmplY3QoQy5jKShbImxlZnQ6LTEwcHg7Il0pLGU/T2JqZWN0KEMuYykoWyJyaWdodDotOXB4O3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTsiXSk6T2JqZWN0KEMuYykoWyJsZWZ0Oi05cHg7Il0pKX0pLFNvPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC00In0pKFsibWluLWhlaWdodDo1OHB4O2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7Y29sb3I6YmxhY2s7cGFkZGluZzoyN3B4IDE4cHggMjBweCAxOHB4O2Rpc3BsYXk6ZmxleDsiXSksQ289Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2Mtcms3MmJoLTUifSkoWydkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtoZWlnaHQ6NTBweDt3aWR0aDo1MHB4O21pbi13aWR0aDo1MHB4O2JvcmRlcjoxcHggc29saWQgI2UyZTJlMjtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOnVybCgiJywnIikgbm8tcmVwZWF0IGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7QG1lZGlhIChtYXgtd2lkdGg6MzcwcHgpe2Rpc3BsYXk6bm9uZTt9J10sZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29tcGFueUxvZ29Vcmx9KSxFbz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtNiJ9KShbIndpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjdweDsiLCIiXSxmdW5jdGlvbihlKXtyZXR1cm4gZS5taXJyb3I/T2JqZWN0KEMuYykoWyJsZWZ0OjlweDsiXSk6T2JqZWN0KEMuYykoWyJyaWdodDo5cHg7Il0pfSksT289T2JqZWN0KEMuZCkodm8pLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtNyJ9KShbIndpZHRoOjMyMHB4OyJdKSxqbz1PYmplY3QoQy5kKSh3bykud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC04In0pKFsiYm9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoxNnB4OyJdKSxBbz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtOSJ9KShbIiIsIiAiXSxmdW5jdGlvbihlKXt2YXIgdD1lLmJnU3R5bGUsbj1lLmNvbG9yLGU9ZS5ncmFkaWVudDtyZXR1cm4gT2JqZWN0KEMuYykoWyJib3JkZXItcmFkaXVzOjE2cHggMTZweCAwIDA7IiwiIEBtZWRpYShtYXgtaGVpZ2h0OjQ3MHB4KXtkaXNwbGF5Om5vbmU7fSJdLCJjb2xvciI9PT10P09iamVjdChDLmMpKFsiYmFja2dyb3VuZC1jb2xvcjoiLCI7Il0sbik6T2JqZWN0KEMuYykoWyJiYWNrZ3JvdW5kOiIsIjsiXSwibGluZWFyLWdyYWRpZW50KDEzNWRlZywgIi5jb25jYXQoZSwiKSIpKSl9KSxQbz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMTAifSkoWyJib3JkZXItcmFkaXVzOjE2cHggMTZweCAwIDA7cGFkZGluZzowIDE1cHg7aGVpZ2h0OjgwcHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZHJvcC1maWx0ZXI6IiwiOyJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzU2luZ2xlJiYiYnJpZ2h0bmVzcygwLjUpIn0pLElvPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC0xMSJ9KShbImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE1cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7Il0pLF9vPUMuZC5oNC53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2Mtcms3MmJoLTEyIn0pKFsibWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOndoaXRlICFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxOHB4OyIsIiJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1pcnJvcj9PYmplY3QoQy5jKShbInRleHQtYWxpZ246cmlnaHQ7dW5pY29kZS1iaWRpOnBsYWludGV4dDsiXSk6T2JqZWN0KEMuYykoWyJ0ZXh0LWFsaWduOmxlZnQ7Il0pfSksem89Qy5kLnAud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC0xMyJ9KShbIm1hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMyAhaW1wb3J0YW50O2NvbG9yOndoaXRlO2ZvbnQtc2l6ZToxNHB4OyIsIiJdLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1pcnJvcj9PYmplY3QoQy5jKShbInRleHQtYWxpZ246cmlnaHQ7dW5pY29kZS1iaWRpOnBsYWludGV4dDsiXSk6T2JqZWN0KEMuYykoWyJ0ZXh0LWFsaWduOmxlZnQ7Il0pfSksVG89Qy5kLmltZy53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2Mtcms3MmJoLTE0In0pKFsiIiwiIl0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5idXR0b25Cb3JkZXJSYWRpdXMsZT1lLmNvbXBhbnlMb2dvVXJsO3JldHVybiBPYmplY3QoQy5jKShbImRpc3BsYXk6YmxvY2shaW1wb3J0YW50O2hlaWdodDo1MHB4ICFpbXBvcnRhbnQ7d2lkdGg6NTBweDttaW4td2lkdGg6NTBweDtib3JkZXI6MnB4IHNvbGlkICNmZmZmZmY7Ym9yZGVyLXJhZGl1czoiLCclO2JhY2tncm91bmQ6dXJsKCInLCciKSBuby1yZXBlYXQgY2VudGVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtAbWVkaWEgKG1heC13aWR0aDozNzBweCl7ZGlzcGxheTpub25lO30nXSx0LGUpfSksTG89Qy5kLmRpdi53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2Mtcms3MmJoLTE1In0pKFsiIiwiIl0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pbmRpY2F0b3JQb3NpdGlvbixlPWUubWlycm9yO3JldHVybiBPYmplY3QoQy5jKShbInBvc2l0aW9uOnJlbGF0aXZlOyY6YWZ0ZXJ7Y29udGVudDonJzt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6IzRkYzI0Nztib3JkZXItcmFkaXVzOjUwJTtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206IiwicHg7Ym94LXNoYWRvdzoycHggMnB4IDZweCByZ2JhKDAsMCwwLDEwJSk7IiwifSJdLHQsZT9PYmplY3QoQy5jKShbImxlZnQ6IiwicHg7Il0sdCk6T2JqZWN0KEMuYykoWyJyaWdodDoiLCJweDsiXSx0KSl9KSxNbz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMTYifSkoWyJ3aWR0aDoyNXB4O2hlaWdodDoyNXB4O2N1cnNvcjpwb2ludGVyOyJdKSxSbz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMTcifSkoWyJwYWRkaW5nOiIsIjtAbWVkaWEobWF4LWhlaWdodDo0NzBweCl7cGFkZGluZzo1cHggMTVweDt9Il0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ3JlZXRpbmdNZXNzZW5nZXJzPyIxNXB4IjoiMTVweCAxNXB4IDI1cHggMTVweCJ9KSxObz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMTgifSkoWyJwYWRkaW5nOjE1cHg7Il0pLERvPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC0xOSJ9KShbImRpc3BsYXk6ZmxleDtnYXA6MTBweDtjb2xvcjojMDAwMDAwO0BtZWRpYShtYXgtaGVpZ2h0OjQ3MHB4KXttYXJnaW46N3B4IDA7fSJdKSxVbz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMjAifSkoWyJkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7Y29sb3I6IzAwMDAwMDttYXJnaW46N3B4IDA7Il0pLEJvPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC0yMSJ9KShbIiIsIiJdLGZ1bmN0aW9uKGUpe3ZhciB0PWUuYnV0dG9uQm9yZGVyUmFkaXVzLGU9ZS5jb21wYW55TG9nb1VybDtyZXR1cm4gT2JqZWN0KEMuYykoWyJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtoZWlnaHQ6MzVweDt3aWR0aDozNXB4O21pbi13aWR0aDozNXB4O2JvcmRlci1yYWRpdXM6IiwnJTtiYWNrZ3JvdW5kOnVybCgiJywnIikgbm8tcmVwZWF0IGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7J10sdCxlKX0pLEZvPUMuZC5kaXYud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC0yMiJ9KShbImJhY2tncm91bmQ6cmdiYSg0NCwxMjAsMjU1LDAuMik7bWF4LWhlaWdodDoyMHZoO3BhZGRpbmc6MTRweCAwOyIsIiBAbWVkaWEobWF4LWhlaWdodDo0NzBweCl7d2lkdGg6ODAlO30iXSxmdW5jdGlvbihlKXtyZXR1cm4gZS5taXJyb3I/T2JqZWN0KEMuYykoWyJib3JkZXItcmFkaXVzOjIwcHggMnB4IDIwcHggMjBweDsiXSk6T2JqZWN0KEMuYykoWyJib3JkZXItcmFkaXVzOjJweCAyMHB4IDIwcHggMjBweDsiXSl9KSxIbz1DLmQuZGl2LndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMjMifSkoWyJiYWNrZ3JvdW5kOnJnYmEoNDQsMTIwLDI1NSwwLjIpO21heC1oZWlnaHQ6MjB2aDtwYWRkaW5nOjE0cHggMDt3aWR0aDo4MCU7IiwiIl0sZnVuY3Rpb24oZSl7cmV0dXJuIGUubWlycm9yP09iamVjdChDLmMpKFsiYm9yZGVyLXJhZGl1czoyMHB4IDJweCAyMHB4IDIwcHg7Il0pOk9iamVjdChDLmMpKFsiYm9yZGVyLXJhZGl1czoycHggMjBweCAyMHB4IDIwcHg7Il0pfSksVm89T2JqZWN0KEMuZCkoeG8pLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMjQifSkoWyJwYWRkaW5nOjAgMTZweDsiXSksJG89Qy5kLnAud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC0yNSJ9KShbIm1hcmdpbjowIDAgMTVweCAwO2NvbG9yOiM5NTlEQTk7QG1lZGlhKG1heC1oZWlnaHQ6NDcwcHgpe2Rpc3BsYXk6bm9uZTt9Il0pLFdvPUMuZC5wLndpdGhDb25maWcoe2NvbXBvbmVudElkOiJzYy1yazcyYmgtMjYifSkoWyJmb250LXdlaWdodDpib2xkO21hcmdpbjoyNXB4IDAgNXB4IDA7Y29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyIsIiBAbWVkaWEobWF4LWhlaWdodDo0NzBweCl7ZGlzcGxheTpub25lO30iXSxmdW5jdGlvbihlKXtyZXR1cm4gZS5taXJyb3ImJk9iamVjdChDLmMpKFsidW5pY29kZS1iaWRpOnBsYWludGV4dDsiXSl9KSxHbz1PYmplY3QoQy5kKShNbykud2l0aENvbmZpZyh7Y29tcG9uZW50SWQ6InNjLXJrNzJiaC0yNyJ9KShbImRpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NXB4O3JpZ2h0OjNweDtAbWVkaWEobWF4LWhlaWdodDo0NzBweCl7ZGlzcGxheTpibG9jazt9Il0pLHFvPU9iamVjdChDLmQpKE1vKS53aXRoQ29uZmlnKHtjb21wb25lbnRJZDoic2Mtcms3MmJoLTI4In0pKFsicG9zaXRpb246YWJzb2x1dGU7dG9wOjVweDtyaWdodDozcHg7Il0pLFpvPU9iamVjdChDLmIpKFsiIyIsIiA+ICp7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCkgIWltcG9ydGFudDtib3gtc2l6aW5nOmJvcmRlci1ib3ggIWltcG9ydGFudDt9IyIsIiBwe3BhZGRpbmctYm90dG9tOjAgIWltcG9ydGFudDt9IiwiIl0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29udGFpbmVySWR9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbnRhaW5lcklkfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXR0aW5ncy5mYWNlYm9vayYmWG99KSxYbz1PYmplY3QoQy5jKShbIiNmYi1yb290IC5mYi1jdXN0b21lcmNoYXQgPip7b3BhY2l0eTowO30uZmItY3VzdG9tZXJjaGF0IGlmcmFtZXtib3R0b206IiwicHggIWltcG9ydGFudDsiLCI6IiwicHggIWltcG9ydGFudDt9LmZiLWN1c3RvbWVyY2hhdCBpZnJhbWUuZmJfY3VzdG9tZXJfY2hhdF9ib3VuY2VfaW5fdjJ7bWF4LWhlaWdodDpjYWxjKDgwJSAtIDMwcHgpICFpbXBvcnRhbnQ7fS5mYl9kaWFsb2d7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fS5mYl9jdXN0b21lcl9jaGF0X2JvdW5jZV9vdXRfdjJ7YW5pbWF0aW9uLW5hbWU6ZmJfYm91bmNlX291dF9jcyFpbXBvcnRhbnQ7fS5mYl9jdXN0b21lcl9jaGF0X2JvdW5jZV9pbl92MnthbmltYXRpb24tbmFtZTpmYl9ib3VuY2VfaW5fY3MhaW1wb3J0YW50O31Aa2V5ZnJhbWVzIGZiX2JvdW5jZV9pbl9jc3swJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKDAsMCk7dHJhbnNmb3JtLW9yaWdpbjpib3R0b20gIiwiO301MCV7dHJhbnNmb3JtOnNjYWxlKDEuMDMsMS4wMyk7dHJhbnNmb3JtLW9yaWdpbjpib3R0b20gIiwiO30xMDAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSwxKTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbSAiLCI7fX1Aa2V5ZnJhbWVzIGZiX2JvdW5jZV9vdXRfY3N7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxLDEpO3RyYW5zZm9ybS1vcmlnaW46Ym90dG9tICIsIjt9MTAwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKDAsMCk7dHJhbnNmb3JtLW9yaWdpbjpib3R0b20gIiwiO319Il0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3R5bGVzLnNoaWZ0VmVydGljYWwrNTB9LGZ1bmN0aW9uKGUpe3JldHVybiBlLnN0eWxlcy5wb3NpdGlvbn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3R5bGVzLnNoaWZ0SG9yaXpvbnRhbC0yMH0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3R5bGVzLnBvc2l0aW9ufSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zdHlsZXMucG9zaXRpb259LGZ1bmN0aW9uKGUpe3JldHVybiBlLnN0eWxlcy5wb3NpdGlvbn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3R5bGVzLnBvc2l0aW9ufSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zdHlsZXMucG9zaXRpb259KTtmdW5jdGlvbiBZbyhlLHQpe3ZhciBuLHIsbyxhLGk9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKGkpcmV0dXJuIHI9IShuPSEwKSx7czpmdW5jdGlvbigpe2k9aS5jYWxsKGUpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9aS5uZXh0KCk7cmV0dXJuIG49ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7cj0hMCxvPWV9LGY6ZnVuY3Rpb24oKXt0cnl7bnx8bnVsbD09aS5yZXR1cm58fGkucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IG99fX07aWYoQXJyYXkuaXNBcnJheShlKXx8KGk9ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZihlKXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9RbyhlLHQpOiJNYXAiPT09KG49Ik9iamVjdCI9PT0obj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSkpJiZlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IubmFtZTpuKXx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9RbyhlLHQpOnZvaWQgMH0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXJldHVybiBpJiYoZT1pKSxhPTAse3M6dD1mdW5jdGlvbigpe30sbjpmdW5jdGlvbigpe3JldHVybiBhPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVthKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOnR9O3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX1mdW5jdGlvbiBRbyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXdpbmRvdy5HQkJUTj13aW5kb3cuR0JCVE58fHtsb2FkZWRfYnV0dG9uc19oYXNoX2lkczpbXX07dmFyIEtvLEpvLGVhLHRhLG5hLGc9ITEscmE9WW8oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpKTt0cnl7Zm9yKHJhLnMoKTshKGVhPXJhLm4oKSkuZG9uZTspe3ZhciBvYSxhYSxpYT1lYS52YWx1ZTtpZihudWxsIT0ob2E9aWEuc3JjKSYmb2EuaW5jbHVkZXMoIi5nZXRidXR0b24uaW8vd2lkZ2V0L2J1bmRsZS5qcz9pZCIpfHxudWxsIT0oYWE9aWEuc3JjKSYmYWEuaW5jbHVkZXMoIjo5MDAwL2J1bmRsZS5qcz9pZD0iKSl7aWYoZz1pYS5zcmMubWF0Y2goL2lkPShbXiZdKikvKVsxXSxjb25zb2xlLmxvZygiZm91bmQgaGFzaElkOiIsZyksIXdpbmRvdy5HQkJUTi5sb2FkZWRfYnV0dG9uc19oYXNoX2lkcy5pbmNsdWRlcyhnKSl7d2luZG93LkdCQlROLmxvYWRlZF9idXR0b25zX2hhc2hfaWRzLnB1c2goZyksdGE9ImdldGJ1dHRvbi5pbyIsbmE9Imh0dHBzOiIsY29uc29sZS5sb2coIj4gc2hvcnRDb2RlSW5pdCIpLHplKHRhLG5hKSxMZShUZSkudGhlbihmdW5jdGlvbigpe3JldHVybiBsYSgpfSkuY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3J9KSxjLnNjcmlwdElkPWc7YnJlYWt9Y29uc29sZS5sb2coInNraXAgbG9hZGluZyBoYXNoSWQ6ICIuY29uY2F0KGcsIiAoYWxyZWFkeSBsb2FkZWQpIikpfX19Y2F0Y2goZSl7cmEuZShlKX1maW5hbGx5e3JhLmYoKX1jb25zb2xlLmxvZygiPiBsb25nQ29kZUluaXQiKSx3aW5kb3cuV2hXaWRnZXRTZW5kQnV0dG9uPXtpbml0OnplLHJlSW5pdDpmdW5jdGlvbihlLHQsbil7emUoZSx0LG4pLExlKFRlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGxhKCl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS5lcnJvcn0pfX07dHJ5e2NvbnNvbGUubG9nKCI+IHRyeSIpLExlKFRlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGxhKCl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS5lcnJvcn0pfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIj4gdHJ5IGVycm9yIixlKX12YXIgbGE9ZnVuY3Rpb24oKXt2YXIgZSx0O0pvJiYoSm8udW5tb3VudCgpLEpvPW51bGwsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChLbykpJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksYy5zaG93V2lkZ2V0PzAhPT1jLm9yZGVyLmxlbmd0aHx8Zz8oS289ImdiLXdpZGdldC0iLmNvbmNhdChNYXRoLmZsb29yKDk5OTkqTWF0aC5yYW5kb20oKSkpLChlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5zZXRBdHRyaWJ1dGUoImlkIixLbyksZS5zZXRBdHRyaWJ1dGUoInNjcmlwdC1pZCIsZyksZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZSxkb2N1bWVudC5ib2R5Lmxhc3RDaGlsZC5uZXh0U2libGluZyksdD1mdW5jdGlvbigpe3JldHVybiBnZSgxZTMpP0guYS5jcmVhdGVFbGVtZW50KHVlLG51bGwsSC5hLmNyZWF0ZUVsZW1lbnQoY2Ese3Jvb3RDb250YWluZXI6ZSxjb250YWluZXJJZDpLb30pKToiIn0sKEpvPXkuYS5jcmVhdGVSb290KGUpKS5yZW5kZXIoSC5hLmNyZWF0ZUVsZW1lbnQodCxudWxsKSkpOmNvbnNvbGUud2FybigiR2V0QnV0dG9uIGlzIGVtcHR5Iik6Y29uc29sZS53YXJuKCJXaWRnZXQgaXMgaGlkZGVuIixnKX0sY2E9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yb290Q29udGFpbmVyLGU9ZS5jb250YWluZXJJZCxuPU9iamVjdChGLnVzZUNvbnRleHQpKFYpLHI9bi5hY3Rpb25zLG49bi5zZXR0aW5ncyxvPShILmEudXNlRWZmZWN0KGZ1bmN0aW9uKCl7d2luZG93LldoV2lkZ2V0U2VuZEJ1dHRvbj13aW5kb3cuV2hXaWRnZXRTZW5kQnV0dG9ufHx7fSx3aW5kb3cuV2hXaWRnZXRTZW5kQnV0dG9uLnNob3dQb3B1cD1mdW5jdGlvbihlKXtyLnNob3dCdXR0b25Qb3B1cChlKX19LFtdKSxuLnNoaWZ0VmVydGljYWwpLGE9bi5zaGlmdEhvcml6b250YWwsaT1uLnBvc2l0aW9uLGw9bi5kaXJlY3Rpb24sYz1uLmFjdGl2YXRvclNpemUsdT1uLmJ1dHRvbkNvbG9yLGw9IlxuICAgIGJvdHRvbTogIi5jb25jYXQobywicHggIWltcG9ydGFudDtcbiAgICAiKS5jb25jYXQoaSwiOiAiKS5jb25jYXQoYSwicHggIWltcG9ydGFudDtcbiAgICAvLyBvcGFjaXR5OiAwO1xuICAgIC8vIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDE2MDAwMTYwICFpbXBvcnRhbnQ7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgdGV4dC1hbGlnbjogIikuY29uY2F0KCJyaWdodCI9PT1pPyJyaWdodCI6ImxlZnQiLCI7XG4gICAgZGlzcGxheTogIikuY29uY2F0KCJyb3ciPT09bCYmImZsZXgiLCI7XG4gICAgYWxpZ24taXRlbXM6ICIpLmNvbmNhdCgicm93Ij09PWwmJiJmbGV4LWVuZCIsIjtcbiAgICBmbGV4LWRpcmVjdGlvbjogIikuY29uY2F0KCJsZWZ0Ij09PWkmJiJyb3ctcmV2ZXJzZSIsIjtcbiAgIiksbz0odC5zZXRBdHRyaWJ1dGUoInN0eWxlIixsKSx7c2hpZnRWZXJ0aWNhbDpvLHNoaWZ0SG9yaXpvbnRhbDphLGFjdGl2YXRvclNpemU6Yyxwb3NpdGlvbjppfSk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJzdHlsZSIsbCksSC5hLmNyZWF0ZUVsZW1lbnQoSC5hLkZyYWdtZW50LG51bGwsSC5hLmNyZWF0ZUVsZW1lbnQoWm8se2NvbnRhaW5lcklkOmUsc3R5bGVzOm8sc2V0dGluZ3M6bn0pLEguYS5jcmVhdGVFbGVtZW50KHNlLHt0aGVtZTppfSxILmEuY3JlYXRlRWxlbWVudChHcixudWxsKSxILmEuY3JlYXRlRWxlbWVudChLcixudWxsKSxILmEuY3JlYXRlRWxlbWVudChxcixudWxsKSxILmEuY3JlYXRlRWxlbWVudCh5byx7Y29sb3I6dX0pKSl9fV0scj17fSxvLm09bixvLmM9cixvLmQ9ZnVuY3Rpb24oZSx0LG4pe28ubyhlLHQpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpufSl9LG8ucj1mdW5jdGlvbihlKXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxvLnQ9ZnVuY3Rpb24odCxlKXtpZigxJmUmJih0PW8odCkpLDgmZSlyZXR1cm4gdDtpZig0JmUmJiJvYmplY3QiPT10eXBlb2YgdCYmdCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoby5yKG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSksMiZlJiYic3RyaW5nIiE9dHlwZW9mIHQpZm9yKHZhciByIGluIHQpby5kKG4scixmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0uYmluZChudWxsLHIpKTtyZXR1cm4gbn0sby5uPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBvLmQodCwiYSIsdCksdH0sby5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxvLnA9Ii8iLG8oby5zPTE3OCl9KCk7"}},"time_used":6,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/css?family=Poppins:100,200,300,400,500,600,700,800,900","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.040Z","timestamp":1785132838040,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /css?family=Poppins:100,200,300,400,500,600,700,800,900 HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\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 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1637,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-27T09:47:46.014144Z","times_seen":144055,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/2/2.2.1/iconify.min.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.354Z","timestamp":1785132838354,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /2/2.2.1/iconify.min.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Thu, 31 Mar 2022 19:39:44 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 9640\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":28397,"size_decoded":9877,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (28019)","md5":"5d01ed9b7f0860991221e6fc60327961","sha1":"c45a9f68f835d8f80a7ccbd00ac45ae8bed737fa","sha256":"3bdb8c77e05fc0fe1c4921f7756422d44660c75995e2eae57672e72a8cbabaea","sha512":"b14e46cdcd74f1df044405c4528361dc3650dc6642432ca05647ae848c4547e0fd1a8f242f0dc27b71d50ff008e5c9e11b35bb2a6f55e2838e89ea4a703d2f96","ssdeep":"384:6wjt2SSjDHl8MZStId++UgYnkVWl+GTxS75ykvUoR91iGAU55KDcS+o:FjGDH7d7YkIl+B9ykvvR6GXK1","tlshash":"2cd2daecb29db06546a3187240bf040bf23be621685ec440d217f4e1acbd76e6977e6d","first_seen":"2023-03-08T07:43:28Z","last_seen":"2026-07-27T06:14:42.685407Z","times_seen":113,"resource_available":true,"data":"LyoqCiogKGMpIEljb25pZnkKKgoqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBsaWNlbnNlLnR4dCBvciBsaWNlbnNlLmdwbC50eHQKKiBmaWxlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vaWNvbmlmeS9pY29uaWZ5CioKKiBMaWNlbnNlZCB1bmRlciBBcGFjaGUgMi4wIG9yIEdQTCAyLjAgYXQgeW91ciBvcHRpb24uCiogSWYgZGVyaXZhdGl2ZSBwcm9kdWN0IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggb25lIG9mIGxpY2Vuc2VzLCB5b3UgY2FuIHBpY2sgb25lIG9mIGxpY2Vuc2VzLgoqCiogQGxpY2Vuc2UgQXBhY2hlIDIuMAoqIEBsaWNlbnNlIEdQTCAyLjAKKiBAdmVyc2lvbiAyLjIuMQoqLwp2YXIgSWNvbmlmeT1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7dmFyIG49L15bYS16MC05XSsoLVthLXowLTldKykqJC8sdD1PYmplY3QuZnJlZXplKHtsZWZ0OjAsdG9wOjAsd2lkdGg6MTYsaGVpZ2h0OjE2LHJvdGF0ZTowLHZGbGlwOiExLGhGbGlwOiExfSk7ZnVuY3Rpb24gcihlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0LGUpfWZ1bmN0aW9uIGkoZSxuLGkpe3ZvaWQgMD09PWkmJihpPSExKTt2YXIgbz1mdW5jdGlvbiBuKHIsaSl7aWYodm9pZCAwIT09ZS5pY29uc1tyXSlyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxlLmljb25zW3JdKTtpZihpPjUpcmV0dXJuIG51bGw7dmFyIG89ZS5hbGlhc2VzO2lmKG8mJnZvaWQgMCE9PW9bcl0pe3ZhciBhPW9bcl0sYz1uKGEucGFyZW50LGkrMSk7cmV0dXJuIGM/ZnVuY3Rpb24oZSxuKXt2YXIgcj1PYmplY3QuYXNzaWduKHt9LGUpO2Zvcih2YXIgaSBpbiB0KXt2YXIgbz1pO2lmKHZvaWQgMCE9PW5bb10pe3ZhciBhPW5bb107aWYodm9pZCAwPT09cltvXSl7cltvXT1hO2NvbnRpbnVlfXN3aXRjaChvKXtjYXNlInJvdGF0ZSI6cltvXT0ocltvXSthKSU0O2JyZWFrO2Nhc2UiaEZsaXAiOmNhc2UidkZsaXAiOnJbb109YSE9PXJbb107YnJlYWs7ZGVmYXVsdDpyW29dPWF9fX1yZXR1cm4gcn0oYyxhKTpjfXZhciBmPWUuY2hhcnM7cmV0dXJuIWkmJmYmJnZvaWQgMCE9PWZbcl0/bihmW3JdLGkrMSk6bnVsbH0obiwwKTtpZihvKWZvcih2YXIgYSBpbiB0KXZvaWQgMD09PW9bYV0mJnZvaWQgMCE9PWVbYV0mJihvW2FdPWVbYV0pO3JldHVybiBvJiZpP3Iobyk6b31mdW5jdGlvbiBvKGUsbixyKXtyPXJ8fHt9O3ZhciBvPVtdO2lmKCJvYmplY3QiIT10eXBlb2YgZXx8Im9iamVjdCIhPXR5cGVvZiBlLmljb25zKXJldHVybiBvO2Uubm90X2ZvdW5kIGluc3RhbmNlb2YgQXJyYXkmJmUubm90X2ZvdW5kLmZvckVhY2goKGZ1bmN0aW9uKGUpe24oZSxudWxsKSxvLnB1c2goZSl9KSk7dmFyIGE9ZS5pY29ucztPYmplY3Qua2V5cyhhKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1pKGUsdCwhMCk7ciYmKG4odCxyKSxvLnB1c2godCkpfSkpO3ZhciBjPXIuYWxpYXNlc3x8ImFsbCI7aWYoIm5vbmUiIT09YyYmIm9iamVjdCI9PXR5cGVvZiBlLmFsaWFzZXMpe3ZhciBmPWUuYWxpYXNlcztPYmplY3Qua2V5cyhmKS5mb3JFYWNoKChmdW5jdGlvbihyKXtpZigidmFyaWF0aW9ucyIhPT1jfHwhZnVuY3Rpb24oZSl7Zm9yKHZhciBuIGluIHQpaWYodm9pZCAwIT09ZVtuXSlyZXR1cm4hMDtyZXR1cm4hMX0oZltyXSkpe3ZhciBhPWkoZSxyLCEwKTthJiYobihyLGEpLG8ucHVzaChyKSl9fSkpfXJldHVybiBvfXZhciBhPXtwcm92aWRlcjoic3RyaW5nIixhbGlhc2VzOiJvYmplY3QiLG5vdF9mb3VuZDoib2JqZWN0In07Zm9yKHZhciBjIGluIHQpYVtjXT10eXBlb2YgdFtjXTtmdW5jdGlvbiBmKGUpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIG51bGw7dmFyIHI9ZTtpZigic3RyaW5nIiE9dHlwZW9mIHIucHJlZml4fHwhZS5pY29uc3x8Im9iamVjdCIhPXR5cGVvZiBlLmljb25zKXJldHVybiBudWxsO2Zvcih2YXIgaSBpbiBhKWlmKHZvaWQgMCE9PWVbaV0mJnR5cGVvZiBlW2ldIT09YVtpXSlyZXR1cm4gbnVsbDt2YXIgbz1yLmljb25zO2Zvcih2YXIgYyBpbiBvKXt2YXIgZj1vW2NdO2lmKCFjLm1hdGNoKG4pfHwic3RyaW5nIiE9dHlwZW9mIGYuYm9keSlyZXR1cm4gbnVsbDtmb3IodmFyIHUgaW4gdClpZih2b2lkIDAhPT1mW3VdJiZ0eXBlb2YgZlt1XSE9dHlwZW9mIHRbdV0pcmV0dXJuIG51bGx9dmFyIHM9ci5hbGlhc2VzO2lmKHMpZm9yKHZhciBsIGluIHMpe3ZhciB2PXNbbF0sZD12LnBhcmVudDtpZighbC5tYXRjaChuKXx8InN0cmluZyIhPXR5cGVvZiBkfHwhb1tkXSYmIXNbZF0pcmV0dXJuIG51bGw7Zm9yKHZhciBwIGluIHQpaWYodm9pZCAwIT09dltwXSYmdHlwZW9mIHZbcF0hPXR5cGVvZiB0W3BdKXJldHVybiBudWxsfXJldHVybiByfXZhciB1PWZ1bmN0aW9uKGUsbix0LHIpe3ZvaWQgMD09PXImJihyPSIiKTt2YXIgaT1lLnNwbGl0KCI6Iik7aWYoIkAiPT09ZS5zbGljZSgwLDEpKXtpZihpLmxlbmd0aDwyfHxpLmxlbmd0aD4zKXJldHVybiBudWxsO3I9aS5zaGlmdCgpLnNsaWNlKDEpfWlmKGkubGVuZ3RoPjN8fCFpLmxlbmd0aClyZXR1cm4gbnVsbDtpZihpLmxlbmd0aD4xKXt2YXIgbz1pLnBvcCgpLGE9aS5wb3AoKSxjPXtwcm92aWRlcjppLmxlbmd0aD4wP2lbMF06cixwcmVmaXg6YSxuYW1lOm99O3JldHVybiBuJiYhcyhjKT9udWxsOmN9dmFyIGY9aVswXSx1PWYuc3BsaXQoIi0iKTtpZih1Lmxlbmd0aD4xKXt2YXIgbD17cHJvdmlkZXI6cixwcmVmaXg6dS5zaGlmdCgpLG5hbWU6dS5qb2luKCItIil9O3JldHVybiBuJiYhcyhsKT9udWxsOmx9aWYodCYmIiI9PT1yKXt2YXIgdj17cHJvdmlkZXI6cixwcmVmaXg6IiIsbmFtZTpmfTtyZXR1cm4gbiYmIXModix0KT9udWxsOnZ9cmV0dXJuIG51bGx9LHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4hIWUmJiEoIiIhPT1lLnByb3ZpZGVyJiYhZS5wcm92aWRlci5tYXRjaChuKXx8ISh0JiYiIj09PWUucHJlZml4fHxlLnByZWZpeC5tYXRjaChuKSl8fCFlLm5hbWUubWF0Y2gobikpfSxsPU9iamVjdC5jcmVhdGUobnVsbCk7dHJ5e3ZhciB2PXdpbmRvd3x8c2VsZjt2JiYxPT09di5faWNvbmlmeVN0b3JhZ2UudmVyc2lvbiYmKGw9di5faWNvbmlmeVN0b3JhZ2Uuc3RvcmFnZSl9Y2F0Y2goTW4pe31mdW5jdGlvbiBkKCl7dHJ5e3ZhciBlPXdpbmRvd3x8c2VsZjtlJiYhZS5faWNvbmlmeVN0b3JhZ2UmJihlLl9pY29uaWZ5U3RvcmFnZT17dmVyc2lvbjoxLHN0b3JhZ2U6bH0pfWNhdGNoKGUpe319ZnVuY3Rpb24gcChlLG4pe3ZvaWQgMD09PWxbZV0mJihsW2VdPU9iamVjdC5jcmVhdGUobnVsbCkpO3ZhciB0PWxbZV07cmV0dXJuIHZvaWQgMD09PXRbbl0mJih0W25dPWZ1bmN0aW9uKGUsbil7cmV0dXJue3Byb3ZpZGVyOmUscHJlZml4Om4saWNvbnM6T2JqZWN0LmNyZWF0ZShudWxsKSxtaXNzaW5nOk9iamVjdC5jcmVhdGUobnVsbCl9fShlLG4pKSx0W25dfWZ1bmN0aW9uIGgoZSxuKXtpZighZihuKSlyZXR1cm5bXTt2YXIgdD1EYXRlLm5vdygpO3JldHVybiBvKG4sKGZ1bmN0aW9uKG4scil7cj9lLmljb25zW25dPXI6ZS5taXNzaW5nW25dPXR9KSl9ZnVuY3Rpb24gZyhlLG4pe3ZhciB0PWUuaWNvbnNbbl07cmV0dXJuIHZvaWQgMD09PXQ/bnVsbDp0fWZ1bmN0aW9uIG0oZSxuKXt2YXIgdD1bXTtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBlP1tlXTpPYmplY3Qua2V5cyhsKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7KCJzdHJpbmciPT10eXBlb2YgZSYmInN0cmluZyI9PXR5cGVvZiBuP1tuXTp2b2lkIDA9PT1sW2VdP1tdOk9iamVjdC5rZXlzKGxbZV0pKS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgcj1wKGUsbiksaT1PYmplY3Qua2V5cyhyLmljb25zKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybigiIiE9PWU/IkAiK2UrIjoiOiIiKStuKyI6Iit0fSkpO3Q9dC5jb25jYXQoaSl9KSl9KSksdH12YXIgeT0hMTtmdW5jdGlvbiBiKGUpe3ZhciBuPSJzdHJpbmciPT10eXBlb2YgZT91KGUsITAseSk6ZTtyZXR1cm4gbj9nKHAobi5wcm92aWRlcixuLnByZWZpeCksbi5uYW1lKTpudWxsfWZ1bmN0aW9uIHgoZSxuKXt2YXIgdD11KGUsITAseSk7cmV0dXJuISF0JiZmdW5jdGlvbihlLG4sdCl7dHJ5e2lmKCJzdHJpbmciPT10eXBlb2YgdC5ib2R5KXJldHVybiBlLmljb25zW25dPU9iamVjdC5mcmVlemUocih0KSksITB9Y2F0Y2goZSl7fXJldHVybiExfShwKHQucHJvdmlkZXIsdC5wcmVmaXgpLHQubmFtZSxuKX1mdW5jdGlvbiBqKGUsbil7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXJldHVybiExO2lmKCJzdHJpbmciIT10eXBlb2YgbiYmKG49InN0cmluZyI9PXR5cGVvZiBlLnByb3ZpZGVyP2UucHJvdmlkZXI6IiIpLHkmJiIiPT09biYmKCJzdHJpbmciIT10eXBlb2YgZS5wcmVmaXh8fCIiPT09ZS5wcmVmaXgpKXt2YXIgdD0hMTtyZXR1cm4gZihlKSYmKGUucHJlZml4PSIiLG8oZSwoZnVuY3Rpb24oZSxuKXtuJiZ4KGUsbikmJih0PSEwKX0pKSksdH1yZXR1cm4hKCJzdHJpbmciIT10eXBlb2YgZS5wcmVmaXh8fCFzKHtwcm92aWRlcjpuLHByZWZpeDplLnByZWZpeCxuYW1lOiJhIn0pKSYmISFoKHAobixlLnByZWZpeCksZSl9ZnVuY3Rpb24gdyhlKXtyZXR1cm4gbnVsbCE9PWIoZSl9ZnVuY3Rpb24gTyhlKXt2YXIgbj1iKGUpO3JldHVybiBuP09iamVjdC5hc3NpZ24oe30sbik6bnVsbH12YXIgRT1PYmplY3QuZnJlZXplKHtpbmxpbmU6ITEsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxoQWxpZ246ImNlbnRlciIsdkFsaWduOiJtaWRkbGUiLHNsaWNlOiExLGhGbGlwOiExLHZGbGlwOiExLHJvdGF0ZTowfSk7ZnVuY3Rpb24gSShlLG4pe3ZhciB0PXt9O2Zvcih2YXIgciBpbiBlKXt2YXIgaT1yO2lmKHRbaV09ZVtpXSx2b2lkIDAhPT1uW2ldKXt2YXIgbz1uW2ldO3N3aXRjaChpKXtjYXNlImlubGluZSI6Y2FzZSJzbGljZSI6ImJvb2xlYW4iPT10eXBlb2YgbyYmKHRbaV09byk7YnJlYWs7Y2FzZSJoRmxpcCI6Y2FzZSJ2RmxpcCI6ITA9PT1vJiYodFtpXT0hdFtpXSk7YnJlYWs7Y2FzZSJoQWxpZ24iOmNhc2UidkFsaWduIjoic3RyaW5nIj09dHlwZW9mIG8mJiIiIT09byYmKHRbaV09byk7YnJlYWs7Y2FzZSJ3aWR0aCI6Y2FzZSJoZWlnaHQiOigic3RyaW5nIj09dHlwZW9mIG8mJiIiIT09b3x8Im51bWJlciI9PXR5cGVvZiBvJiZvfHxudWxsPT09bykmJih0W2ldPW8pO2JyZWFrO2Nhc2Uicm90YXRlIjoibnVtYmVyIj09dHlwZW9mIG8mJih0W2ldKz1vKX19fXJldHVybiB0fXZhciBTPS8oLT9bMC05Ll0qWzAtOV0rWzAtOS5dKikvZyxrPS9eLT9bMC05Ll0qWzAtOV0rWzAtOS5dKiQvZztmdW5jdGlvbiBBKGUsbix0KXtpZigxPT09bilyZXR1cm4gZTtpZih0PXZvaWQgMD09PXQ/MTAwOnQsIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBNYXRoLmNlaWwoZSpuKnQpL3Q7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBlO3ZhciByPWUuc3BsaXQoUyk7aWYobnVsbD09PXJ8fCFyLmxlbmd0aClyZXR1cm4gZTtmb3IodmFyIGk9W10sbz1yLnNoaWZ0KCksYT1rLnRlc3Qobyk7Oyl7aWYoYSl7dmFyIGM9cGFyc2VGbG9hdChvKTtpc05hTihjKT9pLnB1c2gobyk6aS5wdXNoKE1hdGguY2VpbChjKm4qdCkvdCl9ZWxzZSBpLnB1c2gobyk7aWYodm9pZCAwPT09KG89ci5zaGlmdCgpKSlyZXR1cm4gaS5qb2luKCIiKTthPSFhfX1mdW5jdGlvbiBNKGUpe3ZhciBuPSIiO3N3aXRjaChlLmhBbGlnbil7Y2FzZSJsZWZ0IjpuKz0ieE1pbiI7YnJlYWs7Y2FzZSJyaWdodCI6bis9InhNYXgiO2JyZWFrO2RlZmF1bHQ6bis9InhNaWQifXN3aXRjaChlLnZBbGlnbil7Y2FzZSJ0b3AiOm4rPSJZTWluIjticmVhaztjYXNlImJvdHRvbSI6bis9IllNYXgiO2JyZWFrO2RlZmF1bHQ6bis9IllNaWQifXJldHVybiBuKz1lLnNsaWNlPyIgc2xpY2UiOiIgbWVldCJ9ZnVuY3Rpb24gVChlLG4pe3ZhciB0LHIsaT17bGVmdDplLmxlZnQsdG9wOmUudG9wLHdpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0fSxvPWUuYm9keTtbZSxuXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbix0PVtdLHI9ZS5oRmxpcCxhPWUudkZsaXAsYz1lLnJvdGF0ZTtzd2l0Y2gocj9hP2MrPTI6KHQucHVzaCgidHJhbnNsYXRlKCIrKGkud2lkdGgraS5sZWZ0KS50b1N0cmluZygpKyIgIisoMC1pLnRvcCkudG9TdHJpbmcoKSsiKSIpLHQucHVzaCgic2NhbGUoLTEgMSkiKSxpLnRvcD1pLmxlZnQ9MCk6YSYmKHQucHVzaCgidHJhbnNsYXRlKCIrKDAtaS5sZWZ0KS50b1N0cmluZygpKyIgIisoaS5oZWlnaHQraS50b3ApLnRvU3RyaW5nKCkrIikiKSx0LnB1c2goInNjYWxlKDEgLTEpIiksaS50b3A9aS5sZWZ0PTApLGM8MCYmKGMtPTQqTWF0aC5mbG9vcihjLzQpKSxjJT00KXtjYXNlIDE6bj1pLmhlaWdodC8yK2kudG9wLHQudW5zaGlmdCgicm90YXRlKDkwICIrbi50b1N0cmluZygpKyIgIituLnRvU3RyaW5nKCkrIikiKTticmVhaztjYXNlIDI6dC51bnNoaWZ0KCJyb3RhdGUoMTgwICIrKGkud2lkdGgvMitpLmxlZnQpLnRvU3RyaW5nKCkrIiAiKyhpLmhlaWdodC8yK2kudG9wKS50b1N0cmluZygpKyIpIik7YnJlYWs7Y2FzZSAzOm49aS53aWR0aC8yK2kubGVmdCx0LnVuc2hpZnQoInJvdGF0ZSgtOTAgIituLnRvU3RyaW5nKCkrIiAiK24udG9TdHJpbmcoKSsiKSIpfWMlMj09MSYmKDA9PT1pLmxlZnQmJjA9PT1pLnRvcHx8KG49aS5sZWZ0LGkubGVmdD1pLnRvcCxpLnRvcD1uKSxpLndpZHRoIT09aS5oZWlnaHQmJihuPWkud2lkdGgsaS53aWR0aD1pLmhlaWdodCxpLmhlaWdodD1uKSksdC5sZW5ndGgmJihvPSc8ZyB0cmFuc2Zvcm09IicrdC5qb2luKCIgIikrJyI+JytvKyI8L2c+Iil9KSksbnVsbD09PW4ud2lkdGgmJm51bGw9PT1uLmhlaWdodD90PUEocj0iMWVtIixpLndpZHRoL2kuaGVpZ2h0KTpudWxsIT09bi53aWR0aCYmbnVsbCE9PW4uaGVpZ2h0Pyh0PW4ud2lkdGgscj1uLmhlaWdodCk6bnVsbCE9PW4uaGVpZ2h0P3Q9QShyPW4uaGVpZ2h0LGkud2lkdGgvaS5oZWlnaHQpOnI9QSh0PW4ud2lkdGgsaS5oZWlnaHQvaS53aWR0aCksImF1dG8iPT09dCYmKHQ9aS53aWR0aCksImF1dG8iPT09ciYmKHI9aS5oZWlnaHQpO3ZhciBhPXthdHRyaWJ1dGVzOnt3aWR0aDp0PSJzdHJpbmciPT10eXBlb2YgdD90OnQudG9TdHJpbmcoKSsiIixoZWlnaHQ6cj0ic3RyaW5nIj09dHlwZW9mIHI/cjpyLnRvU3RyaW5nKCkrIiIscHJlc2VydmVBc3BlY3RSYXRpbzpNKG4pLHZpZXdCb3g6aS5sZWZ0LnRvU3RyaW5nKCkrIiAiK2kudG9wLnRvU3RyaW5nKCkrIiAiK2kud2lkdGgudG9TdHJpbmcoKSsiICIraS5oZWlnaHQudG9TdHJpbmcoKX0sYm9keTpvfTtyZXR1cm4gbi5pbmxpbmUmJihhLmlubGluZT0hMCksYX1mdW5jdGlvbiBGKGUsbil7cmV0dXJuIFQocihlKSxuP0koRSxuKTpFKX12YXIgUD0vXHNpZD0iKFxTKykiL2csQz0iSWNvbmlmeUlkIitEYXRlLm5vdygpLnRvU3RyaW5nKDE2KSsoMTY3NzcyMTYqTWF0aC5yYW5kb20oKXwwKS50b1N0cmluZygxNiksXz0wO2Z1bmN0aW9uIEQoZSxuKXt2b2lkIDA9PT1uJiYobj1DKTtmb3IodmFyIHQscj1bXTt0PVAuZXhlYyhlKTspci5wdXNoKHRbMV0pO3JldHVybiByLmxlbmd0aD8oci5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uKHQpOm4rKF8rKykudG9TdHJpbmcoKSxpPXQucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csIlxcJCYiKTtlPWUucmVwbGFjZShuZXcgUmVnRXhwKCcoWyM7Il0pKCcraSsnKShbIildfFxcLlthLXpdKScsImciKSwiJDEiK3IrIiQzIil9KSksZSk6ZX12YXIgTD0iaWNvbmlmeTIiLE49Imljb25pZnkiLFI9Imljb25pZnktY291bnQiLHo9Imljb25pZnktdmVyc2lvbiIsVT0zNmU1LHE9e2xvY2FsOiEwLHNlc3Npb246ITB9LCQ9ITEsSD17bG9jYWw6MCxzZXNzaW9uOjB9LFY9e2xvY2FsOltdLHNlc3Npb246W119LFk9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/e306d2luZG93O2Z1bmN0aW9uIEcoZSl7dmFyIG49ZSsiU3RvcmFnZSI7dHJ5e2lmKFkmJllbbl0mJiJudW1iZXIiPT10eXBlb2YgWVtuXS5sZW5ndGgpcmV0dXJuIFlbbl19Y2F0Y2goZSl7fXJldHVybiBxW2VdPSExLG51bGx9ZnVuY3Rpb24gSihlLG4sdCl7dHJ5e3JldHVybiBlLnNldEl0ZW0oUix0LnRvU3RyaW5nKCkpLEhbbl09dCwhMH1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gQihlKXt2YXIgbj1lLmdldEl0ZW0oUik7aWYobil7dmFyIHQ9cGFyc2VJbnQobik7cmV0dXJuIHR8fDB9cmV0dXJuIDB9dmFyIFE9ZnVuY3Rpb24oKXtpZighJCl7JD0hMDt2YXIgZT1NYXRoLmZsb29yKERhdGUubm93KCkvVSktMTY4O2Zvcih2YXIgbiBpbiBxKXQobil9ZnVuY3Rpb24gdChuKXt2YXIgdD1HKG4pO2lmKHQpe3ZhciByPWZ1bmN0aW9uKG4pe3ZhciByPU4rbi50b1N0cmluZygpLGk9dC5nZXRJdGVtKHIpO2lmKCJzdHJpbmciIT10eXBlb2YgaSlyZXR1cm4hMTt2YXIgbz0hMDt0cnl7dmFyIGE9SlNPTi5wYXJzZShpKTtpZigib2JqZWN0IiE9dHlwZW9mIGF8fCJudW1iZXIiIT10eXBlb2YgYS5jYWNoZWR8fGEuY2FjaGVkPGV8fCJzdHJpbmciIT10eXBlb2YgYS5wcm92aWRlcnx8Im9iamVjdCIhPXR5cGVvZiBhLmRhdGF8fCJzdHJpbmciIT10eXBlb2YgYS5kYXRhLnByZWZpeClvPSExO2Vsc2Ugbz1oKHAoYS5wcm92aWRlcixhLmRhdGEucHJlZml4KSxhLmRhdGEpLmxlbmd0aD4wfWNhdGNoKGUpe289ITF9cmV0dXJuIG98fHQucmVtb3ZlSXRlbShyKSxvfTt0cnl7dmFyIGk9dC5nZXRJdGVtKHopO2lmKGkhPT1MKXJldHVybiBpJiZmdW5jdGlvbihlKXt0cnl7Zm9yKHZhciBuPUIoZSksdD0wO3Q8bjt0KyspZS5yZW1vdmVJdGVtKE4rdC50b1N0cmluZygpKX1jYXRjaChlKXt9fSh0KSx2b2lkIGZ1bmN0aW9uKGUsbil7dHJ5e2Uuc2V0SXRlbSh6LEwpfWNhdGNoKGUpe31KKGUsbiwwKX0odCxuKTtmb3IodmFyIG89Qih0KSxhPW8tMTthPj0wO2EtLSlyKGEpfHwoYT09PW8tMT9vLS06VltuXS5wdXNoKGEpKTtKKHQsbixvKX1jYXRjaChlKXt9fX19LEs9e307ZnVuY3Rpb24gVyhlLG4pe3N3aXRjaChlKXtjYXNlImxvY2FsIjpjYXNlInNlc3Npb24iOnFbZV09bjticmVhaztjYXNlImFsbCI6Zm9yKHZhciB0IGluIHEpcVt0XT1ufX12YXIgWD1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIFooZSxuKXtYW2VdPW59ZnVuY3Rpb24gZWUoZSl7cmV0dXJuIFhbZV18fFhbIiJdfWZ1bmN0aW9uIG5lKGUpe3ZhciBuO2lmKCJzdHJpbmciPT10eXBlb2YgZS5yZXNvdXJjZXMpbj1bZS5yZXNvdXJjZXNdO2Vsc2UgaWYoISgobj1lLnJlc291cmNlcylpbnN0YW5jZW9mIEFycmF5JiZuLmxlbmd0aCkpcmV0dXJuIG51bGw7cmV0dXJue3Jlc291cmNlczpuLHBhdGg6dm9pZCAwPT09ZS5wYXRoPyIvIjplLnBhdGgsbWF4VVJMOmUubWF4VVJMP2UubWF4VVJMOjUwMCxyb3RhdGU6ZS5yb3RhdGU/ZS5yb3RhdGU6NzUwLHRpbWVvdXQ6ZS50aW1lb3V0P2UudGltZW91dDo1ZTMscmFuZG9tOiEwPT09ZS5yYW5kb20saW5kZXg6ZS5pbmRleD9lLmluZGV4OjAsZGF0YUFmdGVyVGltZW91dDohMSE9PWUuZGF0YUFmdGVyVGltZW91dH19Zm9yKHZhciB0ZT1PYmplY3QuY3JlYXRlKG51bGwpLHJlPVsiaHR0cHM6Ly9hcGkuc2ltcGxlc3ZnLmNvbSIsImh0dHBzOi8vYXBpLnVuaXN2Zy5jb20iXSxpZT1bXTtyZS5sZW5ndGg+MDspMT09PXJlLmxlbmd0aHx8TWF0aC5yYW5kb20oKT4uNT9pZS5wdXNoKHJlLnNoaWZ0KCkpOmllLnB1c2gocmUucG9wKCkpO2Z1bmN0aW9uIG9lKGUsbil7dmFyIHQ9bmUobik7cmV0dXJuIG51bGwhPT10JiYodGVbZV09dCwhMCl9ZnVuY3Rpb24gYWUoZSl7cmV0dXJuIHRlW2VdfXRlWyIiXT1uZSh7cmVzb3VyY2VzOlsiaHR0cHM6Ly9hcGkuaWNvbmlmeS5kZXNpZ24iXS5jb25jYXQoaWUpfSk7dmFyIGNlPWZ1bmN0aW9uKGUsbil7dmFyIHQ9ZSxyPS0xIT09dC5pbmRleE9mKCI/Iik7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBpO3RyeXtpPWZ1bmN0aW9uKGUpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZSJib29sZWFuIjpyZXR1cm4gZT8idHJ1ZSI6ImZhbHNlIjtjYXNlIm51bWJlciI6Y2FzZSJzdHJpbmciOnJldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcGFyYW1ldGVyIil9fShuW2VdKX1jYXRjaChlKXtyZXR1cm59dCs9KHI/IiYiOiI/IikrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyI9IitpLHI9ITB9KSksdH0sZmU9e30sdWU9e30sc2U9ZnVuY3Rpb24oKXt2YXIgZTt0cnl7aWYoImZ1bmN0aW9uIj09dHlwZW9mKGU9ZmV0Y2gpKXJldHVybiBlfWNhdGNoKGUpe31yZXR1cm4gbnVsbH0oKTt2YXIgbGU9e3ByZXBhcmU6ZnVuY3Rpb24oZSxuLHQpe3ZhciByPVtdLGk9ZmVbbl07dm9pZCAwPT09aSYmKGk9ZnVuY3Rpb24oZSxuKXt2YXIgdCxyPWFlKGUpO2lmKCFyKXJldHVybiAwO2lmKHIubWF4VVJMKXt2YXIgaT0wO3IucmVzb3VyY2VzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPWU7aT1NYXRoLm1heChpLG4ubGVuZ3RoKX0pKTt2YXIgbz1jZShuKyIuanNvbiIse2ljb25zOiIifSk7dD1yLm1heFVSTC1pLXIucGF0aC5sZW5ndGgtby5sZW5ndGh9ZWxzZSB0PTA7dmFyIGE9ZSsiOiIrbjtyZXR1cm4gdWVbZV09ci5wYXRoLGZlW2FdPXQsdH0oZSxuKSk7dmFyIG89Imljb25zIixhPXt0eXBlOm8scHJvdmlkZXI6ZSxwcmVmaXg6bixpY29uczpbXX0sYz0wO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQsZil7KGMrPXQubGVuZ3RoKzEpPj1pJiZmPjAmJihyLnB1c2goYSksYT17dHlwZTpvLHByb3ZpZGVyOmUscHJlZml4Om4saWNvbnM6W119LGM9dC5sZW5ndGgpLGEuaWNvbnMucHVzaCh0KX0pKSxyLnB1c2goYSkscn0sc2VuZDpmdW5jdGlvbihlLG4sdCl7aWYoc2Upe3ZhciByPWZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7aWYodm9pZCAwPT09dWVbZV0pe3ZhciBuPWFlKGUpO2lmKCFuKXJldHVybiIvIjt1ZVtlXT1uLnBhdGh9cmV0dXJuIHVlW2VdfXJldHVybiIvIn0obi5wcm92aWRlcik7c3dpdGNoKG4udHlwZSl7Y2FzZSJpY29ucyI6dmFyIGk9bi5wcmVmaXgsbz1uLmljb25zLmpvaW4oIiwiKTtyKz1jZShpKyIuanNvbiIse2ljb25zOm99KTticmVhaztjYXNlImN1c3RvbSI6dmFyIGE9bi51cmk7cis9Ii8iPT09YS5zbGljZSgwLDEpP2Euc2xpY2UoMSk6YTticmVhaztkZWZhdWx0OnJldHVybiB2b2lkIHQoImFib3J0Iiw0MDApfXZhciBjPTUwMztzZShlK3IpLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciBuPWUuc3RhdHVzO2lmKDIwMD09PW4pcmV0dXJuIGM9NTAxLGUuanNvbigpO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dChmdW5jdGlvbihlKXtyZXR1cm4gNDA0PT09ZX0obik/ImFib3J0IjoibmV4dCIsbil9KSl9KSkudGhlbigoZnVuY3Rpb24oZSl7Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZT9zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QoInN1Y2Nlc3MiLGUpfSkpOnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dCgibmV4dCIsYyl9KSl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7dCgibmV4dCIsYyl9KSl9ZWxzZSB0KCJhYm9ydCIsNDI0KX19O3ZhciB2ZT1PYmplY3QuY3JlYXRlKG51bGwpLGRlPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gcGUoZSxuKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUucHJvdmlkZXI7aWYodm9pZCAwIT09dmVbdF0pe3ZhciByPXZlW3RdLGk9ZS5wcmVmaXgsbz1yW2ldO28mJihyW2ldPW8uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZCE9PW59KSkpfX0pKX12YXIgaGU9MDt2YXIgZ2U9e3Jlc291cmNlczpbXSxpbmRleDowLHRpbWVvdXQ6MmUzLHJvdGF0ZTo3NTAscmFuZG9tOiExLGRhdGFBZnRlclRpbWVvdXQ6ITF9O2Z1bmN0aW9uIG1lKGUsbix0LHIpe3ZhciBpLG89ZS5yZXNvdXJjZXMubGVuZ3RoLGE9ZS5yYW5kb20/TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm8pOmUuaW5kZXg7aWYoZS5yYW5kb20pe3ZhciBjPWUucmVzb3VyY2VzLnNsaWNlKDApO2ZvcihpPVtdO2MubGVuZ3RoPjE7KXt2YXIgZj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqYy5sZW5ndGgpO2kucHVzaChjW2ZdKSxjPWMuc2xpY2UoMCxmKS5jb25jYXQoYy5zbGljZShmKzEpKX1pPWkuY29uY2F0KGMpfWVsc2UgaT1lLnJlc291cmNlcy5zbGljZShhKS5jb25jYXQoZS5yZXNvdXJjZXMuc2xpY2UoMCxhKSk7dmFyIHUscz1EYXRlLm5vdygpLGw9InBlbmRpbmciLHY9MCxkPW51bGwscD1bXSxoPVtdO2Z1bmN0aW9uIGcoKXtkJiYoY2xlYXJUaW1lb3V0KGQpLGQ9bnVsbCl9ZnVuY3Rpb24gbSgpeyJwZW5kaW5nIj09PWwmJihsPSJhYm9ydGVkIiksZygpLHAuZm9yRWFjaCgoZnVuY3Rpb24oZSl7InBlbmRpbmciPT09ZS5zdGF0dXMmJihlLnN0YXR1cz0iYWJvcnRlZCIpfSkpLHA9W119ZnVuY3Rpb24geShlLG4pe24mJihoPVtdKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmaC5wdXNoKGUpfWZ1bmN0aW9uIGIoKXtsPSJmYWlsZWQiLGguZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZSh2b2lkIDAsdSl9KSl9ZnVuY3Rpb24geCgpe3AuZm9yRWFjaCgoZnVuY3Rpb24oZSl7InBlbmRpbmciPT09ZS5zdGF0dXMmJihlLnN0YXR1cz0iYWJvcnRlZCIpfSkpLHA9W119ZnVuY3Rpb24gaigpe2lmKCJwZW5kaW5nIj09PWwpe2coKTt2YXIgcj1pLnNoaWZ0KCk7aWYodm9pZCAwPT09cilyZXR1cm4gcC5sZW5ndGg/dm9pZChkPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZygpLCJwZW5kaW5nIj09PWwmJih4KCksYigpKX0pLGUudGltZW91dCkpOnZvaWQgYigpO3ZhciBvPXtzdGF0dXM6InBlbmRpbmciLHJlc291cmNlOnIsY2FsbGJhY2s6ZnVuY3Rpb24obix0KXshZnVuY3Rpb24obix0LHIpe3ZhciBvPSJzdWNjZXNzIiE9PXQ7c3dpdGNoKHA9cC5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09bn0pKSxsKXtjYXNlInBlbmRpbmciOmJyZWFrO2Nhc2UiZmFpbGVkIjppZihvfHwhZS5kYXRhQWZ0ZXJUaW1lb3V0KXJldHVybjticmVhaztkZWZhdWx0OnJldHVybn1pZigiYWJvcnQiPT09dClyZXR1cm4gdT1yLHZvaWQgYigpO2lmKG8pcmV0dXJuIHU9cix2b2lkKHAubGVuZ3RofHwoaS5sZW5ndGg/aigpOmIoKSkpO2lmKGcoKSx4KCksIWUucmFuZG9tKXt2YXIgYT1lLnJlc291cmNlcy5pbmRleE9mKG4ucmVzb3VyY2UpOy0xIT09YSYmYSE9PWUuaW5kZXgmJihlLmluZGV4PWEpfWw9ImNvbXBsZXRlZCIsaC5mb3JFYWNoKChmdW5jdGlvbihlKXtlKHIpfSkpfShvLG4sdCl9fTtwLnB1c2gobyksdisrLGQ9c2V0VGltZW91dChqLGUucm90YXRlKSx0KHIsbixvLmNhbGxiYWNrKX19cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHImJmgucHVzaChyKSxzZXRUaW1lb3V0KGopLGZ1bmN0aW9uKCl7cmV0dXJue3N0YXJ0VGltZTpzLHBheWxvYWQ6bixzdGF0dXM6bCxxdWVyaWVzU2VudDp2LHF1ZXJpZXNQZW5kaW5nOnAubGVuZ3RoLHN1YnNjcmliZTp5LGFib3J0Om19fX1mdW5jdGlvbiB5ZShlKXt2YXIgbj1mdW5jdGlvbihlKXtpZighKCJvYmplY3QiPT10eXBlb2YgZSYmIm9iamVjdCI9PXR5cGVvZiBlLnJlc291cmNlcyYmZS5yZXNvdXJjZXMgaW5zdGFuY2VvZiBBcnJheSYmZS5yZXNvdXJjZXMubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgUmVkdW5jYW5jeSBjb25maWd1cmF0aW9uIik7dmFyIG4sdD1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihuIGluIGdlKXZvaWQgMCE9PWVbbl0/dFtuXT1lW25dOnRbbl09Z2Vbbl07cmV0dXJuIHR9KGUpLHQ9W107ZnVuY3Rpb24gcigpe3Q9dC5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiJwZW5kaW5nIj09PWUoKS5zdGF0dXN9KSl9dmFyIGk9e3F1ZXJ5OmZ1bmN0aW9uKGUsaSxvKXt2YXIgYT1tZShuLGUsaSwoZnVuY3Rpb24oZSxuKXtyKCksbyYmbyhlLG4pfSkpO3JldHVybiB0LnB1c2goYSksYX0sZmluZDpmdW5jdGlvbihlKXt2YXIgbj10LmZpbmQoKGZ1bmN0aW9uKG4pe3JldHVybiBlKG4pfSkpO3JldHVybiB2b2lkIDAhPT1uP246bnVsbH0sc2V0SW5kZXg6ZnVuY3Rpb24oZSl7bi5pbmRleD1lfSxnZXRJbmRleDpmdW5jdGlvbigpe3JldHVybiBuLmluZGV4fSxjbGVhbnVwOnJ9O3JldHVybiBpfWZ1bmN0aW9uIGJlKCl7fXZhciB4ZT1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIGplKGUsbix0KXt2YXIgcixpO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIG89ZWUoZSk7aWYoIW8pcmV0dXJuIHQodm9pZCAwLDQyNCksYmU7aT1vLnNlbmQ7dmFyIGE9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09eGVbZV0pe3ZhciBuPWFlKGUpO2lmKCFuKXJldHVybjt2YXIgdD17Y29uZmlnOm4scmVkdW5kYW5jeTp5ZShuKX07eGVbZV09dH1yZXR1cm4geGVbZV19KGUpO2EmJihyPWEucmVkdW5kYW5jeSl9ZWxzZXt2YXIgYz1uZShlKTtpZihjKXtyPXllKGMpO3ZhciBmPWVlKGUucmVzb3VyY2VzP2UucmVzb3VyY2VzWzBdOiIiKTtmJiYoaT1mLnNlbmQpfX1yZXR1cm4gciYmaT9yLnF1ZXJ5KG4saSx0KSgpLmFib3J0Oih0KHZvaWQgMCw0MjQpLGJlKX1mdW5jdGlvbiB3ZSgpe312YXIgT2U9T2JqZWN0LmNyZWF0ZShudWxsKSxFZT1PYmplY3QuY3JlYXRlKG51bGwpLEllPU9iamVjdC5jcmVhdGUobnVsbCksU2U9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBrZShlLG4pe3ZvaWQgMD09PUllW2VdJiYoSWVbZV09T2JqZWN0LmNyZWF0ZShudWxsKSk7dmFyIHQ9SWVbZV07dFtuXXx8KHRbbl09ITAsc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0W25dPSExLGZ1bmN0aW9uKGUsbil7dm9pZCAwPT09ZGVbZV0mJihkZVtlXT1PYmplY3QuY3JlYXRlKG51bGwpKTt2YXIgdD1kZVtlXTt0W25dfHwodFtuXT0hMCxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2lmKHRbbl09ITEsdm9pZCAwIT09dmVbZV0mJnZvaWQgMCE9PXZlW2VdW25dKXt2YXIgcj12ZVtlXVtuXS5zbGljZSgwKTtpZihyLmxlbmd0aCl7dmFyIGk9cChlLG4pLG89ITE7ci5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj10Lmljb25zLGE9ci5wZW5kaW5nLmxlbmd0aDtyLnBlbmRpbmc9ci5wZW5kaW5nLmZpbHRlcigoZnVuY3Rpb24odCl7aWYodC5wcmVmaXghPT1uKXJldHVybiEwO3ZhciBhPXQubmFtZTtpZih2b2lkIDAhPT1pLmljb25zW2FdKXIubG9hZGVkLnB1c2goe3Byb3ZpZGVyOmUscHJlZml4Om4sbmFtZTphfSk7ZWxzZXtpZih2b2lkIDA9PT1pLm1pc3NpbmdbYV0pcmV0dXJuIG89ITAsITA7ci5taXNzaW5nLnB1c2goe3Byb3ZpZGVyOmUscHJlZml4Om4sbmFtZTphfSl9cmV0dXJuITF9KSksci5wZW5kaW5nLmxlbmd0aCE9PWEmJihvfHxwZShbe3Byb3ZpZGVyOmUscHJlZml4Om59XSx0LmlkKSx0LmNhbGxiYWNrKHIubG9hZGVkLnNsaWNlKDApLHIubWlzc2luZy5zbGljZSgwKSxyLnBlbmRpbmcuc2xpY2UoMCksdC5hYm9ydCkpfSkpfX19KSkpfShlLG4pfSkpKX12YXIgQWU9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBNZShlLG4sdCl7dm9pZCAwPT09RWVbZV0mJihFZVtlXT1PYmplY3QuY3JlYXRlKG51bGwpKTt2YXIgcj1FZVtlXTt2b2lkIDA9PT1TZVtlXSYmKFNlW2VdPU9iamVjdC5jcmVhdGUobnVsbCkpO3ZhciBpPVNlW2VdO3ZvaWQgMD09PU9lW2VdJiYoT2VbZV09T2JqZWN0LmNyZWF0ZShudWxsKSk7dmFyIG89T2VbZV07dm9pZCAwPT09cltuXT9yW25dPXQ6cltuXT1yW25dLmNvbmNhdCh0KS5zb3J0KCksaVtuXXx8KGlbbl09ITAsc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpW25dPSExO3ZhciB0PXJbbl07ZGVsZXRlIHJbbl07dmFyIGE9ZWUoZSk7YT9hLnByZXBhcmUoZSxuLHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2plKGUsdCwoZnVuY3Rpb24ocixpKXt2YXIgYT1wKGUsbik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXtpZig0MDQhPT1pKXJldHVybjt2YXIgYz1EYXRlLm5vdygpO3QuaWNvbnMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7YS5taXNzaW5nW2VdPWN9KSl9ZWxzZSB0cnl7dmFyIGY9aChhLHIpO2lmKCFmLmxlbmd0aClyZXR1cm47dmFyIHU9b1tuXTtmLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RlbGV0ZSB1W2VdfSkpLEsuc3RvcmUmJksuc3RvcmUoZSxyKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfWtlKGUsbil9KSl9KSk6ZnVuY3Rpb24oKXt2YXIgdD0oIiI9PT1lPyIiOiJAIitlKyI6IikrbixyPU1hdGguZmxvb3IoRGF0ZS5ub3coKS82ZTQpO0FlW3RdPHImJihBZVt0XT1yLGNvbnNvbGUuZXJyb3IoJ1VuYWJsZSB0byByZXRyaWV2ZSBpY29ucyBmb3IgIicrdCsnIiBiZWNhdXNlIEFQSSBpcyBub3QgY29uZmlndXJlZCBwcm9wZXJseS4nKSl9KCl9KSkpfXZhciBUZT1mdW5jdGlvbihlKXt2YXIgbj1lLnByb3ZpZGVyLHQ9ZS5wcmVmaXg7cmV0dXJuIE9lW25dJiZPZVtuXVt0XSYmdm9pZCAwIT09T2Vbbl1bdF1bZS5uYW1lXX0sRmU9ZnVuY3Rpb24oZSxuKXt2YXIgdCxyPWZ1bmN0aW9uKGUpe3ZhciBuPXtsb2FkZWQ6W10sbWlzc2luZzpbXSxwZW5kaW5nOltdfSx0PU9iamVjdC5jcmVhdGUobnVsbCk7ZS5zb3J0KChmdW5jdGlvbihlLG4pe3JldHVybiBlLnByb3ZpZGVyIT09bi5wcm92aWRlcj9lLnByb3ZpZGVyLmxvY2FsZUNvbXBhcmUobi5wcm92aWRlcik6ZS5wcmVmaXghPT1uLnByZWZpeD9lLnByZWZpeC5sb2NhbGVDb21wYXJlKG4ucHJlZml4KTplLm5hbWUubG9jYWxlQ29tcGFyZShuLm5hbWUpfSkpO3ZhciByPXtwcm92aWRlcjoiIixwcmVmaXg6IiIsbmFtZToiIn07cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoci5uYW1lIT09ZS5uYW1lfHxyLnByZWZpeCE9PWUucHJlZml4fHxyLnByb3ZpZGVyIT09ZS5wcm92aWRlcil7cj1lO3ZhciBpPWUucHJvdmlkZXIsbz1lLnByZWZpeCxhPWUubmFtZTt2b2lkIDA9PT10W2ldJiYodFtpXT1PYmplY3QuY3JlYXRlKG51bGwpKTt2YXIgYz10W2ldO3ZvaWQgMD09PWNbb10mJihjW29dPXAoaSxvKSk7dmFyIGY9Y1tvXSx1PXtwcm92aWRlcjppLHByZWZpeDpvLG5hbWU6YX07KHZvaWQgMCE9PWYuaWNvbnNbYV0/bi5sb2FkZWQ6IiI9PT1vfHx2b2lkIDAhPT1mLm1pc3NpbmdbYV0/bi5taXNzaW5nOm4ucGVuZGluZykucHVzaCh1KX19KSksbn0oZnVuY3Rpb24oZSxuLHQpe3ZvaWQgMD09PW4mJihuPSEwKSx2b2lkIDA9PT10JiYodD0hMSk7dmFyIHI9W107cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIGk9InN0cmluZyI9PXR5cGVvZiBlP3UoZSwhMSx0KTplO24mJiFzKGksdCl8fHIucHVzaCh7cHJvdmlkZXI6aS5wcm92aWRlcixwcmVmaXg6aS5wcmVmaXgsbmFtZTppLm5hbWV9KX0pKSxyfShlLCEwLCgiYm9vbGVhbiI9PXR5cGVvZiB0JiYoeT10KSx5KSkpO2lmKCFyLnBlbmRpbmcubGVuZ3RoKXt2YXIgaT0hMDtyZXR1cm4gbiYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpJiZuKHIubG9hZGVkLHIubWlzc2luZyxyLnBlbmRpbmcsd2UpfSkpLGZ1bmN0aW9uKCl7aT0hMX19dmFyIG8sYSxjPU9iamVjdC5jcmVhdGUobnVsbCksZj1bXTtyLnBlbmRpbmcuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5wcm92aWRlcix0PWUucHJlZml4O2lmKHQhPT1hfHxuIT09byl7bz1uLGE9dCxmLnB1c2goe3Byb3ZpZGVyOm4scHJlZml4OnR9KSx2b2lkIDA9PT1PZVtuXSYmKE9lW25dPU9iamVjdC5jcmVhdGUobnVsbCkpO3ZhciByPU9lW25dO3ZvaWQgMD09PXJbdF0mJihyW3RdPU9iamVjdC5jcmVhdGUobnVsbCkpLHZvaWQgMD09PWNbbl0mJihjW25dPU9iamVjdC5jcmVhdGUobnVsbCkpO3ZhciBpPWNbbl07dm9pZCAwPT09aVt0XSYmKGlbdF09W10pfX0pKTt2YXIgbD1EYXRlLm5vdygpO3JldHVybiByLnBlbmRpbmcuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5wcm92aWRlcix0PWUucHJlZml4LHI9ZS5uYW1lLGk9T2Vbbl1bdF07dm9pZCAwPT09aVtyXSYmKGlbcl09bCxjW25dW3RdLnB1c2gocikpfSkpLGYuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5wcm92aWRlcix0PWUucHJlZml4O2Nbbl1bdF0ubGVuZ3RoJiZNZShuLHQsY1tuXVt0XSl9KSksbj9mdW5jdGlvbihlLG4sdCl7dmFyIHI9aGUrKyxpPXBlLmJpbmQobnVsbCx0LHIpO2lmKCFuLnBlbmRpbmcubGVuZ3RoKXJldHVybiBpO3ZhciBvPXtpZDpyLGljb25zOm4sY2FsbGJhY2s6ZSxhYm9ydDppfTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1lLnByb3ZpZGVyLHQ9ZS5wcmVmaXg7dm9pZCAwPT09dmVbbl0mJih2ZVtuXT1PYmplY3QuY3JlYXRlKG51bGwpKTt2YXIgcj12ZVtuXTt2b2lkIDA9PT1yW3RdJiYoclt0XT1bXSksclt0XS5wdXNoKG8pfSkpLGl9KG4scixmKTp3ZX0sUGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLHQpe3ZhciByPSJzdHJpbmciPT10eXBlb2YgZT91KGUpOmU7RmUoW3J8fGVdLChmdW5jdGlvbihpKXtpZihpLmxlbmd0aCYmcil7dmFyIG89ZyhwKHIucHJvdmlkZXIsci5wcmVmaXgpLHIubmFtZSk7aWYobylyZXR1cm4gdm9pZCBuKG8pfXQoZSl9KSl9KSl9LENlPSJpY29uaWZ5RmluZGVyIitEYXRlLm5vdygpLF9lPSJpY29uaWZ5RGF0YSIrRGF0ZS5ub3coKTtmdW5jdGlvbiBEZShlLG4sdCxyKXt2YXIgaTt0cnl7aT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIil9Y2F0Y2goZSl7cmV0dXJuIHI/IiI6bnVsbH12YXIgbz1UKHQsSShFLG4pKSxhPWUuZWxlbWVudCxjPWUuZmluZGVyLGY9ZS5uYW1lLHU9YT9hLmdldEF0dHJpYnV0ZSgiY2xhc3MiKToiIixzPWM/Yy5jbGFzc0ZpbHRlcih1P3Uuc3BsaXQoL1xzKy8pOltdKTpbXSxsPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciIGNsYXNzPSInKygiaWNvbmlmeSBpY29uaWZ5LS0iK2YucHJlZml4KygiIj09PWYucHJvdmlkZXI/IiI6IiBpY29uaWZ5LS0iK2YucHJvdmlkZXIpKyhzLmxlbmd0aD8iICIrcy5qb2luKCIgIik6IiIpKSsnIj4nK0Qoby5ib2R5KSsiPC9zdmc+IjtpLmlubmVySFRNTD1sO3ZhciB2PWkuY2hpbGROb2Rlc1swXSxkPXYuc3R5bGUscD1vLmF0dHJpYnV0ZXM7aWYoT2JqZWN0LmtleXMocCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7di5zZXRBdHRyaWJ1dGUoZSxwW2VdKX0pKSxvLmlubGluZSYmKGQudmVydGljYWxBbGlnbj0iLTAuMTI1ZW0iKSxhKXtmb3IodmFyIGg9YS5hdHRyaWJ1dGVzLGc9MDtnPGgubGVuZ3RoO2crKyl7dmFyIG09aC5pdGVtKGcpO2lmKG0pe3ZhciB5PW0ubmFtZTtpZigiY2xhc3MiIT09eSYmInN0eWxlIiE9PXkmJnZvaWQgMD09PXBbeV0pdHJ5e3Yuc2V0QXR0cmlidXRlKHksbS52YWx1ZSl9Y2F0Y2goZSl7fX19Zm9yKHZhciBiPWEuc3R5bGUseD0wO3g8Yi5sZW5ndGg7eCsrKXt2YXIgaj1iW3hdO2Rbal09YltqXX19aWYoYyl7dmFyIHc9e25hbWU6ZixzdGF0dXM6ImxvYWRlZCIsY3VzdG9taXNhdGlvbnM6bn07dltfZV09dyx2W0NlXT1jfXZhciBPPXI/aS5pbm5lckhUTUw6djtyZXR1cm4gYSYmYS5wYXJlbnROb2RlP2EucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodixhKTppLnJlbW92ZUNoaWxkKHYpLE99dmFyIExlPVtdO2Z1bmN0aW9uIE5lKGUpe2Zvcih2YXIgbj0wO248TGUubGVuZ3RoO24rKyl7dmFyIHQ9TGVbbl07aWYoKCJmdW5jdGlvbiI9PXR5cGVvZiB0Lm5vZGU/dC5ub2RlKCk6dC5ub2RlKT09PWUpcmV0dXJuIHR9fWZ1bmN0aW9uIFJlKGUsbil7dm9pZCAwPT09biYmKG49ITEpO3ZhciB0PU5lKGUpO3JldHVybiB0Pyh0LnRlbXBvcmFyeSYmKHQudGVtcG9yYXJ5PW4pLHQpOih0PXtub2RlOmUsdGVtcG9yYXJ5Om59LExlLnB1c2godCksdCl9ZnVuY3Rpb24gemUoKXtyZXR1cm4gTGV9dmFyIFVlPW51bGwscWU9e2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZXM6ITB9O2Z1bmN0aW9uICRlKGUpe2lmKGUub2JzZXJ2ZXIpe3ZhciBuPWUub2JzZXJ2ZXI7bi5wZW5kaW5nU2Nhbnx8KG4ucGVuZGluZ1NjYW49c2V0VGltZW91dCgoZnVuY3Rpb24oKXtkZWxldGUgbi5wZW5kaW5nU2NhbixVZSYmVWUoZSl9KSkpfX1mdW5jdGlvbiBIZShlLG4pe2lmKGUub2JzZXJ2ZXIpe3ZhciB0PWUub2JzZXJ2ZXI7aWYoIXQucGVuZGluZ1NjYW4pZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBpPW5bcl07aWYoaS5hZGRlZE5vZGVzJiZpLmFkZGVkTm9kZXMubGVuZ3RoPjB8fCJhdHRyaWJ1dGVzIj09PWkudHlwZSYmdm9pZCAwIT09aS50YXJnZXRbQ2VdKXJldHVybiB2b2lkKHQucGF1c2VkfHwkZShlKSl9fX1mdW5jdGlvbiBWZShlLG4pe2Uub2JzZXJ2ZXIuaW5zdGFuY2Uub2JzZXJ2ZShuLHFlKX1mdW5jdGlvbiBZZShlKXt2YXIgbj1lLm9ic2VydmVyO2lmKCFufHwhbi5pbnN0YW5jZSl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGUubm9kZT9lLm5vZGUoKTplLm5vZGU7dCYmKG58fChuPXtwYXVzZWQ6MH0sZS5vYnNlcnZlcj1uKSxuLmluc3RhbmNlPW5ldyBNdXRhdGlvbk9ic2VydmVyKEhlLmJpbmQobnVsbCxlKSksVmUoZSx0KSxuLnBhdXNlZHx8JGUoZSkpfX1mdW5jdGlvbiBHZSgpe3plKCkuZm9yRWFjaChZZSl9ZnVuY3Rpb24gSmUoZSl7aWYoZS5vYnNlcnZlcil7dmFyIG49ZS5vYnNlcnZlcjtuLnBlbmRpbmdTY2FuJiYoY2xlYXJUaW1lb3V0KG4ucGVuZGluZ1NjYW4pLGRlbGV0ZSBuLnBlbmRpbmdTY2FuKSxuLmluc3RhbmNlJiYobi5pbnN0YW5jZS5kaXNjb25uZWN0KCksZGVsZXRlIG4uaW5zdGFuY2UpfX1mdW5jdGlvbiBCZShlKXt2YXIgbj1udWxsIT09VWU7VWUhPT1lJiYoVWU9ZSxuJiZ6ZSgpLmZvckVhY2goSmUpKSxuP0dlKCk6ZnVuY3Rpb24oZSl7dmFyIG49ZG9jdW1lbnQ7ImNvbXBsZXRlIj09PW4ucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09bi5yZWFkeVN0YXRlJiYhbi5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/ZSgpOihuLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixlKSl9KEdlKX1mdW5jdGlvbiBRZShlKXsoZT9bZV06emUoKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZS5vYnNlcnZlcil7dmFyIG49ZS5vYnNlcnZlcjtpZihuLnBhdXNlZCsrLCEobi5wYXVzZWQ+MSkmJm4uaW5zdGFuY2Upbi5pbnN0YW5jZS5kaXNjb25uZWN0KCl9ZWxzZSBlLm9ic2VydmVyPXtwYXVzZWQ6MX19KSl9ZnVuY3Rpb24gS2UoZSl7aWYoZSl7dmFyIG49TmUoZSk7biYmUWUobil9ZWxzZSBRZSgpfWZ1bmN0aW9uIFdlKGUpeyhlP1tlXTp6ZSgpKS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZihlLm9ic2VydmVyKXt2YXIgbj1lLm9ic2VydmVyO2lmKG4ucGF1c2VkJiYobi5wYXVzZWQtLSwhbi5wYXVzZWQpKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgZS5ub2RlP2Uubm9kZSgpOmUubm9kZTtpZighdClyZXR1cm47bi5pbnN0YW5jZT9WZShlLHQpOlllKGUpfX1lbHNlIFllKGUpfSkpfWZ1bmN0aW9uIFhlKGUpe2lmKGUpe3ZhciBuPU5lKGUpO24mJldlKG4pfWVsc2UgV2UoKX1mdW5jdGlvbiBaZShlLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgdD1SZShlLG4pO3JldHVybiBZZSh0KSx0fWZ1bmN0aW9uIGVuKGUpe3ZhciBuPU5lKGUpO24mJihKZShuKSxmdW5jdGlvbihlKXtMZT1MZS5maWx0ZXIoKGZ1bmN0aW9uKG4pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiBuLm5vZGU/bi5ub2RlKCk6bi5ub2RlO3JldHVybiBlIT09dH0pKX0oZSkpfXZhciBubj1bXTtmdW5jdGlvbiB0bihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXUoZSkpLG51bGwhPT1lJiZzKGUpP2U6bnVsbH1mdW5jdGlvbiBybihlKXt2YXIgbj1bXTtubi5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj10LmZpbmQoZSk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChyLChmdW5jdGlvbihlKXt2YXIgcj1lO2lmKHZvaWQgMD09PXJbQ2VdfHxyW0NlXT09PXQpe3ZhciBpPXRuKHQubmFtZShyKSk7aWYobnVsbCE9PWkpe3JbQ2VdPXQ7dmFyIG89e2VsZW1lbnQ6cixmaW5kZXI6dCxuYW1lOml9O24ucHVzaChvKX19fSkpfSkpO3ZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgic3ZnLmljb25pZnkiKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LChmdW5jdGlvbihlKXt2YXIgdD1lLHI9dFtDZV0saT10W19lXTtpZihyJiZpKXt2YXIgbz10bihyLm5hbWUodCkpO2lmKG51bGwhPT1vKXt2YXIgYSxjPSExO2lmKG8ucHJlZml4IT09aS5uYW1lLnByZWZpeHx8by5uYW1lIT09aS5uYW1lLm5hbWU/Yz0hMDooYT1yLmN1c3RvbWlzYXRpb25zKHQpLGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyhuKTtpZih0Lmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz10W2ldO2lmKG5bb10hPT1lW29dKXJldHVybiExfXJldHVybiEwfShpLmN1c3RvbWlzYXRpb25zLGEpfHwoYz0hMCkpLGMpe3ZhciBmPXtlbGVtZW50OnQsZmluZGVyOnIsbmFtZTpvLGN1c3RvbWlzYXRpb25zOmF9O24ucHVzaChmKX19fX0pKSxufXZhciBvbj0hMTtmdW5jdGlvbiBhbigpe29ufHwob249ITAsc2V0VGltZW91dCgoZnVuY3Rpb24oKXtvbiYmKG9uPSExLGNuKCkpfSkpKX1mdW5jdGlvbiBjbihlLG4pe3ZvaWQgMD09PW4mJihuPSExKSxvbj0hMTt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpOyhlP1tlXTp6ZSgpKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgZS5ub2RlP2Uubm9kZSgpOmUubm9kZTtpZihyJiZyLnF1ZXJ5U2VsZWN0b3JBbGwpe3ZhciBpPSExLG89ITE7cm4ocikuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIHIsYSxjPW4uZWxlbWVudCxmPW4ubmFtZSx1PWYucHJvdmlkZXIscz1mLnByZWZpeCxsPWYubmFtZSx2PWNbX2VdO2lmKHZvaWQgMCE9PXYmJihyPXYubmFtZSxhPWYsbnVsbCE9PXImJm51bGwhPT1hJiZyLm5hbWU9PT1hLm5hbWUmJnIucHJlZml4PT09YS5wcmVmaXgpKXN3aXRjaCh2LnN0YXR1cyl7Y2FzZSJtaXNzaW5nIjpyZXR1cm47Y2FzZSJsb2FkaW5nIjppZihUZSh7cHJvdmlkZXI6dSxwcmVmaXg6cyxuYW1lOmx9KSlyZXR1cm4gdm9pZChpPSEwKX12YXIgZD1wKHUscyk7aWYodm9pZCAwPT09ZC5pY29uc1tsXSl7aWYoZC5taXNzaW5nW2xdKXJldHVybiB2PXtuYW1lOmYsc3RhdHVzOiJtaXNzaW5nIixjdXN0b21pc2F0aW9uczp7fX0sdm9pZChjW19lXT12KTtpZighVGUoe3Byb3ZpZGVyOnUscHJlZml4OnMsbmFtZTpsfSkpe3ZvaWQgMD09PXRbdV0mJih0W3VdPU9iamVjdC5jcmVhdGUobnVsbCkpO3ZhciBoPXRbdV07dm9pZCAwPT09aFtzXSYmKGhbc109T2JqZWN0LmNyZWF0ZShudWxsKSksaFtzXVtsXT0hMH12PXtuYW1lOmYsc3RhdHVzOiJsb2FkaW5nIixjdXN0b21pc2F0aW9uczp7fX0sY1tfZV09dixpPSEwfWVsc2V7IW8mJmUub2JzZXJ2ZXImJihRZShlKSxvPSEwKTt2YXIgbT12b2lkIDAhPT1uLmN1c3RvbWlzYXRpb25zP24uY3VzdG9taXNhdGlvbnM6bi5maW5kZXIuY3VzdG9taXNhdGlvbnMoYyk7RGUobixtLGcoZCxsKSl9fSkpLGUudGVtcG9yYXJ5JiYhaT9lbihyKTpuJiZpP1plKHIsITApOm8mJmUub2JzZXJ2ZXImJldlKGUpfX0pKSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj10W2VdO09iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe0ZlKE9iamVjdC5rZXlzKG5bdF0pLm1hcCgoZnVuY3Rpb24obil7cmV0dXJue3Byb3ZpZGVyOmUscHJlZml4OnQsbmFtZTpufX0pKSxhbil9KSl9KSl9dmFyIGZuPS9bXHMsXSsvO2Z1bmN0aW9uIHVuKGUsbil7cmV0dXJuIGUuaGFzQXR0cmlidXRlKG4pfWZ1bmN0aW9uIHNuKGUsbil7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKG4pfXZhciBsbj1bImlubGluZSIsImhGbGlwIiwidkZsaXAiXSx2bj1bIndpZHRoIiwiaGVpZ2h0Il0sZG49Imljb25pZnktaW5saW5lIixwbj17ZmluZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yQWxsKCJpLmljb25pZnksIHNwYW4uaWNvbmlmeSwgaS5pY29uaWZ5LWlubGluZSwgc3Bhbi5pY29uaWZ5LWlubGluZSIpfSxuYW1lOmZ1bmN0aW9uKGUpe3JldHVybiB1bihlLCJkYXRhLWljb24iKT9zbihlLCJkYXRhLWljb24iKTpudWxsfSxjdXN0b21pc2F0aW9uczpmdW5jdGlvbihlLG4pe3ZvaWQgMD09PW4mJihuPXtpbmxpbmU6ITF9KTt2YXIgdCxyPW4saT1lLmdldEF0dHJpYnV0ZSgiY2xhc3MiKTtpZigtMSE9PShpP2kuc3BsaXQoL1xzKy8pOltdKS5pbmRleE9mKGRuKSYmKHIuaW5saW5lPSEwKSx1bihlLCJkYXRhLXJvdGF0ZSIpKXt2YXIgbz1mdW5jdGlvbihlLG4pe3ZvaWQgMD09PW4mJihuPTApO3ZhciB0PWUucmVwbGFjZSgvXi0/WzAtOS5dKi8sIiIpO2Z1bmN0aW9uIHIoZSl7Zm9yKDtlPDA7KWUrPTQ7cmV0dXJuIGUlNH1pZigiIj09PXQpe3ZhciBpPXBhcnNlSW50KGUpO3JldHVybiBpc05hTihpKT8wOnIoaSl9aWYodCE9PWUpe3ZhciBvPTA7c3dpdGNoKHQpe2Nhc2UiJSI6bz0yNTticmVhaztjYXNlImRlZyI6bz05MH1pZihvKXt2YXIgYT1wYXJzZUZsb2F0KGUuc2xpY2UoMCxlLmxlbmd0aC10Lmxlbmd0aCkpO3JldHVybiBpc05hTihhKT8wOihhLz1vKSUxPT0wP3IoYSk6MH19cmV0dXJuIG59KHNuKGUsImRhdGEtcm90YXRlIikpO28mJihyLnJvdGF0ZT1vKX1yZXR1cm4gdW4oZSwiZGF0YS1mbGlwIikmJih0PXIsc24oZSwiZGF0YS1mbGlwIikuc3BsaXQoZm4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3N3aXRjaChlLnRyaW0oKSl7Y2FzZSJob3Jpem9udGFsIjp0LmhGbGlwPSEwO2JyZWFrO2Nhc2UidmVydGljYWwiOnQudkZsaXA9ITB9fSkpKSx1bihlLCJkYXRhLWFsaWduIikmJmZ1bmN0aW9uKGUsbil7bi5zcGxpdChmbikuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIHQ9bi50cmltKCk7c3dpdGNoKHQpe2Nhc2UibGVmdCI6Y2FzZSJjZW50ZXIiOmNhc2UicmlnaHQiOmUuaEFsaWduPXQ7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UibWlkZGxlIjpjYXNlImJvdHRvbSI6ZS52QWxpZ249dDticmVhaztjYXNlInNsaWNlIjpjYXNlImNyb3AiOmUuc2xpY2U9ITA7YnJlYWs7Y2FzZSJtZWV0IjplLnNsaWNlPSExfX0pKX0ocixzbihlLCJkYXRhLWFsaWduIikpLGxuLmZvckVhY2goKGZ1bmN0aW9uKG4pe2lmKHVuKGUsImRhdGEtIituKSl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXt2YXIgdD1lLmdldEF0dHJpYnV0ZShuKTtyZXR1cm4gdD09PW58fCJ0cnVlIj09PXR8fCIiIT09dCYmImZhbHNlIiE9PXQmJm51bGx9KGUsImRhdGEtIituKTsiYm9vbGVhbiI9PXR5cGVvZiB0JiYocltuXT10KX19KSksdm4uZm9yRWFjaCgoZnVuY3Rpb24obil7aWYodW4oZSwiZGF0YS0iK24pKXt2YXIgdD1zbihlLCJkYXRhLSIrbik7IiIhPT10JiYocltuXT10KX19KSkscn0sY2xhc3NGaWx0ZXI6ZnVuY3Rpb24oZSl7dmFyIG49W107cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7Imljb25pZnkiIT09ZSYmIiIhPT1lJiYiaWNvbmlmeS0tIiE9PWUuc2xpY2UoMCw5KSYmbi5wdXNoKGUpfSkpLG59fTtmdW5jdGlvbiBobihlLG4sdCl7dmFyIHI9YihlKTtyZXR1cm4gcj9EZSh7bmFtZTp1KGUpfSxJKEUsIm9iamVjdCI9PXR5cGVvZiBuP246e30pLHIsdCk6bnVsbH1mdW5jdGlvbiBnbigpe3JldHVybiIyLjIuMSJ9ZnVuY3Rpb24gbW4oZSxuKXtyZXR1cm4gaG4oZSxuLCExKX1mdW5jdGlvbiB5bihlLG4pe3JldHVybiBobihlLG4sITApfWZ1bmN0aW9uIGJuKGUsbil7dmFyIHQ9YihlKTtyZXR1cm4gdD9UKHQsSShFLCJvYmplY3QiPT10eXBlb2Ygbj9uOnt9KSk6bnVsbH1mdW5jdGlvbiB4bihlKXtlP2Z1bmN0aW9uKGUpe3ZhciBuPU5lKGUpO24/Y24obik6Y24oe25vZGU6ZSx0ZW1wb3Jhcnk6ITB9LCEwKX0oZSk6Y24oKX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyl7IWZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXJldHVybiBSZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO0xlLnB1c2goe25vZGU6ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fX0pfSgpLGZ1bmN0aW9uKGUpey0xPT09bm4uaW5kZXhPZihlKSYmbm4ucHVzaChlKX0ocG4pO3ZhciBqbj13aW5kb3c7aWYodm9pZCAwIT09am4uSWNvbmlmeVByZWxvYWQpe3ZhciB3bj1qbi5JY29uaWZ5UHJlbG9hZCxPbj0iSW52YWxpZCBJY29uaWZ5UHJlbG9hZCBzeW50YXguIjsib2JqZWN0Ij09dHlwZW9mIHduJiZudWxsIT09d24mJih3biBpbnN0YW5jZW9mIEFycmF5P3duOlt3bl0pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RyeXsoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZXx8ZSBpbnN0YW5jZW9mIEFycmF5fHwib2JqZWN0IiE9dHlwZW9mIGUuaWNvbnN8fCJzdHJpbmciIT10eXBlb2YgZS5wcmVmaXh8fCFqKGUpKSYmY29uc29sZS5lcnJvcihPbil9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihPbil9fSkpfXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7QmUoY24pLGNuKCl9KSl9ZnVuY3Rpb24gRW4oZSxuKXtXKGUsITEhPT1uKX1mdW5jdGlvbiBJbihlKXtXKGUsITApfWlmKFooIiIsbGUpLCJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXtLLnN0b3JlPWZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gdCh0KXtpZighcVt0XSlyZXR1cm4hMTt2YXIgcj1HKHQpO2lmKCFyKXJldHVybiExO3ZhciBpPVZbdF0uc2hpZnQoKTtpZih2b2lkIDA9PT1pJiYhSihyLHQsKGk9SFt0XSkrMSkpcmV0dXJuITE7dHJ5e3ZhciBvPXtjYWNoZWQ6TWF0aC5mbG9vcihEYXRlLm5vdygpL1UpLHByb3ZpZGVyOmUsZGF0YTpufTtyLnNldEl0ZW0oTitpLnRvU3RyaW5nKCksSlNPTi5zdHJpbmdpZnkobykpfWNhdGNoKGUpe3JldHVybiExfXJldHVybiEwfSR8fFEoKSxPYmplY3Qua2V5cyhuLmljb25zKS5sZW5ndGgmJihuLm5vdF9mb3VuZCYmZGVsZXRlKG49T2JqZWN0LmFzc2lnbih7fSxuKSkubm90X2ZvdW5kLHQoImxvY2FsIil8fHQoInNlc3Npb24iKSl9LFEoKTt2YXIgU249d2luZG93O2lmKHZvaWQgMCE9PVNuLkljb25pZnlQcm92aWRlcnMpe3ZhciBrbj1Tbi5JY29uaWZ5UHJvdmlkZXJzO2lmKCJvYmplY3QiPT10eXBlb2Yga24mJm51bGwhPT1rbilmb3IodmFyIEFuIGluIGtuKXt2YXIgTW49Ikljb25pZnlQcm92aWRlcnNbIitBbisiXSBpcyBpbnZhbGlkLiI7dHJ5e3ZhciBUbj1rbltBbl07aWYoIm9iamVjdCIhPXR5cGVvZiBUbnx8IVRufHx2b2lkIDA9PT1Ubi5yZXNvdXJjZXMpY29udGludWU7b2UoQW4sVG4pfHxjb25zb2xlLmVycm9yKE1uKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKE1uKX19fX12YXIgRm49e2dldEFQSUNvbmZpZzphZSxzZXRBUElNb2R1bGU6WixzZW5kQVBJUXVlcnk6amUsc2V0RmV0Y2g6ZnVuY3Rpb24oZSl7c2U9ZX0sZ2V0RmV0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4gc2V9LGxpc3RBUElQcm92aWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGUpfSxtZXJnZVBhcmFtczpjZX0sUG49e19hcGk6Rm4sYWRkQVBJUHJvdmlkZXI6b2UsbG9hZEljb25zOkZlLGxvYWRJY29uOlBlLGljb25FeGlzdHM6dyxnZXRJY29uOk8sbGlzdEljb25zOm0sYWRkSWNvbjp4LGFkZENvbGxlY3Rpb246aixzaGFyZVN0b3JhZ2U6ZCxyZXBsYWNlSURzOkQsY2FsY3VsYXRlU2l6ZTpBLGJ1aWxkSWNvbjpGLGdldFZlcnNpb246Z24scmVuZGVyU1ZHOm1uLHJlbmRlckhUTUw6eW4scmVuZGVySWNvbjpibixzY2FuOnhuLG9ic2VydmU6WmUsc3RvcE9ic2VydmluZzplbixwYXVzZU9ic2VydmVyOktlLHJlc3VtZU9ic2VydmVyOlhlLGVuYWJsZUNhY2hlOkVuLGRpc2FibGVDYWNoZTpJbn07cmV0dXJuIGUuX2FwaT1GbixlLmFkZEFQSVByb3ZpZGVyPW9lLGUuYWRkQ29sbGVjdGlvbj1qLGUuYWRkSWNvbj14LGUuYnVpbGRJY29uPUYsZS5jYWxjdWxhdGVTaXplPUEsZS5kZWZhdWx0PVBuLGUuZGlzYWJsZUNhY2hlPUluLGUuZW5hYmxlQ2FjaGU9RW4sZS5nZXRJY29uPU8sZS5nZXRWZXJzaW9uPWduLGUuaWNvbkV4aXN0cz13LGUubGlzdEljb25zPW0sZS5sb2FkSWNvbj1QZSxlLmxvYWRJY29ucz1GZSxlLm9ic2VydmU9WmUsZS5wYXVzZU9ic2VydmVyPUtlLGUucmVuZGVySFRNTD15bixlLnJlbmRlckljb249Ym4sZS5yZW5kZXJTVkc9bW4sZS5yZXBsYWNlSURzPUQsZS5yZXN1bWVPYnNlcnZlcj1YZSxlLnNjYW49eG4sZS5zaGFyZVN0b3JhZ2U9ZCxlLnN0b3BPYnNlcnZpbmc9ZW4sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV9KHt9KTtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMpdHJ5e2Zvcih2YXIga2V5IGluIGV4cG9ydHMuX19lc01vZHVsZT0hMCxleHBvcnRzLmRlZmF1bHQ9SWNvbmlmeSxJY29uaWZ5KWV4cG9ydHNba2V5XT1JY29uaWZ5W2tleV19Y2F0Y2goZSl7fXRyeXt2b2lkIDA9PT1zZWxmLkljb25pZnkmJihzZWxmLkljb25pZnk9SWNvbmlmeSl9Y2F0Y2goZSl7fQo="}},"time_used":84,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":84,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/service-icon-03.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.380Z","timestamp":1785132838380,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/service-icon-03.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Mon, 03 Jan 2022 23:40:38 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3263\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3263,"size_decoded":3528,"mime_type":"image/png","magic":"PNG image data, 60 x 60, 8-bit/color RGBA, non-interlaced","md5":"1c32e18a9be56651b9abd50ea708dc17","sha1":"81b890a232f3762cf12238acf83dbc506a54a63a","sha256":"43eeced4bcb2a7b2aa8b271db289b8cb7867292e92de9c8be966362ef693e15e","sha512":"a198bb94a6fad1beceb4eb1b693e981cd16b28697a7f4766d1640cf3102b660af359dab9d8c81b655107cab011abdfc7decbff91430682e0c9519259c88fd802","ssdeep":"","tlshash":"e3614cd3fe20ef0190d887c934e028b3f75056c564e1a49564cb813284ac2f58ca41df","first_seen":"2025-05-07T22:52:20.913757Z","last_seen":"2026-07-27T06:14:42.686279Z","times_seen":26,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM1NTgzRTRDMjI1MjExRUI5QTY2RjVFMEEzM0Q2N0RCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM1NTgzRTREMjI1MjExRUI5QTY2RjVFMEEzM0Q2N0RCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzU1ODNFNEEyMjUyMTFFQjlBNjZGNUUwQTMzRDY3REIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QzU1ODNFNEIyMjUyMTFFQjlBNjZGNUUwQTMzRDY3REIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7iD7kaAAAJMklEQVR42sybeWwU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"}},"time_used":29,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.537Z","timestamp":1785132838537,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/rosetta\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"rosetta\"\r\nreport-to: {\"group\":\"rosetta\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/rosetta\"}]}\r\ncontent-length: 3967\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:44 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:44 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 09 Apr 2026 01:12:55 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 406994\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":20284,"size_decoded":4819,"mime_type":"text/css; charset=UTF-8","magic":"ASCII text, with very long lines (20284), with no line terminators","md5":"fde4f72b90fe807270db3c332dd058df","sha1":"7ef4d70af01c38a7f80a7650be25f63aff4ba751","sha256":"ab31c9be358d2107fc1158434c7aeaaf15f82e3e405ed67ab236b5ac232ed159","sha512":"9bef39350af557afeb10cb71068426ab28befaf5295359954787be06a5ce0993d69e8f5018a5a17c44311d294dd1a87a6f82edd0f5743df0149b8e4e53061695","ssdeep":"192:nvqx/EhZINcrXsfg0SgG8CqA3uku9SJFzvQVMbnUIfIxIVVpTrecfzPtcmt4v78l:gMF8Sb3i0JFzourUqWMVpTrdfzPtcBG","tlshash":"c492872057aed01967efa82364d36dff71d444db90123eeaaf5a7352cd821f231ea214","first_seen":"2026-04-13T20:43:22.641436Z","last_seen":"2026-07-27T09:46:57.00481Z","times_seen":17170,"resource_available":false,"data":"LlZJcGdKZC1aVmk5b2QtT1JIYi1PRVZtY2R7bGVmdDowO3RvcDowO2hlaWdodDozOXB4O3dpZHRoOjEwMCU7ei1pbmRleDoxMDAwMDAwMTtwb3NpdGlvbjpmaXhlZDtib3JkZXI6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNkI5MERBO21hcmdpbjowO2JveC1zaGFkb3c6MCAwIDhweCAxcHggIzk5OX0uVklwZ0pkLVpWaTlvZC14bDA3T2ItT0VWbWNke3otaW5kZXg6MTAwMDAwMDI7Ym9yZGVyOm5vbmU7cG9zaXRpb246Zml4ZWQ7Ym94LXNoYWRvdzowIDNweCA4cHggMnB4ICM5OTl9LlZJcGdKZC1aVmk5b2QtU21mWi1PRVZtY2R7ei1pbmRleDoxMDAwMDAwMDtib3JkZXI6bm9uZTttYXJnaW46MH0uZ29vZy10ZS1nYWRnZXR7Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY2Njt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdvb2ctdGUtZ2FkZ2V0IGltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyOm5vbmV9Lmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNENUQ1RDU7Ym9yZGVyLXRvcDoxcHggc29saWQgIzlCOUI5Qjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRThFOEU4O2JvcmRlci1yaWdodDoxcHggc29saWQgI0Q1RDVENTtmb250LXNpemU6MTBwdDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDoxcHg7cGFkZGluZy1ib3R0b206MnB4O2N1cnNvcjpwb2ludGVyfS5nb29nLXRlLWdhZGdldC1pY29ue21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4O3dpZHRoOjE5cHg7aGVpZ2h0OjE5cHg7Ym9yZGVyOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWNvbWJve21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5nb29nLXRlLWdhZGdldCAuZ29vZy10ZS1jb21ib3ttYXJnaW46NHB4IDB9LlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDphY3RpdmUsLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkOmhvdmVyLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDpsaW5rLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDp2aXNpdGVke2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNDQ0O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLVR2RDlQYy1oU1JHUGR7ZGlzcGxheTpibG9jazttYXJnaW46MCAxMHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1Bke3BhZGRpbmctdG9wOjJweDtwYWRkaW5nLWxlZnQ6NHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgKiwuVklwZ0pkLVpWaTlvZC1TbWZaICosLlZJcGdKZC1aVmk5b2QtbDl4a3RmICosLlZJcGdKZC1aVmk5b2QtdkgxR21mICosLlZJcGdKZC1aVmk5b2QteGwwN09iICosLmdvb2ctdGUtY29tYm97Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHR9LlZJcGdKZC1aVmk5b2QtT1JIYnttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNFNEVGRkI7b3ZlcmZsb3c6aGlkZGVufS5WSXBnSmQtWlZpOW9kLU9SSGIgaW1ne2JvcmRlcjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGItYk45N1Bje2NvbG9yOiMwMDB9LlZJcGdKZC1aVmk5b2QtT1JIYi1iTjk3UGMgaW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1PUkhiLVRzd3YxYntjb2xvcjojNjY2O3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW4tdG9wOjA7Zm9udC1zaXplOjdwdH0uVklwZ0pkLVpWaTlvZC1PUkhiLUtFNnZxZXt3aWR0aDo4cHh9LlZJcGdKZC1aVmk5b2QtTGdic1Nle2JvcmRlci1jb2xvcjojRTdFN0U3O2JvcmRlci1zdHlsZTpub25lIHNvbGlkIHNvbGlkIG5vbmU7Ym9yZGVyLXdpZHRoOjAgMXB4IDFweCAwfS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBkaXZ7Ym9yZGVyLWNvbG9yOiNDQ0MgIzk5OSAjOTk5ICNDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOTk5O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2hlaWdodDoyMHB4fS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBidXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vd3JhcH0uVklwZ0pkLVpWaTlvZC1MZ2JzU2UgYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0NDQ30uVklwZ0pkLVpWaTlvZC1TbWZae21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6I0ZGRjt3aGl0ZS1zcGFjZTpub3dyYXB9LlZJcGdKZC1aVmk5b2QtU21mWi1oU1JHUGR7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMHB0O2JvcmRlcjoxcHggb3V0c2V0ICM4ODg7cGFkZGluZzo2cHggMTBweDt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowfS5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1BkIGltZ3ttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0OjJweDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlcjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZCBzcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7bWFyZ2luLWxlZnQ6MnB4O21hcmdpbi1yaWdodDoycHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWZsb2F0LXRvcCAuVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZHtwYWRkaW5nOjJweDtib3JkZXItdG9wLXdpZHRoOjB9Lmdvb2ctdGUtZmxvYXQtYm90dG9tIC5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1Bke3BhZGRpbmc6MnB4O2JvcmRlci1ib3R0b20td2lkdGg6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVke3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMEM7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4fS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgc3Bhbnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgaW1ne21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4fS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZHtjb2xvcjojMDAwfS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZCBzcGFue3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYntiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCAjQzNEOUZGO292ZXJmbG93LXk6c2Nyb2xsO292ZXJmbG93LXg6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItaWJuQzZie3BhZGRpbmc6M3B4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmIsLlZJcGdKZC1aVmk5b2QteGwwN09iLWlibkM2YjpsaW5re2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6dmlzaXRlZHtjb2xvcjojNTUxQThCfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6aG92ZXJ7YmFja2dyb3VuZDojQzNEOUZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6YWN0aXZle2NvbG9yOiMwMEN9LlZJcGdKZC1aVmk5b2QtdkgxR21me2JhY2tncm91bmQtY29sb3I6I0ZGRjt0ZXh0LWRlY29yYXRpb246bm9uZTtib3JkZXI6MXB4IHNvbGlkICM2QjkwREE7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1LcmhQTmJ7d2lkdGg6MTZweH0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaGdEVXdle21hcmdpbjo2cHggMDtoZWlnaHQ6MXB4O2JhY2tncm91bmQtY29sb3I6I2FhYTtvdmVyZmxvdzpoaWRkZW59LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgZGl2e3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmIgLnVERUZnZXtkaXNwbGF5Om5vbmV9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgLmZtY21Te3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo0cHh9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZHt0ZXh0LWRlY29yYXRpb246bm9uZX0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOmFjdGl2ZSBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YjpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOnZpc2l0ZWQgZGl2e2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmI6aG92ZXIgZGl2e2NvbG9yOiNGRkY7YmFja2dyb3VuZDojMzZDfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDphY3RpdmUgZGl2LC5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kOmhvdmVyIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDp2aXNpdGVkIGRpdntjb2xvcjojMDAwO2ZvbnQtd2VpZ2h0OjcwMH0uVklwZ0pkLVpWaTlvZC1sOXhrdGZ7YmFja2dyb3VuZC1jb2xvcjojRkZGO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHh9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLU9FVm1jZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyOjFweCBzb2xpZCAjNkI5MERBO2JveC1zaGFkb3c6MCAzcHggOHB4IDJweCAjOTk5O2JvcmRlci1yYWRpdXM6OHB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0ZiBpbWd7Ym9yZGVyOm5vbmV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLWZtY21Te21hcmdpbi10b3A6NnB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGN7bWFyZ2luLXRvcDo2cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGMgKnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuRFVHSmlle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X21pbnVzX3NtLmdpZil9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuVGR5VERle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X3BsdXNfc20uZ2lmKX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtVmd3SmxjIHNwYW57Y29sb3I6IzAwQzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyO21hcmdpbjowIDRweH0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtSTlHTHB7bWFyZ2luOjZweCAwIDB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm17bWFyZ2luOjB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm0gdGV4dGFyZWF7bWFyZ2luLWJvdHRvbTo0cHg7d2lkdGg6MTAwJX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYteWVQZTVje21hcmdpbjo2cHggMCA0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLXdPSE15Znt6LWluZGV4OjEwMDA7cG9zaXRpb246Zml4ZWQ7dHJhbnNpdGlvbi1kZWxheTouNnM7bGVmdDotMTAwMHB4O3RvcDotMTAwMHB4fS5WSXBnSmQtWlZpOW9kLWFaMndFZS13T0hNeWYtdGk2aEdje3RyYW5zaXRpb24tZGVsYXk6MHM7bGVmdDotMTRweDt0b3A6LTE0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPe2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDRweDtoZWlnaHQ6MTA0cHg7Ym9yZGVyLXJhZGl1czo1MHB4O2JhY2tncm91bmQ6I0ZGRiB1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL3Byb2R1Y3QvMngvdHJhbnNsYXRlXzI0ZHAucG5nKSA1MCUgNTAlIG5vLXJlcGVhdDt0cmFuc2l0aW9uOmFsbCAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKC40KTtvcGFjaXR5OjB9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPLXRpNmhHY3t0cmFuc2Zvcm06c2NhbGUoLjUpO29wYWNpdHk6MX0uVklwZ0pkLVpWaTlvZC1hWjJ3RWV7bWFyZ2luOjJweCAwIDAgMnB4O2FuaW1hdGlvbjpzcGlubmVyLXJvdGF0b3IgMS40cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBzcGlubmVyLXJvdGF0b3J7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9fS5WSXBnSmQtWlZpOW9kLWFaMndFZS1KdDVjS3tzdHJva2UtZGFzaGFycmF5OjE4NztzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZTojNDI4NUY0O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO2FuaW1hdGlvbjpzcGlubmVyLWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNwaW5uZXItZGFzaHswJXtzdHJva2UtZGFzaG9mZnNldDoxODd9NTAle3N0cm9rZS1kYXNob2Zmc2V0OjQ2Ljc1O3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX10b3tzdHJva2UtZGFzaG9mZnNldDoxODc7dHJhbnNmb3JtOnJvdGF0ZSg0NTBkZWcpfX0uVklwZ0pkLXlBV05FYi1MN2xia2IgYSwuVklwZ0pkLXlBV05FYi1MN2xia2IgYm9keSwuVklwZ0pkLXlBV05FYi1MN2xia2IgZGl2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBmb3JtLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoMSwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDIsLlZJcGdKZC15QVdORWItTDdsYmtiIGgzLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoNCwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDUsLlZJcGdKZC15QVdORWItTDdsYmtiIGg2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBodG1sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBpZnJhbWUsLlZJcGdKZC15QVdORWItTDdsYmtiIGltZywuVklwZ0pkLXlBV05FYi1MN2xia2IgbGksLlZJcGdKZC15QVdORWItTDdsYmtiIG9sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBwLC5WSXBnSmQteUFXTkViLUw3bGJrYiBzcGFuLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0YWJsZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgdGJvZHksLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0ciwuVklwZ0pkLXlBV05FYi1MN2xia2IgdWx7YWxsOnVuc2V0O2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0Om5vcm1hbH0uVklwZ0pkLXlBV05FYi1MN2xia2Igb2wsLlZJcGdKZC15QVdORWItTDdsYmtiIHVse2xpc3Qtc3R5bGU6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9LlZJcGdKZC15QVdORWItTDdsYmtiIGNhcHRpb24sLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6NDAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiBpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1kaXY+LlZJcGdKZC15QVdORWItTDdsYmtie3BhZGRpbmc6MTBweCAxNHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYntjb2xvcjojMjIyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlZWU7Ym94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy1tb3otYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy13ZWJraXQtYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpO2Rpc3BsYXk6bm9uZTtmb250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBwdDt3aWR0aDo0MjBweDtwYWRkaW5nOjEycHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TLC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NsZWFyOmJvdGg7Zm9udC1zaXplOjEwcHQ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpqdXN0aWZ5O3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXI0bmtle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46NHB4IDA7dGV4dC1hbGlnbjpsZWZ0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UdkQ5UGMtTGdic1Nle2Rpc3BsYXk6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbDRlSFh7ZmxvYXQ6bGVmdDttYXJnaW46MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLVBMRGJiZntkaXNwbGF5OmlubGluZS1ibG9ja30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItZnc0MlplLVowQXJxZi1oYUFjbGZ7ZGlzcGxheTpub25lO3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1IOXREdHttYXJnaW4tdG9wOjIwcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUxLNXl1e2Zsb2F0OmxlZnR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXF3VThNZXtmbG9hdDpyaWdodH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItY0dNSTJie21pbi1oZWlnaHQ6MTVweDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MSV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLWpPZmtNYi1OZTNzRmZ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjMjk5MTBkIDAsIzIwYWYwZSAxMDAlKTtiYWNrZ3JvdW5kOiMyOTkxMGQ7Ym9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6aW5zZXQgMCAycHggMnB4ICMxZTY2MDk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDJweCAjMWU2NjA5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCAycHggIzFlNjYwOTtjb2xvcjp3aGl0ZTtmb250LXNpemU6OXB0O2ZvbnQtd2VpZ2h0OmJvbGRlcjttYXJnaW4tdG9wOjEycHg7cGFkZGluZzo2cHg7dGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzFlNjYwOX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLWhTUkdQZHtjb2xvcjojMTVjO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMXB4O21hcmdpbi1yaWdodDoxNXB4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYj50ZXh0YXJlYXtmb250LWZhbWlseTphcmlhbDtyZXNpemU6dmVydGljYWw7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLXJhZGl1czoxcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkIHNpbHZlcjtmb250LXNpemU6MTNweDtoZWlnaHQ6YXV0bztvdmVyZmxvdy15OmF1dG87cGFkZGluZzoxcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIHRleHRhcmVhOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTtvdXRsaW5lOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1JYkUwU3ttYXJnaW4tcmlnaHQ6MTBweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwe21pbi1oZWlnaHQ6MjVweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZy10b3A6OHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwe21hcmdpbi1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dHtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6NTRweDsqbWluLXdpZHRoOjcwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZGNkY2RjO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzQ0NDtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjI3cHg7b3V0bGluZTowO3BhZGRpbmc6MCA4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjI3cHg7bWFyZ2luOjAgMTZweCAwIDA7Ym94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpO2JvcmRlci1yYWRpdXM6MnB4O3RyYW5zaXRpb246YWxsIC4yMThzO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSwjZjFmMWYxKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmhvdmVye2JvcmRlcjoxcHggc29saWQgI2M2YzZjNjtjb2xvcjojMjIyO3RyYW5zaXRpb246YWxsIDBzO2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y4ZjhmOCwjZjFmMWYxKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjYzZjNmM2O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjZmNmY2O2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmZvY3VzIC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LkFIbXV3ZSAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXM6YWN0aXZle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjUpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC41KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dC5BSG11d2UsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTt6LWluZGV4OjQhaW1wb3J0YW50fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LmdrNlNNZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNlZWUsI2UwZTBlMCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2NvbG9yOiMzMzN9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZntjb2xvcjp3aGl0ZTtib3JkZXItY29sb3I6IzMwNzllZDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZDkwZmU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzQ3ODdlZCl9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZi5BSG11d2UgLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjpob3ZlciAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3Vze2JvcmRlci1jb2xvcjojMzA3OWVkO2JhY2tncm91bmQtY29sb3I6IzM1N2FlODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjMzU3YWU4KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmhvdmVye2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmYsMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZiwwIDFweCAxcHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmLDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmLkFIbXV3ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3VzLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0IC5WSXBnSmQteUFXTkViLVowQXJxZi1zRmVCcWY6aG92ZXIsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQuQUhtdXdlLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpmb2N1cywuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzMwNzllZH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbXJ4UGdle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZn0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLVcwdkpvLWZtY21Te2NvbG9yOiM5OTk7Zm9udC1zaXplOjExcHg7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46MTVweCAwIDVweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXUwcGpvZS1mbWNtU3tjb2xvcjojODAwO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6OXB0fS5WSXBnSmQteUFXTkViLVZJcGdKZC1mbWNtUy1zbjU0UXtiYWNrZ3JvdW5kLWNvbG9yOiNjOWQ3ZjE7Ym94LXNoYWRvdzoycHggMnB4IDRweCAjOTlhO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQteGwwN09ie2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym94LXNoYWRvdzowIDJweCA0cHggIzk5YTttaW4td2lkdGg6MDtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQtajdMRmxie2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MnB4IDVweCA1cHg7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLXN0eWxlOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYjpob3ZlcntiYWNrZ3JvdW5kOiNkZGR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYiBoMXtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDA7bWFyZ2luOjRweCAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQteGwwN09iIC5WSXBnSmQteUFXTkViLVZJcGdKZC1qN0xGbGIgc3Ryb25ne2NvbG9yOiMzNDVhYWR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVZJcGdKZC1lS201RmMtaEZzYm97dGV4dC1hbGlnbjpyaWdodDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6YXV0b30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYi1TSXNyVGQgLlZJcGdKZC15QVdORWItVklwZ0pkLWVLbTVGYy1oRnNib3t0ZXh0LWFsaWduOmxlZnQ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OmF1dG99LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVRWTHc5Yy1wcEhscmYtc241NFEsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtZm1jbVN7YmFja2dyb3VuZC1jb2xvcjojZjFlYTAwO2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjNweCAzcHggNHB4IHJnYmEoMCwwLDAsLjUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojZjFlYTAwO2N1cnNvcjpwb2ludGVyO21hcmdpbjotMnB4IC0ycHggLTJweCAtM3B4O3BhZGRpbmc6MnB4IDJweCAycHggM3B4O3Bvc2l0aW9uOnJlbGF0aXZlfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2NvbG9yOiMyMjJ9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2JhY2tncm91bmQtY29sb3I6I2M5ZDdmMTtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwOy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggNHB4IDAgMDstbW96LWJvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7Ym94LXNoYWRvdzozcHggM3B4IDRweCByZ2JhKDAsMCwwLC41KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOi0ycHggLTJweCAtMnB4IC0zcHg7cGFkZGluZzoycHggMnB4IDNweCAzcHg7cG9zaXRpb246cmVsYXRpdmV9LlZJcGdKZC15QVdORWItTDdsYmtiIHNwYW46Zm9jdXN7b3V0bGluZTpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtRHlWREF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmU7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowO21hcmdpbjotMnB4O3BhZGRpbmc6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi15QVdORWItVFZMdzljLXNuNTRRLUx6WDNlZntib3JkZXItbGVmdDoycHggc29saWQgcmVkO21hcmdpbi1sZWZ0Oi0ycHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1UVkx3OWMtc241NFEtWUlBaUlie2JvcmRlci1yaWdodDoycHggc29saWQgcmVkO21hcmdpbi1yaWdodDotMnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJme3BhZGRpbmc6MnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21Te2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDJweCAzcHg7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMzMzM7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkICNjMGMwYzA7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO2hlaWdodDoyMXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJvcmRlci1yYWRpdXM6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmhvdmVye2JvcmRlcjoxcHggc29saWQgI2I5YjliOTtib3JkZXItdG9wOjFweCBzb2xpZCAjYTBhMGEwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO291dGxpbmU6bm9uZTtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC1ZUHFqYmYtc0ZlQnFme2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDZweCAzcHg7bWFyZ2luOjAgMCAwIDJweDtoZWlnaHQ6MjFweH0uVklwZ0pkLXlBV05FYi1MN2xia2I+ZGl2e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LWZhbWlseTpHb29nbGUgU2FucyxBcmlhbCxzYW5zLXNlcmlmfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVWQ3ZnJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmVuZDttYXJnaW46MTRweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1TSXNyVGR7bWFyZ2luLXJpZ2h0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1JdWl6V2MtaTNqTThje21hcmdpbi1sZWZ0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1rNzdJaWZ7bWFyZ2luOjAgMTZweCAxNnB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYXhBVjF7d2lkdGg6YXV0bztjb2xvcjojMWYxZjFmO2ZvbnQtc2l6ZToxNnB4O3RleHQtYWxpZ246aW5pdGlhbH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWF4QVYxIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlke2JvcmRlci1yYWRpdXM6MCAwIDEycHggMTJweDttYXJnaW46MDtiYWNrZ3JvdW5kOiNmMWY0Zjk7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDo1MHB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkLUI3STRPZHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6NzclO3BhZGRpbmc6MTJweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLU43RXFpZC1CN0k0T2QgLlZJcGdKZC15QVdORWItU0lzclRke3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1VVHVqQ2J7Y29sb3I6IzFmMWYxZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVVR1akNie3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1lTzltS2V7Y29sb3I6IzQ0NDc0Njtmb250LXNpemU6MTJweDtwYWRkaW5nLXRvcDo0cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtZU85bUtle3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDo1cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NSAuVklwZ0pkLXlBV05FYi1TSXNyVGR7bGVmdDo1cHg7cmlnaHQ6YXV0b30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYntmaWxsOiMwYjU3ZDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1iZ202c2Z7bWFyZ2luOi00cHggMnB4IDAgMDtwYWRkaW5nOjJweCAwIDA7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjI0cHg7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDpub25lfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYmdtNnNmOmhvdmVye2JhY2tncm91bmQ6I2U4ZWJlY30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWFYWVRjZXtkaXNwbGF5Om5vbmV9c2VudGluZWx7fQ=="}},"time_used":69,"timings":{"blocked":-1,"dns":2,"connect":16,"send":0,"wait":17,"receive":0,"ssl":33},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.google.com/gen204?sl=en\u0026nca=te_ap\u0026client=te\u0026logld=vTE_20260722","fqdn":"translate.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.250.178.78","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.544Z","timestamp":1785132839544,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:35 GMT","end":"Mon, 21 Sep 2026 08:37:34 GMT"},"fingerprint":{"sha1":"2F:20:3B:91:88:65:20:CD:06:9D:0C:58:4D:17:6F:FC:9D:EC:41:83","sha256":"0C:7B:D3:23:E9:5B:D6:6B:F2:5C:71:91:4D:41:CE:E6:D7:1F:A2:F2:63:BA:25:70:1D:00:F3:C0:72:21:51:6D"}}},"request":{"raw":"GET /gen204?sl=en\u0026nca=te_ap\u0026client=te\u0026logld=vTE_20260722 HTTP/1.1\r\nHost: translate.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 204 \r\ncontent-type: image/gif; charset=utf-8\r\ncache-control: no-cache, no-store, max-age=0, must-revalidate\r\npragma: no-cache\r\nexpires: Mon, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 06:13:59 GMT\r\ncross-origin-resource-policy: cross-origin\r\np3p: CP=\"This is not a P3P policy! See g.co/p3phelp for more info.\"\r\ncontent-security-policy: require-trusted-types-for 'script';report-uri /_/TranslateApiHttp/cspreport, script-src 'nonce-Nuom61UrIjpq5Mdj8bB0Kw' 'unsafe-inline';object-src 'none';base-uri 'self';report-uri /_/TranslateApiHttp/cspreport;worker-src 'self'\r\naccept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factors, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version\r\npermissions-policy: ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factors=*, ch-ua-platform=*, ch-ua-platform-version=*\r\ncross-origin-opener-policy: same-origin\r\nreporting-endpoints: default=\"/_/TranslateApiHttp/web-reports?context=eJzj4tDikmII0JBiEOLhWP5u9mU2gQ9XdrxjUlJKyi-MLylKzCvOSSxJLU4tKkstijcyMDIzMDcy0jMwji8wAAA8ERNs\"\r\nserver: ESF\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nset-cookie: __Secure-ENID=35.SE=XZptonagH8Md4kcj4O4Z4PNzXxZKozdHlyocxiG9HW2Ud8P5saF4ZzIf9zT4BgDsuoYHvvRI4bG4Ne0Gd5JbdKbxk4wRmlIeJ0I6w2x-KEYbg7Er7Cad9tgyDFfOc3C_Ufe7mcKZRSfXGACpGL5Ry3cvGUgoFXOot5ajprr18LaaxEs5PNHBwrDZsKmTmNBNLTECXerWzPCCVfMREIUtiBjwVM1O6GqhhCnD6Netd9U; expires=Thu, 26-Aug-2027 22:32:17 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"image/gif; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T09:47:52.605533Z","times_seen":17560503,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/js/isotope.min.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.343Z","timestamp":1785132838343,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/js/isotope.min.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 03 Jan 2022 23:40:58 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 37960\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":119998,"size_decoded":38198,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (32180), with CRLF line terminators","md5":"7ab4d60be52d7de334704579c00b3ee2","sha1":"b41ace7678acdb14e81f61973f38c8efbc57f0dd","sha256":"baf74d39ec64d772b23387815e88d1dc861b0599b1a4509b2b6c3967dcfb284d","sha512":"2f8bbbde64d8a09b10814f2bc4d5c84f54a6c9476125d829a173971b558cdccaeef14ac2c020ec82b86003ecc3dfceb6c3ad0a395dd74f2dfe2f663c3f26a45c","ssdeep":"3072:T4Ud/Jiz6UANJ8pa98HrWlZBndD6LD6nrTT/9zg:Mq/kZe6pa98Hr4ZBnw","tlshash":"a8c3fac9b782742187a770b551bf010fb23aa8adb80888a8f165d8e57db4d8d5137f3d","first_seen":"2023-03-08T00:35:20Z","last_seen":"2026-07-27T06:14:42.688475Z","times_seen":90,"resource_available":true,"data":"DQovKiEgalF1ZXJ5IHYyLjEuMyB8IChjKSAyMDA1LCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uLCBJbmMuIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovDQohZnVuY3Rpb24oYSxiKXsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1hLmRvY3VtZW50P2IoYSwhMCk6ZnVuY3Rpb24oYSl7aWYoIWEuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGIoYSl9OmIoYSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZD1jLnNsaWNlLGU9Yy5jb25jYXQsZj1jLnB1c2gsZz1jLmluZGV4T2YsaD17fSxpPWgudG9TdHJpbmcsaj1oLmhhc093blByb3BlcnR5LGs9e30sbD1hLmRvY3VtZW50LG09IjIuMS4zIixuPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBuLmZuLmluaXQoYSxiKX0sbz0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2cscD0vXi1tcy0vLHE9Ly0oW1xkYS16XSkvZ2kscj1mdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O24uZm49bi5wcm90b3R5cGU9e2pxdWVyeTptLGNvbnN0cnVjdG9yOm4sc2VsZWN0b3I6IiIsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBkLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YT8wPmE/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdOmQuY2FsbCh0aGlzKX0scHVzaFN0YWNrOmZ1bmN0aW9uKGEpe3ZhciBiPW4ubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVybiBiLnByZXZPYmplY3Q9dGhpcyxiLmNvbnRleHQ9dGhpcy5jb250ZXh0LGJ9LGVhY2g6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbi5lYWNoKHRoaXMsYSxiKX0sbWFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhuLm1hcCh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuY2FsbChiLGMsYil9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXE6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGgsYz0rYSsoMD5hP2I6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGM+PTAmJmI+Yz9bdGhpc1tjXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKG51bGwpfSxwdXNoOmYsc29ydDpjLnNvcnQsc3BsaWNlOmMuc3BsaWNlfSxuLmV4dGVuZD1uLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBhLGIsYyxkLGUsZixnPWFyZ3VtZW50c1swXXx8e30saD0xLGk9YXJndW1lbnRzLmxlbmd0aCxqPSExO2ZvcigiYm9vbGVhbiI9PXR5cGVvZiBnJiYoaj1nLGc9YXJndW1lbnRzW2hdfHx7fSxoKyspLCJvYmplY3QiPT10eXBlb2YgZ3x8bi5pc0Z1bmN0aW9uKGcpfHwoZz17fSksaD09PWkmJihnPXRoaXMsaC0tKTtpPmg7aCsrKWlmKG51bGwhPShhPWFyZ3VtZW50c1toXSkpZm9yKGIgaW4gYSljPWdbYl0sZD1hW2JdLGchPT1kJiYoaiYmZCYmKG4uaXNQbGFpbk9iamVjdChkKXx8KGU9bi5pc0FycmF5KGQpKSk/KGU/KGU9ITEsZj1jJiZuLmlzQXJyYXkoYyk/YzpbXSk6Zj1jJiZuLmlzUGxhaW5PYmplY3QoYyk/Yzp7fSxnW2JdPW4uZXh0ZW5kKGosZixkKSk6dm9pZCAwIT09ZCYmKGdbYl09ZCkpO3JldHVybiBnfSxuLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisobStNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcihhKX0sbm9vcDpmdW5jdGlvbigpe30saXNGdW5jdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT09bi50eXBlKGEpfSxpc0FycmF5OkFycmF5LmlzQXJyYXksaXNXaW5kb3c6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PT1hLndpbmRvd30saXNOdW1lcmljOmZ1bmN0aW9uKGEpe3JldHVybiFuLmlzQXJyYXkoYSkmJmEtcGFyc2VGbG9hdChhKSsxPj0wfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3JldHVybiJvYmplY3QiIT09bi50eXBlKGEpfHxhLm5vZGVUeXBlfHxuLmlzV2luZG93KGEpPyExOmEuY29uc3RydWN0b3ImJiFqLmNhbGwoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKT8hMTohMH0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtmb3IoYiBpbiBhKXJldHVybiExO3JldHVybiEwfSx0eXBlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hP2ErIiI6Im9iamVjdCI9PXR5cGVvZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYT9oW2kuY2FsbChhKV18fCJvYmplY3QiOnR5cGVvZiBhfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGM9ZXZhbDthPW4udHJpbShhKSxhJiYoMT09PWEuaW5kZXhPZigidXNlIHN0cmljdCIpPyhiPWwuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksYi50ZXh0PWEsbC5oZWFkLmFwcGVuZENoaWxkKGIpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYikpOmMoYSkpfSxjYW1lbENhc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShwLCJtcy0iKS5yZXBsYWNlKHEscil9LG5vZGVOYW1lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWIudG9Mb3dlckNhc2UoKX0sZWFjaDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0wLGY9YS5sZW5ndGgsZz1zKGEpO2lmKGMpe2lmKGcpe2Zvcig7Zj5lO2UrKylpZihkPWIuYXBwbHkoYVtlXSxjKSxkPT09ITEpYnJlYWt9ZWxzZSBmb3IoZSBpbiBhKWlmKGQ9Yi5hcHBseShhW2VdLGMpLGQ9PT0hMSlicmVha31lbHNlIGlmKGcpe2Zvcig7Zj5lO2UrKylpZihkPWIuY2FsbChhW2VdLGUsYVtlXSksZD09PSExKWJyZWFrfWVsc2UgZm9yKGUgaW4gYSlpZihkPWIuY2FsbChhW2VdLGUsYVtlXSksZD09PSExKWJyZWFrO3JldHVybiBhfSx0cmltOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOihhKyIiKS5yZXBsYWNlKG8sIiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxbXTtyZXR1cm4gbnVsbCE9YSYmKHMoT2JqZWN0KGEpKT9uLm1lcmdlKGMsInN0cmluZyI9PXR5cGVvZiBhP1thXTphKTpmLmNhbGwoYyxhKSksY30saW5BcnJheTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG51bGw9PWI/LTE6Zy5jYWxsKGIsYSxjKX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO2M+ZDtkKyspYVtlKytdPWJbZF07cmV0dXJuIGEubGVuZ3RoPWUsYX0sZ3JlcDpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkLGU9W10sZj0wLGc9YS5sZW5ndGgsaD0hYztnPmY7ZisrKWQ9IWIoYVtmXSxmKSxkIT09aCYmZS5wdXNoKGFbZl0pO3JldHVybiBlfSxtYXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGY9MCxnPWEubGVuZ3RoLGg9cyhhKSxpPVtdO2lmKGgpZm9yKDtnPmY7ZisrKWQ9YihhW2ZdLGYsYyksbnVsbCE9ZCYmaS5wdXNoKGQpO2Vsc2UgZm9yKGYgaW4gYSlkPWIoYVtmXSxmLGMpLG51bGwhPWQmJmkucHVzaChkKTtyZXR1cm4gZS5hcHBseShbXSxpKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmO3JldHVybiJzdHJpbmciPT10eXBlb2YgYiYmKGM9YVtiXSxiPWEsYT1jKSxuLmlzRnVuY3Rpb24oYSk/KGU9ZC5jYWxsKGFyZ3VtZW50cywyKSxmPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYnx8dGhpcyxlLmNvbmNhdChkLmNhbGwoYXJndW1lbnRzKSkpfSxmLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8bi5ndWlkKyssZik6dm9pZCAwfSxub3c6RGF0ZS5ub3csc3VwcG9ydDprfSksbi5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7aFsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTtmdW5jdGlvbiBzKGEpe3ZhciBiPWEubGVuZ3RoLGM9bi50eXBlKGEpO3JldHVybiJmdW5jdGlvbiI9PT1jfHxuLmlzV2luZG93KGEpPyExOjE9PT1hLm5vZGVUeXBlJiZiPyEwOiJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiZiPjAmJmItMSBpbiBhfXZhciB0PWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9InNpenpsZSIrMSpuZXcgRGF0ZSx2PWEuZG9jdW1lbnQsdz0wLHg9MCx5PWhiKCksej1oYigpLEE9aGIoKSxCPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1iJiYobD0hMCksMH0sQz0xPDwzMSxEPXt9Lmhhc093blByb3BlcnR5LEU9W10sRj1FLnBvcCxHPUUucHVzaCxIPUUucHVzaCxJPUUuc2xpY2UsSj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7ZD5jO2MrKylpZihhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sSz0iY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQiLEw9IltcXHgyMFxcdFxcclxcblxcZl0iLE09Iig/OlxcXFwufFtcXHctXXxbXlxceDAwLVxceGEwXSkrIixOPU0ucmVwbGFjZSgidyIsIncjIiksTz0iXFxbIitMKyIqKCIrTSsiKSg/OiIrTCsiKihbKl4kfCF+XT89KSIrTCsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK04rIikpfCkiK0wrIipcXF0iLFA9IjooIitNKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18IitPKyIpKil8LiopXFwpfCkiLFE9bmV3IFJlZ0V4cChMKyIrIiwiZyIpLFI9bmV3IFJlZ0V4cCgiXiIrTCsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitMKyIrJCIsImciKSxTPW5ldyBSZWdFeHAoIl4iK0wrIiosIitMKyIqIiksVD1uZXcgUmVnRXhwKCJeIitMKyIqKFs+K35dfCIrTCsiKSIrTCsiKiIpLFU9bmV3IFJlZ0V4cCgiPSIrTCsiKihbXlxcXSdcIl0qPykiK0wrIipcXF0iLCJnIiksVj1uZXcgUmVnRXhwKFApLFc9bmV3IFJlZ0V4cCgiXiIrTisiJCIpLFg9e0lEOm5ldyBSZWdFeHAoIl4jKCIrTSsiKSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitNKyIpIiksVEFHOm5ldyBSZWdFeHAoIl4oIitNLnJlcGxhY2UoInciLCJ3KiIpKyIpIiksQVRUUjpuZXcgUmVnRXhwKCJeIitPKSxQU0VVRE86bmV3IFJlZ0V4cCgiXiIrUCksQ0hJTEQ6bmV3IFJlZ0V4cCgiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoIitMKyIqKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpIitMKyIqKD86KFsrLV18KSIrTCsiKihcXGQrKXwpKSIrTCsiKlxcKXwpIiwiaSIpLGJvb2w6bmV3IFJlZ0V4cCgiXig/OiIrSysiKSQiLCJpIiksbmVlZHNDb250ZXh0Om5ldyBSZWdFeHAoIl4iK0wrIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIrTCsiKigoPzotXFxkKT9cXGQqKSIrTCsiKlxcKXwpKD89W14tXXwkKSIsImkiKX0sWT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFo9L15oXGQkL2ksJD0vXltee10rXHtccypcW25hdGl2ZSBcdy8sXz0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLGFiPS9bK35dLyxiYj0vJ3xcXC9nLGNiPW5ldyBSZWdFeHAoIlxcXFwoW1xcZGEtZl17MSw2fSIrTCsiP3woIitMKyIpfC4pIiwiaWciKSxkYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9IjB4IitiLTY1NTM2O3JldHVybiBkIT09ZHx8Yz9iOjA+ZD9TdHJpbmcuZnJvbUNoYXJDb2RlKGQrNjU1MzYpOlN0cmluZy5mcm9tQ2hhckNvZGUoZD4+MTB8NTUyOTYsMTAyMyZkfDU2MzIwKX0sZWI9ZnVuY3Rpb24oKXttKCl9O3RyeXtILmFwcGx5KEU9SS5jYWxsKHYuY2hpbGROb2Rlcyksdi5jaGlsZE5vZGVzKSxFW3YuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGZiKXtIPXthcHBseTpFLmxlbmd0aD9mdW5jdGlvbihhLGIpe0cuYXBwbHkoYSxJLmNhbGwoYikpfTpmdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoLGQ9MDt3aGlsZShhW2MrK109YltkKytdKTthLmxlbmd0aD1jLTF9fX1mdW5jdGlvbiBnYihhLGIsZCxlKXt2YXIgZixoLGosayxsLG8scixzLHcseDtpZigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixkPWR8fFtdLGs9Yi5ub2RlVHlwZSwic3RyaW5nIiE9dHlwZW9mIGF8fCFhfHwxIT09ayYmOSE9PWsmJjExIT09aylyZXR1cm4gZDtpZighZSYmcCl7aWYoMTEhPT1rJiYoZj1fLmV4ZWMoYSkpKWlmKGo9ZlsxXSl7aWYoOT09PWspe2lmKGg9Yi5nZXRFbGVtZW50QnlJZChqKSwhaHx8IWgucGFyZW50Tm9kZSlyZXR1cm4gZDtpZihoLmlkPT09ailyZXR1cm4gZC5wdXNoKGgpLGR9ZWxzZSBpZihiLm93bmVyRG9jdW1lbnQmJihoPWIub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZChqKSkmJnQoYixoKSYmaC5pZD09PWopcmV0dXJuIGQucHVzaChoKSxkfWVsc2V7aWYoZlsyXSlyZXR1cm4gSC5hcHBseShkLGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSkpLGQ7aWYoKGo9ZlszXSkmJmMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gSC5hcHBseShkLGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShqKSksZH1pZihjLnFzYSYmKCFxfHwhcS50ZXN0KGEpKSl7aWYocz1yPXUsdz1iLHg9MSE9PWsmJmEsMT09PWsmJiJvYmplY3QiIT09Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXtvPWcoYSksKHI9Yi5nZXRBdHRyaWJ1dGUoImlkIikpP3M9ci5yZXBsYWNlKGJiLCJcXCQmIik6Yi5zZXRBdHRyaWJ1dGUoImlkIixzKSxzPSJbaWQ9JyIrcysiJ10gIixsPW8ubGVuZ3RoO3doaWxlKGwtLSlvW2xdPXMrcmIob1tsXSk7dz1hYi50ZXN0KGEpJiZwYihiLnBhcmVudE5vZGUpfHxiLHg9by5qb2luKCIsIil9aWYoeCl0cnl7cmV0dXJuIEguYXBwbHkoZCx3LnF1ZXJ5U2VsZWN0b3JBbGwoeCkpLGR9Y2F0Y2goeSl7fWZpbmFsbHl7cnx8Yi5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gaShhLnJlcGxhY2UoUiwiJDEiKSxiLGQsZSl9ZnVuY3Rpb24gaGIoKXt2YXIgYT1bXTtmdW5jdGlvbiBiKGMsZSl7cmV0dXJuIGEucHVzaChjKyIgIik+ZC5jYWNoZUxlbmd0aCYmZGVsZXRlIGJbYS5zaGlmdCgpXSxiW2MrIiAiXT1lfXJldHVybiBifWZ1bmN0aW9uIGliKGEpe3JldHVybiBhW3VdPSEwLGF9ZnVuY3Rpb24gamIoYSl7dmFyIGI9bi5jcmVhdGVFbGVtZW50KCJkaXYiKTt0cnl7cmV0dXJuISFhKGIpfWNhdGNoKGMpe3JldHVybiExfWZpbmFsbHl7Yi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYiksYj1udWxsfX1mdW5jdGlvbiBrYihhLGIpe3ZhciBjPWEuc3BsaXQoInwiKSxlPWEubGVuZ3RoO3doaWxlKGUtLSlkLmF0dHJIYW5kbGVbY1tlXV09Yn1mdW5jdGlvbiBsYihhLGIpe3ZhciBjPWImJmEsZD1jJiYxPT09YS5ub2RlVHlwZSYmMT09PWIubm9kZVR5cGUmJih+Yi5zb3VyY2VJbmRleHx8QyktKH5hLnNvdXJjZUluZGV4fHxDKTtpZihkKXJldHVybiBkO2lmKGMpd2hpbGUoYz1jLm5leHRTaWJsaW5nKWlmKGM9PT1iKXJldHVybi0xO3JldHVybiBhPzE6LTF9ZnVuY3Rpb24gbWIoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YyYmYi50eXBlPT09YX19ZnVuY3Rpb24gbmIoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PWN8fCJidXR0b24iPT09YykmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG9iKGEpe3JldHVybiBpYihmdW5jdGlvbihiKXtyZXR1cm4gYj0rYixpYihmdW5jdGlvbihjLGQpe3ZhciBlLGY9YShbXSxjLmxlbmd0aCxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSljW2U9ZltnXV0mJihjW2VdPSEoZFtlXT1jW2VdKSl9KX0pfWZ1bmN0aW9uIHBiKGEpe3JldHVybiBhJiYidW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmF9Yz1nYi5zdXBwb3J0PXt9LGY9Z2IuaXNYTUw9ZnVuY3Rpb24oYSl7dmFyIGI9YSYmKGEub3duZXJEb2N1bWVudHx8YSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiBiPyJIVE1MIiE9PWIubm9kZU5hbWU6ITF9LG09Z2Iuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZSxnPWE/YS5vd25lckRvY3VtZW50fHxhOnY7cmV0dXJuIGchPT1uJiY5PT09Zy5ub2RlVHlwZSYmZy5kb2N1bWVudEVsZW1lbnQ/KG49ZyxvPWcuZG9jdW1lbnRFbGVtZW50LGU9Zy5kZWZhdWx0VmlldyxlJiZlIT09ZS50b3AmJihlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGViLCExKTplLmF0dGFjaEV2ZW50JiZlLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZWIpKSxwPSFmKGcpLGMuYXR0cmlidXRlcz1qYihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGFzc05hbWU9ImkiLCFhLmdldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIil9KSxjLmdldEVsZW1lbnRzQnlUYWdOYW1lPWpiKGZ1bmN0aW9uKGEpe3JldHVybiBhLmFwcGVuZENoaWxkKGcuY3JlYXRlQ29tbWVudCgiIikpLCFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3RofSksYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPSQudGVzdChnLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpLGMuZ2V0QnlJZD1qYihmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFnLmdldEVsZW1lbnRzQnlOYW1lfHwhZy5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50QnlJZCYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYyYmYy5wYXJlbnROb2RlP1tjXTpbXX19LGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYixkYik7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiaWQiKT09PWJ9fSk6KGRlbGV0ZSBkLmZpbmQuSUQsZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGNiLGRiKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEF0dHJpYnV0ZU5vZGUmJmEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gYyYmYy52YWx1ZT09PWJ9fSksZC5maW5kLlRBRz1jLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGEsYil7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lP2IuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk6Yy5xc2E/Yi5xdWVyeVNlbGVjdG9yQWxsKGEpOnZvaWQgMH06ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9MCxmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7aWYoIioiPT09YSl7d2hpbGUoYz1mW2UrK10pMT09PWMubm9kZVR5cGUmJmQucHVzaChjKTtyZXR1cm4gZH1yZXR1cm4gZn0sZC5maW5kLkNMQVNTPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oYSxiKXtyZXR1cm4gcD9iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYSk6dm9pZCAwfSxyPVtdLHE9W10sKGMucXNhPSQudGVzdChnLnF1ZXJ5U2VsZWN0b3JBbGwpKSYmKGpiKGZ1bmN0aW9uKGEpe28uYXBwZW5kQ2hpbGQoYSkuaW5uZXJIVE1MPSI8YSBpZD0nIit1KyInPjwvYT48c2VsZWN0IGlkPSciK3UrIi1cZl0nIG1zYWxsb3djYXB0dXJlPScnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IixhLnF1ZXJ5U2VsZWN0b3JBbGwoIlttc2FsbG93Y2FwdHVyZV49JyddIikubGVuZ3RoJiZxLnB1c2goIlsqXiRdPSIrTCsiKig/OicnfFwiXCIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbc2VsZWN0ZWRdIikubGVuZ3RofHxxLnB1c2goIlxcWyIrTCsiKig/OnZhbHVlfCIrSysiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW2lkfj0iK3UrIi1dIikubGVuZ3RofHxxLnB1c2goIn49IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8cS5wdXNoKCI6Y2hlY2tlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiYSMiK3UrIisqIikubGVuZ3RofHxxLnB1c2goIi4jLitbK35dIil9KSxqYihmdW5jdGlvbihhKXt2YXIgYj1nLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZxLnB1c2goIm5hbWUiK0wrIipbKl4kfCF+XT89IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aHx8cS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHEucHVzaCgiLC4qOiIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj0kLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmpiKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsImRpdiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixQKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9JC50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8JC50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09Z3x8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1nfHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0ooayxhKS1KKGssYik6MDo0JmQ/LTE6MSl9OmZ1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgYyxkPTAsZT1hLnBhcmVudE5vZGUsZj1iLnBhcmVudE5vZGUsaD1bYV0saT1bYl07aWYoIWV8fCFmKXJldHVybiBhPT09Zz8tMTpiPT09Zz8xOmU/LTE6Zj8xOms/SihrLGEpLUooayxiKTowO2lmKGU9PT1mKXJldHVybiBsYihhLGIpO2M9YTt3aGlsZShjPWMucGFyZW50Tm9kZSloLnVuc2hpZnQoYyk7Yz1iO3doaWxlKGM9Yy5wYXJlbnROb2RlKWkudW5zaGlmdChjKTt3aGlsZShoW2RdPT09aVtkXSlkKys7cmV0dXJuIGQ/bGIoaFtkXSxpW2RdKTpoW2RdPT09dj8tMTppW2RdPT09dj8xOjB9LGcpOm59LGdiLm1hdGNoZXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZ2IoYSxudWxsLG51bGwsYil9LGdiLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihhLGIpe2lmKChhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSxiPWIucmVwbGFjZShVLCI9JyQxJ10iKSwhKCFjLm1hdGNoZXNTZWxlY3Rvcnx8IXB8fHImJnIudGVzdChiKXx8cSYmcS50ZXN0KGIpKSl0cnl7dmFyIGQ9cy5jYWxsKGEsYik7aWYoZHx8Yy5kaXNjb25uZWN0ZWRNYXRjaHx8YS5kb2N1bWVudCYmMTEhPT1hLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBkfWNhdGNoKGUpe31yZXR1cm4gZ2IoYixuLG51bGwsW2FdKS5sZW5ndGg+MH0sZ2IuY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSksdChhLGIpfSxnYi5hdHRyPWZ1bmN0aW9uKGEsYil7KGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpO3ZhciBlPWQuYXR0ckhhbmRsZVtiLnRvTG93ZXJDYXNlKCldLGY9ZSYmRC5jYWxsKGQuYXR0ckhhbmRsZSxiLnRvTG93ZXJDYXNlKCkpP2UoYSxiLCFwKTp2b2lkIDA7cmV0dXJuIHZvaWQgMCE9PWY/ZjpjLmF0dHJpYnV0ZXN8fCFwP2EuZ2V0QXR0cmlidXRlKGIpOihmPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJmYuc3BlY2lmaWVkP2YudmFsdWU6bnVsbH0sZ2IuZXJyb3I9ZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2EpfSxnYi51bmlxdWVTb3J0PWZ1bmN0aW9uKGEpe3ZhciBiLGQ9W10sZT0wLGY9MDtpZihsPSFjLmRldGVjdER1cGxpY2F0ZXMsaz0hYy5zb3J0U3RhYmxlJiZhLnNsaWNlKDApLGEuc29ydChCKSxsKXt3aGlsZShiPWFbZisrXSliPT09YVtmXSYmKGU9ZC5wdXNoKGYpKTt3aGlsZShlLS0pYS5zcGxpY2UoZFtlXSwxKX1yZXR1cm4gaz1udWxsLGF9LGU9Z2IuZ2V0VGV4dD1mdW5jdGlvbihhKXt2YXIgYixjPSIiLGQ9MCxmPWEubm9kZVR5cGU7aWYoZil7aWYoMT09PWZ8fDk9PT1mfHwxMT09PWYpe2lmKCJzdHJpbmciPT10eXBlb2YgYS50ZXh0Q29udGVudClyZXR1cm4gYS50ZXh0Q29udGVudDtmb3IoYT1hLmZpcnN0Q2hpbGQ7YTthPWEubmV4dFNpYmxpbmcpYys9ZShhKX1lbHNlIGlmKDM9PT1mfHw0PT09ZilyZXR1cm4gYS5ub2RlVmFsdWV9ZWxzZSB3aGlsZShiPWFbZCsrXSljKz1lKGIpO3JldHVybiBjfSxkPWdiLnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmliLG1hdGNoOlgsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGEpe3JldHVybiBhWzFdPWFbMV0ucmVwbGFjZShjYixkYiksYVszXT0oYVszXXx8YVs0XXx8YVs1XXx8IiIpLnJlcGxhY2UoY2IsZGIpLCJ+PSI9PT1hWzJdJiYoYVszXT0iICIrYVszXSsiICIpLGEuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09YVsxXS5zbGljZSgwLDMpPyhhWzNdfHxnYi5lcnJvcihhWzBdKSxhWzRdPSsoYVs0XT9hWzVdKyhhWzZdfHwxKToyKigiZXZlbiI9PT1hWzNdfHwib2RkIj09PWFbM10pKSxhWzVdPSsoYVs3XSthWzhdfHwib2RkIj09PWFbM10pKTphWzNdJiZnYi5lcnJvcihhWzBdKSxhfSxQU0VVRE86ZnVuY3Rpb24oYSl7dmFyIGIsYz0hYVs2XSYmYVsyXTtyZXR1cm4gWC5DSElMRC50ZXN0KGFbMF0pP251bGw6KGFbM10/YVsyXT1hWzRdfHxhWzVdfHwiIjpjJiZWLnRlc3QoYykmJihiPWcoYywhMCkpJiYoYj1jLmluZGV4T2YoIikiLGMubGVuZ3RoLWIpLWMubGVuZ3RoKSYmKGFbMF09YVswXS5zbGljZSgwLGIpLGFbMl09Yy5zbGljZSgwLGIpKSxhLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGNiLGRiKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWE/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWJ9fSxDTEFTUzpmdW5jdGlvbihhKXt2YXIgYj15W2ErIiAiXTtyZXR1cm4gYnx8KGI9bmV3IFJlZ0V4cCgiKF58IitMKyIpIithKyIoIitMKyJ8JCkiKSkmJnkoYSxmdW5jdGlvbihhKXtyZXR1cm4gYi50ZXN0KCJzdHJpbmciPT10eXBlb2YgYS5jbGFzc05hbWUmJmEuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0QXR0cmlidXRlJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1nYi5hdHRyKGQsYSk7cmV0dXJuIG51bGw9PWU/IiE9Ij09PWI6Yj8oZSs9IiIsIj0iPT09Yj9lPT09YzoiIT0iPT09Yj9lIT09YzoiXj0iPT09Yj9jJiYwPT09ZS5pbmRleE9mKGMpOiIqPSI9PT1iP2MmJmUuaW5kZXhPZihjKT4tMToiJD0iPT09Yj9jJiZlLnNsaWNlKC1jLmxlbmd0aCk9PT1jOiJ+PSI9PT1iPygiICIrZS5yZXBsYWNlKFEsIiAiKSsiICIpLmluZGV4T2YoYyk+LTE6Inw9Ij09PWI/ZT09PWN8fGUuc2xpY2UoMCxjLmxlbmd0aCsxKT09PWMrIi0iOiExKTohMH19LENISUxEOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9Im50aCIhPT1hLnNsaWNlKDAsMyksZz0ibGFzdCIhPT1hLnNsaWNlKC00KSxoPSJvZi10eXBlIj09PWI7cmV0dXJuIDE9PT1kJiYwPT09ZT9mdW5jdGlvbihhKXtyZXR1cm4hIWEucGFyZW50Tm9kZX06ZnVuY3Rpb24oYixjLGkpe3ZhciBqLGssbCxtLG4sbyxwPWYhPT1nPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIscT1iLnBhcmVudE5vZGUscj1oJiZiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkscz0haSYmIWg7aWYocSl7aWYoZil7d2hpbGUocCl7bD1iO3doaWxlKGw9bFtwXSlpZihoP2wubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PWwubm9kZVR5cGUpcmV0dXJuITE7bz1wPSJvbmx5Ij09PWEmJiFvJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKG89W2c/cS5maXJzdENoaWxkOnEubGFzdENoaWxkXSxnJiZzKXtrPXFbdV18fChxW3VdPXt9KSxqPWtbYV18fFtdLG49alswXT09PXcmJmpbMV0sbT1qWzBdPT09dyYmalsyXSxsPW4mJnEuY2hpbGROb2Rlc1tuXTt3aGlsZShsPSsrbiYmbCYmbFtwXXx8KG09bj0wKXx8by5wb3AoKSlpZigxPT09bC5ub2RlVHlwZSYmKyttJiZsPT09Yil7a1thXT1bdyxuLG1dO2JyZWFrfX1lbHNlIGlmKHMmJihqPShiW3VdfHwoYlt1XT17fSkpW2FdKSYmalswXT09PXcpbT1qWzFdO2Vsc2Ugd2hpbGUobD0rK24mJmwmJmxbcF18fChtPW49MCl8fG8ucG9wKCkpaWYoKGg/bC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09cjoxPT09bC5ub2RlVHlwZSkmJisrbSYmKHMmJigobFt1XXx8KGxbdV09e30pKVthXT1bdyxtXSksbD09PWIpKWJyZWFrO3JldHVybiBtLT1lLG09PT1kfHxtJWQ9PT0wJiZtL2Q+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT1kLnBzZXVkb3NbYV18fGQuc2V0RmlsdGVyc1thLnRvTG93ZXJDYXNlKCldfHxnYi5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2EpO3JldHVybiBlW3VdP2UoYik6ZS5sZW5ndGg+MT8oYz1bYSxhLCIiLGJdLGQuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShhLnRvTG93ZXJDYXNlKCkpP2liKGZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1lKGEsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pZD1KKGEsZltnXSksYVtkXT0hKGNbZF09ZltnXSl9KTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLDAsYyl9KTplfX0scHNldWRvczp7bm90OmliKGZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9W10sZD1oKGEucmVwbGFjZShSLCIkMSIpKTtyZXR1cm4gZFt1XT9pYihmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnPWQoYSxudWxsLGUsW10pLGg9YS5sZW5ndGg7d2hpbGUoaC0tKShmPWdbaF0pJiYoYVtoXT0hKGJbaF09ZikpfSk6ZnVuY3Rpb24oYSxlLGYpe3JldHVybiBiWzBdPWEsZChiLG51bGwsZixjKSxiWzBdPW51bGwsIWMucG9wKCl9fSksaGFzOmliKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZ2IoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczppYihmdW5jdGlvbihhKXtyZXR1cm4gYT1hLnJlcGxhY2UoY2IsZGIpLGZ1bmN0aW9uKGIpe3JldHVybihiLnRleHRDb250ZW50fHxiLmlubmVyVGV4dHx8ZShiKSkuaW5kZXhPZihhKT4tMX19KSxsYW5nOmliKGZ1bmN0aW9uKGEpe3JldHVybiBXLnRlc3QoYXx8IiIpfHxnYi5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIithKSxhPWEucmVwbGFjZShjYixkYikudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihiKXt2YXIgYztkbyBpZihjPXA/Yi5sYW5nOmIuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxiLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBjPWMudG9Mb3dlckNhc2UoKSxjPT09YXx8MD09PWMuaW5kZXhPZihhKyItIik7d2hpbGUoKGI9Yi5wYXJlbnROb2RlKSYmMT09PWIubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihiKXt2YXIgYz1hLmxvY2F0aW9uJiZhLmxvY2F0aW9uLmhhc2g7cmV0dXJuIGMmJmMuc2xpY2UoMSk9PT1iLmlkfSxyb290OmZ1bmN0aW9uKGEpe3JldHVybiBhPT09b30sZm9jdXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1uLmFjdGl2ZUVsZW1lbnQmJighbi5oYXNGb2N1c3x8bi5oYXNGb2N1cygpKSYmISEoYS50eXBlfHxhLmhyZWZ8fH5hLnRhYkluZGV4KX0sZW5hYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSExfSxkaXNhYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSEwfSxjaGVja2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmISFhLmNoZWNrZWR8fCJvcHRpb24iPT09YiYmISFhLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxhLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKGEpe2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZylpZihhLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hZC5wc2V1ZG9zLmVtcHR5KGEpfSxoZWFkZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIFoudGVzdChhLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFkudGVzdChhLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmImJ1dHRvbiI9PT1hLnR5cGV8fCJidXR0b24iPT09Yn0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4iaW5wdXQiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1hLnR5cGUmJihudWxsPT0oYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09Yi50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6b2IoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0Om9iKGZ1bmN0aW9uKGEsYil7cmV0dXJuW2ItMV19KSxlcTpvYihmdW5jdGlvbihhLGIsYyl7cmV0dXJuWzA+Yz9jK2I6Y119KSxldmVuOm9iKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksb2RkOm9iKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksbHQ6b2IoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wPmM/YytiOmM7LS1kPj0wOylhLnB1c2goZCk7cmV0dXJuIGF9KSxndDpvYihmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzsrK2Q8YjspYS5wdXNoKGQpO3JldHVybiBhfSl9fSxkLnBzZXVkb3MubnRoPWQucHNldWRvcy5lcTtmb3IoYiBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlkLnBzZXVkb3NbYl09bWIoYik7Zm9yKGIgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlkLnBzZXVkb3NbYl09bmIoYik7ZnVuY3Rpb24gcWIoKXt9cWIucHJvdG90eXBlPWQuZmlsdGVycz1kLnBzZXVkb3MsZC5zZXRGaWx0ZXJzPW5ldyBxYixnPWdiLnRva2VuaXplPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaCxpLGosaz16W2ErIiAiXTtpZihrKXJldHVybiBiPzA6ay5zbGljZSgwKTtoPWEsaT1bXSxqPWQucHJlRmlsdGVyO3doaWxlKGgpeyghY3x8KGU9Uy5leGVjKGgpKSkmJihlJiYoaD1oLnNsaWNlKGVbMF0ubGVuZ3RoKXx8aCksaS5wdXNoKGY9W10pKSxjPSExLChlPVQuZXhlYyhoKSkmJihjPWUuc2hpZnQoKSxmLnB1c2goe3ZhbHVlOmMsdHlwZTplWzBdLnJlcGxhY2UoUiwiICIpfSksaD1oLnNsaWNlKGMubGVuZ3RoKSk7Zm9yKGcgaW4gZC5maWx0ZXIpIShlPVhbZ10uZXhlYyhoKSl8fGpbZ10mJiEoZT1qW2ddKGUpKXx8KGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmcsbWF0Y2hlczplfSksaD1oLnNsaWNlKGMubGVuZ3RoKSk7aWYoIWMpYnJlYWt9cmV0dXJuIGI/aC5sZW5ndGg6aD9nYi5lcnJvcihhKTp6KGEsaSkuc2xpY2UoMCl9O2Z1bmN0aW9uIHJiKGEpe2Zvcih2YXIgYj0wLGM9YS5sZW5ndGgsZD0iIjtjPmI7YisrKWQrPWFbYl0udmFsdWU7cmV0dXJuIGR9ZnVuY3Rpb24gc2IoYSxiLGMpe3ZhciBkPWIuZGlyLGU9YyYmInBhcmVudE5vZGUiPT09ZCxmPXgrKztyZXR1cm4gYi5maXJzdD9mdW5jdGlvbihiLGMsZil7d2hpbGUoYj1iW2RdKWlmKDE9PT1iLm5vZGVUeXBlfHxlKXJldHVybiBhKGIsYyxmKX06ZnVuY3Rpb24oYixjLGcpe3ZhciBoLGksaj1bdyxmXTtpZihnKXt3aGlsZShiPWJbZF0paWYoKDE9PT1iLm5vZGVUeXBlfHxlKSYmYShiLGMsZykpcmV0dXJuITB9ZWxzZSB3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpe2lmKGk9Ylt1XXx8KGJbdV09e30pLChoPWlbZF0pJiZoWzBdPT09dyYmaFsxXT09PWYpcmV0dXJuIGpbMl09aFsyXTtpZihpW2RdPWosalsyXT1hKGIsYyxnKSlyZXR1cm4hMH19fWZ1bmN0aW9uIHRiKGEpe3JldHVybiBhLmxlbmd0aD4xP2Z1bmN0aW9uKGIsYyxkKXt2YXIgZT1hLmxlbmd0aDt3aGlsZShlLS0paWYoIWFbZV0oYixjLGQpKXJldHVybiExO3JldHVybiEwfTphWzBdfWZ1bmN0aW9uIHViKGEsYixjKXtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2U+ZDtkKyspZ2IoYSxiW2RdLGMpO3JldHVybiBjfWZ1bmN0aW9uIHZiKGEsYixjLGQsZSl7Zm9yKHZhciBmLGc9W10saD0wLGk9YS5sZW5ndGgsaj1udWxsIT1iO2k+aDtoKyspKGY9YVtoXSkmJighY3x8YyhmLGQsZSkpJiYoZy5wdXNoKGYpLGomJmIucHVzaChoKSk7cmV0dXJuIGd9ZnVuY3Rpb24gd2IoYSxiLGMsZCxlLGYpe3JldHVybiBkJiYhZFt1XSYmKGQ9d2IoZCkpLGUmJiFlW3VdJiYoZT13YihlLGYpKSxpYihmdW5jdGlvbihmLGcsaCxpKXt2YXIgaixrLGwsbT1bXSxuPVtdLG89Zy5sZW5ndGgscD1mfHx1YihifHwiKiIsaC5ub2RlVHlwZT9baF06aCxbXSkscT0hYXx8IWYmJmI/cDp2YihwLG0sYSxoLGkpLHI9Yz9lfHwoZj9hOm98fGQpP1tdOmc6cTtpZihjJiZjKHEscixoLGkpLGQpe2o9dmIocixuKSxkKGosW10saCxpKSxrPWoubGVuZ3RoO3doaWxlKGstLSkobD1qW2tdKSYmKHJbbltrXV09IShxW25ba11dPWwpKX1pZihmKXtpZihlfHxhKXtpZihlKXtqPVtdLGs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiZqLnB1c2gocVtrXT1sKTtlKG51bGwscj1bXSxqLGkpfWs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiYoaj1lP0ooZixsKTptW2tdKT4tMSYmKGZbal09IShnW2pdPWwpKX19ZWxzZSByPXZiKHI9PT1nP3Iuc3BsaWNlKG8sci5sZW5ndGgpOnIpLGU/ZShudWxsLGcscixpKTpILmFwcGx5KGcscil9KX1mdW5jdGlvbiB4YihhKXtmb3IodmFyIGIsYyxlLGY9YS5sZW5ndGgsZz1kLnJlbGF0aXZlW2FbMF0udHlwZV0saD1nfHxkLnJlbGF0aXZlWyIgIl0saT1nPzE6MCxrPXNiKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09Yn0saCwhMCksbD1zYihmdW5jdGlvbihhKXtyZXR1cm4gSihiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7dmFyIGU9IWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSk7cmV0dXJuIGI9bnVsbCxlfV07Zj5pO2krKylpZihjPWQucmVsYXRpdmVbYVtpXS50eXBlXSltPVtzYih0YihtKSxjKV07ZWxzZXtpZihjPWQuZmlsdGVyW2FbaV0udHlwZV0uYXBwbHkobnVsbCxhW2ldLm1hdGNoZXMpLGNbdV0pe2ZvcihlPSsraTtmPmU7ZSsrKWlmKGQucmVsYXRpdmVbYVtlXS50eXBlXSlicmVhaztyZXR1cm4gd2IoaT4xJiZ0YihtKSxpPjEmJnJiKGEuc2xpY2UoMCxpLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09YVtpLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoUiwiJDEiKSxjLGU+aSYmeGIoYS5zbGljZShpLGUpKSxmPmUmJnhiKGE9YS5zbGljZShlKSksZj5lJiZyYihhKSl9bS5wdXNoKGMpfXJldHVybiB0YihtKX1mdW5jdGlvbiB5YihhLGIpe3ZhciBjPWIubGVuZ3RoPjAsZT1hLmxlbmd0aD4wLGY9ZnVuY3Rpb24oZixnLGgsaSxrKXt2YXIgbCxtLG8scD0wLHE9IjAiLHI9ZiYmW10scz1bXSx0PWosdT1mfHxlJiZkLmZpbmQuVEFHKCIqIixrKSx2PXcrPW51bGw9PXQ/MTpNYXRoLnJhbmRvbSgpfHwuMSx4PXUubGVuZ3RoO2ZvcihrJiYoaj1nIT09biYmZyk7cSE9PXgmJm51bGwhPShsPXVbcV0pO3ErKyl7aWYoZSYmbCl7bT0wO3doaWxlKG89YVttKytdKWlmKG8obCxnLGgpKXtpLnB1c2gobCk7YnJlYWt9ayYmKHc9dil9YyYmKChsPSFvJiZsKSYmcC0tLGYmJnIucHVzaChsKSl9aWYocCs9cSxjJiZxIT09cCl7bT0wO3doaWxlKG89YlttKytdKW8ocixzLGcsaCk7aWYoZil7aWYocD4wKXdoaWxlKHEtLSlyW3FdfHxzW3FdfHwoc1txXT1GLmNhbGwoaSkpO3M9dmIocyl9SC5hcHBseShpLHMpLGsmJiFmJiZzLmxlbmd0aD4wJiZwK2IubGVuZ3RoPjEmJmdiLnVuaXF1ZVNvcnQoaSl9cmV0dXJuIGsmJih3PXYsaj10KSxyfTtyZXR1cm4gYz9pYihmKTpmfXJldHVybiBoPWdiLmNvbXBpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9W10sZj1BW2ErIiAiXTtpZighZil7Ynx8KGI9ZyhhKSksYz1iLmxlbmd0aDt3aGlsZShjLS0pZj14YihiW2NdKSxmW3VdP2QucHVzaChmKTplLnB1c2goZik7Zj1BKGEseWIoZSxkKSksZi5zZWxlY3Rvcj1hfXJldHVybiBmfSxpPWdiLnNlbGVjdD1mdW5jdGlvbihhLGIsZSxmKXt2YXIgaSxqLGssbCxtLG49ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEsbz0hZiYmZyhhPW4uc2VsZWN0b3J8fGEpO2lmKGU9ZXx8W10sMT09PW8ubGVuZ3RoKXtpZihqPW9bMF09b1swXS5zbGljZSgwKSxqLmxlbmd0aD4yJiYiSUQiPT09KGs9alswXSkudHlwZSYmYy5nZXRCeUlkJiY5PT09Yi5ub2RlVHlwZSYmcCYmZC5yZWxhdGl2ZVtqWzFdLnR5cGVdKXtpZihiPShkLmZpbmQuSUQoay5tYXRjaGVzWzBdLnJlcGxhY2UoY2IsZGIpLGIpfHxbXSlbMF0sIWIpcmV0dXJuIGU7biYmKGI9Yi5wYXJlbnROb2RlKSxhPWEuc2xpY2Uoai5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1YLm5lZWRzQ29udGV4dC50ZXN0KGEpPzA6ai5sZW5ndGg7d2hpbGUoaS0tKXtpZihrPWpbaV0sZC5yZWxhdGl2ZVtsPWsudHlwZV0pYnJlYWs7aWYoKG09ZC5maW5kW2xdKSYmKGY9bShrLm1hdGNoZXNbMF0ucmVwbGFjZShjYixkYiksYWIudGVzdChqWzBdLnR5cGUpJiZwYihiLnBhcmVudE5vZGUpfHxiKSkpe2lmKGouc3BsaWNlKGksMSksYT1mLmxlbmd0aCYmcmIoaiksIWEpcmV0dXJuIEguYXBwbHkoZSxmKSxlO2JyZWFrfX19cmV0dXJuKG58fGgoYSxvKSkoZixiLCFwLGUsYWIudGVzdChhKSYmcGIoYi5wYXJlbnROb2RlKXx8YiksZX0sYy5zb3J0U3RhYmxlPXUuc3BsaXQoIiIpLnNvcnQoQikuam9pbigiIik9PT11LGMuZGV0ZWN0RHVwbGljYXRlcz0hIWwsbSgpLGMuc29ydERldGFjaGVkPWpiKGZ1bmN0aW9uKGEpe3JldHVybiAxJmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24obi5jcmVhdGVFbGVtZW50KCJkaXYiKSl9KSxqYihmdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxrYigidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphLmdldEF0dHJpYnV0ZShiLCJ0eXBlIj09PWIudG9Mb3dlckNhc2UoKT8xOjIpfSksYy5hdHRyaWJ1dGVzJiZqYihmdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxpbnB1dC8+IixhLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxrYigidmFsdWUiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gY3x8ImlucHV0IiE9PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT92b2lkIDA6YS5kZWZhdWx0VmFsdWV9KSxqYihmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8a2IoSyxmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOmFbYl09PT0hMD9iLnRvTG93ZXJDYXNlKCk6KGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZC5zcGVjaWZpZWQ/ZC52YWx1ZTpudWxsfSksZ2J9KGEpO24uZmluZD10LG4uZXhwcj10LnNlbGVjdG9ycyxuLmV4cHJbIjoiXT1uLmV4cHIucHNldWRvcyxuLnVuaXF1ZT10LnVuaXF1ZVNvcnQsbi50ZXh0PXQuZ2V0VGV4dCxuLmlzWE1MRG9jPXQuaXNYTUwsbi5jb250YWlucz10LmNvbnRhaW5zO3ZhciB1PW4uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQsdj0vXjwoXHcrKVxzKlwvPz4oPzo8XC9cMT58KSQvLHc9L14uW146I1xbXC4sXSokLztmdW5jdGlvbiB4KGEsYixjKXtpZihuLmlzRnVuY3Rpb24oYikpcmV0dXJuIG4uZ3JlcChhLGZ1bmN0aW9uKGEsZCl7cmV0dXJuISFiLmNhbGwoYSxkLGEpIT09Y30pO2lmKGIubm9kZVR5cGUpcmV0dXJuIG4uZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBhPT09YiE9PWN9KTtpZigic3RyaW5nIj09dHlwZW9mIGIpe2lmKHcudGVzdChiKSlyZXR1cm4gbi5maWx0ZXIoYixhLGMpO2I9bi5maWx0ZXIoYixhKX1yZXR1cm4gbi5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGcuY2FsbChiLGEpPj0wIT09Y30pfW4uZmlsdGVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iWzBdO3JldHVybiBjJiYoYT0iOm5vdCgiK2ErIikiKSwxPT09Yi5sZW5ndGgmJjE9PT1kLm5vZGVUeXBlP24uZmluZC5tYXRjaGVzU2VsZWN0b3IoZCxhKT9bZF06W106bi5maW5kLm1hdGNoZXMoYSxuLmdyZXAoYixmdW5jdGlvbihhKXtyZXR1cm4gMT09PWEubm9kZVR5cGV9KSl9LG4uZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGEpe3ZhciBiLGM9dGhpcy5sZW5ndGgsZD1bXSxlPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybiB0aGlzLnB1c2hTdGFjayhuKGEpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7Yz5iO2IrKylpZihuLmNvbnRhaW5zKGVbYl0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKGI9MDtjPmI7YisrKW4uZmluZChhLGVbYl0sZCk7cmV0dXJuIGQ9dGhpcy5wdXNoU3RhY2soYz4xP24udW5pcXVlKGQpOmQpLGQuc2VsZWN0b3I9dGhpcy5zZWxlY3Rvcj90aGlzLnNlbGVjdG9yKyIgIithOmEsZH0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayh4KHRoaXMsYXx8W10sITEpKX0sbm90OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayh4KHRoaXMsYXx8W10sITApKX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISF4KHRoaXMsInN0cmluZyI9PXR5cGVvZiBhJiZ1LnRlc3QoYSk/bihhKTphfHxbXSwhMSkubGVuZ3RofX0pO3ZhciB5LHo9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0qKSkkLyxBPW4uZm4uaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYoIWEpcmV0dXJuIHRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBhKXtpZihjPSI8Ij09PWFbMF0mJiI+Ij09PWFbYS5sZW5ndGgtMV0mJmEubGVuZ3RoPj0zP1tudWxsLGEsbnVsbF06ei5leGVjKGEpLCFjfHwhY1sxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk/KGJ8fHkpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGNbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIG4/YlswXTpiLG4ubWVyZ2UodGhpcyxuLnBhcnNlSFRNTChjWzFdLGImJmIubm9kZVR5cGU/Yi5vd25lckRvY3VtZW50fHxiOmwsITApKSx2LnRlc3QoY1sxXSkmJm4uaXNQbGFpbk9iamVjdChiKSlmb3IoYyBpbiBiKW4uaXNGdW5jdGlvbih0aGlzW2NdKT90aGlzW2NdKGJbY10pOnRoaXMuYXR0cihjLGJbY10pO3JldHVybiB0aGlzfXJldHVybiBkPWwuZ2V0RWxlbWVudEJ5SWQoY1syXSksZCYmZC5wYXJlbnROb2RlJiYodGhpcy5sZW5ndGg9MSx0aGlzWzBdPWQpLHRoaXMuY29udGV4dD1sLHRoaXMuc2VsZWN0b3I9YSx0aGlzfXJldHVybiBhLm5vZGVUeXBlPyh0aGlzLmNvbnRleHQ9dGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6bi5pc0Z1bmN0aW9uKGEpPyJ1bmRlZmluZWQiIT10eXBlb2YgeS5yZWFkeT95LnJlYWR5KGEpOmEobik6KHZvaWQgMCE9PWEuc2VsZWN0b3ImJih0aGlzLnNlbGVjdG9yPWEuc2VsZWN0b3IsdGhpcy5jb250ZXh0PWEuY29udGV4dCksbi5tYWtlQXJyYXkoYSx0aGlzKSl9O0EucHJvdG90eXBlPW4uZm4seT1uKGwpO3ZhciBCPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLEM9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07bi5leHRlbmQoe2RpcjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT12b2lkIDAhPT1jO3doaWxlKChhPWFbYl0pJiY5IT09YS5ub2RlVHlwZSlpZigxPT09YS5ub2RlVHlwZSl7aWYoZSYmbihhKS5pcyhjKSlicmVhaztkLnB1c2goYSl9cmV0dXJuIGR9LHNpYmxpbmc6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W107YTthPWEubmV4dFNpYmxpbmcpMT09PWEubm9kZVR5cGUmJmEhPT1iJiZjLnB1c2goYSk7cmV0dXJuIGN9fSksbi5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYj1uKGEsdGhpcyksYz1iLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGE9MDtjPmE7YSsrKWlmKG4uY29udGFpbnModGhpcyxiW2FdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9MCxlPXRoaXMubGVuZ3RoLGY9W10sZz11LnRlc3QoYSl8fCJzdHJpbmciIT10eXBlb2YgYT9uKGEsYnx8dGhpcy5jb250ZXh0KTowO2U+ZDtkKyspZm9yKGM9dGhpc1tkXTtjJiZjIT09YjtjPWMucGFyZW50Tm9kZSlpZihjLm5vZGVUeXBlPDExJiYoZz9nLmluZGV4KGMpPi0xOjE9PT1jLm5vZGVUeXBlJiZuLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGMsYSkpKXtmLnB1c2goYyk7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKGYubGVuZ3RoPjE/bi51bmlxdWUoZik6Zil9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9nLmNhbGwobihhKSx0aGlzWzBdKTpnLmNhbGwodGhpcyxhLmpxdWVyeT9hWzBdOmEpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4udW5pcXVlKG4ubWVyZ2UodGhpcy5nZXQoKSxuKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWE/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoYSkpfX0pO2Z1bmN0aW9uIEQoYSxiKXt3aGlsZSgoYT1hW2JdKSYmMSE9PWEubm9kZVR5cGUpO3JldHVybiBhfW4uZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtyZXR1cm4gYiYmMTEhPT1iLm5vZGVUeXBlP2I6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gbi5kaXIoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuLmRpcihhLCJwYXJlbnROb2RlIixjKX0sbmV4dDpmdW5jdGlvbihhKXtyZXR1cm4gRChhLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGEpe3JldHVybiBEKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBuLmRpcihhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBuLmRpcihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbi5kaXIoYSwibmV4dFNpYmxpbmciLGMpfSxwcmV2VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuLmRpcihhLCJwcmV2aW91c1NpYmxpbmciLGMpfSxzaWJsaW5nczpmdW5jdGlvbihhKXtyZXR1cm4gbi5zaWJsaW5nKChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gbi5zaWJsaW5nKGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBhLmNvbnRlbnREb2N1bWVudHx8bi5tZXJnZShbXSxhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtuLmZuW2FdPWZ1bmN0aW9uKGMsZCl7dmFyIGU9bi5tYXAodGhpcyxiLGMpO3JldHVybiJVbnRpbCIhPT1hLnNsaWNlKC01KSYmKGQ9YyksZCYmInN0cmluZyI9PXR5cGVvZiBkJiYoZT1uLmZpbHRlcihkLGUpKSx0aGlzLmxlbmd0aD4xJiYoQ1thXXx8bi51bmlxdWUoZSksQi50ZXN0KGEpJiZlLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIEU9L1xTKy9nLEY9e307ZnVuY3Rpb24gRyhhKXt2YXIgYj1GW2FdPXt9O3JldHVybiBuLmVhY2goYS5tYXRjaChFKXx8W10sZnVuY3Rpb24oYSxjKXtiW2NdPSEwfSksYn1uLkNhbGxiYWNrcz1mdW5jdGlvbihhKXthPSJzdHJpbmciPT10eXBlb2YgYT9GW2FdfHxHKGEpOm4uZXh0ZW5kKHt9LGEpO3ZhciBiLGMsZCxlLGYsZyxoPVtdLGk9IWEub25jZSYmW10saj1mdW5jdGlvbihsKXtmb3IoYj1hLm1lbW9yeSYmbCxjPSEwLGc9ZXx8MCxlPTAsZj1oLmxlbmd0aCxkPSEwO2gmJmY+ZztnKyspaWYoaFtnXS5hcHBseShsWzBdLGxbMV0pPT09ITEmJmEuc3RvcE9uRmFsc2Upe2I9ITE7YnJlYWt9ZD0hMSxoJiYoaT9pLmxlbmd0aCYmaihpLnNoaWZ0KCkpOmI/aD1bXTprLmRpc2FibGUoKSl9LGs9e2FkZDpmdW5jdGlvbigpe2lmKGgpe3ZhciBjPWgubGVuZ3RoOyFmdW5jdGlvbiBnKGIpe24uZWFjaChiLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9bi50eXBlKGMpOyJmdW5jdGlvbiI9PT1kP2EudW5pcXVlJiZrLmhhcyhjKXx8aC5wdXNoKGMpOmMmJmMubGVuZ3RoJiYic3RyaW5nIiE9PWQmJmcoYyl9KX0oYXJndW1lbnRzKSxkP2Y9aC5sZW5ndGg6YiYmKGU9YyxqKGIpKX1yZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGgmJm4uZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oYSxiKXt2YXIgYzt3aGlsZSgoYz1uLmluQXJyYXkoYixoLGMpKT4tMSloLnNwbGljZShjLDEpLGQmJihmPj1jJiZmLS0sZz49YyYmZy0tKX0pLHRoaXN9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4gYT9uLmluQXJyYXkoYSxoKT4tMTohKCFofHwhaC5sZW5ndGgpfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBoPVtdLGY9MCx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGg9aT1iPXZvaWQgMCx0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFofSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGk9dm9pZCAwLGJ8fGsuZGlzYWJsZSgpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiFpfSxmaXJlV2l0aDpmdW5jdGlvbihhLGIpe3JldHVybiFofHxjJiYhaXx8KGI9Ynx8W10sYj1bYSxiLnNsaWNlP2Iuc2xpY2UoKTpiXSxkP2kucHVzaChiKTpqKGIpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGsuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFjfX07cmV0dXJuIGt9LG4uZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihhKXt2YXIgYj1bWyJyZXNvbHZlIiwiZG9uZSIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVqZWN0ZWQiXSxbIm5vdGlmeSIsInByb2dyZXNzIixuLkNhbGxiYWNrcygibWVtb3J5IildXSxjPSJwZW5kaW5nIixkPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBjfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gZS5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLHRoaXN9LHRoZW46ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHM7cmV0dXJuIG4uRGVmZXJyZWQoZnVuY3Rpb24oYyl7bi5lYWNoKGIsZnVuY3Rpb24oYixmKXt2YXIgZz1uLmlzRnVuY3Rpb24oYVtiXSkmJmFbYl07ZVtmWzFdXShmdW5jdGlvbigpe3ZhciBhPWcmJmcuYXBwbHkodGhpcyxhcmd1bWVudHMpO2EmJm4uaXNGdW5jdGlvbihhLnByb21pc2UpP2EucHJvbWlzZSgpLmRvbmUoYy5yZXNvbHZlKS5mYWlsKGMucmVqZWN0KS5wcm9ncmVzcyhjLm5vdGlmeSk6Y1tmWzBdKyJXaXRoIl0odGhpcz09PWQ/Yy5wcm9taXNlKCk6dGhpcyxnP1thXTphcmd1bWVudHMpfSl9KSxhPW51bGx9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/bi5leHRlbmQoYSxkKTpkfX0sZT17fTtyZXR1cm4gZC5waXBlPWQudGhlbixuLmVhY2goYixmdW5jdGlvbihhLGYpe3ZhciBnPWZbMl0saD1mWzNdO2RbZlsxXV09Zy5hZGQsaCYmZy5hZGQoZnVuY3Rpb24oKXtjPWh9LGJbMV5hXVsyXS5kaXNhYmxlLGJbMl1bMl0ubG9jayksZVtmWzBdXT1mdW5jdGlvbigpe3JldHVybiBlW2ZbMF0rIldpdGgiXSh0aGlzPT09ZT9kOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxlW2ZbMF0rIldpdGgiXT1nLmZpcmVXaXRofSksZC5wcm9taXNlKGUpLGEmJmEuY2FsbChlLGUpLGV9LHdoZW46ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPWQuY2FsbChhcmd1bWVudHMpLGU9Yy5sZW5ndGgsZj0xIT09ZXx8YSYmbi5pc0Z1bmN0aW9uKGEucHJvbWlzZSk/ZTowLGc9MT09PWY/YTpuLkRlZmVycmVkKCksaD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGUpe2JbYV09dGhpcyxjW2FdPWFyZ3VtZW50cy5sZW5ndGg+MT9kLmNhbGwoYXJndW1lbnRzKTplLGM9PT1pP2cubm90aWZ5V2l0aChiLGMpOi0tZnx8Zy5yZXNvbHZlV2l0aChiLGMpfX0saSxqLGs7aWYoZT4xKWZvcihpPW5ldyBBcnJheShlKSxqPW5ldyBBcnJheShlKSxrPW5ldyBBcnJheShlKTtlPmI7YisrKWNbYl0mJm4uaXNGdW5jdGlvbihjW2JdLnByb21pc2UpP2NbYl0ucHJvbWlzZSgpLmRvbmUoaChiLGssYykpLmZhaWwoZy5yZWplY3QpLnByb2dyZXNzKGgoYixqLGkpKTotLWY7cmV0dXJuIGZ8fGcucmVzb2x2ZVdpdGgoayxjKSxnLnByb21pc2UoKX19KTt2YXIgSDtuLmZuLnJlYWR5PWZ1bmN0aW9uKGEpe3JldHVybiBuLnJlYWR5LnByb21pc2UoKS5kb25lKGEpLHRoaXN9LG4uZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLGhvbGRSZWFkeTpmdW5jdGlvbihhKXthP24ucmVhZHlXYWl0Kys6bi5yZWFkeSghMCl9LHJlYWR5OmZ1bmN0aW9uKGEpeyhhPT09ITA/LS1uLnJlYWR5V2FpdDpuLmlzUmVhZHkpfHwobi5pc1JlYWR5PSEwLGEhPT0hMCYmLS1uLnJlYWR5V2FpdD4wfHwoSC5yZXNvbHZlV2l0aChsLFtuXSksbi5mbi50cmlnZ2VySGFuZGxlciYmKG4obCkudHJpZ2dlckhhbmRsZXIoInJlYWR5IiksbihsKS5vZmYoInJlYWR5IikpKSl9fSk7ZnVuY3Rpb24gSSgpe2wucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSSwhMSksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixJLCExKSxuLnJlYWR5KCl9bi5yZWFkeS5wcm9taXNlPWZ1bmN0aW9uKGIpe3JldHVybiBIfHwoSD1uLkRlZmVycmVkKCksImNvbXBsZXRlIj09PWwucmVhZHlTdGF0ZT9zZXRUaW1lb3V0KG4ucmVhZHkpOihsLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEksITEpLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsSSwhMSkpKSxILnByb21pc2UoYil9LG4ucmVhZHkucHJvbWlzZSgpO3ZhciBKPW4uYWNjZXNzPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1uLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYyluLmFjY2VzcyhhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxuLmlzRnVuY3Rpb24oZCl8fChnPSEwKSxqJiYoZz8oYi5jYWxsKGEsZCksYj1udWxsKTooaj1iLGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwobihhKSxjKX0pKSxiKSlmb3IoO2k+aDtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hdLGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfTtuLmFjY2VwdERhdGE9ZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfHw5PT09YS5ub2RlVHlwZXx8ISthLm5vZGVUeXBlfTtmdW5jdGlvbiBLKCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuY2FjaGU9e30sMCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJue319fSksdGhpcy5leHBhbmRvPW4uZXhwYW5kbytLLnVpZCsrfUsudWlkPTEsSy5hY2NlcHRzPW4uYWNjZXB0RGF0YSxLLnByb3RvdHlwZT17a2V5OmZ1bmN0aW9uKGEpe2lmKCFLLmFjY2VwdHMoYSkpcmV0dXJuIDA7dmFyIGI9e30sYz1hW3RoaXMuZXhwYW5kb107aWYoIWMpe2M9Sy51aWQrKzt0cnl7Ylt0aGlzLmV4cGFuZG9dPXt2YWx1ZTpjfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhhLGIpfWNhdGNoKGQpe2JbdGhpcy5leHBhbmRvXT1jLG4uZXh0ZW5kKGEsYil9fXJldHVybiB0aGlzLmNhY2hlW2NdfHwodGhpcy5jYWNoZVtjXT17fSksY30sc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPXRoaXMua2V5KGEpLGY9dGhpcy5jYWNoZVtlXTtpZigic3RyaW5nIj09dHlwZW9mIGIpZltiXT1jO2Vsc2UgaWYobi5pc0VtcHR5T2JqZWN0KGYpKW4uZXh0ZW5kKHRoaXMuY2FjaGVbZV0sYik7ZWxzZSBmb3IoZCBpbiBiKWZbZF09YltkXTtyZXR1cm4gZn0sZ2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jYWNoZVt0aGlzLmtleShhKV07cmV0dXJuIHZvaWQgMD09PWI/YzpjW2JdfSxhY2Nlc3M6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiB2b2lkIDA9PT1ifHxiJiYic3RyaW5nIj09dHlwZW9mIGImJnZvaWQgMD09PWM/KGQ9dGhpcy5nZXQoYSxiKSx2b2lkIDAhPT1kP2Q6dGhpcy5nZXQoYSxuLmNhbWVsQ2FzZShiKSkpOih0aGlzLnNldChhLGIsYyksdm9pZCAwIT09Yz9jOmIpfSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj10aGlzLmtleShhKSxnPXRoaXMuY2FjaGVbZl07aWYodm9pZCAwPT09Yil0aGlzLmNhY2hlW2ZdPXt9O2Vsc2V7bi5pc0FycmF5KGIpP2Q9Yi5jb25jYXQoYi5tYXAobi5jYW1lbENhc2UpKTooZT1uLmNhbWVsQ2FzZShiKSxiIGluIGc/ZD1bYixlXTooZD1lLGQ9ZCBpbiBnP1tkXTpkLm1hdGNoKEUpfHxbXSkpLGM9ZC5sZW5ndGg7d2hpbGUoYy0tKWRlbGV0ZSBnW2RbY11dfX0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4hbi5pc0VtcHR5T2JqZWN0KHRoaXMuY2FjaGVbYVt0aGlzLmV4cGFuZG9dXXx8e30pfSxkaXNjYXJkOmZ1bmN0aW9uKGEpe2FbdGhpcy5leHBhbmRvXSYmZGVsZXRlIHRoaXMuY2FjaGVbYVt0aGlzLmV4cGFuZG9dXX19O3ZhciBMPW5ldyBLLE09bmV3IEssTj0vXig/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLE89LyhbQS1aXSkvZztmdW5jdGlvbiBQKGEsYixjKXt2YXIgZDtpZih2b2lkIDA9PT1jJiYxPT09YS5ub2RlVHlwZSlpZihkPSJkYXRhLSIrYi5yZXBsYWNlKE8sIi0kMSIpLnRvTG93ZXJDYXNlKCksYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpOLnRlc3QoYyk/bi5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9TS5zZXQoYSxiLGMpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9bi5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIE0uaGFzRGF0YShhKXx8TC5oYXNEYXRhKGEpfSxkYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTS5hY2Nlc3MoYSxiLGMpDQp9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtNLnJlbW92ZShhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEwuYWNjZXNzKGEsYixjKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtMLnJlbW92ZShhLGIpfX0pLG4uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9TS5nZXQoZiksMT09PWYubm9kZVR5cGUmJiFMLmdldChmLCJoYXNEYXRhQXR0cnMiKSkpe2M9Zy5sZW5ndGg7d2hpbGUoYy0tKWdbY10mJihkPWdbY10ubmFtZSwwPT09ZC5pbmRleE9mKCJkYXRhLSIpJiYoZD1uLmNhbWVsQ2FzZShkLnNsaWNlKDUpKSxQKGYsZCxlW2RdKSkpO0wuc2V0KGYsImhhc0RhdGFBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXtNLnNldCh0aGlzLGEpfSk6Sih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjLGQ9bi5jYW1lbENhc2UoYSk7aWYoZiYmdm9pZCAwPT09Yil7aWYoYz1NLmdldChmLGEpLHZvaWQgMCE9PWMpcmV0dXJuIGM7aWYoYz1NLmdldChmLGQpLHZvaWQgMCE9PWMpcmV0dXJuIGM7aWYoYz1QKGYsZCx2b2lkIDApLHZvaWQgMCE9PWMpcmV0dXJuIGN9ZWxzZSB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1NLmdldCh0aGlzLGQpO00uc2V0KHRoaXMsZCxiKSwtMSE9PWEuaW5kZXhPZigiLSIpJiZ2b2lkIDAhPT1jJiZNLnNldCh0aGlzLGEsYil9KX0sbnVsbCxiLGFyZ3VtZW50cy5sZW5ndGg+MSxudWxsLCEwKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7TS5yZW1vdmUodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1MLmdldChhLGIpLGMmJighZHx8bi5pc0FycmF5KGMpP2Q9TC5hY2Nlc3MoYSxiLG4ubWFrZUFycmF5KGMpKTpkLnB1c2goYykpLGR8fFtdKTp2b2lkIDB9LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9bi5xdWV1ZShhLGIpLGQ9Yy5sZW5ndGgsZT1jLnNoaWZ0KCksZj1uLl9xdWV1ZUhvb2tzKGEsYiksZz1mdW5jdGlvbigpe24uZGVxdWV1ZShhLGIpfTsiaW5wcm9ncmVzcyI9PT1lJiYoZT1jLnNoaWZ0KCksZC0tKSxlJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBmLnN0b3AsZS5jYWxsKGEsZyxmKSksIWQmJmYmJmYuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVlSG9va3MiO3JldHVybiBMLmdldChhLGMpfHxMLmFjY2VzcyhhLGMse2VtcHR5Om4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe0wucmVtb3ZlKGEsW2IrInF1ZXVlIixjXSl9KX0pfX0pLG4uZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9ImZ4IixjLS0pLGFyZ3VtZW50cy5sZW5ndGg8Yz9uLnF1ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPW4ucXVldWUodGhpcyxhLGIpO24uX3F1ZXVlSG9va3ModGhpcyxhKSwiZngiPT09YSYmImlucHJvZ3Jlc3MiIT09Y1swXSYmbi5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5kZXF1ZXVlKHRoaXMsYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShhfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9MSxlPW4uRGVmZXJyZWQoKSxmPXRoaXMsZz10aGlzLmxlbmd0aCxoPWZ1bmN0aW9uKCl7LS1kfHxlLnJlc29sdmVXaXRoKGYsW2ZdKX07InN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxhPWF8fCJmeCI7d2hpbGUoZy0tKWM9TC5nZXQoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFyIFE9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsUj1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW4uY3NzKGEsImRpc3BsYXkiKXx8IW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxUPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pOyFmdW5jdGlvbigpe3ZhciBhPWwuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGI9YS5hcHBlbmRDaGlsZChsLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxjPWwuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtjLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksYy5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksYy5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksYi5hcHBlbmRDaGlsZChjKSxrLmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsYi5pbm5lckhUTUw9Ijx0ZXh0YXJlYT54PC90ZXh0YXJlYT4iLGsubm9DbG9uZUNoZWNrZWQ9ISFiLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZX0oKTt2YXIgVT0idW5kZWZpbmVkIjtrLmZvY3VzaW5CdWJibGVzPSJvbmZvY3VzaW4iaW4gYTt2YXIgVj0vXmtleS8sVz0vXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLyxYPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxZPS9eKFteLl0qKSg/OlwuKC4rKXwpJC87ZnVuY3Rpb24gWigpe3JldHVybiEwfWZ1bmN0aW9uICQoKXtyZXR1cm4hMX1mdW5jdGlvbiBfKCl7dHJ5e3JldHVybiBsLmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1uLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxvLHAscSxyPUwuZ2V0KGEpO2lmKHIpe2MuaGFuZGxlciYmKGY9YyxjPWYuaGFuZGxlcixlPWYuc2VsZWN0b3IpLGMuZ3VpZHx8KGMuZ3VpZD1uLmd1aWQrKyksKGk9ci5ldmVudHMpfHwoaT1yLmV2ZW50cz17fSksKGc9ci5oYW5kbGUpfHwoZz1yLmhhbmRsZT1mdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIG4hPT1VJiZuLmV2ZW50LnRyaWdnZXJlZCE9PWIudHlwZT9uLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9KSxiPShifHwiIikubWF0Y2goRSl8fFsiIl0saj1iLmxlbmd0aDt3aGlsZShqLS0paD1ZLmV4ZWMoYltqXSl8fFtdLG89cT1oWzFdLHA9KGhbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxvJiYobD1uLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGU/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbD1uLmV2ZW50LnNwZWNpYWxbb118fHt9LGs9bi5leHRlbmQoe3R5cGU6byxvcmlnVHlwZTpxLGRhdGE6ZCxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZSxuZWVkc0NvbnRleHQ6ZSYmbi5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGUpLG5hbWVzcGFjZTpwLmpvaW4oIi4iKX0sZiksKG09aVtvXSl8fChtPWlbb109W10sbS5kZWxlZ2F0ZUNvdW50PTAsbC5zZXR1cCYmbC5zZXR1cC5jYWxsKGEsZCxwLGcpIT09ITF8fGEuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKG8sZywhMSkpLGwuYWRkJiYobC5hZGQuY2FsbChhLGspLGsuaGFuZGxlci5ndWlkfHwoay5oYW5kbGVyLmd1aWQ9Yy5ndWlkKSksZT9tLnNwbGljZShtLmRlbGVnYXRlQ291bnQrKywwLGspOm0ucHVzaChrKSxuLmV2ZW50Lmdsb2JhbFtvXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG8scCxxLHI9TC5oYXNEYXRhKGEpJiZMLmdldChhKTtpZihyJiYoaT1yLmV2ZW50cykpe2I9KGJ8fCIiKS5tYXRjaChFKXx8WyIiXSxqPWIubGVuZ3RoO3doaWxlKGotLSlpZihoPVkuZXhlYyhiW2pdKXx8W10sbz1xPWhbMV0scD0oaFsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLG8pe2w9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShkP2wuZGVsZWdhdGVUeXBlOmwuYmluZFR5cGUpfHxvLG09aVtvXXx8W10saD1oWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitwLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLGc9Zj1tLmxlbmd0aDt3aGlsZShmLS0paz1tW2ZdLCFlJiZxIT09ay5vcmlnVHlwZXx8YyYmYy5ndWlkIT09ay5ndWlkfHxoJiYhaC50ZXN0KGsubmFtZXNwYWNlKXx8ZCYmZCE9PWsuc2VsZWN0b3ImJigiKioiIT09ZHx8IWsuc2VsZWN0b3IpfHwobS5zcGxpY2UoZiwxKSxrLnNlbGVjdG9yJiZtLmRlbGVnYXRlQ291bnQtLSxsLnJlbW92ZSYmbC5yZW1vdmUuY2FsbChhLGspKTtnJiYhbS5sZW5ndGgmJihsLnRlYXJkb3duJiZsLnRlYXJkb3duLmNhbGwoYSxwLHIuaGFuZGxlKSE9PSExfHxuLnJlbW92ZUV2ZW50KGEsbyxyLmhhbmRsZSksZGVsZXRlIGlbb10pfWVsc2UgZm9yKG8gaW4gaSluLmV2ZW50LnJlbW92ZShhLG8rYltqXSxjLGQsITApO24uaXNFbXB0eU9iamVjdChpKSYmKGRlbGV0ZSByLmhhbmRsZSxMLnJlbW92ZShhLCJldmVudHMiKSl9fSx0cmlnZ2VyOmZ1bmN0aW9uKGIsYyxkLGUpe3ZhciBmLGcsaCxpLGssbSxvLHA9W2R8fGxdLHE9ai5jYWxsKGIsInR5cGUiKT9iLnR5cGU6YixyPWouY2FsbChiLCJuYW1lc3BhY2UiKT9iLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGc9aD1kPWR8fGwsMyE9PWQubm9kZVR5cGUmJjghPT1kLm5vZGVUeXBlJiYhWC50ZXN0KHErbi5ldmVudC50cmlnZ2VyZWQpJiYocS5pbmRleE9mKCIuIik+PTAmJihyPXEuc3BsaXQoIi4iKSxxPXIuc2hpZnQoKSxyLnNvcnQoKSksaz1xLmluZGV4T2YoIjoiKTwwJiYib24iK3EsYj1iW24uZXhwYW5kb10/YjpuZXcgbi5FdmVudChxLCJvYmplY3QiPT10eXBlb2YgYiYmYiksYi5pc1RyaWdnZXI9ZT8yOjMsYi5uYW1lc3BhY2U9ci5qb2luKCIuIiksYi5uYW1lc3BhY2VfcmU9Yi5uYW1lc3BhY2U/bmV3IFJlZ0V4cCgiKF58XFwuKSIrci5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGIucmVzdWx0PXZvaWQgMCxiLnRhcmdldHx8KGIudGFyZ2V0PWQpLGM9bnVsbD09Yz9bYl06bi5tYWtlQXJyYXkoYyxbYl0pLG89bi5ldmVudC5zcGVjaWFsW3FdfHx7fSxlfHwhby50cmlnZ2VyfHxvLnRyaWdnZXIuYXBwbHkoZCxjKSE9PSExKSl7aWYoIWUmJiFvLm5vQnViYmxlJiYhbi5pc1dpbmRvdyhkKSl7Zm9yKGk9by5kZWxlZ2F0ZVR5cGV8fHEsWC50ZXN0KGkrcSl8fChnPWcucGFyZW50Tm9kZSk7ZztnPWcucGFyZW50Tm9kZSlwLnB1c2goZyksaD1nO2g9PT0oZC5vd25lckRvY3VtZW50fHxsKSYmcC5wdXNoKGguZGVmYXVsdFZpZXd8fGgucGFyZW50V2luZG93fHxhKX1mPTA7d2hpbGUoKGc9cFtmKytdKSYmIWIuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSliLnR5cGU9Zj4xP2k6by5iaW5kVHlwZXx8cSxtPShMLmdldChnLCJldmVudHMiKXx8e30pW2IudHlwZV0mJkwuZ2V0KGcsImhhbmRsZSIpLG0mJm0uYXBwbHkoZyxjKSxtPWsmJmdba10sbSYmbS5hcHBseSYmbi5hY2NlcHREYXRhKGcpJiYoYi5yZXN1bHQ9bS5hcHBseShnLGMpLGIucmVzdWx0PT09ITEmJmIucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGIudHlwZT1xLGV8fGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fG8uX2RlZmF1bHQmJm8uX2RlZmF1bHQuYXBwbHkocC5wb3AoKSxjKSE9PSExfHwhbi5hY2NlcHREYXRhKGQpfHxrJiZuLmlzRnVuY3Rpb24oZFtxXSkmJiFuLmlzV2luZG93KGQpJiYoaD1kW2tdLGgmJihkW2tdPW51bGwpLG4uZXZlbnQudHJpZ2dlcmVkPXEsZFtxXSgpLG4uZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxoJiYoZFtrXT1oKSksYi5yZXN1bHR9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXthPW4uZXZlbnQuZml4KGEpO3ZhciBiLGMsZSxmLGcsaD1bXSxpPWQuY2FsbChhcmd1bWVudHMpLGo9KEwuZ2V0KHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1uLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1uLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGM9MDt3aGlsZSgoZz1mLmhhbmRsZXJzW2MrK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKSghYS5uYW1lc3BhY2VfcmV8fGEubmFtZXNwYWNlX3JlLnRlc3QoZy5uYW1lc3BhY2UpKSYmKGEuaGFuZGxlT2JqPWcsYS5kYXRhPWcuZGF0YSxlPSgobi5ldmVudC5zcGVjaWFsW2cub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxnLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1lJiYoYS5yZXN1bHQ9ZSk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoIWEuYnV0dG9ufHwiY2xpY2siIT09YS50eXBlKSlmb3IoO2khPT10aGlzO2k9aS5wYXJlbnROb2RlfHx0aGlzKWlmKGkuZGlzYWJsZWQhPT0hMHx8ImNsaWNrIiE9PWEudHlwZSl7Zm9yKGQ9W10sYz0wO2g+YztjKyspZj1iW2NdLGU9Zi5zZWxlY3RvcisiICIsdm9pZCAwPT09ZFtlXSYmKGRbZV09Zi5uZWVkc0NvbnRleHQ/bihlLHRoaXMpLmluZGV4KGkpPj0wOm4uZmluZChlLHRoaXMsbnVsbCxbaV0pLmxlbmd0aCksZFtlXSYmZC5wdXNoKGYpO2QubGVuZ3RoJiZnLnB1c2goe2VsZW06aSxoYW5kbGVyczpkfSl9cmV0dXJuIGg8Yi5sZW5ndGgmJmcucHVzaCh7ZWxlbTp0aGlzLGhhbmRsZXJzOmIuc2xpY2UoaCl9KSxnfSxwcm9wczoiYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9Yi5idXR0b247cmV0dXJuIG51bGw9PWEucGFnZVgmJm51bGwhPWIuY2xpZW50WCYmKGM9YS50YXJnZXQub3duZXJEb2N1bWVudHx8bCxkPWMuZG9jdW1lbnRFbGVtZW50LGU9Yy5ib2R5LGEucGFnZVg9Yi5jbGllbnRYKyhkJiZkLnNjcm9sbExlZnR8fGUmJmUuc2Nyb2xsTGVmdHx8MCktKGQmJmQuY2xpZW50TGVmdHx8ZSYmZS5jbGllbnRMZWZ0fHwwKSxhLnBhZ2VZPWIuY2xpZW50WSsoZCYmZC5zY3JvbGxUb3B8fGUmJmUuc2Nyb2xsVG9wfHwwKS0oZCYmZC5jbGllbnRUb3B8fGUmJmUuY2xpZW50VG9wfHwwKSksYS53aGljaHx8dm9pZCAwPT09Znx8KGEud2hpY2g9MSZmPzE6MiZmPzM6NCZmPzI6MCksYX19LGZpeDpmdW5jdGlvbihhKXtpZihhW24uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxkLGU9YS50eXBlLGY9YSxnPXRoaXMuZml4SG9va3NbZV07Z3x8KHRoaXMuZml4SG9va3NbZV09Zz1XLnRlc3QoZSk/dGhpcy5tb3VzZUhvb2tzOlYudGVzdChlKT90aGlzLmtleUhvb2tzOnt9KSxkPWcucHJvcHM/dGhpcy5wcm9wcy5jb25jYXQoZy5wcm9wcyk6dGhpcy5wcm9wcyxhPW5ldyBuLkV2ZW50KGYpLGI9ZC5sZW5ndGg7d2hpbGUoYi0tKWM9ZFtiXSxhW2NdPWZbY107cmV0dXJuIGEudGFyZ2V0fHwoYS50YXJnZXQ9bCksMz09PWEudGFyZ2V0Lm5vZGVUeXBlJiYoYS50YXJnZXQ9YS50YXJnZXQucGFyZW50Tm9kZSksZy5maWx0ZXI/Zy5maWx0ZXIoYSxmKTphfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyE9PV8oKSYmdGhpcy5mb2N1cz8odGhpcy5mb2N1cygpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNpbiJ9LGJsdXI6e3RyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcz09PV8oKSYmdGhpcy5ibHVyPyh0aGlzLmJsdXIoKSwhMSk6dm9pZCAwfSxkZWxlZ2F0ZVR5cGU6ImZvY3Vzb3V0In0sY2xpY2s6e3RyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4iY2hlY2tib3giPT09dGhpcy50eXBlJiZ0aGlzLmNsaWNrJiZuLm5vZGVOYW1lKHRoaXMsImlucHV0Iik/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbi5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bi5leHRlbmQobmV3IG4uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwLG9yaWdpbmFsRXZlbnQ6e319KTtkP24uZXZlbnQudHJpZ2dlcihlLG51bGwsYik6bi5ldmVudC5kaXNwYXRjaC5jYWxsKGIsZSksZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbi5yZW1vdmVFdmVudD1mdW5jdGlvbihhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX0sbi5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygbi5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/WjokKTp0aGlzLnR5cGU9YSxiJiZuLmV4dGVuZCh0aGlzLGIpLHRoaXMudGltZVN0YW1wPWEmJmEudGltZVN0YW1wfHxuLm5vdygpLHZvaWQodGhpc1tuLmV4cGFuZG9dPSEwKSk6bmV3IG4uRXZlbnQoYSxiKX0sbi5FdmVudC5wcm90b3R5cGU9e2lzRGVmYXVsdFByZXZlbnRlZDokLGlzUHJvcGFnYXRpb25TdG9wcGVkOiQsaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6JCxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1aLGEmJmEucHJldmVudERlZmF1bHQmJmEucHJldmVudERlZmF1bHQoKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9WixhJiZhLnN0b3BQcm9wYWdhdGlvbiYmYS5zdG9wUHJvcGFnYXRpb24oKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9WixhJiZhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sbi5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihhLGIpe24uZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVUeXBlOmIsYmluZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGMsZD10aGlzLGU9YS5yZWxhdGVkVGFyZ2V0LGY9YS5oYW5kbGVPYmo7cmV0dXJuKCFlfHxlIT09ZCYmIW4uY29udGFpbnMoZCxlKSkmJihhLnR5cGU9Zi5vcmlnVHlwZSxjPWYuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWIpLGN9fX0pLGsuZm9jdXNpbkJ1YmJsZXN8fG4uZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihhKXtuLmV2ZW50LnNpbXVsYXRlKGIsYS50YXJnZXQsbi5ldmVudC5maXgoYSksITApfTtuLmV2ZW50LnNwZWNpYWxbYl09e3NldHVwOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGU9TC5hY2Nlc3MoZCxiKTtlfHxkLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSxMLmFjY2VzcyhkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPUwuYWNjZXNzKGQsYiktMTtlP0wuYWNjZXNzKGQsYixlKTooZC5yZW1vdmVFdmVudExpc3RlbmVyKGEsYywhMCksTC5yZW1vdmUoZCxiKSl9fX0pLG4uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGc7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWN8fGIsYj12b2lkIDApO2ZvcihnIGluIGEpdGhpcy5vbihnLGIsYyxhW2ddLGUpO3JldHVybiB0aGlzfWlmKG51bGw9PWMmJm51bGw9PWQ/KGQ9YixjPWI9dm9pZCAwKTpudWxsPT1kJiYoInN0cmluZyI9PXR5cGVvZiBiPyhkPWMsYz12b2lkIDApOihkPWMsYz1iLGI9dm9pZCAwKSksZD09PSExKWQ9JDtlbHNlIGlmKCFkKXJldHVybiB0aGlzO3JldHVybiAxPT09ZSYmKGY9ZCxkPWZ1bmN0aW9uKGEpe3JldHVybiBuKCkub2ZmKGEpLGYuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxkLmd1aWQ9Zi5ndWlkfHwoZi5ndWlkPW4uZ3VpZCsrKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC5hZGQodGhpcyxhLGQsYyxiKX0pfSxvbmU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMub24oYSxiLGMsZCwxKX0sb2ZmOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO2lmKGEmJmEucHJldmVudERlZmF1bHQmJmEuaGFuZGxlT2JqKXJldHVybiBkPWEuaGFuZGxlT2JqLG4oYS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGQubmFtZXNwYWNlP2Qub3JpZ1R5cGUrIi4iK2QubmFtZXNwYWNlOmQub3JpZ1R5cGUsZC5zZWxlY3RvcixkLmhhbmRsZXIpLHRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXtmb3IoZSBpbiBhKXRoaXMub2ZmKGUsYixhW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4oYj09PSExfHwiZnVuY3Rpb24iPT10eXBlb2YgYikmJihjPWIsYj12b2lkIDApLGM9PT0hMSYmKGM9JCksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC5yZW1vdmUodGhpcyxhLGMsYil9KX0sdHJpZ2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpc1swXTtyZXR1cm4gYz9uLmV2ZW50LnRyaWdnZXIoYSxiLGMsITApOnZvaWQgMH19KTt2YXIgYWI9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Ol0rKVtePl0qKVwvPi9naSxiYj0vPChbXHc6XSspLyxjYj0vPHwmIz9cdys7LyxkYj0vPCg/OnNjcmlwdHxzdHlsZXxsaW5rKS9pLGViPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLGZiPS9eJHxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaSxnYj0vXnRydWVcLyguKikvLGhiPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZyxpYj17b3B0aW9uOlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O2liLm9wdGdyb3VwPWliLm9wdGlvbixpYi50Ym9keT1pYi50Zm9vdD1pYi5jb2xncm91cD1pYi5jYXB0aW9uPWliLnRoZWFkLGliLnRoPWliLnRkO2Z1bmN0aW9uIGpiKGEsYil7cmV0dXJuIG4ubm9kZU5hbWUoYSwidGFibGUiKSYmbi5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiBrYihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09YS5nZXRBdHRyaWJ1dGUoInR5cGUiKSkrIi8iK2EudHlwZSxhfWZ1bmN0aW9uIGxiKGEpe3ZhciBiPWdiLmV4ZWMoYS50eXBlKTtyZXR1cm4gYj9hLnR5cGU9YlsxXTphLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLGF9ZnVuY3Rpb24gbWIoYSxiKXtmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2Q+YztjKyspTC5zZXQoYVtjXSwiZ2xvYmFsRXZhbCIsIWJ8fEwuZ2V0KGJbY10sImdsb2JhbEV2YWwiKSl9ZnVuY3Rpb24gbmIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihMLmhhc0RhdGEoYSkmJihmPUwuYWNjZXNzKGEpLGc9TC5zZXQoYixmKSxqPWYuZXZlbnRzKSl7ZGVsZXRlIGcuaGFuZGxlLGcuZXZlbnRzPXt9O2ZvcihlIGluIGopZm9yKGM9MCxkPWpbZV0ubGVuZ3RoO2Q+YztjKyspbi5ldmVudC5hZGQoYixlLGpbZV1bY10pfU0uaGFzRGF0YShhKSYmKGg9TS5hY2Nlc3MoYSksaT1uLmV4dGVuZCh7fSxoKSxNLnNldChiLGkpKX19ZnVuY3Rpb24gb2IoYSxiKXt2YXIgYz1hLmdldEVsZW1lbnRzQnlUYWdOYW1lP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYnx8IioiKTphLnF1ZXJ5U2VsZWN0b3JBbGw/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6W107cmV0dXJuIHZvaWQgMD09PWJ8fGImJm4ubm9kZU5hbWUoYSxiKT9uLm1lcmdlKFthXSxjKTpjfWZ1bmN0aW9uIHBiKGEsYil7dmFyIGM9Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOyJpbnB1dCI9PT1jJiZULnRlc3QoYS50eXBlKT9iLmNoZWNrZWQ9YS5jaGVja2VkOigiaW5wdXQiPT09Y3x8InRleHRhcmVhIj09PWMpJiYoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfW4uZXh0ZW5kKHtjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLmNsb25lTm9kZSghMCksaT1uLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZighKGsubm9DbG9uZUNoZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fG4uaXNYTUxEb2MoYSkpKWZvcihnPW9iKGgpLGY9b2IoYSksZD0wLGU9Zi5sZW5ndGg7ZT5kO2QrKylwYihmW2RdLGdbZF0pO2lmKGIpaWYoYylmb3IoZj1mfHxvYihhKSxnPWd8fG9iKGgpLGQ9MCxlPWYubGVuZ3RoO2U+ZDtkKyspbmIoZltkXSxnW2RdKTtlbHNlIG5iKGEsaCk7cmV0dXJuIGc9b2IoaCwic2NyaXB0IiksZy5sZW5ndGg+MCYmbWIoZywhaSYmb2IoYSwic2NyaXB0IikpLGh9LGJ1aWxkRnJhZ21lbnQ6ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlLGYsZyxoLGksaixrPWIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGw9W10sbT0wLG89YS5sZW5ndGg7bz5tO20rKylpZihlPWFbbV0sZXx8MD09PWUpaWYoIm9iamVjdCI9PT1uLnR5cGUoZSkpbi5tZXJnZShsLGUubm9kZVR5cGU/W2VdOmUpO2Vsc2UgaWYoY2IudGVzdChlKSl7Zj1mfHxrLmFwcGVuZENoaWxkKGIuY3JlYXRlRWxlbWVudCgiZGl2IikpLGc9KGJiLmV4ZWMoZSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksaD1pYltnXXx8aWIuX2RlZmF1bHQsZi5pbm5lckhUTUw9aFsxXStlLnJlcGxhY2UoYWIsIjwkMT48LyQyPiIpK2hbMl0saj1oWzBdO3doaWxlKGotLSlmPWYubGFzdENoaWxkO24ubWVyZ2UobCxmLmNoaWxkTm9kZXMpLGY9ay5maXJzdENoaWxkLGYudGV4dENvbnRlbnQ9IiJ9ZWxzZSBsLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShlKSk7ay50ZXh0Q29udGVudD0iIixtPTA7d2hpbGUoZT1sW20rK10paWYoKCFkfHwtMT09PW4uaW5BcnJheShlLGQpKSYmKGk9bi5jb250YWlucyhlLm93bmVyRG9jdW1lbnQsZSksZj1vYihrLmFwcGVuZENoaWxkKGUpLCJzY3JpcHQiKSxpJiZtYihmKSxjKSl7aj0wO3doaWxlKGU9ZltqKytdKWZiLnRlc3QoZS50eXBlfHwiIikmJmMucHVzaChlKX1yZXR1cm4ga30sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGQsZSxmPW4uZXZlbnQuc3BlY2lhbCxnPTA7dm9pZCAwIT09KGM9YVtnXSk7ZysrKXtpZihuLmFjY2VwdERhdGEoYykmJihlPWNbTC5leHBhbmRvXSxlJiYoYj1MLmNhY2hlW2VdKSkpe2lmKGIuZXZlbnRzKWZvcihkIGluIGIuZXZlbnRzKWZbZF0/bi5ldmVudC5yZW1vdmUoYyxkKTpuLnJlbW92ZUV2ZW50KGMsZCxiLmhhbmRsZSk7TC5jYWNoZVtlXSYmZGVsZXRlIEwuY2FjaGVbZV19ZGVsZXRlIE0uY2FjaGVbY1tNLmV4cGFuZG9dXX19fSksbi5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEoodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9uLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpJiYodGhpcy50ZXh0Q29udGVudD1hKX0pfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIGI9amIodGhpcyxhKTtiLmFwcGVuZENoaWxkKGEpfX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj1qYih0aGlzLGEpO2IuaW5zZXJ0QmVmb3JlKGEsYi5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMubmV4dFNpYmxpbmcpfSl9LHJlbW92ZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPWE/bi5maWx0ZXIoYSx0aGlzKTp0aGlzLGU9MDtudWxsIT0oYz1kW2VdKTtlKyspYnx8MSE9PWMubm9kZVR5cGV8fG4uY2xlYW5EYXRhKG9iKGMpKSxjLnBhcmVudE5vZGUmJihiJiZuLmNvbnRhaW5zKGMub3duZXJEb2N1bWVudCxjKSYmbWIob2IoYywic2NyaXB0IikpLGMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKSk7cmV0dXJuIHRoaXN9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MDtudWxsIT0oYT10aGlzW2JdKTtiKyspMT09PWEubm9kZVR5cGUmJihuLmNsZWFuRGF0YShvYihhLCExKSksYS50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbi5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gSih0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEmJjE9PT1iLm5vZGVUeXBlKXJldHVybiBiLmlubmVySFRNTDtpZigic3RyaW5nIj09dHlwZW9mIGEmJiFkYi50ZXN0KGEpJiYhaWJbKGJiLmV4ZWMoYSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXthPWEucmVwbGFjZShhYiwiPCQxPjwvJDI+Iik7dHJ5e2Zvcig7ZD5jO2MrKyliPXRoaXNbY118fHt9LDE9PT1iLm5vZGVUeXBlJiYobi5jbGVhbkRhdGEob2IoYiwhMSkpLGIuaW5uZXJIVE1MPWEpO2I9MH1jYXRjaChlKXt9fWImJnRoaXMuZW1wdHkoKS5hcHBlbmQoYSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGIpe2E9dGhpcy5wYXJlbnROb2RlLG4uY2xlYW5EYXRhKG9iKHRoaXMpKSxhJiZhLnJlcGxhY2VDaGlsZChiLHRoaXMpfSksYSYmKGEubGVuZ3RofHxhLm5vZGVUeXBlKT90aGlzOnRoaXMucmVtb3ZlKCl9LGRldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yZW1vdmUoYSwhMCl9LGRvbU1hbmlwOmZ1bmN0aW9uKGEsYil7YT1lLmFwcGx5KFtdLGEpO3ZhciBjLGQsZixnLGgsaSxqPTAsbD10aGlzLmxlbmd0aCxtPXRoaXMsbz1sLTEscD1hWzBdLHE9bi5pc0Z1bmN0aW9uKHApO2lmKHF8fGw+MSYmInN0cmluZyI9PXR5cGVvZiBwJiYhay5jaGVja0Nsb25lJiZlYi50ZXN0KHApKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7dmFyIGQ9bS5lcShjKTtxJiYoYVswXT1wLmNhbGwodGhpcyxjLGQuaHRtbCgpKSksZC5kb21NYW5pcChhLGIpfSk7aWYobCYmKGM9bi5idWlsZEZyYWdtZW50KGEsdGhpc1swXS5vd25lckRvY3VtZW50LCExLHRoaXMpLGQ9Yy5maXJzdENoaWxkLDE9PT1jLmNoaWxkTm9kZXMubGVuZ3RoJiYoYz1kKSxkKSl7Zm9yKGY9bi5tYXAob2IoYywic2NyaXB0Iiksa2IpLGc9Zi5sZW5ndGg7bD5qO2orKyloPWMsaiE9PW8mJihoPW4uY2xvbmUoaCwhMCwhMCksZyYmbi5tZXJnZShmLG9iKGgsInNjcmlwdCIpKSksYi5jYWxsKHRoaXNbal0saCxqKTtpZihnKWZvcihpPWZbZi5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxuLm1hcChmLGxiKSxqPTA7Zz5qO2orKyloPWZbal0sZmIudGVzdChoLnR5cGV8fCIiKSYmIUwuYWNjZXNzKGgsImdsb2JhbEV2YWwiKSYmbi5jb250YWlucyhpLGgpJiYoaC5zcmM/bi5fZXZhbFVybCYmbi5fZXZhbFVybChoLnNyYyk6bi5nbG9iYWxFdmFsKGgudGV4dENvbnRlbnQucmVwbGFjZShoYiwiIikpKX1yZXR1cm4gdGhpc319KSxuLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe24uZm5bYV09ZnVuY3Rpb24oYSl7Zm9yKHZhciBjLGQ9W10sZT1uKGEpLGc9ZS5sZW5ndGgtMSxoPTA7Zz49aDtoKyspYz1oPT09Zz90aGlzOnRoaXMuY2xvbmUoITApLG4oZVtoXSlbYl0oYyksZi5hcHBseShkLGMuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhkKX19KTt2YXIgcWIscmI9e307ZnVuY3Rpb24gc2IoYixjKXt2YXIgZCxlPW4oYy5jcmVhdGVFbGVtZW50KGIpKS5hcHBlbmRUbyhjLmJvZHkpLGY9YS5nZXREZWZhdWx0Q29tcHV0ZWRTdHlsZSYmKGQ9YS5nZXREZWZhdWx0Q29tcHV0ZWRTdHlsZShlWzBdKSk/ZC5kaXNwbGF5Om4uY3NzKGVbMF0sImRpc3BsYXkiKTtyZXR1cm4gZS5kZXRhY2goKSxmfWZ1bmN0aW9uIHRiKGEpe3ZhciBiPWwsYz1yYlthXTtyZXR1cm4gY3x8KGM9c2IoYSxiKSwibm9uZSIhPT1jJiZjfHwocWI9KHFifHxuKCI8aWZyYW1lIGZyYW1lYm9yZGVyPScwJyB3aWR0aD0nMCcgaGVpZ2h0PScwJy8+IikpLmFwcGVuZFRvKGIuZG9jdW1lbnRFbGVtZW50KSxiPXFiWzBdLmNvbnRlbnREb2N1bWVudCxiLndyaXRlKCksYi5jbG9zZSgpLGM9c2IoYSxiKSxxYi5kZXRhY2goKSkscmJbYV09YyksY312YXIgdWI9L15tYXJnaW4vLHZiPW5ldyBSZWdFeHAoIl4oIitRKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksd2I9ZnVuY3Rpb24oYil7cmV0dXJuIGIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5vcGVuZXI/Yi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYixudWxsKTphLmdldENvbXB1dGVkU3R5bGUoYixudWxsKX07ZnVuY3Rpb24geGIoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHx3YihhKSxjJiYoZz1jLmdldFByb3BlcnR5VmFsdWUoYil8fGNbYl0pLGMmJigiIiE9PWd8fG4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfHwoZz1uLnN0eWxlKGEsYikpLHZiLnRlc3QoZykmJnViLnRlc3QoYikmJihkPWgud2lkdGgsZT1oLm1pbldpZHRoLGY9aC5tYXhXaWR0aCxoLm1pbldpZHRoPWgubWF4V2lkdGg9aC53aWR0aD1nLGc9Yy53aWR0aCxoLndpZHRoPWQsaC5taW5XaWR0aD1lLGgubWF4V2lkdGg9ZikpLHZvaWQgMCE9PWc/ZysiIjpnfWZ1bmN0aW9uIHliKGEsYil7cmV0dXJue2dldDpmdW5jdGlvbigpe3JldHVybiBhKCk/dm9pZCBkZWxldGUgdGhpcy5nZXQ6KHRoaXMuZ2V0PWIpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fSFmdW5jdGlvbigpe3ZhciBiLGMsZD1sLmRvY3VtZW50RWxlbWVudCxlPWwuY3JlYXRlRWxlbWVudCgiZGl2IiksZj1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKGYuc3R5bGUpe2Yuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixmLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsay5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWYuc3R5bGUuYmFja2dyb3VuZENsaXAsZS5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweDttYXJnaW4tdG9wOjFweDtwb3NpdGlvbjphYnNvbHV0ZSIsZS5hcHBlbmRDaGlsZChmKTtmdW5jdGlvbiBnKCl7Zi5zdHlsZS5jc3NUZXh0PSItd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjElO3RvcDoxJTtib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjRweDtwb3NpdGlvbjphYnNvbHV0ZSIsZi5pbm5lckhUTUw9IiIsZC5hcHBlbmRDaGlsZChlKTt2YXIgZz1hLmdldENvbXB1dGVkU3R5bGUoZixudWxsKTtiPSIxJSIhPT1nLnRvcCxjPSI0cHgiPT09Zy53aWR0aCxkLnJlbW92ZUNoaWxkKGUpfWEuZ2V0Q29tcHV0ZWRTdHlsZSYmbi5leHRlbmQoayx7cGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBnKCksYn0sYm94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09YyYmZygpLGN9LHJlbGlhYmxlTWFyZ2luUmlnaHQ6ZnVuY3Rpb24oKXt2YXIgYixjPWYuYXBwZW5kQ2hpbGQobC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7cmV0dXJuIGMuc3R5bGUuY3NzVGV4dD1mLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsYy5zdHlsZS5tYXJnaW5SaWdodD1jLnN0eWxlLndpZHRoPSIwIixmLnN0eWxlLndpZHRoPSIxcHgiLGQuYXBwZW5kQ2hpbGQoZSksYj0hcGFyc2VGbG9hdChhLmdldENvbXB1dGVkU3R5bGUoYyxudWxsKS5tYXJnaW5SaWdodCksZC5yZW1vdmVDaGlsZChlKSxmLnJlbW92ZUNoaWxkKGMpLGJ9fSl9fSgpLG4uc3dhcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX07dmFyIHpiPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxBYj1uZXcgUmVnRXhwKCJeKCIrUSsiKSguKikkIiwiaSIpLEJiPW5ldyBSZWdFeHAoIl4oWystXSk9KCIrUSsiKSIsImkiKSxDYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sRGI9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LEViPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZnVuY3Rpb24gRmIoYSxiKXtpZihiIGluIGEpcmV0dXJuIGI7dmFyIGM9YlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSksZD1iLGU9RWIubGVuZ3RoO3doaWxlKGUtLSlpZihiPUViW2VdK2MsYiBpbiBhKXJldHVybiBiO3JldHVybiBkfWZ1bmN0aW9uIEdiKGEsYixjKXt2YXIgZD1BYi5leGVjKGIpO3JldHVybiBkP01hdGgubWF4KDAsZFsxXS0oY3x8MCkpKyhkWzJdfHwicHgiKTpifWZ1bmN0aW9uIEhiKGEsYixjLGQsZSl7Zm9yKHZhciBmPWM9PT0oZD8iYm9yZGVyIjoiY29udGVudCIpPzQ6IndpZHRoIj09PWI/MTowLGc9MDs0PmY7Zis9MikibWFyZ2luIj09PWMmJihnKz1uLmNzcyhhLGMrUltmXSwhMCxlKSksZD8oImNvbnRlbnQiPT09YyYmKGctPW4uY3NzKGEsInBhZGRpbmciK1JbZl0sITAsZSkpLCJtYXJnaW4iIT09YyYmKGctPW4uY3NzKGEsImJvcmRlciIrUltmXSsiV2lkdGgiLCEwLGUpKSk6KGcrPW4uY3NzKGEsInBhZGRpbmciK1JbZl0sITAsZSksInBhZGRpbmciIT09YyYmKGcrPW4uY3NzKGEsImJvcmRlciIrUltmXSsiV2lkdGgiLCEwLGUpKSk7cmV0dXJuIGd9ZnVuY3Rpb24gSWIoYSxiLGMpe3ZhciBkPSEwLGU9IndpZHRoIj09PWI/YS5vZmZzZXRXaWR0aDphLm9mZnNldEhlaWdodCxmPXdiKGEpLGc9ImJvcmRlci1ib3giPT09bi5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKTtpZigwPj1lfHxudWxsPT1lKXtpZihlPXhiKGEsYixmKSwoMD5lfHxudWxsPT1lKSYmKGU9YS5zdHlsZVtiXSksdmIudGVzdChlKSlyZXR1cm4gZTtkPWcmJihrLmJveFNpemluZ1JlbGlhYmxlKCl8fGU9PT1hLnN0eWxlW2JdKSxlPXBhcnNlRmxvYXQoZSl8fDB9cmV0dXJuIGUrSGIoYSxiLGN8fChnPyJib3JkZXIiOiJjb250ZW50IiksZCxmKSsicHgifWZ1bmN0aW9uIEpiKGEsYil7Zm9yKHZhciBjLGQsZSxmPVtdLGc9MCxoPWEubGVuZ3RoO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihmW2ddPUwuZ2V0KGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmUyhkKSYmKGZbZ109TC5hY2Nlc3MoZCwib2xkZGlzcGxheSIsdGIoZC5ub2RlTmFtZSkpKSk6KGU9UyhkKSwibm9uZSI9PT1jJiZlfHxMLnNldChkLCJvbGRkaXNwbGF5IixlP2M6bi5jc3MoZCwiZGlzcGxheSIpKSkpO2ZvcihnPTA7aD5nO2crKylkPWFbZ10sZC5zdHlsZSYmKGImJiJub25lIiE9PWQuc3R5bGUuZGlzcGxheSYmIiIhPT1kLnN0eWxlLmRpc3BsYXl8fChkLnN0eWxlLmRpc3BsYXk9Yj9mW2ddfHwiIjoibm9uZSIpKTtyZXR1cm4gYX1uLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpe3ZhciBjPXhiKGEsIm9wYWNpdHkiKTtyZXR1cm4iIj09PWM/IjEiOmN9fX19LGNzc051bWJlcjp7Y29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6eyJmbG9hdCI6ImNzc0Zsb2F0In0sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZSxmLGcsaD1uLmNhbWVsQ2FzZShiKSxpPWEuc3R5bGU7cmV0dXJuIGI9bi5jc3NQcm9wc1toXXx8KG4uY3NzUHJvcHNbaF09RmIoaSxoKSksZz1uLmNzc0hvb2tzW2JdfHxuLmNzc0hvb2tzW2hdLHZvaWQgMD09PWM/ZyYmImdldCJpbiBnJiZ2b2lkIDAhPT0oZT1nLmdldChhLCExLGQpKT9lOmlbYl06KGY9dHlwZW9mIGMsInN0cmluZyI9PT1mJiYoZT1CYi5leGVjKGMpKSYmKGM9KGVbMV0rMSkqZVsyXStwYXJzZUZsb2F0KG4uY3NzKGEsYikpLGY9Im51bWJlciIpLG51bGwhPWMmJmM9PT1jJiYoIm51bWJlciIhPT1mfHxuLmNzc051bWJlcltoXXx8KGMrPSJweCIpLGsuY2xlYXJDbG9uZVN0eWxlfHwiIiE9PWN8fDAhPT1iLmluZGV4T2YoImJhY2tncm91bmQiKXx8KGlbYl09ImluaGVyaXQiKSxnJiYic2V0ImluIGcmJnZvaWQgMD09PShjPWcuc2V0KGEsYyxkKSl8fChpW2JdPWMpKSx2b2lkIDApfX0sY3NzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZyxoPW4uY2FtZWxDYXNlKGIpO3JldHVybiBiPW4uY3NzUHJvcHNbaF18fChuLmNzc1Byb3BzW2hdPUZiKGEuc3R5bGUsaCkpLGc9bi5jc3NIb29rc1tiXXx8bi5jc3NIb29rc1toXSxnJiYiZ2V0ImluIGcmJihlPWcuZ2V0KGEsITAsYykpLHZvaWQgMD09PWUmJihlPXhiKGEsYixkKSksIm5vcm1hbCI9PT1lJiZiIGluIERiJiYoZT1EYltiXSksIiI9PT1jfHxjPyhmPXBhcnNlRmxvYXQoZSksYz09PSEwfHxuLmlzTnVtZXJpYyhmKT9mfHwwOmUpOmV9fSksbi5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihhLGIpe24uY3NzSG9va3NbYl09e2dldDpmdW5jdGlvbihhLGMsZCl7cmV0dXJuIGM/emIudGVzdChuLmNzcyhhLCJkaXNwbGF5IikpJiYwPT09YS5vZmZzZXRXaWR0aD9uLnN3YXAoYSxDYixmdW5jdGlvbigpe3JldHVybiBJYihhLGIsZCl9KTpJYihhLGIsZCk6dm9pZCAwfSxzZXQ6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPWQmJndiKGEpO3JldHVybiBHYihhLGMsZD9IYihhLGIsZCwiYm9yZGVyLWJveCI9PT1uLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGUpOjApfX19KSxuLmNzc0hvb2tzLm1hcmdpblJpZ2h0PXliKGsucmVsaWFibGVNYXJnaW5SaWdodCxmdW5jdGlvbihhLGIpe3JldHVybiBiP24uc3dhcChhLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSx4YixbYSwibWFyZ2luUmlnaHQiXSk6dm9pZCAwfSksbi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND5kO2QrKyllW2ErUltkXStiXT1mW2RdfHxmW2QtMl18fGZbMF07cmV0dXJuIGV9fSx1Yi50ZXN0KGEpfHwobi5jc3NIb29rc1thK2JdLnNldD1HYil9KSxuLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIEoodGhpcyxmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihuLmlzQXJyYXkoYikpe2ZvcihkPXdiKGEpLGU9Yi5sZW5ndGg7ZT5nO2crKylmW2JbZ11dPW4uY3NzKGEsYltnXSwhMSxkKTtyZXR1cm4gZn1yZXR1cm4gdm9pZCAwIT09Yz9uLnN0eWxlKGEsYixjKTpuLmNzcyhhLGIpfSxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBKYih0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBKYih0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE/YT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtTKHRoaXMpP24odGhpcykuc2hvdygpOm4odGhpcykuaGlkZSgpfSl9fSk7ZnVuY3Rpb24gS2IoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IEtiLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9bi5Ud2Vlbj1LYixLYi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOktiLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fCJzd2luZyIsdGhpcy5vcHRpb25zPWIsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPWQsdGhpcy51bml0PWZ8fChuLmNzc051bWJlcltjXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGE9S2IucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGEmJmEuZ2V0P2EuZ2V0KHRoaXMpOktiLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihhKXt2YXIgYixjPUtiLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLnBvcz1iPXRoaXMub3B0aW9ucy5kdXJhdGlvbj9uLmVhc2luZ1t0aGlzLmVhc2luZ10oYSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qYSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTphLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSpiK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLGMmJmMuc2V0P2Muc2V0KHRoaXMpOktiLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LEtiLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1LYi5wcm90b3R5cGUsS2IucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBudWxsPT1hLmVsZW1bYS5wcm9wXXx8YS5lbGVtLnN0eWxlJiZudWxsIT1hLmVsZW0uc3R5bGVbYS5wcm9wXT8oYj1uLmNzcyhhLmVsZW0sYS5wcm9wLCIiKSxiJiYiYXV0byIhPT1iP2I6MCk6YS5lbGVtW2EucHJvcF19LHNldDpmdW5jdGlvbihhKXtuLmZ4LnN0ZXBbYS5wcm9wXT9uLmZ4LnN0ZXBbYS5wcm9wXShhKTphLmVsZW0uc3R5bGUmJihudWxsIT1hLmVsZW0uc3R5bGVbbi5jc3NQcm9wc1thLnByb3BdXXx8bi5jc3NIb29rc1thLnByb3BdKT9uLnN0eWxlKGEuZWxlbSxhLnByb3AsYS5ub3crYS51bml0KTphLmVsZW1bYS5wcm9wXT1hLm5vd319fSxLYi5wcm9wSG9va3Muc2Nyb2xsVG9wPUtiLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oYSl7YS5lbGVtLm5vZGVUeXBlJiZhLmVsZW0ucGFyZW50Tm9kZSYmKGEuZWxlbVthLnByb3BdPWEubm93KX19LG4uZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHN3aW5nOmZ1bmN0aW9uKGEpe3JldHVybi41LU1hdGguY29zKGEqTWF0aC5QSSkvMn19LG4uZng9S2IucHJvdG90eXBlLmluaXQsbi5meC5zdGVwPXt9O3ZhciBMYixNYixOYj0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sT2I9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK1ErIikoW2EteiVdKikkIiwiaSIpLFBiPS9xdWV1ZUhvb2tzJC8sUWI9W1ZiXSxSYj17IioiOltmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY3JlYXRlVHdlZW4oYSxiKSxkPWMuY3VyKCksZT1PYi5leGVjKGIpLGY9ZSYmZVszXXx8KG4uY3NzTnVtYmVyW2FdPyIiOiJweCIpLGc9KG4uY3NzTnVtYmVyW2FdfHwicHgiIT09ZiYmK2QpJiZPYi5leGVjKG4uY3NzKGMuZWxlbSxhKSksaD0xLGk9MjA7aWYoZyYmZ1szXSE9PWYpe2Y9Znx8Z1szXSxlPWV8fFtdLGc9K2R8fDE7ZG8gaD1ofHwiLjUiLGcvPWgsbi5zdHlsZShjLmVsZW0sYSxnK2YpO3doaWxlKGghPT0oaD1jLmN1cigpL2QpJiYxIT09aCYmLS1pKX1yZXR1cm4gZSYmKGc9Yy5zdGFydD0rZ3x8K2R8fDAsYy51bml0PWYsYy5lbmQ9ZVsxXT9nKyhlWzFdKzEpKmVbMl06K2VbMl0pLGN9XX07ZnVuY3Rpb24gU2IoKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe0xiPXZvaWQgMH0pLExiPW4ubm93KCl9ZnVuY3Rpb24gVGIoYSxiKXt2YXIgYyxkPTAsZT17aGVpZ2h0OmF9O2ZvcihiPWI/MTowOzQ+ZDtkKz0yLWIpYz1SW2RdLGVbIm1hcmdpbiIrY109ZVsicGFkZGluZyIrY109YTtyZXR1cm4gYiYmKGUub3BhY2l0eT1lLndpZHRoPWEpLGV9ZnVuY3Rpb24gVWIoYSxiLGMpe2Zvcih2YXIgZCxlPShSYltiXXx8W10pLmNvbmNhdChSYlsiKiJdKSxmPTAsZz1lLmxlbmd0aDtnPmY7ZisrKWlmKGQ9ZVtmXS5jYWxsKGMsYixhKSlyZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsPXRoaXMsbT17fSxvPWEuc3R5bGUscD1hLm5vZGVUeXBlJiZTKGEpLHE9TC5nZXQoYSwiZnhzaG93Iik7Yy5xdWV1ZXx8KGg9bi5fcXVldWVIb29rcyhhLCJmeCIpLG51bGw9PWgudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsaT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8aSgpfSksaC51bnF1ZXVlZCsrLGwuYWx3YXlzKGZ1bmN0aW9uKCl7bC5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS0sbi5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSwxPT09YS5ub2RlVHlwZSYmKCJoZWlnaHQiaW4gYnx8IndpZHRoImluIGIpJiYoYy5vdmVyZmxvdz1bby5vdmVyZmxvdyxvLm92ZXJmbG93WCxvLm92ZXJmbG93WV0saj1uLmNzcyhhLCJkaXNwbGF5Iiksaz0ibm9uZSI9PT1qP0wuZ2V0KGEsIm9sZGRpc3BsYXkiKXx8dGIoYS5ub2RlTmFtZSk6aiwiaW5saW5lIj09PWsmJiJub25lIj09PW4uY3NzKGEsImZsb2F0IikmJihvLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYoby5vdmVyZmxvdz0iaGlkZGVuIixsLmFsd2F5cyhmdW5jdGlvbigpe28ub3ZlcmZsb3c9Yy5vdmVyZmxvd1swXSxvLm92ZXJmbG93WD1jLm92ZXJmbG93WzFdLG8ub3ZlcmZsb3dZPWMub3ZlcmZsb3dbMl19KSk7Zm9yKGQgaW4gYilpZihlPWJbZF0sTmIuZXhlYyhlKSl7aWYoZGVsZXRlIGJbZF0sZj1mfHwidG9nZ2xlIj09PWUsZT09PShwPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1lfHwhcXx8dm9pZCAwPT09cVtkXSljb250aW51ZTtwPSEwfW1bZF09cSYmcVtkXXx8bi5zdHlsZShhLGQpfWVsc2Ugaj12b2lkIDA7aWYobi5pc0VtcHR5T2JqZWN0KG0pKSJpbmxpbmUiPT09KCJub25lIj09PWo/dGIoYS5ub2RlTmFtZSk6aikmJihvLmRpc3BsYXk9aik7ZWxzZXtxPyJoaWRkZW4iaW4gcSYmKHA9cS5oaWRkZW4pOnE9TC5hY2Nlc3MoYSwiZnhzaG93Iix7fSksZiYmKHEuaGlkZGVuPSFwKSxwP24oYSkuc2hvdygpOmwuZG9uZShmdW5jdGlvbigpe24oYSkuaGlkZSgpfSksbC5kb25lKGZ1bmN0aW9uKCl7dmFyIGI7TC5yZW1vdmUoYSwiZnhzaG93Iik7Zm9yKGIgaW4gbSluLnN0eWxlKGEsYixtW2JdKX0pO2ZvcihkIGluIG0pZz1VYihwP3FbZF06MCxkLGwpLGQgaW4gcXx8KHFbZF09Zy5zdGFydCxwJiYoZy5lbmQ9Zy5zdGFydCxnLnN0YXJ0PSJ3aWR0aCI9PT1kfHwiaGVpZ2h0Ij09PWQ/MTowKSl9fWZ1bmN0aW9uIFdiKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoYyBpbiBhKWlmKGQ9bi5jYW1lbENhc2UoYyksZT1iW2RdLGY9YVtjXSxuLmlzQXJyYXkoZikmJihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPW4uY3NzSG9va3NbZF0sZyYmImV4cGFuZCJpbiBnKXtmPWcuZXhwYW5kKGYpLGRlbGV0ZSBhW2RdO2ZvcihjIGluIGYpYyBpbiBhfHwoYVtjXT1mW2NdLGJbY109ZSl9ZWxzZSBiW2RdPWV9ZnVuY3Rpb24gWGIoYSxiLGMpe3ZhciBkLGUsZj0wLGc9UWIubGVuZ3RoLGg9bi5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBpLmVsZW19KSxpPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTtmb3IodmFyIGI9TGJ8fFNiKCksYz1NYXRoLm1heCgwLGouc3RhcnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ouZHVyYXRpb258fDAsZj0xLWQsZz0wLGk9ai50d2VlbnMubGVuZ3RoO2k+ZztnKyspai50d2VlbnNbZ10ucnVuKGYpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSwxPmYmJmk/YzooaC5yZXNvbHZlV2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOm4uZXh0ZW5kKHt9LGIpLG9wdHM6bi5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e319LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTpMYnx8U2IoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbihiLGMpe3ZhciBkPW4uVHdlZW4oYSxqLm9wdHMsYixjLGoub3B0cy5zcGVjaWFsRWFzaW5nW2JdfHxqLm9wdHMuZWFzaW5nKTtyZXR1cm4gai50d2VlbnMucHVzaChkKSxkfSxzdG9wOmZ1bmN0aW9uKGIpe3ZhciBjPTAsZD1iP2oudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7ZD5jO2MrKylqLnR3ZWVuc1tjXS5ydW4oMSk7cmV0dXJuIGI/aC5yZXNvbHZlV2l0aChhLFtqLGJdKTpoLnJlamVjdFdpdGgoYSxbaixiXSksdGhpc319KSxrPWoucHJvcHM7Zm9yKFdiKGssai5vcHRzLnNwZWNpYWxFYXNpbmcpO2c+ZjtmKyspaWYoZD1RYltmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIGQ7cmV0dXJuIG4ubWFwKGssVWIsaiksbi5pc0Z1bmN0aW9uKGoub3B0cy5zdGFydCkmJmoub3B0cy5zdGFydC5jYWxsKGEsaiksbi5meC50aW1lcihuLmV4dGVuZChpLHtlbGVtOmEsYW5pbTpqLHF1ZXVlOmoub3B0cy5xdWV1ZX0pKSxqLnByb2dyZXNzKGoub3B0cy5wcm9ncmVzcykuZG9uZShqLm9wdHMuZG9uZSxqLm9wdHMuY29tcGxldGUpLmZhaWwoai5vcHRzLmZhaWwpLmFsd2F5cyhqLm9wdHMuYWx3YXlzKX1uLkFuaW1hdGlvbj1uLmV4dGVuZChYYix7dHdlZW5lcjpmdW5jdGlvbihhLGIpe24uaXNGdW5jdGlvbihhKT8oYj1hLGE9WyIqIl0pOmE9YS5zcGxpdCgiICIpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtlPmQ7ZCsrKWM9YVtkXSxSYltjXT1SYltjXXx8W10sUmJbY10udW5zaGlmdChiKX0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9RYi51bnNoaWZ0KGEpOlFiLnB1c2goYSl9fSksbi5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSYmIm9iamVjdCI9PXR5cGVvZiBhP24uZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8bi5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJmJ8fGImJiFuLmlzRnVuY3Rpb24oYikmJmJ9O3JldHVybiBkLmR1cmF0aW9uPW4uZngub2ZmPzA6Im51bWJlciI9PXR5cGVvZiBkLmR1cmF0aW9uP2QuZHVyYXRpb246ZC5kdXJhdGlvbiBpbiBuLmZ4LnNwZWVkcz9uLmZ4LnNwZWVkc1tkLmR1cmF0aW9uXTpuLmZ4LnNwZWVkcy5fZGVmYXVsdCwobnVsbD09ZC5xdWV1ZXx8ZC5xdWV1ZT09PSEwKSYmKGQucXVldWU9ImZ4IiksZC5vbGQ9ZC5jb21wbGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bi5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlJiZuLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sbi5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoUykuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bi5pc0VtcHR5T2JqZWN0KGEpLGY9bi5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPVhiKHRoaXMsbi5leHRlbmQoe30sYSksZik7KGV8fEwuZ2V0KHRoaXMsImZpbmlzaCIpKSYmYi5zdG9wKCEwKX07cmV0dXJuIGcuZmluaXNoPWcsZXx8Zi5xdWV1ZT09PSExP3RoaXMuZWFjaChnKTp0aGlzLnF1ZXVlKGYucXVldWUsZyl9LHN0b3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3RvcDtkZWxldGUgYS5zdG9wLGIoYyl9O3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGM9YixiPWEsYT12b2lkIDApLGImJmEhPT0hMSYmdGhpcy5xdWV1ZShhfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj0hMCxlPW51bGwhPWEmJmErInF1ZXVlSG9va3MiLGY9bi50aW1lcnMsZz1MLmdldCh0aGlzKTtpZihlKWdbZV0mJmdbZV0uc3RvcCYmZChnW2VdKTtlbHNlIGZvcihlIGluIGcpZ1tlXSYmZ1tlXS5zdG9wJiZQYi50ZXN0KGUpJiZkKGdbZV0pO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtIT09dGhpc3x8bnVsbCE9YSYmZltlXS5xdWV1ZSE9PWF8fChmW2VdLmFuaW0uc3RvcChjKSxiPSExLGYuc3BsaWNlKGUsMSkpOyhifHwhYykmJm4uZGVxdWV1ZSh0aGlzLGEpfSl9LGZpbmlzaDpmdW5jdGlvbihhKXtyZXR1cm4gYSE9PSExJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYixjPUwuZ2V0KHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1uLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbi5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxuLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bi5mbltiXTtuLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoVGIoYiwhMCksYSxkLGUpfX0pLG4uZWFjaCh7c2xpZGVEb3duOlRiKCJzaG93Iiksc2xpZGVVcDpUYigiaGlkZSIpLHNsaWRlVG9nZ2xlOlRiKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxuLnRpbWVycz1bXSxuLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPTAsYz1uLnRpbWVycztmb3IoTGI9bi5ub3coKTtiPGMubGVuZ3RoO2IrKylhPWNbYl0sYSgpfHxjW2JdIT09YXx8Yy5zcGxpY2UoYi0tLDEpO2MubGVuZ3RofHxuLmZ4LnN0b3AoKSxMYj12b2lkIDB9LG4uZngudGltZXI9ZnVuY3Rpb24oYSl7bi50aW1lcnMucHVzaChhKSxhKCk/bi5meC5zdGFydCgpOm4udGltZXJzLnBvcCgpfSxuLmZ4LmludGVydmFsPTEzLG4uZnguc3RhcnQ9ZnVuY3Rpb24oKXtNYnx8KE1iPXNldEludGVydmFsKG4uZngudGljayxuLmZ4LmludGVydmFsKSl9LG4uZnguc3RvcD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoTWIpLE1iPW51bGx9LG4uZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LG4uZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1uLmZ4P24uZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihiLGMpe3ZhciBkPXNldFRpbWVvdXQoYixhKTtjLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZCl9fSl9LGZ1bmN0aW9uKCl7dmFyIGE9bC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGI9bC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKSxjPWIuYXBwZW5kQ2hpbGQobC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7YS50eXBlPSJjaGVja2JveCIsay5jaGVja09uPSIiIT09YS52YWx1ZSxrLm9wdFNlbGVjdGVkPWMuc2VsZWN0ZWQsYi5kaXNhYmxlZD0hMCxrLm9wdERpc2FibGVkPSFjLmRpc2FibGVkLGE9bC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGEudmFsdWU9InQiLGEudHlwZT0icmFkaW8iLGsucmFkaW9WYWx1ZT0idCI9PT1hLnZhbHVlfSgpO3ZhciBZYixaYiwkYj1uLmV4cHIuYXR0ckhhbmRsZTtuLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBKKHRoaXMsbi5hdHRyLGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9YS5ub2RlVHlwZTtpZihhJiYzIT09ZiYmOCE9PWYmJjIhPT1mKXJldHVybiB0eXBlb2YgYS5nZXRBdHRyaWJ1dGU9PT1VP24ucHJvcChhLGIsYyk6KDE9PT1mJiZuLmlzWE1MRG9jKGEpfHwoYj1iLnRvTG93ZXJDYXNlKCksZD1uLmF0dHJIb29rc1tiXXx8KG4uZXhwci5tYXRjaC5ib29sLnRlc3QoYik/WmI6WWIpKSx2b2lkIDA9PT1jP2QmJiJnZXQiaW4gZCYmbnVsbCE9PShlPWQuZ2V0KGEsYikpP2U6KGU9bi5maW5kLmF0dHIoYSxiKSxudWxsPT1lP3ZvaWQgMDplKTpudWxsIT09Yz9kJiYic2V0ImluIGQmJnZvaWQgMCE9PShlPWQuc2V0KGEsYyxiKSk/ZTooYS5zZXRBdHRyaWJ1dGUoYixjKyIiKSxjKTp2b2lkIG4ucmVtb3ZlQXR0cihhLGIpKQ0KfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPTAsZj1iJiZiLm1hdGNoKEUpO2lmKGYmJjE9PT1hLm5vZGVUeXBlKXdoaWxlKGM9ZltlKytdKWQ9bi5wcm9wRml4W2NdfHxjLG4uZXhwci5tYXRjaC5ib29sLnRlc3QoYykmJihhW2RdPSExKSxhLnJlbW92ZUF0dHJpYnV0ZShjKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oYSxiKXtpZighay5yYWRpb1ZhbHVlJiYicmFkaW8iPT09YiYmbi5ub2RlTmFtZShhLCJpbnB1dCIpKXt2YXIgYz1hLnZhbHVlO3JldHVybiBhLnNldEF0dHJpYnV0ZSgidHlwZSIsYiksYyYmKGEudmFsdWU9YyksYn19fX19KSxaYj17c2V0OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYj09PSExP24ucmVtb3ZlQXR0cihhLGMpOmEuc2V0QXR0cmlidXRlKGMsYyksY319LG4uZWFjaChuLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPSRiW2JdfHxuLmZpbmQuYXR0cjskYltiXT1mdW5jdGlvbihhLGIsZCl7dmFyIGUsZjtyZXR1cm4gZHx8KGY9JGJbYl0sJGJbYl09ZSxlPW51bGwhPWMoYSxiLGQpP2IudG9Mb3dlckNhc2UoKTpudWxsLCRiW2JdPWYpLGV9fSk7dmFyIF9iPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2k7bi5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSih0aGlzLG4ucHJvcCxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbbi5wcm9wRml4W2FdfHxhXX0pfX0pLG4uZXh0ZW5kKHtwcm9wRml4OnsiZm9yIjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIn0scHJvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGc9YS5ub2RlVHlwZTtpZihhJiYzIT09ZyYmOCE9PWcmJjIhPT1nKXJldHVybiBmPTEhPT1nfHwhbi5pc1hNTERvYyhhKSxmJiYoYj1uLnByb3BGaXhbYl18fGIsZT1uLnByb3BIb29rc1tiXSksdm9pZCAwIT09Yz9lJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDphW2JdPWM6ZSYmImdldCJpbiBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDphW2JdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHxfYi50ZXN0KGEubm9kZU5hbWUpfHxhLmhyZWY/YS50YWJJbmRleDotMX19fX0pLGsub3B0U2VsZWN0ZWR8fChuLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtyZXR1cm4gYiYmYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxudWxsfX0pLG4uZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7bi5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pO3ZhciBhYz0vW1x0XHJcblxmXS9nO24uZm4uZXh0ZW5kKHthZGRDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaD0ic3RyaW5nIj09dHlwZW9mIGEmJmEsaT0wLGo9dGhpcy5sZW5ndGg7aWYobi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bih0aGlzKS5hZGRDbGFzcyhhLmNhbGwodGhpcyxiLHRoaXMuY2xhc3NOYW1lKSl9KTtpZihoKWZvcihiPShhfHwiIikubWF0Y2goRSl8fFtdO2o+aTtpKyspaWYoYz10aGlzW2ldLGQ9MT09PWMubm9kZVR5cGUmJihjLmNsYXNzTmFtZT8oIiAiK2MuY2xhc3NOYW1lKyIgIikucmVwbGFjZShhYywiICIpOiIgIikpe2Y9MDt3aGlsZShlPWJbZisrXSlkLmluZGV4T2YoIiAiK2UrIiAiKTwwJiYoZCs9ZSsiICIpO2c9bi50cmltKGQpLGMuY2xhc3NOYW1lIT09ZyYmKGMuY2xhc3NOYW1lPWcpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaD0wPT09YXJndW1lbnRzLmxlbmd0aHx8InN0cmluZyI9PXR5cGVvZiBhJiZhLGk9MCxqPXRoaXMubGVuZ3RoO2lmKG4uaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe24odGhpcykucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoaClmb3IoYj0oYXx8IiIpLm1hdGNoKEUpfHxbXTtqPmk7aSsrKWlmKGM9dGhpc1tpXSxkPTE9PT1jLm5vZGVUeXBlJiYoYy5jbGFzc05hbWU/KCIgIitjLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoYWMsIiAiKToiIikpe2Y9MDt3aGlsZShlPWJbZisrXSl3aGlsZShkLmluZGV4T2YoIiAiK2UrIiAiKT49MClkPWQucmVwbGFjZSgiICIrZSsiICIsIiAiKTtnPWE/bi50cmltKGQpOiIiLGMuY2xhc3NOYW1lIT09ZyYmKGMuY2xhc3NOYW1lPWcpfXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBjPXR5cGVvZiBhO3JldHVybiJib29sZWFuIj09dHlwZW9mIGImJiJzdHJpbmciPT09Yz9iP3RoaXMuYWRkQ2xhc3MoYSk6dGhpcy5yZW1vdmVDbGFzcyhhKTp0aGlzLmVhY2gobi5pc0Z1bmN0aW9uKGEpP2Z1bmN0aW9uKGMpe24odGhpcykudG9nZ2xlQ2xhc3MoYS5jYWxsKHRoaXMsYyx0aGlzLmNsYXNzTmFtZSxiKSxiKX06ZnVuY3Rpb24oKXtpZigic3RyaW5nIj09PWMpe3ZhciBiLGQ9MCxlPW4odGhpcyksZj1hLm1hdGNoKEUpfHxbXTt3aGlsZShiPWZbZCsrXSllLmhhc0NsYXNzKGIpP2UucmVtb3ZlQ2xhc3MoYik6ZS5hZGRDbGFzcyhiKX1lbHNlKGM9PT1VfHwiYm9vbGVhbiI9PT1jKSYmKHRoaXMuY2xhc3NOYW1lJiZMLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSksdGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT0hMT8iIjpMLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKX0pfSxoYXNDbGFzczpmdW5jdGlvbihhKXtmb3IodmFyIGI9IiAiK2ErIiAiLGM9MCxkPXRoaXMubGVuZ3RoO2Q+YztjKyspaWYoMT09PXRoaXNbY10ubm9kZVR5cGUmJigiICIrdGhpc1tjXS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKGFjLCIgIikuaW5kZXhPZihiKT49MClyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgYmM9L1xyL2c7bi5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBkPW4uaXNGdW5jdGlvbihhKSx0aGlzLmVhY2goZnVuY3Rpb24oYyl7dmFyIGU7MT09PXRoaXMubm9kZVR5cGUmJihlPWQ/YS5jYWxsKHRoaXMsYyxuKHRoaXMpLnZhbCgpKTphLG51bGw9PWU/ZT0iIjoibnVtYmVyIj09dHlwZW9mIGU/ZSs9IiI6bi5pc0FycmF5KGUpJiYoZT1uLm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOmErIiJ9KSksYj1uLnZhbEhvb2tzW3RoaXMudHlwZV18fG4udmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYic2V0ImluIGImJnZvaWQgMCE9PWIuc2V0KHRoaXMsZSwidmFsdWUiKXx8KHRoaXMudmFsdWU9ZSkpfSk7aWYoZSlyZXR1cm4gYj1uLnZhbEhvb2tzW2UudHlwZV18fG4udmFsSG9va3NbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGUsInZhbHVlIikpP2M6KGM9ZS52YWx1ZSwic3RyaW5nIj09dHlwZW9mIGM/Yy5yZXBsYWNlKGJjLCIiKTpudWxsPT1jPyIiOmMpfX19KSxuLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW4uZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI/YjpuLnRyaW0obi50ZXh0KGEpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGQ9YS5vcHRpb25zLGU9YS5zZWxlY3RlZEluZGV4LGY9InNlbGVjdC1vbmUiPT09YS50eXBlfHwwPmUsZz1mP251bGw6W10saD1mP2UrMTpkLmxlbmd0aCxpPTA+ZT9oOmY/ZTowO2g+aTtpKyspaWYoYz1kW2ldLCEoIWMuc2VsZWN0ZWQmJmkhPT1lfHwoay5vcHREaXNhYmxlZD9jLmRpc2FibGVkOm51bGwhPT1jLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKSl8fGMucGFyZW50Tm9kZS5kaXNhYmxlZCYmbi5ub2RlTmFtZShjLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZihiPW4oYykudmFsKCksZilyZXR1cm4gYjtnLnB1c2goYil9cmV0dXJuIGd9LHNldDpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZT1hLm9wdGlvbnMsZj1uLm1ha2VBcnJheShiKSxnPWUubGVuZ3RoO3doaWxlKGctLSlkPWVbZ10sKGQuc2VsZWN0ZWQ9bi5pbkFycmF5KGQudmFsdWUsZik+PTApJiYoYz0hMCk7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGZ9fX19KSxuLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtuLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbi5pc0FycmF5KGIpP2EuY2hlY2tlZD1uLmluQXJyYXkobihhKS52YWwoKSxiKT49MDp2b2lkIDB9fSxrLmNoZWNrT258fChuLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSksbi5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgbG9hZCByZXNpemUgc2Nyb2xsIHVubG9hZCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGVycm9yIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7bi5mbltiXT1mdW5jdGlvbihhLGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjA/dGhpcy5vbihiLG51bGwsYSxjKTp0aGlzLnRyaWdnZXIoYil9fSksbi5mbi5leHRlbmQoe2hvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfSxiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5vbihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub2ZmKGEsbnVsbCxiKX0sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMub24oYixhLGMsZCl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihhLCIqKiIpOnRoaXMub2ZmKGIsYXx8IioqIixjKX19KTt2YXIgY2M9bi5ub3coKSxkYz0vXD8vO24ucGFyc2VKU09OPWZ1bmN0aW9uKGEpe3JldHVybiBKU09OLnBhcnNlKGErIiIpfSxuLnBhcnNlWE1MPWZ1bmN0aW9uKGEpe3ZhciBiLGM7aWYoIWF8fCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7Yz1uZXcgRE9NUGFyc2VyLGI9Yy5wYXJzZUZyb21TdHJpbmcoYSwidGV4dC94bWwiKX1jYXRjaChkKXtiPXZvaWQgMH1yZXR1cm4oIWJ8fGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIikubGVuZ3RoKSYmbi5lcnJvcigiSW52YWxpZCBYTUw6ICIrYSksYn07dmFyIGVjPS8jLiokLyxmYz0vKFs/Jl0pXz1bXiZdKi8sZ2M9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxoYz0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxpYz0vXig/OkdFVHxIRUFEKSQvLGpjPS9eXC9cLy8sa2M9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sbGM9e30sbWM9e30sbmM9IiovIi5jb25jYXQoIioiKSxvYz1hLmxvY2F0aW9uLmhyZWYscGM9a2MuZXhlYyhvYy50b0xvd2VyQ2FzZSgpKXx8W107ZnVuY3Rpb24gcWMoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7InN0cmluZyIhPXR5cGVvZiBiJiYoYz1iLGI9IioiKTt2YXIgZCxlPTAsZj1iLnRvTG93ZXJDYXNlKCkubWF0Y2goRSl8fFtdO2lmKG4uaXNGdW5jdGlvbihjKSl3aGlsZShkPWZbZSsrXSkiKyI9PT1kWzBdPyhkPWQuc2xpY2UoMSl8fCIqIiwoYVtkXT1hW2RdfHxbXSkudW5zaGlmdChjKSk6KGFbZF09YVtkXXx8W10pLnB1c2goYyl9fWZ1bmN0aW9uIHJjKGEsYixjLGQpe3ZhciBlPXt9LGY9YT09PW1jO2Z1bmN0aW9uIGcoaCl7dmFyIGk7cmV0dXJuIGVbaF09ITAsbi5lYWNoKGFbaF18fFtdLGZ1bmN0aW9uKGEsaCl7dmFyIGo9aChiLGMsZCk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBqfHxmfHxlW2pdP2Y/IShpPWopOnZvaWQgMDooYi5kYXRhVHlwZXMudW5zaGlmdChqKSxnKGopLCExKX0pLGl9cmV0dXJuIGcoYi5kYXRhVHlwZXNbMF0pfHwhZVsiKiJdJiZnKCIqIil9ZnVuY3Rpb24gc2MoYSxiKXt2YXIgYyxkLGU9bi5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihjIGluIGIpdm9pZCAwIT09YltjXSYmKChlW2NdP2E6ZHx8KGQ9e30pKVtjXT1iW2NdKTtyZXR1cm4gZCYmbi5leHRlbmQoITAsYSxkKSxhfWZ1bmN0aW9uIHRjKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuY29udGVudHMsaT1hLmRhdGFUeXBlczt3aGlsZSgiKiI9PT1pWzBdKWkuc2hpZnQoKSx2b2lkIDA9PT1kJiYoZD1hLm1pbWVUeXBlfHxiLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYoZClmb3IoZSBpbiBoKWlmKGhbZV0mJmhbZV0udGVzdChkKSl7aS51bnNoaWZ0KGUpO2JyZWFrfWlmKGlbMF1pbiBjKWY9aVswXTtlbHNle2ZvcihlIGluIGMpe2lmKCFpWzBdfHxhLmNvbnZlcnRlcnNbZSsiICIraVswXV0pe2Y9ZTticmVha31nfHwoZz1lKX1mPWZ8fGd9cmV0dXJuIGY/KGYhPT1pWzBdJiZpLnVuc2hpZnQoZiksY1tmXSk6dm9pZCAwfWZ1bmN0aW9uIHVjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaj17fSxrPWEuZGF0YVR5cGVzLnNsaWNlKCk7aWYoa1sxXSlmb3IoZyBpbiBhLmNvbnZlcnRlcnMpaltnLnRvTG93ZXJDYXNlKCldPWEuY29udmVydGVyc1tnXTtmPWsuc2hpZnQoKTt3aGlsZShmKWlmKGEucmVzcG9uc2VGaWVsZHNbZl0mJihjW2EucmVzcG9uc2VGaWVsZHNbZl1dPWIpLCFpJiZkJiZhLmRhdGFGaWx0ZXImJihiPWEuZGF0YUZpbHRlcihiLGEuZGF0YVR5cGUpKSxpPWYsZj1rLnNoaWZ0KCkpaWYoIioiPT09ZilmPWk7ZWxzZSBpZigiKiIhPT1pJiZpIT09Zil7aWYoZz1qW2krIiAiK2ZdfHxqWyIqICIrZl0sIWcpZm9yKGUgaW4gailpZihoPWUuc3BsaXQoIiAiKSxoWzFdPT09ZiYmKGc9altpKyIgIitoWzBdXXx8alsiKiAiK2hbMF1dKSl7Zz09PSEwP2c9altlXTpqW2VdIT09ITAmJihmPWhbMF0say51bnNoaWZ0KGhbMV0pKTticmVha31pZihnIT09ITApaWYoZyYmYVsidGhyb3dzIl0pYj1nKGIpO2Vsc2UgdHJ5e2I9ZyhiKX1jYXRjaChsKXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjpnP2w6Ik5vIGNvbnZlcnNpb24gZnJvbSAiK2krIiB0byAiK2Z9fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6Yn19bi5leHRlbmQoe2FjdGl2ZTowLGxhc3RNb2RpZmllZDp7fSxldGFnOnt9LGFqYXhTZXR0aW5nczp7dXJsOm9jLHR5cGU6IkdFVCIsaXNMb2NhbDpoYy50ZXN0KHBjWzFdKSxnbG9iYWw6ITAscHJvY2Vzc0RhdGE6ITAsYXN5bmM6ITAsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOCIsYWNjZXB0czp7IioiOm5jLHRleHQ6InRleHQvcGxhaW4iLGh0bWw6InRleHQvaHRtbCIseG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQifSxjb250ZW50czp7eG1sOi94bWwvLGh0bWw6L2h0bWwvLGpzb246L2pzb24vfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6bi5wYXJzZUpTT04sInRleHQgeG1sIjpuLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9zYyhzYyhhLG4uYWpheFNldHRpbmdzKSxiKTpzYyhuLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpxYyhsYyksYWpheFRyYW5zcG9ydDpxYyhtYyksYWpheDpmdW5jdGlvbihhLGIpeyJvYmplY3QiPT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYj1ifHx7fTt2YXIgYyxkLGUsZixnLGgsaSxqLGs9bi5hamF4U2V0dXAoe30sYiksbD1rLmNvbnRleHR8fGssbT1rLmNvbnRleHQmJihsLm5vZGVUeXBlfHxsLmpxdWVyeSk/bihsKTpuLmV2ZW50LG89bi5EZWZlcnJlZCgpLHA9bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikscT1rLnN0YXR1c0NvZGV8fHt9LHI9e30scz17fSx0PTAsdT0iY2FuY2VsZWQiLHY9e3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihhKXt2YXIgYjtpZigyPT09dCl7aWYoIWYpe2Y9e307d2hpbGUoYj1nYy5leGVjKGUpKWZbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdfWI9ZlthLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIDI9PT10P2U6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihhLGIpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTtyZXR1cm4gdHx8KGE9c1tjXT1zW2NdfHxhLHJbYV09YiksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gdHx8KGsubWltZVR5cGU9YSksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbihhKXt2YXIgYjtpZihhKWlmKDI+dClmb3IoYiBpbiBhKXFbYl09W3FbYl0sYVtiXV07ZWxzZSB2LmFsd2F5cyhhW3Yuc3RhdHVzXSk7cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHU7cmV0dXJuIGMmJmMuYWJvcnQoYikseCgwLGIpLHRoaXN9fTtpZihvLnByb21pc2UodikuY29tcGxldGU9cC5hZGQsdi5zdWNjZXNzPXYuZG9uZSx2LmVycm9yPXYuZmFpbCxrLnVybD0oKGF8fGsudXJsfHxvYykrIiIpLnJlcGxhY2UoZWMsIiIpLnJlcGxhY2UoamMscGNbMV0rIi8vIiksay50eXBlPWIubWV0aG9kfHxiLnR5cGV8fGsubWV0aG9kfHxrLnR5cGUsay5kYXRhVHlwZXM9bi50cmltKGsuZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChFKXx8WyIiXSxudWxsPT1rLmNyb3NzRG9tYWluJiYoaD1rYy5leGVjKGsudXJsLnRvTG93ZXJDYXNlKCkpLGsuY3Jvc3NEb21haW49ISghaHx8aFsxXT09PXBjWzFdJiZoWzJdPT09cGNbMl0mJihoWzNdfHwoImh0dHA6Ij09PWhbMV0/IjgwIjoiNDQzIikpPT09KHBjWzNdfHwoImh0dHA6Ij09PXBjWzFdPyI4MCI6IjQ0MyIpKSkpLGsuZGF0YSYmay5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiBrLmRhdGEmJihrLmRhdGE9bi5wYXJhbShrLmRhdGEsay50cmFkaXRpb25hbCkpLHJjKGxjLGssYix2KSwyPT09dClyZXR1cm4gdjtpPW4uZXZlbnQmJmsuZ2xvYmFsLGkmJjA9PT1uLmFjdGl2ZSsrJiZuLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLGsudHlwZT1rLnR5cGUudG9VcHBlckNhc2UoKSxrLmhhc0NvbnRlbnQ9IWljLnRlc3Qoay50eXBlKSxkPWsudXJsLGsuaGFzQ29udGVudHx8KGsuZGF0YSYmKGQ9ay51cmwrPShkYy50ZXN0KGQpPyImIjoiPyIpK2suZGF0YSxkZWxldGUgay5kYXRhKSxrLmNhY2hlPT09ITEmJihrLnVybD1mYy50ZXN0KGQpP2QucmVwbGFjZShmYywiJDFfPSIrY2MrKyk6ZCsoZGMudGVzdChkKT8iJiI6Ij8iKSsiXz0iK2NjKyspKSxrLmlmTW9kaWZpZWQmJihuLmxhc3RNb2RpZmllZFtkXSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsbi5sYXN0TW9kaWZpZWRbZF0pLG4uZXRhZ1tkXSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixuLmV0YWdbZF0pKSwoay5kYXRhJiZrLmhhc0NvbnRlbnQmJmsuY29udGVudFR5cGUhPT0hMXx8Yi5jb250ZW50VHlwZSkmJnYuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixrLmNvbnRlbnRUeXBlKSx2LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsay5kYXRhVHlwZXNbMF0mJmsuYWNjZXB0c1trLmRhdGFUeXBlc1swXV0/ay5hY2NlcHRzW2suZGF0YVR5cGVzWzBdXSsoIioiIT09ay5kYXRhVHlwZXNbMF0/IiwgIituYysiOyBxPTAuMDEiOiIiKTprLmFjY2VwdHNbIioiXSk7Zm9yKGogaW4gay5oZWFkZXJzKXYuc2V0UmVxdWVzdEhlYWRlcihqLGsuaGVhZGVyc1tqXSk7aWYoay5iZWZvcmVTZW5kJiYoay5iZWZvcmVTZW5kLmNhbGwobCx2LGspPT09ITF8fDI9PT10KSlyZXR1cm4gdi5hYm9ydCgpO3U9ImFib3J0Ijtmb3IoaiBpbntzdWNjZXNzOjEsZXJyb3I6MSxjb21wbGV0ZToxfSl2W2pdKGtbal0pO2lmKGM9cmMobWMsayxiLHYpKXt2LnJlYWR5U3RhdGU9MSxpJiZtLnRyaWdnZXIoImFqYXhTZW5kIixbdixrXSksay5hc3luYyYmay50aW1lb3V0PjAmJihnPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2LmFib3J0KCJ0aW1lb3V0Iil9LGsudGltZW91dCkpO3RyeXt0PTEsYy5zZW5kKHIseCl9Y2F0Y2godyl7aWYoISgyPnQpKXRocm93IHc7eCgtMSx3KX19ZWxzZSB4KC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiB4KGEsYixmLGgpe3ZhciBqLHIscyx1LHcseD1iOzIhPT10JiYodD0yLGcmJmNsZWFyVGltZW91dChnKSxjPXZvaWQgMCxlPWh8fCIiLHYucmVhZHlTdGF0ZT1hPjA/NDowLGo9YT49MjAwJiYzMDA+YXx8MzA0PT09YSxmJiYodT10YyhrLHYsZikpLHU9dWMoayx1LHYsaiksaj8oay5pZk1vZGlmaWVkJiYodz12LmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIiksdyYmKG4ubGFzdE1vZGlmaWVkW2RdPXcpLHc9di5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpLHcmJihuLmV0YWdbZF09dykpLDIwND09PWF8fCJIRUFEIj09PWsudHlwZT94PSJub2NvbnRlbnQiOjMwND09PWE/eD0ibm90bW9kaWZpZWQiOih4PXUuc3RhdGUscj11LmRhdGEscz11LmVycm9yLGo9IXMpKToocz14LChhfHwheCkmJih4PSJlcnJvciIsMD5hJiYoYT0wKSkpLHYuc3RhdHVzPWEsdi5zdGF0dXNUZXh0PShifHx4KSsiIixqP28ucmVzb2x2ZVdpdGgobCxbcix4LHZdKTpvLnJlamVjdFdpdGgobCxbdix4LHNdKSx2LnN0YXR1c0NvZGUocSkscT12b2lkIDAsaSYmbS50cmlnZ2VyKGo/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbdixrLGo/cjpzXSkscC5maXJlV2l0aChsLFt2LHhdKSxpJiYobS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFt2LGtdKSwtLW4uYWN0aXZlfHxuLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gdn0sZ2V0SlNPTjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG4uZ2V0KGEsYixjLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3JldHVybiBuLmdldChhLHZvaWQgMCxiLCJzY3JpcHQiKX19KSxuLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oYSxiKXtuW2JdPWZ1bmN0aW9uKGEsYyxkLGUpe3JldHVybiBuLmlzRnVuY3Rpb24oYykmJihlPWV8fGQsZD1jLGM9dm9pZCAwKSxuLmFqYXgoe3VybDphLHR5cGU6YixkYXRhVHlwZTplLGRhdGE6YyxzdWNjZXNzOmR9KX19KSxuLl9ldmFsVXJsPWZ1bmN0aW9uKGEpe3JldHVybiBuLmFqYXgoe3VybDphLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsYXN5bmM6ITEsZ2xvYmFsOiExLCJ0aHJvd3MiOiEwfSl9LG4uZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBuLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe24odGhpcykud3JhcEFsbChhLmNhbGwodGhpcyxiKSl9KToodGhpc1swXSYmKGI9bihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApLHRoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzO3doaWxlKGEuZmlyc3RFbGVtZW50Q2hpbGQpYT1hLmZpcnN0RWxlbWVudENoaWxkO3JldHVybiBhfSkuYXBwZW5kKHRoaXMpKSx0aGlzKX0sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2gobi5pc0Z1bmN0aW9uKGEpP2Z1bmN0aW9uKGIpe24odGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX06ZnVuY3Rpb24oKXt2YXIgYj1uKHRoaXMpLGM9Yi5jb250ZW50cygpO2MubGVuZ3RoP2Mud3JhcEFsbChhKTpiLmFwcGVuZChhKX0pfSx3cmFwOmZ1bmN0aW9uKGEpe3ZhciBiPW4uaXNGdW5jdGlvbihhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMpe24odGhpcykud3JhcEFsbChiP2EuY2FsbCh0aGlzLGMpOmEpfSl9LHVud3JhcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKXtuLm5vZGVOYW1lKHRoaXMsImJvZHkiKXx8bih0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5kKCl9fSksbi5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiBhLm9mZnNldFdpZHRoPD0wJiZhLm9mZnNldEhlaWdodDw9MH0sbi5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hbi5leHByLmZpbHRlcnMuaGlkZGVuKGEpfTt2YXIgdmM9LyUyMC9nLHdjPS9cW1xdJC8seGM9L1xyP1xuL2cseWM9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLHpjPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtmdW5jdGlvbiBBYyhhLGIsYyxkKXt2YXIgZTtpZihuLmlzQXJyYXkoYikpbi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHx3Yy50ZXN0KGEpP2QoYSxlKTpBYyhhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBlP2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09bi50eXBlKGIpKWQoYSxiKTtlbHNlIGZvcihlIGluIGIpQWMoYSsiWyIrZSsiXSIsYltlXSxjLGQpfW4ucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9ZnVuY3Rpb24oYSxiKXtiPW4uaXNGdW5jdGlvbihiKT9iKCk6bnVsbD09Yj8iIjpiLGRbZC5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChhKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpfTtpZih2b2lkIDA9PT1iJiYoYj1uLmFqYXhTZXR0aW5ncyYmbi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLG4uaXNBcnJheShhKXx8YS5qcXVlcnkmJiFuLmlzUGxhaW5PYmplY3QoYSkpbi5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSlBYyhjLGFbY10sYixlKTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZSh2YywiKyIpfSxuLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG4ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1uLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9uLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFuKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmemMudGVzdCh0aGlzLm5vZGVOYW1lKSYmIXljLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFULnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7dmFyIGM9bih0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09Yz9udWxsOm4uaXNBcnJheShjKT9uLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoeGMsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKHhjLCJcclxuIil9fSkuZ2V0KCl9fSksbi5hamF4U2V0dGluZ3MueGhyPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYSl7fX07dmFyIEJjPTAsQ2M9e30sRGM9ezA6MjAwLDEyMjM6MjA0fSxFYz1uLmFqYXhTZXR0aW5ncy54aHIoKTthLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gQ2MpQ2NbYV0oKX0pLGsuY29ycz0hIUVjJiYid2l0aENyZWRlbnRpYWxzImluIEVjLGsuYWpheD1FYz0hIUVjLG4uYWpheFRyYW5zcG9ydChmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gay5jb3JzfHxFYyYmIWEuY3Jvc3NEb21haW4/e3NlbmQ6ZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEueGhyKCksZz0rK0JjO2lmKGYub3BlbihhLnR5cGUsYS51cmwsYS5hc3luYyxhLnVzZXJuYW1lLGEucGFzc3dvcmQpLGEueGhyRmllbGRzKWZvcihlIGluIGEueGhyRmllbGRzKWZbZV09YS54aHJGaWVsZHNbZV07YS5taW1lVHlwZSYmZi5vdmVycmlkZU1pbWVUeXBlJiZmLm92ZXJyaWRlTWltZVR5cGUoYS5taW1lVHlwZSksYS5jcm9zc0RvbWFpbnx8Y1siWC1SZXF1ZXN0ZWQtV2l0aCJdfHwoY1siWC1SZXF1ZXN0ZWQtV2l0aCJdPSJYTUxIdHRwUmVxdWVzdCIpO2ZvcihlIGluIGMpZi5zZXRSZXF1ZXN0SGVhZGVyKGUsY1tlXSk7Yj1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXtiJiYoZGVsZXRlIENjW2ddLGI9Zi5vbmxvYWQ9Zi5vbmVycm9yPW51bGwsImFib3J0Ij09PWE/Zi5hYm9ydCgpOiJlcnJvciI9PT1hP2QoZi5zdGF0dXMsZi5zdGF0dXNUZXh0KTpkKERjW2Yuc3RhdHVzXXx8Zi5zdGF0dXMsZi5zdGF0dXNUZXh0LCJzdHJpbmciPT10eXBlb2YgZi5yZXNwb25zZVRleHQ/e3RleHQ6Zi5yZXNwb25zZVRleHR9OnZvaWQgMCxmLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fSxmLm9ubG9hZD1iKCksZi5vbmVycm9yPWIoImVycm9yIiksYj1DY1tnXT1iKCJhYm9ydCIpO3RyeXtmLnNlbmQoYS5oYXNDb250ZW50JiZhLmRhdGF8fG51bGwpfWNhdGNoKGgpe2lmKGIpdGhyb3cgaH19LGFib3J0OmZ1bmN0aW9uKCl7YiYmYigpfX06dm9pZCAwfSksbi5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi8oPzpqYXZhfGVjbWEpc2NyaXB0L30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihhKXtyZXR1cm4gbi5nbG9iYWxFdmFsKGEpLGF9fX0pLG4uYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihhKXt2b2lkIDA9PT1hLmNhY2hlJiYoYS5jYWNoZT0hMSksYS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIil9KSxuLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oYSl7aWYoYS5jcm9zc0RvbWFpbil7dmFyIGIsYztyZXR1cm57c2VuZDpmdW5jdGlvbihkLGUpe2I9bigiPHNjcmlwdD4iKS5wcm9wKHthc3luYzohMCxjaGFyc2V0OmEuc2NyaXB0Q2hhcnNldCxzcmM6YS51cmx9KS5vbigibG9hZCBlcnJvciIsYz1mdW5jdGlvbihhKXtiLnJlbW92ZSgpLGM9bnVsbCxhJiZlKCJlcnJvciI9PT1hLnR5cGU/NDA0OjIwMCxhLnR5cGUpfSksbC5oZWFkLmFwcGVuZENoaWxkKGJbMF0pfSxhYm9ydDpmdW5jdGlvbigpe2MmJmMoKX19fX0pO3ZhciBGYz1bXSxHYz0vKD0pXD8oPz0mfCQpfFw/XD8vO24uYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT1GYy5wb3AoKXx8bi5leHBhbmRvKyJfIitjYysrO3JldHVybiB0aGlzW2FdPSEwLGF9fSksbi5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihiLGMsZCl7dmFyIGUsZixnLGg9Yi5qc29ucCE9PSExJiYoR2MudGVzdChiLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBiLmRhdGEmJiEoYi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZHYy50ZXN0KGIuZGF0YSkmJiJkYXRhIik7cmV0dXJuIGh8fCJqc29ucCI9PT1iLmRhdGFUeXBlc1swXT8oZT1iLmpzb25wQ2FsbGJhY2s9bi5pc0Z1bmN0aW9uKGIuanNvbnBDYWxsYmFjayk/Yi5qc29ucENhbGxiYWNrKCk6Yi5qc29ucENhbGxiYWNrLGg/YltoXT1iW2hdLnJlcGxhY2UoR2MsIiQxIitlKTpiLmpzb25wIT09ITEmJihiLnVybCs9KGRjLnRlc3QoYi51cmwpPyImIjoiPyIpK2IuanNvbnArIj0iK2UpLGIuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBnfHxuLmVycm9yKGUrIiB3YXMgbm90IGNhbGxlZCIpLGdbMF19LGIuZGF0YVR5cGVzWzBdPSJqc29uIixmPWFbZV0sYVtlXT1mdW5jdGlvbigpe2c9YXJndW1lbnRzfSxkLmFsd2F5cyhmdW5jdGlvbigpe2FbZV09ZixiW2VdJiYoYi5qc29ucENhbGxiYWNrPWMuanNvbnBDYWxsYmFjayxGYy5wdXNoKGUpKSxnJiZuLmlzRnVuY3Rpb24oZikmJmYoZ1swXSksZz1mPXZvaWQgMH0pLCJzY3JpcHQiKTp2b2lkIDB9KSxuLnBhcnNlSFRNTD1mdW5jdGlvbihhLGIsYyl7aWYoIWF8fCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gbnVsbDsiYm9vbGVhbiI9PXR5cGVvZiBiJiYoYz1iLGI9ITEpLGI9Ynx8bDt2YXIgZD12LmV4ZWMoYSksZT0hYyYmW107cmV0dXJuIGQ/W2IuY3JlYXRlRWxlbWVudChkWzFdKV06KGQ9bi5idWlsZEZyYWdtZW50KFthXSxiLGUpLGUmJmUubGVuZ3RoJiZuKGUpLnJlbW92ZSgpLG4ubWVyZ2UoW10sZC5jaGlsZE5vZGVzKSl9O3ZhciBIYz1uLmZuLmxvYWQ7bi5mbi5sb2FkPWZ1bmN0aW9uKGEsYixjKXtpZigic3RyaW5nIiE9dHlwZW9mIGEmJkhjKXJldHVybiBIYy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGQsZSxmLGc9dGhpcyxoPWEuaW5kZXhPZigiICIpO3JldHVybiBoPj0wJiYoZD1uLnRyaW0oYS5zbGljZShoKSksYT1hLnNsaWNlKDAsaCkpLG4uaXNGdW5jdGlvbihiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09dHlwZW9mIGImJihlPSJQT1NUIiksZy5sZW5ndGg+MCYmbi5hamF4KHt1cmw6YSx0eXBlOmUsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Yn0pLmRvbmUoZnVuY3Rpb24oYSl7Zj1hcmd1bWVudHMsZy5odG1sKGQ/bigiPGRpdj4iKS5hcHBlbmQobi5wYXJzZUhUTUwoYSkpLmZpbmQoZCk6YSl9KS5jb21wbGV0ZShjJiZmdW5jdGlvbihhLGIpe2cuZWFjaChjLGZ8fFthLnJlc3BvbnNlVGV4dCxiLGFdKX0pLHRoaXN9LG4uZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGEsYil7bi5mbltiXT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5vbihiLGEpfX0pLG4uZXhwci5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKGEpe3JldHVybiBuLmdyZXAobi50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJuIGE9PT1iLmVsZW19KS5sZW5ndGh9O3ZhciBJYz1hLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmdW5jdGlvbiBKYyhhKXtyZXR1cm4gbi5pc1dpbmRvdyhhKT9hOjk9PT1hLm5vZGVUeXBlJiZhLmRlZmF1bHRWaWV3fW4ub2Zmc2V0PXtzZXRPZmZzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs9bi5jc3MoYSwicG9zaXRpb24iKSxsPW4oYSksbT17fTsic3RhdGljIj09PWsmJihhLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpLGg9bC5vZmZzZXQoKSxmPW4uY3NzKGEsInRvcCIpLGk9bi5jc3MoYSwibGVmdCIpLGo9KCJhYnNvbHV0ZSI9PT1rfHwiZml4ZWQiPT09aykmJihmK2kpLmluZGV4T2YoImF1dG8iKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbi5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLGgpKSxudWxsIT1iLnRvcCYmKG0udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG0ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLG0pOmwuY3NzKG0pfX0sbi5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe24ub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTt2YXIgYixjLGQ9dGhpc1swXSxlPXt0b3A6MCxsZWZ0OjB9LGY9ZCYmZC5vd25lckRvY3VtZW50O2lmKGYpcmV0dXJuIGI9Zi5kb2N1bWVudEVsZW1lbnQsbi5jb250YWlucyhiLGQpPyh0eXBlb2YgZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QhPT1VJiYoZT1kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjPUpjKGYpLHt0b3A6ZS50b3ArYy5wYWdlWU9mZnNldC1iLmNsaWVudFRvcCxsZWZ0OmUubGVmdCtjLnBhZ2VYT2Zmc2V0LWIuY2xpZW50TGVmdH0pOmV9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYixjPXRoaXNbMF0sZD17dG9wOjAsbGVmdDowfTtyZXR1cm4iZml4ZWQiPT09bi5jc3MoYywicG9zaXRpb24iKT9iPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6KGE9dGhpcy5vZmZzZXRQYXJlbnQoKSxiPXRoaXMub2Zmc2V0KCksbi5ub2RlTmFtZShhWzBdLCJodG1sIil8fChkPWEub2Zmc2V0KCkpLGQudG9wKz1uLmNzcyhhWzBdLCJib3JkZXJUb3BXaWR0aCIsITApLGQubGVmdCs9bi5jc3MoYVswXSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpLHt0b3A6Yi50b3AtZC50b3Atbi5jc3MoYywibWFyZ2luVG9wIiwhMCksbGVmdDpiLmxlZnQtZC5sZWZ0LW4uY3NzKGMsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudHx8SWM7d2hpbGUoYSYmIW4ubm9kZU5hbWUoYSwiaHRtbCIpJiYic3RhdGljIj09PW4uY3NzKGEsInBvc2l0aW9uIikpYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gYXx8SWN9KX19KSxuLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24oYixjKXt2YXIgZD0icGFnZVlPZmZzZXQiPT09YztuLmZuW2JdPWZ1bmN0aW9uKGUpe3JldHVybiBKKHRoaXMsZnVuY3Rpb24oYixlLGYpe3ZhciBnPUpjKGIpO3JldHVybiB2b2lkIDA9PT1mP2c/Z1tjXTpiW2VdOnZvaWQoZz9nLnNjcm9sbFRvKGQ/YS5wYWdlWE9mZnNldDpmLGQ/ZjphLnBhZ2VZT2Zmc2V0KTpiW2VdPWYpfSxiLGUsYXJndW1lbnRzLmxlbmd0aCxudWxsKX19KSxuLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2JdPXliKGsucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihhLGMpe3JldHVybiBjPyhjPXhiKGEsYiksdmIudGVzdChjKT9uKGEpLnBvc2l0aW9uKClbYl0rInB4IjpjKTp2b2lkIDB9KX0pLG4uZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEsYil7bi5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OmIsIiI6Im91dGVyIithfSxmdW5jdGlvbihjLGQpe24uZm5bZF09ZnVuY3Rpb24oZCxlKXt2YXIgZj1hcmd1bWVudHMubGVuZ3RoJiYoY3x8ImJvb2xlYW4iIT10eXBlb2YgZCksZz1jfHwoZD09PSEwfHxlPT09ITA/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiBKKHRoaXMsZnVuY3Rpb24oYixjLGQpe3ZhciBlO3JldHVybiBuLmlzV2luZG93KGIpP2IuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1iLm5vZGVUeXBlPyhlPWIuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGIuYm9keVsic2Nyb2xsIithXSxlWyJzY3JvbGwiK2FdLGIuYm9keVsib2Zmc2V0IithXSxlWyJvZmZzZXQiK2FdLGVbImNsaWVudCIrYV0pKTp2b2lkIDA9PT1kP24uY3NzKGIsYyxnKTpuLnN0eWxlKGIsYyxkLGcpfSxiLGY/ZDp2b2lkIDAsZixudWxsKX19KX0pLG4uZm4uc2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sbi5mbi5hbmRTZWxmPW4uZm4uYWRkQmFjaywiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gbn0pO3ZhciBLYz1hLmpRdWVyeSxMYz1hLiQ7cmV0dXJuIG4ubm9Db25mbGljdD1mdW5jdGlvbihiKXtyZXR1cm4gYS4kPT09biYmKGEuJD1MYyksYiYmYS5qUXVlcnk9PT1uJiYoYS5qUXVlcnk9S2MpLG59LHR5cGVvZiBiPT09VSYmKGEualF1ZXJ5PWEuJD1uKSxufSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1qcXVlcnkubWluLm1hcA0KDQovKiENCiAqIElzb3RvcGUgUEFDS0FHRUQgdjIuMC4wDQogKiBGaWx0ZXIgJiBzb3J0IG1hZ2ljYWwgbGF5b3V0cw0KICogaHR0cDovL2lzb3RvcGUubWV0YWZpenp5LmNvDQogKi8NCg0KKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt9ZnVuY3Rpb24gaSh0KXtmdW5jdGlvbiBpKGUpe2UucHJvdG90eXBlLm9wdGlvbnx8KGUucHJvdG90eXBlLm9wdGlvbj1mdW5jdGlvbihlKXt0LmlzUGxhaW5PYmplY3QoZSkmJih0aGlzLm9wdGlvbnM9dC5leHRlbmQoITAsdGhpcy5vcHRpb25zLGUpKX0pfWZ1bmN0aW9uIG4oZSxpKXt0LmZuW2VdPWZ1bmN0aW9uKG4pe2lmKCJzdHJpbmciPT10eXBlb2Ygbil7Zm9yKHZhciBzPW8uY2FsbChhcmd1bWVudHMsMSksYT0wLHU9dGhpcy5sZW5ndGg7dT5hO2ErKyl7dmFyIHA9dGhpc1thXSxoPXQuZGF0YShwLGUpO2lmKGgpaWYodC5pc0Z1bmN0aW9uKGhbbl0pJiYiXyIhPT1uLmNoYXJBdCgwKSl7dmFyIGY9aFtuXS5hcHBseShoLHMpO2lmKHZvaWQgMCE9PWYpcmV0dXJuIGZ9ZWxzZSByKCJubyBzdWNoIG1ldGhvZCAnIituKyInIGZvciAiK2UrIiBpbnN0YW5jZSIpO2Vsc2UgcigiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiAiK2UrIiBwcmlvciB0byBpbml0aWFsaXphdGlvbjsgIisiYXR0ZW1wdGVkIHRvIGNhbGwgJyIrbisiJyIpfXJldHVybiB0aGlzfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgbz10LmRhdGEodGhpcyxlKTtvPyhvLm9wdGlvbihuKSxvLl9pbml0KCkpOihvPW5ldyBpKHRoaXMsbiksdC5kYXRhKHRoaXMsZSxvKSl9KX19aWYodCl7dmFyIHI9InVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlP2U6ZnVuY3Rpb24odCl7Y29uc29sZS5lcnJvcih0KX07cmV0dXJuIHQuYnJpZGdldD1mdW5jdGlvbih0LGUpe2koZSksbih0LGUpfSx0LmJyaWRnZXR9fXZhciBvPUFycmF5LnByb3RvdHlwZS5zbGljZTsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgianF1ZXJ5LWJyaWRnZXQvanF1ZXJ5LmJyaWRnZXQiLFsianF1ZXJ5Il0saSk6aSh0LmpRdWVyeSl9KSh3aW5kb3cpLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIGk9dC5ldmVudDtyZXR1cm4gaS50YXJnZXQ9aS50YXJnZXR8fGkuc3JjRWxlbWVudHx8ZSxpfXZhciBpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxvPWZ1bmN0aW9uKCl7fTtpLmFkZEV2ZW50TGlzdGVuZXI/bz1mdW5jdGlvbih0LGUsaSl7dC5hZGRFdmVudExpc3RlbmVyKGUsaSwhMSl9OmkuYXR0YWNoRXZlbnQmJihvPWZ1bmN0aW9uKHQsaSxvKXt0W2krb109by5oYW5kbGVFdmVudD9mdW5jdGlvbigpe3ZhciBpPWUodCk7by5oYW5kbGVFdmVudC5jYWxsKG8saSl9OmZ1bmN0aW9uKCl7dmFyIGk9ZSh0KTtvLmNhbGwodCxpKX0sdC5hdHRhY2hFdmVudCgib24iK2ksdFtpK29dKX0pO3ZhciBuPWZ1bmN0aW9uKCl7fTtpLnJlbW92ZUV2ZW50TGlzdGVuZXI/bj1mdW5jdGlvbih0LGUsaSl7dC5yZW1vdmVFdmVudExpc3RlbmVyKGUsaSwhMSl9OmkuZGV0YWNoRXZlbnQmJihuPWZ1bmN0aW9uKHQsZSxpKXt0LmRldGFjaEV2ZW50KCJvbiIrZSx0W2UraV0pO3RyeXtkZWxldGUgdFtlK2ldfWNhdGNoKG8pe3RbZStpXT12b2lkIDB9fSk7dmFyIHI9e2JpbmQ6byx1bmJpbmQ6bn07ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImV2ZW50aWUvZXZlbnRpZSIscik6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPXI6dC5ldmVudGllPXJ9KHRoaXMpLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7ImZ1bmN0aW9uIj09dHlwZW9mIHQmJihlLmlzUmVhZHk/dCgpOnIucHVzaCh0KSl9ZnVuY3Rpb24gaSh0KXt2YXIgaT0icmVhZHlzdGF0ZWNoYW5nZSI9PT10LnR5cGUmJiJjb21wbGV0ZSIhPT1uLnJlYWR5U3RhdGU7aWYoIWUuaXNSZWFkeSYmIWkpe2UuaXNSZWFkeT0hMDtmb3IodmFyIG89MCxzPXIubGVuZ3RoO3M+bztvKyspe3ZhciBhPXJbb107YSgpfX19ZnVuY3Rpb24gbyhvKXtyZXR1cm4gby5iaW5kKG4sIkRPTUNvbnRlbnRMb2FkZWQiLGkpLG8uYmluZChuLCJyZWFkeXN0YXRlY2hhbmdlIixpKSxvLmJpbmQodCwibG9hZCIsaSksZX12YXIgbj10LmRvY3VtZW50LHI9W107ZS5pc1JlYWR5PSExLCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/KGUuaXNSZWFkeT0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZWpzLGRlZmluZSgiZG9jLXJlYWR5L2RvYy1yZWFkeSIsWyJldmVudGllL2V2ZW50aWUiXSxvKSk6dC5kb2NSZWFkeT1vKHQuZXZlbnRpZSl9KHRoaXMpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31mdW5jdGlvbiBlKHQsZSl7Zm9yKHZhciBpPXQubGVuZ3RoO2ktLTspaWYodFtpXS5saXN0ZW5lcj09PWUpcmV0dXJuIGk7cmV0dXJuLTF9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t0XS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fXZhciBvPXQucHJvdG90eXBlLG49dGhpcyxyPW4uRXZlbnRFbWl0dGVyO28uZ2V0TGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlLGksbz10aGlzLl9nZXRFdmVudHMoKTtpZih0IGluc3RhbmNlb2YgUmVnRXhwKXtlPXt9O2ZvcihpIGluIG8pby5oYXNPd25Qcm9wZXJ0eShpKSYmdC50ZXN0KGkpJiYoZVtpXT1vW2ldKX1lbHNlIGU9b1t0XXx8KG9bdF09W10pO3JldHVybiBlfSxvLmZsYXR0ZW5MaXN0ZW5lcnM9ZnVuY3Rpb24odCl7dmFyIGUsaT1bXTtmb3IoZT0wO3QubGVuZ3RoPmU7ZSs9MSlpLnB1c2godFtlXS5saXN0ZW5lcik7cmV0dXJuIGl9LG8uZ2V0TGlzdGVuZXJzQXNPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzLmdldExpc3RlbmVycyh0KTtyZXR1cm4gaSBpbnN0YW5jZW9mIEFycmF5JiYoZT17fSxlW3RdPWkpLGV8fGl9LG8uYWRkTGlzdGVuZXI9ZnVuY3Rpb24odCxpKXt2YXIgbyxuPXRoaXMuZ2V0TGlzdGVuZXJzQXNPYmplY3QodCkscj0ib2JqZWN0Ij09dHlwZW9mIGk7Zm9yKG8gaW4gbiluLmhhc093blByb3BlcnR5KG8pJiYtMT09PWUobltvXSxpKSYmbltvXS5wdXNoKHI/aTp7bGlzdGVuZXI6aSxvbmNlOiExfSk7cmV0dXJuIHRoaXN9LG8ub249aSgiYWRkTGlzdGVuZXIiKSxvLmFkZE9uY2VMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmFkZExpc3RlbmVyKHQse2xpc3RlbmVyOmUsb25jZTohMH0pfSxvLm9uY2U9aSgiYWRkT25jZUxpc3RlbmVyIiksby5kZWZpbmVFdmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRMaXN0ZW5lcnModCksdGhpc30sby5kZWZpbmVFdmVudHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7dC5sZW5ndGg+ZTtlKz0xKXRoaXMuZGVmaW5lRXZlbnQodFtlXSk7cmV0dXJuIHRoaXN9LG8ucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24odCxpKXt2YXIgbyxuLHI9dGhpcy5nZXRMaXN0ZW5lcnNBc09iamVjdCh0KTtmb3IobiBpbiByKXIuaGFzT3duUHJvcGVydHkobikmJihvPWUocltuXSxpKSwtMSE9PW8mJnJbbl0uc3BsaWNlKG8sMSkpO3JldHVybiB0aGlzfSxvLm9mZj1pKCJyZW1vdmVMaXN0ZW5lciIpLG8uYWRkTGlzdGVuZXJzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMubWFuaXB1bGF0ZUxpc3RlbmVycyghMSx0LGUpfSxvLnJlbW92ZUxpc3RlbmVycz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1hbmlwdWxhdGVMaXN0ZW5lcnMoITAsdCxlKX0sby5tYW5pcHVsYXRlTGlzdGVuZXJzPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbyxuLHI9dD90aGlzLnJlbW92ZUxpc3RlbmVyOnRoaXMuYWRkTGlzdGVuZXIscz10P3RoaXMucmVtb3ZlTGlzdGVuZXJzOnRoaXMuYWRkTGlzdGVuZXJzO2lmKCJvYmplY3QiIT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIFJlZ0V4cClmb3Iobz1pLmxlbmd0aDtvLS07KXIuY2FsbCh0aGlzLGUsaVtvXSk7ZWxzZSBmb3IobyBpbiBlKWUuaGFzT3duUHJvcGVydHkobykmJihuPWVbb10pJiYoImZ1bmN0aW9uIj09dHlwZW9mIG4/ci5jYWxsKHRoaXMsbyxuKTpzLmNhbGwodGhpcyxvLG4pKTtyZXR1cm4gdGhpc30sby5yZW1vdmVFdmVudD1mdW5jdGlvbih0KXt2YXIgZSxpPXR5cGVvZiB0LG89dGhpcy5fZ2V0RXZlbnRzKCk7aWYoInN0cmluZyI9PT1pKWRlbGV0ZSBvW3RdO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFJlZ0V4cClmb3IoZSBpbiBvKW8uaGFzT3duUHJvcGVydHkoZSkmJnQudGVzdChlKSYmZGVsZXRlIG9bZV07ZWxzZSBkZWxldGUgdGhpcy5fZXZlbnRzO3JldHVybiB0aGlzfSxvLnJlbW92ZUFsbExpc3RlbmVycz1pKCJyZW1vdmVFdmVudCIpLG8uZW1pdEV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIGksbyxuLHIscz10aGlzLmdldExpc3RlbmVyc0FzT2JqZWN0KHQpO2ZvcihuIGluIHMpaWYocy5oYXNPd25Qcm9wZXJ0eShuKSlmb3Iobz1zW25dLmxlbmd0aDtvLS07KWk9c1tuXVtvXSxpLm9uY2U9PT0hMCYmdGhpcy5yZW1vdmVMaXN0ZW5lcih0LGkubGlzdGVuZXIpLHI9aS5saXN0ZW5lci5hcHBseSh0aGlzLGV8fFtdKSxyPT09dGhpcy5fZ2V0T25jZVJldHVyblZhbHVlKCkmJnRoaXMucmVtb3ZlTGlzdGVuZXIodCxpLmxpc3RlbmVyKTtyZXR1cm4gdGhpc30sby50cmlnZ2VyPWkoImVtaXRFdmVudCIpLG8uZW1pdD1mdW5jdGlvbih0KXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIHRoaXMuZW1pdEV2ZW50KHQsZSl9LG8uc2V0T25jZVJldHVyblZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbmNlUmV0dXJuVmFsdWU9dCx0aGlzfSxvLl9nZXRPbmNlUmV0dXJuVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eSgiX29uY2VSZXR1cm5WYWx1ZSIpP3RoaXMuX29uY2VSZXR1cm5WYWx1ZTohMH0sby5fZ2V0RXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2V2ZW50c3x8KHRoaXMuX2V2ZW50cz17fSl9LHQubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBuLkV2ZW50RW1pdHRlcj1yLHR9LCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJldmVudEVtaXR0ZXIvRXZlbnRFbWl0dGVyIixbXSxmdW5jdGlvbigpe3JldHVybiB0fSk6Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPXQ6dGhpcy5FdmVudEVtaXR0ZXI9dH0uY2FsbCh0aGlzKSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2Ygb1t0XSlyZXR1cm4gdDt0PXQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtmb3IodmFyIGUsbj0wLHI9aS5sZW5ndGg7cj5uO24rKylpZihlPWlbbl0rdCwic3RyaW5nIj09dHlwZW9mIG9bZV0pcmV0dXJuIGV9fXZhciBpPSJXZWJraXQgTW96IG1zIE1zIE8iLnNwbGl0KCIgIiksbz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGU7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImdldC1zdHlsZS1wcm9wZXJ0eS9nZXQtc3R5bGUtcHJvcGVydHkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGV9KToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZTp0LmdldFN0eWxlUHJvcGVydHk9ZX0od2luZG93KSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlPXBhcnNlRmxvYXQodCksaT0tMT09PXQuaW5kZXhPZigiJSIpJiYhaXNOYU4oZSk7cmV0dXJuIGkmJmV9ZnVuY3Rpb24gaSgpe2Zvcih2YXIgdD17d2lkdGg6MCxoZWlnaHQ6MCxpbm5lcldpZHRoOjAsaW5uZXJIZWlnaHQ6MCxvdXRlcldpZHRoOjAsb3V0ZXJIZWlnaHQ6MH0sZT0wLGk9cy5sZW5ndGg7aT5lO2UrKyl7dmFyIG89c1tlXTt0W29dPTB9cmV0dXJuIHR9ZnVuY3Rpb24gbyh0KXtmdW5jdGlvbiBvKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KSksdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0Lm5vZGVUeXBlKXt2YXIgbz1yKHQpO2lmKCJub25lIj09PW8uZGlzcGxheSlyZXR1cm4gaSgpO3ZhciBuPXt9O24ud2lkdGg9dC5vZmZzZXRXaWR0aCxuLmhlaWdodD10Lm9mZnNldEhlaWdodDtmb3IodmFyIGg9bi5pc0JvcmRlckJveD0hKCFwfHwhb1twXXx8ImJvcmRlci1ib3giIT09b1twXSksZj0wLGM9cy5sZW5ndGg7Yz5mO2YrKyl7dmFyIGQ9c1tmXSxsPW9bZF07bD1hKHQsbCk7dmFyIHk9cGFyc2VGbG9hdChsKTtuW2RdPWlzTmFOKHkpPzA6eX12YXIgbT1uLnBhZGRpbmdMZWZ0K24ucGFkZGluZ1JpZ2h0LGc9bi5wYWRkaW5nVG9wK24ucGFkZGluZ0JvdHRvbSx2PW4ubWFyZ2luTGVmdCtuLm1hcmdpblJpZ2h0LF89bi5tYXJnaW5Ub3Arbi5tYXJnaW5Cb3R0b20sST1uLmJvcmRlckxlZnRXaWR0aCtuLmJvcmRlclJpZ2h0V2lkdGgsTD1uLmJvcmRlclRvcFdpZHRoK24uYm9yZGVyQm90dG9tV2lkdGgsej1oJiZ1LFM9ZShvLndpZHRoKTtTIT09ITEmJihuLndpZHRoPVMrKHo/MDptK0kpKTt2YXIgYj1lKG8uaGVpZ2h0KTtyZXR1cm4gYiE9PSExJiYobi5oZWlnaHQ9Yisoej8wOmcrTCkpLG4uaW5uZXJXaWR0aD1uLndpZHRoLShtK0kpLG4uaW5uZXJIZWlnaHQ9bi5oZWlnaHQtKGcrTCksbi5vdXRlcldpZHRoPW4ud2lkdGgrdixuLm91dGVySGVpZ2h0PW4uaGVpZ2h0K18sbn19ZnVuY3Rpb24gYSh0LGUpe2lmKG58fC0xPT09ZS5pbmRleE9mKCIlIikpcmV0dXJuIGU7dmFyIGk9dC5zdHlsZSxvPWkubGVmdCxyPXQucnVudGltZVN0eWxlLHM9ciYmci5sZWZ0O3JldHVybiBzJiYoci5sZWZ0PXQuY3VycmVudFN0eWxlLmxlZnQpLGkubGVmdD1lLGU9aS5waXhlbExlZnQsaS5sZWZ0PW8scyYmKHIubGVmdD1zKSxlfXZhciB1LHA9dCgiYm94U2l6aW5nIik7cmV0dXJuIGZ1bmN0aW9uKCl7aWYocCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5zdHlsZS53aWR0aD0iMjAwcHgiLHQuc3R5bGUucGFkZGluZz0iMXB4IDJweCAzcHggNHB4Iix0LnN0eWxlLmJvcmRlclN0eWxlPSJzb2xpZCIsdC5zdHlsZS5ib3JkZXJXaWR0aD0iMXB4IDJweCAzcHggNHB4Iix0LnN0eWxlW3BdPSJib3JkZXItYm94Ijt2YXIgaT1kb2N1bWVudC5ib2R5fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aS5hcHBlbmRDaGlsZCh0KTt2YXIgbz1yKHQpO3U9MjAwPT09ZShvLndpZHRoKSxpLnJlbW92ZUNoaWxkKHQpfX0oKSxvfXZhciBuPXQuZ2V0Q29tcHV0ZWRTdHlsZSxyPW4/ZnVuY3Rpb24odCl7cmV0dXJuIG4odCxudWxsKX06ZnVuY3Rpb24odCl7cmV0dXJuIHQuY3VycmVudFN0eWxlfSxzPVsicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsImJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIl07ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImdldC1zaXplL2dldC1zaXplIixbImdldC1zdHlsZS1wcm9wZXJ0eS9nZXQtc3R5bGUtcHJvcGVydHkiXSxvKToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9byhyZXF1aXJlKCJnZXQtc3R5bGUtcHJvcGVydHkiKSk6dC5nZXRTaXplPW8odC5nZXRTdHlsZVByb3BlcnR5KX0od2luZG93KSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIGkodCxlKXtyZXR1cm4gdFthXShlKX1mdW5jdGlvbiBvKHQpe2lmKCF0LnBhcmVudE5vZGUpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtlLmFwcGVuZENoaWxkKHQpfX1mdW5jdGlvbiBuKHQsZSl7byh0KTtmb3IodmFyIGk9dC5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoZSksbj0wLHI9aS5sZW5ndGg7cj5uO24rKylpZihpW25dPT09dClyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiByKHQsZSl7cmV0dXJuIG8odCksaSh0LGUpfXZhciBzLGE9ZnVuY3Rpb24oKXtpZihlLm1hdGNoZXNTZWxlY3RvcilyZXR1cm4ibWF0Y2hlc1NlbGVjdG9yIjtmb3IodmFyIHQ9WyJ3ZWJraXQiLCJtb3oiLCJtcyIsIm8iXSxpPTAsbz10Lmxlbmd0aDtvPmk7aSsrKXt2YXIgbj10W2ldLHI9bisiTWF0Y2hlc1NlbGVjdG9yIjtpZihlW3JdKXJldHVybiByfX0oKTtpZihhKXt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxwPWkodSwiZGl2Iik7cz1wP2k6cn1lbHNlIHM9bjsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgibWF0Y2hlcy1zZWxlY3Rvci9tYXRjaGVzLXNlbGVjdG9yIixbXSxmdW5jdGlvbigpe3JldHVybiBzfSk6d2luZG93Lm1hdGNoZXNTZWxlY3Rvcj1zfSh0aGlzLEVsZW1lbnQucHJvdG90eXBlKSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7Zm9yKHZhciBpIGluIGUpdFtpXT1lW2ldO3JldHVybiB0fWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlIGluIHQpcmV0dXJuITE7cmV0dXJuIGU9bnVsbCwhMH1mdW5jdGlvbiBvKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbQS1aXSkvZyxmdW5jdGlvbih0KXtyZXR1cm4iLSIrdC50b0xvd2VyQ2FzZSgpfSl9ZnVuY3Rpb24gbih0LG4scil7ZnVuY3Rpb24gYSh0LGUpe3QmJih0aGlzLmVsZW1lbnQ9dCx0aGlzLmxheW91dD1lLHRoaXMucG9zaXRpb249e3g6MCx5OjB9LHRoaXMuX2NyZWF0ZSgpKX12YXIgdT1yKCJ0cmFuc2l0aW9uIikscD1yKCJ0cmFuc2Zvcm0iKSxoPXUmJnAsZj0hIXIoInBlcnNwZWN0aXZlIiksYz17V2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im90cmFuc2l0aW9uZW5kIix0cmFuc2l0aW9uOiJ0cmFuc2l0aW9uZW5kIn1bdV0sZD1bInRyYW5zZm9ybSIsInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJ0cmFuc2l0aW9uUHJvcGVydHkiXSxsPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXt9LGU9MCxpPWQubGVuZ3RoO2k+ZTtlKyspe3ZhciBvPWRbZV0sbj1yKG8pO24mJm4hPT1vJiYodFtvXT1uKX1yZXR1cm4gdH0oKTtlKGEucHJvdG90eXBlLHQucHJvdG90eXBlKSxhLnByb3RvdHlwZS5fY3JlYXRlPWZ1bmN0aW9uKCl7dGhpcy5fdHJhbnNuPXtpbmdQcm9wZXJ0aWVzOnt9LGNsZWFuOnt9LG9uRW5kOnt9fSx0aGlzLmNzcyh7cG9zaXRpb246ImFic29sdXRlIn0pfSxhLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXt2YXIgZT0ib24iK3QudHlwZTt0aGlzW2VdJiZ0aGlzW2VdKHQpfSxhLnByb3RvdHlwZS5nZXRTaXplPWZ1bmN0aW9uKCl7dGhpcy5zaXplPW4odGhpcy5lbGVtZW50KX0sYS5wcm90b3R5cGUuY3NzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZWxlbWVudC5zdHlsZTtmb3IodmFyIGkgaW4gdCl7dmFyIG89bFtpXXx8aTtlW29dPXRbaV19fSxhLnByb3RvdHlwZS5nZXRQb3NpdGlvbj1mdW5jdGlvbigpe3ZhciB0PXModGhpcy5lbGVtZW50KSxlPXRoaXMubGF5b3V0Lm9wdGlvbnMsaT1lLmlzT3JpZ2luTGVmdCxvPWUuaXNPcmlnaW5Ub3Asbj1wYXJzZUludCh0W2k/ImxlZnQiOiJyaWdodCJdLDEwKSxyPXBhcnNlSW50KHRbbz8idG9wIjoiYm90dG9tIl0sMTApO249aXNOYU4obik/MDpuLHI9aXNOYU4ocik/MDpyO3ZhciBhPXRoaXMubGF5b3V0LnNpemU7bi09aT9hLnBhZGRpbmdMZWZ0OmEucGFkZGluZ1JpZ2h0LHItPW8/YS5wYWRkaW5nVG9wOmEucGFkZGluZ0JvdHRvbSx0aGlzLnBvc2l0aW9uLng9bix0aGlzLnBvc2l0aW9uLnk9cn0sYS5wcm90b3R5cGUubGF5b3V0UG9zaXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxheW91dC5zaXplLGU9dGhpcy5sYXlvdXQub3B0aW9ucyxpPXt9O2UuaXNPcmlnaW5MZWZ0PyhpLmxlZnQ9dGhpcy5wb3NpdGlvbi54K3QucGFkZGluZ0xlZnQrInB4IixpLnJpZ2h0PSIiKTooaS5yaWdodD10aGlzLnBvc2l0aW9uLngrdC5wYWRkaW5nUmlnaHQrInB4IixpLmxlZnQ9IiIpLGUuaXNPcmlnaW5Ub3A/KGkudG9wPXRoaXMucG9zaXRpb24ueSt0LnBhZGRpbmdUb3ArInB4IixpLmJvdHRvbT0iIik6KGkuYm90dG9tPXRoaXMucG9zaXRpb24ueSt0LnBhZGRpbmdCb3R0b20rInB4IixpLnRvcD0iIiksdGhpcy5jc3MoaSksdGhpcy5lbWl0RXZlbnQoImxheW91dCIsW3RoaXNdKX07dmFyIHk9Zj9mdW5jdGlvbih0LGUpe3JldHVybiJ0cmFuc2xhdGUzZCgiK3QrInB4LCAiK2UrInB4LCAwKSJ9OmZ1bmN0aW9uKHQsZSl7cmV0dXJuInRyYW5zbGF0ZSgiK3QrInB4LCAiK2UrInB4KSJ9O2EucHJvdG90eXBlLl90cmFuc2l0aW9uVG89ZnVuY3Rpb24odCxlKXt0aGlzLmdldFBvc2l0aW9uKCk7dmFyIGk9dGhpcy5wb3NpdGlvbi54LG89dGhpcy5wb3NpdGlvbi55LG49cGFyc2VJbnQodCwxMCkscj1wYXJzZUludChlLDEwKSxzPW49PT10aGlzLnBvc2l0aW9uLngmJnI9PT10aGlzLnBvc2l0aW9uLnk7aWYodGhpcy5zZXRQb3NpdGlvbih0LGUpLHMmJiF0aGlzLmlzVHJhbnNpdGlvbmluZylyZXR1cm4gdGhpcy5sYXlvdXRQb3NpdGlvbigpLHZvaWQgMDt2YXIgYT10LWksdT1lLW8scD17fSxoPXRoaXMubGF5b3V0Lm9wdGlvbnM7YT1oLmlzT3JpZ2luTGVmdD9hOi1hLHU9aC5pc09yaWdpblRvcD91Oi11LHAudHJhbnNmb3JtPXkoYSx1KSx0aGlzLnRyYW5zaXRpb24oe3RvOnAsb25UcmFuc2l0aW9uRW5kOnt0cmFuc2Zvcm06dGhpcy5sYXlvdXRQb3NpdGlvbn0saXNDbGVhbmluZzohMH0pfSxhLnByb3RvdHlwZS5nb1RvPWZ1bmN0aW9uKHQsZSl7dGhpcy5zZXRQb3NpdGlvbih0LGUpLHRoaXMubGF5b3V0UG9zaXRpb24oKX0sYS5wcm90b3R5cGUubW92ZVRvPWg/YS5wcm90b3R5cGUuX3RyYW5zaXRpb25UbzphLnByb3RvdHlwZS5nb1RvLGEucHJvdG90eXBlLnNldFBvc2l0aW9uPWZ1bmN0aW9uKHQsZSl7dGhpcy5wb3NpdGlvbi54PXBhcnNlSW50KHQsMTApLHRoaXMucG9zaXRpb24ueT1wYXJzZUludChlLDEwKX0sYS5wcm90b3R5cGUuX25vblRyYW5zaXRpb249ZnVuY3Rpb24odCl7dGhpcy5jc3ModC50byksdC5pc0NsZWFuaW5nJiZ0aGlzLl9yZW1vdmVTdHlsZXModC50byk7Zm9yKHZhciBlIGluIHQub25UcmFuc2l0aW9uRW5kKXQub25UcmFuc2l0aW9uRW5kW2VdLmNhbGwodGhpcyl9LGEucHJvdG90eXBlLl90cmFuc2l0aW9uPWZ1bmN0aW9uKHQpe2lmKCFwYXJzZUZsb2F0KHRoaXMubGF5b3V0Lm9wdGlvbnMudHJhbnNpdGlvbkR1cmF0aW9uKSlyZXR1cm4gdGhpcy5fbm9uVHJhbnNpdGlvbih0KSx2b2lkIDA7dmFyIGU9dGhpcy5fdHJhbnNuO2Zvcih2YXIgaSBpbiB0Lm9uVHJhbnNpdGlvbkVuZCllLm9uRW5kW2ldPXQub25UcmFuc2l0aW9uRW5kW2ldO2ZvcihpIGluIHQudG8pZS5pbmdQcm9wZXJ0aWVzW2ldPSEwLHQuaXNDbGVhbmluZyYmKGUuY2xlYW5baV09ITApO2lmKHQuZnJvbSl7dGhpcy5jc3ModC5mcm9tKTt2YXIgbz10aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0O289bnVsbH10aGlzLmVuYWJsZVRyYW5zaXRpb24odC50byksdGhpcy5jc3ModC50byksdGhpcy5pc1RyYW5zaXRpb25pbmc9ITB9O3ZhciBtPXAmJm8ocCkrIixvcGFjaXR5IjthLnByb3RvdHlwZS5lbmFibGVUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7dGhpcy5pc1RyYW5zaXRpb25pbmd8fCh0aGlzLmNzcyh7dHJhbnNpdGlvblByb3BlcnR5Om0sdHJhbnNpdGlvbkR1cmF0aW9uOnRoaXMubGF5b3V0Lm9wdGlvbnMudHJhbnNpdGlvbkR1cmF0aW9ufSksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoYyx0aGlzLCExKSl9LGEucHJvdG90eXBlLnRyYW5zaXRpb249YS5wcm90b3R5cGVbdT8iX3RyYW5zaXRpb24iOiJfbm9uVHJhbnNpdGlvbiJdLGEucHJvdG90eXBlLm9ud2Via2l0VHJhbnNpdGlvbkVuZD1mdW5jdGlvbih0KXt0aGlzLm9udHJhbnNpdGlvbmVuZCh0KX0sYS5wcm90b3R5cGUub25vdHJhbnNpdGlvbmVuZD1mdW5jdGlvbih0KXt0aGlzLm9udHJhbnNpdGlvbmVuZCh0KX07dmFyIGc9eyItd2Via2l0LXRyYW5zZm9ybSI6InRyYW5zZm9ybSIsIi1tb3otdHJhbnNmb3JtIjoidHJhbnNmb3JtIiwiLW8tdHJhbnNmb3JtIjoidHJhbnNmb3JtIn07YS5wcm90b3R5cGUub250cmFuc2l0aW9uZW5kPWZ1bmN0aW9uKHQpe2lmKHQudGFyZ2V0PT09dGhpcy5lbGVtZW50KXt2YXIgZT10aGlzLl90cmFuc24sbz1nW3QucHJvcGVydHlOYW1lXXx8dC5wcm9wZXJ0eU5hbWU7aWYoZGVsZXRlIGUuaW5nUHJvcGVydGllc1tvXSxpKGUuaW5nUHJvcGVydGllcykmJnRoaXMuZGlzYWJsZVRyYW5zaXRpb24oKSxvIGluIGUuY2xlYW4mJih0aGlzLmVsZW1lbnQuc3R5bGVbdC5wcm9wZXJ0eU5hbWVdPSIiLGRlbGV0ZSBlLmNsZWFuW29dKSxvIGluIGUub25FbmQpe3ZhciBuPWUub25FbmRbb107bi5jYWxsKHRoaXMpLGRlbGV0ZSBlLm9uRW5kW29dfXRoaXMuZW1pdEV2ZW50KCJ0cmFuc2l0aW9uRW5kIixbdGhpc10pfX0sYS5wcm90b3R5cGUuZGlzYWJsZVRyYW5zaXRpb249ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZVRyYW5zaXRpb25TdHlsZXMoKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLHRoaXMsITEpLHRoaXMuaXNUcmFuc2l0aW9uaW5nPSExfSxhLnByb3RvdHlwZS5fcmVtb3ZlU3R5bGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Zvcih2YXIgaSBpbiB0KWVbaV09IiI7dGhpcy5jc3MoZSl9O3ZhciB2PXt0cmFuc2l0aW9uUHJvcGVydHk6IiIsdHJhbnNpdGlvbkR1cmF0aW9uOiIifTtyZXR1cm4gYS5wcm90b3R5cGUucmVtb3ZlVHJhbnNpdGlvblN0eWxlcz1mdW5jdGlvbigpe3RoaXMuY3NzKHYpfSxhLnByb3RvdHlwZS5yZW1vdmVFbGVtPWZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KSx0aGlzLmVtaXRFdmVudCgicmVtb3ZlIixbdGhpc10pfSxhLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXtpZighdXx8IXBhcnNlRmxvYXQodGhpcy5sYXlvdXQub3B0aW9ucy50cmFuc2l0aW9uRHVyYXRpb24pKXJldHVybiB0aGlzLnJlbW92ZUVsZW0oKSx2b2lkIDA7dmFyIHQ9dGhpczt0aGlzLm9uKCJ0cmFuc2l0aW9uRW5kIixmdW5jdGlvbigpe3JldHVybiB0LnJlbW92ZUVsZW0oKSwhMH0pLHRoaXMuaGlkZSgpfSxhLnByb3RvdHlwZS5yZXZlYWw9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5pc0hpZGRlbix0aGlzLmNzcyh7ZGlzcGxheToiIn0pO3ZhciB0PXRoaXMubGF5b3V0Lm9wdGlvbnM7dGhpcy50cmFuc2l0aW9uKHtmcm9tOnQuaGlkZGVuU3R5bGUsdG86dC52aXNpYmxlU3R5bGUsaXNDbGVhbmluZzohMH0pfSxhLnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKCl7dGhpcy5pc0hpZGRlbj0hMCx0aGlzLmNzcyh7ZGlzcGxheToiIn0pO3ZhciB0PXRoaXMubGF5b3V0Lm9wdGlvbnM7dGhpcy50cmFuc2l0aW9uKHtmcm9tOnQudmlzaWJsZVN0eWxlLHRvOnQuaGlkZGVuU3R5bGUsaXNDbGVhbmluZzohMCxvblRyYW5zaXRpb25FbmQ6e29wYWNpdHk6ZnVuY3Rpb24oKXt0aGlzLmlzSGlkZGVuJiZ0aGlzLmNzcyh7ZGlzcGxheToibm9uZSJ9KX19fSl9LGEucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmNzcyh7cG9zaXRpb246IiIsbGVmdDoiIixyaWdodDoiIix0b3A6IiIsYm90dG9tOiIiLHRyYW5zaXRpb246IiIsdHJhbnNmb3JtOiIifSl9LGF9dmFyIHI9dC5nZXRDb21wdXRlZFN0eWxlLHM9cj9mdW5jdGlvbih0KXtyZXR1cm4gcih0LG51bGwpfTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jdXJyZW50U3R5bGV9OyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJvdXRsYXllci9pdGVtIixbImV2ZW50RW1pdHRlci9FdmVudEVtaXR0ZXIiLCJnZXQtc2l6ZS9nZXQtc2l6ZSIsImdldC1zdHlsZS1wcm9wZXJ0eS9nZXQtc3R5bGUtcHJvcGVydHkiXSxuKToodC5PdXRsYXllcj17fSx0Lk91dGxheWVyLkl0ZW09bih0LkV2ZW50RW1pdHRlcix0LmdldFNpemUsdC5nZXRTdHlsZVByb3BlcnR5KSl9KHdpbmRvdyksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe2Zvcih2YXIgaSBpbiBlKXRbaV09ZVtpXTtyZXR1cm4gdH1mdW5jdGlvbiBpKHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1mLmNhbGwodCl9ZnVuY3Rpb24gbyh0KXt2YXIgZT1bXTtpZihpKHQpKWU9dDtlbHNlIGlmKHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpZm9yKHZhciBvPTAsbj10Lmxlbmd0aDtuPm87bysrKWUucHVzaCh0W29dKTtlbHNlIGUucHVzaCh0KTtyZXR1cm4gZX1mdW5jdGlvbiBuKHQsZSl7dmFyIGk9ZChlLHQpOy0xIT09aSYmZS5zcGxpY2UoaSwxKX1mdW5jdGlvbiByKHQpe3JldHVybiB0LnJlcGxhY2UoLyguKShbQS1aXSkvZyxmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGUrIi0iK2l9KS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHMoaSxzLGYsZCxsLHkpe2Z1bmN0aW9uIG0odCxpKXtpZigic3RyaW5nIj09dHlwZW9mIHQmJih0PWEucXVlcnlTZWxlY3Rvcih0KSksIXR8fCFjKHQpKXJldHVybiB1JiZ1LmVycm9yKCJCYWQgIit0aGlzLmNvbnN0cnVjdG9yLm5hbWVzcGFjZSsiIGVsZW1lbnQ6ICIrdCksdm9pZCAwO3RoaXMuZWxlbWVudD10LHRoaXMub3B0aW9ucz1lKHt9LHRoaXMuY29uc3RydWN0b3IuZGVmYXVsdHMpLHRoaXMub3B0aW9uKGkpO3ZhciBvPSsrZzt0aGlzLmVsZW1lbnQub3V0bGF5ZXJHVUlEPW8sdltvXT10aGlzLHRoaXMuX2NyZWF0ZSgpLHRoaXMub3B0aW9ucy5pc0luaXRMYXlvdXQmJnRoaXMubGF5b3V0KCl9dmFyIGc9MCx2PXt9O3JldHVybiBtLm5hbWVzcGFjZT0ib3V0bGF5ZXIiLG0uSXRlbT15LG0uZGVmYXVsdHM9e2NvbnRhaW5lclN0eWxlOntwb3NpdGlvbjoicmVsYXRpdmUifSxpc0luaXRMYXlvdXQ6ITAsaXNPcmlnaW5MZWZ0OiEwLGlzT3JpZ2luVG9wOiEwLGlzUmVzaXplQm91bmQ6ITAsaXNSZXNpemluZ0NvbnRhaW5lcjohMCx0cmFuc2l0aW9uRHVyYXRpb246IjAuNHMiLGhpZGRlblN0eWxlOntvcGFjaXR5OjAsdHJhbnNmb3JtOiJzY2FsZSgwLjAwMSkifSx2aXNpYmxlU3R5bGU6e29wYWNpdHk6MSx0cmFuc2Zvcm06InNjYWxlKDEpIn19LGUobS5wcm90b3R5cGUsZi5wcm90b3R5cGUpLG0ucHJvdG90eXBlLm9wdGlvbj1mdW5jdGlvbih0KXtlKHRoaXMub3B0aW9ucyx0KX0sbS5wcm90b3R5cGUuX2NyZWF0ZT1mdW5jdGlvbigpe3RoaXMucmVsb2FkSXRlbXMoKSx0aGlzLnN0YW1wcz1bXSx0aGlzLnN0YW1wKHRoaXMub3B0aW9ucy5zdGFtcCksZSh0aGlzLmVsZW1lbnQuc3R5bGUsdGhpcy5vcHRpb25zLmNvbnRhaW5lclN0eWxlKSx0aGlzLm9wdGlvbnMuaXNSZXNpemVCb3VuZCYmdGhpcy5iaW5kUmVzaXplKCl9LG0ucHJvdG90eXBlLnJlbG9hZEl0ZW1zPWZ1bmN0aW9uKCl7dGhpcy5pdGVtcz10aGlzLl9pdGVtaXplKHRoaXMuZWxlbWVudC5jaGlsZHJlbil9LG0ucHJvdG90eXBlLl9pdGVtaXplPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9maWx0ZXJGaW5kSXRlbUVsZW1lbnRzKHQpLGk9dGhpcy5jb25zdHJ1Y3Rvci5JdGVtLG89W10sbj0wLHI9ZS5sZW5ndGg7cj5uO24rKyl7dmFyIHM9ZVtuXSxhPW5ldyBpKHMsdGhpcyk7by5wdXNoKGEpfXJldHVybiBvfSxtLnByb3RvdHlwZS5fZmlsdGVyRmluZEl0ZW1FbGVtZW50cz1mdW5jdGlvbih0KXt0PW8odCk7Zm9yKHZhciBlPXRoaXMub3B0aW9ucy5pdGVtU2VsZWN0b3IsaT1bXSxuPTAscj10Lmxlbmd0aDtyPm47bisrKXt2YXIgcz10W25dO2lmKGMocykpaWYoZSl7bChzLGUpJiZpLnB1c2gocyk7Zm9yKHZhciBhPXMucXVlcnlTZWxlY3RvckFsbChlKSx1PTAscD1hLmxlbmd0aDtwPnU7dSsrKWkucHVzaChhW3VdKX1lbHNlIGkucHVzaChzKX1yZXR1cm4gaX0sbS5wcm90b3R5cGUuZ2V0SXRlbUVsZW1lbnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MCxpPXRoaXMuaXRlbXMubGVuZ3RoO2k+ZTtlKyspdC5wdXNoKHRoaXMuaXRlbXNbZV0uZWxlbWVudCk7cmV0dXJuIHR9LG0ucHJvdG90eXBlLmxheW91dD1mdW5jdGlvbigpe3RoaXMuX3Jlc2V0TGF5b3V0KCksdGhpcy5fbWFuYWdlU3RhbXBzKCk7dmFyIHQ9dm9pZCAwIT09dGhpcy5vcHRpb25zLmlzTGF5b3V0SW5zdGFudD90aGlzLm9wdGlvbnMuaXNMYXlvdXRJbnN0YW50OiF0aGlzLl9pc0xheW91dEluaXRlZDt0aGlzLmxheW91dEl0ZW1zKHRoaXMuaXRlbXMsdCksdGhpcy5faXNMYXlvdXRJbml0ZWQ9ITB9LG0ucHJvdG90eXBlLl9pbml0PW0ucHJvdG90eXBlLmxheW91dCxtLnByb3RvdHlwZS5fcmVzZXRMYXlvdXQ9ZnVuY3Rpb24oKXt0aGlzLmdldFNpemUoKX0sbS5wcm90b3R5cGUuZ2V0U2l6ZT1mdW5jdGlvbigpe3RoaXMuc2l6ZT1kKHRoaXMuZWxlbWVudCl9LG0ucHJvdG90eXBlLl9nZXRNZWFzdXJlbWVudD1mdW5jdGlvbih0LGUpe3ZhciBpLG89dGhpcy5vcHRpb25zW3RdO28/KCJzdHJpbmciPT10eXBlb2Ygbz9pPXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKG8pOmMobykmJihpPW8pLHRoaXNbdF09aT9kKGkpW2VdOm8pOnRoaXNbdF09MH0sbS5wcm90b3R5cGUubGF5b3V0SXRlbXM9ZnVuY3Rpb24odCxlKXt0PXRoaXMuX2dldEl0ZW1zRm9yTGF5b3V0KHQpLHRoaXMuX2xheW91dEl0ZW1zKHQsZSksdGhpcy5fcG9zdExheW91dCgpfSxtLnByb3RvdHlwZS5fZ2V0SXRlbXNGb3JMYXlvdXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLGk9MCxvPXQubGVuZ3RoO28+aTtpKyspe3ZhciBuPXRbaV07bi5pc0lnbm9yZWR8fGUucHVzaChuKX1yZXR1cm4gZX0sbS5wcm90b3R5cGUuX2xheW91dEl0ZW1zPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gaSgpe28uZW1pdEV2ZW50KCJsYXlvdXRDb21wbGV0ZSIsW28sdF0pfXZhciBvPXRoaXM7aWYoIXR8fCF0Lmxlbmd0aClyZXR1cm4gaSgpLHZvaWQgMDt0aGlzLl9pdGVtc09uKHQsImxheW91dCIsaSk7Zm9yKHZhciBuPVtdLHI9MCxzPXQubGVuZ3RoO3M+cjtyKyspe3ZhciBhPXRbcl0sdT10aGlzLl9nZXRJdGVtTGF5b3V0UG9zaXRpb24oYSk7dS5pdGVtPWEsdS5pc0luc3RhbnQ9ZXx8YS5pc0xheW91dEluc3RhbnQsbi5wdXNoKHUpfXRoaXMuX3Byb2Nlc3NMYXlvdXRRdWV1ZShuKX0sbS5wcm90b3R5cGUuX2dldEl0ZW1MYXlvdXRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybnt4OjAseTowfX0sbS5wcm90b3R5cGUuX3Byb2Nlc3NMYXlvdXRRdWV1ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxpPXQubGVuZ3RoO2k+ZTtlKyspe3ZhciBvPXRbZV07dGhpcy5fcG9zaXRpb25JdGVtKG8uaXRlbSxvLngsby55LG8uaXNJbnN0YW50KX19LG0ucHJvdG90eXBlLl9wb3NpdGlvbkl0ZW09ZnVuY3Rpb24odCxlLGksbyl7bz90LmdvVG8oZSxpKTp0Lm1vdmVUbyhlLGkpfSxtLnByb3RvdHlwZS5fcG9zdExheW91dD1mdW5jdGlvbigpe3RoaXMucmVzaXplQ29udGFpbmVyKCl9LG0ucHJvdG90eXBlLnJlc2l6ZUNvbnRhaW5lcj1mdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucy5pc1Jlc2l6aW5nQ29udGFpbmVyKXt2YXIgdD10aGlzLl9nZXRDb250YWluZXJTaXplKCk7dCYmKHRoaXMuX3NldENvbnRhaW5lck1lYXN1cmUodC53aWR0aCwhMCksdGhpcy5fc2V0Q29udGFpbmVyTWVhc3VyZSh0LmhlaWdodCwhMSkpfX0sbS5wcm90b3R5cGUuX2dldENvbnRhaW5lclNpemU9aCxtLnByb3RvdHlwZS5fc2V0Q29udGFpbmVyTWVhc3VyZT1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMCE9PXQpe3ZhciBpPXRoaXMuc2l6ZTtpLmlzQm9yZGVyQm94JiYodCs9ZT9pLnBhZGRpbmdMZWZ0K2kucGFkZGluZ1JpZ2h0K2kuYm9yZGVyTGVmdFdpZHRoK2kuYm9yZGVyUmlnaHRXaWR0aDppLnBhZGRpbmdCb3R0b20raS5wYWRkaW5nVG9wK2kuYm9yZGVyVG9wV2lkdGgraS5ib3JkZXJCb3R0b21XaWR0aCksdD1NYXRoLm1heCh0LDApLHRoaXMuZWxlbWVudC5zdHlsZVtlPyJ3aWR0aCI6ImhlaWdodCJdPXQrInB4In19LG0ucHJvdG90eXBlLl9pdGVtc09uPWZ1bmN0aW9uKHQsZSxpKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG4rKyxuPT09ciYmaS5jYWxsKHMpLCEwfWZvcih2YXIgbj0wLHI9dC5sZW5ndGgscz10aGlzLGE9MCx1PXQubGVuZ3RoO3U+YTthKyspe3ZhciBwPXRbYV07cC5vbihlLG8pfX0sbS5wcm90b3R5cGUuaWdub3JlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0SXRlbSh0KTtlJiYoZS5pc0lnbm9yZWQ9ITApfSxtLnByb3RvdHlwZS51bmlnbm9yZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldEl0ZW0odCk7ZSYmZGVsZXRlIGUuaXNJZ25vcmVkfSxtLnByb3RvdHlwZS5zdGFtcD1mdW5jdGlvbih0KXtpZih0PXRoaXMuX2ZpbmQodCkpe3RoaXMuc3RhbXBzPXRoaXMuc3RhbXBzLmNvbmNhdCh0KTtmb3IodmFyIGU9MCxpPXQubGVuZ3RoO2k+ZTtlKyspe3ZhciBvPXRbZV07dGhpcy5pZ25vcmUobyl9fX0sbS5wcm90b3R5cGUudW5zdGFtcD1mdW5jdGlvbih0KXtpZih0PXRoaXMuX2ZpbmQodCkpZm9yKHZhciBlPTAsaT10Lmxlbmd0aDtpPmU7ZSsrKXt2YXIgbz10W2VdO24obyx0aGlzLnN0YW1wcyksdGhpcy51bmlnbm9yZShvKX19LG0ucHJvdG90eXBlLl9maW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0Pygic3RyaW5nIj09dHlwZW9mIHQmJih0PXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHQpKSx0PW8odCkpOnZvaWQgMH0sbS5wcm90b3R5cGUuX21hbmFnZVN0YW1wcz1mdW5jdGlvbigpe2lmKHRoaXMuc3RhbXBzJiZ0aGlzLnN0YW1wcy5sZW5ndGgpe3RoaXMuX2dldEJvdW5kaW5nUmVjdCgpO2Zvcih2YXIgdD0wLGU9dGhpcy5zdGFtcHMubGVuZ3RoO2U+dDt0Kyspe3ZhciBpPXRoaXMuc3RhbXBzW3RdO3RoaXMuX21hbmFnZVN0YW1wKGkpfX19LG0ucHJvdG90eXBlLl9nZXRCb3VuZGluZ1JlY3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZT10aGlzLnNpemU7dGhpcy5fYm91bmRpbmdSZWN0PXtsZWZ0OnQubGVmdCtlLnBhZGRpbmdMZWZ0K2UuYm9yZGVyTGVmdFdpZHRoLHRvcDp0LnRvcCtlLnBhZGRpbmdUb3ArZS5ib3JkZXJUb3BXaWR0aCxyaWdodDp0LnJpZ2h0LShlLnBhZGRpbmdSaWdodCtlLmJvcmRlclJpZ2h0V2lkdGgpLGJvdHRvbTp0LmJvdHRvbS0oZS5wYWRkaW5nQm90dG9tK2UuYm9yZGVyQm90dG9tV2lkdGgpfX0sbS5wcm90b3R5cGUuX21hbmFnZVN0YW1wPWgsbS5wcm90b3R5cGUuX2dldEVsZW1lbnRPZmZzZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXRoaXMuX2JvdW5kaW5nUmVjdCxvPWQodCksbj17bGVmdDplLmxlZnQtaS5sZWZ0LW8ubWFyZ2luTGVmdCx0b3A6ZS50b3AtaS50b3Atby5tYXJnaW5Ub3AscmlnaHQ6aS5yaWdodC1lLnJpZ2h0LW8ubWFyZ2luUmlnaHQsYm90dG9tOmkuYm90dG9tLWUuYm90dG9tLW8ubWFyZ2luQm90dG9tfTtyZXR1cm4gbn0sbS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9Im9uIit0LnR5cGU7dGhpc1tlXSYmdGhpc1tlXSh0KX0sbS5wcm90b3R5cGUuYmluZFJlc2l6ZT1mdW5jdGlvbigpe3RoaXMuaXNSZXNpemVCb3VuZHx8KGkuYmluZCh0LCJyZXNpemUiLHRoaXMpLHRoaXMuaXNSZXNpemVCb3VuZD0hMCl9LG0ucHJvdG90eXBlLnVuYmluZFJlc2l6ZT1mdW5jdGlvbigpe3RoaXMuaXNSZXNpemVCb3VuZCYmaS51bmJpbmQodCwicmVzaXplIix0aGlzKSx0aGlzLmlzUmVzaXplQm91bmQ9ITF9LG0ucHJvdG90eXBlLm9ucmVzaXplPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe2UucmVzaXplKCksZGVsZXRlIGUucmVzaXplVGltZW91dH10aGlzLnJlc2l6ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVvdXQpO3ZhciBlPXRoaXM7dGhpcy5yZXNpemVUaW1lb3V0PXNldFRpbWVvdXQodCwxMDApfSxtLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt0aGlzLmlzUmVzaXplQm91bmQmJnRoaXMubmVlZHNSZXNpemVMYXlvdXQoKSYmdGhpcy5sYXlvdXQoKX0sbS5wcm90b3R5cGUubmVlZHNSZXNpemVMYXlvdXQ9ZnVuY3Rpb24oKXt2YXIgdD1kKHRoaXMuZWxlbWVudCksZT10aGlzLnNpemUmJnQ7cmV0dXJuIGUmJnQuaW5uZXJXaWR0aCE9PXRoaXMuc2l6ZS5pbm5lcldpZHRofSxtLnByb3RvdHlwZS5hZGRJdGVtcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9pdGVtaXplKHQpO3JldHVybiBlLmxlbmd0aCYmKHRoaXMuaXRlbXM9dGhpcy5pdGVtcy5jb25jYXQoZSkpLGV9LG0ucHJvdG90eXBlLmFwcGVuZGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYWRkSXRlbXModCk7ZS5sZW5ndGgmJih0aGlzLmxheW91dEl0ZW1zKGUsITApLHRoaXMucmV2ZWFsKGUpKX0sbS5wcm90b3R5cGUucHJlcGVuZGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2l0ZW1pemUodCk7aWYoZS5sZW5ndGgpe3ZhciBpPXRoaXMuaXRlbXMuc2xpY2UoMCk7dGhpcy5pdGVtcz1lLmNvbmNhdChpKSx0aGlzLl9yZXNldExheW91dCgpLHRoaXMuX21hbmFnZVN0YW1wcygpLHRoaXMubGF5b3V0SXRlbXMoZSwhMCksdGhpcy5yZXZlYWwoZSksdGhpcy5sYXlvdXRJdGVtcyhpKX19LG0ucHJvdG90eXBlLnJldmVhbD1mdW5jdGlvbih0KXt2YXIgZT10JiZ0Lmxlbmd0aDtpZihlKWZvcih2YXIgaT0wO2U+aTtpKyspe3ZhciBvPXRbaV07by5yZXZlYWwoKX19LG0ucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24odCl7dmFyIGU9dCYmdC5sZW5ndGg7aWYoZSlmb3IodmFyIGk9MDtlPmk7aSsrKXt2YXIgbz10W2ldO28uaGlkZSgpfX0sbS5wcm90b3R5cGUuZ2V0SXRlbT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxpPXRoaXMuaXRlbXMubGVuZ3RoO2k+ZTtlKyspe3ZhciBvPXRoaXMuaXRlbXNbZV07aWYoby5lbGVtZW50PT09dClyZXR1cm4gb319LG0ucHJvdG90eXBlLmdldEl0ZW1zPWZ1bmN0aW9uKHQpe2lmKHQmJnQubGVuZ3RoKXtmb3IodmFyIGU9W10saT0wLG89dC5sZW5ndGg7bz5pO2krKyl7dmFyIG49dFtpXSxyPXRoaXMuZ2V0SXRlbShuKTtyJiZlLnB1c2gocil9cmV0dXJuIGV9fSxtLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dD1vKHQpO3ZhciBlPXRoaXMuZ2V0SXRlbXModCk7aWYoZSYmZS5sZW5ndGgpe3RoaXMuX2l0ZW1zT24oZSwicmVtb3ZlIixmdW5jdGlvbigpe3RoaXMuZW1pdEV2ZW50KCJyZW1vdmVDb21wbGV0ZSIsW3RoaXMsZV0pfSk7Zm9yKHZhciBpPTAscj1lLmxlbmd0aDtyPmk7aSsrKXt2YXIgcz1lW2ldO3MucmVtb3ZlKCksbihzLHRoaXMuaXRlbXMpfX19LG0ucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuc3R5bGU7dC5oZWlnaHQ9IiIsdC5wb3NpdGlvbj0iIix0LndpZHRoPSIiO2Zvcih2YXIgZT0wLGk9dGhpcy5pdGVtcy5sZW5ndGg7aT5lO2UrKyl7dmFyIG89dGhpcy5pdGVtc1tlXTtvLmRlc3Ryb3koKX10aGlzLnVuYmluZFJlc2l6ZSgpLGRlbGV0ZSB0aGlzLmVsZW1lbnQub3V0bGF5ZXJHVUlELHAmJnAucmVtb3ZlRGF0YSh0aGlzLmVsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5uYW1lc3BhY2UpfSxtLmRhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dCYmdC5vdXRsYXllckdVSUQ7cmV0dXJuIGUmJnZbZV19LG0uY3JlYXRlPWZ1bmN0aW9uKHQsaSl7ZnVuY3Rpb24gbygpe20uYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPYmplY3QuY3JlYXRlP28ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobS5wcm90b3R5cGUpOmUoby5wcm90b3R5cGUsbS5wcm90b3R5cGUpLG8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW8sby5kZWZhdWx0cz1lKHt9LG0uZGVmYXVsdHMpLGUoby5kZWZhdWx0cyxpKSxvLnByb3RvdHlwZS5zZXR0aW5ncz17fSxvLm5hbWVzcGFjZT10LG8uZGF0YT1tLmRhdGEsby5JdGVtPWZ1bmN0aW9uKCl7eS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG8uSXRlbS5wcm90b3R5cGU9bmV3IHkscyhmdW5jdGlvbigpe2Zvcih2YXIgZT1yKHQpLGk9YS5xdWVyeVNlbGVjdG9yQWxsKCIuanMtIitlKSxuPSJkYXRhLSIrZSsiLW9wdGlvbnMiLHM9MCxoPWkubGVuZ3RoO2g+cztzKyspe3ZhciBmLGM9aVtzXSxkPWMuZ2V0QXR0cmlidXRlKG4pO3RyeXtmPWQmJkpTT04ucGFyc2UoZCl9Y2F0Y2gobCl7dSYmdS5lcnJvcigiRXJyb3IgcGFyc2luZyAiK24rIiBvbiAiK2Mubm9kZU5hbWUudG9Mb3dlckNhc2UoKSsoYy5pZD8iIyIrYy5pZDoiIikrIjogIitsKTtjb250aW51ZX12YXIgeT1uZXcgbyhjLGYpO3AmJnAuZGF0YShjLHQseSl9fSkscCYmcC5icmlkZ2V0JiZwLmJyaWRnZXQodCxvKSxvfSxtLkl0ZW09eSxtfXZhciBhPXQuZG9jdW1lbnQsdT10LmNvbnNvbGUscD10LmpRdWVyeSxoPWZ1bmN0aW9uKCl7fSxmPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsYz0ib2JqZWN0Ij09dHlwZW9mIEhUTUxFbGVtZW50P2Z1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYib2JqZWN0Ij09dHlwZW9mIHQmJjE9PT10Lm5vZGVUeXBlJiYic3RyaW5nIj09dHlwZW9mIHQubm9kZU5hbWV9LGQ9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5pbmRleE9mKGUpfTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaT0wLG89dC5sZW5ndGg7bz5pO2krKylpZih0W2ldPT09ZSlyZXR1cm4gaTtyZXR1cm4tMX07ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoIm91dGxheWVyL291dGxheWVyIixbImV2ZW50aWUvZXZlbnRpZSIsImRvYy1yZWFkeS9kb2MtcmVhZHkiLCJldmVudEVtaXR0ZXIvRXZlbnRFbWl0dGVyIiwiZ2V0LXNpemUvZ2V0LXNpemUiLCJtYXRjaGVzLXNlbGVjdG9yL21hdGNoZXMtc2VsZWN0b3IiLCIuL2l0ZW0iXSxzKTp0Lk91dGxheWVyPXModC5ldmVudGllLHQuZG9jUmVhZHksdC5FdmVudEVtaXR0ZXIsdC5nZXRTaXplLHQubWF0Y2hlc1NlbGVjdG9yLHQuT3V0bGF5ZXIuSXRlbSl9KHdpbmRvdyksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiBlKCl7dC5JdGVtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZS5wcm90b3R5cGU9bmV3IHQuSXRlbSxlLnByb3RvdHlwZS5fY3JlYXRlPWZ1bmN0aW9uKCl7dGhpcy5pZD10aGlzLmxheW91dC5pdGVtR1VJRCsrLHQuSXRlbS5wcm90b3R5cGUuX2NyZWF0ZS5jYWxsKHRoaXMpLHRoaXMuc29ydERhdGE9e319LGUucHJvdG90eXBlLnVwZGF0ZVNvcnREYXRhPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNJZ25vcmVkKXt0aGlzLnNvcnREYXRhLmlkPXRoaXMuaWQsdGhpcy5zb3J0RGF0YVsib3JpZ2luYWwtb3JkZXIiXT10aGlzLmlkLHRoaXMuc29ydERhdGEucmFuZG9tPU1hdGgucmFuZG9tKCk7dmFyIHQ9dGhpcy5sYXlvdXQub3B0aW9ucy5nZXRTb3J0RGF0YSxlPXRoaXMubGF5b3V0Ll9zb3J0ZXJzO2Zvcih2YXIgaSBpbiB0KXt2YXIgbz1lW2ldO3RoaXMuc29ydERhdGFbaV09byh0aGlzLmVsZW1lbnQsdGhpcyl9fX0sZX0iZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaXNvdG9wZS9qcy9pdGVtIixbIm91dGxheWVyL291dGxheWVyIl0sZSk6KHQuSXNvdG9wZT10Lklzb3RvcGV8fHt9LHQuSXNvdG9wZS5JdGVtPWUodC5PdXRsYXllcikpfSh3aW5kb3cpLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXtmdW5jdGlvbiBpKHQpe3RoaXMuaXNvdG9wZT10LHQmJih0aGlzLm9wdGlvbnM9dC5vcHRpb25zW3RoaXMubmFtZXNwYWNlXSx0aGlzLmVsZW1lbnQ9dC5lbGVtZW50LHRoaXMuaXRlbXM9dC5maWx0ZXJlZEl0ZW1zLHRoaXMuc2l6ZT10LnNpemUpfXJldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMuaXNvdG9wZSxhcmd1bWVudHMpfX1mb3IodmFyIG89WyJfcmVzZXRMYXlvdXQiLCJfZ2V0SXRlbUxheW91dFBvc2l0aW9uIiwiX21hbmFnZVN0YW1wIiwiX2dldENvbnRhaW5lclNpemUiLCJfZ2V0RWxlbWVudE9mZnNldCIsIm5lZWRzUmVzaXplTGF5b3V0Il0sbj0wLHI9by5sZW5ndGg7cj5uO24rKyl7dmFyIHM9b1tuXTtpLnByb3RvdHlwZVtzXT10KHMpfX0oKSxpLnByb3RvdHlwZS5uZWVkc1ZlcnRpY2FsUmVzaXplTGF5b3V0PWZ1bmN0aW9uKCl7dmFyIGU9dCh0aGlzLmlzb3RvcGUuZWxlbWVudCksaT10aGlzLmlzb3RvcGUuc2l6ZSYmZTtyZXR1cm4gaSYmZS5pbm5lckhlaWdodCE9PXRoaXMuaXNvdG9wZS5zaXplLmlubmVySGVpZ2h0fSxpLnByb3RvdHlwZS5fZ2V0TWVhc3VyZW1lbnQ9ZnVuY3Rpb24oKXt0aGlzLmlzb3RvcGUuX2dldE1lYXN1cmVtZW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saS5wcm90b3R5cGUuZ2V0Q29sdW1uV2lkdGg9ZnVuY3Rpb24oKXt0aGlzLmdldFNlZ21lbnRTaXplKCJjb2x1bW4iLCJXaWR0aCIpfSxpLnByb3RvdHlwZS5nZXRSb3dIZWlnaHQ9ZnVuY3Rpb24oKXt0aGlzLmdldFNlZ21lbnRTaXplKCJyb3ciLCJIZWlnaHQiKX0saS5wcm90b3R5cGUuZ2V0U2VnbWVudFNpemU9ZnVuY3Rpb24odCxlKXt2YXIgaT10K2Usbz0ib3V0ZXIiK2U7aWYodGhpcy5fZ2V0TWVhc3VyZW1lbnQoaSxvKSwhdGhpc1tpXSl7dmFyIG49dGhpcy5nZXRGaXJzdEl0ZW1TaXplKCk7dGhpc1tpXT1uJiZuW29dfHx0aGlzLmlzb3RvcGUuc2l6ZVsiaW5uZXIiK2VdfX0saS5wcm90b3R5cGUuZ2V0Rmlyc3RJdGVtU2l6ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuaXNvdG9wZS5maWx0ZXJlZEl0ZW1zWzBdO3JldHVybiBlJiZlLmVsZW1lbnQmJnQoZS5lbGVtZW50KX0saS5wcm90b3R5cGUubGF5b3V0PWZ1bmN0aW9uKCl7dGhpcy5pc290b3BlLmxheW91dC5hcHBseSh0aGlzLmlzb3RvcGUsYXJndW1lbnRzKX0saS5wcm90b3R5cGUuZ2V0U2l6ZT1mdW5jdGlvbigpe3RoaXMuaXNvdG9wZS5nZXRTaXplKCksdGhpcy5zaXplPXRoaXMuaXNvdG9wZS5zaXplfSxpLm1vZGVzPXt9LGkuY3JlYXRlPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbygpe2kuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBvLnByb3RvdHlwZT1uZXcgaSxlJiYoby5vcHRpb25zPWUpLG8ucHJvdG90eXBlLm5hbWVzcGFjZT10LGkubW9kZXNbdF09byxvfSxpfSJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJpc290b3BlL2pzL2xheW91dC1tb2RlIixbImdldC1zaXplL2dldC1zaXplIiwib3V0bGF5ZXIvb3V0bGF5ZXIiXSxlKToodC5Jc290b3BlPXQuSXNvdG9wZXx8e30sdC5Jc290b3BlLkxheW91dE1vZGU9ZSh0LmdldFNpemUsdC5PdXRsYXllcikpfSh3aW5kb3cpLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXt2YXIgbz10LmNyZWF0ZSgibWFzb25yeSIpO3JldHVybiBvLnByb3RvdHlwZS5fcmVzZXRMYXlvdXQ9ZnVuY3Rpb24oKXt0aGlzLmdldFNpemUoKSx0aGlzLl9nZXRNZWFzdXJlbWVudCgiY29sdW1uV2lkdGgiLCJvdXRlcldpZHRoIiksdGhpcy5fZ2V0TWVhc3VyZW1lbnQoImd1dHRlciIsIm91dGVyV2lkdGgiKSx0aGlzLm1lYXN1cmVDb2x1bW5zKCk7dmFyIHQ9dGhpcy5jb2xzO2Zvcih0aGlzLmNvbFlzPVtdO3QtLTspdGhpcy5jb2xZcy5wdXNoKDApO3RoaXMubWF4WT0wfSxvLnByb3RvdHlwZS5tZWFzdXJlQ29sdW1ucz1mdW5jdGlvbigpe2lmKHRoaXMuZ2V0Q29udGFpbmVyV2lkdGgoKSwhdGhpcy5jb2x1bW5XaWR0aCl7dmFyIHQ9dGhpcy5pdGVtc1swXSxpPXQmJnQuZWxlbWVudDt0aGlzLmNvbHVtbldpZHRoPWkmJmUoaSkub3V0ZXJXaWR0aHx8dGhpcy5jb250YWluZXJXaWR0aH10aGlzLmNvbHVtbldpZHRoKz10aGlzLmd1dHRlcix0aGlzLmNvbHM9TWF0aC5mbG9vcigodGhpcy5jb250YWluZXJXaWR0aCt0aGlzLmd1dHRlcikvdGhpcy5jb2x1bW5XaWR0aCksdGhpcy5jb2xzPU1hdGgubWF4KHRoaXMuY29scywxKX0sby5wcm90b3R5cGUuZ2V0Q29udGFpbmVyV2lkdGg9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuaXNGaXRXaWR0aD90aGlzLmVsZW1lbnQucGFyZW50Tm9kZTp0aGlzLmVsZW1lbnQsaT1lKHQpO3RoaXMuY29udGFpbmVyV2lkdGg9aSYmaS5pbm5lcldpZHRofSxvLnByb3RvdHlwZS5fZ2V0SXRlbUxheW91dFBvc2l0aW9uPWZ1bmN0aW9uKHQpe3QuZ2V0U2l6ZSgpO3ZhciBlPXQuc2l6ZS5vdXRlcldpZHRoJXRoaXMuY29sdW1uV2lkdGgsbz1lJiYxPmU/InJvdW5kIjoiY2VpbCIsbj1NYXRoW29dKHQuc2l6ZS5vdXRlcldpZHRoL3RoaXMuY29sdW1uV2lkdGgpO249TWF0aC5taW4obix0aGlzLmNvbHMpO2Zvcih2YXIgcj10aGlzLl9nZXRDb2xHcm91cChuKSxzPU1hdGgubWluLmFwcGx5KE1hdGgsciksYT1pKHIscyksdT17eDp0aGlzLmNvbHVtbldpZHRoKmEseTpzfSxwPXMrdC5zaXplLm91dGVySGVpZ2h0LGg9dGhpcy5jb2xzKzEtci5sZW5ndGgsZj0wO2g+ZjtmKyspdGhpcy5jb2xZc1thK2ZdPXA7cmV0dXJuIHV9LG8ucHJvdG90eXBlLl9nZXRDb2xHcm91cD1mdW5jdGlvbih0KXtpZigyPnQpcmV0dXJuIHRoaXMuY29sWXM7Zm9yKHZhciBlPVtdLGk9dGhpcy5jb2xzKzEtdCxvPTA7aT5vO28rKyl7dmFyIG49dGhpcy5jb2xZcy5zbGljZShvLG8rdCk7ZVtvXT1NYXRoLm1heC5hcHBseShNYXRoLG4pfXJldHVybiBlfSxvLnByb3RvdHlwZS5fbWFuYWdlU3RhbXA9ZnVuY3Rpb24odCl7dmFyIGk9ZSh0KSxvPXRoaXMuX2dldEVsZW1lbnRPZmZzZXQodCksbj10aGlzLm9wdGlvbnMuaXNPcmlnaW5MZWZ0P28ubGVmdDpvLnJpZ2h0LHI9bitpLm91dGVyV2lkdGgscz1NYXRoLmZsb29yKG4vdGhpcy5jb2x1bW5XaWR0aCk7cz1NYXRoLm1heCgwLHMpO3ZhciBhPU1hdGguZmxvb3Ioci90aGlzLmNvbHVtbldpZHRoKTthLT1yJXRoaXMuY29sdW1uV2lkdGg/MDoxLGE9TWF0aC5taW4odGhpcy5jb2xzLTEsYSk7Zm9yKHZhciB1PSh0aGlzLm9wdGlvbnMuaXNPcmlnaW5Ub3A/by50b3A6by5ib3R0b20pK2kub3V0ZXJIZWlnaHQscD1zO2E+PXA7cCsrKXRoaXMuY29sWXNbcF09TWF0aC5tYXgodSx0aGlzLmNvbFlzW3BdKX0sby5wcm90b3R5cGUuX2dldENvbnRhaW5lclNpemU9ZnVuY3Rpb24oKXt0aGlzLm1heFk9TWF0aC5tYXguYXBwbHkoTWF0aCx0aGlzLmNvbFlzKTt2YXIgdD17aGVpZ2h0OnRoaXMubWF4WX07cmV0dXJuIHRoaXMub3B0aW9ucy5pc0ZpdFdpZHRoJiYodC53aWR0aD10aGlzLl9nZXRDb250YWluZXJGaXRXaWR0aCgpKSx0fSxvLnByb3RvdHlwZS5fZ2V0Q29udGFpbmVyRml0V2lkdGg9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPXRoaXMuY29sczstLWUmJjA9PT10aGlzLmNvbFlzW2VdOyl0Kys7cmV0dXJuKHRoaXMuY29scy10KSp0aGlzLmNvbHVtbldpZHRoLXRoaXMuZ3V0dGVyfSxvLnByb3RvdHlwZS5uZWVkc1Jlc2l6ZUxheW91dD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGFpbmVyV2lkdGg7cmV0dXJuIHRoaXMuZ2V0Q29udGFpbmVyV2lkdGgoKSx0IT09dGhpcy5jb250YWluZXJXaWR0aH0sb312YXIgaT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbih0LGUpe3JldHVybiB0LmluZGV4T2YoZSl9OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpPTAsbz10Lmxlbmd0aDtvPmk7aSsrKXt2YXIgbj10W2ldO2lmKG49PT1lKXJldHVybiBpfXJldHVybi0xfTsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgibWFzb25yeS9tYXNvbnJ5IixbIm91dGxheWVyL291dGxheWVyIiwiZ2V0LXNpemUvZ2V0LXNpemUiXSxlKTp0Lk1hc29ucnk9ZSh0Lk91dGxheWVyLHQuZ2V0U2l6ZSl9KHdpbmRvdyksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe2Zvcih2YXIgaSBpbiBlKXRbaV09ZVtpXTtyZXR1cm4gdH1mdW5jdGlvbiBpKHQsaSl7dmFyIG89dC5jcmVhdGUoIm1hc29ucnkiKSxuPW8ucHJvdG90eXBlLl9nZXRFbGVtZW50T2Zmc2V0LHI9by5wcm90b3R5cGUubGF5b3V0LHM9by5wcm90b3R5cGUuX2dldE1lYXN1cmVtZW50O2Uoby5wcm90b3R5cGUsaS5wcm90b3R5cGUpLG8ucHJvdG90eXBlLl9nZXRFbGVtZW50T2Zmc2V0PW4sby5wcm90b3R5cGUubGF5b3V0PXIsby5wcm90b3R5cGUuX2dldE1lYXN1cmVtZW50PXM7dmFyIGE9by5wcm90b3R5cGUubWVhc3VyZUNvbHVtbnM7by5wcm90b3R5cGUubWVhc3VyZUNvbHVtbnM9ZnVuY3Rpb24oKXt0aGlzLml0ZW1zPXRoaXMuaXNvdG9wZS5maWx0ZXJlZEl0ZW1zLGEuY2FsbCh0aGlzKX07dmFyIHU9by5wcm90b3R5cGUuX21hbmFnZVN0YW1wO3JldHVybiBvLnByb3RvdHlwZS5fbWFuYWdlU3RhbXA9ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuaXNPcmlnaW5MZWZ0PXRoaXMuaXNvdG9wZS5vcHRpb25zLmlzT3JpZ2luTGVmdCx0aGlzLm9wdGlvbnMuaXNPcmlnaW5Ub3A9dGhpcy5pc290b3BlLm9wdGlvbnMuaXNPcmlnaW5Ub3AsdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG99ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImlzb3RvcGUvanMvbGF5b3V0LW1vZGVzL21hc29ucnkiLFsiLi4vbGF5b3V0LW1vZGUiLCJtYXNvbnJ5L21hc29ucnkiXSxpKTppKHQuSXNvdG9wZS5MYXlvdXRNb2RlLHQuTWFzb25yeSl9KHdpbmRvdyksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt2YXIgZT10LmNyZWF0ZSgiZml0Um93cyIpO3JldHVybiBlLnByb3RvdHlwZS5fcmVzZXRMYXlvdXQ9ZnVuY3Rpb24oKXt0aGlzLng9MCx0aGlzLnk9MCx0aGlzLm1heFk9MH0sZS5wcm90b3R5cGUuX2dldEl0ZW1MYXlvdXRQb3NpdGlvbj1mdW5jdGlvbih0KXt0LmdldFNpemUoKSwwIT09dGhpcy54JiZ0LnNpemUub3V0ZXJXaWR0aCt0aGlzLng+dGhpcy5pc290b3BlLnNpemUuaW5uZXJXaWR0aCYmKHRoaXMueD0wLHRoaXMueT10aGlzLm1heFkpO3ZhciBlPXt4OnRoaXMueCx5OnRoaXMueX07cmV0dXJuIHRoaXMubWF4WT1NYXRoLm1heCh0aGlzLm1heFksdGhpcy55K3Quc2l6ZS5vdXRlckhlaWdodCksdGhpcy54Kz10LnNpemUub3V0ZXJXaWR0aCxlfSxlLnByb3RvdHlwZS5fZ2V0Q29udGFpbmVyU2l6ZT1mdW5jdGlvbigpe3JldHVybntoZWlnaHQ6dGhpcy5tYXhZfX0sZX0iZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaXNvdG9wZS9qcy9sYXlvdXQtbW9kZXMvZml0LXJvd3MiLFsiLi4vbGF5b3V0LW1vZGUiXSxlKTplKHQuSXNvdG9wZS5MYXlvdXRNb2RlKX0od2luZG93KSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlPXQuY3JlYXRlKCJ2ZXJ0aWNhbCIse2hvcml6b250YWxBbGlnbm1lbnQ6MH0pO3JldHVybiBlLnByb3RvdHlwZS5fcmVzZXRMYXlvdXQ9ZnVuY3Rpb24oKXt0aGlzLnk9MH0sZS5wcm90b3R5cGUuX2dldEl0ZW1MYXlvdXRQb3NpdGlvbj1mdW5jdGlvbih0KXt0LmdldFNpemUoKTt2YXIgZT0odGhpcy5pc290b3BlLnNpemUuaW5uZXJXaWR0aC10LnNpemUub3V0ZXJXaWR0aCkqdGhpcy5vcHRpb25zLmhvcml6b250YWxBbGlnbm1lbnQsaT10aGlzLnk7cmV0dXJuIHRoaXMueSs9dC5zaXplLm91dGVySGVpZ2h0LHt4OmUseTppfX0sZS5wcm90b3R5cGUuX2dldENvbnRhaW5lclNpemU9ZnVuY3Rpb24oKXtyZXR1cm57aGVpZ2h0OnRoaXMueX19LGV9ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImlzb3RvcGUvanMvbGF5b3V0LW1vZGVzL3ZlcnRpY2FsIixbIi4uL2xheW91dC1tb2RlIl0sZSk6ZSh0Lklzb3RvcGUuTGF5b3V0TW9kZSl9KHdpbmRvdyksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe2Zvcih2YXIgaSBpbiBlKXRbaV09ZVtpXTtyZXR1cm4gdH1mdW5jdGlvbiBpKHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1oLmNhbGwodCl9ZnVuY3Rpb24gbyh0KXt2YXIgZT1bXTtpZihpKHQpKWU9dDtlbHNlIGlmKHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpZm9yKHZhciBvPTAsbj10Lmxlbmd0aDtuPm87bysrKWUucHVzaCh0W29dKTtlbHNlIGUucHVzaCh0KTtyZXR1cm4gZX1mdW5jdGlvbiBuKHQsZSl7dmFyIGk9ZihlLHQpOy0xIT09aSYmZS5zcGxpY2UoaSwxKX1mdW5jdGlvbiByKHQsaSxyLHUsaCl7ZnVuY3Rpb24gZih0LGUpe3JldHVybiBmdW5jdGlvbihpLG8pe2Zvcih2YXIgbj0wLHI9dC5sZW5ndGg7cj5uO24rKyl7dmFyIHM9dFtuXSxhPWkuc29ydERhdGFbc10sdT1vLnNvcnREYXRhW3NdO2lmKGE+dXx8dT5hKXt2YXIgcD12b2lkIDAhPT1lW3NdP2Vbc106ZSxoPXA/MTotMTtyZXR1cm4oYT51PzE6LTEpKmh9fXJldHVybiAwfX12YXIgYz10LmNyZWF0ZSgiaXNvdG9wZSIse2xheW91dE1vZGU6Im1hc29ucnkiLGlzSlF1ZXJ5RmlsdGVyaW5nOiEwLHNvcnRBc2NlbmRpbmc6ITB9KTtjLkl0ZW09dSxjLkxheW91dE1vZGU9aCxjLnByb3RvdHlwZS5fY3JlYXRlPWZ1bmN0aW9uKCl7dGhpcy5pdGVtR1VJRD0wLHRoaXMuX3NvcnRlcnM9e30sdGhpcy5fZ2V0U29ydGVycygpLHQucHJvdG90eXBlLl9jcmVhdGUuY2FsbCh0aGlzKSx0aGlzLm1vZGVzPXt9LHRoaXMuZmlsdGVyZWRJdGVtcz10aGlzLml0ZW1zLHRoaXMuc29ydEhpc3Rvcnk9WyJvcmlnaW5hbC1vcmRlciJdO2Zvcih2YXIgZSBpbiBoLm1vZGVzKXRoaXMuX2luaXRMYXlvdXRNb2RlKGUpfSxjLnByb3RvdHlwZS5yZWxvYWRJdGVtcz1mdW5jdGlvbigpe3RoaXMuaXRlbUdVSUQ9MCx0LnByb3RvdHlwZS5yZWxvYWRJdGVtcy5jYWxsKHRoaXMpfSxjLnByb3RvdHlwZS5faXRlbWl6ZT1mdW5jdGlvbigpe2Zvcih2YXIgZT10LnByb3RvdHlwZS5faXRlbWl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaT0wLG89ZS5sZW5ndGg7bz5pO2krKyl7dmFyIG49ZVtpXTtuLmlkPXRoaXMuaXRlbUdVSUQrK31yZXR1cm4gdGhpcy5fdXBkYXRlSXRlbXNTb3J0RGF0YShlKSxlfSxjLnByb3RvdHlwZS5faW5pdExheW91dE1vZGU9ZnVuY3Rpb24odCl7dmFyIGk9aC5tb2Rlc1t0XSxvPXRoaXMub3B0aW9uc1t0XXx8e307dGhpcy5vcHRpb25zW3RdPWkub3B0aW9ucz9lKGkub3B0aW9ucyxvKTpvLHRoaXMubW9kZXNbdF09bmV3IGkodGhpcyl9LGMucHJvdG90eXBlLmxheW91dD1mdW5jdGlvbigpe3JldHVybiF0aGlzLl9pc0xheW91dEluaXRlZCYmdGhpcy5vcHRpb25zLmlzSW5pdExheW91dD8odGhpcy5hcnJhbmdlKCksdm9pZCAwKToodGhpcy5fbGF5b3V0KCksdm9pZCAwKX0sYy5wcm90b3R5cGUuX2xheW91dD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldElzSW5zdGFudCgpO3RoaXMuX3Jlc2V0TGF5b3V0KCksdGhpcy5fbWFuYWdlU3RhbXBzKCksdGhpcy5sYXlvdXRJdGVtcyh0aGlzLmZpbHRlcmVkSXRlbXMsdCksdGhpcy5faXNMYXlvdXRJbml0ZWQ9ITB9LGMucHJvdG90eXBlLmFycmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5vcHRpb24odCksdGhpcy5fZ2V0SXNJbnN0YW50KCksdGhpcy5maWx0ZXJlZEl0ZW1zPXRoaXMuX2ZpbHRlcih0aGlzLml0ZW1zKSx0aGlzLl9zb3J0KCksdGhpcy5fbGF5b3V0KCl9LGMucHJvdG90eXBlLl9pbml0PWMucHJvdG90eXBlLmFycmFuZ2UsYy5wcm90b3R5cGUuX2dldElzSW5zdGFudD1mdW5jdGlvbigpe3ZhciB0PXZvaWQgMCE9PXRoaXMub3B0aW9ucy5pc0xheW91dEluc3RhbnQ/dGhpcy5vcHRpb25zLmlzTGF5b3V0SW5zdGFudDohdGhpcy5faXNMYXlvdXRJbml0ZWQ7cmV0dXJuIHRoaXMuX2lzSW5zdGFudD10LHR9LGMucHJvdG90eXBlLl9maWx0ZXI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe2YucmV2ZWFsKG4pLGYuaGlkZShyKX12YXIgaT10aGlzLm9wdGlvbnMuZmlsdGVyO2k9aXx8IioiO2Zvcih2YXIgbz1bXSxuPVtdLHI9W10scz10aGlzLl9nZXRGaWx0ZXJUZXN0KGkpLGE9MCx1PXQubGVuZ3RoO3U+YTthKyspe3ZhciBwPXRbYV07aWYoIXAuaXNJZ25vcmVkKXt2YXIgaD1zKHApO2gmJm8ucHVzaChwKSxoJiZwLmlzSGlkZGVuP24ucHVzaChwKTpofHxwLmlzSGlkZGVufHxyLnB1c2gocCl9fXZhciBmPXRoaXM7cmV0dXJuIHRoaXMuX2lzSW5zdGFudD90aGlzLl9ub1RyYW5zaXRpb24oZSk6ZSgpLG99LGMucHJvdG90eXBlLl9nZXRGaWx0ZXJUZXN0PWZ1bmN0aW9uKHQpe3JldHVybiBzJiZ0aGlzLm9wdGlvbnMuaXNKUXVlcnlGaWx0ZXJpbmc/ZnVuY3Rpb24oZSl7cmV0dXJuIHMoZS5lbGVtZW50KS5pcyh0KX06ImZ1bmN0aW9uIj09dHlwZW9mIHQ/ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZS5lbGVtZW50KX06ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZS5lbGVtZW50LHQpfX0sYy5wcm90b3R5cGUudXBkYXRlU29ydERhdGE9ZnVuY3Rpb24odCl7dGhpcy5fZ2V0U29ydGVycygpLHQ9byh0KTt2YXIgZT10aGlzLmdldEl0ZW1zKHQpO2U9ZS5sZW5ndGg/ZTp0aGlzLml0ZW1zLHRoaXMuX3VwZGF0ZUl0ZW1zU29ydERhdGEoZSkNCn0sYy5wcm90b3R5cGUuX2dldFNvcnRlcnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuZ2V0U29ydERhdGE7Zm9yKHZhciBlIGluIHQpe3ZhciBpPXRbZV07dGhpcy5fc29ydGVyc1tlXT1kKGkpfX0sYy5wcm90b3R5cGUuX3VwZGF0ZUl0ZW1zU29ydERhdGE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsaT10Lmxlbmd0aDtpPmU7ZSsrKXt2YXIgbz10W2VdO28udXBkYXRlU29ydERhdGEoKX19O3ZhciBkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtpZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIHQ7dmFyIGk9YSh0KS5zcGxpdCgiICIpLG89aVswXSxuPW8ubWF0Y2goL15cWyguKylcXSQvKSxyPW4mJm5bMV0scz1lKHIsbyksdT1jLnNvcnREYXRhUGFyc2Vyc1tpWzFdXTtyZXR1cm4gdD11P2Z1bmN0aW9uKHQpe3JldHVybiB0JiZ1KHModCkpfTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmcyh0KX19ZnVuY3Rpb24gZSh0LGUpe3ZhciBpO3JldHVybiBpPXQ/ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKHQpfTpmdW5jdGlvbih0KXt2YXIgaT10LnF1ZXJ5U2VsZWN0b3IoZSk7cmV0dXJuIGkmJnAoaSl9fXJldHVybiB0fSgpO2Muc29ydERhdGFQYXJzZXJzPXtwYXJzZUludDpmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodCwxMCl9LHBhcnNlRmxvYXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlRmxvYXQodCl9fSxjLnByb3RvdHlwZS5fc29ydD1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5zb3J0Qnk7aWYodCl7dmFyIGU9W10uY29uY2F0LmFwcGx5KHQsdGhpcy5zb3J0SGlzdG9yeSksaT1mKGUsdGhpcy5vcHRpb25zLnNvcnRBc2NlbmRpbmcpO3RoaXMuZmlsdGVyZWRJdGVtcy5zb3J0KGkpLHQhPT10aGlzLnNvcnRIaXN0b3J5WzBdJiZ0aGlzLnNvcnRIaXN0b3J5LnVuc2hpZnQodCl9fSxjLnByb3RvdHlwZS5fbW9kZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5sYXlvdXRNb2RlLGU9dGhpcy5tb2Rlc1t0XTtpZighZSl0aHJvdyBFcnJvcigiTm8gbGF5b3V0IG1vZGU6ICIrdCk7cmV0dXJuIGUub3B0aW9ucz10aGlzLm9wdGlvbnNbdF0sZX0sYy5wcm90b3R5cGUuX3Jlc2V0TGF5b3V0PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3Jlc2V0TGF5b3V0LmNhbGwodGhpcyksdGhpcy5fbW9kZSgpLl9yZXNldExheW91dCgpfSxjLnByb3RvdHlwZS5fZ2V0SXRlbUxheW91dFBvc2l0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tb2RlKCkuX2dldEl0ZW1MYXlvdXRQb3NpdGlvbih0KX0sYy5wcm90b3R5cGUuX21hbmFnZVN0YW1wPWZ1bmN0aW9uKHQpe3RoaXMuX21vZGUoKS5fbWFuYWdlU3RhbXAodCl9LGMucHJvdG90eXBlLl9nZXRDb250YWluZXJTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vZGUoKS5fZ2V0Q29udGFpbmVyU2l6ZSgpfSxjLnByb3RvdHlwZS5uZWVkc1Jlc2l6ZUxheW91dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb2RlKCkubmVlZHNSZXNpemVMYXlvdXQoKX0sYy5wcm90b3R5cGUuYXBwZW5kZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5hZGRJdGVtcyh0KTtpZihlLmxlbmd0aCl7dmFyIGk9dGhpcy5fZmlsdGVyUmV2ZWFsQWRkZWQoZSk7dGhpcy5maWx0ZXJlZEl0ZW1zPXRoaXMuZmlsdGVyZWRJdGVtcy5jb25jYXQoaSl9fSxjLnByb3RvdHlwZS5wcmVwZW5kZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5faXRlbWl6ZSh0KTtpZihlLmxlbmd0aCl7dmFyIGk9dGhpcy5pdGVtcy5zbGljZSgwKTt0aGlzLml0ZW1zPWUuY29uY2F0KGkpLHRoaXMuX3Jlc2V0TGF5b3V0KCksdGhpcy5fbWFuYWdlU3RhbXBzKCk7dmFyIG89dGhpcy5fZmlsdGVyUmV2ZWFsQWRkZWQoZSk7dGhpcy5sYXlvdXRJdGVtcyhpKSx0aGlzLmZpbHRlcmVkSXRlbXM9by5jb25jYXQodGhpcy5maWx0ZXJlZEl0ZW1zKX19LGMucHJvdG90eXBlLl9maWx0ZXJSZXZlYWxBZGRlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9ub1RyYW5zaXRpb24oZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZmlsdGVyKHQpfSk7cmV0dXJuIHRoaXMubGF5b3V0SXRlbXMoZSwhMCksdGhpcy5yZXZlYWwoZSksdH0sYy5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYWRkSXRlbXModCk7aWYoZS5sZW5ndGgpe3ZhciBpLG8sbj1lLmxlbmd0aDtmb3IoaT0wO24+aTtpKyspbz1lW2ldLHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChvLmVsZW1lbnQpO3ZhciByPXRoaXMuX2ZpbHRlcihlKTtmb3IodGhpcy5fbm9UcmFuc2l0aW9uKGZ1bmN0aW9uKCl7dGhpcy5oaWRlKHIpfSksaT0wO24+aTtpKyspZVtpXS5pc0xheW91dEluc3RhbnQ9ITA7Zm9yKHRoaXMuYXJyYW5nZSgpLGk9MDtuPmk7aSsrKWRlbGV0ZSBlW2ldLmlzTGF5b3V0SW5zdGFudDt0aGlzLnJldmVhbChyKX19O3ZhciBsPWMucHJvdG90eXBlLnJlbW92ZTtyZXR1cm4gYy5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3Q9byh0KTt2YXIgZT10aGlzLmdldEl0ZW1zKHQpO2lmKGwuY2FsbCh0aGlzLHQpLGUmJmUubGVuZ3RoKWZvcih2YXIgaT0wLHI9ZS5sZW5ndGg7cj5pO2krKyl7dmFyIHM9ZVtpXTtuKHMsdGhpcy5maWx0ZXJlZEl0ZW1zKX19LGMucHJvdG90eXBlLl9ub1RyYW5zaXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcHRpb25zLnRyYW5zaXRpb25EdXJhdGlvbjt0aGlzLm9wdGlvbnMudHJhbnNpdGlvbkR1cmF0aW9uPTA7dmFyIGk9dC5jYWxsKHRoaXMpO3JldHVybiB0aGlzLm9wdGlvbnMudHJhbnNpdGlvbkR1cmF0aW9uPWUsaX0sY312YXIgcz10LmpRdWVyeSxhPVN0cmluZy5wcm90b3R5cGUudHJpbT9mdW5jdGlvbih0KXtyZXR1cm4gdC50cmltKCl9OmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sdT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscD11LnRleHRDb250ZW50P2Z1bmN0aW9uKHQpe3JldHVybiB0LnRleHRDb250ZW50fTpmdW5jdGlvbih0KXtyZXR1cm4gdC5pbm5lclRleHR9LGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxmPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaW5kZXhPZihlKX06ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9MCxvPXQubGVuZ3RoO28+aTtpKyspaWYodFtpXT09PWUpcmV0dXJuIGk7cmV0dXJuLTF9OyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsib3V0bGF5ZXIvb3V0bGF5ZXIiLCJnZXQtc2l6ZS9nZXQtc2l6ZSIsIm1hdGNoZXMtc2VsZWN0b3IvbWF0Y2hlcy1zZWxlY3RvciIsImlzb3RvcGUvanMvaXRlbSIsImlzb3RvcGUvanMvbGF5b3V0LW1vZGUiLCJpc290b3BlL2pzL2xheW91dC1tb2Rlcy9tYXNvbnJ5IiwiaXNvdG9wZS9qcy9sYXlvdXQtbW9kZXMvZml0LXJvd3MiLCJpc290b3BlL2pzL2xheW91dC1tb2Rlcy92ZXJ0aWNhbCJdLHIpOnQuSXNvdG9wZT1yKHQuT3V0bGF5ZXIsdC5nZXRTaXplLHQubWF0Y2hlc1NlbGVjdG9yLHQuSXNvdG9wZS5JdGVtLHQuSXNvdG9wZS5MYXlvdXRNb2RlKX0od2luZG93KTsNCg=="}},"time_used":53,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":36,"receive":17,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/logoo.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.375Z","timestamp":1785132838375,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/logoo.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Thu, 28 Nov 2024 07:38:56 GMT\r\naccept-ranges: bytes\r\ncontent-length: 26650\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":26650,"size_decoded":26916,"mime_type":"image/png","magic":"PNG image data, 607 x 155, 8-bit/color RGBA, non-interlaced","md5":"cfd0e4fc40904b823b5b34c377c8ebb8","sha1":"b416bb1e86948dc8ce0d254f92430f119f2e6bdc","sha256":"7b865e760f615fda0e6483021ff66cf19629eeb4fc6c8758df2dcbadd36136eb","sha512":"b56b8d11a58f72db6e37a4c97340db752b47b6322a5843c3c9c2c2d7ecf0dce584e776fa0d1a396afa585930c2f12d750b897ed5773cff848f635095f02093aa","ssdeep":"768:z/il9y1FkxY6GqIbI2lOTPjkyUzRMz8Yc9:z6l9y1Fkm6QxgT7AlYO","tlshash":"a6c2e084e497182acb67de3c471f2357cb2161205bad472c9e27f1b9604b5f007ee67a","first_seen":"2025-08-12T04:19:48.03875Z","last_seen":"2026-07-27T06:14:42.689469Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":66,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":40,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/about-us.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.382Z","timestamp":1785132838382,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/about-us.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Thu, 28 Nov 2024 07:42:52 GMT\r\naccept-ranges: bytes\r\ncontent-length: 21338\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":21338,"size_decoded":21604,"mime_type":"image/png","magic":"RIFF (little-endian) data, Web/P image","md5":"b55b5ebb23999d98ed558c389d623752","sha1":"f8b16f273105a5face4faf879b351dd302005cf4","sha256":"ee2a813c222a6156d5c606506eb78877ee9a02a8e5fe93a509a451fba55a0f48","sha512":"411896042add0435b5b7bca16172f1b44cdcbedca50c8de08d6e8d1c3da7010bd005adaac111d3f3685fcf2f3ef6f261e8425b958de60168594814388516886f","ssdeep":"384:0wc4mA0NRuM0qfbZE4RNKYOCOBmB3sRHds7F/dVCsXrWbhNsh:0wFmA0Nv0qfyYNK3COBmB3sR9szXXAq","tlshash":"47a2d194ffaa1f87c164f1d87860454351c62bc99afd705b123e84817bfe82ec267b42","first_seen":"2025-08-12T04:19:48.024784Z","last_seen":"2026-07-27T06:14:42.690378Z","times_seen":3,"resource_available":false,"data":"UklGRlJTAABXRUJQVlA4WAoAAAAIAAAAWwMAPQIAVlA4IHJSAAAQHgKdASpcAz4CPm02l0ikIyUmIvKJ8MANiWdu0bC8A1J/OurPXY0XtpmF8x9KNc0+qiv3Pneqj+/bzPnUNPc6KP0osjEmpN78UOTlFN8Y863ez+veJTkd4Wh/d7l6c+YX+J9Rbyjv+Xz9IsollGQLlBQLZl8OkHPProorI6U26KnKjobksaHuu8OIvf8CYkyDJwmce3hM5WuJF7DaDOnResJnoUaq96rQT96cJcQNKxtfRM73QNds5ICsxQAexK8a91+EwN4o8IN87Hca7JwAUg9ScJZ0mSLhMQK6TxcMbpvdDLaLEbBolCSU9+qFuFc6YIghbwvG4dKVL8yKUZxZJ46sJzovWEsizG/koocrVB5lOBwpDpr0KWPUIdZ0ByCHJlCtjUhEuY4qfMxsnQnR0P8hWosVFYpQLnvjaaV2HoG1wDjc/W05BzhKTHW1HLxtDK0KZTsFna3i8+0iUBM24XResNPOEuFpKdjWE+abdMwgmPDU8xDzkKZc8li81g/ydimIqWFjGWddCYUaST650XtS1pJONcozxmXKvX7dUskKPvCz20sl5zPq1bVpWaA1S8pPQrFW+hH04bhLoVfz2ebuUg8n5JxRpYMk6CT2MA78GE4gqg8yFhkAnmKZEiSMaYb27t2iC3gMOhEdnfVAAkZk2F3bUSuU3WtBYyhQXCfkqRK/BjKruu3yue8MasQOcWIG1WaJw7JRG+19RvdDpyaeRDOQf3tKh0fE0mOWG/s1LYpx4wo0lFDyfkx+48n5RK5/1dgb9PhnjrFau27UkQtWMhZW4PKrjWbR1aT6PQG5RDlPo4dX3RA13eoMmD3j6v//wlnSBoPCeoPlpxZ9auOgoQpq5IWxZjPGVbozM1VnQka1h3oXUApzb7Vsg/LYQqzKfsknGwVYA/5BU86vRrcoqp/j+o9pLnResHiXXrVM5z3KDPq+E9dQSp6PQIDwRM26zfUbBYKTGEaaeWdCAgV145/wXc7bqAgdWK7ff/bflTXWuePPnbxRp8eFAjuVbUQALF3m/ClC6aksVVnGKPILjVlJHBpUx8fbFo9UlsQ6LS/L9/2YhM5TSP69LriLscMSjmjYqz7S7lLZN0kpr8lGLJbtiMDeVUShAop+F+XT03Aw/JJwfVuMrAuJJ+oOLZWMH5us0Si93oy3Um9Ut2NlcLzm6oGIWPDIMQDERhOf2c7jrVYkfsfHfqouESdaKClBmwzGOP+hw9PJ96M/G5Jn4ySzovSgfk2MjmxPJpquH4d/FfAKlU33W+mn/gVZsVxw55MUM0o3IYx0j8PA1FYmYYOfaFJpjatBnlbwJga6AR2IJDUshYGljbQPebJPlJWdp+vcSvUIOynBIUEBGJC9YS11Y6kJZbDib3+to60ukANXiD8IK3fUWBn3uZ8ynFepR/7GxHtUN+kj/z/Qby9bI9G6N2RiIH5VSK3c0VcpY5mPOTXWrjVg2CJ9jFgPOkR/LdZiFheP/fhNrTlpUEiy3/ZtFV6a7EShEGugZNKqe2TeTxuAGytbUWzIbTmqy/Sc6LCux3vblIGxqKQzPF7+DGYXRAphIWGsmfHPGnEvgBbFtj4A3dHyQZWLfljMbbzQNbia9OlXb1itWqth7ipAHSShqlIZredpU7tVwqBTDj7SLRj4xIarorI8knYW1qciTxIwFVxymI9P+0MweHwOtcOPwDJWTBRaKFRmQnhGR/nSPVibzaydb+zr4uGlpt+lqKo9AMsZLLx5WCPaf6S2c+vt2EogPgEwjFjsWOI7ovSska3Bfy5s9WoH616CsGJbt5uCBLyVvCtmbP/smFOMDBoo8AYM5IDVEzxDXwWW/cAvV1RehwareNmlm/+Ut2uUSsdGd39kn4azjl6Yg/rLeu3IdchhtzOkrP2X1i9DSkWc50Amtxdz4DBxhmNrOuXylzH8wQjO8gmVMD/O90KnWPQ5uXEN5CmJPoq1G3LfZMipP+j1yZ26L66idaG+Xg/yGrDhfRdXdIkpE4gQcjYjjP+CTRwm4+7gL8k4oVRC/hPaVQgv3AuNj3E0JszsUUUCqvHypUDwT21ZVc7cV2bV2f10B6v+rDnqFfjaYaMoiKuMMstQYn4jDLqaztAvHZJcDHqeSR3qdamFcCZIeHg5XgEOvfGc+N7Su7R6IQBW5bqOCUXqRUoER8tMTOXi4ElLmDFU8vfDzMnfHRd04m69wB7Pop1BLgYR/oOjGrJ5v/KLKBfhTJ/sY5wlJo2+blHDcWXXJ0KV1NrtQ4fIYENz9c6U0xn0135YXqeshcEdI4DYv7FZsylL9NmND9X4acJ7rhfl0lykhixMMqCstxEE73H8s/0wxAedPpE0gTuY9dqRLWcK8LLQplF2YpBemsoStIb50tZJOrA4cQlxaPRDbACQcvVwvq1Jf7JMIAC6Zu0ihUJ/FZTVbzFReoD8T47yuKrDUENdTecoHk3QUj1gpSIaGS3ewtkIPDkDodPa02nvpQvp5A5b5aoLG/+NjD7o0S8djcHyC9+kYbk2LLcq/Czywsa7KW3nZxDoz3YTUxMHVO0/Z4HRo+mUCGVvcVAsH9pmrv1SZkUiaAkFLELnbypuZSxpQN6RdAkH3I9hlWsvkACFwh1Ue+SaVQT6J8I3Jtb+qoMHs1LhBUaNo7Kg7Is1ZWBOAlh11qEFvLnKbj1pM0zepgvMWi9PYo0y+4KKkp/o2IXWyeuV2O32PlsaydPufVn+SyX5wWxAjX7MsHKWOQuzcHP1AsN0JD/+zrOviBbOCCMJ4LnPX9kD/roGDiCe5QC9p2s+QtmDzwjre1AC63mpWXtEj/UYfQoFL4TaktbUEcEVvxr2POjKkR8VBwJjteyzYjPdvkh2Eir65MxLgKETFn4jgNrg9XE8NuSctLspJQcRwjFxgDTry8+uyT91nqsqEMVv9pGDhbx7N6dEi/aBjIJF4NkSpcVgle+tLNudd7qeqSVGQk/yFXx8me0bT5LBkqFPkOU4yPEcpFJizEiO7Ivz0zZrg6Ewjnka1PCrskCmNdnBrHaO6OyPKiMosBRMfPrh5ILeUxvYgSrxR+qUPi2u8tYULT7NrbYRblVXpgsRiTY1fnC5eqvn0xC1Bqdro7j4IyFbrGf498VX4U52v7FSrI9JeN9t7wzZS9hkrEs9hyMvKcdJ4YnvlXgjbprxnV4PyctjuktHIsiu0r9+/dCgTlOE00+Ka+lTVK3i3ifF0/mv85xdwJXtLyZLoxlQDyV5RqMqrX+Lut2QXAjwlw2HfRSjVxi5B+FAeFrweZVJIjp7z5qOLUcT4/hZaeLjxeGBB8TIwYCGrvj4bn2UJiWJPjATyjzWWZ4LUYkzwoqwCMqKzED3yWsjQM+ruw4zFQ46wcIYL96Ka2xlyPGnO7/TCk83nGS2R82BhIm2I/BTEStzHGhtcicxNOtU7OJwnH6VdzXvqJMhQV4dWOnCeBLPQeicbT1bHszZXQbpk7UtHfYAXD0weNtWCkSmwOlgynEzgpwOhaOyi2DrK3eHMMX9T6hZMDZECYzhQnWiVW52LzIARKVo7zPi3g4rR8ayZHO9g5OA+HuKnQmW5fAjRyWUeDcWofT6szc3h4nK+GYaz0qa0hvnpDtutW8SkuTPcDaRnA8ECKxU9MNdlbrczYz0hiHnIYRGfAOGdgdIDV/xZmPA1UsbftZ6CBh3XbnPffPbvfXy1+1S9pDmxV1HSEknyM5wvCrU2SVcPeRDxn6POvZHadkBlENdHVbpPXDGJvnljU5DBa6vJGKNAhEsJ/EWHhCV7XwDemxz8K4lO3dWXOoKipYAjfCW3RugIfVGxZ6QhZYx+HAISKdsOeVa5OV9WQZ4rfBfX3FdH2onmaa59jWhM+Yq1VNv7cX1vRS1ylu48MF2wlbdr1DrG8Q6rBM/gR7l98bP9VP5FdhkT3BIFoA+trA+fJ1noS1ADu7fMpDrrBwqjqCUzKYAybYRjplO4lGw7bVknjcNe2Yi2sdQAxoZBCFzkWFIDqWZe7pIjHCDq4iWYSPl5jQDBRu/XA+pk9xvWvjiORUrsaFdTj3lME/AcbTZIOV9GtLQGux1MeBQvNr75SwCgGsZm9YLYIxWwKtnBVZhK40An1qVHm6625W0dXH2Hpte3jsjZEdkZZlh0JWAP26kYABS4HKilkF7yCzKUqv/RDpRqQ4K7mwW/qdZ/wFv2VLBx69Dv1aW3lGCpMdJyL2X2+R+g2YRemRQtFg3JlQ+RpB+5Co3hzb8aYeDN+h9DOyrjjqWytp5fuyKv9BwasDcKZHhkzLWQggvedcRvgPeBzZuNKu+yAUJxA4i4aT9/ZwyxaHyeSWe1z5c3VlVv7YlOk5Bx3/B1k7dk79ECsit7aeosa/J6npa2OR6THid74livsp4CKwXgr3oD1tKRjIXJjmpq1BY8tofl2oLSQg0QFpho/RJQLgFtGY9HLMhO7mDSEZfW80XXH9caphjX6QzSgAMh3oTqPE0g7ytwsHGUV1l0DNj4c8BjsfVkQ8CWRdUec4WO1eCjKIMS52+9GjClx1pw+uB1BxMtUG1brUgS5QpCl2YmUj6tI4WRQ4zeVs4Z2pCSp/aGMX7/rM7vmY0BNi3qrauEvf8CBP6zoOOsd7hnOQUi5+4H11zh9O/hc0DME60CVE3pwE/cKTGzcMDMJKWGyfOOJb2GfoDKO6GPp9aM2Vp8vE9JoXkyQVl8AskedFNtZneASy3pMq7N9hrMyCaS3xALin6mUKcK8ctn/Ded8oibjS4o7icUPzz0S/b5d87Rcz79oyZrKAZucXV1pl1E81lYba2GEdVQgQJMlnH52gtayi1hcfrK7mmuQwVN4R4vew+a0a2ONZ9OlFa8lP2Lcp1+OZEPJzF5uuJ5AC+f40F7UJBd0XjkUBalB9TE6dykOd0LvKeKiLtH8u+1WqCIWl3tpr9MT5Nd9+z2+9mCxpkaC49EdL9qrL7tFHCQh/a2lVWcsPBAaIiqlyzlaZBV/Sb5XUx+ySkEmU6wYdKbqOd37uZw+WxEdPLsx0lktjEKWI3qy+7NQrxaT3KeBwHdeUHO7jyanKDIy0Gf2SWfJLWboW6RCoRR67CPos9TnlBSoFAYlgO54u3mSQrh+SWPr8xndp2ezq1UuRD9lVn1pNoem8BSIUY4runlxuSeXUWghZpQ2Lm4x82cLcw0GX/qipgKbKKZmygX3wpqdcMU5LWQxXRVNhnwCftKd8srqv2dlREtCREfsRR266AeZSlsXroeTVBTOHlN+RoKURwcqyAwjsImW/xTpdW5A3UbYNIRRl6Y5wffFlRqEQFmX+gVeSVkiF61quY/3FpGFQa1wAP0bcjf2tK2YW82LHKKQCpH8M63sHVtYgMGVyuJo84Mvg6vhbndYlllHT9dH7YDI/tIPIYYw3HklY+2jAuybzq5I3bfmmIBaTNtfFb/s74fb6EWCm9KWneCmZpUjKcvKR1piNKz6valqvry9gjaQ6Ed0a77cht/0dBYI/DH4L3iF8vsFbRONetg8E6QcwZP1Vker76AUb2EDyCwChe5Qd5Rp10MNMK/AwsBp9SNGy2m1tcvelEjXdTq6U90pPwv5v5Rj5fNAtppwM5UBK/YtHvzUkTL6gykiLbaJThlVvsrfazScswix5VpQ8uzHTg8V/1OouqSZoSH6drkWxRYFq8QePW/CWN4HBV47cxU4PY0jqb11PjT6celN1H+i9Lc//oYRFe8KweNmQbIwd91965PnroJqvGzcfabSpKCcai6elclWse6ZeALwM8qmpcDZWWYMEk7aDSwg5ruSAOxT5RZIHgAP70Q8L34yVFTdx0N6QE9KQ7UiuM673oguwymq6dYJHX3yjdXPa/fodpvQhvK2fpxqqI1qGvCfzDgHzalXhnGbgg0ObuuiuPzxjt2UrUdf/42Nwhl3d/07KCECSryVsWIpeZ9Hr7fklbjT05F5XjOdc44i5zYsxvmUtNia6L/bC42bxgx/y7QtRUYLrEQpGy4oJ+wgK1/nEt9VnK/EM8ZY74iIJnA48C+Goa1aXQFracfjjh3K50PvlJlu5VNNmHMgd/8D44Xfe5BKK3fHpriGfoka5gVi8B0n5eNvloAhmMYvnJrT11pJ6QbNbzvk+BK6OA8JY8R/CYqtpXr6Ifn1JIMtzSAXQzko4f9KS9AOEeohdA5hksBmTwUAEtjbeVkB0bwbCUx8CUob2AEoihNCAuFjPWFzbDX/mFprmd/kjQuBkvMs7FhqngVSDvLKoRiwOxHZ45N5h8WhhSwKB0WfbZsGwG10etL163VwxbQC0pK4Y8TrJTObhuAkXwYMxN9mvIutBCZoV9o+t7eTWITSiG1LnoG3IDhVRY002WTADGAEGRZBAEYcpuKzgN8Qt0MMmnTz7qmVpdMJzl21F0ZT7R6Pti6yRoa8KgmJcWd8QSVwBGoRA9VspokIhpupP48+odQhJIAFSg0yEchRKj51F0bXCdtDYgJ6hvw03Sf6g5C1KYkXr7TDo25AaCJ1IO6kfcQ3P+Ybceq77Dms5Qq7kROMyIlUA4h3hABFAVb9c6CMhLvXVDHbOTIU5sNKbyALnp9H3TBmPBlwAw3b2ibPQlqVleJNPYLczgNcXD/D6EQ299Bm6cCMzRlIS/uaYeOPBfSC5y6wWgMoAhRqDIlYcBt2HYQAuO+uw7Lr3Ok5qXhEAAAABjA22Cpg//maC2dKpqB/uzm3gGSMICPvgXr+mFZEg2I8hln5HB/MqTCwiZXuypLsldj2RN4WUM3tN06nKoZ/4sBlleoEkjn4ncD8RnZHxwnhCBDxpBLh8O6mWuFRlj+YuqIp4bwC7DGDHQA2d0luWpXQCCjMAUISeZOM3IVTTn6tXfoivdz9CpcHWVzJfqdeGd0IKYom+koHy6RAM8ouo0B+JX63XWVru10t2GVq0PnoFiORx/u6PrnoJkHVQ69LwpHYCeHVkYyN/lBcBpB3Sp7pZM9W7WyVgBdGF5FfmzGzgYQz3ASwoBn5kuCcLL0xUlUsgQxAEwKQQw7SOUMzDbitTQ5vJLtujhn1Xy9HX2H6VHqjKz98jU+hBRCS2ht5jRobbfRdq2bW+Xye1nMKWivuXplqf5hrqjyekP4cLm+L49tvlt6s4ce7d/zxPfr0bqYvzLysHrQtlEvTpigUCg7KDb2fEZ6iAH3HxjZkV6pdBjY9AoxfHI5oxgjLbKjNwhAGRWG+XNU13MwtnMJuA9BnQpX1bYAH4P+Utmc0pFRHtjbiziBQwW6itcSd3TcV3euFJpeaiyVNVaPbS+m3T2wmdu6PslZVp40jl7ccGxhycHuwHKWgPUwNDthKCNvAfv2aWFZqpMFFBQHONcheZbckZOol3KtHUvEAAA5B0vVMYmIY8w/yBHeAmoOlajVOWwB1VL5TiSlO8PO0rPgptJiUbZgWHP9/kTkVFBrrPYq6bI/KKknxlYiedvHNcHnZo6uJa5T4dtsRI9zz2RvxqjzNuByGxSYeS+cUKZxkGmc6+G70xWgoUkAXJqKiaUbI+wnZpxDj90DFPCeZp11jtARgbgzwxtamMsKpJ7hTbq+UumzTP6OPNBjSNpjAtvlcssllLJOTQE2QkKOYgJI/wTnXumz6Xjs+dClZR3BQh+7ARnDRWQbxAs8gHX4A86O/l/dlm7BbYsw9De6ImIlzZCluaByQC/kX9D34UagRfZj4sQ2fKP4qnh+7nfYempVJV0LKHIcVerNgppkMHE++B5iW/ujwENEdtVUHYbWwf5pgvyWn4CbGZ9lMiQ/D4aEiFKEy6wGD0xQH6eaZpaMLb1/wVBKDLbjzYigoUaOG414cO1CQNtPGDllNRgVcWmqp8WopagemHIfgMvmwct6uvXrvdgKBxU8epjqc2/CXUjDlMQFZChhyFspWFJBIPhcnLizxqBLBJ/GKGP9eX5EvbYbQkeY5xeO2Ij1E6zqFGgOGkuzFC/qCv9MecpZBnN0V0GPirCfEltgohH/q4KjnVgPBYQERavy0IFt8pYH4P77yk4JnZh2Q9jVBK7NUJo4UefR1mOjKvlboRQNcilykOo2I1clYTRtDDHBOy2XzRMaVuJPHQuY6DJod5R5ta6+ZQriz+MKIHiMtxp3Gmm4Zf/+TogYppIXsOQcE3/iT9sBrrBEpKIVfy9LlZmPiHCXMX6NIKrdzNkME3PvX86r3w8o+3jQrPijaAzq9nuIJdejDr6jrKEwu8SpVWIzsj4FxDsU7pMyJHr2HQyaSnKpQh2+ZS6HViXimyOVTUokbNXUnKzdO4IoCtWaC3v4MlQRQy2FrxZWrzFdOH80xgjsUhsMkcGz9zBR6TSSy5YAC3kywbkDl0ldNYEWNw/jzHJL3y8QObGYkvv3YSEMLiY9mAJjB/DUV2g+X2rmJjgAxehCUozliDP57nIL2ImHugEKNnGjc5raukxk2WPSafYVbziUfzd+fH7T9DbdZB45V2rrVPQvuu95I/eY2/Okr4Z20SH2wzeg9UXGB3b0n3A1e3C4iIJPRFcqITTkr9LevsXzsBnbCaOoI1yK7yVutQcTmZOtHhb4nbJDvGXABJ8fpylBW6hCjr2+LfD7t57ISkepXSrTXAKMMTh4rKf57T6udlGlP1TUZq4uIt0dfkErA4GzyOzUM0y9SkcuYJI2FrMqpvmIYRCk4yW5tg2XZabCk86N44dx/4ONPoPwJqK9N/VgYaPuiuPkU0yKvxmdFlIok81YRfsfhKjZQ0Lc76NkGF46G3lhF1BPxxKYljlIfUWp7dvLMRI8Yl4BummVBtwzf9VWT0gsPsSqOlzbm5bK38F7y6VQoqzKEx45Zn/hL4MicS51HxV1bwWCnlB4HQRuPzS7QCQEzqapjpRoyBgTNQwrWvA+nRcDVXc3BY94M2PL8X1qFQqHP5OwC0wM2gzm7jp1ONnLsaVpXs6ey9DvPvK9vsakNxYA6IciMjVVfPlvW2SGOwKM8OGMgkeHaqN1xSF2iCI/93a5Awy+AgdaUN1BxfNZvmZnWqpRI/IzhBLznv6bhP3zmtEK2B3kUKatJXDJHPDyR5pn00cCuxBOSKN61pIUuMvPhHgK2+L+l/ck88iu96EnjVkJEOoCVkopwseO6D3tdlZoDn8VpesNmcwxyuT/HL2O77q5Bmc2ma+M92vNRk7wP/N8bDkdHPEgXK7D5/SMbjaZjgRZDo4Oe2GuKTqaDGpkLlYy84LNFoOnM0gNqYbzbm2vGauaPWyrW1pos7zIq+rrICWpxdpO7fMjBZQjUZaZVvlJx/0PiEDpgRAytAbWcvmdIb9uvhiJLlvapkT1XrAVz/O0vXuzsLgI0LlcnA1rjgKwooOZphwK5foNMZ2fpWsuNH8lw3BpSjigJ7op7ZzixMFzmICjupE4V8NT6Jp8yWe/VVmsFBxPnlU+Hs4nBfxYSFDlO8MHWeFfPgHQG4fRwbnYrWWwiw73tIGpTFxW6SacBJr4hnpMvERC2EgPjE79ZfSlvW86qgVdXEjGjplINVZNgI+d7FbxKVTLscbBL9IMo9X3XOs1qluUIQNO4FMI4B0FLPeMKcwfUhwU9Dlrtc70YIAnQx0ogJYcGObnUt0hgOd19BqJNw82BYJbtHSAnRIzX+drLXFWcVMvp2lbc2olhiiNIRTwDxjEMSjiWleskdy9Q3ix9zB8qTYP88S4GfcbnilxDWRbRF9zPWq7gdmFMclbQB4IgjF12pJpRrOCE7fFBtZO167tq3s/A2BoLdaCctwmcs3CfZvnWjjxf5T2vDdkknldbG0ID/LbUvaPtAgQujlPKTWR+dRmJy4Ove+UNcyfJ9PIhIGku6aWGKpXFZ1bIZ9i4BpOkXdnPGKEtP3g+LWYBrSWGmHEksALXy2cBQ/d/U484mdMQ7WnDawkW1JX+bZ9DxJbZ4xPAZ96YT5Srdu+TvEuyGBtiTU5g0T8GSHtXQku4wirUu/MGJJV61nQAgSPT1mWbgD9k0zTcnw2Z1+DpdsoT+kRUcPLjl5HnIIRi8J2oD2CkGsvz3Gx+VkdT5RrJwGzO2iukGlR77tnLI36AHeJOSd/ro2AAKRbuqJkArzh/wlJKSceCFLLt98zKJT8w9OohZotX/9J/2C5ytIBjUtPEwiQPwHXvtFHtSzVXH/uFWrOTM7RRQygEc0FqKpQKHQPYRFCr8Mw9Th8wFgPadmiNEcpbbDQT/8oTwvx0TfUo9egJh4/SQ79N1GqrGm43ixgzrEAQue+tnAg9cAwlO9eXjSmBR1gOtf81JGAivXVixFm85nnbmKFS8qyG5KOBPrn6yrW6NNKKEtrCtwfWx9QpJf+JZibduzzquFLcZgm48DouqvtWLEs+CJ4fFoIQhhAzaeh51yWuC76I9C68VkFFToitZF21k71s8WFCZvsJWJo6GIsjqWhWNO5JTeQtbuKhg8HIMz1Yc9sFAkfuWqR56l+U7zBGgS46Zd56A01UjpBwfujIEbNGmiw4zCi53v6QNoosQ6kc4qbNGT68rysIqzsN+27uxU/LYwQPnD6iqDzmIqPungAaYXdYU8e2reSYW0a4NKd796KL3XTBPcFZ/krs8JX37ijY00B6AS9jgEkjyd2QlRJRY8AIIEZ85WLHXAfU3/ld6HwapZKRB/sLR/hr8ttX/1u/B5OO2dWuYqqNuZs+W/9tP46+o62CDdNNXReE9Jb4Bm6JFsTCbwGvSIZizIqqErV1lXi25Xu7Y97pVILJyeOMomNFb8F9qg6uV2DGmpZMU95eCAnekJrPB9qIaGAI5BI2OsxjdYr5rnbSlAbdsiKJ4WDBL0VsCGQhd4SjWCGGHu8Dtg9Ljp8LHwlrI2+8Z9oXSbuvuZSFlPSdyaZZcc02TWdS/KhqcsmxubN2kpujb4yKeXHvj24YgqCeKslLlzI/d7i95FNPHj12xxNBBUTK4b/hpGQy4CDBS+43xmzBrdJ1tjrzoC+a0jLDJKZJoGh3uN57iPc1CrOZjGZCmuqBjZszavsK94C6F4Eco80cllT6QIDHmUEU2x0vdd4cZtdjEfRktCNPf3V0fbK4wRfzFOr5UkjVFTw6HWtgvMHPWeeZyvk1AR4OlfljOvF1emVJtI4S/kWYdxN+ipW7H1B0gHYF+DiN8jOie9+DfgL/4qg+AHKEz3rY3g8LNmo4/PsTnfRYzayU3ETgzwuUL8FPGzSkUgNb7X8YUPLwMsRyga9hiclurIyqlwZtka6yMrBep/O73P29VySJg71+pnClUXSm25y+r/TNKnMwVyWuny1wF3LfvBQ++hR1rQcPE6d6ZpMsc6WubRZ5PANa3Mm3qqhdFnvE25hxVDmdzBLK6IXsyItv1lHUM7+ZjkKULb1L+pVMLrPqJMLFDDERDf901zNDXqnq0PISUrxAFe9S+5ETHB0WVBr+7GG4Mhah89zU9RW5duaDtX4AeMgXnUgNPM2SR+f86PwnBznroxs5lQDPkpummXYla8b427JYm3ORx+WQLApG8xoJisRhpoyEerBuRSL+abXEXIM1WDDLT0S026D+F2kylrCTIn6/U8br8cfn67M5snYQRh6IrV+CAoFZUo2C6O0YKNa6p5TbLwzB3W4Bk9bi7f4vRftYM6RPtMXYibuRJ0hJMEy8sTPWP0uEOo+E+9pC9giGdZrq0j3hyFWMuamJz4WpnvsrafN4QkADoM8tYBWQIcDkEFoYFTXSZ/Fe3mc2vDSEzeyOFq9xhCK/J/PbYWn3onTxynh9zwmZcL08XAnZptnwRzwjW2ugNKK5DoYTrANV8Sblb9hqAwop5DGiE6sFVian5g+PrsAZeVz0yMoDOFfiBPsFpnBY76oc3T6oQYx0kJPAK8lm+qrkmiwW9IcRIXul8hWTVkzkTMFwyaFgsKF8P3akbBvaB0XTFu8Cv8mLCtwzfcRIcNHJWYthenM/c5E9H/xL4KcOYlcz4PradCWxgYz9pzP/Ts/TUzI6jK09UNq13JonaiH1+jeXE1rp4CujKctmQOLCUCnqgv8b57i6btF6OAAA/WrLwzkzZMrM/HNVi507dhTn3xeeNzNDm0eBTAJVarjKbfHRhzQMIpN2ZosZV7aicy8QsQJhIg1H+Njr/bsv7a1MqjOoTZKuTgnfCbPzHkFDHot9l3G8/zGWaQOqhEcSR85dWFuSZSfhqHdIDeUp7tqm0i3IjM86hTlFMkyfrAT/YCfPr6uZ/w7z4JErt1CaOmCfYomDEZ04ku9SbELJDu0HbZN+Ct2Bss9Rmb4YWPfZ9zvAThft/aBZB53LcYGEvn1z3R3jbif2oJzHSEbq0cuv04DJn5LGUUBmZgS7TDSidNIimpVxbt/tGuzozS7cApGAHodAOhorTt3f08hoaSK57xbxiZFrl3bWSEBqgSzjoL8ChLVU/6KAYcMnU2r0hMbi6tGK3E5pqybu2JtmQz5yXP/6YB1Uc+BDbiuc3AEUMySgRVm9lPkk3MozVnbvTBpRHtCKcyBD4fcFZ7QiUIcBssz41hYq7bzYt8IkAiFufe4Vm79wfuLlETFLWin/42dNz4Uk6gJ2rH03jY1TV6OpGx+UkFwBfAwIVjU6Uyc2TROec/as23K5KK5X8X0SVMSt1zDxLYcdvJduGiGriGlrChjNZpqrdk02Nan+UztJHOFvKciHH+2Ny6k40uLLbtPSs+mxfEmur6U3NFREceh4cDwoXI7M2VrfTp+8eQ4ob6MBpCm/xNi3NpUiiG1LHGgOo01cXQQ4F1+9xuzVZTd+tOuJc32DkiohRuqsqx6FwAE4X2QrCjXiFswHNJs6VXshjSC7hzM2IbYXRVSDJMWFylyBsuY/RpArZRNXk8hN/fwNEL+cA7d7V2GzcJ3sG2W4+qbbmKrFArVjZ8vFmGUch8AMuCLJrid2W0YpZeNtMoFIidWjzPQKI5nBKRDRryTXxYPu/uRDaofsbs+A1L8BE+EgmYJsWyNRJlDHza7NL6zVxCSsBtby/HNpDNhPMokSsjjv4qa23UALee4TFdvzVl5wVgx46jy8C4cv4NuxaTT38hotQlvGcN4cbLli24Kd+hyGtVsaclBPr3X8u/K0PvJr2YO4KBsyF9XuuZZqC6SA46NzezSCy+xRoNzYpopkuNFzsk9t12S2UqrVWlTQgsS1GAry2ryQicuM2XKarClDj7owxEZUcmsIxs/bgneLJQsVytwv1YaAMESVXVoFG7WQI1XXnmwJ3nfOywGH6aFqjp4ad6ShirWB4dFLZtwPCxahBG0kUiO67HwHM/P3QRwkFJxOCnwFYWts/hrl0B2HOHrtnSxxehahk8N3Mm8eVcBrmV94y/KHfy5Ki3Omazi+Q68oZ9nBXdhXXd880hcImps1IbfxPiV89vSexMyAITkV4DKdN9DeScJd0dfjZU+e6zbSK6b/ACQ4D/hN8qeeK50kovAU1ZEXQQN5A3cqtm5giFu6fvPbwEkO8BOWhJcbHl7d+9IjRq5gMvv6iaTtqthVD7eurqLowS1xKgZ7VZlw1DdDvvvl0VVaOgJqSs9qevWcwalPdmZ3XWChoukEl3f9YvrQsqzBbl/1kzUYjzBpG5ZZPM5VGsxZNvpCumA9CeItQUpoIKCwQCX03hwTQmb512PtuLOF7jyXaC02fF1myso8UzIAAM5zAHt0l624GEDVCIvEZOeNCnGEfFBeX4KXVsuhJUo+PBu9aG8uxUWCJkv2yTVvcTJMQ3CR9AbJw3buFEmIMYZKks/4SM1OgpW0MhJ47uWZr9cjAkfRxCrd//TpFlch04lJQuAw0pLyKjGKIUZ7FFFOPEIj45iJ/g/m/cR3/mTOSrGXVtQBYRqV1GxVl5RhFSN95Q/x9vjACeCZoKqM6wtbqQB6PcqHnUUK6Zeb6UN2hM1XKjoEgz8EuvmfATOYUyqnjR0FDIfLi6g1sYAlFK+qYMrQU5EDk5p5vxok3U/SM038zFZdOJHyFVmIbCy3XGDiS3ntW2VLrkuG8ADcluPOUNCtGsDr8u1eMo6taBlMWrNPvAaq0eKV/H0JfwoEEaJDnnh7x8Nx/wGQAee8LR90xRpZVgF030XMf+MoK+x/BFennyzN//mX1JOXicrO2yZp88fPM0LOu6rGezj0UUu0Vmls56pWznUSPZcb+DbwC4orFOYGt/ICLtuSytXBWdXVddIKpJLBcqAJXabv4lE7pm/FdPBXNAgHuX9K/SJSwmMNjTAxV7e//Dxn/LlWTSaXFPst1SRo3HtoP6jhU8hrDRVJIXYC2Vdm0K0UU+nqbQCPcb8gWm7RvvmVhGqRbVdBgoFQkC9NWYRID2GP+4aSkFAEfcj3hOy5OxF1Ui5XHY5LCN48JCDeioGvqre3gANdWIiZXIxgROSAkBLj7+taZmCiwhpBtkyt+Pnc/NEAJP6AkmMfFw+jWZGZZKD69EeucfFn0zO/5/fcQoClfMPNDDATe3LrbiL0V7WdUpcDrsQ6wTbzLxvqe6bVQE8e9xDZl9KvVRIfkipzgCvj0GAxl1lFPE3PKhhqDVnDni0/ffpNlBb6AcrKncDo6hqVNl5JILmKkM8UN9x4seAAAolM5f5XW7TVYw1RWfF2HO4HNAqYFc6EKLMZDCwNLDAF4bYRB9RYhDUL/KORJQmFrjQJER8u8B6YASpWFa+RIgbKNttoSCOSHcKbz90CciC+pWKWm1My1pI3t2VXdgzZPzGEQ276fQXhztdwiCMtdQRFHRCN+K4CGzheSVe+HPjscfX0vCSvrARM4/GpAYrady5CORPkje7YHaEU/AkY2cOqIcX00q6S0lAyY9Ff4ixIg7QiYiFyR0mtThTbXHuGU6OJGtYz3odPGt83S5dCpGPAYe4PjhTEt95/sdyJdQvC/hGNWes3K8TFyd9/scDuIS9slHhI6HEjyZ1GbPvVMIW/PFaoY9lgtoOcL7qzavWINnI6WDCV+8JGK+l1+PWGqmn6ZM1beY5DK8a9QMF71zJoWRlF8/XjaVkk7G9uMcb7RK3fX3Wg5pyVXZZbzqtJRjf1u62mF1651o5JgHkiajfyGs1JKK+plLQ98PmqjsMY6+wnqtzZRFMYi8DIfSApN5GJEGG0V8u0mfNsHSvXEo6vyi9fFyqRp4ztnVHgzxNdt+Mit1EmFNobHiCp7wuRrvRKokQOT+fAHqxI2CXRkSNpivy49tud8dfSVbQFxu1J1N7idUVG8bYM6rtYc50TDMDaOpdEqT80txlR934gnHxx5nWH1VJNQRCYDN3IXcmym8DHLHUjIKIZf5zOBCMkSkeCuq2ej7ix/8aRvG+aE0npPLqutX5mTyqfrOoX0SpTwrpiOlbk1/FIh79UGEbpoSDOk6ekBhuzSL2ZM1pzAj++UZVgSg6vXoDi1yQq12zxhhmYGEUS/UjbLKGPSAEpqtJkOVcVZArbgvMnIhyi+neeOJz3ooKk/efZht1XOM/p7aBm2qa1CwyxrEk/MfYR93D5ejMHZvNZtKu8Y/TD0sMQaAXQIeWmSXyLu2OeAJu5hdG2O4U/yGmhfpjHzR7sLd/7vEejaWaHcvDoqvBN4+gKBSwrQKqNLaZk4I6eRULJWrvZj/Q2XXjKicuQFfhA3QP5AyY8409xne6EAuxWFgbVAPPiaS4BLP2yp2vjfpDE1DCsw/L0l5tCY0k3u8SCrWuoAihLvRbTsBO0lW2Lzasy6hRIdE9UVn+4oCrX61SBdI2yqZ5HjZJo1gAxoAGFjzvPfz2izsGwl0e+Y008pGbM3LvHfv6/a3/+ZIYEY8vlUvzldFTgwdfWq6ODfi4rf4KVi42eKgfPefnF4XPk4Pj61bvm6koYAAwrfN6fOQopELRy6GogKx3qw/D9L9h+DzfzU67hqBB201hIJ6+gl5kHaWsc54tRzYqelkRkclJQdJXnue61JQol9X7KEkdBbiIwhyqmJsfhwvSfUH4NJo76gclTpNEV2UdMAEQp7T6QRqfv6DSYlKop42xrlPdSc/ADSIB168zwY/jAmyUjhJ2Mx9U2rRI+Qb9qzRolQIvJnIlRLpIboRn1ZSa5vjNdSWwKVWcW/PiDlBMbuavVRCiY3zLsLAKVP5aqq+uOJZ6kIBa5v1jJf3VIayKlGqZSIKsJ09vHsGNiObsfrJSZApbfoEo5EKy+xAc6hG17urO514r8pT4gPUuiISGjx92U0pNxPkB9LMrS1CUocIBgeS2Mg8xKHb2aX9jzShR0SnX0AqY2HRQ1mX+lSAXJ8sfHp10snFRyYL5PcZtTai3x/YrtltDhhUVqTA6baXGfUb7rMJCm6pLLAqcdbd+bk9ww1GxATKs0AfA9rpEwP+3TDVQ1iHr71TYgJtOQdGJqOuB7UDyahdmx/Qv9KInEO24BZJZJM1LI9FSyJ8+np34bwHzE9SiZDc5i9qOfL/26zubJ8xRwnpPxYUOMYl7pu7Z7hP7P9b7i3ryr/nmmT/lJSH0y+EkZSd79DWm+GTTlc+U5AAyhExlGsWWMtt/s3ODcKncTzZfY8R10WxjKLBfd3ZegIV3v1wx0JeKvy1+kUrM8LNLznKjiPkoROdY7O+pSPNG2fdmeo99BaFFEaW0kYMLgGEJNslpkd/Vggjenvho9UC6RPvP1njlWae4b/2hsjqCH8K1wu4/3lugJLPbViV0CWXs0u+3LSU6A+rLMxQtgWcL1JWNi+PpPGZ4AtDYS863XJ4gaIafirToG54AAAxLJpxHb97J6jPFK/PdCZcaP8M+MJj0b/Ti/57zprqG7KWXUzMEjHUT9n4WmWBfqT8XUHa1YbkKFQK6Zr6WlQdm1K+FGuKxSbplcDE6E/QHGnrCK5xnRYQFNsY0Gkdt6+D++CyhtCLu190SLAFxooP4ZhtvJIRf3RNvow3j0di3REF5/DukReHxt+o8ait7DXINJApgvG/BczO2RPP72IoT0vtVBlZ6jkZNvlf3HvAt6Ci58DVPdrtOT58X61D3t6d3WMu2/peUNgOESB/A/am9b/3viYPZXyGhBrFOMXNA7bSUmB8MQBTOonUL93LO4ezrhRWonN/KniZjaBRUSw5TSZuR/SEI/+wA6fPgZDG4hiK4lv/nBoNK5CJFIbTX3B9AJ8RTaINz6Atquttqro+bUnFh3p+etbBjAvb/GS4UwB+BiBsj33ToEVYwy1+vBqeZw7CRBoSO9ULUFAzsjL0jhPoSS6mFEdvcOac6E9gNyjDK6U41jH/EANATAcMMu3AenaS5SfiqOQed7bygLXx45PYxdkYmaN5cKHM6bY1UPFSQ1Pi3svAuhHiOu7LWd/jVXqhnKYs34xWMMFAL2N7NGRMQdAfwWs5lPR95rQxXWPP5VdhtWFSjGDvssnTfmXDOx7A8fTQCEatqYAIPgKT4FWyhDAISg7dtveYWUVtWHHRH36k+by1LzRIj5fEwxZ/lx949Dv1I2Cu2P8dXQjRj3lCCT4M1Q34r2kSeNrht8BmFCxX8bbqWtcCqfzXLt7SGyTCdCQnXRiLIlJZ5JSb8aC1yyTn7MEr7+5JllHaN3mn1w9lipU220HOsPaO5rgteWC5g6B7aBiKI0MPZMt6Gimpxoi8eQGwzahSa3tdLsGYfAjPT5852JGDcZVeen+g2aJsVOOl9y+FbGZo7cibTkaVbZ5x84Ne9+BxnXJHXk99Azp4SEyudfCS7k4G3IXuyLiC6/y/RIVN6yOBRe6/dmwX0/oGrT0Fr3OC6vnKpxvxcdJAPN7gl8SEU4cnS/WMFcnIYTZiPbumDmvklXlmqWaTE9PaE5PknDIVVE2514eqSFFu+PyCs5dy4BnYd+H2PdvCcU0p2twQ1MM+U1o7YRKMfUVspHknLNkbT70oNJ2vKMNJAbguQzh3IvX8z7uAASjDe1j2cvb4V9lQV59o07QFBOhKvqQBx9tMtox1b5Iap3bTbWxkgrkShAlhwzJFRMLHV5/PEBI8R7Dc3hUMbEcTxZBGIDBerr82AWeDIkXYAZ91iSsE8hqiVz9TEN93CH7es1hnt1N/XwjQwHNuJBYJPXNMnVsI9574u61OSnHFQI2bsz/b2bhIZmjUlZKKVbLsO/oGM6aHjG5EHi9Vu3cfnkqAGjS0cgKZ31p5ndpZ3ooFxEbNAEL/Sc+efwcvIciR+Ovegk0utOzKIOHhVqAIU6BDf+G4qOayd4+/Lxc+rWxGYakRW2bZA0Vc5tdKP6F7g8xi92alIwy5Wq84s6s+FWOCjbDcKuZ/1+kQ/8Zw/Ku6dwBT0M2sqD3YevLWuWuXVSz/BUSMy+t81Hy6WaLqGGrBPwINUof7xUnB6bca+g8hx6gqaZWvNIvRgokgZy7NR+6RsmSPhdpm2m/0cQKMyGji21uG9Gmekz2jDi6buLk4ozCVKDU3tufM4N5vG4s0ZOaDQ9TaXqJGeky/jBLV2Ui4eXygtmDLn5TkHE5MPFf+XAqafs2pV/Fj5HAT6MF7y/pNKpA0re+vFk7RLIhAu40uK5X4bIUP+bKUVIa/+Q3HBjRs42fC1BBOXIvYfRtjpJupRMe3ohifult43lI2akzdm0fObMcM3FSkOZV0UGvQr205VA4UYjmOQUwDpWmcXFoaugXZ7QjZ4SQgeVWn9gorbnPeRu9AyDBQkHNdh+NTDNr4gle09WYLghdgvmzrc0uY7Ka6ZemdDHIr5zzMGYGL93QpZazYSuSmhvMyX8DFzHrIDRzru5W5+KUgGOzjB0Ejhugw8eIvAMCieTrgX78OTwy2G1j1BtGRLtZPgq1uCB4EFjk7ANzFbdO7ONpK7TCvGWS+dbKvk3WL+A3l1B5AOw8awUK0LsIuqzSoVMrL9cBvN3Ptpx8FTu8cTcwinFXXS/DVQWcw+3LVAvsoBuc0bgpwTL3G4DAZMpKN2ywihCfodRJOTbW+GHGauL2FpdZ8mtG8mNZs95WIc8FL3e9A1f3aQPSTrWav4mXyrSq7o+NWoiHcyD9M9gkDUVokEfbHuLgqeO+Y4T1lz9qH/I1FyPwf3Nwbtsx8h6eGe7ZeEhZQynShHZfVvQHGzpsTjUkJQjaJ7G/kZSXp3IrzVLeS6B6W2xEGnOpLQSYBixjn6a8D9e9SEHE6CL1UdTv2nd/EvUTKCHaL4AAn/vRkjk9351zf8QIPdjzhijcKrP0ijcx7uxWZGaj/+9LAA0Ltc/fy6CWtkLGX4f+OPEsuoXApMwodLdl2bHTRP8J0vJqf2a1XnqbJ+fAkSnafg9EUlSUcUyzzhkSkIRZb9AG3T+Rfo1a7EZGSXyIxYgxYNMUb2dsMdjonUfy4lX8fQI3YO7uAJkApNkVzgopbSooFCSic1KnkijUMG/fXFzY0G1UqefhSdYSizfLwjMDhAfFTWr3U/WHgU8BSqpuXsAN7+d6TZTe87URja5hPQCo7ThgQMu7F6qXGMqQQYYlWIAnAWbwkaofk6Ea1bSQjLh3UWUOr6KuL/IXdmDrkGq1xQPUT0C4CWrns2pUm3d3oOHNn0b3D2tvESBV2n/Qad5ikB4KWuR814aJvALV9saEsGZuBkGceb9s9+iCpcog0u8DDdwrjbs77QCx59yhkwpOdxx7RoK/Eby4Pntk3frS53Nm9c88WMboCKxMeHKFDrEJ6vVBL7JcLMOyG2PZeNYPammDtg7ASP/3/KUJu7M/dz7YVAKkI0hIVk7n5YY9AViVKTEGNw9lTbMaPJZJTihxeed+65thMg8vRpEUqv86o6T8HE1i0fPjcnEm1j/cyL5zUSy/voLT4zMJiG1wSlcHV3WZmoU8pPED8mISAaPL6ZOARG7jK3ptzgL/QE3QSYveCyJmMbo67Qui/NlCBhuyDTnY4gMn2OGCguElhBK6OABBAwa7WXsyHbp0JtK+8G4ZsVjD6W2QVU2vKJqP1SJoM1kIhdCaBv/UsTO0d3eZUwiN6kDPA+0sf/wty6xY4SDJOWoCQqeapjmpge0x4QdJGQziv/UpX/BboUVhLPDUrKfK92VplSU9PXz/zo7KGUYyqQq8+ELOdbFSnOMIp72mAlrlgVLAy6BYH5n3Bn1PR2/7tYFls4AasEh+O7GgDuZpRYOXWmvHDZgfHxrPrdyaP6AjAaP/IXpX10Wu1eo4QEdQe2HPMr0CcQaWWPvXYTbLV1Dz1p/+spW1Xw7BVb85tbbzmafk4Z/m8SYTl+L59o+gsKldkPNFEzl8wodfB/P21TkYyeN0w8QPlDXJ53jdDMIO8J2Yy+KIey8G93ybdPicxVkJhNrakByy2C37jArCmSamBbmVH+DK6lHRiQrm1xE/t8NbWmZ5kUY9vpBfVIPj2UD6tTKJrtarOZZeOR+wSv2ghpIMJhglFK5W1pDr+1wLmqrZPoKol1WlPxBK3x+YLvS7PtZn9VbboQYYVQ3Bgk6OowBVSCnuKzBaaYT6+VNreDhubFZkgT1u8PXJrhPJFS1xDcq6Ukw32BvQyaBUA9dsqiOeFLM5+ZguwBKFUBvkBQVz7LbOXDL6RSgMdwGdKi6U7zVm5rWe3Fv/9ZcK1frthtitkAwbrunpkD04I1jckuo19syJG+7h8T31t2rY8i8rhWO82hzlZI/l3o6ylr+s3HcK5SNUs1J+lxLoGkF0uoQ8nJhgMeJGRT3avOpLDBOSpgSZQUJNpinKCy7pwpLbNIABdbTmZvbafR9aii8XavxNSoTGDG986SDweuno2EaVGjeMR1KmOBWJjExuPH7pAWiOhLTJ44QCO0DK1DcyUxCQ7MCZ+QCHH+4GL/MoBPGc3s6gvI9xX12PDjoG5jNsb7jWrV9+eJGYtf5AITwinDjwpKlifatBk72CqPwZsf52DmGL8fu7aPiVAAEsuY1CBcQke+TXEJZEm+6AQSWshAz8kmD0Iuop/SvYd8jzrIbPewOkYYRuFUubti2Xp/dxXMo3jOy31APEidmUNhjp7TelpjL3NiKlqMkd1NHVvWPUOYMBm1iK37gBJjoji+R5peSYLn8ah7bGuim/ym/qDuqfKdWvRiBYjfuahUOjlTiiOM4+tA3/3NcZKQ3W2Lv0sDV9RGK4EwURARkCzfLCmTM4wYfz5ld0hW1xPaMdOEA2x+ZZuw2+mOO7mJi10eK/mWwyuASEehN9MhDgoQLVauZVmnHcVoBsDPWeDSPbzsPRKFMv0NNkx9ac8oLzQXNlcPKGYLVUM7F4QvGfFfTsaWfsRvtHWotexCpl6oRcI/e3OnVNrBkOZbxGAVJPAfCcqf2jy7X0eR8SV+CKYcXlxDZ4cxAOM7qgk5WjEiQGbcNFPpRg1Q34UQFTuBuwmVybwBxi57Zcf3ijY9HDKk1CPaTWKIN85WPMu4Eqtepw3seo8adPwJETei8Vw4ADoAB0u2+hWvg5MpkLlOcH+5f0mNugkaZL2TSfXUwhV9ljgogqyIdf0Yh8aFZzwUs2ncwItbiruyIUOI+nbcV4iAgBkBJ8SNc2m6lvyjkEIzJ/Xy+BMoBUVdLpr6V5vNpw1TCdKp3LYXbevIrWwElD0xOow1nTTc2P8t7JsGmoOWot33YKjVEeeU6l3ArV3OE2jUuFOOQQUMSLlR8469K7sQNHyoqO188DCGXmHyoKmOuNoPkmaVs40In1rJzMPLeLfUVsMFKw5v1KMJiYuF0mR5AJIa6HNds8aF6uB57dA07VTdDMET7iHFmmhv9DTlH2ONwHt6aKPruOqNMcY8fp4A2gUSHPzBQKFujeu8OJwCTSPQ5RS4kJgWsK7ZT1IBt75gGBpFe5nK27eevxOIThUNoz4pb0mRSd/Flva/XB0417j+H6qjznVSaTTTsZ/rw4ydHUfBwFpRV9FMmkCCcAOPO7siDJumcnz4OATGm8Wd5Cjby8dLsfDWDTFG0HunbYk7WdopaF7DVdHCl4SSliOC/xr8EeZEtsKuBjYm8FUvG+EEHqZHn8J8P334AZFiW8nXQHtsW5BQhdyX8j0yf29T7UsoELIZvzo0Adm8LD37RIYxMUHLAIWUu7uqM937Zl+QZC9H2eq9SwVpnEu62smNfaERLC3XBnoYK24wy+pDqwl0Bst0qumdPbCq/oA0J/N4ZqLxM3UXMVMa2GhZ7LPG08AUw7D2kkDDi2iGjEy2/lSZ9JXjUqaCMzFk6Kb1DJtG4BW1ZC41KXnFa+pg/D76TtO/BUf7Kg4DeNeg/pb4iN6UFXuujaQyrcIxAKfue96wbudkrbOB5C096+Kd24fpFhqlbDOgYEGbXtbDALkpW+fRKX2SD6Pu5QExPtkoquu9pvpwdly7QpswwnQKytdCryN40Nruo+JcCadRW1s1+y1szpjgreOs6NuQ+a7lPMfT2Lpry+r/ZQMzPgGpJHSvqo4bhOXgk6vks9fsO3oRADJA4vgn2jFoAxFQ5wl+Ah772Y4xCPi8L2HUYetOOizXtRhIhYFyl8fsa37z0FiXx1O/0Jw7hUkeyjeOOTaaIfdbaRo2eYHXNLZfXJHl/cVYj48Xguc7IrcPv/PRaDRkOfbWzGiMSd8CgBMbGguqGOAchUaHbXHzMWH1DjIG0DsMFoRCeFBtsMV0LpFFjqeNxkgqZnerKuXO3EFGcyhr/Qg8DFD3NVtnlYDd2jngpMq5GNbASsjVTVO3YmU3NO3FLHiiMvdPT5K1XBd4hByT2wcAgr/livcvgwCK6aXu4+tlZnmy7rrC/ZZ+mYbyQnvvaQ6Pcq40i0Sfwb0a0rCHZvCuWpyZpDDqRrcOqrKZrpiHxKqWQ9DWhU0ABn15Ox2nckmOro8QRLZCzSEfG50y+UsKWlVnqB3Bs0bV6+5DnCkdvWruiidjKZwtHxJwr91dB7PkLbNfi6m5BiXFN0PdR0441heYxaGEwEwOoDOdZNdmRGlC1wHl5zALxb7lHjPIZssq/xb2j5p5Cm8jqPujqus7SvshYBQlfksoSMwAjSd/7L7iNIieESr9SFXq3YARVNl++F9JtP/XWhn9ZZRulejJ2sOMNbto8tUEjTPaI9IkteHIqHX88mGP+HZTV/ruVCZ5WNpcQZYVA8PC1PBInpO7KbJbAAZwhTM9ALcI9lYg7yzPJGUudVGHkv4e4AA1RzPt2Dhxrc7YdcASYNWNbc64OHLsmjysyQkyn6Vd8oBlrqNLsmVOvp7f05iplUS4IwEMRZdQ1MuVFmVT7kl7aWF/bstlhIT7g09W3qBt6JlvYL75mldRO+AJynInZf3xp8J0BcQbieQ7EvkGs9PHiDcFDkuGrBn/NjlME//nnC7RuxfQrrafzFMtGEDgLGe/X58CcKvk/Xb8Sl1t6kJr7i4G4zaiXl2tZ6stioeldGPv6qoe1OX7LULAURE8B3EeFNb6ZZ3aVE+vK6PnpbstvR2AvOGjZti5ivRTYsGePdyYmbBrsKqNaCwmB5kUc1HeBGaCDcCdLrSAYqPVwh8fwTEib/J4t4WIaEpcLY5i7LxMbzcB+5/7yX1ipPZPAv1aG9iafno9yWCKtOYjrs6otZS0qLB7ZAJ2kvRcJE4KXi9K2FcKnW56kxyedLr6Ak0PTBAHuFYc1246rgQcDm3fwBi4cGGixESc8fOYP5tI0JpJyuIcd9XDMGJFCc44VDtizulAXCYh8E54xNpOaf7davmYtXLoH1HwvCoTUqqsKDugVpWfrfW4hs6b58zfL0TN7s1LNOOo19SCVnFkXqH7D08nQlzfOi7t72HhHFicTjOoRBSubRHFLMat0zHl6lplOWsZ3goAzOyJoldqfogvMW1KbVSxHPWGrfunoAJCiYCeIrnZXDuiuDq9P47mhweqq9pscua1VKpShvl82CXVsDsxwQf4hyvGJLNmx53VMkU8GpVEZA0+vdkz3mny0UlMWINpPR1gYJnXghMQEBqUx2TNIomhYLG+O3MRTQytO4LRSKKoIUzPCNN0mAp8NNdcFVetOnZqsyPEzn2nH/Ub5ZvGWu3h/Ep6vCgQzd4BjzaYNc4u5Y7LFE9VBUFjwca/a7fcUe3iwFkM9sJ/+VtZll+EFrTrONkJOfDSdcTcoRm0jGhMMG/hW+GMEg12U0+ccrHKHsTKvHddU7n+80BbfZzOJErvyN6qnI2vgk+qp0CtOuFXXwWRR3AHigGiWfvMPq7o94bLiWfKtDmkPYr6chs2O0VKCw5kBGgommUQr3jKBlV/R+QkPg/y6MBSwb9L/c0yj0Ac2FGwAQ07oda2HZ7Vjn9r3IHTV09rp3+qPem/jWMn9f/TN1u5qH6GOni/twNc3BKQTKOgpO1Y6gce8l8g9FeShuwCEyMDvWdJxUtAawHK5mqoWwilcGUEG0HDmcE8cGsZ26JpWNjjzBwSJCT6ZX8+QNcwlklOIl/c3xQn1doJSmODmVijsIoGPOLW7Yx5RTXHYDI1saflIk+Z4PzHWEP5Z5a2QGLfWDr2xoreJEUFdIoJkmfJ8JCe7vLSaA6cNPXGEypRYQuxt9vJXJJtiVIqfQlPNCBKw3teFVIWsxjf0K2+QNbRhSztcaCH8xuDF34FVxIlTG4nhLGpgR8A3mIhdjPYDWmj9QNeEAYDsostubBj9QXHLVdb8ytzV94G3snShZ9dzlfEwQ3X2Mk+cFQUJB64T14lFMqaE86S1Qr815JsrWht0UKPo9wGeEidpsJ+/CFn/nfLUb8jKyq+UNCbCmXSdR0lLKax0f/Qo7nVEAtf3U+DB9TqO1oATkqNRInDzEqBKRb6kjqTZStu/cgTPb/J8vdBmDk3e9VPmP9/LnZEiXe97nunG0YhsUN/Av/KBmX249lWb82I7MGgi9HqS9MDVOX02jLq3Ls1M8/yx4ItMmwRI8s4Q6k5xvjYEtzCdKQEZrQd5APFbGEQcuDnszTOqIx6PhLh2+4LwubD+42i81UCNfGUYWVWjjxDwWcOWe7QnzzJCHHLV6ET0C71HeCwZCyJDeVsIQSVOZt3oj+Es2ZPI2qwYIZCdyxyOH/Q844tj6RWhKQBxYgis5BLu9BWoqmMiAKRpAao/kyyLLbhRcxPtK99LtoAWoqwYl4d8NJGBD155FV+SyTCi7j0j6RNTUbMZ23IKTb2glAQ7hiIIlWrWng8gMOcSCzV2h/pLq9oi1ZMSJ830nO5NteukOuftepLQjYlHiTsNjID4MW5A6y1Fg5iGw5jFAh9m3+P92guBGTmd201SGmq/cy99DC9+CKX0MbROf/MFNT57Jm/wZE865Un/3a28M4JjEt4dr11tEujpHQMDkzJKwAge1ThmsMKFbG0PnLf65ZNiyf/mMCF8vincp/yONMEk9/LIZosuagvKC1C+unhbJ/vB+2PC05YmlKwjeqcFKzT4wxppBWCJhUG4gvHFIYjdtQvfz15/96SxfrqfGccVRdn2/v+lzeY2znO8xp+oGM2yAZzFgvbnZ/uDq5GuqDBf6r9SWGnu4ObMToGlaKAMMVpsnVtbTaXSrJ7fmi+MyaR1yUm55J4ma5qu/b1pw6pVGZmUvSv/aPzs02vzz4WCJMRcrdgoU4Sxf8shzYXreA4VSWh69f0gBdxPAn43ywyABtvaxmKVngHZMZpRR9uL7lGW3NJNb2rxVpe3FDjIyRAJfqOy6Iq4BSNCIafN4wLCOxQznnb1NeOf4OZBXzwVoQdcLXjSiyzO0vHZtJTvyvsruInRJ+joPEHu8V04RTASRVdpJpm1QATk8q/sbIpkEUdYsAXztHC/Bb8OnPXBcdtWlQ7BojuBwEP8zpXL0BEn7gafVgNktbOdnVr6rd2gmfQqjqn0yjLaGUDs7ZgYo+USIWlLauJLsbzcTSDOg8c8U6dLwYQB22FnECqsl12UEWqkh1o5FgRT1PnwY7AdXVEkDwh8FQVSDjtK0x7Um60xZHI+0iTqTNG+1u4D6+QuATMPF++JQtKu05bPiGVI5Y1NDmt0XC+r461sImYAZi2VFXPg6yJe+glicD+uhNWm8Oq2UFNNxtN/pBHkaYVoh4gExaUtQidfnz+AJ454yM75iAO7dtoNT8rj6iz2epaS7AbaWH88g44ELGVZd4781CJbaz2vaz+mHmutX/t523lGu2cCrNJXZOQ2ym+yPLv2l7fqf/3GTztMyUjuo36o8Naa+Eqy0IZ0tVGhZr5W+vd6Jes9MRoGdWFKV+i/qOrsVae9Rbbe8JIGaptWL1U0AyJFaVU1SNXiB5/TXrUjugAL1Xr8gWVgQ0RoH5A/4HMajxWFrMnvyuPDxnrge/AmEfHIq95duK+H+d96s8SHQN4iNTsTeAHEjEHX0ngaPG2g0GnXNfWKBX45SEqp3U2a5Kc2y5+SP7+2kwH0rCpmkPdUcrBqPiFHUN7Ms4OUnIVae9J1kpOqXqjfa0lXmlEgtCUFbdacyAY1YV+XHxi79536HYdj503KBZjDTJa21oHC45kB9afwLVSwpJCCRiCGwqlng2AbFE6lRo94Iy4QPqXGJbTOeHefnl6XppwIwGGPc37LV/VpiANtKahkMkjWc/8X9SKp3v2NUM6N/ymmbg7HRQCRMPQoa2WFcZ4y2p1R/CfID9vyf4KVL65tPlDedHRmsiecbnbrdVit/gUUfyZwnFYZc5r7U/ShMXpzEjzFWidBuLRnUcp7o8ys6VVBppDWtkh2QLaKM3wr1kosa+e809+vLhGE+z4dRqXWVt4ZnYplL8c/Y8j1aX1sHuH5AMSDXkzmhtY0VWCgcQ+Tfm9D2xBOs5HQKxtSnOYhTrWEPiV23a4G2oNzr+8kSKVd7bfDo1LQRRSh41rS6/bGRLSCrZYElwsV6VB1nQsLEA6wxOjmCGqVLsd1RecgiKlHw22v3FnvdScUZo3dFcv/rYZa2c/TQX6J45yNv5/IPXjCzm8miDnFhF6FzGItBuWG55V3IJiS/Tlr8U3JS/pzBILasVHzaIDpIBD2p1YPl8ZJ538JKpHZHEPXfuhqlOv5c3VCZdh8/ju+dp2WgMmAgnSxXnZNL6mWnGUTFRkKzaROpZzfqUvwvLzhZOqZKEELyJfh95BJIlFWeoVWBoPt5cTTG/cVUNt2sEk4rw6Sla2Nu2jjPIgwB6EagAufzxyuWmCC8e5VBbqYNEFc6V8gA3tPHc14gbipmi+yiQkhwWhDsHkls0+kkyWHVvNAQTagkkCxeYnQqtPwegAMcEQTCaUtYteuUo8+8tKfuIIEHP5smELzPD0mnrIyYVnS7MI8IOf3vZNHNqJLNyVfBOTfhwmS+v9SSKhZfuSkUHOeTmG/znOS9aS0X6IDrj1YrHwhKK5vFwRXI08LRD6ltNjwTlFj3n0TAFcRS3y5xRh/+pQyTa7TtXpU+kV5bw7SqQ+3AtjeXawSZX16DRPEcqeVIAEO885clUq3JTigaD16lhMaJOPqBKzGK+xtZ9Zp18eBA9fl2eBtzd9pKC718IoO+W0hjKrsUn+G7Zt823S2YrBIMr7Eed73sYOtmV+VXPOP69qmQfC9Bv73rwBxJhrm7a8aHq1uWGTZtJfzMXbQD3yRSit80sw95j0taXBshJ3gF23bllWrKPfp2uG9AGpZIdxu1EfKCiAtX7FxXsD/sZFdpP/hpOdz9N9MyNcFnw78o3JJgy1dSGXpheBiX3nQr8lqFaUpUKm9O5oklDNiGdfDuBDmwHPR0JvBXX26O7SY6hE0dE3fuJY9eQ1sROwbKspkLN6F23XY9xbtZqlDE2bhwSfvTdW0XBBXkkye37ygZmfeHxzM6AqHgNlcm9qtFUx2moKhm55/ztVejaJ7SXkD5Y9tLEKNd5o9aLLNko/JsNHzDG9qAfIAWfgm85tPfzZnqOnR/mEMtKB4kg953BLd+IsJ3wCQSTYZTRpvsC1zOPFyMYKjTJACDh3lFtgcMk62BJA9zaRA01HvHzZ9blW09hSk9yrYmU6VmSNtEptIfVKvOl6reqfTGmYS7O7gts/K5HfD+afdlb7l41ur5fP6QLiwd/eOmD104M322pqBvTSw1JPgxoVH3x9Op40trhhZX4spbopYuH67rrkv4p9oXGOhxs0PbLe9NV+bMG5ck4o/JzB6TdkAjR3dRDge37KfuclBQZdYx7CZSruad4ZV8T/nRwrkomM5xHK3uIQEXkZWc+GVkMm76jU5Kp8YVad0n6V3mFonzpfmhXQTsOvtqEKJcTKU1R2Mgw53535FXTXHXXKHIynYvmMXEbQknPZk3OULS+m3b4sWZ5N/1UTml2cp6NpJhtSltz1wTAlaSiSkuIRbBNSQ8hdzNI3Pl9aWvX0gQrw0jwCM6CtTxY3QS8f1gCalqwOXDB4T5uk6PdAyAARVhJRroAAABFeGlmAABJSSoACAAAAAYAEgEDAAEAAAABAAAAGgEFAAEAAABWAAAAGwEFAAEAAABeAAAAKAEDAAEAAAACAAAAEwIDAAEAAAABAAAAaYcEAAEAAABmAAAAAAAAAEgAAAABAAAASAAAAAEAAAAGAACQBwAEAAAAMDIxMAGRBwAEAAAAAQIDAACgBwAEAAAAMDEwMAGgAwABAAAA//8AAAKgBAABAAAAXAMAAAOgBAABAAAAPgIAAAAAAAA="}},"time_used":60,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":33,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/exm=el_conf/ed=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_main","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.540Z","timestamp":1785132838540,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/exm=el_conf/ed=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_main HTTP/1.1\r\nHost: translate.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/rosetta\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"rosetta\"\r\nreport-to: {\"group\":\"rosetta\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/rosetta\"}]}\r\ncontent-length: 67956\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 18:00:05 GMT\r\nexpires: Thu, 22 Jul 2027 18:00:05 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 21 Jul 2026 20:35:41 GMT\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 389634\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":194344,"size_decoded":68816,"mime_type":"text/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (2519)","md5":"cdf9309b56a4ff330627409baead2538","sha1":"e98eac16441e99c9512052eb0087f535b9a609b9","sha256":"310629c4e47d7960e5a89cbd6a9c1d24a4e4d7c5e18346a69a67d92355cf2cd4","sha512":"cafd13a201e26b9f94f9a636ca1f7c191ec3a9fc3f297d35ee51b1304962383e7147509932a759bd903e27e53fb251600ad6942739e472161f5a09367c3776c1","ssdeep":"3072:kjsNxt45eITHt28KRu9gKavNuBDHK0QppB0/I:osb0muBzg","tlshash":"dd14e8d9b26270679263f4a5403f004eb53b68a5f9484dacb28de8e26df4d19017bf7c","first_seen":"2026-07-22T18:30:16.180779Z","last_seen":"2026-07-27T09:46:57.073481Z","times_seen":1955,"resource_available":true,"data":"InVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF90cj10aGlzLmRlZmF1bHRfdHJ8fHt9OyhmdW5jdGlvbihfKXt2YXIgd2luZG93PXRoaXM7CnRyeXsKdmFyIEdnLEhnLElnLFhnLGNoLGloLGpoLGxoLG1oLG9oLHNoLHVoLHRoLEFoLEJoLEZoLERoLEVoLERnO18uRWc9ZnVuY3Rpb24oYSl7aWYoRGcudGVzdChhKSlyZXR1cm4gYX07Xy5GZz1mdW5jdGlvbihhLGIpe2EuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyfHwoYS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODI9e30pO2EuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyLnNldmVyaXR5PWJ9O0dnPWZ1bmN0aW9uKGEpe2lmKCFfLlVhfHwhXy5WYSlyZXR1cm4hMTtmb3IodmFyIGI9MDtiPF8uVmEuYnJhbmRzLmxlbmd0aDtiKyspe3ZhciBjPV8uVmEuYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9O0hnPWZ1bmN0aW9uKCl7cmV0dXJuIF8udygiRmlyZWZveCIpfHxfLncoIkZ4aU9TIil9OwpJZz1mdW5jdGlvbigpe3JldHVybiBfLldhKCk/R2coIkNocm9taXVtIik6KF8udygiQ2hyb21lIil8fF8udygiQ3JpT1MiKSkmJiEoXy5XYSgpPzA6Xy53KCJFZGdlIikpfHxfLncoIlNpbGsiKX07Xy5KZz1mdW5jdGlvbigpe3JldHVybiBfLncoIlNhZmFyaSIpJiYhKElnKCl8fChfLldhKCk/MDpfLncoIkNvYXN0IikpfHxfLlhhKCl8fChfLldhKCk/MDpfLncoIkVkZ2UiKSl8fChfLldhKCk/R2coIk1pY3Jvc29mdCBFZGdlIik6Xy53KCJFZGcvIikpfHwoXy5XYSgpP0dnKCJPcGVyYSIpOl8udygiT1BSIikpfHxIZygpfHxfLncoIlNpbGsiKXx8Xy53KCJBbmRyb2lkIikpfTtfLktnPWZ1bmN0aW9uKCl7cmV0dXJuIF8udygiQW5kcm9pZCIpJiYhKElnKCl8fEhnKCl8fF8uWGEoKXx8Xy53KCJTaWxrIikpfTsKXy5NZz1mdW5jdGlvbihhLGIpe2lmKGEhPW51bGwpe3ZhciBjO3ZhciBkPShjPUxnKSE9bnVsbD9jOkxnPXt9O2M9ZFthXXx8MDtjPj1ifHwoZFthXT1jKzEsYT1FcnJvcigpLF8uRmcoYSwiaW5jaWRlbnQiKSxfLnJiKGEpKX19O18uTmc9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbCgpPT09InN5bWJvbCI/KGM9PT12b2lkIDA/MDpjKSYmU3ltYm9sLmZvciYmYT9TeW1ib2wuZm9yKGEpOmEhPW51bGw/U3ltYm9sKGEpOlN5bWJvbCgpOmJ9O18uUmc9ZnVuY3Rpb24oYSxiKXtfLk9nfHxfLkggaW4gYXx8UGcoYSxRZyk7YVtfLkhdfD1ifTtfLlNnPWZ1bmN0aW9uKGEsYil7Xy5PZ3x8Xy5IIGluIGF8fFBnKGEsUWcpO2FbXy5IXT1ifTtfLlRnPWZ1bmN0aW9uKGEpe18uUmcoYSwzNCk7cmV0dXJuIGF9O18uVWc9ZnVuY3Rpb24oYSl7Xy5SZyhhLDgxOTIpO3JldHVybiBhfTsKXy5XZz1mdW5jdGlvbihhLGIpe3JldHVybiBiPT09dm9pZCAwP2EuZyE9PV8uVmcmJiEhKDImKGEuSltfLkhdfDApKTohISgyJmIpJiZhLmchPT1fLlZnfTtYZz1mdW5jdGlvbihhKXthLlRsPSEwO3JldHVybiBhfTtfLmJoPWZ1bmN0aW9uKGEpe3ZhciBiPWE7aWYoWWcoYikpe2lmKCEvXlxzKig/Oi0/WzEtOV1cZCp8MCk/XHMqJC8udGVzdChiKSl0aHJvdyBFcnJvcihTdHJpbmcoYikpO31lbHNlIGlmKFpnKGIpJiYhTnVtYmVyLmlzU2FmZUludGVnZXIoYikpdGhyb3cgRXJyb3IoU3RyaW5nKGIpKTtyZXR1cm4gJGc/QmlnSW50KGEpOmE9YWgoYSk/YT8iMSI6IjAiOllnKGEpP2EudHJpbSgpfHwiMCI6U3RyaW5nKGEpfTsKY2g9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aD5iLmxlbmd0aClyZXR1cm4hMTtpZihhLmxlbmd0aDxiLmxlbmd0aHx8YT09PWIpcmV0dXJuITA7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iW2NdO2lmKGQ+ZSlyZXR1cm4hMTtpZihkPGUpcmV0dXJuITB9fTtfLmhoPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEhPW51bGwmJmFbZGhdPT09ZWgpcmV0dXJuIGE7aWYoIUFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGM/ZCYyP2JbXy5maF18fChiW18uZmhdPV8uZ2goYikpOm5ldyBiOnZvaWQgMDtjPWFbXy5IXXwwO2Q9Y3xkJjMyfGQmMjtkIT09YyYmXy5TZyhhLGQpO3JldHVybiBuZXcgYihhKX07Xy5naD1mdW5jdGlvbihhKXthPW5ldyBhO18uVGcoYS5KKTtyZXR1cm4gYX07aWg9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O2poPWZ1bmN0aW9uKGEpe3JldHVybiBhfTsKbGg9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2E9Xy5oaChhLGQsYyxmKTtlJiYoYT1fLmtoKGEpKTtyZXR1cm4gYX07bWg9ZnVuY3Rpb24oYSl7cmV0dXJuW2EsdGhpcy5nZXQoYSldfTtvaD1mdW5jdGlvbihhLGIpe2I8MTAwfHxfLk1nKG5oLDEpfTsKc2g9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZCE9PXZvaWQgMDtkPSEhZDt2YXIgZj1fLnBoKF8ucWgpLGc7IWUmJl8uT2cmJmYmJihnPWFbZl0pJiZnLlRrKG9oKTtmPVtdO3ZhciBoPWEubGVuZ3RoO2c9NDI5NDk2NzI5NTt2YXIgaz0hMSxsPSEhKGImNjQpLG49bD9iJjEyOD8wOi0xOnZvaWQgMDtpZighKGImMSkpe3ZhciBxPWgmJmFbaC0xXTtxIT1udWxsJiZ0eXBlb2YgcT09PSJvYmplY3QiJiZxLmNvbnN0cnVjdG9yPT09T2JqZWN0PyhoLS0sZz1oKTpxPXZvaWQgMDtpZihsJiYhKGImMTI4KSYmIWUpe2s9ITA7dmFyIHA7Zz0oKHA9cmgpIT1udWxsP3A6aWgpKGctbixuLGEscSx2b2lkIDApK259fWI9dm9pZCAwO2ZvcihlPTA7ZTxoO2UrKylpZihwPWFbZV0scCE9bnVsbCYmKHA9YyhwLGQpKSE9bnVsbClpZihsJiZlPj1nKXt2YXIgcj1lLW4sdD12b2lkIDA7KCh0PWIpIT1udWxsP3Q6Yj17fSlbcl09cH1lbHNlIGZbZV09cDtpZihxKWZvcih2YXIgQSBpbiBxKWE9cVtBXSxhIT0KbnVsbCYmKGE9YyhhLGQpKSE9bnVsbCYmKGg9K0EsZT12b2lkIDAsbCYmIU51bWJlci5pc05hTihoKSYmKGU9aCtuKTxnP2ZbZV09YTooaD12b2lkIDAsKChoPWIpIT1udWxsP2g6Yj17fSlbQV09YSkpO2ImJihrP2YucHVzaChiKTpmW2ddPWIpO3JldHVybiBmfTt1aD1mdW5jdGlvbihhKXthWzBdPXRoKGFbMF0pO2FbMV09dGgoYVsxXSk7cmV0dXJuIGF9Owp0aD1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgIm51bWJlciI6cmV0dXJuIE51bWJlci5pc0Zpbml0ZShhKT9hOiIiK2E7Y2FzZSAiYmlnaW50IjpyZXR1cm4oMCxfLnZoKShhKT9OdW1iZXIoYSk6IiIrYTtjYXNlICJib29sZWFuIjpyZXR1cm4gYT8xOjA7Y2FzZSAib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGEpKXt2YXIgYj1hW18uSF18MDtyZXR1cm4gYS5sZW5ndGg9PT0wJiZiJjE/dm9pZCAwOnNoKGEsYix0aCl9aWYoYSE9bnVsbCYmYVtkaF09PT1laClyZXR1cm4gXy53aChhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy54aCYmYSBpbnN0YW5jZW9mIF8ueGgpcmV0dXJuIGEuZygpO2lmKGEgaW5zdGFuY2VvZiBfLnloKXJldHVybiBhPWEuc2l6ZSE9PTA/Xy56aChhLHVoKTp2b2lkIDAsYTtyZXR1cm59cmV0dXJuIGF9O18ud2g9ZnVuY3Rpb24oYSl7YT1hLko7cmV0dXJuIHNoKGEsYVtfLkhdfDAsdGgpfTsKXy5JPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gQWgoYSxiLGMsMjA0OCl9OwpBaD1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/MDpkO2lmKGE9PW51bGwpe3ZhciBlPTMyO2M/KGE9W2NdLGV8PTEyOCk6YT1bXTtiJiYoZT1lJi0xNjc2MDgzM3woYiYxMDIzKTw8MTQpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkoYSkpdGhyb3cgRXJyb3IoImJhIik7ZT1hW18uSF18MDtpZihfLk1jJiYxJmUpdGhyb3cgRXJyb3IoImNhIik7MjA0OCZlJiYhKDImZSkmJkJoKCk7aWYoZSYyNTYpdGhyb3cgRXJyb3IoImRhIik7aWYoZSY2NClyZXR1cm4oZXxkKSE9PWUmJl8uU2coYSxlfGQpLGE7aWYoYyYmKGV8PTEyOCxjIT09YVswXSkpdGhyb3cgRXJyb3IoImVhIik7YTp7Yz1hO2V8PTY0O3ZhciBmPWMubGVuZ3RoO2lmKGYpe3ZhciBnPWYtMSxoPWNbZ107aWYoaCE9bnVsbCYmdHlwZW9mIGg9PT0ib2JqZWN0IiYmaC5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7Yj1lJjEyOD8wOi0xO2ctPWI7aWYoZz49MTAyNCl0aHJvdyBFcnJvcigiZ2EiKTtmb3IodmFyIGsgaW4gaClmPStrLApmPGcmJihjW2YrYl09aFtrXSxkZWxldGUgaFtrXSk7ZT1lJi0xNjc2MDgzM3woZyYxMDIzKTw8MTQ7YnJlYWsgYX19aWYoYil7az1NYXRoLm1heChiLGYtKGUmMTI4PzA6LTEpKTtpZihrPjEwMjQpdGhyb3cgRXJyb3IoImhhIik7ZT1lJi0xNjc2MDgzM3woayYxMDIzKTw8MTR9fX1fLlNnKGEsZXw2NHxkKTtyZXR1cm4gYX07Qmg9ZnVuY3Rpb24oKXtpZihfLk1jKXRocm93IEVycm9yKCJmYSIpO18uTWcoQ2gsNSl9OwpGaD1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGM9YVtfLkhdfDA7cmV0dXJuIGEubGVuZ3RoPT09MCYmYyYxP3ZvaWQgMDpEaChhLGMsYil9aWYoYSE9bnVsbCYmYVtkaF09PT1laClyZXR1cm4gRWgoYSk7aWYoYSBpbnN0YW5jZW9mIF8ueWgpe2I9YS5LYjtpZihiJjIpcmV0dXJuIGE7aWYoIWEuc2l6ZSlyZXR1cm47Yz1fLlRnKF8uemgoYSkpO2lmKGEuR2IpZm9yKGE9MDthPGMubGVuZ3RoO2ErKyl7dmFyIGQ9Y1thXSxlPWRbMV07ZT09bnVsbHx8dHlwZW9mIGUhPT0ib2JqZWN0Ij9lPXZvaWQgMDplIT1udWxsJiZlW2RoXT09PWVoP2U9RWgoZSk6QXJyYXkuaXNBcnJheShlKT9lPURoKGUsZVtfLkhdfDAsISEoYiYzMikpOmU9dm9pZCAwO2RbMV09ZX1yZXR1cm4gY31pZigiZnVuY3Rpb24iPT10eXBlb2YgXy54aCYmYSBpbnN0YW5jZW9mIF8ueGgpcmV0dXJuIGF9OwpEaD1mdW5jdGlvbihhLGIsYyl7aWYoYiYyKXJldHVybiBhOyFjfHw0MDk2JmJ8fDE2JmI/YT1fLkdoKGEsYiwhMSxjJiYhKGImMTYpKTooXy5SZyhhLDM0KSxiJjQmJk9iamVjdC5mcmVlemUoYSkpO3JldHVybiBhfTtfLkhoPWZ1bmN0aW9uKGEsYixjKXthPW5ldyBhLmNvbnN0cnVjdG9yKGIpO2MmJihhLmc9Xy5WZyk7YS5oPV8uVmc7cmV0dXJuIGF9O0VoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuSixjPWJbXy5IXXwwO3JldHVybiBfLldnKGEsYyk/YTpfLkloKGEsYixjKT9fLkhoKGEsYik6Xy5HaChiLGMpfTtfLkdoPWZ1bmN0aW9uKGEsYixjLGQpe2QhPW51bGx8fChkPSEhKDM0JmIpKTthPXNoKGEsYixGaCxkKTtkPTMyO2MmJihkfD0yKTtiPWImMTY3NjkyMTd8ZDtfLlNnKGEsYik7cmV0dXJuIGF9OwpfLmtoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuSixjPWJbXy5IXXwwO3JldHVybiBfLldnKGEsYyk/Xy5JaChhLGIsYyk/Xy5IaChhLGIsITApOm5ldyBhLmNvbnN0cnVjdG9yKF8uR2goYixjLCExKSk6YX07Xy5JaD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGMmMj8hMDpjJjMyJiYhKGMmNDA5Nik/KF8uU2coYixjfDIpLGEuZz1fLlZnLCEwKTohMX07Xy5waD1mdW5jdGlvbihhKXtyZXR1cm4gYX07RGc9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTtfLkpoPUhnKCk7Xy5LaD1fLlphKCl8fF8udygiaVBvZCIpO18uTGg9Xy53KCJpUGFkIik7Xy5NaD1fLktnKCk7Xy5OaD1JZygpO18uT2g9Xy5KZygpJiYhXy4kYSgpO18uUGg9IV8uU2MmJnR5cGVvZiBidG9hPT09ImZ1bmN0aW9uIjt2YXIgTGc9dm9pZCAwO3ZhciBRaCxuaCxDaCxkaDtfLk9nPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sKCk9PT0ic3ltYm9sIjtRaD1fLk5nKCJqYXMiLHZvaWQgMCwhMCk7Xy5maD1fLk5nKHZvaWQgMCwiMGRpIik7Xy5xaD1fLk5nKHZvaWQgMCxTeW1ib2woKSk7Xy5SaD1fLk5nKHZvaWQgMCwiMHViIik7bmg9Xy5OZyh2b2lkIDAsIjB1YnMiKTtDaD1fLk5nKHZvaWQgMCwiMGFjdGsiKTtkaD1fLk5nKCJtX20iLCJYbCIsITApO18uU2g9Xy5OZygpO3ZhciBRZyxQZyxVaDtRZz17ZWk6e3ZhbHVlOjAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITF9fTtQZz1PYmplY3QuZGVmaW5lUHJvcGVydGllcztfLkg9Xy5PZz9RaDoiZWkiO1VoPVtdO18uU2coVWgsNyk7Xy5UaD1PYmplY3QuZnJlZXplKFVoKTt2YXIgZWgsVmg7ZWg9e307Xy5WZz17fTtWaD1mdW5jdGlvbihhLGIsYyl7dGhpcy5nPWE7dGhpcy5oPWI7dGhpcy5qPWN9O1ZoLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nLm5leHQoKTthLmRvbmV8fChhLnZhbHVlPXRoaXMuaC5jYWxsKHRoaXMuaixhLnZhbHVlKSk7cmV0dXJuIGF9O1ZoLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O18uV2g9T2JqZWN0LmZyZWV6ZSh7fSk7Xy5YaD1PYmplY3QuZnJlZXplKHt9KTt2YXIgWmc9WGcoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9KSxZZz1YZyhmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn0pLGFoPVhnKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn0pO3ZhciAkZz10eXBlb2YgXy52LkJpZ0ludD09PSJmdW5jdGlvbiImJnR5cGVvZiBfLnYuQmlnSW50KDApPT09ImJpZ2ludCI7dmFyICRoLFloLGFpLFpoO18udmg9WGcoZnVuY3Rpb24oYSl7cmV0dXJuICRnP2E+PVloJiZhPD1aaDphWzBdPT09Ii0iP2NoKGEsJGgpOmNoKGEsYWkpfSk7JGg9TnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIudG9TdHJpbmcoKTtZaD0kZz9CaWdJbnQoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpOnZvaWQgMDthaT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUi50b1N0cmluZygpO1poPSRnP0JpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik6dm9pZCAwO18uYmk9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzSW50Tjp2b2lkIDA7Xy5jaT1OdW1iZXIuaXNTYWZlSW50ZWdlcjtfLmRpPU51bWJlci5pc0Zpbml0ZTtfLmVpPU1hdGgudHJ1bmM7dmFyIGZpPWZ1bmN0aW9uKCl7dHJ5e3ZhciBhPWZ1bmN0aW9uKCl7cmV0dXJuKDAsXy5UYikoTWFwLFtdLHRoaXMuY29uc3RydWN0b3IpfTtfLkIoYSxNYXApO18uUWMobmV3IGEpO3JldHVybiExfWNhdGNoKGIpe3JldHVybiEwfX0oKSxnaT1mdW5jdGlvbigpe3RoaXMuZz1uZXcgTWFwfSxoaSxpaTtfLm09Z2kucHJvdG90eXBlO18ubS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZy5nZXQoYSl9O18ubS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmcuc2V0KGEsYik7dGhpcy5zaXplPXRoaXMuZy5zaXplO3JldHVybiB0aGlzfTtfLm0uZGVsZXRlPWZ1bmN0aW9uKGEpe2E9dGhpcy5nLmRlbGV0ZShhKTt0aGlzLnNpemU9dGhpcy5nLnNpemU7cmV0dXJuIGF9O18ubS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuZy5jbGVhcigpO3RoaXMuc2l6ZT10aGlzLmcuc2l6ZX07Xy5tLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5nLmhhcyhhKX07Xy5tLmVudHJpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLmVudHJpZXMoKX07Cl8ubS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5rZXlzKCl9O18ubS52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLnZhbHVlcygpfTtfLm0uZm9yRWFjaD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmcuZm9yRWFjaChhLGIpfTtnaS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVudHJpZXMoKX07aGk9ZnVuY3Rpb24oKXtpZihmaSlyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGdpLnByb3RvdHlwZSxNYXAucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhnaS5wcm90b3R5cGUse3NpemU6e3ZhbHVlOjAsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITB9fSksZ2k7dmFyIGE9ZnVuY3Rpb24oKXtyZXR1cm4oMCxfLlRiKShNYXAsW10sdGhpcy5jb25zdHJ1Y3Rvcil9O18uQihhLE1hcCk7cmV0dXJuIGF9KCk7Cl8ueWg9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1jPT09dm9pZCAwP2poOmM7ZD1kPT09dm9pZCAwP2poOmQ7dmFyIGU9aGkuY2FsbCh0aGlzKXx8dGhpcztlLktiPWFbXy5IXXwwO2UuR2I9YjtlLmFkPWM7ZS5rZz1lLkdiP2xoOmQ7Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspe3ZhciBnPWFbZl0saD1jKGdbMF0sITEsITApLGs9Z1sxXTtiP2s9PT12b2lkIDAmJihrPW51bGwpOms9ZChnWzFdLCExLCEwLHZvaWQgMCx2b2lkIDAsZS5LYik7aGkucHJvdG90eXBlLnNldC5jYWxsKGUsaCxrKX1yZXR1cm4gZX07Xy5CKF8ueWgsaGkpO2lpPWZ1bmN0aW9uKGEpe2lmKGEuS2ImMil0aHJvdyBFcnJvcigiYWEiKTt9O18uemg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5VZyhBcnJheS5mcm9tKGhpLnByb3RvdHlwZS5lbnRyaWVzLmNhbGwoYSksYikpfTtfLm09Xy55aC5wcm90b3R5cGU7Xy5tLmNsZWFyPWZ1bmN0aW9uKCl7aWkodGhpcyk7aGkucHJvdG90eXBlLmNsZWFyLmNhbGwodGhpcyl9OwpfLm0uZGVsZXRlPWZ1bmN0aW9uKGEpe2lpKHRoaXMpO3JldHVybiBoaS5wcm90b3R5cGUuZGVsZXRlLmNhbGwodGhpcyx0aGlzLmFkKGEsITAsITEpKX07Xy5tLmVudHJpZXM9ZnVuY3Rpb24oKXtpZih0aGlzLkdiKXt2YXIgYT1oaS5wcm90b3R5cGUua2V5cy5jYWxsKHRoaXMpO2E9bmV3IFZoKGEsbWgsdGhpcyl9ZWxzZSBhPWhpLnByb3RvdHlwZS5lbnRyaWVzLmNhbGwodGhpcyk7cmV0dXJuIGF9O18ubS52YWx1ZXM9ZnVuY3Rpb24oKXtpZih0aGlzLkdiKXt2YXIgYT1oaS5wcm90b3R5cGUua2V5cy5jYWxsKHRoaXMpO2E9bmV3IFZoKGEsXy55aC5wcm90b3R5cGUuZ2V0LHRoaXMpfWVsc2UgYT1oaS5wcm90b3R5cGUudmFsdWVzLmNhbGwodGhpcyk7cmV0dXJuIGF9OwpfLm0uZm9yRWFjaD1mdW5jdGlvbihhLGIpe3RoaXMuR2I/aGkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0aGlzLGZ1bmN0aW9uKGMsZCxlKXthLmNhbGwoYixlLmdldChkKSxkLGUpfSk6aGkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0aGlzLGEsYil9O18ubS5zZXQ9ZnVuY3Rpb24oYSxiKXtpaSh0aGlzKTthPXRoaXMuYWQoYSwhMCwhMSk7cmV0dXJuIGE9PW51bGw/dGhpczpiPT1udWxsPyhoaS5wcm90b3R5cGUuZGVsZXRlLmNhbGwodGhpcyxhKSx0aGlzKTpoaS5wcm90b3R5cGUuc2V0LmNhbGwodGhpcyxhLHRoaXMua2coYiwhMCwhMCx0aGlzLkdiLCExLHRoaXMuS2IpKX07Xy5tLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gaGkucHJvdG90eXBlLmhhcy5jYWxsKHRoaXMsdGhpcy5hZChhLCExLCExKSl9OwpfLm0uZ2V0PWZ1bmN0aW9uKGEpe2E9dGhpcy5hZChhLCExLCExKTt2YXIgYj1oaS5wcm90b3R5cGUuZ2V0LmNhbGwodGhpcyxhKTtpZihiIT09dm9pZCAwKXt2YXIgYz10aGlzLkdiO3JldHVybiBjPyhjPXRoaXMua2coYiwhMSwhMCxjLHRoaXMuTmssdGhpcy5LYiksYyE9PWImJmhpLnByb3RvdHlwZS5zZXQuY2FsbCh0aGlzLGEsYyksYyk6Yn19O18ueWgucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbnRyaWVzKCl9O18ueWgucHJvdG90eXBlLnRvSlNPTj12b2lkIDA7dmFyIHJoO18uamk9Xy5iaCgwKTtfLko9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuSj1fLkkoYSxiLGMpfTtfLkoucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBfLndoKHRoaXMpfTtfLkoucHJvdG90eXBlW2RoXT1laDtfLkoucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSi50b1N0cmluZygpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIExpLE1pLE5pLE9pLFJpLFBpLFFpLFNpLFVpLFdpLFhpO18ua2k9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5lYy5hcHBseSgxLGFyZ3VtZW50cyk7aWYoYi5sZW5ndGg9PT0wKXJldHVybiBfLk1hKGFbMF0pO2Zvcih2YXIgYz1hWzBdLGQ9MDtkPGIubGVuZ3RoO2QrKyljKz1lbmNvZGVVUklDb21wb25lbnQoYltkXSkrYVtkKzFdO3JldHVybiBfLk1hKGMpfTtfLmxpPWZ1bmN0aW9uKGEpe18uUmcoYSwzMik7cmV0dXJuIGF9O18ubWk9ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEpfTtfLm5pPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09ImJvb2xlYW4iKXRocm93IEVycm9yKCIkYCIrXy5vYyhhKSsiYCIrYSk7cmV0dXJuIGF9O18ub2k9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PT0iYm9vbGVhbiIpcmV0dXJuIGE7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4hIWF9OwpfLnBpPWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsfHx0eXBlb2YgYT09PSJzdHJpbmciP2E6dm9pZCAwfTtfLnFpPWZ1bmN0aW9uKGEpe2lmKGEuZyE9PV8uVmcpcmV0dXJuITE7dmFyIGI9YS5KO2I9Xy5HaChiLGJbXy5IXXwwKTtfLlJnKGIsMjA0OCk7YS5KPWI7YS5nPXZvaWQgMDthLmg9dm9pZCAwO3JldHVybiEwfTtfLnJpPWZ1bmN0aW9uKGEpe2lmKCFfLnFpKGEpJiZfLldnKGEsYS5KW18uSF18MCkpdGhyb3cgRXJyb3IoKTt9O18uc2k9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hW18uSF18MCk7YiYzMiYmIShiJjQwOTYpJiZfLlNnKGEsYnw0MDk2KX07Cl8udGk9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1jKyhlPzA6LTEpLGc9YS5sZW5ndGgtMTtpZihnPj0xKyhlPzA6LTEpJiZmPj1nKXt2YXIgaD1hW2ddO2lmKGghPW51bGwmJnR5cGVvZiBoPT09Im9iamVjdCImJmguY29uc3RydWN0b3I9PT1PYmplY3QpcmV0dXJuIGhbY109ZCxifWlmKGY8PWcpcmV0dXJuIGFbZl09ZCxiO2lmKGQhPT12b2lkIDApe3ZhciBrO2c9KChrPWIpIT1udWxsP2s6Yj1hW18uSF18MCk+PjE0JjEwMjN8fDUzNjg3MDkxMjtjPj1nP2QhPW51bGwmJihmPXt9LGFbZysoZT8wOi0xKV09KGZbY109ZCxmKSk6YVtmXT1kfXJldHVybiBifTtfLkJpPWZ1bmN0aW9uKGEsYil7YT1fLnVpKGEsYix2b2lkIDApO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6Xy5UaH07Xy5DaT1mdW5jdGlvbihhLGIpezImYiYmKGF8PTIpO3JldHVybiBhfDF9O18uRGk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT0oMiZiP2F8MjphJi0zKSYtMjczfTsKXy5FaT1mdW5jdGlvbihhKXtyZXR1cm4hISgyJmEpJiYhISg0JmEpfHwhISgyNTYmYSl9O18uRmk9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgaz1iO2Y9PT0xfHwoZiE9PTQ/MDoyJmJ8fCEoMTYmYikmJjMyJmQpP18uRWkoYil8fChifD0hYS5sZW5ndGh8fGcmJiEoNDA5NiZiKXx8MzImZCYmISg0MDk2JmJ8fDE2JmIpPzI6MjU2LGIhPT1rJiZfLlNnKGEsYiksT2JqZWN0LmZyZWV6ZShhKSk6KGY9PT0yJiZfLkVpKGIpJiYoYT1fLm1pKGEpLGs9MCxiPV8uRGkoYixkKSxkPV8udGkoYyxkLGUsYSkpLF8uRWkoYil8fChofHwoYnw9MTYpLGIhPT1rJiZfLlNnKGEsYikpKTsyJmJ8fCEoNDA5NiZifHwxNiZiKXx8Xy5zaShjLGQpO3JldHVybiBhfTtfLkdpPWZ1bmN0aW9uKGEsYixjLGQpe18ucmkoYSk7dmFyIGU9YS5KO18udGkoZSxlW18uSF18MCxiLChkPT09IjAiP051bWJlcihjKT09PTA6Yz09PWQpP3ZvaWQgMDpjKTtyZXR1cm4gYX07Cl8uSGk9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0hMTtkPV8udWkoYSxkLGUsZnVuY3Rpb24oZyl7dmFyIGg9Xy5oaChnLGMsITEsYik7Zj1oIT09ZyYmaCE9bnVsbDtyZXR1cm4gaH0pO2lmKGQhPW51bGwpcmV0dXJuIGYmJiFfLldnKGQpJiZfLnNpKGEsYiksZH07Cl8uSWk9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgaz1fLldnKGEsYyk7Zj1rPzE6ZjtnPSEhZ3x8Zj09PTM7az1oJiYhazsoZj09PTJ8fGspJiZfLnFpKGEpJiYoYj1hLkosYz1iW18uSF18MCk7YT1fLkJpKGIsZSk7dmFyIGw9YT09PV8uVGg/NzphW18uSF18MCxuPV8uQ2kobCxjKTtpZihoPSEoNCZuKSl7dmFyIHE9YSxwPWMscj0hISgyJm4pO3ImJihwfD0yKTtmb3IodmFyIHQ9IXIsQT0hMCxEPTAsRT0wO0Q8cS5sZW5ndGg7RCsrKXt2YXIgYmE9Xy5oaChxW0RdLGQsITEscCk7aWYoYmEgaW5zdGFuY2VvZiBkKXtpZighcil7dmFyIFo9Xy5XZyhiYSk7dCYmKHQ9IVopO0EmJihBPVopfXFbRSsrXT1iYX19RTxEJiYocS5sZW5ndGg9RSk7bnw9NDtuPUE/biYtNDA5NzpufDQwOTY7bj10P258ODpuJi05fW4hPT1sJiYoXy5TZyhhLG4pLDImbiYmT2JqZWN0LmZyZWV6ZShhKSk7aWYoayYmISg4Jm58fCFhLmxlbmd0aCYmKGY9PT0xfHwoZiE9PTQ/MDoyJm58fCEoMTYmbikmJgozMiZjKSkpKXtfLkVpKG4pJiYoYT1fLm1pKGEpLG49Xy5EaShuLGMpLGM9Xy50aShiLGMsZSxhKSk7ZD1hO2s9bjtmb3IobD0wO2w8ZC5sZW5ndGg7bCsrKXE9ZFtsXSxuPV8ua2gocSkscSE9PW4mJihkW2xdPW4pO2t8PTg7bj1rPWQubGVuZ3RoP2t8NDA5NjprJi00MDk3O18uU2coYSxuKX1yZXR1cm4gYT1fLkZpKGEsbixiLGMsZSxmLGgsZyl9O18uSmk9ZnVuY3Rpb24oYSl7YT09bnVsbCYmKGE9dm9pZCAwKTtyZXR1cm4gYX07Xy5LaT1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7Yj1KU09OLnBhcnNlKGIpO2lmKCFBcnJheS5pc0FycmF5KGIpKXRocm93IEVycm9yKCJpYWAiK18ub2MoYikrImAiK2IpO18uVGcoYik7cmV0dXJuIG5ldyBhKGIpfX07TGk9ZnVuY3Rpb24oYSl7aWYoYS5HKXRocm93IG5ldyBUeXBlRXJyb3IoImYiKTthLkc9ITB9O01pPWZ1bmN0aW9uKGEsYil7YS5sPXtiZjpiLENmOiEwfTthLmc9YS5DfHxhLm99OwpOaT1mdW5jdGlvbihhLGIpe2EucmF3PWI7T2JqZWN0LmZyZWV6ZSYmKE9iamVjdC5mcmVlemUoYSksT2JqZWN0LmZyZWV6ZShiKSk7cmV0dXJuIGF9O18uSz1mdW5jdGlvbihhKXtyZXR1cm4gTmkoYSxhKX07T2k9ZnVuY3Rpb24oYSl7dGhpcy5nPW5ldyBfLkY7dGhpcy5oPWF9O1JpPWZ1bmN0aW9uKGEsYil7TGkoYS5nKTt2YXIgYz1hLmcuQTtpZihjKXJldHVybiBQaShhLCJyZXR1cm4iaW4gYz9jWyJyZXR1cm4iXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLmcucmV0dXJuKTthLmcucmV0dXJuKGIpO3JldHVybiBRaShhKX07UGk9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLmcuQSxjKTtfLmNjKGUpO2lmKCFlLmRvbmUpcmV0dXJuIGEuZy5HPSExLGU7dmFyIGY9ZS52YWx1ZX1jYXRjaChnKXtyZXR1cm4gYS5nLkE9bnVsbCxNaShhLmcsZyksUWkoYSl9YS5nLkE9bnVsbDtkLmNhbGwoYS5nLGYpO3JldHVybiBRaShhKX07ClFpPWZ1bmN0aW9uKGEpe2Zvcig7YS5nLmc7KXRyeXt2YXIgYj1hLmgoYS5nKTtpZihiKXJldHVybiBhLmcuRz0hMSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChjKXthLmcuaj12b2lkIDAsTWkoYS5nLGMpfWEuZy5HPSExO2lmKGEuZy5sKXtiPWEuZy5sO2EuZy5sPW51bGw7aWYoYi5DZil0aHJvdyBiLmJmO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKU2k9ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe0xpKGEuZyk7YS5nLkE/Yj1QaShhLGEuZy5BLm5leHQsYixhLmcuSSk6KGEuZy5JKGIpLGI9UWkoYSkpO3JldHVybiBifTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe0xpKGEuZyk7YS5nLkE/Yj1QaShhLGEuZy5BWyJ0aHJvdyJdLGIsYS5nLkkpOihNaShhLmcsYiksYj1RaShhKSk7cmV0dXJuIGJ9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBSaShhLGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319O1VpPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07Xy5WaT1mdW5jdGlvbihhKXtyZXR1cm4gVWkobmV3IFNpKG5ldyBPaShhKSkpfTsKV2k9ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKC9cLShbYS16XSkvZyxmdW5jdGlvbihiLGMpe3JldHVybiBjLnRvVXBwZXJDYXNlKCl9KX07WGk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShSZWdFeHAoIihefFtcXHNdKykoW2Etel0pIiwiZyIpLGZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYytkLnRvVXBwZXJDYXNlKCl9KX07Xy5ZaT1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5vZSlyZXR1cm4gYTt2YXIgYj1uZXcgXy5vZShfLmxlKTtfLm5lKGIsMixhKTtyZXR1cm4gYn07Cl8udWk9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYj09PS0xKXJldHVybiBudWxsO3ZhciBlPWIrKGM/MDotMSksZj1hLmxlbmd0aC0xO2lmKCEoZjwxKyhjPzA6LTEpKSl7aWYoZT49Zil7dmFyIGc9YVtmXTtpZihnIT1udWxsJiZ0eXBlb2YgZz09PSJvYmplY3QiJiZnLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtjPWdbYl07dmFyIGg9ITB9ZWxzZSBpZihlPT09ZiljPWc7ZWxzZSByZXR1cm59ZWxzZSBjPWFbZV07aWYoZCYmYyE9bnVsbCl7ZD1kKGMpO2lmKGQ9PW51bGwpcmV0dXJuIGQ7aWYoIU9iamVjdC5pcyhkLGMpKXJldHVybiBoP2dbYl09ZDphW2VdPWQsZH1yZXR1cm4gY319O18uWmk9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPV8udWkoYS5KLGIsYyxlKTtpZihiIT09bnVsbHx8ZCYmYS5oIT09Xy5WZylyZXR1cm4gYn07Xy4kaT1mdW5jdGlvbihhLGIsYyl7Xy5yaShhKTt2YXIgZD1hLko7Xy50aShkLGRbXy5IXXwwLGIsYyk7cmV0dXJuIGF9OwpfLmFqPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09Xy5XaD8yOjR9O18uYmo9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5KLGY9ZVtfLkhdfDA7Yj1fLkhpKGUsZixiLGMsZCk7aWYoYj09bnVsbClyZXR1cm4gYjtmPWVbXy5IXXwwO2lmKCFfLldnKGEsZikpe3ZhciBnPV8ua2goYik7ZyE9PWImJihfLnFpKGEpJiYoZT1hLkosZj1lW18uSF18MCksYj1nLGY9Xy50aShlLGYsYyxiLGQpLF8uc2koZSxmKSl9cmV0dXJuIGJ9O18uY2o9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSjtyZXR1cm4gXy5JaShhLGQsZFtfLkhdfDAsYixjLF8uYWooKSwhMSwhMCl9O18uTD1mdW5jdGlvbihhLGIsYyl7Yz1fLkppKGMpO18uJGkoYSxiLGMpO2MmJiFfLldnKGMpJiZfLnNpKGEuSik7cmV0dXJuIGF9O18uTT1mdW5jdGlvbihhLGIpe3ZhciBjPWM9PT12b2lkIDA/ITE6YzthPV8ub2koXy5aaShhLGIpKTtyZXR1cm4gYSE9bnVsbD9hOmN9OwpfLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1jPT09dm9pZCAwPyIiOmM7dmFyIGQ7cmV0dXJuKGQ9Xy5waShfLlppKGEsYikpKSE9bnVsbD9kOmN9O18uZGo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1jPT09dm9pZCAwPzA6YzthPV8uWmkoYSxiKTthPWE9PW51bGw/YTooMCxfLmRpKShhKT9hfDA6dm9pZCAwO3JldHVybiBhIT1udWxsP2E6Y307Xy5laj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uR2koYSxiLGM9PW51bGw/YzpfLm5pKGMpLCExKX07Xy5maj1mdW5jdGlvbihhLGIpe2lmKGI9PW51bGx8fGI9PSIiKXJldHVybiBuZXcgYTtiPUpTT04ucGFyc2UoYik7aWYoIUFycmF5LmlzQXJyYXkoYikpdGhyb3cgRXJyb3IoImphIik7cmV0dXJuIG5ldyBhKF8ubGkoYikpfTt2YXIgaWosZ2osamo7Xy5oaj1mdW5jdGlvbihhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilnaihhLGMsYik7ZWxzZSBmb3IodmFyIGQgaW4gYilnaihhLGJbZF0sZCl9O2lqPS9eLS0uKy87Z2o9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWpqW2NdO2lmKCFkKXt2YXIgZT1XaShjKTtkPWU7YS5zdHlsZVtlXT09PXZvaWQgMCYmKGU9KF8uVmM/IldlYmtpdCI6Xy5VYz8iTW96IjpudWxsKStYaShlKSxhLnN0eWxlW2VdIT09dm9pZCAwJiYoZD1lKSk7ampbY109ZH0oYz1kKSYmKGlqLnRlc3QoYyk/YS5zdHlsZS5zZXRQcm9wZXJ0eShjLGIpOmEuc3R5bGVbY109Yil9O2pqPXt9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgbGosb2oscGoscWosdGosdWosdmosd2oseGoseWosQWosQ2osRGosRWosRmosR2osSGosSWosS2osTmosT2osWGosWWosYmssbmosbWosY2ssZWsscmosc2osemosbms7Xy5raj1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5EYylyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJ0Iik7fTtsaj1mdW5jdGlvbihhKXt2YXIgYj1hLkosYz1iW18uSF18MDtyZXR1cm4gXy5JaChhLGIsYyk/Xy5IaChhLGIsITApOm5ldyBhLmNvbnN0cnVjdG9yKF8uR2goYixjLCExKSl9Owpvaj1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDAmJihiPTApO2lmKCFtail7bWo9e307Zm9yKHZhciBjPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGQ9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sZT0wO2U8NTtlKyspe3ZhciBmPWMuY29uY2F0KGRbZV0uc3BsaXQoIiIpKTtualtlXT1mO2Zvcih2YXIgZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddO21qW2hdPT09dm9pZCAwJiYobWpbaF09Zyl9fX1iPW5qW2JdO2M9QXJyYXkoTWF0aC5mbG9vcihhLmxlbmd0aC8zKSk7ZD1iWzY0XXx8IiI7Zm9yKGU9Zj0wO2Y8YS5sZW5ndGgtMjtmKz0zKXt2YXIgaz1hW2ZdLGw9YVtmKzFdO2g9YVtmKzJdO2c9YltrPj4yXTtrPWJbKGsmMyk8PDR8bD4+NF07bD1iWyhsJjE1KTw8MnxoPj42XTtoPWJbaCY2M107Y1tlKytdPWcraytsK2h9Zz0wO2g9ZDtzd2l0Y2goYS5sZW5ndGgtZil7Y2FzZSAyOmc9CmFbZisxXSxoPWJbKGcmMTUpPDwyXXx8ZDtjYXNlIDE6YT1hW2ZdLGNbZV09YlthPj4yXStiWyhhJjMpPDw0fGc+PjRdK2grZH1yZXR1cm4gYy5qb2luKCIiKX07cGo9ZnVuY3Rpb24oYSl7YT1FcnJvcihhKTtfLkZnKGEsIndhcm5pbmciKTtyZXR1cm4gYX07cWo9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiJ9O3RqPWZ1bmN0aW9uKGEpe3ZhciBiPWE+Pj4wO3JqPWI7c2o9KGEtYikvNDI5NDk2NzI5Nj4+PjB9O3VqPWZ1bmN0aW9uKGEsYil7Yj1+YjthP2E9fmErMTpiKz0xO3JldHVyblthLGJdfTt2aj1mdW5jdGlvbihhKXtpZihhPDApe3RqKC1hKTt2YXIgYj1fLkModWoocmosc2opKTthPWIubmV4dCgpLnZhbHVlO2I9Yi5uZXh0KCkudmFsdWU7cmo9YT4+PjA7c2o9Yj4+PjB9ZWxzZSB0aihhKX07d2o9ZnVuY3Rpb24oYSl7YT1TdHJpbmcoYSk7cmV0dXJuIjAwMDAwMDAiLnNsaWNlKGEubGVuZ3RoKSthfTsKeGo9ZnVuY3Rpb24oYSxiKXtiPj4+PTA7YT4+Pj0wO2lmKGI8PTIwOTcxNTEpdmFyIGM9IiIrKDQyOTQ5NjcyOTYqYithKTtlbHNlIHFqKCk/Yz0iIisoQmlnSW50KGIpPDxCaWdJbnQoMzIpfEJpZ0ludChhKSk6KGM9KGE+Pj4yNHxiPDw4KSYxNjc3NzIxNSxiPWI+PjE2JjY1NTM1LGE9KGEmMTY3NzcyMTUpK2MqNjc3NzIxNitiKjY3MTA2NTYsYys9Yio4MTQ3NDk3LGIqPTIsYT49MUU3JiYoYys9YS8xRTc+Pj4wLGElPTFFNyksYz49MUU3JiYoYis9Yy8xRTc+Pj4wLGMlPTFFNyksYz1iK3dqKGMpK3dqKGEpKTtyZXR1cm4gY307eWo9ZnVuY3Rpb24oKXt2YXIgYT1yaixiPXNqO2ImMjE0NzQ4MzY0OD9xaigpP2E9IiIrKEJpZ0ludChifDApPDxCaWdJbnQoMzIpfEJpZ0ludChhPj4+MCkpOihiPV8uQyh1aihhLGIpKSxhPWIubmV4dCgpLnZhbHVlLGI9Yi5uZXh0KCkudmFsdWUsYT0iLSIreGooYSxiKSk6YT14aihhLGIpO3JldHVybiBhfTsKQWo9ZnVuY3Rpb24oYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlICJiaWdpbnQiOnJldHVybiEwO2Nhc2UgIm51bWJlciI6cmV0dXJuKDAsXy5kaSkoYSk7Y2FzZSAic3RyaW5nIjpyZXR1cm4gemoudGVzdChhKTtkZWZhdWx0OnJldHVybiExfX07Xy5Caj1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJudW1iZXIiKXRocm93IHBqKCJpbnQzMiIpO2lmKCEoMCxfLmRpKShhKSl0aHJvdyBwaigiaW50MzIiKTtyZXR1cm4gYXwwfTtDaj1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBhO2lmKHR5cGVvZiBhPT09InN0cmluZyImJmEpYT0rYTtlbHNlIGlmKHR5cGVvZiBhIT09Im51bWJlciIpcmV0dXJuO3JldHVybigwLF8uZGkpKGEpP2F8MDp2b2lkIDB9OwpEaj1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aDtpZihhWzBdPT09Ii0iP2I8MjB8fGI9PT0yMCYmYTw9Ii05MjIzMzcyMDM2ODU0Nzc1ODA4IjpiPDE5fHxiPT09MTkmJmE8PSI5MjIzMzcyMDM2ODU0Nzc1ODA3IilyZXR1cm4gYTtpZihhLmxlbmd0aDwxNil2aihOdW1iZXIoYSkpO2Vsc2UgaWYocWooKSlhPUJpZ0ludChhKSxyaj1OdW1iZXIoYSZCaWdJbnQoNDI5NDk2NzI5NSkpPj4+MCxzaj1OdW1iZXIoYT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO2Vsc2V7Yj0rKGFbMF09PT0iLSIpO3NqPXJqPTA7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9YixlPShjLWIpJTYrYjtlPD1jO2Q9ZSxlKz02KWQ9TnVtYmVyKGEuc2xpY2UoZCxlKSksc2oqPTFFNixyaj1yaioxRTYrZCxyaj49NDI5NDk2NzI5NiYmKHNqKz1NYXRoLnRydW5jKHJqLzQyOTQ5NjcyOTYpLHNqPj4+PTAscmo+Pj49MCk7YiYmKGI9Xy5DKHVqKHJqLHNqKSksYT1iLm5leHQoKS52YWx1ZSxiPWIubmV4dCgpLnZhbHVlLApyaj1hLHNqPWIpfXJldHVybiB5aigpfTtFaj1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLmVpKShOdW1iZXIoYSkpO2lmKCgwLF8uY2kpKGIpKXJldHVybiBfLmJoKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtyZXR1cm4gcWooKT9fLmJoKCgwLF8uYmkpKDY0LEJpZ0ludChhKSkpOl8uYmgoRGooYSkpfTtGaj1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLmVpKShOdW1iZXIoYSkpO2lmKCgwLF8uY2kpKGIpKXJldHVybiBTdHJpbmcoYik7Yj1hLmluZGV4T2YoIi4iKTtiIT09LTEmJihhPWEuc3Vic3RyaW5nKDAsYikpO3JldHVybiBEaihhKX07CkdqPWZ1bmN0aW9uKGEpe2E9KDAsXy5laSkoYSk7aWYoISgwLF8uY2kpKGEpKXt2aihhKTt2YXIgYj1yaixjPXNqO2lmKGE9YyYyMTQ3NDgzNjQ4KWI9fmIrMT4+PjAsYz1+Yz4+PjAsYj09MCYmKGM9YysxPj4+MCk7dmFyIGQ9Yyo0Mjk0OTY3Mjk2KyhiPj4+MCk7Yj1OdW1iZXIuaXNTYWZlSW50ZWdlcihkKT9kOnhqKGIsYyk7YT10eXBlb2YgYj09PSJudW1iZXIiP2E/LWI6YjphPyItIitiOmJ9cmV0dXJuIGF9O0hqPWZ1bmN0aW9uKGEpe2E9KDAsXy5laSkoYSk7KDAsXy5jaSkoYSk/YT1TdHJpbmcoYSk6KHZqKGEpLGE9eWooKSk7cmV0dXJuIGF9O0lqPWZ1bmN0aW9uKGEpe3JldHVybigwLF8uY2kpKGEpP18uYmgoR2ooYSkpOl8uYmgoSGooYSkpfTsKXy5Kaj1mdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7YiE9bnVsbHx8KGI9MTAyNCk7aWYoIUFqKGEpKXRocm93IHBqKCJpbnQ2NCIpO3ZhciBjPXR5cGVvZiBhO3N3aXRjaChiKXtjYXNlIDUxMjpzd2l0Y2goYyl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gRmooYSk7Y2FzZSAiYmlnaW50IjpyZXR1cm4gU3RyaW5nKCgwLF8uYmkpKDY0LGEpKTtkZWZhdWx0OnJldHVybiBIaihhKX1jYXNlIDEwMjQ6c3dpdGNoKGMpe2Nhc2UgInN0cmluZyI6cmV0dXJuIEVqKGEpO2Nhc2UgImJpZ2ludCI6cmV0dXJuIF8uYmgoKDAsXy5iaSkoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIElqKGEpfWNhc2UgMDpzd2l0Y2goYyl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gRmooYSk7Y2FzZSAiYmlnaW50IjpyZXR1cm4gXy5iaCgoMCxfLmJpKSg2NCxhKSk7ZGVmYXVsdDpyZXR1cm4gR2ooYSl9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biBmb3JtYXQgcmVxdWVzdGVkIHR5cGUgZm9yIGludDY0Iik7fX07CktqPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO2lmKGE9PW51bGwpcmV0dXJuIGE7aWYoYj09PSJiaWdpbnQiKXJldHVybiBfLmJoKCgwLF8uYmkpKDY0LGEpKTtpZihBaihhKSlyZXR1cm4gYj09PSJzdHJpbmciP0VqKGEpOklqKGEpfTtfLkxqPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwmJnR5cGVvZiBhIT09InN0cmluZyIpdGhyb3cgRXJyb3IoKTtyZXR1cm4gYX07Xy5Naj1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIF8uZmooYSxiKX19OwpOaj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtlWzBdPTE3MzI1ODQxOTM7ZVsxXT00MDIzMjMzNDE3O2VbMl09MjU2MjM4MzEwMjtlWzNdPTI3MTczMzg3ODtlWzRdPTMyODUzNzc1MjA7bj1sPTB9ZnVuY3Rpb24gYihxKXtmb3IodmFyIHA9ZyxyPTA7cjw2NDtyKz00KXBbci80XT1xW3JdPDwyNHxxW3IrMV08PDE2fHFbcisyXTw8OHxxW3IrM107Zm9yKHI9MTY7cjw4MDtyKyspcT1wW3ItM11ecFtyLThdXnBbci0xNF1ecFtyLTE2XSxwW3JdPShxPDwxfHE+Pj4zMSkmNDI5NDk2NzI5NTtxPWVbMF07dmFyIHQ9ZVsxXSxBPWVbMl0sRD1lWzNdLEU9ZVs0XTtmb3Iocj0wO3I8ODA7cisrKXtpZihyPDQwKWlmKHI8MjApe3ZhciBiYT1EXnQmKEFeRCk7dmFyIFo9MTUxODUwMDI0OX1lbHNlIGJhPXReQV5ELFo9MTg1OTc3NTM5MztlbHNlIHI8NjA/KGJhPXQmQXxEJih0fEEpLFo9MjQwMDk1OTcwOCk6KGJhPXReQV5ELFo9MzM5NTQ2OTc4Mik7YmE9KChxPDw1fHE+Pj4yNykmNDI5NDk2NzI5NSkrCmJhK0UrWitwW3JdJjQyOTQ5NjcyOTU7RT1EO0Q9QTtBPSh0PDwzMHx0Pj4+MikmNDI5NDk2NzI5NTt0PXE7cT1iYX1lWzBdPWVbMF0rcSY0Mjk0OTY3Mjk1O2VbMV09ZVsxXSt0JjQyOTQ5NjcyOTU7ZVsyXT1lWzJdK0EmNDI5NDk2NzI5NTtlWzNdPWVbM10rRCY0Mjk0OTY3Mjk1O2VbNF09ZVs0XStFJjQyOTQ5NjcyOTV9ZnVuY3Rpb24gYyhxLHApe2lmKHR5cGVvZiBxPT09InN0cmluZyIpe3E9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHEpKTtmb3IodmFyIHI9W10sdD0wLEE9cS5sZW5ndGg7dDxBOysrdClyLnB1c2gocS5jaGFyQ29kZUF0KHQpKTtxPXJ9cHx8KHA9cS5sZW5ndGgpO3I9MDtpZihsPT0wKWZvcig7cis2NDxwOyliKHEuc2xpY2UocixyKzY0KSkscis9NjQsbis9NjQ7Zm9yKDtyPHA7KWlmKGZbbCsrXT1xW3IrK10sbisrLGw9PTY0KWZvcihsPTAsYihmKTtyKzY0PHA7KWIocS5zbGljZShyLHIrNjQpKSxyKz02NCxuKz02NH1mdW5jdGlvbiBkKCl7dmFyIHE9W10sCnA9bio4O2w8NTY/YyhoLDU2LWwpOmMoaCw2NC0obC01NikpO2Zvcih2YXIgcj02MztyPj01NjtyLS0pZltyXT1wJjI1NSxwPj4+PTg7YihmKTtmb3Iocj1wPTA7cjw1O3IrKylmb3IodmFyIHQ9MjQ7dD49MDt0LT04KXFbcCsrXT1lW3JdPj50JjI1NTtyZXR1cm4gcX1mb3IodmFyIGU9W10sZj1bXSxnPVtdLGg9WzEyOF0saz0xO2s8NjQ7KytrKWhba109MDt2YXIgbCxuO2EoKTtyZXR1cm57cmVzZXQ6YSx1cGRhdGU6YyxkaWdlc3Q6ZCxmaDpmdW5jdGlvbigpe2Zvcih2YXIgcT1kKCkscD0iIixyPTA7cjxxLmxlbmd0aDtyKyspcCs9IjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdChNYXRoLmZsb29yKHFbcl0vMTYpKSsiMDEyMzQ1Njc4OUFCQ0RFRiIuY2hhckF0KHFbcl0lMTYpO3JldHVybiBwfX19O09qPWZ1bmN0aW9uKCl7dGhpcy5nPWRvY3VtZW50fHx7Y29va2llOiIifX07ClhqPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP1BqOmI7aWYoIVFqKXt2YXIgYzthPShjPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6Yy51c2VyQWdlbnREYXRhO2lmKCFhfHx0eXBlb2YgYS5nZXRIaWdoRW50cm9weVZhbHVlcyE9PSJmdW5jdGlvbiJ8fGEuYnJhbmRzJiZ0eXBlb2YgYS5icmFuZHMubWFwIT09ImZ1bmN0aW9uIilyZXR1cm4gUHJvbWlzZS5yZWplY3QoRXJyb3IoIm9hIikpO1JqKChhLmJyYW5kc3x8W10pLm1hcChmdW5jdGlvbihlKXt2YXIgZj1uZXcgU2o7Zj1fLlRqKGYsMSxlLmJyYW5kKTtyZXR1cm4gXy5UaihmLDIsZS52ZXJzaW9uKX0pKTt0eXBlb2YgYS5tb2JpbGU9PT0iYm9vbGVhbiImJl8uVWooVmosMixhLm1vYmlsZSk7UWo9YS5nZXRIaWdoRW50cm9weVZhbHVlcyhiKX12YXIgZD1uZXcgU2V0KGIpO3JldHVybiBRai50aGVuKGZ1bmN0aW9uKGUpe3ZhciBmPWxqKFZqKTtkLmhhcygicGxhdGZvcm0iKSYmXy5UaihmLDMsZS5wbGF0Zm9ybSk7ZC5oYXMoInBsYXRmb3JtVmVyc2lvbiIpJiYKXy5UaihmLDQsZS5wbGF0Zm9ybVZlcnNpb24pO2QuaGFzKCJhcmNoaXRlY3R1cmUiKSYmXy5UaihmLDUsZS5hcmNoaXRlY3R1cmUpO2QuaGFzKCJtb2RlbCIpJiZfLlRqKGYsNixlLm1vZGVsKTtkLmhhcygidWFGdWxsVmVyc2lvbiIpJiZfLlRqKGYsNyxlLnVhRnVsbFZlcnNpb24pO3JldHVybiBfLldqKGYpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gXy5XaihWail9KX07WWo9ZnVuY3Rpb24oYSl7dGhpcy5nPXRoaXMuaD10aGlzLmo9YX07Xy5aaj1mdW5jdGlvbihhLGIpe3ZhciBjPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD1jLnNsaWNlKCk7ZC5wdXNoLmFwcGx5KGQsYXJndW1lbnRzKTtyZXR1cm4gYS5hcHBseSh0aGlzLGQpfX07Xy5haz1mdW5jdGlvbihhLGIpe2EucWE/YigpOihhLld8fChhLlc9W10pLGEuVy5wdXNoKGIpKX07Yms9e1psOiEwfTtfLldqPWZ1bmN0aW9uKGEpe3JldHVybiBKU09OLnN0cmluZ2lmeShfLndoKGEpKX07Cm5qPXt9O21qPW51bGw7Y2s9e307Xy54aD1mdW5jdGlvbihhLGIpe2lmKGIhPT1jayl0aHJvdyBFcnJvcigiWiIpO3RoaXMubz1hO2lmKGEhPW51bGwmJmEubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiWSIpO307Xy54aC5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMubztpZihhPT1udWxsKWE9IiI7ZWxzZSBpZih0eXBlb2YgYSE9PSJzdHJpbmciKXtpZihfLlBoKXtmb3IodmFyIGI9IiIsYz0wLGQ9YS5sZW5ndGgtMTAyNDA7YzxkOyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zdWJhcnJheShjLGMrPTEwMjQwKSk7Yis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGM/YS5zdWJhcnJheShjKTphKTthPWJ0b2EoYil9ZWxzZSBhPW9qKGEpO2E9dGhpcy5vPWF9cmV0dXJuIGF9O18uZGs9Xy5OZyh2b2lkIDAsIjFvYSIpO2VrPXt9O3JqPTA7c2o9MDt6aj0vXi0/KFsxLTldWzAtOV0qfDApKFwuWzAtOV0rKT8kLzsKXy5maz1mdW5jdGlvbihhLGIsYyl7Xy5yaShhKTt2YXIgZD1hLkosZT1kW18uSF18MDtpZihjPT1udWxsKXJldHVybiBfLnRpKGQsZSxiKSxhO2Zvcih2YXIgZj1jPT09Xy5UaD83OmNbXy5IXXwwLGc9ZixoPV8uRWkoZiksaz1ofHxPYmplY3QuaXNGcm96ZW4oYyksbD0hMCxuPSEwLHE9MDtxPGMubGVuZ3RoO3ErKyl7dmFyIHA9Y1txXTtofHwocD1fLldnKHApLGwmJihsPSFwKSxuJiYobj1wKSl9aHx8KGY9bD8xMzo1LGY9bj9mJi00MDk3OmZ8NDA5Nik7ayYmZj09PWd8fChjPV8ubWkoYyksZz0wLGY9Xy5EaShmLGUpKTtmIT09ZyYmXy5TZyhjLGYpO2U9Xy50aShkLGUsYixjKTsyJmZ8fCEoNDA5NiZmfHwxNiZmKXx8Xy5zaShkLGUpO3JldHVybiBhfTtfLmdrPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/MDpjO2E9Q2ooXy5aaShhLGIpKTtyZXR1cm4gYSE9bnVsbD9hOmN9OwpfLmhrPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/Xy5qaTpjO2E9Xy5aaShhLGIsdm9pZCAwLHZvaWQgMCxLaik7cmV0dXJuIGEhPW51bGw/YTpjfTtfLlVqPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy4kaShhLGIsYz09bnVsbD9jOl8ubmkoYykpfTtfLmlrPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy4kaShhLGIsYz09bnVsbD9jOl8uQmooYykpfTtfLmprPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy4kaShhLGIsYz09bnVsbD9jOl8uSmooYykpfTtfLlRqPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy4kaShhLGIsXy5MaihjKSl9O18ua2s9ZnVuY3Rpb24oYSxiLGMpe2lmKGMhPW51bGwpe2lmKCEoMCxfLmRpKShjKSl0aHJvdyBwaigiZW51bSIpO2N8PTB9cmV0dXJuIF8uJGkoYSxiLGMpfTsKbms9ZnVuY3Rpb24oKXt2YXIgYT1sayxiPW1rO3RoaXMuZz0xNzUyMzczNzU7dGhpcy5MYj1iO3RoaXMuaD1fLmJqO3RoaXMuZGVmYXVsdFZhbHVlPXZvaWQgMDt0aGlzLmo9YS5XbCE9bnVsbD9lazp2b2lkIDB9O25rLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbigpe18uUWModGhpcyl9O3ZhciBvaz1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIob2ssXy5KKTt2YXIgcGs9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIiI7aWYoL15hYm91dDooPzpibGFua3xzcmNkb2MpJC8udGVzdChhKSlyZXR1cm4gd2luZG93Lm9yaWdpbnx8IiI7YS5pbmRleE9mKCJibG9iOiIpPT09MCYmKGE9YS5zdWJzdHJpbmcoNSkpO2E9YS5zcGxpdCgiIyIpWzBdLnNwbGl0KCI/IilbMF07YT1hLnRvTG93ZXJDYXNlKCk7YS5pbmRleE9mKCIvLyIpPT0wJiYoYT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrYSk7L15bXHdcLV0qOlwvXC8vLnRlc3QoYSl8fChhPXdpbmRvdy5sb2NhdGlvbi5ocmVmKTt2YXIgYj1hLnN1YnN0cmluZyhhLmluZGV4T2YoIjovLyIpKzMpLGM9Yi5pbmRleE9mKCIvIik7YyE9LTEmJihiPWIuc3Vic3RyaW5nKDAsYykpO2M9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIjovLyIpKTtpZighYyl0aHJvdyBFcnJvcigia2FgIithKTtpZihjIT09Imh0dHAiJiZjIT09Imh0dHBzIiYmYyE9PSJjaHJvbWUtZXh0ZW5zaW9uIiYmYyE9PSJtb3otZXh0ZW5zaW9uIiYmCmMhPT0iZmlsZSImJmMhPT0iYW5kcm9pZC1hcHAiJiZjIT09ImNocm9tZS1zZWFyY2giJiZjIT09ImNocm9tZS11bnRydXN0ZWQiJiZjIT09ImNocm9tZSImJmMhPT0iYXBwIiYmYyE9PSJkZXZ0b29scyIpdGhyb3cgRXJyb3IoImxhYCIrYyk7YT0iIjt2YXIgZD1iLmluZGV4T2YoIjoiKTtpZihkIT0tMSl7dmFyIGU9Yi5zdWJzdHJpbmcoZCsxKTtiPWIuc3Vic3RyaW5nKDAsZCk7aWYoYz09PSJodHRwIiYmZSE9PSI4MCJ8fGM9PT0iaHR0cHMiJiZlIT09IjQ0MyIpYT0iOiIrZX1yZXR1cm4gYysiOi8vIitiK2F9O3ZhciByaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9U3RyaW5nKF8udi5sb2NhdGlvbi5ocmVmKTtyZXR1cm4gZCYmYSYmYj9bYixxayhwayhkKSxhLGN8fG51bGwpXS5qb2luKCIgIik6bnVsbH0scWs9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9W107aWYoKEFycmF5LmlzQXJyYXkoYyk/MjoxKT09MSlyZXR1cm4gZT1bYixhXSxfLnZjKGQsZnVuY3Rpb24oaCl7ZS5wdXNoKGgpfSksc2soZS5qb2luKCIgIikpO3ZhciBmPVtdLGc9W107Xy52YyhjLGZ1bmN0aW9uKGgpe2cucHVzaChoLmtleSk7Zi5wdXNoKGgudmFsdWUpfSk7Yz1NYXRoLmZsb29yKChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFFMyk7ZT1mLmxlbmd0aD09MD9bYyxiLGFdOltmLmpvaW4oIjoiKSxjLGIsYV07Xy52YyhkLGZ1bmN0aW9uKGgpe2UucHVzaChoKX0pO2E9c2soZS5qb2luKCIgIikpO2E9W2MsYV07Zy5sZW5ndGg9PTB8fGEucHVzaChnLmpvaW4oIiIpKTtyZXR1cm4gYS5qb2luKCJfIil9LHNrPWZ1bmN0aW9uKGEpe3ZhciBiPQpOaigpO2IudXBkYXRlKGEpO3JldHVybiBiLmZoKCkudG9Mb3dlckNhc2UoKX07Xy5tPU9qLnByb3RvdHlwZTtfLm0uc2V0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0hMTtpZih0eXBlb2YgYz09PSJvYmplY3QiKXt2YXIgZT1jLnNhbWVTaXRlO2Q9Yy5zZWN1cmV8fCExO3ZhciBmPWMuZG9tYWlufHx2b2lkIDA7dmFyIGc9Yy5wYXRofHx2b2lkIDA7dmFyIGg9Yy5CaX1pZigvWzs9XHNdLy50ZXN0KGEpKXRocm93IEVycm9yKCJtYWAiK2EpO2lmKC9bO1xyXG5dLy50ZXN0KGIpKXRocm93IEVycm9yKCJuYWAiK2IpO2g9PT12b2lkIDAmJihoPS0xKTt0aGlzLmcuY29va2llPWErIj0iK2IrKGY/Ijtkb21haW49IitmOiIiKSsoZz8iO3BhdGg9IitnOiIiKSsoaDwwPyIiOmg9PTA/IjtleHBpcmVzPSIrKG5ldyBEYXRlKDE5NzAsMSwxKSkudG9VVENTdHJpbmcoKToiO2V4cGlyZXM9IisobmV3IERhdGUoRGF0ZS5ub3coKStoKjFFMykpLnRvVVRDU3RyaW5nKCkpKyhkPyI7c2VjdXJlIjoiIikrKGUhPW51bGw/IjtzYW1lc2l0ZT0iK2U6IiIpfTsKXy5tLmdldD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hKyI9IixkPSh0aGlzLmcuY29va2llfHwiIikuc3BsaXQoIjsiKSxlPTAsZjtlPGQubGVuZ3RoO2UrKyl7Zj1fLkFjKGRbZV0pO2lmKGYubGFzdEluZGV4T2YoYywwKT09MClyZXR1cm4gZi5zbGljZShjLmxlbmd0aCk7aWYoZj09YSlyZXR1cm4iIn1yZXR1cm4gYn07Xy5tLnJlbW92ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5nZXQoYSkhPT12b2lkIDA7dGhpcy5zZXQoYSwiIix7Qmk6MCxwYXRoOmIsZG9tYWluOmN9KTtyZXR1cm4gZH07Xy5tLk9jPWZ1bmN0aW9uKCl7cmV0dXJuIHRrKHRoaXMpLmtleXN9O18ubS5pYj1mdW5jdGlvbigpe3JldHVybiB0ayh0aGlzKS52YWx1ZXN9O18ubS5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgYT10ayh0aGlzKS5rZXlzLGI9YS5sZW5ndGgtMTtiPj0wO2ItLSl0aGlzLnJlbW92ZShhW2JdKX07CnZhciB0az1mdW5jdGlvbihhKXthPShhLmcuY29va2llfHwiIikuc3BsaXQoIjsiKTtmb3IodmFyIGI9W10sYz1bXSxkLGUsZj0wO2Y8YS5sZW5ndGg7ZisrKWU9Xy5BYyhhW2ZdKSxkPWUuaW5kZXhPZigiPSIpLGQ9PS0xPyhiLnB1c2goIiIpLGMucHVzaChlKSk6KGIucHVzaChlLnN1YnN0cmluZygwLGQpKSxjLnB1c2goZS5zdWJzdHJpbmcoZCsxKSkpO3JldHVybntrZXlzOmIsdmFsdWVzOmN9fTt2YXIgdWs9ZnVuY3Rpb24oYSxiLGMsZCl7KGE9Xy52W2FdKXx8dHlwZW9mIGRvY3VtZW50PT09InVuZGVmaW5lZCJ8fChhPShuZXcgT2opLmdldChiKSk7cmV0dXJuIGE/cmsoYSxjLGQpOm51bGx9LHZrPWZ1bmN0aW9uKGEpe3ZhciBiPXBrKF8udj09bnVsbD92b2lkIDA6Xy52LmxvY2F0aW9uLmhyZWYpLGM9W10sZDsoZD1fLnYuX19TQVBJU0lEfHxfLnYuX19BUElTSUR8fF8udi5fXzNQU0FQSVNJRHx8Xy52Ll9fMVBTQVBJU0lEfHxfLnYuX19PVkVSUklERV9TSUQpP2Q9ITA6KHR5cGVvZiBkb2N1bWVudCE9PSJ1bmRlZmluZWQiJiYoZD1uZXcgT2osZD1kLmdldCgiU0FQSVNJRCIpfHxkLmdldCgiQVBJU0lEIil8fGQuZ2V0KCJfX1NlY3VyZS0zUEFQSVNJRCIpfHxkLmdldCgiX19TZWN1cmUtMVBBUElTSUQiKSksZD0hIWQpO2QmJihkPShiPWIuaW5kZXhPZigiaHR0cHM6Iik9PTB8fGIuaW5kZXhPZigiY2hyb21lLWV4dGVuc2lvbjoiKT09MHx8Yi5pbmRleE9mKCJjaHJvbWUtdW50cnVzdGVkOi8vbmV3LXRhYi1wYWdlIik9PQowfHxiLmluZGV4T2YoIm1vei1leHRlbnNpb246Iik9PTApP18udi5fX1NBUElTSUQ6Xy52Ll9fQVBJU0lELGR8fHR5cGVvZiBkb2N1bWVudD09PSJ1bmRlZmluZWQifHwoZD1uZXcgT2osZD1kLmdldChiPyJTQVBJU0lEIjoiQVBJU0lEIil8fGQuZ2V0KCJfX1NlY3VyZS0zUEFQSVNJRCIpKSwoZD1kP3JrKGQsYj8iU0FQSVNJREhBU0giOiJBUElTSURIQVNIIixhKTpudWxsKSYmYy5wdXNoKGQpLGImJigoYj11aygiX18xUFNBUElTSUQiLCJfX1NlY3VyZS0xUEFQSVNJRCIsIlNBUElTSUQxUEhBU0giLGEpKSYmYy5wdXNoKGIpLChhPXVrKCJfXzNQU0FQSVNJRCIsIl9fU2VjdXJlLTNQQVBJU0lEIiwiU0FQSVNJRDNQSEFTSCIsYSkpJiZjLnB1c2goYSkpKTtyZXR1cm4gYy5sZW5ndGg9PTA/bnVsbDpjLmpvaW4oIiAiKX07dmFyIHdrPWZ1bmN0aW9uKCl7fSx4az1mdW5jdGlvbihhKXt2YXIgYixjLGQsZTtyZXR1cm4gXy5WaShmdW5jdGlvbihmKXtzd2l0Y2goZi5nKXtjYXNlIDE6cmV0dXJuIGI9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksYz0obmV3IFJlc3BvbnNlKGIucmVhZGFibGUpKS5hcnJheUJ1ZmZlcigpLGQ9Yi53cml0YWJsZS5nZXRXcml0ZXIoKSxmLmgoZC53cml0ZSgobmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoYSkpLDIpO2Nhc2UgMjpyZXR1cm4gZi5oKGQuY2xvc2UoKSwzKTtjYXNlIDM6cmV0dXJuIGU9VWludDhBcnJheSxmLmgoYyw0KTtjYXNlIDQ6cmV0dXJuIGYucmV0dXJuKG5ldyBlKGYuaikpfX0pfTt3ay5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGE8MTAyND8hMTp0eXBlb2YgQ29tcHJlc3Npb25TdHJlYW0hPT0idW5kZWZpbmVkIn07dmFyIHlrPWZ1bmN0aW9uKGEsYil7dGhpcy5oPWE7dGhpcy5vPWI7dGhpcy5nPSExO3RoaXMuaj1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTt0aGlzLmw9dGhpcy5qKCl9LHprPWZ1bmN0aW9uKGEsYil7YS5oPWI7YS50aW1lciYmYS5nPyhhLnN0b3AoKSxhLnN0YXJ0KCkpOmEudGltZXImJmEuc3RvcCgpfTt5ay5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuZz0hMDt0aGlzLnRpbWVyfHwodGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50aWNrKCl9LHRoaXMuaCksdGhpcy5sPXRoaXMuaigpKX07eWsucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLmc9ITE7dGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXZvaWQgMCl9Owp5ay5wcm90b3R5cGUudGljaz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7aWYodGhpcy5nKXt2YXIgYj1NYXRoLm1heCh0aGlzLmooKS10aGlzLmwsMCk7Yjx0aGlzLmgqLjg/dGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50aWNrKCl9LHRoaXMuaC1iKToodGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXZvaWQgMCksdGhpcy5vKCksdGhpcy5nJiYodGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKSl9ZWxzZSB0aGlzLnRpbWVyPXZvaWQgMH07dmFyIEFrPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihBayxfLkopO3ZhciBCaz1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoQmssXy5KKTt2YXIgQ2s9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKENrLF8uSik7Q2sucHJvdG90eXBlLlBkPWZ1bmN0aW9uKCl7cmV0dXJuIF8uZGoodGhpcywxKX07dmFyIFNqPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihTaixfLkopO3ZhciBEaz1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoRGssXy5KKTt2YXIgUmo9ZnVuY3Rpb24oYSl7Xy5mayhWaiwxLGEpfSxFaz1fLk1qKERrKTt2YXIgRms9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKEZrLF8uSik7dmFyIFBqPVsicGxhdGZvcm0iLCJwbGF0Zm9ybVZlcnNpb24iLCJhcmNoaXRlY3R1cmUiLCJtb2RlbCIsInVhRnVsbFZlcnNpb24iXSxWaj1uZXcgRGssUWo9bnVsbDt2YXIgR2s9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKEdrLF8uSik7dmFyIEhrPWZ1bmN0aW9uKGEpe3JldHVybiBfLmtrKGEsMSwxKX07dmFyIElrPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihJayxfLkopO0lrLnByb3RvdHlwZS5NYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywyKX07SWsucHJvdG90eXBlLmNiPWZ1bmN0aW9uKGEpe18uVGoodGhpcywyLGEpfTt2YXIgSms9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhLDQpfTtfLkIoSmssXy5KKTtfLktrPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSwzNyl9O18uQihfLktrLF8uSik7Xy5Lay5wcm90b3R5cGUuY2I9ZnVuY3Rpb24oYSl7Xy5yaSh0aGlzKTt2YXIgYj10aGlzLkosYz1fLklpKHRoaXMsYixiW18uSF18MCxJaywzLDIsITApO2lmKHR5cGVvZiBhIT09Im51bWJlciJ8fGE8MHx8YT5jLmxlbmd0aCl0aHJvdyBFcnJvcigpO2EhPXZvaWQgMD9jLnNwbGljZShhLDEsdm9pZCAwKTpjLnB1c2godm9pZCAwKTt2YXIgZD1hPWM9PT1fLlRoPzc6Y1tfLkhdfDAsZT1fLldnKCk7ZT8oYSY9LTksYy5sZW5ndGg9PT0xJiYoYSY9LTQwOTcpKTphfD00MDk2O2EhPT1kJiZfLlNnKGMsYSk7ZXx8Xy5zaShiKX07Xy5Maz1mdW5jdGlvbihhLGIpe3JldHVybiBfLlRqKGEsOCxiKX07dmFyIE1rPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSwxOSl9O18uQihNayxfLkopO01rLnByb3RvdHlwZS52Yz1mdW5jdGlvbihhKXtyZXR1cm4gXy5rayh0aGlzLDIsYSl9O3ZhciBPaz1mdW5jdGlvbihhLGIpe3RoaXMuYWI9Yj1iPT09dm9pZCAwPyExOmI7dGhpcy5qPXRoaXMubG9jYWxlPW51bGw7dGhpcy5oPTA7dGhpcy5sPSExO3RoaXMuZz1uZXcgTWs7TnVtYmVyLmlzSW50ZWdlcihhKSYmdGhpcy5nLnZjKGEpO2J8fCh0aGlzLmxvY2FsZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJsYW5nIikpO05rKHRoaXMsbmV3IEdrKX07T2sucHJvdG90eXBlLnZjPWZ1bmN0aW9uKGEpe3RoaXMuZy52YyhhKTtyZXR1cm4gdGhpc307CnZhciBOaz1mdW5jdGlvbihhLGIpe18uTChhLmcsMSxiKTtfLmRqKGIsMSl8fEhrKGIpO2EuYWJ8fChiPVBrKGEpLF8uTihiLDUpfHxfLlRqKGIsNSxhLmxvY2FsZSkpO2EuaiYmKGI9UGsoYSksXy5iaihiLERrLDkpfHxfLkwoYiw5LGEuaikpfSxRaz1mdW5jdGlvbihhLGIpe2EuaD1ifSxSaz1mdW5jdGlvbihhKXt2YXIgYj1iPT09dm9pZCAwP1BqOmI7dmFyIGM9YS5hYj92b2lkIDA6Xy5tYigpO2M/WGooYyxiKS50aGVuKGZ1bmN0aW9uKGQpe2Euaj1FayhkIT1udWxsP2Q6IltdIik7ZD1QayhhKTtfLkwoZCw5LGEuaik7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk6UHJvbWlzZS5yZXNvbHZlKCExKX0sUGs9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5iaihhLmcsR2ssMSk7Ynx8KGI9bmV3IEdrLE5rKGEsYikpO2E9YjtiPV8uYmooYSxGaywxMSk7Ynx8KGI9bmV3IEZrLF8uTChhLDExLGIpKTtyZXR1cm4gYn0sU2s9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7Yz1jPT09CnZvaWQgMD8wOmM7ZD1kPT09dm9pZCAwPzA6ZDtlPWU9PT12b2lkIDA/bnVsbDplO2Y9Zj09PXZvaWQgMD8wOmY7Zz1nPT09dm9pZCAwPzA6ZztpZighYS5hYil7dmFyIGg9UGsoYSk7dmFyIGs9bmV3IENrO2s9Xy5rayhrLDEsYS5oKTtrPV8uVWooaywyLGEubCk7ZD1fLmlrKGssMyxkPjA/ZDp2b2lkIDApO2Q9Xy5payhkLDQsZj4wP2Y6dm9pZCAwKTtkPV8uaWsoZCw1LGc+MD9nOnZvaWQgMCk7Zj1kLko7Zz1mW18uSF18MDtkPV8uV2coZCxnKT9kOl8uSWgoZCxmLGcpP18uSGgoZCxmKTpuZXcgZC5jb25zdHJ1Y3RvcihfLkdoKGYsZywhMCkpO18uTChoLDEwLGQpfWE9bGooYS5nKTtoPURhdGUubm93KCkudG9TdHJpbmcoKTthPV8uJGkoYSw0LGg9PW51bGw/aDpfLkpqKGgpKTtiPV8uZmsoYSwzLGIuc2xpY2UoKSk7ZSYmKGE9bmV3IEFrLGU9Xy5payhhLDEzLGUpLGE9bmV3IEJrLGU9Xy5MKGEsMixlKSxhPW5ldyBKayxlPV8uTChhLDEsZSksZT1fLmtrKGUsMiw5KSxfLkwoYiwxOCwKZSkpO2MmJl8uamsoYiwxNCxjKTtyZXR1cm4gYn07WWoucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5nPXRoaXMuaD10aGlzLmp9O1lqLnByb3RvdHlwZS5NYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9O3ZhciBsaz1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEsOCl9O18uQihsayxfLkopO3ZhciBUaz1fLk1qKGxrKTt2YXIgbWs9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKG1rLF8uSik7dmFyIFVrO1VrPW5ldyBuazt2YXIgWWs9ZnVuY3Rpb24oYSl7Xy51LmNhbGwodGhpcyk7dmFyIGI9dGhpczt0aGlzLmc9W107dGhpcy5sYT0iIjt0aGlzLks9dGhpcy5MPSExO3RoaXMucmE9dGhpcy5JPS0xO3RoaXMuUj0hMTt0aGlzLkQ9dGhpcy5leHBlcmltZW50SWRzPW51bGw7dGhpcy5BPXRoaXMubD0wO3RoaXMuQz1udWxsO3RoaXMuRj10aGlzLkc9MDt0aGlzLndhPTE7dGhpcy53Yz0wO3RoaXMuT2I9YS5PYjt0aGlzLnRiPWEudGJ8fGZ1bmN0aW9uKCl7fTt0aGlzLmo9bmV3IE9rKGEuT2IsYS5hYik7dGhpcy56YT1hLnphfHxudWxsO3RoaXMuQ2I9YS5DYnx8bnVsbDt0aGlzLkI9YS5hanx8bnVsbDt0aGlzLm1iPWEubWJ8fG51bGw7dGhpcy5jYz1hLmNjfHwhMTt0aGlzLndpdGhDcmVkZW50aWFscz0hYS5NYzt0aGlzLmFiPWEuYWJ8fCExO3RoaXMuVD0hdGhpcy5hYiYmISFfLm1iKCkmJiEhXy5tYigpLm5hdmlnYXRvciYmXy5tYigpLm5hdmlnYXRvci5zZW5kQmVhY29uIT09dm9pZCAwO3RoaXMuUD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zIT09CiJ1bmRlZmluZWQiJiYhIShuZXcgVVJMKFZrKCkpKS5zZWFyY2hQYXJhbXMmJiEhKG5ldyBVUkwoVmsoKSkpLnNlYXJjaFBhcmFtcy5zZXQ7dmFyIGM9SGsobmV3IEdrKTtOayh0aGlzLmosYyk7dGhpcy5vPW5ldyBZaigxRTQpO2E9V2sodGhpcyxhLk9lKTt0aGlzLmg9bmV3IHlrKHRoaXMuby5NYSgpLGEpO3RoaXMuTz1uZXcgeWsoNkU1LGEpO3RoaXMuY2N8fHRoaXMuTy5zdGFydCgpO2lmKCF0aGlzLmFiKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2lmKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJoaWRkZW4iKXtYayhiKTt2YXIgZjsoZj1iLkMpPT1udWxsfHxmLmZsdXNoKCl9fSk7dmFyIGQsZTsoZD1fLm1iKCkpPT1udWxsfHwoZT1kLmFkZEV2ZW50TGlzdGVuZXIpPT1udWxsfHxlLmNhbGwoZCwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7WGsoYik7dmFyIGY7KGY9Yi5DKT09bnVsbHx8Zi5mbHVzaCgpfSl9fSxaayxibCwKJGs7Xy5CKFlrLF8udSk7dmFyIFdrPWZ1bmN0aW9uKGEsYil7aWYoIWEuUClyZXR1cm4gZnVuY3Rpb24oKXt9O3ZhciBjPWZ1bmN0aW9uKCl7YS5mbHVzaCgpfTtyZXR1cm4gYj9mdW5jdGlvbigpe2IoKS50aGVuKGMpfTpjfTtZay5wcm90b3R5cGUuTT1mdW5jdGlvbigpe1hrKHRoaXMpO3RoaXMuaC5zdG9wKCk7dGhpcy5PLnN0b3AoKTtfLnUucHJvdG90eXBlLk0uY2FsbCh0aGlzKX07Wms9ZnVuY3Rpb24oYSl7YS5CfHwoYS5CPVZrKCkpO3RyeXtyZXR1cm4obmV3IFVSTChhLkIpKS50b1N0cmluZygpfWNhdGNoKGIpe3JldHVybihuZXcgVVJMKGEuQixfLm1iKCkubG9jYXRpb24ub3JpZ2luKSkudG9TdHJpbmcoKX19O18uYWw9ZnVuY3Rpb24oYSxiKXtpZihiIGluc3RhbmNlb2YgXy5LaylhLmxvZyhiKTtlbHNlIHRyeXt2YXIgYz1fLkxrKG5ldyBfLktrLF8uV2ooYikpO2EubG9nKGMpfWNhdGNoKGQpeyRrKGEsNCwxKX19OwpibD1mdW5jdGlvbihhLGIpe2Eubz1uZXcgWWooYjwxPzE6Yik7emsoYS5oLGEuby5NYSgpKX07JGs9ZnVuY3Rpb24oYSxiLGMpe2EuQyYmYS5DLlNsKGIsYyl9OwpZay5wcm90b3R5cGUubG9nPWZ1bmN0aW9uKGEpeyRrKHRoaXMsMiwxKTtpZih0aGlzLlApe2E9bGooYSk7dmFyIGI9dGhpcy53YSsrO2I9YT1fLmprKGEsMjEsYik7dmFyIGM9Xy5aaShiLDEpO3ZhciBkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT10eXBlb2YgYztkPWM9PW51bGw/YzplPT09ImJpZ2ludCI/U3RyaW5nKCgwLF8uYmkpKDY0LGMpKTpBaihjKT9lPT09InN0cmluZyI/RmooYyk6ZD9IaihjKTpHaihjKTp2b2lkIDA7ZD09bnVsbCYmKGQ9RGF0ZS5ub3coKSxkPU51bWJlci5pc0Zpbml0ZShkKT9kLnRvU3RyaW5nKCk6IjAiLF8uJGkoYiwxLGQ9PW51bGw/ZDpfLkpqKGQpKSk7ZD1fLlppKGIsMTUsdm9pZCAwLHZvaWQgMCxLaik7ZCE9bnVsbCYmKHR5cGVvZiBkPT09ImJpZ2ludCI/KDAsXy52aCkoZCk/ZD1OdW1iZXIoZCk6KGQ9KDAsXy5iaSkoNjQsZCksZD0oMCxfLnZoKShkKT9OdW1iZXIoZCk6U3RyaW5nKGQpKTpkPUFqKGQpP3R5cGVvZiBkPT09Im51bWJlciI/R2ooZCk6CkZqKGQpOnZvaWQgMCk7ZCE9bnVsbHx8Xy5qayhiLDE1LChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSo2MCk7dGhpcy5leHBlcmltZW50SWRzJiYoZD1saih0aGlzLmV4cGVyaW1lbnRJZHMpLF8uTChiLDE2LGQpKTskayh0aGlzLDEsMSk7Yj10aGlzLmcubGVuZ3RoLTFFMysxO2I+MCYmKHRoaXMuZy5zcGxpY2UoMCxiKSx0aGlzLmwrPWIsJGsodGhpcywzLGIpKTt0aGlzLmcucHVzaChhKTt0aGlzLmNjfHx0aGlzLmguZ3x8dGhpcy5oLnN0YXJ0KCl9fTsKWWsucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcztpZih0aGlzLmcubGVuZ3RoPT09MClhJiZhKCk7ZWxzZXt2YXIgZD1EYXRlLm5vdygpO2lmKHRoaXMucmE+ZCYmdGhpcy5JPGQpYiYmYigidGhyb3R0bGVkIik7ZWxzZXt0aGlzLnphJiYodHlwZW9mIHRoaXMuemEuUGQ9PT0iZnVuY3Rpb24iP1FrKHRoaXMuaix0aGlzLnphLlBkKCkpOnRoaXMuai5oPTApO3ZhciBlPXRoaXMuZy5sZW5ndGgsZj1Tayh0aGlzLmosdGhpcy5nLHRoaXMubCx0aGlzLkEsdGhpcy5DYix0aGlzLkcsdGhpcy5GKSxnPXRoaXMudGIoKTtpZihnJiZ0aGlzLmxhPT09ZyliJiZiKCJzdGFsZS1hdXRoLXRva2VuIik7ZWxzZXt0aGlzLmc9W107dGhpcy5oLmcmJnRoaXMuaC5zdG9wKCk7dGhpcy5sPTA7ZD1fLldqKGYpO3ZhciBoO3RoaXMuRCYmdGhpcy5ELlRhKGQubGVuZ3RoKSYmKGg9eGsoZCkpO3ZhciBrPWNsKHRoaXMsZCxnKSxsPWZ1bmN0aW9uKHApe2Muby5yZXNldCgpO3prKGMuaCwKYy5vLk1hKCkpO2lmKHApe3ZhciByPW51bGw7dHJ5e3ZhciB0PUpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UocC5yZXBsYWNlKCIpXX0nXG4iLCIiKSkpO3I9VGsodCl9Y2F0Y2goRSl7fWlmKHIpe3A9TnVtYmVyKF8uaGsociwxLF8uYmgoIi0xIikpKTtwPjAmJihjLkk9RGF0ZS5ub3coKSxjLnJhPWMuSStwKTtwPVVrLmc7dD1fLnBoKF8ucWgpO3ZhciBBO18uT2cmJnQmJigoQT1yLkpbdF0pPT1udWxsP3ZvaWQgMDpBW3BdKSE9bnVsbCYmXy5NZyhfLlJoLDMpO2E6e0E9VWsuZzt2YXIgRD1EPT09dm9pZCAwPyExOkQ7aWYoXy5waChfLlNoKSYmXy5waChfLnFoKSYmdm9pZCAwPT09Xy5TaCl7cD1yLko7dD1wW18ucWhdO2lmKCF0KWJyZWFrIGE7aWYodD10LmJtKXRyeXt0KHAsQSxiayk7YnJlYWsgYX1jYXRjaChFKXtfLnJiKEUpfX1EJiYoRD1yLkosKHA9Xy5waChfLnFoKSkmJnAgaW4gRCYmKEQ9RFtwXSkmJmRlbGV0ZSBEW0FdKX1EPVVrLkxiP1VrLmgocixVay5MYixVay5nLFVrLmopOgpVay5oKHIsVWsuZyxudWxsLFVrLmopO2lmKEQ9RD09PW51bGw/dm9pZCAwOkQpRD1fLmdrKEQsMSwtMSksRCE9PS0xJiYoYy5SfHxibChjLEQpKX19YSYmYSgpO2MuQT0wfSxuPWZ1bmN0aW9uKHAscil7dmFyIHQ9Xy5jaihmLF8uS2ssMyk7dmFyIEE9TnVtYmVyKF8uaGsoZiwxNCkpLEQ9Yy5vO0QuZz1NYXRoLm1pbigzRTUsRC5nKjIpO0QuaD1NYXRoLm1pbigzRTUsRC5nK01hdGgucm91bmQoLjEqKE1hdGgucmFuZG9tKCktLjUpKjIqRC5nKSk7emsoYy5oLGMuby5NYSgpKTtwPT09NDAxJiZnJiYoYy5sYT1nKTtBJiYoYy5sKz1BKTtyPT09dm9pZCAwJiYocj01MDA8PXAmJnA8NjAwfHxwPT09NDAxfHxwPT09MCk7ciYmKGMuZz10LmNvbmNhdChjLmcpLGMuY2N8fGMuaC5nfHxjLmguc3RhcnQoKSk7JGsoYyw3LDEpO2ImJmIoIm5ldC1zZW5kLWZhaWxlZCIscCk7KytjLkF9LHE9ZnVuY3Rpb24oKXtjLnphJiZjLnphLnNlbmQoayxsLG4pfTtoP2gudGhlbihmdW5jdGlvbihwKXskayhjLAo1LGUpO2submVbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7ay5uZVsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2JpbmFyeSI7ay5ib2R5PXA7ay5aZz0yO3EoKX0sZnVuY3Rpb24oKXskayhjLDYsZSk7cSgpfSk6cSgpfX19fTsKdmFyIGNsPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/bnVsbDpjO3ZhciBkPWQ9PT12b2lkIDA/YS53aXRoQ3JlZGVudGlhbHM6ZDt2YXIgZT17fSxmPW5ldyBVUkwoWmsoYSkpO2MmJihlLkF1dGhvcml6YXRpb249Yyk7YS5tYiYmKGVbIlgtR29vZy1BdXRoVXNlciJdPWEubWIsZi5zZWFyY2hQYXJhbXMuc2V0KCJhdXRodXNlciIsYS5tYikpO3JldHVybnt1cmw6Zi50b1N0cmluZygpLGJvZHk6YixaZzoxLG5lOmUsTGk6IlBPU1QiLHdpdGhDcmVkZW50aWFsczpkLHdjOmEud2N9fSxYaz1mdW5jdGlvbihhKXthLmoubD0hMDthLkwmJihhLmouaD0zLGRsKGEpKTthLksmJihhLmouaD0yLGVsKGEpKTthLmZsdXNoKCk7YS5qLmw9ITF9LGRsPWZ1bmN0aW9uKGEpe2ZsKGEsMzIsMTAsZnVuY3Rpb24oYixjKXtiPW5ldyBVUkwoYik7Yi5zZWFyY2hQYXJhbXMuc2V0KCJmb3JtYXQiLCJqc29uIik7dmFyIGQ9ITE7dHJ5e2Q9Xy5tYigpLm5hdmlnYXRvci5zZW5kQmVhY29uKGIudG9TdHJpbmcoKSwKXy5XaihjKSl9Y2F0Y2goZSl7fWR8fChhLlQ9ITEpO3JldHVybiBkfSl9LGVsPWZ1bmN0aW9uKGEpe2ZsKGEsNiw1LGZ1bmN0aW9uKGIsYyl7Yj1uZXcgVVJMKGIpO2Iuc2VhcmNoUGFyYW1zLnNldCgiZm9ybWF0IiwiYmFzZTY0anNvbiIpO3ZhciBkPWIuc2VhcmNoUGFyYW1zLGU9ZC5zZXQ7Yz1fLldqKGMpO2Zvcih2YXIgZj1bXSxnPTAsaD0wO2g8Yy5sZW5ndGg7aCsrKXt2YXIgaz1jLmNoYXJDb2RlQXQoaCk7az4yNTUmJihmW2crK109ayYyNTUsaz4+PTgpO2ZbZysrXT1rfWM9b2ooZiwzKTtlLmNhbGwoZCwicCIsYyk7Yj1iLnRvU3RyaW5nKCk7aWYoYi5sZW5ndGg+MTUzNjApcmV0dXJuITE7KG5ldyBJbWFnZSkuc3JjPWI7cmV0dXJuITB9KX0sZmw9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYS5nLmxlbmd0aCE9PTApe3ZhciBlPW5ldyBVUkwoWmsoYSkpO2Uuc2VhcmNoUGFyYW1zLmRlbGV0ZSgiZm9ybWF0Iik7dmFyIGY9YS50YigpO2YmJmUuc2VhcmNoUGFyYW1zLnNldCgiYXV0aCIsCmYpO2Uuc2VhcmNoUGFyYW1zLnNldCgiYXV0aHVzZXIiLGEubWJ8fCIwIik7Zm9yKGY9MDtmPGMmJmEuZy5sZW5ndGg7KytmKXt2YXIgZz1hLmcuc2xpY2UoMCxiKSxoPVNrKGEuaixnLGEubCxhLkEsYS5DYixhLkcsYS5GKTtpZighZChlLnRvU3RyaW5nKCksaCkpeysrYS5BO2JyZWFrfWEubD0wO2EuQT0wO2EuRz0wO2EuRj0wO2EuZz1hLmcuc2xpY2UoZy5sZW5ndGgpfWEuaC5nJiZhLmguc3RvcCgpfX0sVms9ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vbG9nP2Zvcm1hdD1qc29uJmhhc2Zhc3Q9dHJ1ZSJ9O3ZhciBnbD1mdW5jdGlvbigpe3RoaXMuVmc9dHlwZW9mIEFib3J0Q29udHJvbGxlciE9PSJ1bmRlZmluZWQifTsKZ2wucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMsZSxmLGcsaCxrLGwsbixxLHAscjtyZXR1cm4gXy5WaShmdW5jdGlvbih0KXtzd2l0Y2godC5nKXtjYXNlIDE6cmV0dXJuIGY9KGU9ZC5WZz9uZXcgQWJvcnRDb250cm9sbGVyOnZvaWQgMCkmJmEud2M+MD9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5hYm9ydCgpfSxhLndjKTp2b2lkIDAsdC5GKDIsMyksZz1PYmplY3QuYXNzaWduKHt9LHttZXRob2Q6YS5MaSxoZWFkZXJzOk9iamVjdC5hc3NpZ24oe30sYS5uZSl9LGEuYm9keSYme2JvZHk6YS5ib2R5fSxhLndpdGhDcmVkZW50aWFscyYme2NyZWRlbnRpYWxzOiJpbmNsdWRlIn0se3NpZ25hbDphLndjJiZlP2Uuc2lnbmFsOm51bGx9KSx0LmgoZmV0Y2goYS51cmwsZyksNSk7Y2FzZSA1Omg9dC5qO2lmKGguc3RhdHVzIT09MjAwKXsoaz1jKT09bnVsbHx8ayhoLnN0YXR1cyk7dC54YSgzKTticmVha31pZigobD1iKT09bnVsbCl7dC54YSg3KTticmVha31yZXR1cm4gdC5oKGgudGV4dCgpLAo4KTtjYXNlIDg6bCh0LmopO2Nhc2UgNzpjYXNlIDM6dC5MKCk7Y2xlYXJUaW1lb3V0KGYpO3QucWEoMCk7YnJlYWs7Y2FzZSAyOm49dC5EKCk7c3dpdGNoKChxPW4pPT1udWxsP3ZvaWQgMDpxLm5hbWUpe2Nhc2UgIkFib3J0RXJyb3IiOihwPWMpPT1udWxsfHxwKDQwOCk7YnJlYWs7ZGVmYXVsdDoocj1jKT09bnVsbHx8cig0MDApfXQueGEoMyl9fSl9O2dsLnByb3RvdHlwZS5QZD1mdW5jdGlvbigpe3JldHVybiA0fTtfLmhsPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwPyIwIjpiO18udS5jYWxsKHRoaXMpO3RoaXMuT2I9YTt0aGlzLm1iPWI7dGhpcy5BPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9sb2c/Zm9ybWF0PWpzb24maGFzZmFzdD10cnVlIjt0aGlzLmc9dGhpcy5DYj10aGlzLnphPXRoaXMuaD1udWxsO3RoaXMubD10aGlzLm89ITE7dGhpcy5qPW51bGx9O18uQihfLmhsLF8udSk7Xy5pbD1mdW5jdGlvbihhLGIpe2EudGI9YjtyZXR1cm4gYX07Xy5qbD1mdW5jdGlvbihhKXthLm89ITA7cmV0dXJuIGF9O18uaGwucHJvdG90eXBlLk1jPWZ1bmN0aW9uKCl7dGhpcy5CPSEwO3JldHVybiB0aGlzfTsKXy5rbD1mdW5jdGlvbihhKXthLnphfHwoYS56YT1uZXcgZ2wpO3ZhciBiPW5ldyBZayh7T2I6YS5PYix0YjphLnRiP2EudGI6dmssbWI6YS5tYixhajphLkEsYWI6ITEsY2M6ITEsTWM6YS5CLE9lOmEuT2UsemE6YS56YX0pO18uYWsoYSxfLlpqKF8ucGEsYikpO2lmKGEuaCl7dmFyIGM9YS5oLGQ9UGsoYi5qKTtfLlRqKGQsNyxjKX1iLkQ9bmV3IHdrO2EuQ2ImJihiLkNiPWEuQ2IpO2EuZyYmKChkPWEuZyk/KGIuZXhwZXJpbWVudElkc3x8KGIuZXhwZXJpbWVudElkcz1uZXcgb2spLGM9Yi5leHBlcmltZW50SWRzLGQ9Xy5XaihkKSxfLlRqKGMsNCxkKSk6Yi5leHBlcmltZW50SWRzJiZfLiRpKGIuZXhwZXJpbWVudElkcyw0KSk7YS5vJiYoYi5MPWEubyYmYi5UKTthLmwmJihiLks9YS5sKTthLmomJihjPWEuaixiLlI9ITAsYmwoYixjKSk7UmsoYi5qKTthLnphLnZjJiZhLnphLnZjKGEuT2IpO2EuemEuUWkmJmEuemEuUWkoYik7cmV0dXJuIGJ9O18ubGw9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKF8ubGwsXy5KKTtfLm09Xy5sbC5wcm90b3R5cGU7Xy5tLkphPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDE2KX07Xy5tLk5hPWZ1bmN0aW9uKGEpe3JldHVybiBfLlRqKHRoaXMsMTYsYSl9O18ubS5vYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywxKX07Xy5tLm5hPWZ1bmN0aW9uKGEpe3JldHVybiBfLlRqKHRoaXMsMSxhKX07Xy5tLk9kPWZ1bmN0aW9uKCl7cmV0dXJuIF8uZGoodGhpcyw1Myl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm1sPWZ1bmN0aW9uKGEpe3ZhciBiPV8uS2EoKTthPWI/Yi5jcmVhdGVIVE1MKGEpOmE7cmV0dXJuIG5ldyBfLkRjKGEpfTtfLm5sPWZ1bmN0aW9uKGEsYil7Yj1fLkVnKGIpO2IhPT12b2lkIDAmJihhLmhyZWY9Yil9O18ub2w9e307Xy5wbD1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5wbC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTtfLnFsPXt9O18uemY9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiSyIpO307Xy56Zi5wcm90b3R5cGUuSmQ9bnVsbDtfLnpmLnByb3RvdHlwZS5tYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnR9O18uemYucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07Xy56Zi5wcm90b3R5cGUuVGI9ZnVuY3Rpb24oKXtpZih0aGlzLlpiIT09Xy5xbCl0aHJvdyBFcnJvcigiTCIpO3JldHVybiBfLm1sKHRoaXMudG9TdHJpbmcoKSl9O3ZhciBybD1mdW5jdGlvbigpe18uemYuY2FsbCh0aGlzKX07Cl8uRyhybCxfLnpmKTtybC5wcm90b3R5cGUuWmI9Xy5xbDt2YXIgc2w9ZnVuY3Rpb24oKXtfLnpmLmNhbGwodGhpcyl9O18uRyhzbCxfLnpmKTtzbC5wcm90b3R5cGUuWmI9Xy5vbDtzbC5wcm90b3R5cGUuSmQ9MTtzbC5wcm90b3R5cGUuaj1mdW5jdGlvbigpe3JldHVybiBuZXcgXy5wbCh0aGlzLnRvU3RyaW5nKCkpfTtfLnRsPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyl7dGhpcy5jb250ZW50PWN9Yi5wcm90b3R5cGU9YS5wcm90b3R5cGU7cmV0dXJuIGZ1bmN0aW9uKGMsZCl7Yz1uZXcgYihTdHJpbmcoYykpO2QhPT12b2lkIDAmJihjLkpkPWQpO3JldHVybiBjfX0ocmwpO18udWw9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihjKXt0aGlzLmNvbnRlbnQ9Y31iLnByb3RvdHlwZT1hLnByb3RvdHlwZTtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIG5ldyBiKFN0cmluZyhjKSl9fShzbCk7Xy52bD1SZWdFeHAucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJzdGlja3kiKTtfLndsPW5ldyBSZWdFeHAoKF8udmw/IiI6Il4iKSsiKD86IXwvPyhbYS16QS1aXVthLXpBLVowLTk6LV0qKSkiLF8udmw/Imd5IjoiZyIpO18ueGw9ZnVuY3Rpb24oKXtfLnpmLmNhbGwodGhpcyl9O18uQihfLnhsLHJsKTsKXy54bC5wcm90b3R5cGUubWE9ZnVuY3Rpb24oKXtpZih0aGlzLmNvbnRlbnQhPT12b2lkIDApcmV0dXJuIHRoaXMuY29udGVudDtmb3IodmFyIGE9IiIsYj1fLkModGhpcy5VKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhKz1jLnZhbHVlO3JldHVybiBhfTtfLnhsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hKCl9O18ueWw9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7dGhpcy5jb250ZW50PSIifWEucHJvdG90eXBlPV8ueGwucHJvdG90eXBlO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgYX19KCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8ubGEoImVsX21haW5fY3NzIik7CgpfLm1hKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8ubGEoImVsX21haW4iKTsKLyoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgemw9ZnVuY3Rpb24oYSxiKXt0aGlzLng9YSE9PXZvaWQgMD9hOjA7dGhpcy55PWIhPT12b2lkIDA/YjowfSxBbD1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ7Zm9yKGQgaW4gYSljW2RdPWIuY2FsbCh2b2lkIDAsYVtkXSxkLGEpO3JldHVybiBjfSxCbD1mdW5jdGlvbihhLGIpe3ZhciBjPWIuY3JlYXRlUmFuZ2UoKTtjLnNlbGVjdE5vZGUoYi5ib2R5KTthPV8ubWwoYSk7cmV0dXJuIGMuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KF8ua2ooYSkpfSxDbD1mdW5jdGlvbihhKXthPWEubm9kZU5hbWU7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/YToiRk9STSJ9LERsPWZ1bmN0aW9uKGEpe2E9YS5ub2RlVHlwZTtyZXR1cm4gYT09PTF8fHR5cGVvZiBhIT09Im51bWJlciJ9LEVsPWZ1bmN0aW9uKGEsYixjKXthLnNldEF0dHJpYnV0ZShiLGMpfSxGbD1mdW5jdGlvbihhKXtyZXR1cm4gXy5NYShhKX0sR2w9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5yaShhKTt2YXIgZT1hLkosZj1lW18uSF18CjA7aWYoYz09bnVsbClyZXR1cm4gXy50aShlLGYsYiksYTt2YXIgZz1jPT09Xy5UaD83OmNbXy5IXXwwLGg9ZyxrPV8uRWkoZyksbD1rfHxPYmplY3QuaXNGcm96ZW4oYyk7a3x8KGc9MCk7bHx8KGM9Xy5taShjKSxoPTAsZz1fLkRpKGcsZiksbD0hMSk7Z3w9NTtrPTQmZz81MTImZz81MTI6MTAyNCZnPzEwMjQ6MDp2b2lkIDA7az1rIT1udWxsP2s6MTAyNDtnfD1rO2Zvcih2YXIgbj0wO248Yy5sZW5ndGg7bisrKXt2YXIgcT1jW25dLHA9ZChxLGspO09iamVjdC5pcyhxLHApfHwobCYmKGM9Xy5taShjKSxoPTAsZz1fLkRpKGcsZiksbD0hMSksY1tuXT1wKX1nIT09aCYmKGwmJihjPV8ubWkoYyksZz1fLkRpKGcsZikpLF8uU2coYyxnKSk7Xy50aShlLGYsYixjKTtyZXR1cm4gYX0sSGw9ZnVuY3Rpb24oYSl7aWYoXy5PZyl7dmFyIGI7cmV0dXJuKGI9YVtfLmRrXSkhPW51bGw/YjphW18uZGtdPW5ldyBNYXB9aWYoXy5kayBpbiBhKXJldHVybiBhW18uZGtdO2I9bmV3IE1hcDtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwKXy5kayx7dmFsdWU6Yn0pO3JldHVybiBifSxJbD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLmdldChkKTtpZihlIT1udWxsKXJldHVybiBlO2Zvcih2YXIgZj1lPTA7ZjxkLmxlbmd0aDtmKyspe3ZhciBnPWRbZl07Xy51aShiLGcpIT1udWxsJiYoZSE9PTAmJihjPV8udGkoYixjLGUpKSxlPWcpfWEuc2V0KGQsZSk7cmV0dXJuIGV9LEpsPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM7Zm9yKGMgaW4gYSliW2NdPWFbY107cmV0dXJuIGJ9LEtsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8Yj8tMTphPmI/MTowfSxMbD1mdW5jdGlvbihhLGIpe3ZhciBjPTA7YT0oMCxfLkFjKShTdHJpbmcoYSkpLnNwbGl0KCIuIik7Yj0oMCxfLkFjKShTdHJpbmcoYikpLnNwbGl0KCIuIik7Zm9yKHZhciBkPU1hdGgubWF4KGEubGVuZ3RoLGIubGVuZ3RoKSxlPTA7Yz09MCYmZTxkO2UrKyl7dmFyIGY9YVtlXXx8IiIsZz1iW2VdfHwiIjtkb3tmPS8oXGQqKShcRCopKC4qKS8uZXhlYyhmKXx8WyIiLCIiLCIiLAoiIl07Zz0vKFxkKikoXEQqKSguKikvLmV4ZWMoZyl8fFsiIiwiIiwiIiwiIl07aWYoZlswXS5sZW5ndGg9PTAmJmdbMF0ubGVuZ3RoPT0wKWJyZWFrO2M9S2woZlsxXS5sZW5ndGg9PTA/MDpwYXJzZUludChmWzFdLDEwKSxnWzFdLmxlbmd0aD09MD8wOnBhcnNlSW50KGdbMV0sMTApKXx8S2woZlsyXS5sZW5ndGg9PTAsZ1syXS5sZW5ndGg9PTApfHxLbChmWzJdLGdbMl0pO2Y9ZlszXTtnPWdbM119d2hpbGUoYz09MCl9cmV0dXJuIGN9LE1sPWZ1bmN0aW9uKGEpe2lmKC9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChhLnRhZ05hbWUpKXRocm93IEVycm9yKCJ0Iik7fSxObD1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5wbClyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJ0Iik7fSxPbD1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csCiImYXBvczsiKX0sUGw9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLkRjP2E6Xy5tbChPbChTdHJpbmcoYSkpKX0sUWw9ZnVuY3Rpb24oYSl7dmFyIGI9e25vbmNlOl8uT2EoInNjcmlwdCIsZG9jdW1lbnQpfTthPV8uUmEoYSkudG9TdHJpbmcoKTt2YXIgYz0iPHNjcmlwdCI7aWYoYj09bnVsbD8wOmIuaWQpYys9JyBpZD0iJytPbChiLmlkKSsnIic7aWYoYj09bnVsbD8wOmIubm9uY2UpYys9JyBub25jZT0iJytPbChiLm5vbmNlKSsnIic7aWYoYj09bnVsbD8wOmIudHlwZSljKz0nIHR5cGU9IicrT2woYi50eXBlKSsnIic7aWYoYj09bnVsbD8wOmIuZGVmZXIpYys9IiBkZWZlciI7cmV0dXJuIF8ubWwoYysoIj4iK2ErIlx4M2Mvc2NyaXB0PiIpKX0sUmw9ZnVuY3Rpb24oYSl7dmFyIGI9UGwoIiIpO3JldHVybiBfLm1sKGEubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBfLmtqKFBsKGMpKX0pLmpvaW4oXy5raihiKS50b1N0cmluZygpKSl9LFNsPWZ1bmN0aW9uKGEpe3JldHVybiBSbChhKX0sClZsPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iIixjPU9iamVjdC5rZXlzKGEpLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXSxmPWFbZV07aWYoIVRsLnRlc3QoZSkpdGhyb3cgRXJyb3IoInQiKTtpZihmIT09dm9pZCAwJiZmIT09bnVsbCl7aWYoL15vbi4vaS50ZXN0KGUpKXRocm93IEVycm9yKCJ0Iik7VWwuaW5kZXhPZihlLnRvTG93ZXJDYXNlKCkpIT09LTEmJihmPV8uRWcoU3RyaW5nKGYpKXx8ImFib3V0OmludmFsaWQjekNsb3N1cmV6Iik7Zj1lKyc9IicrUGwoU3RyaW5nKGYpKSsnIic7Yis9IiAiK2Z9fXJldHVybiBifSxZbD1mdW5jdGlvbihhKXt2YXIgYj17fTtpZighVGwudGVzdCgiYm9keSIpKXRocm93IEVycm9yKCJ0Iik7aWYoV2wuaW5kZXhPZigiQk9EWSIpIT09LTEpdGhyb3cgRXJyb3IoInQiKTt2YXIgYz0iPGJvZHkiO2ImJihjKz1WbChiKSk7QXJyYXkuaXNBcnJheShhKXx8KGE9YT09PXZvaWQgMD9bXTpbYV0pO1hsLmluZGV4T2YoIkJPRFkiKSE9PS0xPwpjKz0iPiI6KGE9U2woYS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQgaW5zdGFuY2VvZiBfLkRjP2Q6UGwoU3RyaW5nKGQpKX0pKSxjKz0iPiIrYS50b1N0cmluZygpKyI8L2JvZHk+Iik7cmV0dXJuIF8ubWwoYyl9LFpsPWZ1bmN0aW9uKGEpe3RoaXMuaD10aGlzLkI9dGhpcy5sPSIiO3RoaXMuQz1udWxsO3RoaXMuQT10aGlzLmo9IiI7dGhpcy5vPSExO3ZhciBiO2EgaW5zdGFuY2VvZiBabD8odGhpcy5vPWEubywkbCh0aGlzLGEubCksdGhpcy5CPWEuQixhbSh0aGlzLGEuaCksYm0odGhpcyxhLkMpLGNtKHRoaXMsYS5qKSxkbSh0aGlzLGVtKGEuZykpLHRoaXMuQT1hLkEpOmEmJihiPVN0cmluZyhhKS5tYXRjaChfLnJmKSk/KHRoaXMubz0hMSwkbCh0aGlzLGJbMV18fCIiLCEwKSx0aGlzLkI9Zm0oYlsyXXx8IiIpLGFtKHRoaXMsYlszXXx8IiIsITApLGJtKHRoaXMsYls0XSksY20odGhpcyxiWzVdfHwiIiwhMCksZG0odGhpcyxiWzZdfHwiIiwhMCksdGhpcy5BPWZtKGJbN118fCIiKSk6Cih0aGlzLm89ITEsdGhpcy5nPW5ldyBnbShudWxsLHRoaXMubykpfSxobT1mdW5jdGlvbihhKXtyZXR1cm4gXy55YShhKT9hLlRiJiYoYT1hLlRiKCksYSBpbnN0YW5jZW9mIF8uRGMpP2E6UGwoInpTb3l6Iik6UGwoU3RyaW5nKGEpKX0saW09ZnVuY3Rpb24oYSxiKXtiJiZiLmg/Yi5oKGEpOihiPWhtKGIpLGEuaW5uZXJIVE1MPV8ua2ooYikpfSxrbT1mdW5jdGlvbihhLGIpe2E6aWYoYj1hKGJ8fGptLHZvaWQgMCksYT1fLmxiKCksYiYmYi5nP2E9Yi5nKCk6KGE9YS5jcmVhdGVFbGVtZW50KCJESVYiKSxiPWhtKGIpLGEuaW5uZXJIVE1MPV8ua2ooYikpLGEuY2hpbGROb2Rlcy5sZW5ndGg9PTEmJihiPWEuZmlyc3RDaGlsZCxiLm5vZGVUeXBlPT0xKSl7YT1iO2JyZWFrIGF9cmV0dXJuIGF9LG1tPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7YT1sbShhLGIpO2I9Yi5ib2R5O2IuYXBwZW5kQ2hpbGQoYSk7Yj0obmV3IFhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKGIpOwpiPWIuc2xpY2UoYi5pbmRleE9mKCI+IikrMSxiLmxhc3RJbmRleE9mKCI8LyIpKTtyZXR1cm4gXy5tbChiKX0sbm09ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0ic3RyaW5nIil0aHJvdyBFcnJvcigpO3JldHVybiBhfSxvbT1mdW5jdGlvbihhLGIsYyl7aWYoYilyZXR1cm4gbm0oYSk7dmFyIGQ7cmV0dXJuKGQ9Xy5waShhKSkhPW51bGw/ZDpjPyIiOnZvaWQgMH0scm09ZnVuY3Rpb24oKXtyZXR1cm4gcG18fChwbT1uZXcgXy55aChfLlRnKFtdKSx2b2lkIDAsdm9pZCAwLHZvaWQgMCxxbSkpfSxzbT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLkosZj1lW18uSF18MDtjPV8uV2coYSxmKT8xOmM7ZD0hIWR8fGM9PT0zO2M9PT0yJiZfLnFpKGEpJiYoZT1hLkosZj1lW18uSF18MCk7YT1fLkJpKGUsYik7dmFyIGc9YT09PV8uVGg/NzphW18uSF18MCxoPV8uQ2koZyxmKTt2YXIgaz00Jmg/ITE6ITA7aWYoayl7NCZoJiYoYT1fLm1pKGEpLGc9MCxoPV8uRGkoaCxmKSxmPV8udGkoZSwKZixiLGEpKTtmb3IodmFyIGw9MCxuPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBxPV8ucGkoYVtsXSk7cSE9bnVsbCYmKGFbbisrXT1xKX1uPGwmJihhLmxlbmd0aD1uKTtoPShofDQpJi01MTM7aCY9LTEwMjU7aCY9LTQwOTd9aCE9PWcmJihfLlNnKGEsaCksMiZoJiZPYmplY3QuZnJlZXplKGEpKTtyZXR1cm4gYT1fLkZpKGEsaCxlLGYsYixjLGssZCl9LHVtPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRtOyFkJiZfLnFpKGEpJiYoYj1hLkosYz1iW18uSF18MCk7dmFyIGY9Xy51aShiLDEpO2E9ITE7aWYoZj09bnVsbCl7aWYoZClyZXR1cm4gcm0oKTtmPVtdfWVsc2UgaWYoZi5jb25zdHJ1Y3Rvcj09PV8ueWgpaWYoZi5LYiYyJiYhZClmPV8uemgoZik7ZWxzZSByZXR1cm4gZjtlbHNlIEFycmF5LmlzQXJyYXkoZik/YT0hISgoZltfLkhdfDApJjIpOmY9W107aWYoZCl7aWYoIWYubGVuZ3RoKXJldHVybiBybSgpO2F8fChhPSEwLF8uVGcoZikpfWVsc2UgaWYoYSl7YT0hMTtfLlVnKGYpOwpkPV8ubWkoZik7Zm9yKGY9MDtmPGQubGVuZ3RoO2YrKyl7dmFyIGc9ZFtmXT1fLm1pKGRbZl0pO0FycmF5LmlzQXJyYXkoZ1sxXSkmJihnWzFdPV8uVGcoZ1sxXSkpfWY9Xy5VZyhkKX0hYSYmYyYzMiYmXy5saShmKTtlPW5ldyBfLnloKGYsZSxvbSx2b2lkIDApO2M9Xy50aShiLGMsMSxlKTthfHxfLnNpKGIsYyk7cmV0dXJuIGV9LHZtPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMudG9wPWE7dGhpcy5yaWdodD1iO3RoaXMuYm90dG9tPWM7dGhpcy5sZWZ0PWR9LHdtPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMubGVmdD1hO3RoaXMudG9wPWI7dGhpcy53aWR0aD1jO3RoaXMuaGVpZ2h0PWR9LHhtPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9YS5sZW5ndGgsZT0wLGY9W10sZyxoLGs9MDtrPGQ7KXtzd2l0Y2goZSl7Y2FzZSAwOnZhciBsPWEuaW5kZXhPZigiPCIsayk7aWYobDwwKXtpZihjLmxlbmd0aD09PTApcmV0dXJuIGE7Yy5wdXNoKGEuc3Vic3RyaW5nKGspKTtrPWR9ZWxzZSBjLnB1c2goYS5zdWJzdHJpbmcoaywKbCkpLGg9bCxrPWwrMSxfLnZsPyhfLndsLmxhc3RJbmRleD1rLGw9Xy53bC5leGVjKGEpKTooXy53bC5sYXN0SW5kZXg9MCxsPV8ud2wuZXhlYyhhLnN1YnN0cmluZyhrKSkpLGw/KGY9WyI8IixsWzBdXSxnPWxbMV0sZT0xLGsrPWxbMF0ubGVuZ3RoKTpjLnB1c2goIjwiKTticmVhaztjYXNlIDE6bD1hLmNoYXJBdChrKyspO3N3aXRjaChsKXtjYXNlICInIjpjYXNlICciJzp2YXIgbj1hLmluZGV4T2YobCxrKTtuPDA/az1kOihmLnB1c2gobCxhLnN1YnN0cmluZyhrLG4rMSkpLGs9bisxKTticmVhaztjYXNlICI+IjpmLnB1c2gobCk7Yy5wdXNoKGIoZi5qb2luKCIiKSxnKSk7ZT0wO2Y9W107aD1nPW51bGw7YnJlYWs7ZGVmYXVsdDpmLnB1c2gobCl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigpO31lPT09MSYmaz49ZCYmKGs9aCsxLGMucHVzaCgiPCIpLGU9MCxmPVtdLGg9Zz1udWxsKX1yZXR1cm4gYy5qb2luKCIiKX0sRG09ZnVuY3Rpb24oKXt2YXIgYT15bShfLmpsKF8uaWwoem0oKSwKZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pLk1jKCkpKSxiPUFtKCkubWFwKGZ1bmN0aW9uKGMpe3ZhciBkO2E6e3ZhciBlPWMubztpZihlPT1udWxsKWM9bnVsbDtlbHNlIGlmKHR5cGVvZiBlPT09Im51bWJlciIpYz1lO2Vsc2V7aWYodHlwZW9mIGU9PT0ic3RyaW5nIil7dmFyIGY9TnVtYmVyKGUpO2lmKCFpc05hTihmKSYmKGYhPT0wfHxlLnRyaW0oKS5sZW5ndGghPT0wKSl7Yz1mO2JyZWFrIGF9fXRocm93IEJtKGMsIm51bWJlciIpO319cmV0dXJuKGQ9YykhPW51bGw/ZDowfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjPjB9KTtiLmxlbmd0aD4wJiYoYj1DbShiKSxhLmc9Yik7cmV0dXJuIF8ua2woYSl9LEVtPWZ1bmN0aW9uKGEpe3JldHVybiJ0cmFuc2xhdGU6IithfSxLbT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgRm07Yj1fLlRqKGIsMSxhLm5hbWUpO3ZhciBjPUdtKGEuc3RhcnRUaW1lKTtiPV8uTChiLDIsYyk7YT1IbShhLmR1cmF0aW9uKTthPV8uTChiLDMsYSk7Yj1uZXcgSW07CnJldHVybiBKbShhLDUsYil9LEdtPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBMbTtiLnNldFNlY29uZHMoTWF0aC5mbG9vcihhLzFFMykpO2E9TWF0aC5yb3VuZChhJTFFMyoxRTYpO18uR2koYiwyLGE9PW51bGw/YTpfLkJqKGEpLDApO3JldHVybiBifSxIbT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgTW07Yi5zZXRTZWNvbmRzKE1hdGguZmxvb3IoYS8xRTMpKTthPU1hdGgucm91bmQoYSUxRTMqMUU2KTtfLkdpKGIsMixhPT1udWxsP2E6Xy5CaihhKSwwKTtyZXR1cm4gYn0sTm09ZnVuY3Rpb24oYSl7cmV0dXJuIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5tYXJrJiYoYT1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKGEsIm1hcmsiKSxhLmxlbmd0aD09MSk/YVswXTpudWxsfSxPbT1mdW5jdGlvbihhLGIpe3JldHVybiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UubWVhc3VyZT9wZXJmb3JtYW5jZS5tZWFzdXJlKGEsYil8fG51bGw6bnVsbH0sUm09ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPQpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2Quc3BsaWNlKDAsMik7ZD0ibCIrYS50b1N0cmluZygxNikrImkiK2IudG9TdHJpbmcoMTYpKyhkLmxlbmd0aD8iLSIrZC5qb2luKCJfIik6IiIpO1BtP1BtLnB1c2goZCk6UW0oZCl9LFZtPWZ1bmN0aW9uKCl7dmFyIGE9U218fChTbT1UbSgnW251bGwsbnVsbCxudWxsLG51bGwsbnVsbCwiKGZ1bmN0aW9uKCl7XCd1c2Ugc3RyaWN0XCc7dmFyIGZcXHUwMDNkdHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzXFx1MDAzZFxcdTAwM2RcXCJmdW5jdGlvblxcIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxjLGIpe2lmKGFcXHUwMDNkXFx1MDAzZEFycmF5LnByb3RvdHlwZXx8YVxcdTAwM2RcXHUwMDNkT2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2NdXFx1MDAzZGIudmFsdWU7cmV0dXJuIGF9O2Z1bmN0aW9uIGcoYSl7YVxcdTAwM2RbXFwib2JqZWN0XFwiXFx1MDAzZFxcdTAwM2R0eXBlb2YgZ2xvYmFsVGhpc1xcdTAwMjZcXHUwMDI2Z2xvYmFsVGhpcyxhLFxcIm9iamVjdFxcIlxcdTAwM2RcXHUwMDNkdHlwZW9mIHdpbmRvd1xcdTAwMjZcXHUwMDI2d2luZG93LFxcIm9iamVjdFxcIlxcdTAwM2RcXHUwMDNkdHlwZW9mIHNlbGZcXHUwMDI2XFx1MDAyNnNlbGYsXFwib2JqZWN0XFwiXFx1MDAzZFxcdTAwM2R0eXBlb2YgZ2xvYmFsXFx1MDAyNlxcdTAwMjZnbG9iYWxdO2Zvcih2YXIgY1xcdTAwM2QwO2NcXHUwMDNjYS5sZW5ndGg7KytjKXt2YXIgYlxcdTAwM2RhW2NdO2lmKGJcXHUwMDI2XFx1MDAyNmIuTWF0aFxcdTAwM2RcXHUwMDNkTWF0aClyZXR1cm4gYn10aHJvdyBFcnJvcihcXCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0XFwiKTt9dmFyIGhcXHUwMDNkZyh0aGlzKTtcXG5mdW5jdGlvbiBrKGEsYyl7aWYoYylhOnt2YXIgYlxcdTAwM2RoO2FcXHUwMDNkYS5zcGxpdChcXCIuXFwiKTtmb3IodmFyIGRcXHUwMDNkMDtkXFx1MDAzY2EubGVuZ3RoLTE7ZCsrKXt2YXIgZVxcdTAwM2RhW2RdO2lmKCEoZSBpbiBiKSlicmVhayBhO2JcXHUwMDNkYltlXX1hXFx1MDAzZGFbYS5sZW5ndGgtMV07ZFxcdTAwM2RiW2FdO2NcXHUwMDNkYyhkKTtjIVxcdTAwM2RkXFx1MDAyNlxcdTAwMjZjIVxcdTAwM2RudWxsXFx1MDAyNlxcdTAwMjZmKGIsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX19ayhcXCJnbG9iYWxUaGlzXFwiLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxofSk7LypcXG5cXG4gQ29weXJpZ2h0IEdvb2dsZSBMTENcXG4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcXG4qL1xcbnZhciBsXFx1MDAzZGdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLG07ZnVuY3Rpb24gbigpe3ZhciBhXFx1MDAzZG51bGw7aWYoIWwpcmV0dXJuIGE7dHJ5e3ZhciBjXFx1MDAzZGZ1bmN0aW9uKGIpe3JldHVybiBifTthXFx1MDAzZGwuY3JlYXRlUG9saWN5KFxcImdvb2cjaHRtbFxcIix7Y3JlYXRlSFRNTDpjLGNyZWF0ZVNjcmlwdDpjLGNyZWF0ZVNjcmlwdFVSTDpjfSl9Y2F0Y2goYil7fXJldHVybiBhfTtmdW5jdGlvbiBwKGEpe3RoaXMuZ1xcdTAwM2RhfXAucHJvdG90eXBlLnRvU3RyaW5nXFx1MDAzZGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZytcXCJcXCJ9O2Z1bmN0aW9uIHEoYSl7bVxcdTAwM2RcXHUwMDNkXFx1MDAzZHZvaWQgMFxcdTAwMjZcXHUwMDI2KG1cXHUwMDNkbigpKTthXFx1MDAzZG0/bS5jcmVhdGVTY3JpcHRVUkwoYSk6YTtyZXR1cm4gbmV3IHAoYSl9O2lmKCFmdW5jdGlvbigpe2lmKHNlbGYub3JpZ2luKXJldHVybiBzZWxmLm9yaWdpblxcdTAwM2RcXHUwMDNkXFx1MDAzZFxcIm51bGxcXCI7aWYobG9jYXRpb24uaG9zdCFcXHUwMDNkXFx1MDAzZFxcIlxcIilyZXR1cm4hMTt0cnl7cmV0dXJuIHdpbmRvdy5wYXJlbnQuZXNjYXBlKFxcIlxcIiksITF9Y2F0Y2goYSl7cmV0dXJuITB9fSgpKXRocm93IEVycm9yKFxcInNhbmRib3hpbmcgZXJyb3JcXCIpO1xcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxcIm1lc3NhZ2VcXCIsZnVuY3Rpb24oYSl7dmFyIGNcXHUwMDNkYS5wb3J0c1swXTthXFx1MDAzZGEuZGF0YTt2YXIgYlxcdTAwM2RhLmNhbGxiYWNrTmFtZS5zcGxpdChcXCIuXFwiKSxkXFx1MDAzZHdpbmRvdztiWzBdXFx1MDAzZFxcdTAwM2RcXHUwMDNkXFwid2luZG93XFwiXFx1MDAyNlxcdTAwMjZiLnNoaWZ0KCk7Zm9yKHZhciBlXFx1MDAzZDA7ZVxcdTAwM2NiLmxlbmd0aC0xO2UrKylkW2JbZV1dXFx1MDAzZHt9LGRcXHUwMDNkZFtiW2VdXTtkW2JbYi5sZW5ndGgtMV1dXFx1MDAzZGZ1bmN0aW9uKHIpe2MucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkocikpfTtiXFx1MDAzZGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFwic2NyaXB0XFwiKTthXFx1MDAzZHEoYS51cmwpO2lmKGEgaW5zdGFuY2VvZiBwKWFcXHUwMDNkYS5nO2Vsc2UgdGhyb3cgRXJyb3IoXFwiXFwiKTtiLnNyY1xcdTAwM2RhO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYil9LCEwKTt9KS5jYWxsKHRoaXMpO1xcbiJdJykpOwppZighYSlyZXR1cm4gbnVsbDthPV8ucGkoXy5aaShhLDYsdm9pZCAwLFVtKSk7dmFyIGI7YT09PW51bGx8fGE9PT12b2lkIDA/Yj1udWxsOmI9Xy5RYShhKTtyZXR1cm4gYn0sV209ZnVuY3Rpb24oYSl7dmFyIGI9e307YT1fLkMoYSk7Zm9yKHZhciBjPWEubmV4dCgpOyFjLmRvbmU7Yz1hLm5leHQoKSljPWMudmFsdWUsYltjLmxhbmd1YWdlXT1jLm5hbWU7cmV0dXJuIGJ9LFhtPWZ1bmN0aW9uKCl7fSxZbT1mdW5jdGlvbihhLGIpe18uaGIuY2FsbCh0aGlzKTt0aGlzLmw9bmV3IF8uSGIodGhpcyk7dGhpcy5RYihhfHxudWxsKTtiJiYodGhpcy5VYj1iKX0sYm49ZnVuY3Rpb24oYSl7Xy5oYi5jYWxsKHRoaXMpO3RoaXMuZz1hO3RoaXMuaD1fLngodGhpcy5nLCJmb2N1cyIsdGhpcywhMCk7dGhpcy5qPV8ueCh0aGlzLmcsImJsdXIiLHRoaXMsITApfSxjbj1mdW5jdGlvbigpe30sZG49ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZWxlbWVudD1hO3RoaXMuaj1iO3RoaXMubD1jfSxlbj1mdW5jdGlvbihhLApiKXt0aGlzLmc9YSBpbnN0YW5jZW9mIHpsP2E6bmV3IHpsKGEsYil9LGZuPWZ1bmN0aW9uKGEsYil7dGhpcy5vPWJ8fHZvaWQgMDtZbS5jYWxsKHRoaXMsYSl9LE89ZnVuY3Rpb24oYSxiLGMpe3RoaXMuRz1jfHwoYT9fLmxiKGduKGEpKTpfLmxiKCkpO2ZuLmNhbGwodGhpcyx0aGlzLkcuUygiRElWIix7c3R5bGU6InBvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZTsifSkpO3RoaXMucmE9bmV3IHpsKDEsMSk7dGhpcy5BPW5ldyBTZXQ7dGhpcy5DPW51bGw7YSYmdGhpcy5hdHRhY2goYSk7YiE9bnVsbCYmdGhpcy5LYShiKX0saG49ZnVuY3Rpb24oYSl7YT1hLmNsYXNzTmFtZTtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIiYmYS5tYXRjaCgvXFMrL2cpfHxbXX0sa249ZnVuY3Rpb24oYSxiKXt2YXIgYz1obihhKSxkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxlPWMubGVuZ3RoK2QubGVuZ3RoO2puKGMsZCk7YS5jbGFzc05hbWU9Yy5qb2luKCIgIik7CnJldHVybiBjLmxlbmd0aD09ZX0sbW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1obihhKSxkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxlPWxuKGMsZCk7YS5jbGFzc05hbWU9ZS5qb2luKCIgIik7cmV0dXJuIGUubGVuZ3RoPT1jLmxlbmd0aC1kLmxlbmd0aH0sam49ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKylfLnRhKGEsYltjXSl8fGEucHVzaChiW2NdKX0sbG49ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIV8udGEoYixjKX0pfSxubj1mdW5jdGlvbihhLGIpe3JldHVybiBfLnRhKGhuKGEpLGIpfSxvbj1mdW5jdGlvbihhLGIsYyl7Yz9rbihhLGIpOm1uKGEsYil9LHRuPWZ1bmN0aW9uKGEpe3JldHVybiBwbihuZXcgcW4sc20oYSwxLF8uYWooKSkubWFwKGZ1bmN0aW9uKGIsYyl7dmFyIGQ9bmV3IHJuO2I9c24oZCwxLGIpO2lmKHNtKGEsMixfLmFqKCkpLmxlbmd0aD5jKXtkPXNtKGEsMiwKMywhMCk7aWYodHlwZW9mIGMhPT0ibnVtYmVyInx8YzwwfHxjPj1kLmxlbmd0aCl0aHJvdyBFcnJvcigpO3NuKGIsMyxkW2NdKX1yZXR1cm4gYn0pKX0sdW49ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHJuO2I9c24oYiwxLGFbMF0pO2EubGVuZ3RoPT09MyYmc24oYiwzLGFbMl0pO3JldHVybiBifSx2bj1mdW5jdGlvbihhKXtyZXR1cm4gXy5jaihhLHJuLDEpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gXy5OKGIsMyk/W18uTihiLDEpLDIwMCxfLk4oYiwzKV06W18uTihiLDEpLDIwMF19KX0sd249ZnVuY3Rpb24oKXt9LHhuPWZ1bmN0aW9uKGEpe18uaGIuY2FsbCh0aGlzKTt0aGlzLmg9YXx8Xy5sYigpO3RoaXMubGE9bnVsbDt0aGlzLmpiPSExO3RoaXMuQz1udWxsO3RoaXMuTz12b2lkIDA7dGhpcy5SPXRoaXMuRj10aGlzLks9bnVsbDt0aGlzLndhPSExfSx5bj1mdW5jdGlvbihhKXt2YXIgYj1fLmxiKCksYz1iLmcsZD1iLmNyZWF0ZUVsZW1lbnQoIlNUWUxFIiksZT1fLk9hKCJzdHlsZSIsCmMpO2UmJmQuc2V0QXR0cmlidXRlKCJub25jZSIsZSk7ZC50eXBlPSJ0ZXh0L2NzcyI7Yj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJIRUFEIilbMF07ZC5zdHlsZVNoZWV0P2Quc3R5bGVTaGVldC5jc3NUZXh0PWE6ZC5hcHBlbmRDaGlsZChjLmNyZWF0ZVRleHROb2RlKGEpKTtiLmFwcGVuZENoaWxkKGQpO3JldHVybiBkfSxDbj1mdW5jdGlvbigpe2Zvcih2YXIgYSBpbiBPYmplY3QucHJvdG90eXBlKXtfLnpjPWZ1bmN0aW9uKGQsZSxmKXtmb3IodmFyIGcgaW4gZClkW2ddIT09T2JqZWN0LnByb3RvdHlwZVtnXSYmZS5jYWxsKGYsZFtnXSxnLGQpfTticmVha312YXIgYj1EYXRlLm5vdygpLGM9em4oQW4pO2MmJnR5cGVvZiBjPT0iZnVuY3Rpb24iJiYoQm49PTE/YygpOmZ1bmN0aW9uIGUoKXt2YXIgZj1kb2N1bWVudC5yZWFkeVN0YXRlO18ub2MoZik9PSJ1bmRlZmluZWQifHxmPT0iY29tcGxldGUifHxmPT0iaW50ZXJhY3RpdmUifHxEYXRlLm5vdygpLWI+PTJFND9jKCk6d2luZG93LnNldFRpbWVvdXQoZSwKNTAwKX0oKSl9O18ubT16bC5wcm90b3R5cGU7Xy5tLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIHpsJiYodGhpcz09YT8hMDp0aGlzJiZhP3RoaXMueD09YS54JiZ0aGlzLnk9PWEueTohMSl9O18ubS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguY2VpbCh0aGlzLngpO3RoaXMueT1NYXRoLmNlaWwodGhpcy55KTtyZXR1cm4gdGhpc307Xy5tLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguZmxvb3IodGhpcy54KTt0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpO3JldHVybiB0aGlzfTtfLm0ucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpO3RoaXMueT1NYXRoLnJvdW5kKHRoaXMueSk7cmV0dXJuIHRoaXN9OwpfLm0udHJhbnNsYXRlPWZ1bmN0aW9uKGEsYil7YSBpbnN0YW5jZW9mIHpsPyh0aGlzLngrPWEueCx0aGlzLnkrPWEueSk6KHRoaXMueCs9TnVtYmVyKGEpLHR5cGVvZiBiPT09Im51bWJlciImJih0aGlzLnkrPWIpKTtyZXR1cm4gdGhpc307CnZhciBEbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHpsKGEueCxhLnkpfSxFbj1bImRhdGE6IiwiaHR0cDoiLCJodHRwczoiLCJtYWlsdG86IiwiZnRwOiJdLEZuPWZ1bmN0aW9uKGEpe3ZhciBiPTE7YT1hLnNwbGl0KCI6Iik7Zm9yKHZhciBjPVtdO2I+MCYmYS5sZW5ndGg7KWMucHVzaChhLnNoaWZ0KCkpLGItLTthLmxlbmd0aCYmYy5wdXNoKGEuam9pbigiOiIpKTtyZXR1cm4gY30sR249ZnVuY3Rpb24oYSxiLGMpe2M9YS5nLmdldChjKTtyZXR1cm4oYz09bnVsbD8wOmMuaGFzKGIpKT9jLmdldChiKTphLmwuaGFzKGIpP3t1YToxfTooYz1hLm8uZ2V0KGIpKT9jOmEuaCYmW10uY29uY2F0KF8uJGIoYS5oKSkuc29tZShmdW5jdGlvbihkKXtyZXR1cm4gYi5pbmRleE9mKGQpPT09MH0pP3t1YToxfTp7dWE6MH19LEhuPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1DbChiKTtjPWMuY3JlYXRlRWxlbWVudChkKTtiPWIuYXR0cmlidXRlcztmb3IodmFyIGU9Xy5DKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPQplLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtmPWcubmFtZTtnPWcudmFsdWU7dmFyIGg9R24oYS5nLGYsZCksazthOntpZihrPWguY29uZGl0aW9ucyl7az1fLkMoayk7Zm9yKHZhciBsPWsubmV4dCgpOyFsLmRvbmU7bD1rLm5leHQoKSl7dmFyIG49Xy5DKGwudmFsdWUpO2w9bi5uZXh0KCkudmFsdWU7bj1uLm5leHQoKS52YWx1ZTt2YXIgcT12b2lkIDA7aWYoKGw9KHE9Yi5nZXROYW1lZEl0ZW0obCkpPT1udWxsP3ZvaWQgMDpxLnZhbHVlKSYmIW4uaGFzKGwpKXtrPSExO2JyZWFrIGF9fX1rPSEwfWlmKGspc3dpdGNoKGgudWEpe2Nhc2UgMTpFbChjLGYsZyk7YnJlYWs7Y2FzZSAyOnRocm93IEVycm9yKCk7Y2FzZSAzOkVsKGMsZixnLnRvTG93ZXJDYXNlKCkpO2JyZWFrO2Nhc2UgNDpFbChjLGYsZyk7YnJlYWs7Y2FzZSA1OkVsKGMsZixnKTticmVhaztjYXNlIDY6RWwoYyxmLGcpO2JyZWFrO2Nhc2UgNzphOmlmKGg9dm9pZCAwLGs9ZyxfLkNjKXt0cnl7aD1uZXcgVVJMKGspfWNhdGNoKHApe2g9CiJodHRwczoiO2JyZWFrIGF9aD1oLnByb3RvY29sfWVsc2UgYjp7aD1rO2s9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3RyeXtrLmhyZWY9aH1jYXRjaChwKXtoPXZvaWQgMDticmVhayBifWg9ay5wcm90b2NvbDtoPWg9PT0iOiJ8fGg9PT0iIj8iaHR0cHM6IjpofWc9aCE9PXZvaWQgMCYmRW4uaW5kZXhPZihoLnRvTG93ZXJDYXNlKCkpIT09LTE/ZzoiYWJvdXQ6aW52YWxpZCN6Q2xvc3VyZXoiO0VsKGMsZixnKX19cmV0dXJuIGN9LGxtPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5xZDthPUJsKGEsYik7YT1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGEsNSxmdW5jdGlvbihoKXtpZihoLm5vZGVUeXBlPT09MyloPTE7ZWxzZSBpZihEbChoKSlpZihoPUNsKGgpLGg9PT1udWxsKWg9MjtlbHNle3ZhciBrPWMuZztoPWghPT0iRk9STSImJihrLmouaGFzKGgpfHxrLmcuaGFzKGgpKT8xOjJ9ZWxzZSBoPTI7cmV0dXJuIGh9KTtmb3IodmFyIGQ9YS5uZXh0Tm9kZSgpLGU9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksCmY9ZTtkIT09bnVsbDspe3ZhciBnPXZvaWQgMDtpZihkLm5vZGVUeXBlPT09MylnPWMuY3JlYXRlVGV4dE5vZGUoZC5kYXRhKTtlbHNlIGlmKERsKGQpKWc9SG4oYyxkLGIpO2Vsc2UgdGhyb3cgRXJyb3IoInQiKTtmLmFwcGVuZENoaWxkKGcpO2lmKGQ9YS5maXJzdENoaWxkKCkpZj1nO2Vsc2UgZm9yKDshKGQ9YS5uZXh0U2libGluZygpKSYmKGQ9YS5wYXJlbnROb2RlKCkpOylmPWYucGFyZW50Tm9kZX1yZXR1cm4gZX0sSW49ZnVuY3Rpb24oYSxiKXtyZXR1cm4oYj1iJiZiIT0iKiI/U3RyaW5nKGIpLnRvVXBwZXJDYXNlKCk6IiIpP2EucXVlcnlTZWxlY3RvckFsbChiKTphLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9LEpuPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNjcm9sbGluZ0VsZW1lbnQ/YS5zY3JvbGxpbmdFbGVtZW50Ol8uVmN8fGEuY29tcGF0TW9kZSE9IkNTUzFDb21wYXQiP2EuYm9keXx8YS5kb2N1bWVudEVsZW1lbnQ6YS5kb2N1bWVudEVsZW1lbnR9LEtuPWZ1bmN0aW9uKGEpe3ZhciBiPQpKbihhKTthPWEuZGVmYXVsdFZpZXc7cmV0dXJuIG5ldyB6bCgoYT09bnVsbD92b2lkIDA6YS5wYWdlWE9mZnNldCl8fGIuc2Nyb2xsTGVmdCwoYT09bnVsbD92b2lkIDA6YS5wYWdlWU9mZnNldCl8fGIuc2Nyb2xsVG9wKX0sTG49ZnVuY3Rpb24oYSl7dmFyIGI9e307YT0oYS5nJiYoYS5nP2EuZy5yZWFkeVN0YXRlOjApPj0yP2EuZy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8IiI6IiIpLnNwbGl0KCJcclxuIik7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoIS9eW1xzXHhhMF0qJC8udGVzdChhW2NdKSl7dmFyIGQ9Rm4oYVtjXSksZT1kWzBdO2Q9ZFsxXTtpZih0eXBlb2YgZD09PSJzdHJpbmciKXtkPWQudHJpbSgpO3ZhciBmPWJbZV18fFtdO2JbZV09ZjtmLnB1c2goZCl9fXJldHVybiBBbChiLGZ1bmN0aW9uKGcpe3JldHVybiBnLmpvaW4oIiwgIil9KX0sTW49WzQsNSw2XSxKbT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9TW47Yz1fLkppKGMpO2E6e3ZhciBlPWM7Xy5yaShhKTsKdmFyIGY9YS5KLGc9ZltfLkhdfDA7aWYoZT09bnVsbCl7dmFyIGg9SGwoZik7aWYoSWwoaCxmLGcsZCk9PT1iKWguc2V0KGQsMCk7ZWxzZSBicmVhayBhfWVsc2V7aD1IbChmKTt2YXIgaz1JbChoLGYsZyxkKTtrIT09YiYmKGsmJihnPV8udGkoZixnLGspKSxoLnNldChkLGIpKX1fLnRpKGYsZyxiLGUpfWMmJiFfLldnKGMpJiZfLnNpKGEuSik7cmV0dXJuIGF9LExtPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihMbSxfLkopO0xtLnByb3RvdHlwZS5nZXRTZWNvbmRzPWZ1bmN0aW9uKCl7cmV0dXJuIF8uaGsodGhpcywxKX07TG0ucHJvdG90eXBlLnNldFNlY29uZHM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uR2kodGhpcywxLGE9PW51bGw/YTpfLkpqKGEpLCIwIil9O3ZhciBNbT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoTW0sXy5KKTtNbS5wcm90b3R5cGUuZ2V0U2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiBfLmhrKHRoaXMsMSl9OwpNbS5wcm90b3R5cGUuc2V0U2Vjb25kcz1mdW5jdGlvbihhKXtyZXR1cm4gXy5HaSh0aGlzLDEsYT09bnVsbD9hOl8uSmooYSksIjAiKX07dmFyIE5uPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBfLktrO3JldHVybiBfLmlrKGIsMTEsYSl9LHptPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IF8uaGwoMTg3MSwiMCIpO2EuQT0iaHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlYXBpcy5jb20vZWxlbWVudC9sb2c/Zm9ybWF0PWpzb24maGFzZmFzdD10cnVlIjtyZXR1cm4gYX0seW09ZnVuY3Rpb24oYSl7YS5oPU9uO3JldHVybiBhfSxJbT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoSW0sXy5KKTt2YXIgUG49ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKFBuLF8uSik7dmFyIEZtPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihGbSxfLkopO3ZhciBRbj1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoUW4sXy5KKTt2YXIgUm49ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Cl8uQihSbixfLkopO3ZhciBTbj1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoU24sXy5KKTt2YXIgVG49ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKFRuLF8uSik7CnZhciBVbj1mdW5jdGlvbihhKXtfLnJpKGEpO2E9YS5KO3ZhciBiPWFbXy5IXXwwLGM9Xy51aShhLDExMiksZD12b2lkIDA9PT1fLlhoLGU9Xy5oaChjLFRuLCFkLGIpOyFkfHxlPyhlPV8ua2goZSksYyE9PWUmJihiPV8udGkoYSxiLDExMixlKSxfLnNpKGEsYikpLGE9ZSk6YT12b2lkIDA7cmV0dXJuIGF9LFZuPWZ1bmN0aW9uKGEsYil7YS5VIT09dm9pZCAwP2EuVS5wdXNoKGIpOmEuY29udGVudCs9YjtyZXR1cm4gYX0sV249ZnVuY3Rpb24oYSxiKXthLlUhPT12b2lkIDA/YS5VLnB1c2goYik6YiBpbnN0YW5jZW9mIF8ueGw/Yi5jb250ZW50IT09dm9pZCAwP2EuY29udGVudCs9Yi5tYSgpOihhLlU9W2EuY29udGVudCxiXSxhLmNvbnRlbnQ9dm9pZCAwKTphLmNvbnRlbnQrPWI7cmV0dXJuIGF9LFhuPWZ1bmN0aW9uKGEpe3ZhciBiO2E9Xy5DKChiPWEuVSkhPW51bGw/YjpbXSk7Zm9yKGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWlmKGI9Yi52YWx1ZSxiIGluc3RhbmNlb2YKXy54bCYmWG4oYikpcmV0dXJuITA7cmV0dXJuITF9LFpuPWZ1bmN0aW9uKGEsYil7Yj1ZbihifHx7fSxhLmg/YS5oLmdldERhdGEoKTp7fSk7YS5nKG51bGwsYi5aYik7cmV0dXJuIGIuaigpfSwkbj17fSxhbz1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgemwoYS54LWIueCxhLnktYi55KX0sYm89LyYvZyxjbz0vPC9nLGVvPS8+L2csZm89LyIvZyxnbz0vJy9nLGhvPS9ceDAwL2csaW89L1tceDAwJjw+IiddLyxqbz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9ceGEwfFsgXHRdKy9nLCIgIil9LGtvPWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1tcc1x4YTBdKyQvLCIiKX0sbG89ZnVuY3Rpb24oYSl7aW8udGVzdChhKSYmKGEuaW5kZXhPZigiJiIpIT0tMSYmKGE9YS5yZXBsYWNlKGJvLCImYW1wOyIpKSxhLmluZGV4T2YoIjwiKSE9LTEmJihhPWEucmVwbGFjZShjbywiJmx0OyIpKSxhLmluZGV4T2YoIj4iKSE9LTEmJihhPWEucmVwbGFjZShlbywiJmd0OyIpKSxhLmluZGV4T2YoJyInKSE9Ci0xJiYoYT1hLnJlcGxhY2UoZm8sIiZxdW90OyIpKSxhLmluZGV4T2YoIiciKSE9LTEmJihhPWEucmVwbGFjZShnbywiJiMzOTsiKSksYS5pbmRleE9mKCJceDAwIikhPS0xJiYoYT1hLnJlcGxhY2UoaG8sIiYjMDsiKSkpO3JldHVybiBhfSxtbz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC8mKFteO10rKTsvZyxmdW5jdGlvbihiLGMpe3N3aXRjaChjKXtjYXNlICJhbXAiOnJldHVybiImIjtjYXNlICJsdCI6cmV0dXJuIjwiO2Nhc2UgImd0IjpyZXR1cm4iPiI7Y2FzZSAicXVvdCI6cmV0dXJuJyInO2RlZmF1bHQ6cmV0dXJuIGMuY2hhckF0KDApIT0iIyJ8fChjPU51bWJlcigiMCIrYy5zbGljZSgxKSksaXNOYU4oYykpP2I6U3RyaW5nLmZyb21DaGFyQ29kZShjKX19KX0sbm89LyYoW147XHM8Jl0rKTs/L2csb289ZnVuY3Rpb24oYSl7dmFyIGI9eyImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJnF1b3Q7IjonIid9O3ZhciBjPV8udi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKcmV0dXJuIGEucmVwbGFjZShubyxmdW5jdGlvbihkLGUpe3ZhciBmPWJbZF07aWYoZilyZXR1cm4gZjtlLmNoYXJBdCgwKT09IiMiJiYoZT1OdW1iZXIoIjAiK2Uuc2xpY2UoMSkpLGlzTmFOKGUpfHwoZj1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSk7Znx8KGY9Xy5tbChkKyIgIiksYy5ub2RlVHlwZT09PTEmJk1sKGMpLGMuaW5uZXJIVE1MPV8ua2ooZiksZj1jLmZpcnN0Q2hpbGQubm9kZVZhbHVlLnNsaWNlKDAsLTEpKTtyZXR1cm4gYltkXT1mfSl9LHBvPWZ1bmN0aW9uKGEpe3JldHVybiBhLmluZGV4T2YoIiYiKSE9LTE/ImRvY3VtZW50ImluIF8udj9vbyhhKTptbyhhKTphfSxybz1mdW5jdGlvbihhKXt2YXIgYj1xbztyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIjcuMCIpP2JbIjcuMCJdOmJbIjcuMCJdPWEoIjcuMCIpfSxxbz17fSxzbz1mdW5jdGlvbigpe3JldHVybiBybyhmdW5jdGlvbigpe3JldHVybiBMbChfLmpkLCI3LjAiKT49MH0pfSwKVGw9L15bYS16XVthLXpcZC1dKiQvaSxXbD0iQVBQTEVUIEJBU0UgRU1CRUQgSUZSQU1FIExJTksgTUFUSCBNRVRBIE9CSkVDVCBTQ1JJUFQgU1RZTEUgU1ZHIFRFTVBMQVRFIi5zcGxpdCgiICIpLFhsPSJBUkVBIEJSIENPTCBDT01NQU5EIEhSIElNRyBJTlBVVCBLRVlHRU4gUEFSQU0gU09VUkNFIFRSQUNLIFdCUiIuc3BsaXQoIiAiKSxVbD1bImFjdGlvbiIsImZvcm1hY3Rpb24iLCJocmVmIl0sdG89ZnVuY3Rpb24oKXt0aGlzLmc9bmV3IE1hcH07CnRvLnByb3RvdHlwZS5mb3JtYXQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPVBsKCJfc2FmZXZhbHVlc19mb3JtYXRfbWFya2VyXzoiKS50b1N0cmluZygpO2E9UGwoYSkudG9TdHJpbmcoKS5yZXBsYWNlKG5ldyBSZWdFeHAoIlxceyIrYysiW1xcdyYjO10rXFx9IiwiZyIpLGZ1bmN0aW9uKGQpe3ZhciBlO2lmKGU9Yi5nLmdldChkKSl7ZD0iIjtzd2l0Y2goZS50eXBlKXtjYXNlICJodG1sIjpkPWUueGY7YnJlYWs7Y2FzZSAic3RhcnRUYWciOmQ9IjwiK2UudGFnTmFtZStlLmF0dHJpYnV0ZXMrIj4iO2JyZWFrO2Nhc2UgImVuZFRhZyI6ZD0iPC8iK2UudGFnTmFtZSsiPiJ9ZT1kfWVsc2UgZT1kO3JldHVybiBlfSk7cmV0dXJuIF8ubWwoYSl9O3RvLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKGEpe3JldHVybiB1byh0aGlzLHt0eXBlOiJodG1sIix4ZjpQbChhKS50b1N0cmluZygpfSl9Owp2YXIgdW89ZnVuY3Rpb24oYSxiKXt2YXIgYz0ie19zYWZldmFsdWVzX2Zvcm1hdF9tYXJrZXJfOiIrYS5nLnNpemUrIl8iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpKyJ9IjthLmcuc2V0KFBsKGMpLnRvU3RyaW5nKCksYik7cmV0dXJuIGN9LGduPWZ1bmN0aW9uKGEpe3JldHVybiBfLnRkKGRvY3VtZW50LGEpfSx2bz1mdW5jdGlvbihhKXt2YXIgYj1hfHxkb2N1bWVudDtiLmdldEVsZW1lbnRzQnlDbGFzc05hbWU/YT1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TIilbMF06KGI9ZG9jdW1lbnQsYT0oYXx8YikucXVlcnlTZWxlY3RvcigiLlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TIikpO3JldHVybiBhfHxudWxsfSx3bz1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8ueWQoZG9jdW1lbnQsYXJndW1lbnRzKX0seG89ZnVuY3Rpb24oYSxiKXtiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSwKYi5uZXh0U2libGluZyl9LHlvPWZ1bmN0aW9uKGEpe3JldHVybiBfLnlhKGEpJiZhLm5vZGVUeXBlPT0xfSx6bz1mdW5jdGlvbihhKXtyZXR1cm4gYS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudH0sQW89ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBhLmNvbnRlbnRXaW5kb3d8fChhLmNvbnRlbnREb2N1bWVudD9fLm1iKGEuY29udGVudERvY3VtZW50KTpudWxsKX1jYXRjaChiKXt9cmV0dXJuIG51bGx9LEJvPXtTQ1JJUFQ6MSxTVFlMRToxLEhFQUQ6MSxJRlJBTUU6MSxPQkpFQ1Q6MX0sQ289e0lNRzoiICIsQlI6IlxuIn0sRG89ZnVuY3Rpb24oYSxiLGMpe2lmKCEoYS5ub2RlTmFtZSBpbiBCbykpaWYoYS5ub2RlVHlwZT09MyljP2IucHVzaChTdHJpbmcoYS5ub2RlVmFsdWUpLnJlcGxhY2UoLyhcclxufFxyfFxuKS9nLCIiKSk6Yi5wdXNoKGEubm9kZVZhbHVlKTtlbHNlIGlmKGEubm9kZU5hbWUgaW4gQ28pYi5wdXNoKENvW2Eubm9kZU5hbWVdKTtlbHNlIGZvcihhPQphLmZpcnN0Q2hpbGQ7YTspRG8oYSxiLGMpLGE9YS5uZXh0U2libGluZ30sRW89ZnVuY3Rpb24oYSl7dmFyIGI9W107RG8oYSxiLCEwKTthPWIuam9pbigiIik7YT1hLnJlcGxhY2UoLyBceEFEIC9nLCIgIikucmVwbGFjZSgvXHhBRC9nLCIiKTthPWEucmVwbGFjZSgvXHUyMDBCL2csIiIpO2E9YS5yZXBsYWNlKC8gKy9nLCIgIik7YSE9IiAiJiYoYT1hLnJlcGxhY2UoL15ccyovLCIiKSk7cmV0dXJuIGF9LEZvPWZ1bmN0aW9uKGEsYixjKXt0aGlzLnByb21pc2U9YTt0aGlzLnJlc29sdmU9Yjt0aGlzLnJlamVjdD1jfSxHbz1mdW5jdGlvbigpe3ZhciBhLGIsYz1uZXcgXy5vZShmdW5jdGlvbihkLGUpe2E9ZDtiPWV9KTtyZXR1cm4gbmV3IEZvKGMsYSxiKX0sSG89ZnVuY3Rpb24oYSl7aWYoYS5pYiYmdHlwZW9mIGEuaWI9PSJmdW5jdGlvbiIpcmV0dXJuIGEuaWIoKTtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXB8fHR5cGVvZiBTZXQhPT0idW5kZWZpbmVkIiYmCmEgaW5zdGFuY2VvZiBTZXQpcmV0dXJuIEFycmF5LmZyb20oYS52YWx1ZXMoKSk7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gYS5zcGxpdCgiIik7aWYoXy5xYShhKSl7Zm9yKHZhciBiPVtdLGM9YS5sZW5ndGgsZD0wO2Q8YztkKyspYi5wdXNoKGFbZF0pO3JldHVybiBifWI9W107Yz0wO2ZvcihkIGluIGEpYltjKytdPWFbZF07cmV0dXJuIGJ9LElvPWZ1bmN0aW9uKGEpe2lmKGEuT2MmJnR5cGVvZiBhLk9jPT0iZnVuY3Rpb24iKXJldHVybiBhLk9jKCk7aWYoIWEuaWJ8fHR5cGVvZiBhLmliIT0iZnVuY3Rpb24iKXtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXApcmV0dXJuIEFycmF5LmZyb20oYS5rZXlzKCkpO2lmKCEodHlwZW9mIFNldCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgU2V0KSl7aWYoXy5xYShhKXx8dHlwZW9mIGE9PT0ic3RyaW5nIil7dmFyIGI9W107YT1hLmxlbmd0aDtmb3IodmFyIGM9MDtjPGE7YysrKWIucHVzaChjKTsKcmV0dXJuIGJ9Yj1bXTtjPTA7Zm9yKHZhciBkIGluIGEpYltjKytdPWQ7cmV0dXJuIGJ9fX0sSm89ZnVuY3Rpb24oYSxiLGMpe2lmKGEuZm9yRWFjaCYmdHlwZW9mIGEuZm9yRWFjaD09ImZ1bmN0aW9uIilhLmZvckVhY2goYixjKTtlbHNlIGlmKF8ucWEoYSl8fHR5cGVvZiBhPT09InN0cmluZyIpQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGIsYyk7ZWxzZSBmb3IodmFyIGQ9SW8oYSksZT1IbyhhKSxmPWUubGVuZ3RoLGc9MDtnPGY7ZysrKWIuY2FsbChjLGVbZ10sZCYmZFtnXSxhKX0sZ209ZnVuY3Rpb24oYSxiKXt0aGlzLmg9dGhpcy5nPW51bGw7dGhpcy5qPWF8fG51bGw7dGhpcy5sPSEhYn0sS289ZnVuY3Rpb24oYSl7YS5nfHwoYS5nPW5ldyBNYXAsYS5oPTAsYS5qJiZfLkViKGEuaixmdW5jdGlvbihiLGMpe2EuYWRkKF8uRGIoYiksYyl9KSl9OwpnbS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7S28odGhpcyk7dGhpcy5qPW51bGw7YT1Mbyh0aGlzLGEpO3ZhciBjPXRoaXMuZy5nZXQoYSk7Y3x8dGhpcy5nLnNldChhLGM9W10pO2MucHVzaChiKTt0aGlzLmgrPTE7cmV0dXJuIHRoaXN9O2dtLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSl7S28odGhpcyk7YT1Mbyh0aGlzLGEpO3JldHVybiB0aGlzLmcuaGFzKGEpPyh0aGlzLmo9bnVsbCx0aGlzLmgtPXRoaXMuZy5nZXQoYSkubGVuZ3RoLHRoaXMuZy5kZWxldGUoYSkpOiExfTtnbS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmc9dGhpcy5qPW51bGw7dGhpcy5oPTB9O3ZhciBNbz1mdW5jdGlvbihhLGIpe0tvKGEpO2I9TG8oYSxiKTtyZXR1cm4gYS5nLmhhcyhiKX07Xy5tPWdtLnByb3RvdHlwZTsKXy5tLmZvckVhY2g9ZnVuY3Rpb24oYSxiKXtLbyh0aGlzKTt0aGlzLmcuZm9yRWFjaChmdW5jdGlvbihjLGQpe2MuZm9yRWFjaChmdW5jdGlvbihlKXthLmNhbGwoYixlLGQsdGhpcyl9LHRoaXMpfSx0aGlzKX07Xy5tLk9jPWZ1bmN0aW9uKCl7S28odGhpcyk7Zm9yKHZhciBhPUFycmF5LmZyb20odGhpcy5nLnZhbHVlcygpKSxiPUFycmF5LmZyb20odGhpcy5nLmtleXMoKSksYz1bXSxkPTA7ZDxiLmxlbmd0aDtkKyspZm9yKHZhciBlPWFbZF0sZj0wO2Y8ZS5sZW5ndGg7ZisrKWMucHVzaChiW2RdKTtyZXR1cm4gY307Xy5tLmliPWZ1bmN0aW9uKGEpe0tvKHRoaXMpO3ZhciBiPVtdO2lmKHR5cGVvZiBhPT09InN0cmluZyIpTW8odGhpcyxhKSYmKGI9Yi5jb25jYXQodGhpcy5nLmdldChMbyh0aGlzLGEpKSkpO2Vsc2V7YT1BcnJheS5mcm9tKHRoaXMuZy52YWx1ZXMoKSk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYj1iLmNvbmNhdChhW2NdKX1yZXR1cm4gYn07Cl8ubS5zZXQ9ZnVuY3Rpb24oYSxiKXtLbyh0aGlzKTt0aGlzLmo9bnVsbDthPUxvKHRoaXMsYSk7TW8odGhpcyxhKSYmKHRoaXMuaC09dGhpcy5nLmdldChhKS5sZW5ndGgpO3RoaXMuZy5zZXQoYSxbYl0pO3RoaXMuaCs9MTtyZXR1cm4gdGhpc307Xy5tLmdldD1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiBiO2E9dGhpcy5pYihhKTtyZXR1cm4gYS5sZW5ndGg+MD9TdHJpbmcoYVswXSk6Yn07dmFyIE5vPWZ1bmN0aW9uKGEsYixjKXthLnJlbW92ZShiKTtjLmxlbmd0aD4wJiYoYS5qPW51bGwsYS5nLnNldChMbyhhLGIpLF8ud2EoYykpLGEuaCs9Yy5sZW5ndGgpfTsKZ20ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5qKXJldHVybiB0aGlzLmo7aWYoIXRoaXMuZylyZXR1cm4iIjtmb3IodmFyIGE9W10sYj1BcnJheS5mcm9tKHRoaXMuZy5rZXlzKCkpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPV8uR2IoZCk7ZD10aGlzLmliKGQpO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKXt2YXIgZz1lO2RbZl0hPT0iIiYmKGcrPSI9IitfLkdiKGRbZl0pKTthLnB1c2goZyl9fXJldHVybiB0aGlzLmo9YS5qb2luKCImIil9Owp2YXIgZW09ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGdtO2Iuaj1hLmo7YS5nJiYoYi5nPW5ldyBNYXAoYS5nKSxiLmg9YS5oKTtyZXR1cm4gYn0sTG89ZnVuY3Rpb24oYSxiKXtiPVN0cmluZyhiKTthLmwmJihiPWIudG9Mb3dlckNhc2UoKSk7cmV0dXJuIGJ9LE9vPWZ1bmN0aW9uKGEsYil7YiYmIWEubCYmKEtvKGEpLGEuaj1udWxsLGEuZy5mb3JFYWNoKGZ1bmN0aW9uKGMsZCl7dmFyIGU9ZC50b0xvd2VyQ2FzZSgpO2QhPWUmJih0aGlzLnJlbW92ZShkKSxObyh0aGlzLGUsYykpfSxhKSk7YS5sPWJ9O2dtLnByb3RvdHlwZS5leHRlbmQ9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylKbyhhcmd1bWVudHNbYl0sZnVuY3Rpb24oYyxkKXt0aGlzLmFkZChkLGMpfSx0aGlzKX07CnZhciBQbz0vWyNcL1w/QF0vZyxRbz0vWyNcP10vZyxSbz0vWyNcPzpdL2csU289LyMvZyxmbT1mdW5jdGlvbihhLGIpe3JldHVybiBhP2I/ZGVjb2RlVVJJKGEucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudChhKToiIn0sVG89L1sjXD9AXS9nLFVvPWZ1bmN0aW9uKGEpe2E9YS5jaGFyQ29kZUF0KDApO3JldHVybiIlIisoYT4+NCYxNSkudG9TdHJpbmcoMTYpKyhhJjE1KS50b1N0cmluZygxNil9LFZvPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj8oYT1lbmNvZGVVUkkoYSkucmVwbGFjZShiLFVvKSxjJiYoYT1hLnJlcGxhY2UoLyUyNShbMC05YS1mQS1GXXsyfSkvZywiJSQxIikpLGEpOm51bGx9OwpabC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMubDtiJiZhLnB1c2goVm8oYixQbywhMCksIjoiKTt2YXIgYz10aGlzLmg7aWYoY3x8Yj09ImZpbGUiKWEucHVzaCgiLy8iKSwoYj10aGlzLkIpJiZhLnB1c2goVm8oYixQbywhMCksIkAiKSxhLnB1c2goXy5HYihjKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxjPXRoaXMuQyxjIT1udWxsJiZhLnB1c2goIjoiLFN0cmluZyhjKSk7aWYoYz10aGlzLmopdGhpcy5oJiZjLmNoYXJBdCgwKSE9Ii8iJiZhLnB1c2goIi8iKSxhLnB1c2goVm8oYyxjLmNoYXJBdCgwKT09Ii8iP1FvOlJvLCEwKSk7KGM9dGhpcy5nLnRvU3RyaW5nKCkpJiZhLnB1c2goIj8iLGMpOyhjPXRoaXMuQSkmJmEucHVzaCgiIyIsVm8oYyxTbykpO3JldHVybiBhLmpvaW4oIiIpfTsKWmwucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFpsKHRoaXMpLGM9ISFhLmw7Yz8kbChiLGEubCk6Yz0hIWEuQjtjP2IuQj1hLkI6Yz0hIWEuaDtjP2FtKGIsYS5oKTpjPWEuQyE9bnVsbDt2YXIgZD1hLmo7aWYoYylibShiLGEuQyk7ZWxzZSBpZihjPSEhYS5qKXtpZihkLmNoYXJBdCgwKSE9Ii8iKWlmKHRoaXMuaCYmIXRoaXMuailkPSIvIitkO2Vsc2V7dmFyIGU9Yi5qLmxhc3RJbmRleE9mKCIvIik7ZSE9LTEmJihkPWIuai5zbGljZSgwLGUrMSkrZCl9ZT1kO2lmKGU9PSIuLiJ8fGU9PSIuIilkPSIiO2Vsc2UgaWYoZS5pbmRleE9mKCIuLyIpIT0tMXx8ZS5pbmRleE9mKCIvLiIpIT0tMSl7ZD1lLmxhc3RJbmRleE9mKCIvIiwwKT09MDtlPWUuc3BsaXQoIi8iKTtmb3IodmFyIGY9W10sZz0wO2c8ZS5sZW5ndGg7KXt2YXIgaD1lW2crK107aD09Ii4iP2QmJmc9PWUubGVuZ3RoJiZmLnB1c2goIiIpOmg9PSIuLiI/KChmLmxlbmd0aD4xfHxmLmxlbmd0aD09CjEmJmZbMF0hPSIiKSYmZi5wb3AoKSxkJiZnPT1lLmxlbmd0aCYmZi5wdXNoKCIiKSk6KGYucHVzaChoKSxkPSEwKX1kPWYuam9pbigiLyIpfWVsc2UgZD1lfWM/Y20oYixkKTpjPWEuZy50b1N0cmluZygpIT09IiI7Yz9kbShiLGVtKGEuZykpOmM9ISFhLkE7YyYmKGIuQT1hLkEpO3JldHVybiBifTsKdmFyICRsPWZ1bmN0aW9uKGEsYixjKXthLmw9Yz9mbShiLCEwKTpiO2EubCYmKGEubD1hLmwucmVwbGFjZSgvOiQvLCIiKSk7cmV0dXJuIGF9LGFtPWZ1bmN0aW9uKGEsYixjKXthLmg9Yz9mbShiLCEwKTpiO3JldHVybiBhfSxibT1mdW5jdGlvbihhLGIpe2lmKGIpe2I9TnVtYmVyKGIpO2lmKGlzTmFOKGIpfHxiPDApdGhyb3cgRXJyb3IoIkhgIitiKTthLkM9Yn1lbHNlIGEuQz1udWxsfSxjbT1mdW5jdGlvbihhLGIsYyl7YS5qPWM/Zm0oYiwhMCk6YjtyZXR1cm4gYX0sZG09ZnVuY3Rpb24oYSxiLGMpe2IgaW5zdGFuY2VvZiBnbT8oYS5nPWIsT28oYS5nLGEubykpOihjfHwoYj1WbyhiLFRvKSksYS5nPW5ldyBnbShiLGEubykpfSxXbz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIFpsP25ldyBabChhKTpuZXcgWmwoYSl9LFhvPWZ1bmN0aW9uKGEpe3ZhciBiPUlvKGEpO2lmKHR5cGVvZiBiPT0idW5kZWZpbmVkIil0aHJvdyBFcnJvcigiSiIpO3ZhciBjPW5ldyBnbShudWxsKTsKYT1IbyhhKTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSxmPWFbZF07QXJyYXkuaXNBcnJheShmKT9ObyhjLGUsZik6Yy5hZGQoZSxmKX1yZXR1cm4gY30sWW89e30sWm89e30sJG89e30sYXA9e30sam09e30scW09e30scG0sVW09e30sYnA9ZnVuY3Rpb24oYSxiLGMpe2E9YS5KO3JldHVybiBfLkhpKGEsYVtfLkhdfDAsYixjKXx8YltfLmZoXXx8KGJbXy5maF09Xy5naChiKSl9LHNuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5HaShhLGIsXy5MaihjKSwiIil9O18ubT12bS5wcm90b3R5cGU7Xy5tLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzJiZhP2EgaW5zdGFuY2VvZiB2bT9hLmxlZnQ+PXRoaXMubGVmdCYmYS5yaWdodDw9dGhpcy5yaWdodCYmYS50b3A+PXRoaXMudG9wJiZhLmJvdHRvbTw9dGhpcy5ib3R0b206YS54Pj10aGlzLmxlZnQmJmEueDw9dGhpcy5yaWdodCYmYS55Pj10aGlzLnRvcCYmYS55PD10aGlzLmJvdHRvbTohMX07Cl8ubS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy50b3A9TWF0aC5jZWlsKHRoaXMudG9wKTt0aGlzLnJpZ2h0PU1hdGguY2VpbCh0aGlzLnJpZ2h0KTt0aGlzLmJvdHRvbT1NYXRoLmNlaWwodGhpcy5ib3R0b20pO3RoaXMubGVmdD1NYXRoLmNlaWwodGhpcy5sZWZ0KTtyZXR1cm4gdGhpc307Xy5tLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy50b3A9TWF0aC5mbG9vcih0aGlzLnRvcCk7dGhpcy5yaWdodD1NYXRoLmZsb29yKHRoaXMucmlnaHQpO3RoaXMuYm90dG9tPU1hdGguZmxvb3IodGhpcy5ib3R0b20pO3RoaXMubGVmdD1NYXRoLmZsb29yKHRoaXMubGVmdCk7cmV0dXJuIHRoaXN9O18ubS5yb3VuZD1mdW5jdGlvbigpe3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMucmlnaHQ9TWF0aC5yb3VuZCh0aGlzLnJpZ2h0KTt0aGlzLmJvdHRvbT1NYXRoLnJvdW5kKHRoaXMuYm90dG9tKTt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3JldHVybiB0aGlzfTsKXy5tLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiB6bD8odGhpcy5sZWZ0Kz1hLngsdGhpcy5yaWdodCs9YS54LHRoaXMudG9wKz1hLnksdGhpcy5ib3R0b20rPWEueSk6KHRoaXMubGVmdCs9YSx0aGlzLnJpZ2h0Kz1hLHR5cGVvZiBiPT09Im51bWJlciImJih0aGlzLnRvcCs9Yix0aGlzLmJvdHRvbSs9YikpO3JldHVybiB0aGlzfTtfLm09d20ucHJvdG90eXBlO18ubS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIHpsP2EueD49dGhpcy5sZWZ0JiZhLng8PXRoaXMubGVmdCt0aGlzLndpZHRoJiZhLnk+PXRoaXMudG9wJiZhLnk8PXRoaXMudG9wK3RoaXMuaGVpZ2h0OnRoaXMubGVmdDw9YS5sZWZ0JiZ0aGlzLmxlZnQrdGhpcy53aWR0aD49YS5sZWZ0K2Eud2lkdGgmJnRoaXMudG9wPD1hLnRvcCYmdGhpcy50b3ArdGhpcy5oZWlnaHQ+PWEudG9wK2EuaGVpZ2h0fTsKXy5tLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5jZWlsKHRoaXMubGVmdCk7dGhpcy50b3A9TWF0aC5jZWlsKHRoaXMudG9wKTt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLm0uZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5mbG9vcih0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGguZmxvb3IodGhpcy50b3ApO3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5tLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0PU1hdGgucm91bmQodGhpcy5sZWZ0KTt0aGlzLnRvcD1NYXRoLnJvdW5kKHRoaXMudG9wKTt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9OwpfLm0udHJhbnNsYXRlPWZ1bmN0aW9uKGEsYil7YSBpbnN0YW5jZW9mIHpsPyh0aGlzLmxlZnQrPWEueCx0aGlzLnRvcCs9YS55KToodGhpcy5sZWZ0Kz1hLHR5cGVvZiBiPT09Im51bWJlciImJih0aGlzLnRvcCs9YikpO3JldHVybiB0aGlzfTsKdmFyIGNwPWZ1bmN0aW9uKGEsYil7YTp7dmFyIGM9Xy5zZChhKTtpZihjLmRlZmF1bHRWaWV3JiZjLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJihjPWMuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpKSl7Yz1jW2JdfHxjLmdldFByb3BlcnR5VmFsdWUoYil8fCIiO2JyZWFrIGF9Yz0iIn1yZXR1cm4gY3x8KGEuY3VycmVudFN0eWxlP2EuY3VycmVudFN0eWxlW2JdOm51bGwpfHxhLnN0eWxlJiZhLnN0eWxlW2JdfSxkcD1mdW5jdGlvbihhKXt0eXBlb2YgYT09Im51bWJlciImJihhKz0icHgiKTtyZXR1cm4gYX0sZXA9ZnVuY3Rpb24oYSxiKXtpZihiIGluc3RhbmNlb2Ygemwpe3ZhciBjPWIueDtiPWIueX1lbHNlIGM9YixiPXZvaWQgMDthLnN0eWxlLmxlZnQ9ZHAoYyk7YS5zdHlsZS50b3A9ZHAoYil9LGZwPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jYXRjaChiKXtyZXR1cm57bGVmdDowLHRvcDowLHJpZ2h0OjAsCmJvdHRvbTowfX19LGdwPWZ1bmN0aW9uKGEpe3ZhciBiPV8uc2QoYSksYz1jcChhLCJwb3NpdGlvbiIpLGQ9Yz09ImZpeGVkInx8Yz09ImFic29sdXRlIjtmb3IoYT1hLnBhcmVudE5vZGU7YSYmYSE9YjthPWEucGFyZW50Tm9kZSlpZihhLm5vZGVUeXBlPT0xMSYmYS5ob3N0JiYoYT1hLmhvc3QpLGM9Y3AoYSwicG9zaXRpb24iKSxkPWQmJmM9PSJzdGF0aWMiJiZhIT1iLmRvY3VtZW50RWxlbWVudCYmYSE9Yi5ib2R5LCFkJiYoYS5zY3JvbGxXaWR0aD5hLmNsaWVudFdpZHRofHxhLnNjcm9sbEhlaWdodD5hLmNsaWVudEhlaWdodHx8Yz09ImZpeGVkInx8Yz09ImFic29sdXRlInx8Yz09InJlbGF0aXZlIikpcmV0dXJuIGE7cmV0dXJuIG51bGx9LGhwPWZ1bmN0aW9uKGEpe3ZhciBiPV8uc2QoYSksYz1uZXcgemwoMCwwKTtpZihhPT0oYj9fLnNkKGIpOmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQpcmV0dXJuIGM7YT1mcChhKTtiPV8ubGIoYik7Yj1LbihiLmcpO2MueD1hLmxlZnQrYi54OwpjLnk9YS50b3ArYi55O3JldHVybiBjfSxpcD1mdW5jdGlvbihhKXtmb3IodmFyIGI9bmV3IHZtKDAsSW5maW5pdHksSW5maW5pdHksMCksYz1fLmxiKGEpLGQ9Yy5nLmJvZHksZT1jLmcuZG9jdW1lbnRFbGVtZW50LGY9Sm4oYy5nKTthPWdwKGEpOylpZigoIV8uVmN8fGEuY2xpZW50SGVpZ2h0IT0wfHxhIT1kKSYmYSE9ZCYmYSE9ZSYmY3AoYSwib3ZlcmZsb3ciKSE9InZpc2libGUiKXt2YXIgZz1ocChhKSxoPW5ldyB6bChhLmNsaWVudExlZnQsYS5jbGllbnRUb3ApO2cueCs9aC54O2cueSs9aC55O2IudG9wPU1hdGgubWF4KGIudG9wLGcueSk7Yi5yaWdodD1NYXRoLm1pbihiLnJpZ2h0LGcueCthLmNsaWVudFdpZHRoKTtiLmJvdHRvbT1NYXRoLm1pbihiLmJvdHRvbSxnLnkrYS5jbGllbnRIZWlnaHQpO2IubGVmdD1NYXRoLm1heChiLmxlZnQsZy54KX1kPWYuc2Nyb2xsTGVmdDtmPWYuc2Nyb2xsVG9wO2IubGVmdD1NYXRoLm1heChiLmxlZnQsZCk7Yi50b3A9TWF0aC5tYXgoYi50b3AsCmYpO2M9Xy5pYihjLmcuZGVmYXVsdFZpZXd8fHdpbmRvdyk7Yi5yaWdodD1NYXRoLm1pbihiLnJpZ2h0LGQrYy53aWR0aCk7Yi5ib3R0b209TWF0aC5taW4oYi5ib3R0b20sZitjLmhlaWdodCk7cmV0dXJuIGIudG9wPj0wJiZiLmxlZnQ+PTAmJmIuYm90dG9tPmIudG9wJiZiLnJpZ2h0PmIubGVmdD9iOm51bGx9LGpwPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IHpsKDAsMCksZD1fLm1iKF8uc2QoYSkpO2E6e3RyeXtfLlFjKGQucGFyZW50KTt2YXIgZT0hMDticmVhayBhfWNhdGNoKGYpe31lPSExfWlmKCFlKXJldHVybiBjO2RvIGQ9PWI/ZT1ocChhKTooZT1mcChhKSxlPW5ldyB6bChlLmxlZnQsZS50b3ApKSxjLngrPWUueCxjLnkrPWUueTt3aGlsZShkJiZkIT1iJiZkIT1kLnBhcmVudCYmKGE9ZC5mcmFtZUVsZW1lbnQpJiYoZD1kLnBhcmVudCkpO3JldHVybiBjfSxscD1mdW5jdGlvbihhKXt2YXIgYj1rcDtpZihjcChhLCJkaXNwbGF5IikhPSJub25lIilyZXR1cm4gYihhKTt2YXIgYz0KYS5zdHlsZSxkPWMuZGlzcGxheSxlPWMudmlzaWJpbGl0eSxmPWMucG9zaXRpb247Yy52aXNpYmlsaXR5PSJoaWRkZW4iO2MucG9zaXRpb249ImFic29sdXRlIjtjLmRpc3BsYXk9ImlubGluZSI7YT1iKGEpO2MuZGlzcGxheT1kO2MucG9zaXRpb249ZjtjLnZpc2liaWxpdHk9ZTtyZXR1cm4gYX0sa3A9ZnVuY3Rpb24oYSl7dmFyIGI9YS5vZmZzZXRXaWR0aCxjPWEub2Zmc2V0SGVpZ2h0LGQ9Xy5WYyYmIWImJiFjO3JldHVybihiPT09dm9pZCAwfHxkKSYmYS5nZXRCb3VuZGluZ0NsaWVudFJlY3Q/KGE9ZnAoYSksbmV3IF8uQ2EoYS5yaWdodC1hLmxlZnQsYS5ib3R0b20tYS50b3ApKTpuZXcgXy5DYShiLGMpfSxtcD1mdW5jdGlvbihhLGIpe2Euc3R5bGUuZGlzcGxheT1iPyIiOiJub25lIn0sbnA9ZnVuY3Rpb24oYSxiKXtiPV8ubGIoYik7dmFyIGM9SW4oYi5nLCJIRUFEIilbMF07aWYoIWMpe3ZhciBkPUluKGIuZywiQk9EWSIpWzBdO2M9Yi5TKCJIRUFEIik7ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLApkKX1kPWIuUygiU1RZTEUiKTt2YXIgZT1fLk9hKCJzdHlsZSIsZG9jdW1lbnQpO2UmJmQuc2V0QXR0cmlidXRlKCJub25jZSIsZSk7YT1ObChhKTtfLnYudHJ1c3RlZFR5cGVzP18uQ2QoZCxhKTpkLmlubmVySFRNTD1hO2IuYXBwZW5kQ2hpbGQoYyxkKX0sb3A9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLkNhKGEub2Zmc2V0V2lkdGgsYS5vZmZzZXRIZWlnaHQpfSxwcD1mdW5jdGlvbihhLGIsYyl7YT1hLnN0eWxlO18uVWM/YS5Nb3pCb3hTaXppbmc9YzpfLlZjP2EuV2Via2l0Qm94U2l6aW5nPWM6YS5ib3hTaXppbmc9YzthLndpZHRoPU1hdGgubWF4KGIud2lkdGgsMCkrInB4IjthLmhlaWdodD1NYXRoLm1heChiLmhlaWdodCwwKSsicHgifSxxcD1mdW5jdGlvbihhLGIpe3BwKGEsYiwiY29udGVudC1ib3giKX0scnA9ZnVuY3Rpb24oYSl7aWYoYSE9bnVsbClzd2l0Y2goYS5KZCl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgLTE6cmV0dXJuLTE7Y2FzZSAwOnJldHVybiAwfXJldHVybiBudWxsfSwKc3A9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLnhsP1huKGEpPyEwOiEhYS5tYSgpOmEgaW5zdGFuY2VvZiBfLnpmPyEhYS5tYSgpOiEhYX0sdHA9LzwvZyx1cD1mdW5jdGlvbihhLGIpe2E9YS5yZXBsYWNlKC88XC8vZywiPFxcLyIpLnJlcGxhY2UoL1xdXF0+L2csIl1dXFw+Iik7cmV0dXJuIGI/YS5yZXBsYWNlKC97L2csIiBcXHsiKS5yZXBsYWNlKC99L2csIiBcXH0iKS5yZXBsYWNlKC9cL1wqL2csIi8gKiIpLnJlcGxhY2UoL1xcJC8sIlxcICIpOmF9LHZwPWZ1bmN0aW9uKGEpe2E9U3RyaW5nKGEpO2Zvcih2YXIgYj1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPU1hdGgubWluKGUubGVuZ3RoLWYsZC5sZW5ndGgpLGg9MDtoPGc7aCsrKXt2YXIgaz1lW2YraF07aWYoZFtoXSE9PSgiQSI8PWsmJms8PSJaIj9rLnRvTG93ZXJDYXNlKCk6aykpcmV0dXJuITF9cmV0dXJuITB9LGM9MDsoYz1hLmluZGV4T2YoIjwiLGMpKSE9LTE7KXtpZihiKCJceDNjL3NjcmlwdCIsCmEsYyl8fGIoIlx4M2MhLS0iLGEsYykpcmV0dXJuInpTb3l6IjtjKz0xfXJldHVybiBhfSx3cD1mdW5jdGlvbihhLGIpe3JldHVybiBhIT1udWxsJiZhLlpiPT09Yn0seHA9ZnVuY3Rpb24oYSl7cmV0dXJuIHdwKGEsJG8pP2EubWEoKTphIGluc3RhbmNlb2YgXy5MYT9fLk5hKGEpLnRvU3RyaW5nKCk6ImFib3V0OmludmFsaWQjelNveXoifSx6cD1mdW5jdGlvbigpe3ZhciBhO3dwKCIiLGFwKT9hPSIiLm1hKCk6YT15cC50ZXN0KCIiKT8iIjoielNveXoiO3dwKGEsYXApJiYoYT1hLm1hKCkpO3JldHVybihhJiYhYS5zdGFydHNXaXRoKCIgIik/IiAiOiIiKSthfSxBcD1mdW5jdGlvbihhKXtyZXR1cm4gd3AoYSxfLm9sKT91cChhLm1hKCksITEpOmE9PW51bGw/IiI6YSBpbnN0YW5jZW9mIF8ucGw/dXAoTmwoYSksITEpOnVwKFN0cmluZyhhKSwhMCl9LEJwPXsiXHgwMCI6IiYjMDsiLCJcdCI6IiYjOTsiLCJcbiI6IiYjMTA7IiwiXHYiOiImIzExOyIsIlxmIjoiJiMxMjsiLCJcciI6IiYjMTM7IiwKIiAiOiImIzMyOyIsJyInOiImcXVvdDsiLCImIjoiJmFtcDsiLCInIjoiJiMzOTsiLCItIjoiJiM0NTsiLCIvIjoiJiM0NzsiLCI8IjoiJmx0OyIsIj0iOiImIzYxOyIsIj4iOiImZ3Q7IiwiYCI6IiYjOTY7IiwiXHUwMDg1IjoiJiMxMzM7IiwiXHUwMGEwIjoiJiMxNjA7IiwiXHUyMDI4IjoiJiM4MjMyOyIsIlx1MjAyOSI6IiYjODIzMzsifSxDcD1mdW5jdGlvbihhKXtyZXR1cm4gQnBbYV19LERwPXsiXHgwMCI6IlxceDAwIiwiXGIiOiJcXHgwOCIsIlx0IjoiXFx0IiwiXG4iOiJcXG4iLCJcdiI6IlxceDBiIiwiXGYiOiJcXGYiLCJcciI6IlxcciIsJyInOiJcXHgyMiIsJDoiXFx4MjQiLCImIjoiXFx4MjYiLCInIjoiXFx4MjciLCIoIjoiXFx4MjgiLCIpIjoiXFx4MjkiLCIqIjoiXFx4MmEiLCIrIjoiXFx4MmIiLCIsIjoiXFx4MmMiLCItIjoiXFx4MmQiLCIuIjoiXFx4MmUiLCIvIjoiXFwvIiwiOiI6IlxceDNhIiwiPCI6IlxceDNjIiwiPSI6IlxceDNkIiwiPiI6IlxceDNlIiwiPyI6IlxceDNmIiwKIlsiOiJcXHg1YiIsIlxcIjoiXFxcXCIsIl0iOiJcXHg1ZCIsIl4iOiJcXHg1ZSIsInsiOiJcXHg3YiIsInwiOiJcXHg3YyIsIn0iOiJcXHg3ZCIsIlx1MDA4NSI6IlxceDg1IiwiXHUyMDI4IjoiXFx1MjAyOCIsIlx1MjAyOSI6IlxcdTIwMjkifSxFcD1mdW5jdGlvbihhKXtyZXR1cm4gRHBbYV19LEZwPXsiXHgwMCI6IlxcMCAiLCJcYiI6IlxcOCAiLCJcdCI6IlxcOSAiLCJcbiI6IlxcYSAiLCJcdiI6IlxcYiAiLCJcZiI6IlxcYyAiLCJcciI6IlxcZCAiLCciJzoiXFwyMiAiLCImIjoiXFwyNiAiLCInIjoiXFwyNyAiLCIoIjoiXFwyOCAiLCIpIjoiXFwyOSAiLCIqIjoiXFwyYSAiLCIvIjoiXFwyZiAiLCI6IjoiXFwzYSAiLCI7IjoiXFwzYiAiLCI8IjoiXFwzYyAiLCI9IjoiXFwzZCAiLCI+IjoiXFwzZSAiLCJAIjoiXFw0MCAiLCJcXCI6IlxcNWMgIiwieyI6IlxcN2IgIiwifSI6IlxcN2QgIiwiXHUwMDg1IjoiXFw4NSAiLCJcdTAwYTAiOiJcXGEwICIsIlx1MjAyOCI6IlxcMjAyOCAiLAoiXHUyMDI5IjoiXFwyMDI5ICJ9LEdwPWZ1bmN0aW9uKGEpe3JldHVybiBGcFthXX0sSHA9eyJceDAwIjoiJTAwIiwiXHUwMDAxIjoiJTAxIiwiXHUwMDAyIjoiJTAyIiwiXHUwMDAzIjoiJTAzIiwiXHUwMDA0IjoiJTA0IiwiXHUwMDA1IjoiJTA1IiwiXHUwMDA2IjoiJTA2IiwiXHUwMDA3IjoiJTA3IiwiXGIiOiIlMDgiLCJcdCI6IiUwOSIsIlxuIjoiJTBBIiwiXHYiOiIlMEIiLCJcZiI6IiUwQyIsIlxyIjoiJTBEIiwiXHUwMDBlIjoiJTBFIiwiXHUwMDBmIjoiJTBGIiwiXHUwMDEwIjoiJTEwIiwiXHUwMDExIjoiJTExIiwiXHUwMDEyIjoiJTEyIiwiXHUwMDEzIjoiJTEzIiwiXHUwMDE0IjoiJTE0IiwiXHUwMDE1IjoiJTE1IiwiXHUwMDE2IjoiJTE2IiwiXHUwMDE3IjoiJTE3IiwiXHUwMDE4IjoiJTE4IiwiXHUwMDE5IjoiJTE5IiwiXHUwMDFhIjoiJTFBIiwiXHUwMDFiIjoiJTFCIiwiXHUwMDFjIjoiJTFDIiwiXHUwMDFkIjoiJTFEIiwiXHUwMDFlIjoiJTFFIiwiXHUwMDFmIjoiJTFGIiwKIiAiOiIlMjAiLCciJzoiJTIyIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwiPCI6IiUzQyIsIj4iOiIlM0UiLCJcXCI6IiU1QyIsInsiOiIlN0IiLCJ9IjoiJTdEIiwiXHUwMDdmIjoiJTdGIiwiXHUwMDg1IjoiJUMyJTg1IiwiXHUwMGEwIjoiJUMyJUEwIiwiXHUyMDI4IjoiJUUyJTgwJUE4IiwiXHUyMDI5IjoiJUUyJTgwJUE5IiwiXHVmZjAxIjoiJUVGJUJDJTgxIiwiXHVmZjAzIjoiJUVGJUJDJTgzIiwiXHVmZjA0IjoiJUVGJUJDJTg0IiwiXHVmZjA2IjoiJUVGJUJDJTg2IiwiXHVmZjA3IjoiJUVGJUJDJTg3IiwiXHVmZjA4IjoiJUVGJUJDJTg4IiwiXHVmZjA5IjoiJUVGJUJDJTg5IiwiXHVmZjBhIjoiJUVGJUJDJThBIiwiXHVmZjBiIjoiJUVGJUJDJThCIiwiXHVmZjBjIjoiJUVGJUJDJThDIiwiXHVmZjBmIjoiJUVGJUJDJThGIiwiXHVmZjFhIjoiJUVGJUJDJTlBIiwiXHVmZjFiIjoiJUVGJUJDJTlCIiwiXHVmZjFkIjoiJUVGJUJDJTlEIiwiXHVmZjFmIjoiJUVGJUJDJTlGIiwKIlx1ZmYyMCI6IiVFRiVCQyVBMCIsIlx1ZmYzYiI6IiVFRiVCQyVCQiIsIlx1ZmYzZCI6IiVFRiVCQyVCRCJ9LElwPWZ1bmN0aW9uKGEpe3JldHVybiBIcFthXX0sSnA9L1tceDAwXHgyMlx4MjZceDI3XHgzY1x4M2VdL2csS3A9ZnVuY3Rpb24oYSl7cmV0dXJuIHdwKGEsXy5xbCk/YTphIGluc3RhbmNlb2YgXy5EYz8oMCxfLnRsKShfLmtqKGEpLnRvU3RyaW5nKCkpOigwLF8udGwpKFN0cmluZyhTdHJpbmcoYSkpLnJlcGxhY2UoSnAsQ3ApLHJwKGEpKX0sTHA9L1tceDAwXHgyMlx4MjdceDNjXHgzZV0vZyxNcD1mdW5jdGlvbihhKXtyZXR1cm4geG0oU3RyaW5nKGEpLGZ1bmN0aW9uKCl7cmV0dXJuIiJ9KS5yZXBsYWNlKHRwLCImbHQ7Iil9LFA9ZnVuY3Rpb24oYSl7d3AoYSxfLnFsKT8oYT1NcChhLm1hKCkpLGE9U3RyaW5nKGEpLnJlcGxhY2UoTHAsQ3ApKTphPVN0cmluZyhhKS5yZXBsYWNlKEpwLENwKTtyZXR1cm4gYX0sTnA9L1tceDAwXHgwOS1ceDBkIFx4MjJceDI2XHgyN1x4MmRcL1x4M2MtXHgzZWBceDg1XHhhMFx1MjAyOFx1MjAyOV0vZywKT3A9L1tceDAwXHgwOS1ceDBkIFx4MjJceDI3XHgyZFwvXHgzYy1ceDNlYFx4ODVceGEwXHUyMDI4XHUyMDI5XS9nLFBwPS9bXHgwMFx4MDgtXHgwZFx4MjJceDI2XHgyN1wvXHgzYy1ceDNlXHg1Yi1ceDVkXHg3Ylx4N2RceDg1XHUyMDI4XHUyMDI5XS9nLFFwPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIiBudWxsICI7aWYod3AoYSxZbykpcmV0dXJuIGEubWEoKTtpZihhIGluc3RhbmNlb2YgXy5QYSlyZXR1cm4gXy5SYShhKS50b1N0cmluZygpO3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpyZXR1cm4iICIrYSsiICI7ZGVmYXVsdDpyZXR1cm4iJyIrU3RyaW5nKFN0cmluZyhhKSkucmVwbGFjZShQcCxFcCkrIicifX0sUnA9L1tceDAwXHgwOC1ceDBkXHgyMlx4MjYtXHgyYVwvXHgzYS1ceDNlQFxcXHg3Ylx4N2RceDg1XHhhMFx1MjAyOFx1MjAyOV0vZyxTcD0vW1x4MDAtIFx4MjJceDI3LVx4MjlceDNjXHgzZVxcXHg3Ylx4N2RceDdmXHg4NVx4YTBcdTIwMjhcdTIwMjlcdWZmMDFcdWZmMDNcdWZmMDRcdWZmMDYtXHVmZjBjXHVmZjBmXHVmZjFhXHVmZjFiXHVmZjFkXHVmZjFmXHVmZjIwXHVmZjNiXHVmZjNkXS9nLApUcD0vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOlwvPyNdKig/OltcLz8jXXwkKSkvaSxVcD1mdW5jdGlvbihhKXt3cChhLFpvKXx8d3AoYSwkbyk/YT1TdHJpbmcoYSkucmVwbGFjZShTcCxJcCk6YSBpbnN0YW5jZW9mIF8uTGE/KGE9Xy5OYShhKS50b1N0cmluZygpLGE9U3RyaW5nKGEpLnJlcGxhY2UoU3AsSXApKTooYT1TdHJpbmcoYSksYT1UcC50ZXN0KGEpP2EucmVwbGFjZShTcCxJcCk6ImFib3V0OmludmFsaWQjelNveXoiKTtyZXR1cm4gYX0sVnA9L15bXiY6XC8/I10qKD86W1wvPyNdfCQpfF5odHRwcz86fF5maWxlc3lzdGVtOmh0dHBzPzp8XmZ0cDp8XmRhdGE6aW1hZ2VcL1thLXowLTkrLV0rO2Jhc2U2NCxbYS16MC05K1wvXSs9KiR8XmJsb2I6L2ksV3A9ZnVuY3Rpb24oYSl7d3AoYSxabyl8fHdwKGEsJG8pP2E9U3RyaW5nKGEpLnJlcGxhY2UoU3AsSXApOmEgaW5zdGFuY2VvZiBfLkxhPyhhPV8uTmEoYSkudG9TdHJpbmcoKSxhPVN0cmluZyhhKS5yZXBsYWNlKFNwLApJcCkpOihhPVN0cmluZyhhKSxhPVZwLnRlc3QoYSk/YS5yZXBsYWNlKFNwLElwKToiYWJvdXQ6aW52YWxpZCN6U295eiIpO3JldHVybiBhfSx5cD0vXig/IW9ufHNyY3woPzphY3Rpb258YXJjaGl2ZXxiYWNrZ3JvdW5kfGNpdGV8Y2xhc3NpZHxjb2RlYmFzZXxjb250ZW50fGRhdGF8ZHN5bmN8aHJlZnxodHRwLWVxdWl2fGxvbmdkZXNjfHN0eWxlfHVzZW1hcClccyokKSg/OlthLXowLTlfJDotXSopJC9pLFhwPS9eW2EtekEtWjAtOStcL18tXSs9ezAsMn0kLyxZcD1mdW5jdGlvbihhKXthPVN0cmluZyhhKTtyZXR1cm4gWHAudGVzdChhKT9hOiJ6U295eiJ9LFpwPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihacCxfLkopO3ZhciBDbT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgWnA7cmV0dXJuIEdsKGIsMyxhLF8uQmopfTt2YXIgJHA9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKCRwLF8uSik7JHAucHJvdG90eXBlLkphPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDIpfTskcC5wcm90b3R5cGUuTmE9ZnVuY3Rpb24oYSl7cmV0dXJuIHNuKHRoaXMsMixhKX07JHAucHJvdG90eXBlLm9hPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDMpfTskcC5wcm90b3R5cGUubmE9ZnVuY3Rpb24oYSl7cmV0dXJuIHNuKHRoaXMsMyxhKX07dmFyIGFxPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihhcSxfLkopO3ZhciBicT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoYnEsXy5KKTt2YXIgY3E9Xy5NaihicSk7dmFyIGRxPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhfX0sZXE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoLTI7Yys9Myl7dmFyIGQ9Yi5jaGFyQXQoYysyKTtkPWQ+PSJhIj9kLmNoYXJDb2RlQXQoMCktODc6TnVtYmVyKGQpO2Q9Yi5jaGFyQXQoYysxKT09IisiP2E+Pj5kOmE8PGQ7YT1iLmNoYXJBdChjKT09IisiP2ErZCY0Mjk0OTY3Mjk1OmFeZH1yZXR1cm4gYX0sZ3E9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWZxLnNwbGl0KCIuIiksYz1OdW1iZXIoYlswXSl8fDAsZD1bXSxlPTAsZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgZz1hLmNoYXJDb2RlQXQoZik7ZzwxMjg/ZFtlKytdPWc6KGc8MjA0OD9kW2UrK109Zz4+NnwxOTI6KChnJjY0NTEyKT09NTUyOTYmJmYrMTxhLmxlbmd0aCYmKGEuY2hhckNvZGVBdChmKzEpJjY0NTEyKT09NTYzMjA/KGc9NjU1MzYrKChnJjEwMjMpPDwxMCkrKGEuY2hhckNvZGVBdCgrK2YpJjEwMjMpLGRbZSsrXT0KZz4+MTh8MjQwLGRbZSsrXT1nPj4xMiY2M3wxMjgpOmRbZSsrXT1nPj4xMnwyMjQsZFtlKytdPWc+PjYmNjN8MTI4KSxkW2UrK109ZyY2M3wxMjgpfWE9Yztmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKWErPWRbZV0sYT1lcShhLCIrLWFeKzYiKTthPWVxKGEsIistM14rYistZiIpO2FePU51bWJlcihiWzFdKXx8MDthPDAmJihhPShhJjIxNDc0ODM2NDcpKzIxNDc0ODM2NDgpO2I9YSUxRTY7cmV0dXJuIGIudG9TdHJpbmcoKSsiLiIrKGJeYyl9LGhxPWZ1bmN0aW9uKCl7dmFyIGE9ZHEoU3RyaW5nLmZyb21DaGFyQ29kZSgxMTYpKSxiPWRxKFN0cmluZy5mcm9tQ2hhckNvZGUoMTA3KSk7YT1bYSgpLGEoKV07YVsxXT1iKCk7cmV0dXJuIGEuam9pbigiIil9O3ZhciBpcT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoaXEsXy5KKTt2YXIganE9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKGpxLF8uSik7dmFyIGtxPV8uTWooanEpO3ZhciBscT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIobHEsXy5KKTt2YXIgT249IiIsbXE9InByb2QiLG5xPSIiLG9xPSJlbiIsQW49IiIscHE9bmV3IGpxLHFxPSExLHJxPW5ldyBEYXRlLHNxPXt9LEJuPTAsdHE9InRlIixmcT0iIix1cT0iIix2cT0iaHR0cHM6Ly8iLHdxPSIiLHhxPSIiLHlxPSIiLHpxPSIiLEFxPSIiLEJxPSIiLENxPSJodHRwczovL3d3dy5nb29nbGUuY29tL2ltYWdlcy9jbGVhcmRvdC5naWYiLERxPSJodHRwczovL3d3dy5nc3RhdGljLmNvbS9pbWFnZXMvYnJhbmRpbmcvZ29vZ2xlbG9nby8xeC9nb29nbGVsb2dvX2NvbG9yXzY4eDI4ZHAucG5nIixFcT0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL3Byb2R1Y3QvMXgvdHJhbnNsYXRlXzI0ZHAucG5nIixGcT0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMXgvZ29vZ2xlbG9nb19jb2xvcl80MngxNmRwLnBuZyIsR3E9Imh0dHBzOi8vdHJhbnNsYXRlLmdvb2dsZS5jb20iLEhxPSIiLElxPSIiLEpxPSIiLEtxPQpmdW5jdGlvbigpe0hxPSIvLyIrQnErIi90cmFuc2xhdGVfc3VnZ2VzdGlvbj9jbGllbnQ9Iit0cTtJcT0iLy8iK3VxKyIvdHJhbnNsYXRlX3ZvdGluZz9jbGllbnQ9Iit0cTtKcT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zdXBwb3J0L3RyYW5zbGF0ZSIrKG9xPT0iZW4iPyIiOiIjZ29vZ3RyYW5zL2VuLyIrb3EpfSxMcT1mdW5jdGlvbihhKXtPbj13aW5kb3cuZ29vZ2xlJiZ3aW5kb3cuZ29vZ2xlLnRyYW5zbGF0ZSYmd2luZG93Lmdvb2dsZS50cmFuc2xhdGUudnx8IiI7bXE9YS5fY2Vudnx8InByb2QiO25xPWEuVWd8fCIiO29xPWEuX2NsfHwiZW4iO0FuPWEuX2N1YztwcT1hLl9jZWY/a3EoYS5fY2VmKTpuZXcganE7cXE9YS5fY25hZDtycT1hLl9jZXN0fHxuZXcgRGF0ZTtzcT1hLl9jbmFsfHx7fTtCbj1hLl9jYW09PSJsaWIiPzE6MDt0cT0oYS5fY2FjfHwidGUiKSsoQm49PTE/Il9saWIiOiIiKTtmcT1mdW5jdGlvbigpe2Z1bmN0aW9uIGIoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fQp2YXIgYz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEwNyksZD1iKFN0cmluZy5mcm9tQ2hhckNvZGUoMTE2KSk7Yz1iKGMpO2Q9W2QoKSxkKCldO2RbMV09YygpO3JldHVybiBhWyJfYyIrZC5qb2luKGMoKSldfHwiIn0oKTt1cT1hLl9wYWh8fCIiO3ZxPWEuX3Bhc3x8Imh0dHBzOi8vIjt3cT1hLl9wYml8fCIiO3hxPWEuX3BjaXx8IiI7eXE9YS5fcGxsYXx8IiI7enE9YS5fcGxpfHwiIjtBcT1hLl9wc3x8IiI7QnE9YS5fcHVofHwiIjtDcT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvY2xlYXJkb3QuZ2lmIjtEcT0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMXgvZ29vZ2xlbG9nb19jb2xvcl82OHgyOGRwLnBuZyI7RXE9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9wcm9kdWN0LzF4L3RyYW5zbGF0ZV8yNGRwLnBuZyI7RnE9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzF4L2dvb2dsZWxvZ29fY29sb3JfNDJ4MTZkcC5wbmciOwpHcT0iaHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlLmNvbSI7S3EoKX07d2luZG93Lmdvb2dsZSYmd2luZG93Lmdvb2dsZS50cmFuc2xhdGUmJndpbmRvdy5nb29nbGUudHJhbnNsYXRlLl9jb25zdD9McSh3aW5kb3cuZ29vZ2xlLnRyYW5zbGF0ZS5fY29uc3QpOkxxKHtfY2FjOiIiLF9jYW06IiIsX2NlZjoiIixfY2VzdDpuZXcgRGF0ZSxfY2VudjoiIixVZzoiIixfY2dhazoiIixfY2psYzoiIixfY2w6IiIsX2NsbDoiIixfY3VjOiIiLF9jbmFkOiExLF9jbmFsOnt9LENrOiIiLF9wYWg6IiIsX3BhczoiIixfcGJpOiIiLF9wY2k6IiIsX3BoZjoiIixfcGxpOiIiLF9wbGxhOiIiLF9wbWk6IiIsX3BzOiIiLF9wdGE6IiIsX3B1aDoiIn0pO3ZhciBNcT1mdW5jdGlvbihhLGIpe3RoaXMuZz1hO3RoaXMubz1ifSxCbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgVHlwZUVycm9yKCJxYWAiK2IrImAiK2EuZysiYCIrYS5vKyJgIit0eXBlb2YgYS5vKX07TXEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vO2lmKGE9PW51bGwpYT1udWxsO2Vsc2UgaWYodHlwZW9mIGEhPT0ic3RyaW5nIil0aHJvdyBCbSh0aGlzLCJzdHJpbmciKTtpZihhPT09bnVsbCl0aHJvdyBFcnJvcigicGFgIit0aGlzLmcpO3JldHVybiBhfTsKdmFyIEFtPWZ1bmN0aW9uKCl7dmFyIGE9YT09PXZvaWQgMD93aW5kb3c6YTthPWE9PT12b2lkIDA/d2luZG93OmE7YT1hPT09dm9pZCAwP3dpbmRvdzphO2E9YS5XSVpfZ2xvYmFsX2RhdGE7YT1uZXcgTXEoInhXdXVHYyIsYSYmInhXdXVHYyJpbiBhP2EueFd1dUdjOm51bGwpO3ZhciBiPVtdLGM9TnEoYSk7cmV0dXJuIGM9PT1udWxsP09xKGEsYik6Y30sTnE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5vO2lmKGI9PW51bGwpcmV0dXJuIG51bGw7QXJyYXkuaXNBcnJheShiKXx8KHR5cGVvZiBiIT09InN0cmluZyI/Yj1bYl06KGI9Yi50cmltKCksYj1iPT0iIj9bXTpiLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLnRyaW0oKX0pKSk7cmV0dXJuIE9xKGEsYil9LE9xPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5nKyJbIjtyZXR1cm4gQXJyYXkuZnJvbShiLGZ1bmN0aW9uKGQsZSl7cmV0dXJuIG5ldyBNcShjK2UrIl0iLGQpfSl9OwpNcS5wcm90b3R5cGUub2JqZWN0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubztpZihiPT1udWxsKXtpZihhPT09dm9pZCAwKXRocm93IEVycm9yKCJwYWAiK3RoaXMuZyk7cmV0dXJuIGF9aWYodHlwZW9mIGI9PT0ib2JqZWN0IiYmYi5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7YT17fTt2YXIgYz10aGlzLmcrIi4iLGQ7Zm9yKGQgaW4gYilhW2RdPW5ldyBNcShjK2QsYltkXSk7cmV0dXJuIGF9dGhyb3cgQm0odGhpcywib2JqZWN0Iik7fTt2YXIgUHE9ZnVuY3Rpb24oKXt2YXIgYTt0aGlzLmc9YT1hPT09dm9pZCAwP0RtKCk6YX07UHEucHJvdG90eXBlLmxvZz1mdW5jdGlvbihhKXtfLmFsKHRoaXMuZyxhKX07dmFyIFFxPW5ldyBQcTt2YXIgUnE9RW0oImluaXRpYWxpemVkIiksU3E9RW0oImluaXRpYXRlZCIpLFRxPUVtKCJyZXN0b3JlZCIpLFVxPUVtKCJwYWdlX2xvYWRfdG9faW5pdGlhbGl6ZWQiKSxWcT1FbSgiaW5pdGlhbGl6YXRpb25fdG9fdHJhbnNsYXRpb25fdHJpZ2dlcmVkIik7dmFyIFdxPWZ1bmN0aW9uKGEpe3ZhciBiPSJ4YiI7aWYoYS54YiYmYS5oYXNPd25Qcm9wZXJ0eShiKSlyZXR1cm4gYS54YjtiPW5ldyBhO3JldHVybiBhLnhiPWJ9Oy8qCgpNYXRoLnV1aWQuanMgKHYxLjQpCmh0dHA6Ly93d3cuYnJvb2ZhLmNvbQptYWlsdG86cm9iZXJ0QGJyb29mYS5jb20KQ29weXJpZ2h0IChjKSAyMDEwIFJvYmVydCBLaWVmZmVyCkR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgoqLwp2YXIgWHE9IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ii5zcGxpdCgiIik7Zm9yKHZhciBZcSxacT1BcnJheSgzNiksJHE9MCxhcixicj0wO2JyPDM2O2JyKyspYnI9PTh8fGJyPT0xM3x8YnI9PTE4fHxicj09MjM/WnFbYnJdPSItIjpicj09MTQ/WnFbYnJdPSI0IjooJHE8PTImJigkcT0zMzU1NDQzMitNYXRoLnJhbmRvbSgpKjE2Nzc3MjE2fDApLGFyPSRxJjE1LCRxPj49NCxacVticl09WHFbYnI9PTE5P2FyJjN8ODphcl0pO1lxPVpxLmpvaW4oIiIpOwp2YXIgY3I9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZz1hPWE9PT12b2lkIDA/WXE6YTt0aGlzLkViPWI9PT12b2lkIDA/IiI6Yjt0aGlzLkZiPWM9PT12b2lkIDA/IiI6Y30sZ3I9ZnVuY3Rpb24oYSl7dmFyIGI9ZHIoYSw3KTtlcihhLGIpO2ZyKGIsNyl9LGhyPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5sYj09PXZvaWQgMD8wOmIubGI7dmFyIGQ9Yi5NZj09PXZvaWQgMD8wOmIuTWY7dmFyIGU9Yi5nZz09PXZvaWQgMD8wOmIuZ2c7dmFyIGY9Yi5MZj09PXZvaWQgMD8wOmIuTGY7Yj1kcihhLDgpO2VyKGEsYik7YT1uZXcgUm47Yz1fLmlrKGEsMSxjKTtkPV8uaWsoYywzLGQpO2U9Xy5payhkLDIsZSk7ZT1fLmlrKGUsNCxmKTtmPVVuKGIpO18uTChmLDYsZSk7TWF0aC5yYW5kb20oKT49LjAwNXx8KGI9Xy5MayhObig4KSxfLldqKGIpKSxRcS5sb2coYikpfSxkcj1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBfLmxsO2M9Xy5UaihjLDUwLG9xKTt2YXIgZD1uZXcgVG47Yj1fLmtrKGQsMSxiKTsKYj1fLlRqKGIsMix0cSk7YT1fLlRqKGIsMyxhLmcpO3JldHVybiBfLkwoYywxMTIsYSl9LGZyPWZ1bmN0aW9uKGEsYil7YT1fLkxrKE5uKGIpLF8uV2ooYSkpO1FxLmxvZyhhKX0sZXI9ZnVuY3Rpb24oYSxiKXtiLk5hKGEuRWIpO2IubmEoYS5GYil9O3ZhciBpcj1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz0wO2M8YS5sZW5ndGg7KytjKWJbYVtjXV09ITA7cmV0dXJuIGJ9LGpyPWZ1bmN0aW9uKGEpe3RoaXMuaD1hP1thXTpbXTt0aGlzLmc9WzBdO3RoaXMuaj0hMX07anIucHJvdG90eXBlLnBhc3NlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmp9O2pyLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhKXtpZih0aGlzLmopcmV0dXJuIGF8fGZ1bmN0aW9uKCl7fTt0aGlzLmcucHVzaCgwKTt2YXIgYj10aGlzLmcubGVuZ3RoLTE7cmV0dXJuKDAsXy55KShmdW5jdGlvbigpe3RoaXMuZ1tiXSsrO2EmJmEuYXBwbHkobnVsbCxhcmd1bWVudHMpO2tyKHRoaXMpfSx0aGlzKX07CmpyLnByb3RvdHlwZS5kZWxheT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5qP2E6KDAsXy55KShmdW5jdGlvbigpe2lmKHRoaXMuailhLmFwcGx5KG51bGwsYXJndW1lbnRzKTtlbHNle3ZhciBiPWFyZ3VtZW50czt0aGlzLmgucHVzaChmdW5jdGlvbigpe2EuYXBwbHkobnVsbCxiKX0pfX0sdGhpcyl9O2pyLnByb3RvdHlwZS5maW5pc2g9ZnVuY3Rpb24oKXt0aGlzLmdbMF09MTtrcih0aGlzKX07CnZhciBrcj1mdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPGEuZy5sZW5ndGg7KytiKWlmKGEuZ1tiXT09MClyZXR1cm47YS5qPSEwO2ZvcihiPTA7YjxhLmgubGVuZ3RoOysrYil7dmFyIGM9YS5oW2JdO2EuaFtiXT1udWxsO2MuY2FsbCgpfWEuaD1bXTthLmc9W119LGxyPWZ1bmN0aW9uKGEpe3RoaXMuaj1hO3RoaXMuaD10aGlzLmc9ITF9LG1yPWZ1bmN0aW9uKGEsYil7cmV0dXJuKDAsXy55KShmdW5jdGlvbigpe2ImJmIuYXBwbHkobnVsbCxhcmd1bWVudHMpO3RoaXMuaD90aGlzLmd8fCh0aGlzLmouY2FsbCgpLHRoaXMuZz0hMCk6dGhpcy5nPSEwfSxhKX07bHIucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbigpe3RoaXMuaHx8KHRoaXMuaD0hMCx0aGlzLmcmJnRoaXMuai5jYWxsKCkpfTt2YXIgbnI9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZz1iO3RoaXMuQj1hO3RoaXMuQT1jfHwwO3RoaXMuaj10aGlzLmg9ITF9LG9yPWZ1bmN0aW9uKGEpe2EuaHx8YS5vKCl9Owpuci5wcm90b3R5cGUubz1mdW5jdGlvbigpeyh0aGlzLmg9KHRoaXMuaj0hIXRoaXMuQi5jYWxsKCkpfHwtLXRoaXMuQTw9MCk/KHRoaXMuZy5jYWxsKG51bGwsdGhpcy5qKSx0aGlzLmw9MCk6dGhpcy5sPXdpbmRvdy5zZXRUaW1lb3V0KCgwLF8ueSkodGhpcy5vLHRoaXMpLDMwKX07bnIucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbigpe3RoaXMubCYmd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmwpO3RoaXMuaD0hMDt0aGlzLmcuY2FsbChudWxsLHRoaXMuail9Owp2YXIgcHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXthLmRpc3BhdGNoRXZlbnQoYil9fSxxcj1mdW5jdGlvbihhKXthPV8uQWMoYSkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCJfIiwiLSIpO2lmKGE9PSJ6aC1jbiIpcmV0dXJuInpoLUNOIjtpZihhPT0iemgtdHciKXJldHVybiJ6aC1UVyI7dmFyIGI9YS5pbmRleE9mKCItIik7YT1iPj0wP2Euc3Vic3RyaW5nKDAsYik6YTtyZXR1cm4gYT09InpoIj8iemgtQ04iOmF9LHJyPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gYSlpZihhW2NdIT09T2JqZWN0LnByb3RvdHlwZVtjXSl7dmFyIGQ9Xy5HYihjKTtpZihfLm9jKGFbY10pPT0iYXJyYXkiKWZvcih2YXIgZT0wO2U8YVtjXS5sZW5ndGg7KytlKWIucHVzaChkKyI9IitfLkdiKGFbY11bZV0pKTtlbHNlIGIucHVzaChkKyI9IitfLkdiKGFbY10pKX1yZXR1cm4gYi5qb2luKCImIil9LFFtPWZ1bmN0aW9uKGEsYil7Yj1ifHx7fTtiLm5jYT1hO2IuY2xpZW50PXRxOwpPbiYmKGIubG9nbGQ9InYiK09uKTt2YXIgYz1uZXcgSW1hZ2U7Yy5zcmM9Ii8vIitCcSsiL2dlbjIwND8iK3JyKGIpO2Mub25sb2FkPWZ1bmN0aW9uKCl7Yy5vbmxvYWQ9bnVsbH19LHRyPWZ1bmN0aW9uKGEsYil7aWYoKF8uU2N8fF8uUmMpJiZ3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUhPWRvY3VtZW50LmRvbWFpbil7c3I9c3I/c3IrMToxO3ZhciBjPSJmIitzcisiXyIrRGF0ZS5ub3coKS50b1N0cmluZygzNik7d2luZG93W2NdPWZ1bmN0aW9uKCl7d2luZG93W2NdPXZvaWQgMDthLnNyYz0iIyI7YiYmd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiKCl9LDApfTthLnNyYz0iamF2YXNjcmlwdDp2b2lkKGRvY3VtZW50LndyaXRlKFwiPHNjcmlwdD5kb2N1bWVudC5kb21haW49JyIrZG9jdW1lbnQuZG9tYWluKyInO3BhcmVudFsnIitjKyInXSgpO1x4M2Mvc2NyaXB0PlwiKSkifWVsc2UgYiYmYigpfSxzcix1cj1mdW5jdGlvbigpe3ZhciBhPXt9O3RyeXtmb3IodmFyIGIgaW4gT2JqZWN0LnByb3RvdHlwZSl7dmFyIGM9Ck9iamVjdC5wcm90b3R5cGVbYl07ZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbYl07YVtiXT1jfX1jYXRjaChkKXtyZXR1cm57fX1yZXR1cm4gYX0sdnI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpT2JqZWN0LnByb3RvdHlwZVtiXT1hW2JdfSx3cj1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSlpZihhW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXSlyZXR1cm4hMTtyZXR1cm4hMH0seHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSE9ImF1dG8iJiZhIT0iemgtQ04iJiZhPT1ifSx5cj1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5oYXNoLm1hdGNoKC9nb29nbGVcLnRyYW5zbGF0ZVwuZWxlbWVudFwuc3A9KFteJl0rKS8pO3JldHVybiBhJiZhWzFdP2FbMV06bnVsbH07dmFyIFBtPW51bGwsenI9bnVsbCxBcj1mdW5jdGlvbigpe307QXIucHJvdG90eXBlLmF0dGFjaD1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkIGluIGMpY1tkXSE9PU9iamVjdC5wcm90b3R5cGVbZF0mJihiW2RdPXR5cGVvZiBjW2RdPT09ImZ1bmN0aW9uIj9jW2RdOl8uWmooUm0sYSxOdW1iZXIoY1tkXSkpKX07dmFyIENyPWZ1bmN0aW9uKCl7UG0mJkJyKCk7UG09W107enI9Xy54KHdpbmRvdywicGFnZWhpZGUiLGZ1bmN0aW9uKCl7QnIoKX0pfSxCcj1mdW5jdGlvbigpe3pyJiYoXy5WZCh6ciksenI9bnVsbCk7UG0mJlBtLmxlbmd0aCYmUW0oUG0uam9pbigiIikpO1BtPW51bGx9LERyPW5ldyBBcjt2YXIgRXI9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKEVyLF8uSik7dmFyIFRtPV8uS2koRXIpO3ZhciBTbTt2YXIgRnI9ZnVuY3Rpb24oYSl7dGhpcy51cmw9YTt0aGlzLnRpbWVvdXQ9LTE7dGhpcy5qPXRoaXMuaD0iY2FsbGJhY2siO3RoaXMuZz10aGlzLndiPW51bGx9LEpyPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7YS5nPUdvKCk7dmFyIGM9bmV3IFpsKGEudXJsKSxkPW5ldyBNYXA7YS5qJiZkLnNldChhLmosYS5oKTtjLmcuZXh0ZW5kKFhvKGIpLGQpO0dyKGEpLnRoZW4oZnVuY3Rpb24oKXtIcihhLGMudG9TdHJpbmcoKSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZy5wcm9taXNlfSkudGhlbihmdW5jdGlvbigpe0lyKGEpfSxmdW5jdGlvbigpe0lyKGEpfSk7YS50aW1lb3V0PjAmJihhLmw9c2V0VGltZW91dChmdW5jdGlvbigpe2EuZy5yZWplY3QoRXJyb3IoInJhIikpfSxhLnRpbWVvdXQpKTtyZXR1cm4gYS5nLnByb21pc2V9LEhyPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IE1lc3NhZ2VDaGFubmVsO2Eud2IuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSh7dXJsOmIsCmNhbGxiYWNrTmFtZTphLmh9LCIqIixbYy5wb3J0Ml0pO2MucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKGQpe3ZhciBlPXt9O2EubCE9PXZvaWQgMCYmKGNsZWFyVGltZW91dChhLmwpLGEubD12b2lkIDApO2QuZGF0YT09PXZvaWQgMCYmYS5nLnJlamVjdChFcnJvcigic2EiKSk7dHlwZW9mIGQuZGF0YSE9PSJzdHJpbmciJiZhLmcucmVqZWN0KEVycm9yKCJ0YSIpKTt0cnl7ZT1KU09OLnBhcnNlKGQuZGF0YSl9Y2F0Y2goZil7YS5nLnJlamVjdChFcnJvcigidWFgIitmLm1lc3NhZ2UpKX1hLmcucmVzb2x2ZShlKX19LEdyPWZ1bmN0aW9uKGEpe3ZhciBiPUdvKCksYz1fLndkKGRvY3VtZW50LCJJRlJBTUUiKTtpZighYy5zYW5kYm94KXRocm93IEVycm9yKCJ2YSIpO2Muc2FuZGJveC52YWx1ZT0iYWxsb3ctc2NyaXB0cyI7Yy5zdHlsZS5kaXNwbGF5PSJub25lIjthLndiPWM7YT1WbSgpO2E9U2woW18ubWwoIjwhRE9DVFlQRSBodG1sPiIpLFlsKFFsKGEpKV0pO2Muc3JjZG9jPV8ua2ooYSk7CmE9RmwoImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9VVRGLTg7YmFzZTY0LCIrYnRvYShfLmtqKGEpLnRvU3RyaW5nKCkpKTtjLnNyYz1fLk5hKGEpLnRvU3RyaW5nKCk7Yy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3JldHVybiBiLnJlc29sdmUoYyl9LCExKTtjLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbihkKXtiLnJlamVjdChkIGluc3RhbmNlb2YgRXJyb3I/ZDpFcnJvcihTdHJpbmcoZCkpKX0sITEpO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChjKTtyZXR1cm4gYi5wcm9taXNlfSxJcj1mdW5jdGlvbihhKXthLndiIT09bnVsbCYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChhLndiKSxhLndiPW51bGwpfTt2YXIgS3I9ZnVuY3Rpb24oYSxiKXtfLnUuY2FsbCh0aGlzKTt0aGlzLmc9bmV3IFpsKGEpO2lmKGIpZm9yKHZhciBjIGluIGIpYltjXSE9PU9iamVjdC5wcm90b3R5cGVbY10mJnRoaXMuZy5nLnNldChjLGJbY10pfTtfLkIoS3IsXy51KTtLci5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oKXtyZXR1cm4hMH07S3IucHJvdG90eXBlLlNhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGEoKX07S3IucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gXy5ZaShudWxsKX07S3IucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbigpe307dmFyIExyPWZ1bmN0aW9uKGEsYixjKXtLci5jYWxsKHRoaXMsYSxiKTthPXRoaXMuaD1uZXcgRnIodGhpcy5nKTthLmg9ImNhbGxiYWNrIjthLmo9Yz09PXZvaWQgMD8iY2FsbGJhY2siOmN9O18uQihMcixLcik7THIucHJvdG90eXBlLlRhPWZ1bmN0aW9uKCl7cmV0dXJuITB9OwpMci5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhKXtyZXR1cm4gSnIodGhpcy5oLGEpfTtMci5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe2EuY2FuY2VsKCl9O3ZhciBNcj1mdW5jdGlvbihhLGIpe0tyLmNhbGwodGhpcyxhLGIpO3RoaXMuaD17fTt0aGlzLmo9MH07Xy5CKE1yLEtyKTtNci5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Ck1yLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz11cigpLGQ9Kyt0aGlzLmosZT17fSxmPXt9OyJxImluIGEmJihmLnE9YS5xLGRlbGV0ZSBhLnEpO2UuaGE9bmV3IF8uV2Y7dGhpcy5nLmguZW5kc1dpdGgoIi5jb3JwLmdvb2dsZS5jb20iKSYmKGUuaGEuQz0hMCk7dmFyIGc9bmV3IF8ub2UoZnVuY3Rpb24oaCxrKXtfLngoZS5oYSwiY29tcGxldGUiLGZ1bmN0aW9uKCl7aWYoIWUuUmUpe2lmKF8uZ2coZS5oYSkpe3ZhciBsPV8uaWcoZS5oYSk7TnIoYixkKTtyZXR1cm4gaChsKX1iLnhpKCk7bD1fLmlnKGUuaGEpO05yKGIsZCk7cmV0dXJuIGsobCl9fSk7Xy54KGUuaGEsInRpbWVvdXQiLGZ1bmN0aW9uKCl7aWYoIWUuUmUpcmV0dXJuIGIuemkoKSxOcihiLGQpLGsoKX0pfSk7ZS5oYS5zZW5kKHRoaXMuZy50b1N0cmluZygpKyImIitycihhKSwiUE9TVCIscnIoZikseyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSk7CnRoaXMuaFtkXT1lO3ZyKGMpO3JldHVybiBnfTtNci5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuaFthXTtiJiYoYi5SZT0hMCxOcih0aGlzLGEpKX07dmFyIE5yPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5oW2JdO2MmJihjLmhhJiYoYy5oYS5kaXNwb3NlKCksYy5oYT1udWxsKSxkZWxldGUgYS5oW2JdKX07TXIucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtLci5wcm90b3R5cGUuTS5jYWxsKHRoaXMpO2Zvcih2YXIgYSBpbiB0aGlzLmgpdGhpcy5jYW5jZWwoYSl9O0RyLmF0dGFjaCgxNzE3MCxNci5wcm90b3R5cGUse3ppOjEseGk6Mn0pO3ZhciBPcj1mdW5jdGlvbihhLGIsYyl7S3IuY2FsbCh0aGlzLGEsYyk7dGhpcy5oPWIucHJveHlJc1N1cHBvcnRlZDt0aGlzLmo9ZnVuY3Rpb24oZCxlLGYpe3JldHVybiBfLllpKGIucHJveHlTZW5kKGQsZSxmKSl9O3RoaXMubD1iLnByb3h5Q2FuY2VsfTtfLkIoT3IsS3IpO09yLnByb3RvdHlwZS5UYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmgoKX07Ck9yLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaih0aGlzLmcudG9TdHJpbmcoKSxhLGIpfTtPci5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe3RoaXMubChhKX07dmFyIFByPWZ1bmN0aW9uKGEsYil7Xy51LmNhbGwodGhpcyk7dGhpcy5oPWE7dGhpcy5nPWI/YjpudWxsfTtfLkIoUHIsXy51KTtQci5wcm90b3R5cGUuTT1mdW5jdGlvbigpe18udS5wcm90b3R5cGUuTS5jYWxsKHRoaXMpfTt2YXIgUnI9ZnVuY3Rpb24oYSxiLGMsZCl7Xy51LmNhbGwodGhpcyk7dmFyIGU7Yj9lPXtjbGllbnQ6Yn06ZT17YW5ubzozLGNsaWVudDp0cSxmb3JtYXQ6Imh0bWwiLHY6IjEuMCJ9O2MmJihlLnNwPWMpO2Uua2V5PWE7T24mJihlLmxvZ2xkPSJ2IitPbik7dGhpcy5nPW51bGw7dGhpcy5oPXtIZjozMDB9O2E9dGhpcy5BPW5ldyBQcihlLGQpO2I9dnEreXE7dGhpcy5vPWEuZz9uZXcgT3IoYixhLmcse2NsaWVudDp0cX0pOm5ldyBMcihiLHtjbGllbnQ6dHF9KTthPXRoaXMuQTtpZihhLmcpe2lmKCFhLmcpdGhyb3cgRXJyb3IoIndhIik7YT1be3ZhOm5ldyBPcih2cSt1cSsiL3RyYW5zbGF0ZV9hL3QiLGEuZyxhLmgpLGNlOjE5MDAsSWY6NDI5NDk2NzI5NSxHZjotMSxXZjowLEtkOiExfV19ZWxzZSBhPVt7dmE6bmV3IE1yKHZxK3VxKyIvdHJhbnNsYXRlX2EvdCIsYS5oKSxjZTozMDcyMCxJZjo0Mjk0OTY3Mjk1LEdmOi0xLFdmOjAsS2Q6ITF9XTt0aGlzLkI9bmV3IFFyKGEpO3RoaXMuaj0KITE7Zm9yKGI9MDtiPGEubGVuZ3RoOysrYil0aGlzLmo9dGhpcy5qfHxhW2JdLnZhLlRhKCk7dGhpcy5qfHx0aGlzLm5pKCl9O18uQihScixfLnUpO1JyLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGEpe3RoaXMuQ3x8KHRoaXMuQz0hMCx0aGlzLkIuc3RhcnQoKDAsXy55KShmdW5jdGlvbihiKXtiJiYodGhpcy5nPWIsdGhpcy5oLnZhPWIudmEpO2EoKX0sdGhpcykpKX07UnIucHJvdG90eXBlLlRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07UnIucHJvdG90eXBlLlNhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZyE9PW51bGwmJnRoaXMuZy52YSE9PW51bGwmJnRoaXMuZy52YS5TYSgpfTsKdmFyIFNyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17cTpjLnN1YnN0cmluZygwLGEuaC5IZiksc2w6ImF1dG8iLHRsOiJlbiJ9O3JldHVybiBuZXcgXy5vZShmdW5jdGlvbihlLGYpe2EuaC52YS5zZW5kKGQsYikudGhlbihmdW5jdGlvbihnKXt0cnl7dmFyIGg9SlNPTi5wYXJzZShnKTtlKGgmJmhbMV18fG51bGwpfWNhdGNoKGspe2UobnVsbCl9fSxmdW5jdGlvbihnKXtyZXR1cm4gZihnfHxudWxsKX0pfSl9OwpSci5wcm90b3R5cGUudHJhbnNsYXRlPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dmFyIGs9dGhpcyxsPXtxOmIsc2w6Yyx0bDpkfTtsLnRjPWU7ZiYmKGwuY3R0PTEpO2cmJihsLmRvbT0xKTtoJiYobC5zcj0xKTtsW2hxKCldPWdxKGIuam9pbigiIikpO3JldHVybiBuZXcgXy5vZShmdW5jdGlvbihuLHEpe2suZy52YS5zZW5kKGwsYSkudGhlbihmdW5jdGlvbihwKXtpZihwKXtpZih0eXBlb2YgcCE9PSJvYmplY3QiKXRyeXtwPUpTT04ucGFyc2UocCl9Y2F0Y2goQSl7ay5taSgpO3EoKTtyZXR1cm59aWYoXy5vYyhwKSE9ImFycmF5Iil2YXIgcj1bW3AsMjAwXV07ZWxzZSBpZihwLmxlbmd0aD09MiYmXy5vYyhwWzBdKSE9ImFycmF5IiYmXy5vYyhwWzFdKSE9ImFycmF5IilyPVtbcFswXSwyMDAscFsxXV0sW3BbMV0sMjAwLHBbMV1dXTtlbHNle3I9W107Zm9yKHZhciB0PTA7dDxwLmxlbmd0aDsrK3Qpclt0XT1fLm9jKHBbdF0pIT0iYXJyYXkiP1twW3RdLDIwMF06W3BbdF1bMF0sCjIwMCxwW3RdWzFdXX1uKHIpfWVsc2UgcSgpfSl9KX07dmFyIFRyPWZ1bmN0aW9uKGEsYil7YiBpbnN0YW5jZW9mIF8ub2U/Yi50aGVuKGZ1bmN0aW9uKGMpe2EuZy52YS5jYW5jZWwoYyl9KTphLmcudmEuY2FuY2VsKGIpfTtSci5wcm90b3R5cGUubD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcuS2Q/dGhpcy5nLmNlLShuZXcgWmwodGhpcy5nLnZhLmcpKS50b1N0cmluZygpLmxlbmd0aDp0aGlzLmcuY2V9O1JyLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyk7dGhpcy5nJiYodGhpcy5nLnZhLmRpc3Bvc2UoKSx0aGlzLmcudmE9bnVsbCk7dGhpcy5oLnZhPW51bGw7dGhpcy5vLmRpc3Bvc2UoKTt0aGlzLm89bnVsbH07RHIuYXR0YWNoKDczNjEsUnIucHJvdG90eXBlLHtuaTpmdW5jdGlvbigpe1FtKCJ0ZV9hdSIpfX0pO0RyLmF0dGFjaCg0NzUwNCxSci5wcm90b3R5cGUse21pOmZ1bmN0aW9uKCl7UW0oInRlX2FmYnIiKX19KTsKdmFyIFFyPWZ1bmN0aW9uKGEpe3RoaXMuaD1hfTtRci5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oYSl7dGhpcy5nPWE7dGhpcy5qPTA7VXIodGhpcyl9O3ZhciBVcj1mdW5jdGlvbihhKXtpZihhLmo+PWEuaC5sZW5ndGgpYS5nKG51bGwpO2Vsc2V7dmFyIGI9YS5oW2EuaisrXTtiLklpP29yKG5ldyBucigoMCxfLnkpKGIudmEuU2EsYi52YSksKDAsXy55KShmdW5jdGlvbihjKXtjP3RoaXMuZyhiKTpVcih0aGlzKX0sYSksYi5JaSkpOmIudmEuU2EoKT9hLmcoYik6VXIoYSl9fTt2YXIgVnI9aXIoIkEgQUJCUiBBQ1JPTllNIEIgQkFTRUZPTlQgQkRPIEJJRyBDSVRFIERGTiBFTSBGT05UIEkgSU5QVVQgTk9CUiBMQUJFTCBRIFJUIFMgU01BTEwgU1BBTiBTVFJJS0UgU1RST05HIFNVQiBTVVAgVEVYVEFSRUEgVFQgVSBWQVIiLnNwbGl0KCIgIikpLFdyPWlyKCJBUFBMRVQgQVJFQSBCQVNFIEZSQU1FIEZSQU1FU0VUIEhSIExJTksgTUVUQSBOT0ZSQU1FUyBOT1NDUklQVCBJTlBVVCBURVhUQVJFQSBUSVRMRSIuc3BsaXQoIiAiKSksWHI9aXIoIkJSIENPREUgSU1HIEtCRCBNQVAgT0JKRUNUIFBBUkFNIFJQIFNDUklQVCBTVFlMRSBXQlIgc3ZnIi5zcGxpdCgiICIpKSxZcj1pcihbInN1Ym1pdCIsImJ1dHRvbiJdKTtYbS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiBacn07dmFyIFpyPXtkb25lOiEwLHZhbHVlOnZvaWQgMH07WG0ucHJvdG90eXBlLm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIGFzPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5oPSEhYjt0aGlzLm5vZGU9bnVsbDt0aGlzLmc9MDt0aGlzLmo9ITE7dGhpcy5sPSFjO2EmJiRyKHRoaXMsYSxkKTt0aGlzLmRlcHRoPWUhPXZvaWQgMD9lOnRoaXMuZ3x8MDt0aGlzLmgmJih0aGlzLmRlcHRoKj0tMSl9O18uRyhhcyxYbSk7dmFyICRyPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEubm9kZT1iKWEuZz10eXBlb2YgYz09PSJudW1iZXIiP2M6YS5ub2RlLm5vZGVUeXBlIT0xPzA6YS5oPy0xOjE7dHlwZW9mIGQ9PT0ibnVtYmVyIiYmKGEuZGVwdGg9ZCl9LGJzPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaD8tMToxO2EuZz09YiYmKGEuZz1iKi0xLGEuZGVwdGgrPWEuZyooYS5oPy0xOjEpKX07CmFzLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7aWYodGhpcy5qKXtpZighdGhpcy5ub2RlfHx0aGlzLmwmJnRoaXMuZGVwdGg9PTApcmV0dXJuIFpyO3ZhciBhPXRoaXMubm9kZTt2YXIgYj10aGlzLmg/LTE6MTtpZih0aGlzLmc9PWIpe3ZhciBjPXRoaXMuaD9hLmxhc3RDaGlsZDphLmZpcnN0Q2hpbGQ7Yz8kcih0aGlzLGMpOiRyKHRoaXMsYSxiKi0xKX1lbHNlKGM9dGhpcy5oP2EucHJldmlvdXNTaWJsaW5nOmEubmV4dFNpYmxpbmcpPyRyKHRoaXMsYyk6JHIodGhpcyxhLnBhcmVudE5vZGUsYiotMSk7dGhpcy5kZXB0aCs9dGhpcy5nKih0aGlzLmg/LTE6MSl9ZWxzZSB0aGlzLmo9ITA7cmV0dXJuKGE9dGhpcy5ub2RlKT97dmFsdWU6YSxkb25lOiExfTpacn07YXMucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlPT10aGlzLm5vZGUmJighdGhpcy5ub2RlfHxhLmc9PXRoaXMuZyl9Owphcy5wcm90b3R5cGUuc3BsaWNlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubm9kZSxjPXRoaXMuaD8xOi0xO3RoaXMuZz09YyYmKHRoaXMuZz1jKi0xLHRoaXMuZGVwdGgrPXRoaXMuZyoodGhpcy5oPy0xOjEpKTt0aGlzLmg9IXRoaXMuaDthcy5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMpO3RoaXMuaD0hdGhpcy5oO2M9Xy5xYShhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7Zm9yKHZhciBkPWMubGVuZ3RoLTE7ZD49MDtkLS0peG8oY1tkXSxiKTtfLkFkKGIpfTt2YXIgZHM9ZnVuY3Rpb24oYSxiKXt0aGlzLmw9ITE7dGhpcy5qPV8uU2M/W106bnVsbDt0aGlzLmg9W107dGhpcy5kb25lPSExO2Zvcih0aGlzLmc9bmV3IGFzKGEsITEsYixhLm5vZGVUeXBlPT09Mz8wOjEsMSk7YT1hLnBhcmVudE5vZGU7KWNzKHRoaXMsYSwhMCk7dGhpcy5oLnB1c2goITEpO3RoaXMuaC5yZXZlcnNlKCk7Zm9yKGE9MTthPHRoaXMuaC5sZW5ndGg7KythKXRoaXMuaFthXT09bnVsbCYmKHRoaXMuaFthXT10aGlzLmhbYS0xXSl9LGNzPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yzt2YXIgZD0oYi5zdHlsZSYmYi5zdHlsZS53aGl0ZVNwYWNlfHwiIikuc3Vic3RyaW5nKDAsMyk7ZD09PSJwcmUifHwhZCYmYi50YWdOYW1lPT09IlBSRSI/YS5oLnB1c2goITApOmQmJmQhPT0icHJlIj9hLmgucHVzaCghMSk6Yz9hLmgucHVzaChudWxsKTphLmgucHVzaChhLmhbYS5oLmxlbmd0aC0xXSl9LGVzPWZ1bmN0aW9uKGEpe3JldHVybiEhYS5oW2EuaC5sZW5ndGgtCjFdfTtkcy5wcm90b3R5cGUubm9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcubm9kZX07ZHMucHJvdG90eXBlLmRlcHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5kZXB0aH07CmRzLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dHJ5e3RoaXMuaiYmdGhpcy5qLmxlbmd0aD4wJiZ0aGlzLmcuZz09PS0xJiZ0aGlzLmoubGVuZ3RoLS07dGhpcy5nLmc9PT0tMSYmdGhpcy5oLmxlbmd0aC0tO2lmKHRoaXMuaiYmdGhpcy5qLmxlbmd0aD4wJiZ0aGlzLmcuZyE9PTEmJiF0aGlzLmcubm9kZS5uZXh0U2libGluZykkcih0aGlzLmcsdGhpcy5qW3RoaXMuai5sZW5ndGgtMV0sLTEsdGhpcy5nLmRlcHRoLTEpO2Vsc2V7dmFyIGE9dGhpcy5nLm5leHQoKTt0aGlzLmw9ITA7aWYoYS5kb25lKXt0aGlzLmRvbmU9ITA7cmV0dXJufXRoaXMuaiYmdGhpcy5nLmc9PT0xJiZ0aGlzLmoucHVzaCh0aGlzLmcubm9kZSl9dGhpcy5nLmc9PT0xJiZ0aGlzLmwmJmNzKHRoaXMsdGhpcy5nLm5vZGUpfWNhdGNoKGIpe3RoaXMud2koYiksdGhpcy5kb25lPSEwfX07RHIuYXR0YWNoKDUyNzU0LGRzLnByb3RvdHlwZSx7d2k6MX0pO3ZhciBRPXt9LGZzPWZ1bmN0aW9uKCl7UVswXT0iT3ZlcnNldHQiO1FbMV09IkF2YnJ5dCI7UVsyXT0iTHVrayI7UVszXT1mdW5jdGlvbihhKXtyZXR1cm4iR29vZ2xlIGhhciBvdmVyc2F0dCBkZW5uZSBzaWRlbiB0aWwgIithKyIgYXV0b21hdGlzayJ9O1FbNF09ZnVuY3Rpb24oYSl7cmV0dXJuIk92ZXJzYXR0IHRpbDogIithfTtRWzVdPSJGZWlsOiBUamVuZXJlbiBrdW5uZSBpa2tlIGZ1bGxmXHUwMGY4cmUgZm9yZXNwXHUwMGY4cnNlbGVuLiBQclx1MDBmOHYgcFx1MDBlNSBueXR0IHNlbmVyZS4iO1FbNl09IkxlcyBtZXIiO1FbN109ZnVuY3Rpb24oYSl7cmV0dXJuIkRyZXZldCBhdiAiK2F9O1FbOF09Ik92ZXJzZXR0ZXIiO1FbOV09Ik92ZXJzZXR0ZWxzZSBwXHUwMGU1Z1x1MDBlNXIiO1FbMTBdPWZ1bmN0aW9uKGEpe3JldHVybiJWaWwgZHUgb3ZlcnNldHRlIGRlbm5lIHNpZGVuIHRpbCAiK2ErIiBtZWQgR29vZ2xlIE92ZXJzZXR0ZXI/In07UVsxMV09ZnVuY3Rpb24oYSl7cmV0dXJuIlZpcyBkZW5uZSBzaWRlbiBwXHUwMGU1OiAiKwphfTtRWzEyXT0iVmlzIG9yaWdpbmFsIjtRWzEzXT0iSW5uaG9sZGV0IHBcdTAwZTUgZGVubmUgbG9rYWxlIGZpbGVuIHNlbmRlcyB0aWwgR29vZ2xlIHZpYSBlbiBzaWtrZXIgdGlsa29ibGluZyBmb3IgXHUwMGU1IGJsaSBvdmVyc2F0dC4iO1FbMTRdPSJJbm5ob2xkZXQgcFx1MDBlNSBkZW5uZSBzaWtyZSBzaWRlbiBzZW5kZXMgdGlsIEdvb2dsZSB2aWEgZW4gc2lra2VyIHRpbGtvYmxpbmcgZm9yIFx1MDBlNSBibGkgb3ZlcnNhdHQuIjtRWzE1XT0iSW5uaG9sZGV0IHBcdTAwZTUgZGVubmUgaW50cmFuZXR0c2lkZW4gc2VuZGVzIHRpbCBHb29nbGUgdmlhIGVuIHNpa2tlciB0aWxrb2JsaW5nIGZvciBcdTAwZTUgYmxpIG92ZXJzYXR0LiI7UVsxNl09IlZlbGcgc3ByXHUwMGU1ayI7UVsxN109ZnVuY3Rpb24oYSl7cmV0dXJuIlNsXHUwMGU1IGF2IG92ZXJzZXR0ZWxzZSB0aWwgIithfTtRWzE4XT1mdW5jdGlvbihhKXtyZXR1cm4iRGVha3RpdmVyIGZvcjogIithfTtRWzE5XT0iU2tqdWwgYWxsdGlkIjsKUVsyMF09Ik9yaWdpbmFsdGVrc3Q6IjtRWzIxXT0iQmlkcmEgbWVkIGVuIGJlZHJlIG92ZXJzZXR0ZWxzZSI7UVsyMl09IkJpZHJhIjtRWzIzXT0iT3ZlcnNldHQgYWx0IjtRWzI0XT0iR2plbm9wcHJldHQgYWx0IjtRWzI1XT0iQXZicnl0IGFsdCI7UVsyNl09Ik92ZXJzZXR0IGRlbGVuZSB0aWwgbWl0dCBzcHJcdTAwZTVrIjtRWzI3XT1mdW5jdGlvbihhKXtyZXR1cm4iT3ZlcnNldHQgYWx0IHRpbCAiK2F9O1FbMjhdPSJWaXMgb3BwcmlubmVsaWdlIHNwclx1MDBlNWsiO1FbMjldPSJBbHRlcm5hdGl2ZXIiO1FbMzBdPSJTbFx1MDBlNSBhdiBvdmVyc2V0dGVsc2UgZm9yIGRldHRlIG5ldHRzdGVkZXQiO1FbMzFdPW51bGw7UVszMl09IlZpcyBhbHRlcm5hdGl2ZSBvdmVyc2V0dGVsc2VyIjtRWzMzXT0iS2xpa2sgcFx1MDBlNSBvcmQgb3ZlbmZvciBmb3IgXHUwMGU1IGZcdTAwZTUgYWx0ZXJuYXRpdmUgb3ZlcnNldHRlbHNlciI7UVszNF09IkJydWsiO1FbMzVdPSJEcmEgbWVkIFNoaWZ0LXRhc3QgZm9yIFx1MDBlNSBlbmRyZSByZWtrZWZcdTAwZjhsZ2UiOwpRWzM2XT0iS2xpa2sgZm9yIFx1MDBlNSBzZSBhbHRlcm5hdGl2ZSBvdmVyc2V0dGVsc2VyIjtRWzM3XT0iSG9sZCBuZWRlIFNoaWZ0LXRhc3Rlbiwga2xpa2ssIG9nIGRyYSBkZXJldHRlciBvcmRlbmUgb3ZlbmZvciBmb3IgXHUwMGU1IGVuZHJlIHBcdTAwZTUgcmVra2VmXHUwMGY4bGdlbi4iO1FbMzhdPSJUYWtrIGZvciBhdCBkdSBiaWRyYXIgbWVkIG92ZXJzZXR0ZWxzZXNmb3JzbGFnZXQgZGl0dCB0aWwgR29vZ2xlIE92ZXJzZXR0ZXIuIjtRWzM5XT0iQWRtaW5pc3RyZXIgb3ZlcnNldHRpbmcgZm9yIGRldHRlIG5ldHRzdGVkZXQiO1FbNDBdPSJLbGlrayBwXHUwMGU1IGV0IG9yZCBmb3IgXHUwMGU1IHNlIGFsdGVybmF0aXZlIG92ZXJzZXR0ZWxzZXIsIGVsbGVyIGRvYmJlbHRrbGlrayBmb3IgXHUwMGU1IHJlZGlnZXJlIGRpcmVrdGUiO1FbNDFdPSJPcHByaW5uZWxpZyB0ZWtzdCI7UVs0Ml09Ik92ZXJzZXR0ZXIiO1FbNDNdPSJPdmVyc2V0dCI7UVs0NF09IlJldHRpbmdlbiBkaW4gZXIgc2VuZHQgaW5uLiI7ClFbNDVdPSJGZWlsOiBTcHJcdTAwZTVrZXQgdGlsIG5ldHRzaWRlbiBzdFx1MDBmOHR0ZXMgaWtrZS4iO1FbNDZdPSJNb2R1bCBmb3Igc3ByXHUwMGU1a292ZXJzZXR0aW5nIjtRWzQ3XT0iR2kgZW4gdnVyZGVyaW5nIGF2IGRlbm5lIG92ZXJzZXR0ZWxzZW4iO1FbNDhdPSJUaWxiYWtlbWVsZGluZ2VuIGRpbiBicnVrZXMgZm9yIFx1MDBlNSBnalx1MDBmOHJlIEdvb2dsZSBPdmVyc2V0dGVyIGJlZHJlIjtRWzQ5XT0iR29kIG92ZXJzZXR0ZWxzZSI7UVs1MF09IkRcdTAwZTVybGlnIG92ZXJzZXR0ZWxzZSI7UVs1MV09Ik92ZXJzZXR0ZWxzZSJ9O3ZhciBncz1mdW5jdGlvbigpe3JldHVybiJbbXNnX3VuZGVmaW5lZF0ifSxSPXt9OwooZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYn19O1I9e0llOmEoMCksbWc6YSgxKSxBZTphKDIpLFdqOmEoMyksRGc6YSg0KSxDZTphKDUpLHdnOmEoNDUpLHhnOmEoNiksemc6YSg3KSx3ZDphKDgpLEVnOmEoOSksc2s6YSgxMCksSmc6YSgxMSksQWc6YSgxMiksbGs6YSgxMyksQ2c6YSgxNCksa2s6YSgxNSksQmc6YSgxNiksdms6YSgxNyksRmc6YSgxOCksamo6YSgxOSksVWo6YSgyMCksSWo6YSgyMSksbWs6YSgyMiksZWs6YSgyMyksZGs6YSgyNCksYms6YSgyNSksdGs6YSgyNikscms6YSgyNyksY2s6YSgyOCkseWc6YSgyOSksR2c6YSgzMCksaWo6YSgzMiksZ2o6YSgzMyksd2s6YSgzNCkseGo6YSgzNSkscGo6YSgzNiksd2o6YSgzNyksbms6YSgzOCksUWo6YSgzOSksaGo6YSg0MCksVmo6YSg0MSksRWU6YSg0NiksWGo6YSg0NyksSGo6YSg0OCksR2o6YSg0OSksRmo6YSg1MCksdWs6YSg1MSl9fSkoKTtSLkNsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMF19OwpSLlprPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMV19O1IuYmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVsyXX07Ui5ubD1mdW5jdGlvbigpe3JldHVybiBRWzNdfTtSLkRsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbNF19O1IuZmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVs1XX07Ui5obD1mdW5jdGlvbigpe3JldHVybiBRWzQ1XX07Ui5pbD1mdW5jdGlvbigpe3JldHVybiBRWzZdfTtSLm9sPWZ1bmN0aW9uKCl7cmV0dXJuIFFbN119O1IuR2w9ZnVuY3Rpb24oKXtyZXR1cm4gUVs4XX07Ui5JbD1mdW5jdGlvbigpe3JldHVybiBRWzldfTtSLkZsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTBdfTtSLk9sPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTFdfTtSLnBsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTJdfTtSLnlsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTNdfTtSLnpsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTRdfTtSLnhsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTVdfTtSLnFsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTZdfTsKUi5MbD1mdW5jdGlvbigpe3JldHVybiBRWzE3XX07Ui5LbD1mdW5jdGlvbigpe3JldHVybiBRWzE4XX07Ui5Zaz1mdW5jdGlvbigpe3JldHVybiBRWzE5XX07Ui5sbD1mdW5jdGlvbigpe3JldHVybiBRWzIwXX07Ui5zaD1mdW5jdGlvbigpe3JldHVybiBRWzQxXX07Ui5lbD1mdW5jdGlvbigpe3JldHVybiBRWzIxXX07Ui5BbD1mdW5jdGlvbigpe3JldHVybiBRWzIyXX07Ui53bD1mdW5jdGlvbigpe3JldHVybiBRWzIzXX07Ui52bD1mdW5jdGlvbigpe3JldHVybiBRWzI0XX07Ui5ybD1mdW5jdGlvbigpe3JldHVybiBRWzI1XX07Ui5IbD1mdW5jdGlvbigpe3JldHVybiBRWzI2XX07Ui5FbD1mdW5jdGlvbigpe3JldHVybiBRWzI3XX07Ui51bD1mdW5jdGlvbigpe3JldHVybiBRWzI4XX07Ui5rbD1mdW5jdGlvbigpe3JldHVybiBRWzI5XX07Ui5NbD1mdW5jdGlvbigpe3JldHVybiBRWzMwXX07Ui5qbD1mdW5jdGlvbigpe3JldHVybiBRWzM5XX07Ui5Yaz1mdW5jdGlvbigpe3JldHVybiBRWzMyXX07ClIuVms9ZnVuY3Rpb24oKXtyZXR1cm4gUVszM119O1IuV2s9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0MF19O1IuTmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVszNF19O1IuZGw9ZnVuY3Rpb24oKXtyZXR1cm4gUVszNV19O1IuYWw9ZnVuY3Rpb24oKXtyZXR1cm4gUVszNl19O1IuY2w9ZnVuY3Rpb24oKXtyZXR1cm4gUVszN119O1IuQmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVszOF19O1IuZ2w9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0Nl19O1IudGg9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0N119O1Iucmg9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0OF19O1IucWg9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0OV19O1IucGg9ZnVuY3Rpb24oKXtyZXR1cm4gUVs1MF19O1IuSmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVs1MV19O3ZhciBocz1SO3ZhciBpcz1ocy5zaCxqcz1ocy50aCxrcz1ocy5yaCxscz1ocy5xaCxtcz1ocy5waDt2YXIgcHM9ZnVuY3Rpb24oYSl7dmFyIGI9YS5kaXI7YT1hLmNqO3JldHVybiBWbihXbihWbihXbihWbihfLnlsKCksJzxkaXYgaWQ9Imdvb2ctZ3QtdHQiIGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItTDdsYmtiIikrJyBza2lwdHJhbnNsYXRlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgYm9yZGVyLXJhZGl1czogMTJweDsgbWFyZ2luOiAwIDAgMCAtMjNweDsgcGFkZGluZzogMDsgZm9udC1mYW1pbHk6IFwnR29vZ2xlIFNhbnNcJywgQXJpYWwsIHNhbnMtc2VyaWY7IiBkYXRhLWlkPSIiPjxkaXYgaWQ9Imdvb2ctZ3QtdnQiIGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItaHZoZ05kIikrJyI+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1VZDdmciIpKyciPjxpbWcgc3JjPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS9wcm9kdWN0bG9nb3MvdHJhbnNsYXRlL3YxNC8yNHB4LnN2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBhbHQ9IiIvPjxkaXYgY2xhc3M9IicrCihiPT09InJ0bCI/IiAiK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1TSXNyVGQiKSsiICI6IiAiK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1pM2pNOGMiKSsiICIpKyciIGRpcj0iJytQKGIpKyciPicrS3AoaXMoKSkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUCgiVklwZ0pkLXlBV05FYi1odmhnTmQtazc3SWlmIikrJyI+PGRpdiBpZD0iZ29vZy1ndC1vcmlnaW5hbC10ZXh0IiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLW5WTWZjZC1mbWNtUyIpKyIgIitQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1heEFWMSIpKyciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUCgiVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkIikrIiAiK1AoYikrJyI+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIikrIiAiK1AoYikrJyIgZGlyPSInK1AoYikrJyI+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1VVHVqQ2IiKSsKJyI+JytLcChqcygpKSsnPC9kaXY+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1lTzltS2UiKSsnIj4nK0twKGtzKCkpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLXhnb3Y1IikrIiAiK1AoYikrJyI+JyksYj09PSJydGwiP1duKFduKF8ueWwoKSxucygpKSxvcygpKTpXbihXbihfLnlsKCksb3MoKSksbnMoKSkpLCI8L2Rpdj48L2Rpdj4iKSwoMCxfLnRsKSgnPGRpdiBpZD0iZ29vZy1ndC12b3RpbmdIaWRkZW5QYW5lIiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1hWFlUY2UiKSsnIj48Zm9ybSBpZD0iZ29vZy1ndC12b3RpbmdGb3JtIiBhY3Rpb249IicrUChVcChhKSkrJyIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9InZvdGluZ0ZyYW1lIiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1hWFlUY2UiKSsnIj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic2wiIGlkPSJnb29nLWd0LXZvdGluZ0lucHV0U3JjTGFuZyIvPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ0bCIgaWQ9Imdvb2ctZ3Qtdm90aW5nSW5wdXRUcmdMYW5nIi8+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InF1ZXJ5IiBpZD0iZ29vZy1ndC12b3RpbmdJbnB1dFNyY1RleHQiLz48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZ3RyYW5zIiBpZD0iZ29vZy1ndC12b3RpbmdJbnB1dFRyZ1RleHQiLz48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idm90ZSIgaWQ9Imdvb2ctZ3Qtdm90aW5nSW5wdXRWb3RlIi8+PC9mb3JtPjxpZnJhbWUgbmFtZT0idm90aW5nRnJhbWUiIGZyYW1lQm9yZGVyPTA+PC9pZnJhbWU+PC9kaXY+JykpLAoiPC9kaXY+PC9kaXY+Iil9LG9zPWZ1bmN0aW9uKCl7dmFyIGE9Xy55bCgpLGI9bHMoKTtiPVZuKGEsJzxidXR0b24gaWQ9Imdvb2ctZ3QtdGh1bWJVcEJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1iZ202c2YiKSsnIiB0aXRsZT0iJytQKGIpKyciIGFyaWEtbGFiZWw9IicrUChiKSsnIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj48c3BhbiBpZD0iZ29vZy1ndC10aHVtYlVwSWNvbiI+Jyk7dmFyIGM9KDAsXy50bCkoJzxzdmcgd2lkdGg9IicrUCgyNCkrJyIgaGVpZ2h0PSInK1AoMjQpKyciIHZpZXdCb3g9IicrUCgiMCAwIDI0IDI0IikrJyIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9IicrUCgiVklwZ0pkLXlBV05FYi1odmhnTmQtVEhJNlZiIikrIiAiK1AoIk5NbTVNIikrJyInK3pwKCkrJz48cGF0aCBkPSJNMjEgN2gtNi4zMWwuOTUtNC41Ny4wMy0uMzJjMC0uNDEtLjE3LS43OS0uNDQtMS4wNkwxNC4xNyAwUzcuMDggNi44NSA3IDdIMnYxM2gxNmMuODMgMCAxLjU0LS41IDEuODQtMS4yMmwzLjAyLTcuMDVjLjA5LS4yMy4xNC0uNDcuMTQtLjczVjljMC0xLjEtLjktMi0yLTJ6TTcgMThINFY5aDN2OXptMTQtN2wtMyA3SDlWOGw0LjM0LTQuMzRMMTIgOWg5djJ6Ii8+PC9zdmc+Jyk7CmI9Vm4oV24oYixjKSwnPC9zcGFuPjxzcGFuIGlkPSJnb29nLWd0LXRodW1iVXBJY29uRmlsbGVkIj4nKTtjPSgwLF8udGwpKCc8c3ZnIHdpZHRoPSInK1AoMjQpKyciIGhlaWdodD0iJytQKDI0KSsnIiB2aWV3Qm94PSInK1AoIjAgMCAyNCAyNCIpKyciIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYiIpKyIgIitQKCJOTW01TSIpKyciJyt6cCgpKyc+PHBhdGggZD0iTTIxIDdoLTYuMzFsLjk1LTQuNTcuMDMtLjMyYzAtLjQxLS4xNy0uNzktLjQ0LTEuMDZMMTQuMTcgMFM3LjA4IDYuODUgNyA3djEzaDExYy44MyAwIDEuNTQtLjUgMS44NC0xLjIybDMuMDItNy4wNWMuMDktLjIzLjE0LS40Ny4xNC0uNzNWOWMwLTEuMS0uOS0yLTItMnpNNSA3SDF2MTNoNFY3eiIvPjwvc3ZnPicpO1ZuKFduKGIsYyksIjwvc3Bhbj48L2J1dHRvbj4iKTtyZXR1cm4gYX0sbnM9ZnVuY3Rpb24oKXt2YXIgYT1fLnlsKCksYj1tcygpO2I9Vm4oYSwnPGJ1dHRvbiBpZD0iZ29vZy1ndC10aHVtYkRvd25CdXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9IicrClAoIlZJcGdKZC15QVdORWItaHZoZ05kLWJnbTZzZiIpKyciIHRpdGxlPSInK1AoYikrJyIgYXJpYS1sYWJlbD0iJytQKGIpKyciIGFyaWEtcHJlc3NlZD0iZmFsc2UiPjxzcGFuIGlkPSJnb29nLWd0LXRodW1iRG93bkljb24iPicpO3ZhciBjPSgwLF8udGwpKCc8c3ZnIHdpZHRoPSInK1AoMjQpKyciIGhlaWdodD0iJytQKDI0KSsnIiB2aWV3Qm94PSInK1AoIjAgMCAyNCAyNCIpKyciIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYiIpKyIgIitQKCJOTW01TSIpKyciJyt6cCgpKyc+PHBhdGggZD0iTTMgMTdoNi4zMWwtLjk1IDQuNTctLjAzLjMyYzAgLjQxLjE3Ljc5LjQ0IDEuMDZMOS44MyAyNHM3LjA5LTYuODUgNy4xNy03aDVWNEg2Yy0uODMgMC0xLjU0LjUtMS44NCAxLjIybC0zLjAyIDcuMDVjLS4wOS4yMy0uMTQuNDctLjE0LjczdjJjMCAxLjEuOSAyIDIgMnpNMTcgNmgzdjloLTNWNnpNMyAxM2wzLTdoOXYxMGwtNC4zNCA0LjM0TDEyIDE1SDN2LTJ6Ii8+PC9zdmc+Jyk7CmI9Vm4oV24oYixjKSwnPC9zcGFuPjxzcGFuIGlkPSJnb29nLWd0LXRodW1iRG93bkljb25GaWxsZWQiPicpO2M9KDAsXy50bCkoJzxzdmcgd2lkdGg9IicrUCgyNCkrJyIgaGVpZ2h0PSInK1AoMjQpKyciIHZpZXdCb3g9IicrUCgiMCAwIDI0IDI0IikrJyIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9IicrUCgiVklwZ0pkLXlBV05FYi1odmhnTmQtVEhJNlZiIikrIiAiK1AoIk5NbTVNIikrJyInK3pwKCkrJz48cGF0aCBkPSJNMyAxN2g2LjMxbC0uOTUgNC41Ny0uMDMuMzJjMCAuNDEuMTcuNzkuNDQgMS4wNkw5LjgzIDI0czcuMDktNi44NSA3LjE3LTdWNEg2Yy0uODMgMC0xLjU0LjUtMS44NCAxLjIybC0zLjAyIDcuMDVjLS4wOS4yMy0uMTQuNDctLjE0LjczdjJjMCAxLjEuOSAyIDIgMnptMTYgMGg0VjRoLTR2MTN6Ii8+PC9zdmc+Jyk7Vm4oV24oYixjKSwiPC9zcGFuPjwvYnV0dG9uPiIpO3JldHVybiBhfTt2YXIgcXM9ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIiljJiYoYT0oMCxfLnkpKGEsYykpO2Vsc2UgaWYoYSYmdHlwZW9mIGEuaGFuZGxlRXZlbnQ9PSJmdW5jdGlvbiIpYT0oMCxfLnkpKGEuaGFuZGxlRXZlbnQsYSk7ZWxzZSB0aHJvdyBFcnJvcigieGEiKTtyZXR1cm4gTnVtYmVyKGIpPjIxNDc0ODM2NDc/LTE6Xy52LnNldFRpbWVvdXQoYSxifHwwKX07dmFyIHJzPWZ1bmN0aW9uKCl7aWYoXy5aYyl7dmFyIGE9L1dpbmRvd3MgTlQgKFswLTkuXSspLztyZXR1cm4oYT1hLmV4ZWMoXy5UYSgpKSk/YVsxXToiMCJ9cmV0dXJuIF8uWWM/KGE9LzFbMHwxXVtfLl1bMC05Xy5dKy8sKGE9YS5leGVjKF8uVGEoKSkpP2FbMF0ucmVwbGFjZSgvXy9nLCIuIik6IjEwIik6Xy4kYz8oYT0vQW5kcm9pZFxzKyhbXlwpO10rKShcKXw7KS8sKGE9YS5leGVjKF8uVGEoKSkpP2FbMV06IiIpOl8uYWR8fF8uYmR8fF8uY2Q/KGE9Lyg/OmlQaG9uZXxDUFUpXHMrT1NccysoXFMrKS8sKGE9YS5leGVjKF8uVGEoKSkpP2FbMV0ucmVwbGFjZSgvXy9nLCIuIik6IiIpOiIifSgpO3ZhciBzcz1mdW5jdGlvbihhKXtyZXR1cm4oYT1hLmV4ZWMoXy5UYSgpKSk/YVsxXToiIn0sdHM9ZnVuY3Rpb24oKXtpZihfLkpoKXJldHVybiBzcygvRmlyZWZveFwvKFswLTkuXSspLyk7aWYoXy5TY3x8Xy5UY3x8Xy5SYylyZXR1cm4gXy5qZDtpZihfLk5oKXtpZihfLiRhKCl8fF8uYWIoKSl7dmFyIGE9c3MoL0NyaU9TXC8oWzAtOS5dKykvKTtpZihhKXJldHVybiBhfXJldHVybiBzcygvQ2hyb21lXC8oWzAtOS5dKykvKX1pZihfLk9oJiYhXy4kYSgpKXJldHVybiBzcygvVmVyc2lvblwvKFswLTkuXSspLyk7aWYoXy5LaHx8Xy5MaCl7aWYoYT0vVmVyc2lvblwvKFxTKykuKk1vYmlsZVwvKFxTKykvLmV4ZWMoXy5UYSgpKSlyZXR1cm4gYVsxXSsiLiIrYVsyXX1lbHNlIGlmKF8uTWgpcmV0dXJuKGE9c3MoL0FuZHJvaWRccysoWzAtOS5dKykvKSk/YTpzcygvVmVyc2lvblwvKFswLTkuXSspLyk7cmV0dXJuIiJ9KCk7Xy5HKFltLF8uaGIpO18ubT1ZbS5wcm90b3R5cGU7Xy5tLkVhPW51bGw7Xy5tLkRjPSEwO18ubS5OZT1udWxsO18ubS56Yj0hMTtfLm0uWmQ9LTE7Xy5tLlViPSJ0b2dnbGVfZGlzcGxheSI7Xy5tLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FYX07Xy5tLlFiPWZ1bmN0aW9uKGEpe2lmKHRoaXMuemIpdGhyb3cgRXJyb3IoInlhIik7dGhpcy5FYT1hfTtfLm0ucmU9ZnVuY3Rpb24oYSl7aWYodGhpcy56Yil0aHJvdyBFcnJvcigieWEiKTt0aGlzLkRjPWF9O18ubS5pc1Zpc2libGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy56Yn07Cl8ubS5wYT1mdW5jdGlvbihhKXt0aGlzLkwmJnRoaXMuTC5zdG9wKCk7dGhpcy5LJiZ0aGlzLksuc3RvcCgpO2lmKGEpe2lmKCF0aGlzLnpiJiZ0aGlzLnVkKCkpe2lmKCF0aGlzLkVhKXRocm93IEVycm9yKCJ6YSIpO3RoaXMucGIoKTthPV8uc2QodGhpcy5FYSk7dGhpcy5EYyYmKHRoaXMubC5OKGEsIm1vdXNlZG93biIsdGhpcy5OZiwhMCksdGhpcy5sLk4oYSwiYmx1ciIsdGhpcy5FaSkpO3RoaXMuVWI9PSJ0b2dnbGVfZGlzcGxheSI/KHRoaXMuRWEuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSIsbXAodGhpcy5FYSwhMCkpOnRoaXMuVWI9PSJtb3ZlX29mZnNjcmVlbiImJnRoaXMucGIoKTt0aGlzLnpiPSEwO3RoaXMuWmQ9RGF0ZS5ub3coKTt0aGlzLkw/KF8uTmQodGhpcy5MLCJlbmQiLHRoaXMuT2YsITEsdGhpcyksdGhpcy5MLnBsYXkoKSk6dGhpcy5PZigpfX1lbHNlIHVzKHRoaXMpfTtfLm0ucGI9ZnVuY3Rpb24oKXt9Owp2YXIgdXM9ZnVuY3Rpb24oYSxiKXthLnpiJiZhLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImJlZm9yZWhpZGUiLHRhcmdldDpifSkmJihhLmwmJl8uUmYoYS5sKSxhLnpiPSExLGEuSz8oXy5OZChhLkssImVuZCIsXy5aaihhLlNlLGIpLCExLGEpLGEuSy5wbGF5KCkpOmEuU2UoYikpfTtfLm09WW0ucHJvdG90eXBlO18ubS5TZT1mdW5jdGlvbihhKXt0aGlzLlViPT0idG9nZ2xlX2Rpc3BsYXkiP3RoaXMuYWkoKTp0aGlzLlViPT0ibW92ZV9vZmZzY3JlZW4iJiYodGhpcy5FYS5zdHlsZS50b3A9Ii0xMDAwMHB4Iik7dGhpcy5nZShhKX07Xy5tLmFpPWZ1bmN0aW9uKCl7dGhpcy5FYS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO21wKHRoaXMuRWEsITEpfTtfLm0udWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KCJiZWZvcmVzaG93Iil9O18ubS5PZj1mdW5jdGlvbigpe3RoaXMuZGlzcGF0Y2hFdmVudCgic2hvdyIpfTsKXy5tLmdlPWZ1bmN0aW9uKGEpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiaGlkZSIsdGFyZ2V0OmF9KX07Xy5tLk5mPWZ1bmN0aW9uKGEpe2E9YS50YXJnZXQ7Xy5CZCh0aGlzLkVhLGEpfHx2cyh0aGlzLGEpfHxEYXRlLm5vdygpLXRoaXMuWmQ8MTUwfHx1cyh0aGlzLGEpfTtfLm0uRWk9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5zZCh0aGlzLkVhKTtpZih0eXBlb2YgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9InVuZGVmaW5lZCIpe2lmKGE9Yi5hY3RpdmVFbGVtZW50LCFhfHxfLkJkKHRoaXMuRWEsYSl8fGEudGFnTmFtZT09IkJPRFkifHx2cyh0aGlzLGEpKXJldHVybn1lbHNlIGlmKGEudGFyZ2V0IT1iKXJldHVybjtEYXRlLm5vdygpLXRoaXMuWmQ8MTUwfHx1cyh0aGlzKX07dmFyIHZzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8ueGMoYS5OZXx8W10sZnVuY3Rpb24oYyl7cmV0dXJuIGI9PT1jfHxfLkJkKGMsYil9KX07ClltLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7WW0uZWEuTS5jYWxsKHRoaXMpO3RoaXMubC5kaXNwb3NlKCk7Xy5wYSh0aGlzLkwpO18ucGEodGhpcy5LKTtkZWxldGUgdGhpcy5FYTtkZWxldGUgdGhpcy5sO2RlbGV0ZSB0aGlzLk5lfTtfLkcoYm4sXy5oYik7Ym4ucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBfLmRiKGEuZyk7Yi50eXBlPWEudHlwZT09ImZvY3VzaW4ifHxhLnR5cGU9PSJmb2N1cyI/ImZvY3VzaW4iOiJmb2N1c291dCI7dGhpcy5kaXNwYXRjaEV2ZW50KGIpfTtibi5wcm90b3R5cGUuTT1mdW5jdGlvbigpe2JuLmVhLk0uY2FsbCh0aGlzKTtfLlZkKHRoaXMuaCk7Xy5WZCh0aGlzLmopO2RlbGV0ZSB0aGlzLmd9O2NuLnByb3RvdHlwZS5oPWZ1bmN0aW9uKCl7fTt2YXIgeXM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg7aWYoaD1jLm9mZnNldFBhcmVudCl7dmFyIGs9aC50YWdOYW1lPT0iSFRNTCJ8fGgudGFnTmFtZT09IkJPRFkiO2lmKCFrfHxjcChoLCJwb3NpdGlvbiIpIT0ic3RhdGljIil7dmFyIGw9aHAoaCk7aWYoIWspe2s9InJ0bCI9PWNwKGgsImRpcmVjdGlvbiIpO3ZhciBuO2lmKG49ayl7bj1fLk9oJiZMbCh0cywxMCk+PTA7dmFyIHE7aWYocT1fLmRkKXE9TGwocnMsMTApPj0wO3ZhciBwPV8uTmgmJkxsKHRzLDg1KT49MDtuPV8uVWN8fG58fHF8fHB9az1uPy1oLnNjcm9sbExlZnQ6ayYmY3AoaCwib3ZlcmZsb3dYIikhPSJ2aXNpYmxlIj9oLnNjcm9sbFdpZHRoLWguY2xpZW50V2lkdGgtaC5zY3JvbGxMZWZ0Omguc2Nyb2xsTGVmdDtsPWFvKGwsbmV3IHpsKGssaC5zY3JvbGxUb3ApKX19fWg9bHx8bmV3IHpsO2w9aHAoYSk7az1scChhKTtsPW5ldyB3bShsLngsbC55LGsud2lkdGgsay5oZWlnaHQpO2lmKGs9aXAoYSkpcD0KbmV3IHdtKGsubGVmdCxrLnRvcCxrLnJpZ2h0LWsubGVmdCxrLmJvdHRvbS1rLnRvcCksaz1NYXRoLm1heChsLmxlZnQscC5sZWZ0KSxuPU1hdGgubWluKGwubGVmdCtsLndpZHRoLHAubGVmdCtwLndpZHRoKSxrPD1uJiYocT1NYXRoLm1heChsLnRvcCxwLnRvcCkscD1NYXRoLm1pbihsLnRvcCtsLmhlaWdodCxwLnRvcCtwLmhlaWdodCkscTw9cCYmKGwubGVmdD1rLGwudG9wPXEsbC53aWR0aD1uLWssbC5oZWlnaHQ9cC1xKSk7bj1fLmxiKGEpO2s9Xy5sYihjKTtuLmchPWsuZyYmKG49bi5nLmJvZHksaz1qcChuLGsuZy5kZWZhdWx0Vmlldyksaz1hbyhrLGhwKG4pKSxsLmxlZnQrPWsueCxsLnRvcCs9ay55KTthPXdzKGEsYik7Yj1sLmxlZnQ7YSY0P2IrPWwud2lkdGg6YSYyJiYoYis9bC53aWR0aC8yKTtiPW5ldyB6bChiLGwudG9wKyhhJjE/bC5oZWlnaHQ6MCkpO2I9YW8oYixoKTtlJiYoYi54Kz0oYSY0Py0xOjEpKmUueCxiLnkrPShhJjE/LTE6MSkqZS55KTt2YXIgcjtnJiYocj0KaXAoYykpJiYoci50b3AtPWgueSxyLnJpZ2h0LT1oLngsci5ib3R0b20tPWgueSxyLmxlZnQtPWgueCk7cmV0dXJuIHhzKGIsYyxkLGYscixnKX0seHM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2E9RG4oYSk7dmFyIGc9d3MoYixjKTtjPWxwKGIpO3ZhciBoPW5ldyBfLkNhKGMud2lkdGgsYy5oZWlnaHQpO2E9RG4oYSk7aD1uZXcgXy5DYShoLndpZHRoLGguaGVpZ2h0KTt2YXIgaz0wO2lmKGR8fGchPTApZyY0P2EueC09aC53aWR0aCsoZD9kLnJpZ2h0OjApOmcmMj9hLngtPWgud2lkdGgvMjpkJiYoYS54Kz1kLmxlZnQpLGcmMT9hLnktPWguaGVpZ2h0KyhkP2QuYm90dG9tOjApOmQmJihhLnkrPWQudG9wKTtmJiYoZT8oZD1oLGc9MCwoZiY2NSk9PTY1JiYoYS54PGUubGVmdHx8YS54Pj1lLnJpZ2h0KSYmKGYmPS0yKSwoZiYxMzIpPT0xMzImJihhLnk8ZS50b3B8fGEueT49ZS5ib3R0b20pJiYoZiY9LTUpLGEueDxlLmxlZnQmJmYmMSYmKGEueD1lLmxlZnQsZ3w9MSksZiYxNiYmKGs9CmEueCxhLng8ZS5sZWZ0JiYoYS54PWUubGVmdCxnfD00KSxhLngrZC53aWR0aD5lLnJpZ2h0JiYoZC53aWR0aD1NYXRoLm1pbihlLnJpZ2h0LWEueCxrK2Qud2lkdGgtZS5sZWZ0KSxkLndpZHRoPU1hdGgubWF4KGQud2lkdGgsMCksZ3w9NCkpLGEueCtkLndpZHRoPmUucmlnaHQmJmYmMSYmKGEueD1NYXRoLm1heChlLnJpZ2h0LWQud2lkdGgsZS5sZWZ0KSxnfD0xKSxmJjImJihnfD0oYS54PGUubGVmdD8xNjowKXwoYS54K2Qud2lkdGg+ZS5yaWdodD8zMjowKSksYS55PGUudG9wJiZmJjQmJihhLnk9ZS50b3AsZ3w9MiksZiYzMiYmKGs9YS55LGEueTxlLnRvcCYmKGEueT1lLnRvcCxnfD04KSxhLnkrZC5oZWlnaHQ+ZS5ib3R0b20mJihkLmhlaWdodD1NYXRoLm1pbihlLmJvdHRvbS1hLnksaytkLmhlaWdodC1lLnRvcCksZC5oZWlnaHQ9TWF0aC5tYXgoZC5oZWlnaHQsMCksZ3w9OCkpLGEueStkLmhlaWdodD5lLmJvdHRvbSYmZiY0JiYoYS55PU1hdGgubWF4KGUuYm90dG9tLWQuaGVpZ2h0LAplLnRvcCksZ3w9MiksZiY4JiYoZ3w9KGEueTxlLnRvcD82NDowKXwoYS55K2QuaGVpZ2h0PmUuYm90dG9tPzEyODowKSksZT1nKTplPTI1NixrPWUpO2U9bmV3IHdtKDAsMCwwLDApO2UubGVmdD1hLng7ZS50b3A9YS55O2Uud2lkdGg9aC53aWR0aDtlLmhlaWdodD1oLmhlaWdodDthPWs7aWYoYSY0OTYpcmV0dXJuIGE7ZXAoYixuZXcgemwoZS5sZWZ0LGUudG9wKSk7aD1uZXcgXy5DYShlLndpZHRoLGUuaGVpZ2h0KTtfLnljKGMsaCl8fHBwKGIsaCwiYm9yZGVyLWJveCIpO3JldHVybiBhfSx3cz1mdW5jdGlvbihhLGIpe3JldHVybihiJjgmJiJydGwiPT1jcChhLCJkaXJlY3Rpb24iKT9iXjQ6YikmLTl9O18uRyhkbixjbik7ZG4ucHJvdG90eXBlLmg9ZnVuY3Rpb24oYSxiLGMpe3lzKHRoaXMuZWxlbWVudCx0aGlzLmosYSxiLHZvaWQgMCxjLHRoaXMubCl9O18uRyhlbixjbik7ZW4ucHJvdG90eXBlLmg9ZnVuY3Rpb24oYSxiLGMpe3lzKChhP18uc2QoYSk6ZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudCwwLGEsYix0aGlzLmcsYyxudWxsKX07Xy5HKGZuLFltKTtmbi5wcm90b3R5cGUucGI9ZnVuY3Rpb24oKXtpZih0aGlzLm8pe3ZhciBhPSF0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzLlViIT0ibW92ZV9vZmZzY3JlZW4iLGI9dGhpcy5IKCk7YSYmKGIuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixtcChiLCEwKSk7dGhpcy5vLmgoYiw4LHRoaXMuWGIpO2EmJm1wKGIsITEpfX07Xy5HKE8sZm4pO3ZhciB6cz1bXTtfLm09Ty5wcm90b3R5cGU7Xy5tLnlhPW51bGw7Xy5tLmNsYXNzTmFtZT0iVklwZ0pkLXN1RU9kYyI7Xy5tLlpmPTUwMDtfLm0ud2Y9MDtfLm0uYXR0YWNoPWZ1bmN0aW9uKGEpe2E9Z24oYSk7dGhpcy5BLmFkZChhKTtfLngoYSwibW91c2VvdmVyIix0aGlzLlVkLCExLHRoaXMpO18ueChhLCJtb3VzZW91dCIsdGhpcy5OYiwhMSx0aGlzKTtfLngoYSwibW91c2Vtb3ZlIix0aGlzLmdiLCExLHRoaXMpO18ueChhLCJmb2N1cyIsdGhpcy5mYiwhMSx0aGlzKTtfLngoYSwiYmx1ciIsdGhpcy5OYiwhMSx0aGlzKX07Xy5tLmRldGFjaD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2E/KGE9Z24oYSksQXModGhpcyxhKSx0aGlzLkEuZGVsZXRlKGEpKToodGhpcy5BLmZvckVhY2goZnVuY3Rpb24oYyl7QXMoYixjKX0pLHRoaXMuQS5jbGVhcigpKX07CnZhciBBcz1mdW5jdGlvbihhLGIpe18uVWQoYiwibW91c2VvdmVyIixhLlVkLCExLGEpO18uVWQoYiwibW91c2VvdXQiLGEuTmIsITEsYSk7Xy5VZChiLCJtb3VzZW1vdmUiLGEuZ2IsITEsYSk7Xy5VZChiLCJmb2N1cyIsYS5mYiwhMSxhKTtfLlVkKGIsImJsdXIiLGEuTmIsITEsYSl9O08ucHJvdG90eXBlLkthPWZ1bmN0aW9uKGEpe18uQ2QodGhpcy5IKCksYSl9OwpPLnByb3RvdHlwZS5RYj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLkgoKTtiJiZfLkFkKGIpO08uZWEuUWIuY2FsbCh0aGlzLGEpO2E/KGI9dGhpcy5HLmcuYm9keSxiLmluc2VydEJlZm9yZShhLGIubGFzdENoaWxkKSxfLnBhKHRoaXMuQyksdGhpcy5DPW5ldyBibih0aGlzLkgoKSksXy5hayh0aGlzLF8uWmooXy5wYSx0aGlzLkMpKSxfLngodGhpcy5DLCJmb2N1c2luIix0aGlzLkQsdm9pZCAwLHRoaXMpLF8ueCh0aGlzLkMsImZvY3Vzb3V0Iix0aGlzLlQsdm9pZCAwLHRoaXMpKTooXy5wYSh0aGlzLkMpLHRoaXMuQz1udWxsKX07Ty5wcm90b3R5cGUudmQ9ZnVuY3Rpb24oKXtyZXR1cm4gRW8odGhpcy5IKCkpfTt2YXIgQnM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuRj9hLmlzVmlzaWJsZSgpPzQ6MTphLkk/MzphLmlzVmlzaWJsZSgpPzI6MH07Ck8ucHJvdG90eXBlLnVkPWZ1bmN0aW9uKCl7aWYoIVltLnByb3RvdHlwZS51ZC5jYWxsKHRoaXMpKXJldHVybiExO2lmKHRoaXMuZylmb3IodmFyIGEsYj0wO2E9enNbYl07YisrKV8uQmQoYS5IKCksdGhpcy5nKXx8YS5wYSghMSk7Xy51YSh6cyx0aGlzKTthPXRoaXMuSCgpO2EuY2xhc3NOYW1lPXRoaXMuY2xhc3NOYW1lO3RoaXMuRCgpO18ueChhLCJtb3VzZW92ZXIiLHRoaXMuVWMsITEsdGhpcyk7Xy54KGEsIm1vdXNlb3V0Iix0aGlzLlRjLCExLHRoaXMpO0NzKHRoaXMpO3JldHVybiEwfTsKTy5wcm90b3R5cGUuZ2U9ZnVuY3Rpb24oKXtfLnZhKHpzLHRoaXMpO2Zvcih2YXIgYT10aGlzLkgoKSxiLGM9MDtiPXpzW2NdO2MrKyliLmcmJl8uQmQoYSxiLmcpJiZiLnBhKCExKTt0aGlzLkhiJiZ0aGlzLkhiLlQoKTtfLlVkKGEsIm1vdXNlb3ZlciIsdGhpcy5VYywhMSx0aGlzKTtfLlVkKGEsIm1vdXNlb3V0Iix0aGlzLlRjLCExLHRoaXMpO3RoaXMuZz12b2lkIDA7QnModGhpcyk9PTAmJih0aGlzLlA9ITEpO1ltLnByb3RvdHlwZS5nZS5jYWxsKHRoaXMpfTtPLnByb3RvdHlwZS5kZT1mdW5jdGlvbihhLGIpe3RoaXMuZz09YSYmdGhpcy5BLmhhcyh0aGlzLmcpJiYodGhpcy5QfHwhdGhpcy5JZD8odGhpcy5wYSghMSksdGhpcy5pc1Zpc2libGUoKXx8KHRoaXMuZz1hLHRoaXMubz1ifHxuZXcgRHMoRG4odGhpcy5yYSkpLHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMucGIoKSx0aGlzLnBhKCEwKSkpOnRoaXMuZz12b2lkIDApO3RoaXMuRj12b2lkIDB9OwpPLnByb3RvdHlwZS5GYz1mdW5jdGlvbihhKXt0aGlzLkk9dm9pZCAwO2lmKGE9PXRoaXMuZyl7YT10aGlzLkc7dmFyIGI9YS5nO3RyeXt2YXIgYz1iJiZiLmFjdGl2ZUVsZW1lbnQ7dmFyIGQ9YyYmYy5ub2RlTmFtZT9jOm51bGx9Y2F0Y2goZSl7ZD1udWxsfWQ9ZCYmdGhpcy5IKCkmJmEuY29udGFpbnModGhpcy5IKCksZCk7dGhpcy55YSE9bnVsbCYmKHRoaXMueWE9PXRoaXMuSCgpfHx0aGlzLkEuaGFzKHRoaXMueWEpKXx8ZHx8dGhpcy5JYSYmdGhpcy5JYS55YXx8dGhpcy5wYSghMSl9fTt2YXIgRXM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1LbihhLkcuZyk7YS5yYS54PWIuY2xpZW50WCtjLng7YS5yYS55PWIuY2xpZW50WStjLnl9O08ucHJvdG90eXBlLlVkPWZ1bmN0aW9uKGEpe3ZhciBiPUZzKHRoaXMsYS50YXJnZXQpO3RoaXMueWE9Yjt0aGlzLkQoKTtiIT10aGlzLmcmJih0aGlzLmc9YixHcyh0aGlzLGIpLEhzKHRoaXMpLEVzKHRoaXMsYSkpfTsKdmFyIEZzPWZ1bmN0aW9uKGEsYil7dHJ5e2Zvcig7YiYmIWEuQS5oYXMoYik7KWI9Yi5wYXJlbnROb2RlO3JldHVybiBifWNhdGNoKGMpe3JldHVybiBudWxsfX07Ty5wcm90b3R5cGUuZ2I9ZnVuY3Rpb24oYSl7RXModGhpcyxhKTt0aGlzLlA9ITB9O08ucHJvdG90eXBlLmZiPWZ1bmN0aW9uKGEpe3RoaXMueWE9YT1Gcyh0aGlzLGEudGFyZ2V0KTt0aGlzLlA9ITA7aWYodGhpcy5nIT1hKXt0aGlzLmc9YTt2YXIgYj1uZXcgSXModGhpcy55YSk7dGhpcy5EKCk7R3ModGhpcyxhLGIpO0hzKHRoaXMpfX07dmFyIEhzPWZ1bmN0aW9uKGEpe2lmKGEuZylmb3IodmFyIGIsYz0wO2I9enNbY107YysrKV8uQmQoYi5IKCksYS5nKSYmKGIuSWE9YSxhLkhiPWIpfTsKTy5wcm90b3R5cGUuTmI9ZnVuY3Rpb24oYSl7dmFyIGI9RnModGhpcyxhLnRhcmdldCksYz1Gcyh0aGlzLGEucmVsYXRlZFRhcmdldCk7YiE9YyYmKGI9PXRoaXMueWEmJih0aGlzLnlhPW51bGwpLENzKHRoaXMpLHRoaXMuUD0hMSwhdGhpcy5pc1Zpc2libGUoKXx8YS5yZWxhdGVkVGFyZ2V0JiZfLkJkKHRoaXMuSCgpLGEucmVsYXRlZFRhcmdldCk/dGhpcy5nPXZvaWQgMDp0aGlzLlQoKSl9O08ucHJvdG90eXBlLlVjPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5IKCk7dGhpcy55YSE9YSYmKHRoaXMuRCgpLHRoaXMueWE9YSl9O08ucHJvdG90eXBlLlRjPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuSCgpO3RoaXMueWEhPWJ8fGEucmVsYXRlZFRhcmdldCYmXy5CZChiLGEucmVsYXRlZFRhcmdldCl8fCh0aGlzLnlhPW51bGwsdGhpcy5UKCkpfTsKdmFyIEdzPWZ1bmN0aW9uKGEsYixjKXthLkZ8fChhLkY9cXMoKDAsXy55KShhLmRlLGEsYixjKSxhLlpmKSl9LENzPWZ1bmN0aW9uKGEpe2EuRiYmKF8udi5jbGVhclRpbWVvdXQoYS5GKSxhLkY9dm9pZCAwKX07Ty5wcm90b3R5cGUuVD1mdW5jdGlvbigpe0JzKHRoaXMpPT0yJiYodGhpcy5JPXFzKCgwLF8ueSkodGhpcy5GYyx0aGlzLHRoaXMuZyksdGhpcy53ZikpfTtPLnByb3RvdHlwZS5EPWZ1bmN0aW9uKCl7dGhpcy5JJiYoXy52LmNsZWFyVGltZW91dCh0aGlzLkkpLHRoaXMuST12b2lkIDApfTtPLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7dGhpcy5wYSghMSk7Q3ModGhpcyk7dGhpcy5kZXRhY2goKTt0aGlzLkgoKSYmXy5BZCh0aGlzLkgoKSk7dGhpcy55YT1udWxsO2RlbGV0ZSB0aGlzLkc7Ty5lYS5NLmNhbGwodGhpcyl9O3ZhciBEcz1mdW5jdGlvbihhLGIpe2VuLmNhbGwodGhpcyxhLGIpfTtfLkcoRHMsZW4pOwpEcy5wcm90b3R5cGUuaD1mdW5jdGlvbihhLGIsYyl7Yj1pcCgoYT9fLnNkKGEpOmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQpO2M9Yz9uZXcgdm0oYy50b3ArMTAsYy5yaWdodCxjLmJvdHRvbSxjLmxlZnQrMTApOm5ldyB2bSgxMCwwLDAsMTApO3hzKHRoaXMuZyxhLDgsYyxiLDkpJjQ5NiYmeHModGhpcy5nLGEsOCxjLGIsNSl9O3ZhciBJcz1mdW5jdGlvbihhKXtkbi5jYWxsKHRoaXMsYSw1KX07Xy5HKElzLGRuKTtJcy5wcm90b3R5cGUuaD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmV3IHpsKDEwLDApO3lzKHRoaXMuZWxlbWVudCx0aGlzLmosYSxiLGQsYyw5KSY0OTYmJnlzKHRoaXMuZWxlbWVudCw0LGEsMSxkLGMsNSl9O3ZhciBKcz1mdW5jdGlvbigpe08uY2FsbCh0aGlzKTt0aGlzLmxhPW51bGw7dGhpcy5SPW5ldyBfLkhiKHRoaXMpO3RoaXMuQj10aGlzLmo9dGhpcy5oPXRoaXMud2E9bnVsbDt0aGlzLk89ITB9O18uQihKcyxPKTtfLm09SnMucHJvdG90eXBlO18ubS5rYT1mdW5jdGlvbigpe3RoaXMuTz0hMTt2YXIgYT1fLnhmLnRlc3Qob3EpPyJydGwiOiJsdHIiO3RoaXMuUWIoa20ocHMse1VsOkVxLE9rOkNxLFJsOnhxLGRpcjphLGNqOklxfSkpO3RoaXMuY2xhc3NOYW1lKz0iIFZJcGdKZC15QVdORWItTDdsYmtiIHNraXB0cmFuc2xhdGUiOyhhPSEoIXRoaXMuSCgpfHwhdGhpcy5CKSkmJnRoaXMuUi5OKHdpbmRvdywicmVzaXplIiwoMCxfLnkpKHRoaXMucGIsdGhpcykpO3JldHVybiBhfTtfLm0uZGU9ZnVuY3Rpb24oYSxiKXt0aGlzLmxhPWE7Ty5wcm90b3R5cGUuZGUuY2FsbCh0aGlzLGEsYik7dGhpcy5IKCkuc3R5bGUuZGlzcGxheT0iYmxvY2sifTsKXy5tLlVkPWZ1bmN0aW9uKGEpe2lmKCF0aGlzLk8pe3ZhciBiPUZzKHRoaXMsYS50YXJnZXQpO3RoaXMueWE9Yjt0aGlzLkQoKTtiIT10aGlzLmc/KHRoaXMuZz1iLEdzKHRoaXMsYiksSHModGhpcyksRXModGhpcyxhKSk6R3ModGhpcyxiKX19O18ubS5NPWZ1bmN0aW9uKCl7dGhpcy5SJiZ0aGlzLlIuZGlzcG9zZSgpO3RoaXMuQj10aGlzLmxhPXRoaXMuUj1udWxsO08ucHJvdG90eXBlLk0uY2FsbCh0aGlzKX07Xy5tLnJlPWZ1bmN0aW9uKGEpe2lmKHRoaXMuaXNWaXNpYmxlKCkpe2E9KHRoaXMuRGM9YSk/dGhpcy5sLk46dGhpcy5sLnljO3ZhciBiPV8uc2QodGhpcy5IKCkpO2EuY2FsbCh0aGlzLmwsYiwibW91c2Vkb3duIix0aGlzLk5mLCEwKX1lbHNlIE8ucHJvdG90eXBlLnJlLmNhbGwodGhpcyxhKX07Xy5tLlFiPWZ1bmN0aW9uKGEpe08ucHJvdG90eXBlLlFiLmNhbGwodGhpcyxhKTthJiYodGhpcy5CPXZvKGEpKX07Cl8ubS5wYj1mdW5jdGlvbihhLGIpe3ZhciBjPWhwKGRvY3VtZW50LmJvZHkpLnk7aWYodGhpcy5vKXsodGhpcy5vfHxudWxsKS5nLnkrPWM7Ty5wcm90b3R5cGUucGIuY2FsbCh0aGlzKTt2YXIgZD1wYXJzZUludCh0aGlzLkgoKS5zdHlsZS5sZWZ0LDEwKTthPXBhcnNlSW50KHRoaXMuSCgpLnN0eWxlLnRvcCwxMCktKGE/MDpjKTtiJiYoYj10aGlzLlhifHx7fSxhLT1iLnRvcHx8MTAsZC09Yi5sZWZ0fHwxMCk7YS09YzsodGhpcy5vfHxudWxsKS5nLnk9YTsodGhpcy5vfHxudWxsKS5nLng9ZDtjPW5ldyB6bChkLGEpO2VwKHRoaXMuSCgpLGMpfX07Xy5tLnBhPWZ1bmN0aW9uKGEpe08ucHJvdG90eXBlLnBhLmNhbGwodGhpcyxhKX07Xy5tLk5hPWZ1bmN0aW9uKGEpe3RoaXMuaD1hfTtfLm0ubmE9ZnVuY3Rpb24oYSl7dGhpcy5qPWF9O18ubS5LYT1mdW5jdGlvbihhKXthPWE/Xy5BYyhhKToiIjt0aGlzLkI/Xy5DZCh0aGlzLkIsYSk6Ty5wcm90b3R5cGUuS2EuY2FsbCh0aGlzLGEpfTsKXy5tLkphPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaH07Xy5tLm9hPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07Xy5tLnZkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQj9Fbyh0aGlzLkIpOk8ucHJvdG90eXBlLnZkLmNhbGwodGhpcyl9O18ubS5OYj1mdW5jdGlvbihhKXt0aGlzLk98fE8ucHJvdG90eXBlLk5iLmNhbGwodGhpcyxhKX07Xy5tLlVjPWZ1bmN0aW9uKGEpe3RoaXMuT3x8Ty5wcm90b3R5cGUuVWMuY2FsbCh0aGlzLGEpfTtfLm0uVGM9ZnVuY3Rpb24oYSl7dGhpcy5PfHxPLnByb3RvdHlwZS5UYy5jYWxsKHRoaXMsYSl9O3ZhciBLcz1mdW5jdGlvbigpe3RoaXMuaD1uZXcgTWFwO3RoaXMuZz1XcShjcil9LE9zPWZ1bmN0aW9uKGEpe3ZhciBiPWduKCJnb29nLWd0LXRodW1iVXBCdXR0b24iKSxjPWEuaCxkPWEuZztiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKExzKGMpPT09TXMpZ3IoZCk7ZWxzZXt2YXIgZT1kcihkLDUpO2VyKGQsZSk7ZnIoZSw1KX1OcyhjLE1zKX0sITEpfSxRcz1mdW5jdGlvbihhKXt2YXIgYj1nbigiZ29vZy1ndC10aHVtYkRvd25CdXR0b24iKSxjPWEuaCxkPWEuZztiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKExzKGMpPT09UHMpZ3IoZCk7ZWxzZXt2YXIgZT1kcihkLDYpO2VyKGQsZSk7ZnIoZSw2KX1OcyhjLFBzKX0sITEpfSxUcz1mdW5jdGlvbihhKXt2YXIgYj1nbigiZ29vZy1ndC10dCIpLGM9Yi5kYXRhc2V0LGQ9Z24oImdvb2ctZ3Qtdm90aW5nSW5wdXRTcmNMYW5nIiksZT1nbigiZ29vZy1ndC12b3RpbmdJbnB1dFRyZ0xhbmciKSwKZj1nbigiZ29vZy1ndC12b3RpbmdJbnB1dFNyY1RleHQiKSxnPWduKCJnb29nLWd0LXZvdGluZ0lucHV0VHJnVGV4dCIpLGg9dm8oKSxrPWduKCJnb29nLWd0LXRyYW5zbGF0aW9uIiksbD1hLmgsbj1hLmc7d2luZG93LmRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZ29vZy1ndC1wb3B1cFNob3duIixmdW5jdGlvbihxKXt2YXIgcD1kcihuLDQpO2VyKG4scCk7ZnIocCw0KTtxPXEuZGV0YWlsO3A9U3RyaW5nKHEuR2QpO3E9cS5YaTtjLmlkPXA7cD1sLmdldChwKXx8UnM7U3MocCk7Yi5zdHlsZS53aWR0aD1NYXRoLm1heChNYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aC0xNiw1MzYpLDI4OCkrInB4IjtwPXEuSmEoKXx8IiI7dmFyIHI9cS5vYSgpfHwiIjtkLnZhbHVlPXA7ZS52YWx1ZT1yO2YudmFsdWU9cS52ZCgpO2cudmFsdWU9cS53YTtrJiYoay5pbm5lclRleHQ9cS53YSk7Yi5sYW5nPW9xO2gubGFuZz1wO2smJihrLmxhbmc9cik7Xy54Zi50ZXN0KHApJiYoaC5jbGFzc0xpc3QuYWRkKCJydGwiKSwKaC5kaXI9InJ0bCIpO2smJl8ueGYudGVzdChyKSYmKGsuY2xhc3NMaXN0LmFkZCgicnRsIiksay5kaXI9InJ0bCIpfSwhMSl9LFNzPWZ1bmN0aW9uKGEpe3ZhciBiPWduKCJnb29nLWd0LXRodW1iVXBCdXR0b24iKSxjPWduKCJnb29nLWd0LXRodW1iVXBJY29uIiksZD1nbigiZ29vZy1ndC10aHVtYlVwSWNvbkZpbGxlZCIpLGU9Z24oImdvb2ctZ3QtdGh1bWJEb3duQnV0dG9uIiksZj1nbigiZ29vZy1ndC10aHVtYkRvd25JY29uIiksZz1nbigiZ29vZy1ndC10aHVtYkRvd25JY29uRmlsbGVkIik7Yi5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsImZhbHNlIik7Yy5zdHlsZS5kaXNwbGF5PSIiO2Quc3R5bGUuZGlzcGxheT0ibm9uZSI7ZS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsImZhbHNlIik7Zi5zdHlsZS5kaXNwbGF5PSIiO2cuc3R5bGUuZGlzcGxheT0ibm9uZSI7c3dpdGNoKGEpe2Nhc2UgTXM6Yi5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsInRydWUiKTtjLnN0eWxlLmRpc3BsYXk9CiJub25lIjtkLnN0eWxlLmRpc3BsYXk9IiI7YnJlYWs7Y2FzZSBQczplLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwidHJ1ZSIpLGYuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5zdHlsZS5kaXNwbGF5PSIifWduKCJnb29nLWd0LXZvdGluZ0lucHV0Vm90ZSIpLnZhbHVlPWF9LExzPWZ1bmN0aW9uKGEpe3ZhciBiPWduKCJnb29nLWd0LXR0IikuZGF0YXNldDtyZXR1cm4gYS5nZXQoYi5pZCl9LE5zPWZ1bmN0aW9uKGEsYil7THMoYSk9PT1iJiYoYj1Scyk7U3MoYik7dmFyIGM9Z24oImdvb2ctZ3QtdHQiKS5kYXRhc2V0O2Euc2V0KGMuaWQsYik7Z24oImdvb2ctZ3Qtdm90aW5nRm9ybSIpLnN1Ym1pdCgpfSxScz0oMCkudG9TdHJpbmcoKSxNcz0oMSkudG9TdHJpbmcoKSxQcz0oMikudG9TdHJpbmcoKTt2YXIgVXM9ZnVuY3Rpb24oYSl7dGhpcy5BPWE7dGhpcy5sPXRoaXMuaD10aGlzLm89dGhpcy5qPS0xO3RoaXMuZz0hMTt0aGlzLkM9MDt0aGlzLkQ9IiI7dGhpcy5GPTB9O1VzLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe2lmKCF0aGlzLmcpe3RoaXMuZz0hMDt2YXIgYT1bXSxiO2ZvcihiPTA7YjwxNTtiKyspYVtiXT1YcVswfE1hdGgucmFuZG9tKCkqNjJdO3RoaXMuRD1hLmpvaW4oIiIpO3RoaXMuQz0wO3RoaXMubD10aGlzLmg9dGhpcy5vPXRoaXMuaj0tMTt0aGlzLkY9RGF0ZS5ub3coKTtxcyh0aGlzLkIsMUU0LHRoaXMpfX07VXMucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLmcmJih0aGlzLmc9ITEsVnModGhpcykpfTtVcy5wcm90b3R5cGUuQj1mdW5jdGlvbigpe3RoaXMuZyYmKFZzKHRoaXMpLHFzKHRoaXMuQiwxRTMsdGhpcykpfTsKdmFyIFZzPWZ1bmN0aW9uKGEpe3ZhciBiPWEuQS5sLGM9YS5BLkEsZD1hLkEuaixlPWEuQS5vO2lmKGEuaiE9Ynx8YS5vIT1jfHxhLmghPWR8fGEubCE9ZSl7dmFyIGY9e307Zi5jdD1iO2YuY3Y9YztmLmN0cz1kO2YuY3ZzPWU7Zi5zaWQ9YS5EO2Yuc2VxPWEuQysrO2YudGF0PURhdGUubm93KCktYS5GO2lmKGEuaj49MHx8YS5vPj0wfHxhLmg+PTB8fGEubD49MClmLnB0PWEuaixmLnB2PWEubyxmLnB0cz1hLmgsZi5wdnM9YS5sO1FtKCJ0ZV92IixmKTthLmo9YjthLm89YzthLmg9ZDthLmw9ZX19O3ZhciBXcz1mdW5jdGlvbigpe3RoaXMubz10aGlzLmo9dGhpcy5BPXRoaXMubD0wO3RoaXMuZz1bXTt0aGlzLmg9Xy52LkludGVyc2VjdGlvbk9ic2VydmVyIT1udWxsP25ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoMCxfLnkpKHRoaXMuQix0aGlzKSk6bnVsbH07V3MucHJvdG90eXBlLmF0dGFjaD1mdW5jdGlvbihhLGIpe3RoaXMuais9Yjt2YXIgYz10aGlzLmcubGVuZ3RoO3RoaXMuZy5wdXNoKGIpO2ZvcihiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBkPWFbYl07eW8oZCk/KGRbWHNdPWMsdGhpcy5sKz1FbyhkKS5sZW5ndGgsdGhpcy5oJiZ0aGlzLmgub2JzZXJ2ZShkKSk6dGhpcy5GZihkLm5vZGVUeXBlKX19O1dzLnByb3RvdHlwZS5kZXRhY2g9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07eW8oYyk/KGNbWHNdPXZvaWQgMCx0aGlzLmgmJnRoaXMuaC51bm9ic2VydmUoYykpOnRoaXMuRmYoYy5ub2RlVHlwZSl9fTsKV3MucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5vPXRoaXMuaj10aGlzLkE9dGhpcy5sPTA7dGhpcy5nPVtdfTtXcy5wcm90b3R5cGUuQj1mdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGM9YVtiXTtpZihjLmludGVyc2VjdGlvblJhdGlvPjAmJmMudGFyZ2V0W1hzXSE9bnVsbCl7dGhpcy5BKz1FbyhjLnRhcmdldCkubGVuZ3RoO3ZhciBkPWMudGFyZ2V0W1hzXTt0aGlzLm8rPXRoaXMuZ1tkXTt0aGlzLmdbZF09MDtkZWxldGUgYy50YXJnZXRbWHNdfX19O0RyLmF0dGFjaCgzNjU0NixXcy5wcm90b3R5cGUse0ZmOjF9KTt2YXIgWHM9Il9ndF8iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyKTt2YXIgWXM9e307WXMuYWRkPWtuO1lzLkRrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1obihhKTt0eXBlb2YgYj09PSJzdHJpbmciP18udmEoZCxiKTpBcnJheS5pc0FycmF5KGIpJiYoZD1sbihkLGIpKTt0eXBlb2YgYyE9PSJzdHJpbmcifHxfLnRhKGQsYyk/QXJyYXkuaXNBcnJheShjKSYmam4oZCxjKTpkLnB1c2goYyk7YS5jbGFzc05hbWU9ZC5qb2luKCIgIil9O1lzLmVuYWJsZT1vbjtZcy5nZXQ9aG47WXMuaGFzPW5uO1lzLnJlbW92ZT1tbjtZcy5zZXQ9ZnVuY3Rpb24oYSxiKXthLmNsYXNzTmFtZT1ifTtZcy5obT1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWhuKGEpLGU9ITEsZj0wO2Y8ZC5sZW5ndGg7ZisrKWRbZl09PWImJihkLnNwbGljZShmLS0sMSksZT0hMCk7ZSYmKGQucHVzaChjKSxhLmNsYXNzTmFtZT1kLmpvaW4oIiAiKSk7cmV0dXJuIGV9O1lzLnRvZ2dsZT1mdW5jdGlvbihhLGIpe3ZhciBjPSFubihhLGIpO29uKGEsYixjKTtyZXR1cm4gY307dmFyIFpzPWZ1bmN0aW9uKGEpe18uaGIuY2FsbCh0aGlzKTthPWF8fHt9O3RoaXMuZz1KbChhKTt0aGlzLmcuaGM9YS5oYyE9PXZvaWQgMD9hLmhjOjE7dGhpcy5nLnZlPSEhYS52ZTt0aGlzLmcuYmg9cGFyc2VJbnQoYS5iaCwxMCl8fDMwMDt0aGlzLmcudHJhY2tWaXNpYmlsaXR5PWEudHJhY2tWaXNpYmlsaXR5fHwhMTt0aGlzLmcuYXBpS2V5PWEuYXBpS2V5fHwiIjt0aGlzLkM9MDt0aGlzLmw9e307dGhpcy5CPW51bGw7dGhpcy5GPXRoaXMuRD0iIjt0aGlzLm89bmV3IF8uSGIodGhpcyk7dGhpcy5BPXRoaXMuaj10aGlzLmg9bnVsbDt0aGlzLmcudHJhY2tWaXNpYmlsaXR5JiZfLnYuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIhPW51bGwmJih0aGlzLmo9bmV3IFdzLHRoaXMuQT1uZXcgVXModGhpcy5qKSk7dGhpcy5oPW5ldyBKcyh7U2k6dGhpcy5nLlNpfSk7dGhpcy5oLndmPTMwMDt0aGlzLmguWmY9MUUzO3RoaXMuaC5yZSghMCk7dGhpcy5vLk4odGhpcy5oLCJzaG93IiwoMCxfLnkpKHRoaXMub2csCnRoaXMpKTt0aGlzLm8uTih0aGlzLmgsImhpZGUiLCgwLF8ueSkodGhpcy5uZyx0aGlzKSk7dGhpcy5oLmthKCk7YT1uZXcgS3M7Z24oImdvb2ctZ3QtdGh1bWJVcEJ1dHRvbiIpJiYoT3MoYSksUXMoYSksVHMoYSkpfTtfLkIoWnMsXy5oYik7dmFyICRzPWZ1bmN0aW9uKGEpe2EuQSYmYS5BLnN0b3AoKTtmb3IodmFyIGIgaW4gYS5sKXt2YXIgYz1hLGQ9Yy5sW2JdO2lmKGQpe2MuaiYmYy5qLmRldGFjaChkLkFhKTtmb3IodmFyIGU9MDtlPGQuQWEubGVuZ3RoOysrZSlkLkFhW2VdJiZjLmRldGFjaChkLkFhW2VdKTtkZWxldGUgYy5sW2JdfX1hLmomJmEuai5yZXNldCgpfTtfLm09WnMucHJvdG90eXBlO18ubS5hdHRhY2g9ZnVuY3Rpb24oYSxiKXtiJiYoYi5HZD1hLHRoaXMuaC5hdHRhY2goYikpfTtfLm0uZGV0YWNoPWZ1bmN0aW9uKGEpe2EmJnRoaXMuaC5kZXRhY2goYSl9OwpfLm0ub2c9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmgubGE7YT1hP2EuR2Q6dm9pZCAwO2lmKGEhPT12b2lkIDApe3ZhciBiPXRoaXMubFthXTthdCh0aGlzLHRoaXMuQiwhMSk7dGhpcy5CPWE7YXQodGhpcyxhKTt0aGlzLmguTmEoYi5UaSk7dGhpcy5oLm5hKGIuVmkpO3ZhciBjPWIuWjt0aGlzLmgud2E9YyYmXy5BYyhjKTt0aGlzLmguS2EoYi50ZXh0KX1hPW5ldyBDdXN0b21FdmVudCgiZ29vZy1ndC1wb3B1cFNob3duIix7ZGV0YWlsOntHZDphLFhpOnRoaXMuaH19KTt3aW5kb3cuZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KGEpfTtfLm0ubmc9ZnVuY3Rpb24oKXthdCh0aGlzLHRoaXMuQiwhMSl9O18ubS5NPWZ1bmN0aW9uKCl7JHModGhpcyk7dGhpcy5oJiYodGhpcy5oLmRpc3Bvc2UoKSx0aGlzLmg9bnVsbCk7dGhpcy5vJiYodGhpcy5vLmRpc3Bvc2UoKSx0aGlzLm89bnVsbCk7Xy5oYi5wcm90b3R5cGUuTS5jYWxsKHRoaXMpfTsKdmFyIGF0PWZ1bmN0aW9uKGEsYixjKXtpZihhPWEubFtiXSlmb3IoYz1jfHx0eXBlb2YgYz09InVuZGVmaW5lZCIsYj0wO2I8YS5BYS5sZW5ndGg7KytiKWlmKGEuQWFbYl0pWXNbYz8iYWRkIjoicmVtb3ZlIl0oYS5BYVtiXSwiVklwZ0pkLXlBV05FYi1WSXBnSmQtZm1jbVMtc241NFEiKX07dmFyIGJ0PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKWlmKGFbYl0mJmFbYl0ubm9kZSlyZXR1cm4gYVtiXS5ub2RlO3JldHVybiBudWxsfSxmdD1mdW5jdGlvbihhKXt2YXIgYj1idChhKTtpZighYilyZXR1cm4gbnVsbDt2YXIgYz1bXSxkPVtdLGU9W107Yj1uZXcgZHMoYiwhMCk7dmFyIGY9YVthLmxlbmd0aC0xXS5ub2RlLGc9MCxoPSExO2Rve2IubmV4dCgpO3ZhciBrPWIubm9kZSgpO2lmKCFrKWJyZWFrO3ZhciBsPWIuZy5nLG49Yi5kZXB0aCgpO2ZvcihsPT0xJiYtLW47ZzxhLmxlbmd0aCYmIWFbZ10ubm9kZTspKytnO2s9PWFbZ10ubm9kZXx8IWgmJmw9PTEmJihrIT1udWxsJiZrLnByZXZpb3VzU2libGluZz09bnVsbD8wOiFjdChkdChrKSkpPyhsPWV0KGspLGQucHVzaCh7bm9kZTpsLEthOmZ1bmN0aW9uKCl7fX0pLGVbZC5sZW5ndGgtMV09bixrLnBhcmVudE5vZGUmJmsucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCxrKSxrPT1hW2ddLm5vZGUmJgooY1tnKytdPWQubGVuZ3RoLTEsaD0hMCkpOmg9ITF9d2hpbGUoayE9Zik7cmV0dXJue3plOmUsR2k6YyxkaTpkfX0sY3Q9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPW51bGwmJlhyW2EudGFnTmFtZV19LGR0PWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIG51bGw7Zm9yKGE9YS5wcmV2aW91c1NpYmxpbmc7YSE9bnVsbCYmYSE9bnVsbCYmYS5ub2RlVHlwZT09MyYmXy5BYyhFbyhhKSk9PSIiOylhPWEucHJldmlvdXNTaWJsaW5nO3JldHVybiBhfSxqdD1mdW5jdGlvbihhLGIsYyxkLGUsZil7Xy5oYi5jYWxsKHRoaXMpO3RoaXMuZz1bXTtmb3IodmFyIGc9MDtnPGEubGVuZ3RoOysrZyl0aGlzLmcucHVzaCgibm9kZVR5cGUiaW4gYVtnXT9ndChhW2ddKTphW2ddKSxodChhW2ddLm5vZGUpO3RoaXMubD1iO3RoaXMuRD1kfHwwO3RoaXMuUj1lfHwwO3RoaXMuQz1jO3RoaXMuQj1mfHxudWxsO3RoaXMuSz10aGlzLkc9dGhpcy5MPSExO3RoaXMubz1bXTt0aGlzLkE9W107dGhpcy5oPVtdOwp0aGlzLk89W107bmV3IF8uSGIodGhpcyk7dGhpcy5qPXRoaXMuST0hMX0sZ3Q7Xy5CKGp0LF8uaGIpOwp2YXIgbXQ9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuITE7aWYoYS5ub2RlVHlwZSE9M3x8IV8uU2MpcmV0dXJuIGt0IGluIGEmJiEhYVtrdF07aWYoIWEucGFyZW50Tm9kZSlyZXR1cm4hMDtpZighKGx0IGluIGEucGFyZW50Tm9kZSkpcmV0dXJuITE7dmFyIGI9YS5wYXJlbnROb2RlW2x0XTtpZighYnx8IWJbYS5ub2RlVmFsdWVdKXJldHVybiExO2I9YlthLm5vZGVWYWx1ZV07Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2MpaWYoYltjXT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sbnQ9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4iIjtpZihhLnRhZ05hbWU9PSJUSVRMRSIpcmV0dXJuIFN0cmluZyhkb2N1bWVudC50aXRsZSk7YS5ub2RlVHlwZT09Mz9iPSJub2RlVmFsdWUiOmJ8fChiPSJ2YWx1ZSIpO3JldHVybiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoYik/U3RyaW5nKGEuZ2V0QXR0cmlidXRlKGIpKTp0eXBlb2YgYVtiXT09PSJzdHJpbmciP1N0cmluZyhhW2JdKToKIiJ9O2p0LnByb3RvdHlwZS5tYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmx9Owp2YXIgb3Q9ZnVuY3Rpb24oYSxiLGMpe2I9e1BmOmIsaGU6YyxVOltdfTthLmgucHVzaChiKTtyZXR1cm4gYn0scXQ9ZnVuY3Rpb24oYSl7aWYoIWEuaiYmYS5MJiYhYS5HJiYhYS5LKXthLkc9ITA7dmFyIGI7aWYoYj1wdChhLmcpKXtiPWEuZzt2YXIgYz1hLmg7aWYoYi5sZW5ndGg9PTEmJmJbMF0mJmJbMF0ueGUpe2Zvcih2YXIgZD1bXSxlPTA7ZTxjLmxlbmd0aDsrK2UpZm9yKHZhciBmPTA7ZjxjW2VdLlUubGVuZ3RoOysrZilkLnB1c2goY1tlXS5VW2ZdLlopO2JbMF0uS2EoZC5qb2luKCIgIiksYlswXS5ub2RlKTtiPSEwfWVsc2UgYj0hMTtiPSFifWlmKGImJihiPWZ0KGEuZykpKXthLkE9Yi5HaTthLm89Yi5kaTtkPWEuZztlPWEuQTtmPWEubzt2YXIgZz1iLnplO2M9W107Zm9yKHZhciBoPTA7aDxkLmxlbmd0aDsrK2gpaWYoY1toXT1bXSxkW2hdLm5vZGUmJmVbaF0hPT12b2lkIDApZm9yKHZhciBrPTA7azxmLmxlbmd0aDsrK2spaWYoIShnW2tdPmdbZVtoXV0pKXtpZihnW2tdPT0KZ1tlW2hdXSl7aWYoZltrXS5ub2RlLnBhcmVudE5vZGUhPWZbZVtoXV0ubm9kZS5wYXJlbnROb2RlKWNvbnRpbnVlfWVsc2V7Zm9yKHZhciBsPWdbZVtoXV0tZ1trXSxuPWZbZVtoXV0ubm9kZS5wYXJlbnROb2RlO2wtLSYmbiYmbiE9ZltrXS5ub2RlLnBhcmVudE5vZGU7KW49bi5wYXJlbnROb2RlO2lmKG4hPWZba10ubm9kZS5wYXJlbnROb2RlKWNvbnRpbnVlfWNbaF0ucHVzaChrKX1kPWEuZztlPWEuaDtmPS0xO2ZvcihnPWUubGVuZ3RoLTE7Zz49MDstLWcpZm9yKGg9ZVtnXSxrPWguVS5sZW5ndGgtMTtrPj0wOy0taylpZihsPWguVVtrXSwhKGwuWDwwKSYmZFtsLlhdJiZkW2wuWF0ubm9kZSlpZihmPDApbC5YYz1pcihjW2wuWF0pLGY9Y1tsLlhdW2NbbC5YXS5sZW5ndGgtMV07ZWxzZSBmb3Iobj1jW2wuWF0ubGVuZ3RoLTE7bj49MDstLW4paWYoY1tsLlhdW25dPD1mKXtsLlhjPWlyKGNbbC5YXS5zbGljZSgwLG4rMSkpO2Y9Y1tsLlhdW25dO2JyZWFrfWZvcihjPWU9MDtjPGEuaC5sZW5ndGg7KytjKXtkPQphLmhbY107Zj1hLmc7Zz1kO2g9Yi56ZTtrPWEuQTtsPSIiO2ZvcihuPTA7bjxnLlUubGVuZ3RoOysrbil7dmFyIHE9Zy5VW25dO2wrPXEuWjtpZihxLlg8MCl7dmFyIHA9LTEscj0tMSx0PWtbZy5VW24tMV0uWF07dCE9PXZvaWQgMCYmKHA9aFt0XSk7bjxnLlUubGVuZ3RoLTEmJih0PWtbZy5VW24rMV0uWF0sdCE9PXZvaWQgMCYmKHI9aFt0XSkpO2lmKHA+PTB8fHI+PTApYTppZih0PShwPDB8fHI8cCkmJm48Zy5VLmxlbmd0aC0xLHA9ZixyPXEscT1nLlVbdD9uKzE6bi0xXSwhKHEuWD49cC5sZW5ndGh8fHBbcS5YXS5ub2RlPT1udWxsKSl7cD1yLlo7ci5aPSIiO2lmKC9eICskLy50ZXN0KHApJiYocj10P3EuWi5jaGFyQ29kZUF0KDApOnEuWi5jaGFyQ29kZUF0KHEuWi5sZW5ndGgtMSksMzU4NDw9ciYmcjw9MzcxMXx8MTIyODg8PXImJnI8PTEyMzUxfHwxMjM1Mjw9ciYmcjw9MTI1NDN8fDEyNzg0PD1yJiZyPD0xMjc5OXx8MTk5Njg8PXImJnI8PTQwOTU5fHw2NTI4MDw9ciYmcjw9CjY1NTE5KSlicmVhayBhO3EuWj10P3ArcS5aOnEuWitwfX19Zj1sO2c9YS5nO2g9ZDtrPWEubztsPWIuemU7bj1hLkE7cT1bXTtmb3IocD0wO3A8aC5VLmxlbmd0aCYmIShlPj1rLmxlbmd0aCk7KytwKWlmKHI9aC5VW3BdLHIuWGMmJiEoci5YPDApJiZnW3IuWF0ubm9kZSYmci5aKWlmKGU9PW5bci5YXXx8ZSBpbiByLlhjJiYoIShlKzEgaW4gci5YYyl8fGUrMSE9bltyLlhdKSl7aWYoa1tlXSYma1tlXS5ub2RlKXt0PWV0KGtbZV0ubm9kZSk7cS5wdXNoKHQpO2Zvcih2YXIgQT1rW2VdLm5vZGUsRD1sW25bci5YXV0tbFtlXSxFPXQsYmE9Z1tyLlhdLm5vZGUucGFyZW50Tm9kZSxaPUU7YmEmJkQtLTspWj1iYS5jbG9uZU5vZGUoITEpLFouYXBwZW5kQ2hpbGQoRSksYmE9YmEucGFyZW50Tm9kZSxFPVo7QS5hcHBlbmRDaGlsZChaKTtBPWdbci5YXS5ub2RlO2dbci5YXS5yZD9nW3IuWF0uemZ8fHQuYXBwZW5kQ2hpbGQoQSk6KEE9Z1tyLlhdLm5vZGUuY2xvbmVOb2RlKCExKSxBLmlkJiYKKEEuaWQ9IiIpLHQuYXBwZW5kQ2hpbGQoQSkpO2dbci5YXS5LYShyLlosQSl9fWVsc2UrK2UsLS1wO2c9cTtuPWEuZztxPWQ7aD1hLkM7aWYocS5QZiloPXEuUGY7ZWxzZXtsPW4ubGVuZ3RoO2s9LTE7Zm9yKHA9MDtwPHEuVS5sZW5ndGg7KytwKXI9cS5VW3BdLlgscj49MCYmbltyXSYmbltyXS5ub2RlJiYoaz1NYXRoLm1heChrLHIpLGw9TWF0aC5taW4obCxyKSk7Zm9yKG49IiI7bDw9azsrK2wpaFtsXSYmKG4rPWhbbF0pO2g9bn1sPWE7bj1nO3E9aDtpZihsLkIpe2lmKGwuQi5nLmhjIT0zKXtnPWwuTztoPWcucHVzaDtrPWwuQjtkPWQuaGU7ZD1rLmxbKytrLkNdPXtpZDprLkMudG9TdHJpbmcoKSxSazpsLHRleHQ6cSxmbTpkfHxxLFo6ZixUaTprLkQsVmk6ay5GLEFhOm59O2ZvcihmPTA7ZjxuLmxlbmd0aDsrK2YpbltmXSYmay5hdHRhY2goZC5pZCxuW2ZdKTtrLmomJmsuai5hdHRhY2gobixxLmxlbmd0aCk7ay5BJiZrLkEuc3RhcnQoKTtoLmNhbGwoZyxkLmlkKX19ZWxzZSBmb3IoZD0KMDtkPG4ubGVuZ3RoOysrZCluW2RdLnRpdGxlPXF9Yj1hLmc7Zm9yKGM9MDtjPGIubGVuZ3RoOysrYyliW2NdLm5vZGUmJiFiW2NdLnJkJiZfLkFkKGJbY10ubm9kZSk7Yj1hLmc7Yz1hLm87YT1hLkE7Zm9yKGU9ZD0wO2U8Yy5sZW5ndGg7KytlKWlmKGY9Y1tlXS5ub2RlKXtmb3IoO2Q8Yi5sZW5ndGgmJmU+YVtkXTspZCsrOyhkPj1iLmxlbmd0aHx8ZSE9YVtkXSkmJiFmLmZpcnN0Q2hpbGQmJihfLkFkKGYpLGNbZV0ubm9kZT1udWxsKX19fX07Cmp0LnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKCl7aWYodGhpcy5HKWlmKHRoaXMuRz0hMSx0aGlzLkImJiRzKHRoaXMuQiksdGhpcy5PPVtdLHB0KHRoaXMubyksdGhpcy5nLmxlbmd0aD09MSYmdGhpcy5nWzBdLnhlKXRoaXMuZ1swXS5LYSh0aGlzLkNbMF0sdGhpcy5nWzBdLm5vZGUpO2Vsc2V7Zm9yKHZhciBhPTAsYj0wO2I8dGhpcy5vLmxlbmd0aDsrK2Ipe3ZhciBjPXRoaXMub1tiXS5ub2RlO2lmKGMpe2Zvcig7YTx0aGlzLmcubGVuZ3RoJiZiPnRoaXMuQVthXTspe3ZhciBkPWErKzt0aGlzLmdbZF0ubm9kZSYmKHJ0KHRoaXMuZ1tkXS5ub2RlKSx0aGlzLmdbZF0ubm9kZT1udWxsKX1pZihhPHRoaXMuZy5sZW5ndGgmJmI9PXRoaXMuQVthXSYmdGhpcy5nW2FdLm5vZGUpe3RoaXMuZ1thXS56Znx8KF8uemQoYyksYy5hcHBlbmRDaGlsZCh0aGlzLmdbYV0ubm9kZSkpO3RoaXMuZ1thXS5LYSh0aGlzLkNbYV0sdGhpcy5nW2FdLm5vZGUpO2ErKzt2YXIgZT1jLnBhcmVudE5vZGU7CmlmKGUmJmUubm9kZVR5cGUhPTExKWlmKGMucmVtb3ZlTm9kZSljLnJlbW92ZU5vZGUoITEpO2Vsc2V7Zm9yKDtkPWMuZmlyc3RDaGlsZDspZS5pbnNlcnRCZWZvcmUoZCxjKTtfLkFkKGMpfX1lbHNlIF8uQWQoYyl9fXRoaXMubz1bXX19O2p0LnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy5oYi5wcm90b3R5cGUuTS5jYWxsKHRoaXMpO3RoaXMucmVzdG9yZSgpO2Zvcih2YXIgYT0wO2E8dGhpcy5nLmxlbmd0aDsrK2EpdGhpcy5nW2FdLm5vZGUmJnJ0KHRoaXMuZ1thXS5ub2RlKTt0aGlzLmc9bnVsbH07CnZhciBodD1mdW5jdGlvbihhKXtpZihhKWlmKGEubm9kZVR5cGU9PTMmJl8uU2Mpe2x0IGluIGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlW2x0XXx8KGEucGFyZW50Tm9kZVtsdF09e30pO3ZhciBiPWEucGFyZW50Tm9kZVtsdF07YlthLm5vZGVWYWx1ZV18fChiW2Eubm9kZVZhbHVlXT1bXSk7Yj1iW2Eubm9kZVZhbHVlXTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylpZihiW2NdPT1hKXJldHVybjtiLnB1c2goYSl9ZWxzZSBhW2t0XT0xfSxydD1mdW5jdGlvbihhKXtpZighYXx8YS5ub2RlVHlwZT09MyYmXy5TYyl7dmFyIGI9YS5wYXJlbnROb2RlO2lmKGImJmx0IGluIGIpe3ZhciBjPWJbbHRdO2lmKGMmJmEmJmNbYS5ub2RlVmFsdWVdKXt2YXIgZD1jW2Eubm9kZVZhbHVlXTtpZihkKWZvcih2YXIgZT0wO2U8ZC5sZW5ndGg7KytlKWlmKGRbZV09PWEpe2Quc3BsaWNlKGUsMSk7YnJlYWt9ZC5sZW5ndGg9PTAmJmRlbGV0ZSBjW2Eubm9kZVZhbHVlXX1pZihjJiZ3cihjKSl0cnl7ZGVsZXRlIGJbbHRdfWNhdGNoKGYpe2JbbHRdPQoiIn19fWVsc2UgaWYoa3QgaW4gYSl0cnl7ZGVsZXRlIGFba3RdfWNhdGNoKGYpe2Fba3RdPSIifX0scHQ9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpdHJ5e2FbYl0ubm9kZSYmIWFbYl0ubm9kZS5wYXJlbnROb2RlJiYoYVtiXS5ub2RlPW51bGwpfWNhdGNoKGMpe2FbYl0ubm9kZT1udWxsfWZvcihiPWEubGVuZ3RoLTE7Yj49MCYmIWFbYl0ubm9kZTstLWIpO2EubGVuZ3RoPWIrMTtyZXR1cm4gYS5sZW5ndGh9LGV0PWZ1bmN0aW9uKGEpe2E9YS5vd25lckRvY3VtZW50P2Eub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb250Iik6Xy53ZChkb2N1bWVudCwiZm9udCIpO2h0KGEpO2Euc3R5bGUudmVydGljYWxBbGlnbj0iaW5oZXJpdCI7Xy5vaShfLlppKHBxLDIpKSYmKGEuZGlyPSJhdXRvIik7cmV0dXJuIGF9LHN0PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1uZXcgU2V0LGM9MDtjPGEuZy5sZW5ndGg7YysrKXt2YXIgZD1hLmdbY10ubm9kZTtkIT1udWxsJiYKYi5hZGQoZCl9cmV0dXJuIGJ9LHR0PWZ1bmN0aW9uKCl7dGhpcy5oPXt9O3RoaXMuZz17fX07dHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmhbYV0hPW51bGx8fHRoaXMuZ1thXSE9bnVsbHx8YiYmKGEgaW4gdGhpcy5ofHxhIGluIHRoaXMuZyl9O3R0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhLGIpe3RoaXMuZ1thXT1ifTt0dC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEpe2RlbGV0ZSB0aGlzLmdbYV07ZGVsZXRlIHRoaXMuaFthXX07dHQucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5nW2FdO2J8fChiPXRoaXMuaFthXSx0aGlzLmdbYV09Yik7cmV0dXJuIGJ9O3ZhciBrdD0iX2d0XyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIpLGx0PSJfZ3RuXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIpOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGMpe2RvY3VtZW50LnRpdGxlPWN9dmFyIGI9e307Z3Q9ZnVuY3Rpb24oYyxkKXtpZihjLnRhZ05hbWU9PSJUSVRMRSIpcmV0dXJue25vZGU6YyxLYTphLHJkOiEwLHpmOiEwLHhlOiEwfTtpZihjLm5vZGVUeXBlPT0zKXJldHVybntub2RlOmMsS2E6ZnVuY3Rpb24oZSxmKXtfLkNkKGYsZSl9fTtkfHwoZD0idmFsdWUiKTtiW2RdfHwoYltkXT1mdW5jdGlvbihlLGYpe2Yuc2V0QXR0cmlidXRlJiZmLnNldEF0dHJpYnV0ZShkLGUpO3R5cGVvZiBlPT09InN0cmluZyImJihmW2RdPWUpfSk7Yz17bm9kZTpjLEthOmJbZF0scmQ6ITB9O2QhPSJ2YWx1ZSImJihjLnhlPSEwKTtyZXR1cm4gY319KSgpOwp2YXIgdXQ9ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kLmZpcnN0Q2hpbGQmJmQuZmlyc3RDaGlsZC5ub2RlVHlwZT09Mz9kLmZpcnN0Q2hpbGQubm9kZVZhbHVlOkVvKGQpO2Q9e1g6YyxaOnBvKGQpfTthLnB1c2goZCk7YltjXT9iW2NdLmVuZD1kOmJbY109e3N0YXJ0OmQsZW5kOmR9O3JldHVybiBkfSx2dD1mdW5jdGlvbihhKXtmb3IodmFyIGIsYz1hLmZpcnN0Q2hpbGQ7YztjPWIpYj1jLm5leHRTaWJsaW5nLGMubm9kZVR5cGUhPTMmJihjPT1hLmZpcnN0Q2hpbGQ/YS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGMsYSk6eG8oYyxhKSx2dChjKSl9O3ZhciB3dD1mdW5jdGlvbigpe3RoaXMuZz1bXX07d3QucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXt0aGlzLmcucHVzaChhKX07dmFyIHh0PWZ1bmN0aW9uKCl7dGhpcy5nPVtdfTtfLkIoeHQsd3QpO3h0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7aWYoYSlmb3IoO2EoKTspO307eHQuZz1mdW5jdGlvbigpe3JldHVybiBXcSh4dCl9O3ZhciB6dD1mdW5jdGlvbihhKXt0aGlzLmc9W107dGhpcy5oPS41O3l0KHRoaXMsYSk7dGhpcy5sPTA7dGhpcy5qPSEwO3RoaXMubz0oMCxfLnkpKHRoaXMuQSx0aGlzKX07Xy5CKHp0LHd0KTt2YXIgeXQ9ZnVuY3Rpb24oYSxiKXtiPjE/YS5oPTE6YjwuMDAxP2EuaD0uMDAxOmImJihhLmg9Yil9O3p0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7d3QucHJvdG90eXBlLmFkZC5jYWxsKHRoaXMsYSk7dGhpcy5qJiZBdCh0aGlzKX07dmFyIEF0PWZ1bmN0aW9uKGEpe2Euaj0hMTt3aW5kb3cuc2V0VGltZW91dChhLm8sTWF0aC5taW4oYS5sLDVFMykpfTsKenQucHJvdG90eXBlLkE9ZnVuY3Rpb24oKXt2YXIgYT0obmV3IERhdGUpLmdldFRpbWUoKTtkb3t0aGlzLmcubGVuZ3RoJiYodGhpcy5nWzBdJiZ0aGlzLmdbMF0oKXx8dGhpcy5nLnNoaWZ0KCkpO3ZhciBiPSEhdGhpcy5nLmxlbmd0aDt2YXIgYz05NSp0aGlzLmgrNTt2YXIgZD0obmV3IERhdGUpLmdldFRpbWUoKS1hfXdoaWxlKGImJmQ8Yyk7dGhpcy5sPU1hdGguY2VpbChkKigxL3RoaXMuaC0xKSkrMTtiP0F0KHRoaXMpOnRoaXMuaj0hMH07dmFyIEJ0PWZ1bmN0aW9uKGEsYil7dGhpcy5EPWF8fG51bGw7dGhpcy5JPWJ8fHh0LmcoKTt0aGlzLkI9dGhpcy5BPXRoaXMuRz1udWxsO3RoaXMubD10aGlzLmo9ITE7dGhpcy5vPW51bGw7dGhpcy5nPVtdO3RoaXMuaD0wfSxDdD1mdW5jdGlvbihhLGIpe2Euanx8KGEuRz1iKX0sRHQ9ZnVuY3Rpb24oYSxiLGMpe2EuQT1jPygwLF8ueSkoYixjKTpifSxFdD1mdW5jdGlvbihhLGIsYyl7YS5CPWM/KDAsXy55KShiLGMpOmJ9LEZ0PWZ1bmN0aW9uKGEsYil7YS5qfHwoYS5qPSEwLGEuRj1iLGEuaCsrLGEubz1hLkcsYS5DKCkpfTtCdC5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbigpe3RoaXMuaCsrO3RoaXMuaj0hMTt0aGlzLmc9W119Owp2YXIgR3Q9ZnVuY3Rpb24oYSl7aWYoIWEuailyZXR1cm4gbnVsbDtmb3IodmFyIGI9ITEsYz0wO2M8YS5nLmxlbmd0aDsrK2MpaWYoYS5nW2NdLnRhcmdldD09PWEpe2EuZ1tjXS5yZWFkeT0hMTthLmdbY10uaGc9YS5oKzE7Yj0hMDticmVha31ifHxhLmcucHVzaCh7dGFyZ2V0OmEscmVhZHk6ITEsaGc6YS5oKzF9KTtyZXR1cm4oMCxfLnkpKGEuQyxhLGEsYS5oKzEpfSxIdD1mdW5jdGlvbihhKXtpZighYS5qKXJldHVybiEwO2Zvcih2YXIgYj0wO2I8YS5nLmxlbmd0aDsrK2IpaWYoYS5nW2JdLnRhcmdldD09PWEmJmEuZ1tiXS5oZz09YS5oKXJldHVybiBhLmdbYl0ucmVhZHk7cmV0dXJuITB9OwpCdC5wcm90b3R5cGUuQz1mdW5jdGlvbihhLGIpe2lmKHRoaXMuail7aWYoYSlmb3IodmFyIGM9MDtjPHRoaXMuZy5sZW5ndGg7KytjKWlmKHRoaXMuZ1tjXS50YXJnZXQ9PT1hKXt0aGlzLmdbY10ucmVhZHk9ITA7YnJlYWt9dGhpcy5sfHx0aGlzLkkuYWRkKCgwLF8ueSkodGhpcy5XLHRoaXMsYnx8dGhpcy5oKSl9fTsKQnQucHJvdG90eXBlLlc9ZnVuY3Rpb24oYSl7aWYodGhpcy5oIT1hKXJldHVybiExO2E9dGhpcy5vO2lmKGE9PUl0KXJldHVybiB0aGlzLnN0b3AoKSx0aGlzLkEmJnRoaXMuQS5jYWxsKHRoaXMuRCx0aGlzLHRoaXMuRiksITE7dGhpcy5sPSEwO3RyeXt2YXIgYj1hLmNhbGwodGhpcy5ELHRoaXMsdGhpcy5GKTtpZighYil0aHJvdyBFcnJvcigpO31jYXRjaChjKXt0aGlzLnN0b3AoKTthPWM7aWYodGhpcy5CKXRoaXMuQi5jYWxsKHRoaXMuRCxhLHRoaXMsdGhpcy5GKTtlbHNlIHRocm93IGE7cmV0dXJuITF9ZmluYWxseXt0aGlzLmw9ITF9YiE9SnQmJih0aGlzLm89Yix0aGlzLmgrKyx0aGlzLkMoKSk7cmV0dXJuITF9O3ZhciBKdD1mdW5jdGlvbigpe30sSXQ9ZnVuY3Rpb24oKXt9O3ZhciBLdD1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEuY2xhc3NOYW1lPT0ic3RyaW5nIj9hLmNsYXNzTmFtZTphLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIifSxMdD1mdW5jdGlvbihhLGIpe3R5cGVvZiBhLmNsYXNzTmFtZT09InN0cmluZyI/YS5jbGFzc05hbWU9YjphLnNldEF0dHJpYnV0ZSYmYS5zZXRBdHRyaWJ1dGUoImNsYXNzIixiKX0sTXQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jbGFzc0xpc3Q/YS5jbGFzc0xpc3QuY29udGFpbnMoYik6Xy50YShhLmNsYXNzTGlzdD9hLmNsYXNzTGlzdDpLdChhKS5tYXRjaCgvXFMrL2cpfHxbXSxiKX0sTnQ9ZnVuY3Rpb24oYSxiKXtpZihhLmNsYXNzTGlzdClhLmNsYXNzTGlzdC5hZGQoYik7ZWxzZSBpZighTXQoYSxiKSl7dmFyIGM9S3QoYSk7THQoYSxjKyhjLmxlbmd0aD4wPyIgIitiOmIpKX19LE90PWZ1bmN0aW9uKGEsYil7YS5jbGFzc0xpc3Q/YS5jbGFzc0xpc3QucmVtb3ZlKGIpOk10KGEsYikmJgpMdChhLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChhLmNsYXNzTGlzdD9hLmNsYXNzTGlzdDpLdChhKS5tYXRjaCgvXFMrL2cpfHxbXSxmdW5jdGlvbihjKXtyZXR1cm4gYyE9Yn0pLmpvaW4oIiAiKSl9O3ZhciBRdD1mdW5jdGlvbihhLGIsYyxkLGUpe2I9Ynx8e307dGhpcy5XPWV8fFtdO3RoaXMuQT1bXTt0aGlzLkY9W107UHQodGhpcyxhfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYi5WZj09PXZvaWQgMHx8ISFiLlZmKTt0aGlzLkM9Y3x8anQ7dGhpcy5EPWIubGk7dGhpcy5qPXRoaXMuZz10aGlzLm89dGhpcy5kYz1udWxsO3RoaXMuQj0hIWIuYmo7dGhpcy5MPSEhYi5aaTt0aGlzLks9dGhpcy5CPzI3OjEzO3RoaXMuST0hMDt0aGlzLkc9W107dGhpcy5sPW5ldyBCdCh0aGlzLGQpfSxSdD1mdW5jdGlvbihhLGIsYyxkKXthLmwuanx8KGI9e2RnOmIsYWc6YyxBYTpbXSxRZjpbXSxyYjpbXSx0ZXh0TGVuZ3RoOjAsc2l6ZTowLGNvbnRpbnVvdXM6ITB9LGEuZGM9bnVsbCxDdChhLmwsYS5oKSxEdChhLmwsZCksRXQoYS5sLCgwLF8ueSkoZnVuY3Rpb24oZSl7dGhpcy51aShlKTtkKCl9LGEpKSxGdChhLmwsYikpfSxTdD1mdW5jdGlvbihhLGIpe3JldHVybiBhLkFhLmxlbmd0aD4wPwpuZXcgYihhLkFhLGEucmIuam9pbigiIiksYS5RZixhLnRleHRMZW5ndGgsYS5zaXplKTpudWxsfSxUdD1mdW5jdGlvbihhLGIpe2lmKCFhLmopcmV0dXJuIGEuZGM9U3QoYixhLkMpLCEwO2lmKCFiLmNvbnRpbnVvdXMmJmIuQWEubGVuZ3RoPjApcmV0dXJuIGEuZGM9U3QoYixhLkMpLCEwO2IuY29udGludW91cz1hLmouS2Y7YTp7dmFyIGM9YS5qO3ZhciBkPWEuSztpZihiLnNpemU+Yi5hZ3x8Yi50ZXh0TGVuZ3RoPmIuZGcpYz0hMTtlbHNle3ZhciBlPWMuc2l6ZSxmPWMudGV4dC5sZW5ndGg7aWYoYi5BYS5sZW5ndGghPTAmJihlKz1iLkFhLmxlbmd0aD09MT9iLnNpemUrZCtkOmIuc2l6ZStkLGYrPWIudGV4dExlbmd0aCxlPmIuYWd8fGY+Yi5kZykpe2M9ITE7YnJlYWsgYX1iLnNpemU9ZTtiLnRleHRMZW5ndGg9ZjtiLkFhLnB1c2goYy5ub2RlKTtiLlFmLnB1c2goYy50ZXh0KTtkPWIuQWEubGVuZ3RoLTE7ZD09MD9iLnJiLnB1c2goYy5MZCk6KGQ9PTEmJihiLnJiWzBdPSI8YSBpPTA+IisKYi5yYlswXSsiPC9hPiIpLGIucmIucHVzaCgiPGEgaT0iK2QrIj4iKSxiLnJiLnB1c2goYy5MZCksYi5yYi5wdXNoKCI8L2E+IikpO2M9ITB9fWlmKGMpcmV0dXJuIGEuaj1udWxsLCExO2EuZGM9U3QoYixhLkMpO3JldHVybiEwfSxVdD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bnQoYixjKTtkJiZfLkFjKGpvKGQpKSYmYS5HLnB1c2goe25vZGU6YixZZzpjLHRleHQ6ZH0pfTsKUXQucHJvdG90eXBlLmg9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO2lmKHRoaXMuaiYmVHQodGhpcyxiKSlyZXR1cm4gSXQ7aWYoIXRoaXMuZyl7dGhpcy5JPSEhdGhpcy5BLmxlbmd0aDtpZighdGhpcy5BLmxlbmd0aCYmKGE9dGhpcy5HLnNoaWZ0KCkpKXJldHVybiB0aGlzLmo9e0tmOiExLG5vZGU6Z3QoYS5ub2RlLGEuWWcpLHRleHQ6YS50ZXh0LExkOmxvKGEudGV4dCksc2l6ZTp0aGlzLkI/Xy5HYihhLnRleHQpLmxlbmd0aDphLnRleHQubGVuZ3RofSxiLmNvbnRpbnVvdXM9ITEsVHQodGhpcyxiKSxJdDthPXRoaXMuQS5zaGlmdCgpfHx0aGlzLkYuc2hpZnQoKTtpZighYSlyZXR1cm4gdGhpcy5qPW51bGwsVHQodGhpcyxiKSxJdDt0aGlzLm89W2EuWWldO3RoaXMuZz1uZXcgZHMoYS5yb290KX10aGlzLmcubmV4dCgpO2lmKHRoaXMuZy5kb25lKXJldHVybiB0aGlzLmc9bnVsbCxiLmNvbnRpbnVvdXM9ITEsdGhpcy5oO2E9dGhpcy5nLm5vZGUoKTt2YXIgZD10aGlzLmcuZy5nOwppZihkPT0tMSlyZXR1cm4gVnQodGhpcyksV3QoYSl8fChiLmNvbnRpbnVvdXM9ITEpLHRoaXMuaDtYdCh0aGlzLGEpO2Q9ZD09MTt2YXIgZT0hIWEmJihhLm5vZGVUeXBlPT0zJiZ0eXBlb2YgYS5ub2RlVmFsdWU9PT0ic3RyaW5nInx8YS50YWdOYW1lPT0iVElUTEUiJiZ0eXBlb2YgYS52YWx1ZT09PSJzdHJpbmcifHxhLnRhZ05hbWU9PSJURVhUQVJFQSImJk10KGEsInRyYW5zbGF0ZSIpfHxhLnRhZ05hbWU9PSJJTlBVVCImJihZclthLnR5cGVdfHxNdChhLCJ0cmFuc2xhdGUiKSkpO2lmKChlfHxkKSYmdGhpcy5JJiYhWXQoYSkpcmV0dXJuIFB0KHRoaXMsYSxadCh0aGlzKSwhMCksYnModGhpcy5nLmcpLFZ0KHRoaXMpLHRoaXMuaDtpZihkJiZadCh0aGlzKSYmKHRoaXMuTCYmVXQodGhpcyxhLCJ0aXRsZSIpLFV0KHRoaXMsYSwiYWx0IiksVXQodGhpcyxhLCJwbGFjZWhvbGRlciIpLFV0KHRoaXMsYSwiYXJpYS1sYWJlbCIpLFV0KHRoaXMsYSwiYXJpYS1wbGFjZWhvbGRlciIpLFV0KHRoaXMsCmEsImFyaWEtcm9sZWRlc2NyaXB0aW9uIiksVXQodGhpcyxhLCJhcmlhLXZhbHVldGV4dCIpLGVzKHRoaXMuZykpKWZvcih2YXIgZj1hLmZpcnN0Q2hpbGQ7Zjspe2lmKGYubm9kZVR5cGU9PTMpe3ZhciBnPWYubm9kZVZhbHVlLnNwbGl0KCJcbiIpO2lmKGcubGVuZ3RoPjJ8fGcubGVuZ3RoPT0yJiZfLkFjKGdbMF0pIT0iIiYmXy5BYyhnWzFdKSE9IiIpe2Yubm9kZVZhbHVlPWdbMF07Zm9yKHZhciBoPTE7aDxnLmxlbmd0aDsrK2gpe3ZhciBrPV8uc2QoYSkuY3JlYXRlRWxlbWVudCgiZm9udCIpO3RoaXMuVy5wdXNoKGspO3hvKGssZik7Zj1rO3hvKF8uc2QoYSkuY3JlYXRlVGV4dE5vZGUoIlxuIitnW2hdKSxmKTtmPWYubmV4dFNpYmxpbmd9fX1mPWYubmV4dFNpYmxpbmd9YS5zaGFkb3dSb290JiZBcnJheS5mcm9tKGEuc2hhZG93Um9vdC5jaGlsZE5vZGVzKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe1B0KGMscixadChjKSl9KTtpZihlKXticyh0aGlzLmcuZyk7aWYoWnQodGhpcykpe3ZhciBsPQpudChhKTtpZihfLkFjKGpvKGwpKSYmKHRoaXMuaj17S2Y6ITAsbm9kZTpndChhKSx0ZXh0OmwsTGQ6bG8obCksc2l6ZTp0aGlzLkI/Xy5HYihsKS5sZW5ndGg6bC5sZW5ndGh9LFR0KHRoaXMsYikpKXJldHVybiBWdCh0aGlzKSxJdH1WdCh0aGlzKTtyZXR1cm4gdGhpcy5ofWlmKGQpe2lmKCR0KGEpfHwhYS5maXJzdENoaWxkJiZhLnRhZ05hbWUhPSJJRlJBTUUiJiZhLnRhZ05hbWUhPSJSVUJZIilyZXR1cm4gYi5jb250aW51b3VzPWIuY29udGludW91cyYmISFYclthLnRhZ05hbWVdLGJzKHRoaXMuZy5nKSxWdCh0aGlzKSx0aGlzLmg7aWYoYS50YWdOYW1lPT0iUlVCWSIpe3RyeXtsPV8uQyhhLmNoaWxkTm9kZXMpO2Zvcih2YXIgbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBxPW4udmFsdWU7cS5ub2RlVHlwZSE9MyYmUHQodGhpcyxxLFp0KHRoaXMpKX19Y2F0Y2gocil7fWJzKHRoaXMuZy5nKTtWdCh0aGlzKTtyZXR1cm4gdGhpcy5ofWlmKGEudGFnTmFtZT09IklGUkFNRSIpe3RyeXtpZighYS5zcmMubWF0Y2goL2h0dHBzPzpcL1wvLyl8fApfLkNiKGEuc3JjLm1hdGNoKF8ucmYpWzNdfHxudWxsKT09d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKXt2YXIgcD16byhhKS5kb2N1bWVudEVsZW1lbnQ7cCYmUHQodGhpcyxwLFp0KHRoaXMpKX19Y2F0Y2gocil7fWIuY29udGludW91cz0hMTticyh0aGlzLmcuZyk7VnQodGhpcyk7cmV0dXJuIHRoaXMuaH1adCh0aGlzKSYmV3QoYSk/dGhpcy5EJiZhLnRhZ05hbWU9PSJBIiYmYS5ocmVmJiZ0aGlzLkQoYSk6Yi5jb250aW51b3VzPSExO3JldHVybiB0aGlzLmh9YnModGhpcy5nLmcpO1Z0KHRoaXMpO3JldHVybiB0aGlzLmh9Owp2YXIgJHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG10KGEpfHxhLm5vZGVUeXBlIT0zJiYoIWEudGFnTmFtZXx8V3JbYS50YWdOYW1lXXx8WHJbYS50YWdOYW1lXXx8TXQoYSwic2tpcHRyYW5zbGF0ZSIpKX0sYXU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5zZChhKTtyZXR1cm4gYi5kZWZhdWx0VmlldyYmYi5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlP2IuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpOmEuY3VycmVudFN0eWxlfSxZdD1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09Mz8hMDphLm5vZGVUeXBlIT0xPyExOmEub2Zmc2V0V2lkdGgmJmEub2Zmc2V0SGVpZ2h0PyEwOihhPWF1KGEpLCEhYSYmYS5kaXNwbGF5IT0ibm9uZSImJmEudmlzaWJpbGl0eSE9ImhpZGRlbiIpfSxXdD1mdW5jdGlvbihhKXtpZihhLm5vZGVUeXBlPT0zKXJldHVybiEwO2lmKGEubm9kZVR5cGUhPTEpcmV0dXJuITE7dmFyIGI9YXUoYSk7cmV0dXJuISFWclthLnRhZ05hbWVdJiYKKCFifHwhYi5kaXNwbGF5fHxiLmRpc3BsYXk9PSJpbmxpbmUiKX0sUHQ9ZnVuY3Rpb24oYSxiLGMsZCl7KGQ/YS5GOmEuQSkucHVzaCh7cm9vdDpiLFlpOmM9PT12b2lkIDB8fGN9KX0sWnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGEub1thLm8ubGVuZ3RoLTFdfSxYdD1mdW5jdGlvbihhLGIpe2I9IW10KGIpJiYoYi5ub2RlVHlwZT09JG4mJlp0KGEpfHwhKE10KGIsIm5vdHJhbnNsYXRlIil8fGIuYXR0cmlidXRlcyYmYi5hdHRyaWJ1dGVzLnRyYW5zbGF0ZSYmYi5hdHRyaWJ1dGVzLnRyYW5zbGF0ZS52YWx1ZT09Im5vIikmJihNdChiLCJ0cmFuc2xhdGUiKXx8ISFiLmF0dHJpYnV0ZXMmJiEhYi5hdHRyaWJ1dGVzLnRyYW5zbGF0ZSYmYi5hdHRyaWJ1dGVzLnRyYW5zbGF0ZS52YWx1ZT09InllcyJ8fFp0KGEpKSk7YS5vLnB1c2goYil9LFZ0PWZ1bmN0aW9uKGEpe2Euby5wb3AoKX0sYnU9e307RHIuYXR0YWNoKDU3NjIsUXQucHJvdG90eXBlLHt1aToxfSk7dmFyIGN1PWZ1bmN0aW9uKCl7Xy51LmNhbGwodGhpcyk7dGhpcy5nPVtdfTtfLkIoY3UsXy51KTtjdS5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbigpe3FzKHRoaXMuaCwwLHRoaXMpfTtjdS5wcm90b3R5cGUuaD1mdW5jdGlvbigpe2Zvcih2YXIgYT0wO2E8dGhpcy5nLmxlbmd0aDsrK2EpXy5BZCh0aGlzLmdbYV0pO3RoaXMuZz1bXX07Y3UucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtfLnUucHJvdG90eXBlLk0uY2FsbCh0aGlzKTt0aGlzLnJlc3RvcmUoKX07dmFyIGR1PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBTZXQ7YS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3lvKGMpP2IuYWRkKGMpOihjPWMucGFyZW50RWxlbWVudHx8bnVsbCxjIT1udWxsJiZiLmFkZChjKSl9KTtyZXR1cm4gYn07dmFyIGV1PWZ1bmN0aW9uKGEpe3RoaXMuaD0hMDt0aGlzLmw9YTt0aGlzLmo9ITE7dGhpcy5nPVtdfTtldS5wcm90b3R5cGUubWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLmpvaW4oIiIpfTt2YXIgZnU9ZnVuY3Rpb24oYSxiKXt0aGlzLm89YTt0aGlzLmw9ITA7dGhpcy5qPWI7dGhpcy5nPW51bGw7dGhpcy5oPTB9LGd1PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEubD8oYigoMCxfLnkpKGEuQSxhKSxhLm8sYS5qPyJlbiI6IiIpLCEwKTohMX07ZnUucHJvdG90eXBlLkE9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZz1iO3RoaXMuaD1jO2EoKX07dmFyIGh1PWZ1bmN0aW9uKGEsYil7dGhpcy5sPWE7dGhpcy5EPSEhYjt0aGlzLmc9dGhpcy5DPTA7dGhpcy5vPXRoaXMuaj0tMTt0aGlzLkE9dGhpcy5CPXRoaXMuaD0wfSxrdT1mdW5jdGlvbihhLGIsYyl7YS5EJiYoYi09OSk7Zm9yKHZhciBkPSIiLGU9MCxmPWEuQztmPGEubC5sZW5ndGg7KytmKXt2YXIgZz1hLmwuY2hhckF0KGYpLGg9Zy5jaGFyQ29kZUF0KDApO2UrKzthLmgrPWEuRD9oPD0xMjc/aDw9MzJ8fGl1W2hdPzM6MTpoPD0yMDQ3fHxoPj01NTI5NiYmaDw9NTYzMTl8fGg+PTU2MzIwJiZoPD01NzM0Mz82Ojk6MTtoPWEuaD49YjtqdVtnXT8oYS5vPWYsYS5CPWEuaCxoPWh8fGU+Yyk6Zz09IiAiJiYoYS5qPWYsYS5BPWEuaCxoPWh8fGU+Yyk7aWYoaClyZXR1cm4gYS5vPj0wPyhkPWEubC5zdWJzdHJpbmcoYS5nLGEubysxKSxhLmgtPWEuQixhLmc9YS5vKzEsYS5vPj1hLmo/KGEuaj0tMSxhLkE9MCk6YS5BLT1hLkIsYS5vPS0xLGEuQj0wKTphLmo+PTA/KGQ9YS5sLnN1YnN0cmluZyhhLmcsCmEuaisxKSxhLmgtPWEuQSxhLmc9YS5qKzEsYS5qPS0xLGEuQT0wKTooZD1hLmwuc3Vic3RyaW5nKGEuZyxmKzEpLGEuaD0wLGEuZz1mKzEsYS5vPWEuaj0tMSxhLkE9YS5CPTApLGEuQz1mKzEsZH1hLmc8YS5sLmxlbmd0aCYmKGQ9YS5sLnN1YnN0cmluZyhhLmcpLGEuZz1hLmwubGVuZ3RoKTtyZXR1cm4gZH0sanU9aXIoWyIuIiwiLCIsIjoiLCJcXD8iLCIhIl0pLGx1PVsiLiIsIj8iLCIhIl0saXU9aXIoWzM0LDM1LDM2LDM3LDM4LDQzLDQ0LDQ3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDkxLDkyLDkzLDk0LDk2LDEyMywxMjQsMTI1LDEyN10pO3ZhciB0bT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIodG0sXy5KKTt2YXIgbXU9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKG11LF8uSik7dmFyIG51PWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihudSxfLkopO3ZhciBvdT1bMSwyXTt2YXIgcHU9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKHB1LF8uSik7cHUucHJvdG90eXBlLlJhPWZ1bmN0aW9uKCl7cmV0dXJuIF8uZGoodGhpcywxKX07dmFyIHF1PV8uS2kocHUpO3ZhciBydTt2YXIgc3U9ZnVuY3Rpb24oKXt0aGlzLmhhPW5ldyBfLldmfSx0dT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7cmV0dXJuIF8uVmkoZnVuY3Rpb24oZSl7Yz1jbShhbSgkbChuZXcgWmwsImh0dHBzIiksYi5ob3N0KSxiLnBhdGgpO2Q9bmV3IFByb21pc2UoZnVuY3Rpb24oZixnKXtfLk5kKGEuaGEsInN1Y2Nlc3MiLGZ1bmN0aW9uKCl7Zih7Y29kZTpfLmhnKGEuaGEpLGhlYWRlcnM6TG4oYS5oYSksYm9keTpfLmlnKGEuaGEpfSl9KTtfLk5kKGEuaGEsImVycm9yIixmdW5jdGlvbigpe2coe2NvZGU6Xy5oZyhhLmhhKSxoZWFkZXJzOkxuKGEuaGEpLGJvZHk6Xy5pZyhhLmhhKX0pfSk7Xy5OZChhLmhhLCJ0aW1lb3V0IixmdW5jdGlvbigpe2coe2NvZGU6Xy5oZyhhLmhhKSxoZWFkZXJzOkxuKGEuaGEpLGJvZHk6Xy5pZyhhLmhhKX0pfSl9KTthLmhhLnNlbmQoYyxiLm1ldGhvZCxiLmJvZHksYi5oZWFkZXJzKTtyZXR1cm4gZS5yZXR1cm4oZCl9KX07dmFyIHJuPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihybixfLkopO3ZhciBxbj1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIocW4sXy5KKTt2YXIgcG49ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5mayhhLDEsYil9O3ZhciB3dT1mdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmO3JldHVybiBfLlZpKGZ1bmN0aW9uKGcpe2lmKGcuZz09MSl7Yj1ydXx8KHJ1PXF1KCdbMixudWxsLFtbW1siYXV0b3B1c2giLFsiYXV0b3B1c2gtdHJhbnNsYXRlLXBhLnNhbmRib3guZ29vZ2xlYXBpcy5jb20iXV0sWyJzdGFnaW5nIixbImRhaWx5MS10cmFuc2xhdGUtcGEuc2FuZGJveC5nb29nbGVhcGlzLmNvbSJdXSxbInByb2QiLFsidHJhbnNsYXRlLXBhLmdvb2dsZWFwaXMuY29tIl1dLFsicHJvZC1ldSIsWyJ0cmFuc2xhdGUtcGEuZXUucmVwLmdvb2dsZWFwaXMuY29tIl1dLFsicHJvZC11cyIsWyJ0cmFuc2xhdGUtcGEudXMucmVwLmdvb2dsZWFwaXMuY29tIl1dXV1dXScpKTtjPW1xO25xJiYoYz1jKyItIitucSk7dmFyIGg9YnAoYixudSwzKTt2YXIgaz1oLko7az1JbChIbChrKSxrLHZvaWQgMCxvdSk7aD1icChoLG11LGs9PT0xPzE6LTEpO2s9aC5KO3ZhciBsPWtbXy5IXXwwO2g9dW0oaCxrLGwsXy5XZyhoLGwpKS5nZXQoYyk7CmQ9Xy5OKGgsMSk7aD1uZXcgJHA7az1zbShhLDEsXy5haigpKTtoPUdsKGgsMSxrLG5tKS5OYShhLkphKCkpLm5hKGEub2EoKSk7az1uZXcgYXE7aD1fLkwoaywxLGgpO2g9c24oaCwyLHRxKTtfLk0ocHEsNykmJl8uZWooaCw0LCEwKTtlPWg7Zy5GKDIpO3JldHVybiBnLmgodnUoZCxlKSw0KX1pZihnLmchPTIpcmV0dXJuIGY9Zy5qLGcucmV0dXJuKHRuKGYpKTtnLkQoKTtyZXR1cm4gZy5yZXR1cm4oUHJvbWlzZS5yZWplY3QoRXJyb3IoIkFhIikpKX0pfSx2dT1mdW5jdGlvbihhLGIpe3ZhciBjPXh1LGQsZSxmLGc7cmV0dXJuIF8uVmkoZnVuY3Rpb24oaCl7aWYoaC5nPT0xKXJldHVybiBkPXtob3N0OmEscGF0aDoiL3YxL3RyYW5zbGF0ZUh0bWwiLG1ldGhvZDoiUE9TVCIsaGVhZGVyczp7IlgtZ29vZy1hcGkta2V5IjoiQUl6YVN5QVRCWGFqdnpRTFRESEVRYmNwcTBJaGUwdldESG1PNTIwIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbitwcm90b2J1ZiJ9LGJvZHk6Xy5XaihiKX0sCmU9Yy5nKCksaC5GKDIpLGguaCh0dShlLGQpLDQpO2lmKGguZyE9MilyZXR1cm4gZj1oLmosaC5yZXR1cm4oY3EoZi5ib2R5KSk7Zz1oLkQoKTtyZXR1cm4gaC5yZXR1cm4oUHJvbWlzZS5yZWplY3QoZykpfSl9O3ZhciB4dT1uZXcgZnVuY3Rpb24oKXt0aGlzLmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHN1fX0seXU9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9LHp1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO3JldHVybiBfLlZpKGZ1bmN0aW9uKGYpe2lmKGYuZz09MSlyZXR1cm4gc20oYiwxLF8uYWooKSkubGVuZ3RoPT09MD9mLnJldHVybihuZXcgcW4pOl8uTShwcSw4KT9mLnJldHVybih3dShiKSk6Zi5oKGEuZy50cmFuc2xhdGUoY3x8ZnVuY3Rpb24oKXt9LHNtKGIsMSxfLmFqKF8uV2gpKSxiLkphKCksYi5vYSgpLDAsITEpLDIpO2Q9Zi5qO2U9ZC5tYXAodW4pO3JldHVybiBmLnJldHVybihwbihuZXcgcW4sZSkpfSl9O3ZhciBBdT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoQXUsXy5KKTt2YXIgQnU9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEF1O3JldHVybiBHbChiLDEsYSxubSl9O0F1LnByb3RvdHlwZS5KYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywyKX07QXUucHJvdG90eXBlLk5hPWZ1bmN0aW9uKGEpe3JldHVybiBzbih0aGlzLDIsYSl9O0F1LnByb3RvdHlwZS5vYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywzKX07QXUucHJvdG90eXBlLm5hPWZ1bmN0aW9uKGEpe3JldHVybiBzbih0aGlzLDMsYSl9O3ZhciBDdT1mdW5jdGlvbihhLGIsYyxkLGUsZil7dGhpcy5CPWR8fGZ1bmN0aW9uKCl7fTt0aGlzLlA9Znx8ZnVuY3Rpb24oKXt9O3RoaXMuUj0hIWU7dGhpcy5qPWEuZy5JZjt0aGlzLmw9MDt0aGlzLkk9ZnVuY3Rpb24oKXt9O3RoaXMuRD1jO3RoaXMuRj10aGlzLmg9dGhpcy5vPTA7dGhpcy5nPW51bGw7dGhpcy5XPTA7dGhpcy5sYT0hMTt0aGlzLlQ9YS5nLkdmO3RoaXMuSz1bXTt0aGlzLnFiPTA7dGhpcy5MPWEuZy5LZDt0aGlzLkE9YS5sKCk7dGhpcy53YT10aGlzLlI/MTo2O3RoaXMuSWE9YS5nLldmO3RoaXMucWE9Yjt0aGlzLkM9W107dGhpcy5PPWF9O0N1LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgYT0wO2E8dGhpcy5DLmxlbmd0aDsrK2EpdGhpcy5DW2FdLnN0b3AoKTtmb3IoYT0wO2E8dGhpcy5LLmxlbmd0aDsrK2EpVHIodGhpcy5PLHRoaXMuS1thXSl9Owp2YXIgRHU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0wO2EuST0oMCxfLnkpKGZ1bmN0aW9uKCl7KytjPT10aGlzLkMubGVuZ3RoJiZiKCl9LGEpfSxFdT1mdW5jdGlvbihhLGIsYyl7YS5CPWZ1bmN0aW9uKCl7fTthLnFhPWI7YS5nPW51bGw7YS5xYj0wO2EuQz1bXTthLkk9ZnVuY3Rpb24oKXt9O2EuRD1jfSxGdT1mdW5jdGlvbihhLGIsYyl7aWYoYS5oPT0wJiYoYS5oPWI/M0UzOmEuQSwhY3x8Yzw9YS5BKSl7YS5vPWEuaDtyZXR1cm59ZG8gYj1hLmgsYS5oPGEuQSYmKGEuaCo9YS53YSxhLmg+YS5BJiYoYS5oPWEuQSkpO3doaWxlKGIhPWEuaCYmYyYmYS5oPGMpO2Eubz1hLmh9LEd1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YiE9bnVsbCxkPSFjJiYhYS5sYTsoZHx8YykmJmEuQigxMDAsZCxiKX0sSHU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuTD9hLmcuUjphLmcubWEoKS5sZW5ndGh9LEl1PWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBRdChhLnFhLnNoaWZ0KCkse2JqOmEuTCxsaTpiLApWZjohMCxaaTohIWN9LGZ1bmN0aW9uKCl7dmFyIGY9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gbmV3IGp0KGYuc2hpZnQoKSxmLnNoaWZ0KCksZi5zaGlmdCgpLGYuc2hpZnQoKSxmLnNoaWZ0KCksYyxkKX0sYS5ELGUpfSxLdT1mdW5jdGlvbihhLGIsYyl7aWYoYS5UPjAmJmIubGIoKT49YS5UKXJldHVybiEwO2lmKEh1KGEpPmEuaCl7aWYoYi5sYigpPjApcmV0dXJuITA7RnUoYSxjLEh1KGEpKTtmb3IodmFyIGQ9YS5nLm1hKCksZT1uZXcgaHUoZCxhLkwpLGY7Zj1rdShlLGEuaCxhLmopOylpZihsdS5pbmRleE9mKGYuY2hhckF0KGYubGVuZ3RoLTEpKTwwJiZiLksrKyxiLmwucHVzaChuZXcgZnUoW2ZdLCExKSksYS5sKz1mLmxlbmd0aCxhLmotPWYubGVuZ3RoLGEuajw9MCl7Yi5GPWQuc3Vic3RyaW5nKGUuZyk7YnJlYWt9ZWxzZSBGdShhLGMpO0p1KGIsYS5nLCEwKTthLmc9bnVsbDtyZXR1cm4hMH1pZihIdShhKT5hLm8pcmV0dXJuITA7SnUoYiwKYS5nLCEwKTthLm8tPUh1KGEpK2EuSWE7YS5sKz1hLmcuRDthLmotPWEuZy5EO2EuZz1udWxsO3JldHVybiExfSxMdT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz17WmE6MH07Yy5aYTxhLmxlbmd0aDtjPXtaYTpjLlphfSxjLlphKyspYVtjLlphXS5sZW5ndGg+MSYmYVtjLlphXVsxXT09PTIwMD9iLnB1c2guYXBwbHkoYixfLiRiKGFbYy5aYV1bMF0udG9TdHJpbmcoKS5zcGxpdCgiJmx0O2V4dHJhX2lkXzEmZ3Q7IikubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm5bZS50cmltKCksYVtkLlphXVsxXV19fShjKSkpKTpiLnB1c2goYVtjLlphXSk7cmV0dXJuIGJ9LE11PWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGssbCxuO3JldHVybiBfLlZpKGZ1bmN0aW9uKHEpe3N3aXRjaChxLmcpe2Nhc2UgMTp2YXIgcD1wcTtpZihfLmJqKHAsaXEsNikpe3ZhciByPV8uYmoocCxpcSw2KSx0PV8uTShyLDEpO3A9Xy5NKHAsMyl8fHQ/KHQ/c20ociw0LF8uYWooKSk6CnNtKHAsNCxfLmFqKCkpKS5pbmNsdWRlcyhkLnRvTG93ZXJDYXNlKCkrIl8iK2UudG9Mb3dlckNhc2UoKSk6ITF9ZWxzZSBwPSExO2Y9cDtpZihmKXt2YXIgQT1BPT09dm9pZCAwPzNFMzpBO2lmKHA9Xy5iaihwcSxpcSw2KSlwPV8uYmoocHEsaXEsNikscD1fLk0ocCwxKTtpZihwKXtwPV8uYmoocHEsaXEsNik7QT1fLmdrKHAsMyk7cD1fLmdrKHAsMik7cj1bXTtmb3IodD0wO3Q8Yy5sZW5ndGg7dCsrKXt2YXIgRD1bY1t0XV0sRT1jW3RdLmxlbmd0aDtpZihjW3RdLnNwbGl0KCIgIikubGVuZ3RoPD1wKWZvcig7dCsxPGMubGVuZ3RoJiZFPEE7KUQucHVzaChjW3QrMV0pLEUrPWNbdCsxXS5sZW5ndGgrMisxOCx0Kys7ci5wdXNoKEQuam9pbigiICZsdDtleHRyYV9pZF8xJmd0OyAiKSl9QT1yfWVsc2V7cD1bXTtmb3Iocj0wO3I8Yy5sZW5ndGg7KXt0PVtdO2ZvcihFPTA7cjxjLmxlbmd0aDspe0Q9Y1tyXTt2YXIgYmE9RC5sZW5ndGg7RT10Lmxlbmd0aD09PTA/YmE6RSsyMCtiYTtpZihFPgpBJiZ0Lmxlbmd0aD4wKWJyZWFrO3QucHVzaChEKTtyKyt9dC5sZW5ndGg+MCYmcC5wdXNoKHQuam9pbigiICZsdDtleHRyYV9pZF8xJmd0OyAiKSl9QT1wfX1lbHNlIEE9YztnPUE7aD16dShuZXcgeXUoYS5PKSxCdShnKS5OYShkKS5uYShlKSxiKTtxLkYoMik7cmV0dXJuIHEuaChoLDQpO2Nhc2UgNDprPXEuajtsPXZuKGspO249Zj9MdShsKTpsO2IobiwyMDApO3EuSygzKTticmVhaztjYXNlIDI6cS5EKCksYihbXSw1MDApO2Nhc2UgMzpyZXR1cm4gYS5LLnB1c2goaCkscS5yZXR1cm4oaCl9fSl9O3ZhciBOdT1mdW5jdGlvbihhLGIpe18udS5jYWxsKHRoaXMpO3RoaXMubD1iO3RoaXMuaj17cm9vdE1hcmdpbjphfTt0aGlzLmc9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgwLF8ueSkodGhpcy5oLHRoaXMpLHRoaXMuail9O18uQihOdSxfLnUpO051LnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyk7dGhpcy5nPW51bGx9O051LnByb3RvdHlwZS5oPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWlmKGFbYl0uaW50ZXJzZWN0aW9uUmF0aW8+MCl7dGhpcy5sKCk7YnJlYWt9fTtOdS5wcm90b3R5cGUudHJhY2s9ZnVuY3Rpb24oYSl7Sm8oYSwoMCxfLnkpKHRoaXMuZy5vYnNlcnZlLHRoaXMuZykpfTt2YXIgT3U9ZnVuY3Rpb24oYSl7dmFyIGI9YSE9bnVsbD9hOnt9LGM9Yi5JayxkPWIuS2ssZT1iLkVrLGY9Yi5MayxnPWIuSGssaD1iLkprLGs9Yi5GayxsPWIuR2s7YT1fLnlsKCk7IWwmJnNwKGMpPyhlPSEhZSxmPSEhZixiPWImJmIuUWssYz0oMCxfLnRsKShzcChjKT8iPHNjcmlwdCIrKGI/JyBub25jZT0iJytQKFlwKGIpKSsnIic6IiIpKyI+d2luZG93WydwcENvbmZpZyddID0ge3Byb2R1Y3ROYW1lOiAiK3ZwKFFwKGQhPW51bGw/ZDoidW5rbm93biIpKSsiLCBkZWxldGVJc0VuZm9yY2VkOiAiK3ZwKFFwKGUpKSsiLCBzZWFsSXNFbmZvcmNlZDogIit2cChRcChmKSkrIiwgaGVhcnRiZWF0UmF0ZTogIit2cChRcChnIT1udWxsP2c6LjUpKSsiLCBwZXJpb2RpY1JlcG9ydGluZ1JhdGVNaWxsaXM6ICIrdnAoUXAoaCE9bnVsbD9oOjZFNCkpKyIsIGRpc2FibGVBbGxSZXBvcnRpbmc6ICIrdnAoUXAoayE9bnVsbD9rOiExKSkrIn07Iit2cChRcChjIT1udWxsP2M6IiIpKSsiXHgzYy9zY3JpcHQ+IjoKIiIpKTpjPSIiO3JldHVybiBXbihhLGMpfTt2YXIgUHU9ZnVuY3Rpb24oYSl7cmV0dXJuKDAsXy50bCkoJzxzcGFuIGlkPSInK1AoYS5pZCkrJyI+PC9zcGFuPicpfSxRdT1mdW5jdGlvbihhKXt2YXIgYj1hLmlkLGM9YS5SZjtyZXR1cm4oMCxfLnRsKShLcChhLlNmKSsnPGRpdiBpZD0iJytQKGIpKyciPjwvZGl2PicrS3AoYykpfSxZbj1mdW5jdGlvbihhKXt2YXIgYj1hLnRvcCxjPWEubGVmdCxkPWEuYm90dG9tLGU9YS5yaWdodCxmPWEuaWQ7cmV0dXJuKDAsXy51bCkoIi4iK0FwKGEuY2xhc3NOYW1lKSsiIHt6LWluZGV4Ojk5OTk5OTk7IG92ZXJmbG93OnZpc2libGU7IHBvc2l0aW9uOmZpeGVkOyBfcG9zaXRpb246YWJzb2x1dGU7IisoYnx8Yj09PTA/InRvcDoiK0FwKGIpKyJweDsgX3RvcDpleHByZXNzaW9uKCgiK0FwKGIpKyIrKGhhY2sxPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSkrJ3B4Jyk7IjoidG9wOmF1dG87IikrKGN8fGM9PT0wPyJsZWZ0OiIrQXAoYykrCiJweDsgX2xlZnQ6ZXhwcmVzc2lvbigoIitBcChjKSsiKyhoYWNrMj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSkrJ3B4Jyk7IjoibGVmdDphdXRvOyIpKyhkfHxkPT09MD8iYm90dG9tOiIrQXAoZCkrInB4OyBfdG9wOmV4cHJlc3Npb24oKC0iK0FwKGQpKyItZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIrU3RyaW5nKGYpLnJlcGxhY2UoUnAsR3ApKyInKS5vZmZzZXRIZWlnaHQrKGhhY2szPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KSsoaGFjazQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApKSsncHgnKTsiOiJib3R0b206YXV0bzsiKSsoZXx8ZT09PTA/InJpZ2h0OiIrQXAoZSkrInB4OyBfbGVmdDpleHByZXNzaW9uKCgtIitBcChlKSsiLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciKwpTdHJpbmcoZikucmVwbGFjZShScCxHcCkrIicpLm9mZnNldFdpZHRoKyhoYWNrNT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGh8fGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgpKyhoYWNrNj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSkrJ3B4Jyk7IjoicmlnaHQ6YXV0bzsiKSsifSIpfSxSdT1mdW5jdGlvbigpe3JldHVybigwLF8udGwpKCc8ZGl2IGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtYVoyd0VlLXdPSE15ZiIpKyciPjxkaXYgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1hWjJ3RWUtT2lpQ08iKSsnIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1hWjJ3RWUiKSsnIiB3aWR0aD0iOTZweCIgaGVpZ2h0PSI5NnB4IiB2aWV3Qm94PSIwIDAgNjYgNjYiPjxjaXJjbGUgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1hWjJ3RWUtSnQ1Y0siKSsKJyIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCIvPjwvc3ZnPjwvZGl2PjwvZGl2PicpfTt3bi54Yj12b2lkIDA7d24uZz1mdW5jdGlvbigpe3JldHVybiB3bi54Yj93bi54Yjp3bi54Yj1uZXcgd259O3duLnByb3RvdHlwZS5nPTA7Xy5HKHhuLF8uaGIpO18ubT14bi5wcm90b3R5cGU7Xy5tLmNpPXduLmcoKTtfLm0uUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXx8KHRoaXMubGE9IjoiKyh0aGlzLmNpLmcrKykudG9TdHJpbmcoMzYpKX07Xy5tLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5DfTtfLm0ubmQ9ZnVuY3Rpb24oYSl7aWYodGhpcy5LJiZ0aGlzLkshPWEpdGhyb3cgRXJyb3IoIkNhIik7eG4uZWEubmQuY2FsbCh0aGlzLGEpfTtfLm0uUz1mdW5jdGlvbigpe3RoaXMuQz10aGlzLmguY3JlYXRlRWxlbWVudCgiRElWIil9O18ubS5rYT1mdW5jdGlvbihhKXtTdSh0aGlzLGEpfTtfLm0ucWM9ZnVuY3Rpb24oYSl7U3UodGhpcyxhLnBhcmVudE5vZGUsYSl9O3ZhciBTdT1mdW5jdGlvbihhLGIsYyl7aWYoYS5qYil0aHJvdyBFcnJvcigiRGEiKTthLkN8fGEuUygpO2I/Yi5pbnNlcnRCZWZvcmUoYS5DLGN8fG51bGwpOmEuaC5nLmJvZHkuYXBwZW5kQ2hpbGQoYS5DKTthLksmJiFhLksuamJ8fGEuTGEoKX07Cl8ubT14bi5wcm90b3R5cGU7Xy5tLmFoPWZ1bmN0aW9uKGEpe2lmKHRoaXMuamIpdGhyb3cgRXJyb3IoIkRhIik7aWYoYSl7dGhpcy53YT0hMDt2YXIgYj1fLnNkKGEpO3RoaXMuaCYmdGhpcy5oLmc9PWJ8fCh0aGlzLmg9Xy5sYihhKSk7dGhpcy5PYShhKTt0aGlzLkxhKCl9ZWxzZSB0aHJvdyBFcnJvcigiRWEiKTt9O18ubS5PYT1mdW5jdGlvbihhKXt0aGlzLkM9YX07Xy5tLkxhPWZ1bmN0aW9uKCl7dGhpcy5qYj0hMDtUdSh0aGlzLGZ1bmN0aW9uKGEpeyFhLmpiJiZhLkgoKSYmYS5MYSgpfSl9O18ubS5zYT1mdW5jdGlvbigpe1R1KHRoaXMsZnVuY3Rpb24oYSl7YS5qYiYmYS5zYSgpfSk7dGhpcy5PJiZfLlJmKHRoaXMuTyk7dGhpcy5qYj0hMX07Cl8ubS5NPWZ1bmN0aW9uKCl7dGhpcy5qYiYmdGhpcy5zYSgpO3RoaXMuTyYmKHRoaXMuTy5kaXNwb3NlKCksZGVsZXRlIHRoaXMuTyk7VHUodGhpcyxmdW5jdGlvbihhKXthLmRpc3Bvc2UoKX0pOyF0aGlzLndhJiZ0aGlzLkMmJl8uQWQodGhpcy5DKTt0aGlzLks9dGhpcy5DPXRoaXMuUj10aGlzLkY9bnVsbDt4bi5lYS5NLmNhbGwodGhpcyl9O3ZhciBTPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuUmEoKSsiLiIrYn0sVHU9ZnVuY3Rpb24oYSxiKXthLkYmJmEuRi5mb3JFYWNoKGIsdm9pZCAwKX07CnhuLnByb3RvdHlwZS5pZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W107dGhpcy5GJiZ0aGlzLkYubGVuZ3RoIT0wOyl7dmFyIGM9YixkPWMucHVzaCxlPXRoaXMuRj90aGlzLkZbMF18fG51bGw6bnVsbCxmPWE7aWYoZSl7dmFyIGc9dHlwZW9mIGU9PT0ic3RyaW5nIj9lOmUuUmEoKTt0aGlzLlImJmc/KGU9dGhpcy5SLGU9KGUhPT1udWxsJiZnIGluIGU/ZVtnXTp2b2lkIDApfHxudWxsKTplPW51bGw7aWYoZyYmZSl7dmFyIGg9dGhpcy5SO2cgaW4gaCYmZGVsZXRlIGhbZ107Xy52YSh0aGlzLkYsZSk7ZiYmKGUuc2EoKSxlLkMmJl8uQWQoZS5DKSk7Zj1lO2lmKGY9PW51bGwpdGhyb3cgRXJyb3IoIkJhIik7Zi5LPW51bGw7eG4uZWEubmQuY2FsbChmLG51bGwpfX1pZighZSl0aHJvdyBFcnJvcigiRmEiKTtkLmNhbGwoYyxlKX1yZXR1cm4gYn07dmFyIFV1PWZ1bmN0aW9uKCl7eG4uY2FsbCh0aGlzKX07Xy5CKFV1LHhuKTtVdS5wcm90b3R5cGUuUz1mdW5jdGlvbigpe3RoaXMuT2Eoa20oUnUpKX07VXUucHJvdG90eXBlLk9hPWZ1bmN0aW9uKGEpe3RoaXMuQz1hfTtVdS5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe050KHRoaXMuSCgpLCJWSXBnSmQtWlZpOW9kLWFaMndFZS13T0hNeWYtdGk2aEdjIik7TnQodGhpcy5IKCkuZmlyc3RDaGlsZCwiVklwZ0pkLVpWaTlvZC1hWjJ3RWUtT2lpQ08tdGk2aEdjIil9O3ZhciBWdT1mdW5jdGlvbihhKXtPdChhLkgoKSwiVklwZ0pkLVpWaTlvZC1hWjJ3RWUtd09ITXlmLXRpNmhHYyIpO090KGEuSCgpLmZpcnN0Q2hpbGQsIlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPLXRpNmhHYyIpfTt2YXIgV3U9ZnVuY3Rpb24oKXt0aGlzLmc9bmV3IFV1O3RoaXMuZy5TKCk7dGhpcy5nLmthKCk7dGhpcy5oPTB9O1d1LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuaD0wO1Z1KHRoaXMuZyl9O3ZhciBYdT1XcShjciksWXU9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt0aGlzLmw9YTt0aGlzLmc9Yjt0aGlzLkM9W107dGhpcy5GPW51bGw7dGhpcy5vPWM7dGhpcy5oPWQ7dGhpcy5qPWU7dGhpcy5xYT1mO3RoaXMuTz1nO3RoaXMuRD10aGlzLkE9bnVsbDt0aGlzLkI9aHx8bnVsbDt0aGlzLlc9dGhpcy5JPSExO3RoaXMuRz17fTt0aGlzLkw9WHU7dGhpcy5LPTB9LFp1PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1uZXcgU2V0LGM9MDtjPGEubGVuZ3RoO2MrKylzdChhW2NdKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3JldHVybiBiLmFkZChkKX0pO3JldHVybiBifTsKWXUucHJvdG90eXBlLnRyYWNrVmlzaWJpbGl0eT1mdW5jdGlvbihhKXt0aGlzLkE9bmV3IE51KCIyMDBweCIsKDAsXy55KSh0aGlzLlIsdGhpcyxhKSk7dGhpcy5BLnRyYWNrKGR1KFp1KFtdLmNvbmNhdCh0aGlzLmcsdGhpcy5DKSkpKTt0aGlzLkQ9bmV3IE51KCIwcHgiLCgwLF8ueSkodGhpcy5QLHRoaXMpKTt0aGlzLkQudHJhY2soZHUoWnUoW10uY29uY2F0KHRoaXMuZyx0aGlzLkMpKSkpfTtZdS5wcm90b3R5cGUuUj1mdW5jdGlvbihhKXt0aGlzLkEmJih0aGlzLkEuZy5kaXNjb25uZWN0KCksdGhpcy5BPW51bGwpO2EoKX07WXUucHJvdG90eXBlLlA9ZnVuY3Rpb24oKXt0aGlzLkk9ITA7JHUodGhpcyk7aWYoIXRoaXMuVyYmdGhpcy5CKXt2YXIgYT10aGlzLkI7YS5oKys9PTAmJmEuZy5zaG93KCl9fTt2YXIgJHU9ZnVuY3Rpb24oYSl7YS5EJiYoYS5ELmcuZGlzY29ubmVjdCgpLGEuRD1udWxsKX07Cll1LnByb3RvdHlwZS5kb25lPWZ1bmN0aW9uKCl7aWYodGhpcy5JJiYhdGhpcy5XJiZ0aGlzLkIpe3ZhciBhPXRoaXMuQjstLWEuaD09MCYmVnUoYS5nKX10aGlzLkEmJih0aGlzLkEuZy5kaXNjb25uZWN0KCksdGhpcy5BPW51bGwpOyR1KHRoaXMpO2F2KHRoaXMpfTt2YXIgSnU9ZnVuY3Rpb24oYSxiLGMpe2M/KGEuZy5wdXNoKGIpLGEuR1tiLm1hKCldPSEwKTphLkMucHVzaChiKX07WXUucHJvdG90eXBlLmxiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5sZW5ndGgrdGhpcy5DLmxlbmd0aH07dmFyIGJ2PWZ1bmN0aW9uKGEpe2lmKGEubC5sZW5ndGg9PTApe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmcubGVuZ3RoOysrYyliLnB1c2goYS5nW2NdLm1hKCkpO2EubC5wdXNoKG5ldyBmdShiLCExKSl9fTsKWXUucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7ZCsrO2Q9PWMmJmUoKX1idih0aGlzKTtmb3IodmFyIGM9MCxkPTAsZT1mdW5jdGlvbigpe30sZj10aGlzLm8sZz10aGlzLmgsaD10aGlzLmosaz0wO2s8dGhpcy5sLmxlbmd0aDsrK2spZ3UodGhpcy5sW2tdLGZ1bmN0aW9uKGwsbixxKXtyZXR1cm4gTXUoZixfLlpqKGwsYiksbixxfHxnLGgpfSkmJmMrKztjIT0wJiYoZT1HdChhKSk7cmV0dXJuIGN9O3ZhciBhdj1mdW5jdGlvbihhKXtpZihhLmcubGVuZ3RoPjApe2lmKGEuZy5sZW5ndGg9PTEmJmEubC5sZW5ndGg+MSl7dmFyIGI9MTt2YXIgYz1hLmwubGVuZ3RofWVsc2UgYj1jPWEuZy5sZW5ndGg7dmFyIGQ9YS5nLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5EfSkucmVkdWNlKGZ1bmN0aW9uKGUsZil7cmV0dXJuIGUrZn0pO2hyKGEuTCx7bGI6YixNZjpjLGdnOmQsTGY6YS5LfSl9fTt2YXIgY3Y9e2FtOiJOb3RvIFNhbnMgRXRoaW9waWMiLGJlcjoiTm90byBTYW5zIFRpZmluYWdoIiwiYm0tTmtvbyI6Ik5vdG8gU2FucyBOS28iLGJuOiJMb2hpdCBCZW5nYWxpIixibzoiTm90byBTZXJpZiBUaWJldGFuIixkdjoiTm90byBTYW5zIFRoYWFuYSIsZHo6Ik5vdG8gU2VyaWYgVGliZXRhbiIsaXU6Ik5vdG8gU2FucyBDYW5hZGlhbiBBYm9yaWdpbmFsIixrbToiTm9rb3JhIixsbzoiRGh5YW5hIixtbDoiTm90byBTYW5zIE1hbGF5YWxhbSIsIm1uaS1NdGVpIjoiTm90byBTYW5zIE1lZXRlaSBNYXllayIsbXk6Ik5vdG8gU2FucyBNeWFubWFyIiwicGEtQXJhYiI6Ik5vdG8gTmFzdGFsaXEgVXJkdSIscHM6Ik5vdG8gTmFza2ggQXJhYmljIixzYXQ6Ik5vdG8gU2FucyBPbCBDaGlraSIsc2Q6Ik5vdG8gTmFza2ggQXJhYmljIixzaToiTm90byBTYW5zIFNpbmhhbGEiLHRhOiJMb2hpdCBUYW1pbCIseXVlOiJDaG9jb2xhdGUgQ2xhc3NpY2FsIFNhbnMifSxkdj17fSxldj0oZHZbIkNob2NvbGF0ZSBDbGFzc2ljYWwgU2FucyJdPQoiL2NzczI/ZmFtaWx5PUNob2NvbGF0ZStDbGFzc2ljYWwrU2FucyIsZHYuRGh5YW5hPSIvY3NzP2ZhbWlseT1EaHlhbmEiLGR2WyJMb2hpdCBCZW5nYWxpIl09Ii9jc3M/ZmFtaWx5PUxvaGl0K0JlbmdhbGkiLGR2WyJMb2hpdCBUYW1pbCJdPSIvY3NzP2ZhbWlseT1Mb2hpdCtUYW1pbCIsZHYuTm9rb3JhPSIvY3NzP2ZhbWlseT1Ob2tvcmEiLGR2WyJOb3RvIE5hc2toIEFyYWJpYyJdPSIvZWFybHlhY2Nlc3Mvbm90b25hc2toYXJhYmljLmNzcyIsZHZbIk5vdG8gTmFzdGFsaXEgVXJkdSJdPSIvZWFybHlhY2Nlc3Mvbm90b25hc3RhbGlxdXJkdS5jc3MiLGR2WyJOb3RvIFNhbnMgQ2FuYWRpYW4gQWJvcmlnaW5hbCJdPSIvZWFybHlhY2Nlc3Mvbm90b3NhbnNjYW5hZGlhbmFib3JpZ2luYWwuY3NzIixkdlsiTm90byBTYW5zIEV0aGlvcGljIl09Ii9lYXJseWFjY2Vzcy9ub3Rvc2Fuc2V0aGlvcGljLmNzcyIsZHZbIk5vdG8gU2FucyBNYWxheWFsYW0iXT0iL2Vhcmx5YWNjZXNzL25vdG9zYW5zbWFsYXlhbGFtLmNzcyIsCmR2WyJOb3RvIFNhbnMgTWVldGVpIE1heWVrIl09Ii9jc3M/ZmFtaWx5PU5vdG8rU2FucytNZWV0ZWkrTWF5ZWsiLGR2WyJOb3RvIFNhbnMgTXlhbm1hciJdPSIvZWFybHlhY2Nlc3Mvbm90b3NhbnNteWFubWFyLmNzcyIsZHZbIk5vdG8gU2FucyBOS28iXT0iL2Nzcz9mYW1pbHk9Tm90bytTYW5zK05LbyIsZHZbIk5vdG8gU2FucyBPbCBDaGlraSJdPSIvZWFybHlhY2Nlc3Mvbm90b3NhbnNvbGNoaWtpLmNzcyIsZHZbIk5vdG8gU2FucyBTaW5oYWxhIl09Ii9lYXJseWFjY2Vzcy9ub3Rvc2Fuc3NpbmhhbGEuY3NzIixkdlsiTm90byBTYW5zIFRoYWFuYSJdPSIvZWFybHlhY2Nlc3Mvbm90b3NhbnN0aGFhbmEuY3NzIixkdlsiTm90byBTYW5zIFRpZmluYWdoIl09Ii9lYXJseWFjY2Vzcy9ub3Rvc2Fuc3RpZmluYWdoLmNzcyIsZHZbIk5vdG8gU2VyaWYgVGliZXRhbiJdPSIvY3NzP2ZhbWlseT1Ob3RvK1NlcmlmK1RpYmV0YW4iLGR2KSxmdj1mdW5jdGlvbigpe3RoaXMuZz1bXX07CmZ2LnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPV8uQyh0aGlzLmcpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWIudmFsdWUucmVtb3ZlKCk7dGhpcy5nPVtdfTt2YXIgZ3Y9ZnVuY3Rpb24oYSxiKXtfLnUuY2FsbCh0aGlzKTt0aGlzLmc9W107dGhpcy5sPVtdO3RoaXMuaD1hO3RoaXMuaj1ifTtfLkIoZ3YsXy51KTtndi5wcm90b3R5cGUubz1mdW5jdGlvbihhKXt2YXIgYj1fLkFjKGEuaHJlZik7Yi5pbmRleE9mKCJqYXZhc2NyaXB0OiIpPT0wfHxiLmluZGV4T2YoIiMiKT49MHx8KHRoaXMubC5wdXNoKGEuaHJlZiksdGhpcy5nLnB1c2goYSksYS5ocmVmPWIrIiNnb29ndHJhbnMvIit0aGlzLmgrIi8iK3RoaXMuail9O2d2LnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyk7dGhpcy5yZXN0b3JlKCl9O2d2LnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKCl7aWYodGhpcy5nLmxlbmd0aCl7Zm9yKHZhciBhPTA7YTx0aGlzLmcubGVuZ3RoOysrYSl0aGlzLmdbYV0uaHJlZj10aGlzLmxbYV07dGhpcy5nPVtdO3RoaXMubD1bXX19O3ZhciBodj1mdW5jdGlvbihhLGIpe18udS5jYWxsKHRoaXMpO3RoaXMuZz1hO3RoaXMuaD1fLnhmLnRlc3QoYik/InRyYW5zbGF0ZWQtcnRsIjoidHJhbnNsYXRlZC1sdHIiO2E9W10uY29uY2F0KHRoaXMuZyk7Zm9yKGI9MDtiPGEubGVuZ3RoOysrYil5byhhW2JdKSYmTnQoYVtiXSx0aGlzLmgpfTtfLkIoaHYsXy51KTtodi5wcm90b3R5cGUuTT1mdW5jdGlvbigpe18udS5wcm90b3R5cGUuTS5jYWxsKHRoaXMpO3RoaXMucmVzdG9yZSgpfTtodi5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbigpe2Zvcih2YXIgYT1bXS5jb25jYXQodGhpcy5nKSxiPTA7YjxhLmxlbmd0aDsrK2IpeW8oYVtiXSkmJk90KGFbYl0sdGhpcy5oKX07dmFyIGl2PWZ1bmN0aW9uKGEsYixjKXt0aGlzLmc9M0UzO3RoaXMuaD1bXTt0aGlzLmo9bnVsbDt0aGlzLm89YTt0aGlzLkViPWI7dGhpcy5GYj1jO3RoaXMubD1hJiZ0eXBlb2YgYS5sPT09ImZ1bmN0aW9uIj9hLmwoKXx8MThFMzoxOEUzfSxrdj1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGcsaCxrLGwsbixxO3JldHVybiBfLlZpKGZ1bmN0aW9uKHApe3N3aXRjaChwLmcpe2Nhc2UgMTpjPWxvKGIpO2Q9W107aWYoYy5sZW5ndGg+YS5nKWZvcihlPW5ldyBodShjLCExKSxmPSIiO2Y9a3UoZSxhLmcpOylkLnB1c2goZiksYS5nPGEubCYmKGEuZyo9NixhLmc+YS5sJiYoYS5nPWEubCkpO2Vsc2UgZC5wdXNoKGMpO2c9W107aD1fLkMoZCk7az1oLm5leHQoKTtjYXNlIDI6aWYoay5kb25lKXtwLnhhKDQpO2JyZWFrfWw9ay52YWx1ZTtuPWc7cT1uLnB1c2g7cmV0dXJuIHAuaChqdihhLGwpLDUpO2Nhc2UgNTpxLmNhbGwobixwLmopO2s9aC5uZXh0KCk7cC54YSgyKTticmVhaztjYXNlIDQ6cmV0dXJuIHAucmV0dXJuKHBvKGcuam9pbigiIikpKX19KX0sCmp2PWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGMsZCl7YS5oLnB1c2goe3RleHQ6YixyZXNvbHZlOmMscmVqZWN0OmR9KTthLmp8fChhLmo9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmZsdXNoKCl9LDUwKSl9KX07aXYucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5qPW51bGw7aWYodGhpcy5oLmxlbmd0aCE9PTApe3ZhciBhPXRoaXMuaDt0aGlzLmg9W107dmFyIGI9bmV3IHl1KHRoaXMubyk7YT1fLkMoYSk7Zm9yKHZhciBjPWEubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtyYzp2b2lkIDB9LGM9YS5uZXh0KCkpZC5yYz1jLnZhbHVlLGM9QnUoW2QucmMudGV4dF0pLk5hKHRoaXMuRWIpLm5hKHRoaXMuRmIpLHp1KGIsYyxmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYpeyhmPXZuKGYpWzBdKSYmZlsxXT09PTIwMD9lLnJjLnJlc29sdmUoZlswXS50b1N0cmluZygpKTplLnJjLnJlamVjdCgiVHJhbnNsYXRpb24gZmFpbGVkIil9fShkKSkuY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYpe2UucmMucmVqZWN0KGYpfX0oZCkpfX07dmFyIGx2PWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxrLGwpe18udS5jYWxsKHRoaXMpO3RoaXMuQz1hO3RoaXMuRmM9Yjt0aGlzLmxmPW5ldyBmdjt0aGlzLmZiPWN8fG51bGw7dGhpcy5JYT1sfHxudWxsO3RoaXMuSz1udWxsO3RoaXMuSWQ9ISFkO3RoaXMuamk9ZXx8InRyYW5zcGFyZW50Ijt0aGlzLmlpPSEhZjt0aGlzLkY9W107dGhpcy55Zj10aGlzLkk9dGhpcy5nPSExO3RoaXMubz1ofHxuZXcgdHQ7dGhpcy5EaT0haDt0aGlzLndhPWd8fHh0LmcoKTt0aGlzLlVlPW5ldyBjdTt0aGlzLkhiPXRoaXMuZ2I9dGhpcy5SPSExO3RoaXMuZGY9dGhpcy5BPS41O3RoaXMuamY9LjAxO3RoaXMuRD1uZXcgenQodGhpcy5BKTt0aGlzLmxhPSh0aGlzLkI9dGhpcy5yYT0hIWspP25ldyBNdXRhdGlvbk9ic2VydmVyKCgwLF8ueSkodGhpcy5RaCx0aGlzKSk6bnVsbDt0aGlzLkw9dGhpcy5YZT10aGlzLmo9dGhpcy5oPW51bGw7dGhpcy5QPTA7dGhpcy5PPW5ldyBNYXA7Xy54KHdpbmRvdywiYmx1ciIsCnRoaXMudGYsITAsdGhpcyk7Xy54KHdpbmRvdywiZm9jdXMiLHRoaXMudWYsITAsdGhpcyl9O18uQihsdixfLnUpO18ubT1sdi5wcm90b3R5cGU7Xy5tLkphPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaD90aGlzLmg6IiJ9O18ubS5vYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmo/dGhpcy5qOiIifTtfLm0uZ2g9ZnVuY3Rpb24oYSl7dGhpcy5vaS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5sJiZ0aGlzLmwoMCwhMSwxKX07Xy5tLmFmPWZ1bmN0aW9uKGEpe3RoaXMucGkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMubCYmdGhpcy5sKDAsITEsMSl9O18ubS5oaD1mdW5jdGlvbihhKXt0aGlzLnJpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmwmJnRoaXMubCgwLCExLDEpfTtfLm0uaWg9ZnVuY3Rpb24oYSl7dGhpcy50aS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5sJiZ0aGlzLmwoMCwhMSwxKX07Cl8ubS50cmFuc2xhdGU9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihkfHxhIT10aGlzLmh8fGIhPXRoaXMuailtdih0aGlzKSx0aGlzLkRpJiYodGhpcy5vPW5ldyB0dCk7ZWxzZSBpZih0aGlzLmcpcmV0dXJuO3RoaXMubD1jO3RoaXMuQWk9ZTt0aGlzLkI9dGhpcy5yYTt0aGlzLmxhJiZ0aGlzLmxhLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSk7dGhpcy5nPSEwO3RoaXMuaD1hO3RoaXMuaj1iO3RoaXMuSWQmJih0aGlzLks9bmV3IGd2KGEsYikpO3RoaXMuSGI9dGhpcy5oPT0iYXV0byI7dGhpcy5mYiYmKGM9dGhpcy5mYixhJiYoYy5EPWEpLGImJihjLkY9YikpO3RoaXMuWGI9bmV3IGh2KHRoaXMuQyx0aGlzLmopO2IgaW4gY3YmJihhPXRoaXMubGYsYiBpbiBjdiYmKGI9Y3ZbYl0sYz0iQGltcG9ydCB1cmwoIitXbygiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSIpLnJlc29sdmUoV28oZXZbYl0pKS50b1N0cmluZygpKwoiKTsiLGM9eW4oYyksYS5nLnB1c2goYyksYj15bignYm9keSB7Zm9udC1mYW1pbHk6IicrYisnIiwiR29vZ2xlIFNhbnMiLCJOb3RvIFNhbnMiLHNhbnMtc2VyaWYgIWltcG9ydGFudH0nKSxhLmcucHVzaChiKSkpO18ub2koXy5aaShwcSw5KSk/KHRoaXMuWGU9bmV3IGl2KHRoaXMuRmMsdGhpcy5oLHRoaXMuaiksdGhpcy5QPTAsbnYodGhpcyksdGhpcy5QPT09MCYmdGhpcy5sJiZ0aGlzLmwoMTAwLCEwKSk6dGhpcy5HPW92KHRoaXMpOyhiPXRoaXMuQyBpbnN0YW5jZW9mIE5vZGU/dGhpcy5DOm51bGwpJiZwdihiLHRoaXMuail9Owp2YXIgb3Y9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEJ0KGEsYS53YSk7Q3QoYixhLnNmKTtFdChiLCgwLF8ueSkoYS5naCxhKSk7RnQoYixuZXcgQ3UoYS5GYyxbXS5jb25jYXQoYS5DKSxhLndhLGEubCxhLkIsYS5BaSkpO3JldHVybiBifSxudj1mdW5jdGlvbihhKXthLkw9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGIpe2IuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLmlzSW50ZXJzZWN0aW5nKXt2YXIgZD1jLmJvdW5kaW5nQ2xpZW50UmVjdDtkJiZkLndpZHRoPT09MCYmZC5oZWlnaHQ9PT0wfHwocXYoYSxjLnRhcmdldCksYS5MLnVub2JzZXJ2ZShjLnRhcmdldCkpfX0pfSk7W10uY29uY2F0KGEuQykuZm9yRWFjaChmdW5jdGlvbihiKXtydihhLGIpfSl9LHJ2PWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITA6YztpZighUXR8fCEkdChiKSl7YS5FZj09PXZvaWQgMCYmKGEuRWY9ISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9Imdvb2dsZSJdW2NvbnRlbnQ9Im5vdHJhbnNsYXRlIl0sIG1ldGFbbmFtZT0icm9ib3RzIl1bY29udGVudD0ibm90cmFuc2xhdGUiXSwgbWV0YVtuYW1lPSJnb29nbGUiXVt2YWx1ZT0ibm90cmFuc2xhdGUiXSwgbWV0YVtuYW1lPSJ0cmFuc2xhdGUiXVtjb250ZW50PSJubyJdJykpOwppZihhLkVmKWM9ITE7ZWxzZSBpZihiLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe3ZhciBkPSJub3RyYW5zbGF0ZSIsZT0idHJhbnNsYXRlIjtRdCYmYnUmJihkPSJub3RyYW5zbGF0ZSIsZT0idHJhbnNsYXRlIik7ZD1iLmNsYXNzTGlzdCYmYi5jbGFzc0xpc3QuY29udGFpbnMoZCl8fGIuZ2V0QXR0cmlidXRlJiZiLmdldEF0dHJpYnV0ZSgidHJhbnNsYXRlIik9PT0ibm8iO2U9Yi5jbGFzc0xpc3QmJmIuY2xhc3NMaXN0LmNvbnRhaW5zKGUpfHxiLmdldEF0dHJpYnV0ZSYmYi5nZXRBdHRyaWJ1dGUoInRyYW5zbGF0ZSIpPT09InllcyI7Yz1kPyExOmU/ITA6Y31pZihiLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpYyYmXy5BYyhiLnRleHRDb250ZW50KSYmYi5wYXJlbnRFbGVtZW50JiZhLkwub2JzZXJ2ZShiLnBhcmVudEVsZW1lbnQpO2Vsc2UgaWYoYi5jaGlsZE5vZGVzKWZvcihlPTA7ZTxiLmNoaWxkTm9kZXMubGVuZ3RoO2UrKylydihhLGIuY2hpbGROb2Rlc1tlXSwKYyl9fSxxdj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz17fSxkPTA7ZDxiLmNoaWxkTm9kZXMubGVuZ3RoO2M9e2tiOnZvaWQgMH0sZCsrKWMua2I9Yi5jaGlsZE5vZGVzW2RdLGMua2Iubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmXy5BYyhjLmtiLnRleHRDb250ZW50KSYmKGEuUCsrLGEuTy5oYXMoYy5rYil8fGEuTy5zZXQoYy5rYixjLmtiLnRleHRDb250ZW50KSxrdihhLlhlLGMua2IudGV4dENvbnRlbnQpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYpe2Uua2IudGV4dENvbnRlbnQ9Zn19KGMpKS5jYXRjaChmdW5jdGlvbigpe30pLmZpbmFsbHkoZnVuY3Rpb24oKXthLlAtLTthLlA9PT0wJiZhLmwmJmEubCgxMDAsITApfSkpfTtsdi5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbigpe212KHRoaXMpO3RoaXMuVWUucmVzdG9yZSgpO3ZhciBhPXRoaXMuQyBpbnN0YW5jZW9mIE5vZGU/dGhpcy5DOm51bGw7YSYmcHYoYSx0aGlzLkphKCkpfTsKbHYucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtfLnUucHJvdG90eXBlLk0uY2FsbCh0aGlzKTt0aGlzLnJlc3RvcmUoKTtfLlVkKHdpbmRvdywiYmx1ciIsdGhpcy50ZiwhMCx0aGlzKTtfLlVkKHdpbmRvdywiZm9jdXMiLHRoaXMudWYsITAsdGhpcyl9O3ZhciBzdj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT13cihhLm8uaCksZj1uZXcgQnQoYSxiLkQpO2IuQy5wdXNoKGYpO0R0KGYsYi5JKTtGdShiLGUpO0N0KGYsZHx8YS5wZik7Yj1jfHxuZXcgWXUoW10sW10sYixhLkphKCksYS5vYSgpLGEueWYsYS5JLGEuSWEpO0V0KGYsYS5VaCxhKTthLkImJkR0KGYsYi5kb25lLGIpO0Z0KGYsYil9O18ubT1sdi5wcm90b3R5cGU7Xy5tLlVoPWZ1bmN0aW9uKGEsYixjKXtjLmRvbmUoKTt0aGlzLkk/dGhpcy5paChhKTp0aGlzLmhoKGEpO2Muby5JKCl9O18ubS51Zj1mdW5jdGlvbigpe3RoaXMuUj0hMTt0aGlzLlQ9MDt5dCh0aGlzLkQsdGhpcy5BKX07Cl8ubS50Zj1mdW5jdGlvbihhKXthLnRhcmdldD09d2luZG93JiYodGhpcy5SPSEwLHRoaXMuVD0wLHl0KHRoaXMuRCwuMDEpKX07Xy5tLlFoPWZ1bmN0aW9uKGEpe2lmKHRoaXMuZyYmdGhpcy5CKWlmKF8ub2koXy5aaShwcSw5KSkpZm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBjPWFbYl0uYWRkZWROb2RlcztpZihjKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXJ2KHRoaXMsY1tkXSl9ZWxzZXtmb3IoYj0wO2I8YS5sZW5ndGg7YisrKWlmKGFbYl0udGFyZ2V0JiZhW2JdLnRhcmdldC5jbGFzc05hbWUmJnR5cGVvZiBhW2JdLnRhcmdldC5jbGFzc05hbWU9PT0ic3RyaW5nIiYmKGFbYl0udGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCJ0cmFuc2xhdGUiKT49MHx8YVtiXS50YXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoImdvb2ctIik9PTApKXJldHVybjt0aGlzLndhLmFkZCgoMCxfLnkpKHRoaXMuTWksdGhpcykpfX07Cl8ubS5NaT1mdW5jdGlvbigpe3RoaXMuST0hMDt0aGlzLkcmJih0aGlzLkcuc3RvcCgpLHRoaXMuRz1vdih0aGlzKSk7cmV0dXJuITF9O18ubS5zZj1mdW5jdGlvbihhLGIpe0R1KGIsR3QoYSkpO3N2KHRoaXMsYik7cmV0dXJuIHRoaXMuWWh9O18ubS5ZaD1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLmcpcmV0dXJuIEl0O2lmKCFIdChhKSlyZXR1cm4gSnQ7aWYoIXRoaXMuQilmb3IoYT0wO2E8dGhpcy5GLmxlbmd0aDsrK2Epe3ZhciBjPWIsZD0oMCxfLnkpKHRoaXMuTWUsdGhpcyxiLHRoaXMuRlthXSk7Yy5ELmFkZChkKX1yZXR1cm4gdGhpcy5YaH07Cl8ubS5uZj1mdW5jdGlvbihhLGIpe2lmKHRoaXMuVCYmIXRoaXMuUil7YT0obmV3IERhdGUpLmdldFRpbWUoKS10aGlzLlQ7dmFyIGM9dGhpcy5BO2E8OTAwJiZjPi4wMT9jPU1hdGgubWF4KGMqLjksLjAxKTphPjExMDAmJmM8LjUmJihjPU1hdGgubWluKGMqMS41LC41KSk7dGhpcy5BPWM7dGhpcy5nYj90aGlzLmpmPS4wMTp0aGlzLmRmPXRoaXMuQX10aGlzLkk9dGhpcy5nPSEwO3RoaXMuVD0obmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLkNpIT0oYT1kb2N1bWVudC5ib2R5LmlubmVyVGV4dHx8ZG9jdW1lbnQuYm9keS50ZXh0Q29udGVudHx8ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwpPyh0aGlzLkNpPWEsYT0hMCk6YT0hMTthPyh0aGlzLmdiPSExLHRoaXMuQT10aGlzLmRmLHRoaXMuUnx8eXQodGhpcy5ELHRoaXMuQSksRXUoYixbXS5jb25jYXQodGhpcy5DKSx0aGlzLkQpLGE9bmV3IEJ0KHRoaXMsdGhpcy5EKSxDdChhLHRoaXMuc2YpLEV0KGEsKDAsXy55KSh0aGlzLmFmLHRoaXMpKSwKRnQoYSxiKSx0aGlzLkc9YSk6KHRoaXMuZ2I9ITAsdGhpcy5BPXRoaXMuamYsdGhpcy5SfHx5dCh0aGlzLkQsdGhpcy5BKSxhPW5ldyBCdCh0aGlzLHRoaXMuRCksQ3QoYSx0aGlzLm5mKSxFdChhLCgwLF8ueSkodGhpcy5hZix0aGlzKSksRnQoYSxiKSx0aGlzLkc9YSk7cmV0dXJuIEl0fTtfLm0uWGg9ZnVuY3Rpb24oYSxiKXtpZighdGhpcy5nKXJldHVybiBJdDt0aGlzLkk9dGhpcy5nPSExO3RoaXMuSGI/R3UoYiwhMCk6KEd1KGIpLGIuUChiLmwpKTtpZih0aGlzLmlpKXJldHVybiB0aGlzLm5mO2IuY2xlYXIoKTtyZXR1cm4gSXR9Owp2YXIgdXY9ZnVuY3Rpb24oYSxiLGMpe2E6e3ZhciBkPXR2KGEpLGU9YS5mYixmPWEuamksZz1hLlVlLmc7Yj1HdChiKTtpZighYy5HKXtpZihjLnFhLmxlbmd0aD09MCl7Yy5sPT0wJiZjLnFiPT0wJiZjLkIoMCwhMCk7Yz0hMTticmVhayBhfWMuRz1JdShjLGQsZSxmLGcpfWMucmE9ITA7UnQoYy5HLGMuaixjLmgsYik7Yz0hMH1yZXR1cm4gYz9hLnBmOmEuU2N9LHR2PWZ1bmN0aW9uKGEpe3JldHVybiBhLklkPygwLF8ueSkoYS5LLm8sYS5LKTpmdW5jdGlvbigpe319O18ubT1sdi5wcm90b3R5cGU7Cl8ubS5wZj1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLmcpcmV0dXJuIEl0O3ZhciBjPWIubztpZihjLmc9PW51bGwpe2lmKCFjLnJhKXJldHVybiB1dih0aGlzLGEsYi5vKTtpZighSHQoYSkpcmV0dXJuIEp0O2MucmE9ITE7Yy5nPWMuRy5kY3x8bnVsbDt2YXIgZD1jLmc/Yy5nOmMuRz1udWxsO2lmKCFkKXJldHVybiB1dih0aGlzLGEsYi5vKTt0aGlzLkYucHVzaChkKTt2YXIgZT1kLm1hKCk7aWYodGhpcy5vLmhhcyhlLCF0aGlzLkIpfHxiLkdbZV0hPW51bGwmJmIuR1tlXSlyZXR1cm4gZT1jLmcuRCxjLmwrPWUsYy5qLT1lLGMuZz1udWxsLHRoaXMuQiYmSnUoYixkLCExKSx1dih0aGlzLGEsYi5vKTtlPXRoaXMubztkPWQubWEoKTtlLmdbZF09bnVsbH1iLmxiKCk+MCYmeXQodGhpcy5ELC41KTtyZXR1cm4gS3UoYyxiLHdyKHRoaXMuby5oKSk/dGhpcy5TYzp1dih0aGlzLGEsYi5vKX07Cl8ubS5TYz1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLmd8fGIubGIoKT09MClyZXR1cm4gSXQ7c3YodGhpcyxiLm8pO3JldHVybiB0aGlzLkI/KGIudHJhY2tWaXNpYmlsaXR5KEd0KGEpKSx0aGlzLlpoKTpiLnRyYW5zbGF0ZShhKT09MD9JdDp0aGlzLnJmfTtfLm0uWmg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5nP0h0KGEpP2IudHJhbnNsYXRlKGEpPT0wP0l0OnRoaXMucmY6SnQ6SXR9OwpfLm0uTWU9ZnVuY3Rpb24oYSxiKXtiLmomJnRoaXMuby5yZW1vdmUoYi5sKTtpZighdGhpcy5nKXJldHVybiExO2lmKHRoaXMuby5oYXMoYi5tYSgpLCExKSl7dmFyIGM9dGhpcy5vO2MuaGFzKGIubCwhMSk/KGIuaD1jLnJlYWQoYi5sKSxiLkw9ITApOihjLnJlbW92ZShiLmwpLGIuaj0hMCk7cXQoYil9ZWxzZSBpZihjPXRoaXMubyxiLmopYy5yZW1vdmUoYi5sKTtlbHNlIGlmKGIuRil7dmFyIGQ9Yi5GLnJlcGxhY2UoLzxhIC9nLCI8c3BhbiAiKS5yZXBsYWNlKC9cL2E+L2csIi9zcGFuPiIpO2IuTD0hMDtkZWxldGUgYi5GO2IuRj1udWxsO2IuaD1bXTt2YXIgZT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLGY9ZS5jcmVhdGVFbGVtZW50KCJkaXYiKTttcChmLCExKTtkPWQuaW5kZXhPZigiPGk+Iik+PTA/ZDoiPGI+IitkKyI8L2I+IjtkPV8uS2IoZCk7ZD1fLm1sKGQpO2Yubm9kZVR5cGU9PT0xJiZNbChmKTtmLmlubmVySFRNTD1fLmtqKGQpOwplLmJvZHkuYXBwZW5kQ2hpbGQoZik7ZT1bXTtmb3IoZD1mLmZpcnN0Q2hpbGQ7ZDtkPWQubmV4dFNpYmxpbmcpaWYoZC50YWdOYW1lPT0iSSIpdmFyIGc9b3QoYixFbyhkKSxkLmlubmVySFRNTCk7ZWxzZSBpZihkLnRhZ05hbWU9PSJCIil7Z3x8KGc9b3QoYiwiIiwiIikpO2lmKGIuZy5sZW5ndGg9PTEpdXQoZy5VLGUsMCxkKTtlbHNle3ZhciBoPWU7dmFyIGs9ZDt2YXIgbD1iLmc7Zz1nLlU7Zm9yKHZhciBuPVtdLHE9ay5maXJzdENoaWxkO3E7cT1wKXt2YXIgcD1xLm5leHRTaWJsaW5nO3Z0KHEpfWZvcihwPWsuZmlyc3RDaGlsZDtwO3A9cC5uZXh0U2libGluZylwLmF0dHJpYnV0ZXMmJnAuYXR0cmlidXRlcy5pPyhrPXBhcnNlSW50KHAuYXR0cmlidXRlcy5pLm5vZGVWYWx1ZSwxMCksIWlzTmFOKGspJiZrPj0wJiZrPGwubGVuZ3RoJiYobFtrXS5yZCYmbltrXT9uW2tdLlorPXAuZmlyc3RDaGlsZCYmcC5maXJzdENoaWxkLm5vZGVUeXBlPT0zP3AuZmlyc3RDaGlsZC5ub2RlVmFsdWU6CkVvKHApOm5ba109dXQoZyxoLGsscCkpKTpwLm5vZGVUeXBlPT0zJiZnLnB1c2goe1g6LTEsWjpwbyhwLm5vZGVWYWx1ZSl9KTtnIT1udWxsJiZnLmxlbmd0aD4wJiZnWzBdLlg9PS0xJiYoZy5sZW5ndGg9PTE/Z1swXS5YPTA6KGdbMV0uWj1nWzBdLlorZ1sxXS5aLGcuc2hpZnQoKSkpfWc9dm9pZCAwfWQ9Yi5oO2ZvcihoPTA7aDxkLmxlbmd0aC0xOysraClsPWRbaF0sZz1rbyhsLlVbbC5VLmxlbmd0aC0xXS5aKSxnPWcuY2hhckNvZGVBdChnLmxlbmd0aC0xKSwxMjI4ODw9ZyYmZzw9MTIzNTF8fDY1MjgwPD1nJiZnPD02NTUxOXx8KGwuVVtsLlUubGVuZ3RoLTFdLlorPSIgIik7Xy5BZChmKTtmb3IoZj0wO2Y8Yi5nLmxlbmd0aDsrK2YpZjxlLmxlbmd0aCYmZjxiLkMubGVuZ3RoJiZlW2ZdIT1udWxsJiYoZD1iLkNbZl0saD1lW2ZdLnN0YXJ0LGghPW51bGwmJihsPWQuc3Vic3RyaW5nKDAsZC5sZW5ndGgtZC5yZXBsYWNlKC9eW1xzXHhhMF0rLywiIikubGVuZ3RoKSxsPT0iICImJgoobD0iIiksbCYmKGguWj1sK2guWi5yZXBsYWNlKC9eW1xzXHhhMF0rLywiIikpKSxoPWVbZl0uZW5kLGghPW51bGwmJihkPWQuc3Vic3RyaW5nKGtvKGQpLmxlbmd0aCksZD09IiAiJiYoZD0iIiksZCYmKGguWj1rbyhoLlopK2QpKSk7Yi5oLmxlbmd0aCE9MXx8Yi5oWzBdLmhlfHwoYi5oWzBdLmhlPWIubCk7Yy53cml0ZShiLmwsYi5oKTtxdChiKX1iLkl8fCh0aGlzLkhiPSExKTtjPWIuaj8hMDp2b2lkIDA7YS5XKz1iLkQ7YyE9bnVsbCYmKGEubGE9ITApO2I9TWF0aC5taW4oTWF0aC5mbG9vcihhLlcqMTAwL2EubCksMTAwKTtpZihhLkYhPWJ8fGMpYS5GPWIsYS5SPyhhLkIoYS5GLCEwLGMpLGEuUChhLlcpKTphLkIoYS5GLCExLGMpO3JldHVybiExfTsKXy5tLnJmPWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuZylyZXR1cm4gSXQ7aWYoIUh0KGEpKXJldHVybiBKdDtpZihiLmxiKCk+MSl7YT1iLmxbMF07dmFyIGM9Yi5nO2lmKGEuanx8Yy5sZW5ndGg9PTB8fGEuZz09bnVsbHx8YS5nLmxlbmd0aD09MClhPW51bGw7ZWxzZXtmb3IodmFyIGQ9W10sZT1bXSxmPTA7ZjxhLmcubGVuZ3RoJiZmPGMubGVuZ3RoOysrZil7dmFyIGc9YS5nW2ZdO2cmJmdbMF0mJmdbMV09PTIwMHx8KGUucHVzaChjW2ZdKSxkLnB1c2goYS5vW2ZdKSl9YT1lLmxlbmd0aD4wP3tOaTpuZXcgZnUoZCwhMCksT2k6ZX06bnVsbH1hPWE/bmV3IFl1KFthLk5pXSxhLk9pLGIubyxiLmgsYi5qLGIucWEsYi5PLGIuQik6bnVsbDthIT1udWxsJiZzdih0aGlzLGIubyxhLHRoaXMuU2MpfWVsc2V7YT0hMTtmb3IoYz0wO2M8Yi5sLmxlbmd0aDsrK2MpZD1iLmxbY10sZC5qfHxkLmg9PTIwMCYmZC5nJiZkLmdbMF0/ZD1kLmw9ITE6KGQuaj0hMCxkPWQubD0hMCksYT1kfHxhO2lmKGEpcmV0dXJuIHRoaXMuU2N9ZD0KdGhpcy5KYSgpO2E9dGhpcy5vYSgpO2lmKGIuZy5sZW5ndGg+MSlpZihjPWIubFswXSxlPWQ9PSJhdXRvIixkPWIuZyxjLmg9PTIwMClmb3IoZj0wO2Y8Yy5nLmxlbmd0aCYmZjxkLmxlbmd0aDsrK2YpaWYoKGc9Yy5nW2ZdKSYmZ1sxXT09MjAwKXt2YXIgaD1nWzJdLGs9ZFtmXSxsPWssbj1oIT1udWxsJiZoPT1hO2wuRj1nWzBdO24hPT12b2lkIDAmJihsLks9bik7ay5JPWUmJmg9PW51bGx9ZWxzZSBkW2ZdLmo9ITA7ZWxzZSBmb3IoYT0wO2E8ZC5sZW5ndGg7KythKWRbYV0uaj0hMDtlbHNle2M9bmV3IGV1KGQ9PSJhdXRvIik7Zm9yKGQ9MDtkPGIubC5sZW5ndGg7KytkKWY9Yi5sW2RdLGU9YSxmLmg9PTIwMCYmZi5nJiZmLmdbMF0/KGY9Zi5nWzBdLGMuZy5wdXNoKGZbMF0pLGY9ZlsyXSxjLmg9Yy5oJiZmIT1udWxsJiZmPT1lLGYhPW51bGwmJihjLmw9ITEpKTpjLmo9ITA7Yi5GIT1udWxsJiYoYy5nLnB1c2goYi5GKSxiLkY9bnVsbCk7aWYoYT1iLmdbMF0pZD1jLm1hKCksZT1jLmgsCmEuRj1kLGUhPT12b2lkIDAmJihhLks9ZSksYS5JPWMubCxhLmo9Yy5qfWlmKHRoaXMuQil7YT0oMCxfLnkpKHRoaXMuTWUsdGhpcyk7Zm9yKGM9MDtjPGIuZy5sZW5ndGg7YysrKWEoYi5vLGIuZ1tjXSk7Zm9yKGM9MDtjPGIuQy5sZW5ndGg7YysrKWEoYi5vLGIuQ1tjXSk7JHUoYik7Yi5XPSEwO2IuSSYmYi5CJiYoYj1iLkIsLS1iLmg9PTAmJlZ1KGIuZykpfXJldHVybiBJdH07CnZhciBtdj1mdW5jdGlvbihhKXthLmxhJiZhLmxhLmRpc2Nvbm5lY3QoKTthLklhJiZhLklhLnJlc2V0KCk7YS5nJiYoYS5HJiZhLkcuc3RvcCgpLGEuZz0hMSxhLkk9ITEpO2lmKGEuRi5sZW5ndGgpe2Zvcih2YXIgYj0wO2I8YS5GLmxlbmd0aDsrK2IpYS5GW2JdLmRpc3Bvc2UoKTthLkY9W119YS5LIT1udWxsJiYoYS5LLnJlc3RvcmUoKSxhLks9bnVsbCk7YS5YYiE9bnVsbCYmKGEuWGIucmVzdG9yZSgpLGEuWGI9bnVsbCk7YS5PJiZhLk8uc2l6ZT4wJiYoYS5PLmZvckVhY2goZnVuY3Rpb24oYyxkKXtkLnRleHRDb250ZW50PWN9KSxhLk8uY2xlYXIoKSk7YS5MJiYoYS5MLmRpc2Nvbm5lY3QoKSxhLkw9bnVsbCk7YS5sZi5yZXN0b3JlKCl9LHB2PWZ1bmN0aW9uKGEsYil7YS5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIikmJmEuc2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIsYik7YS5nZXRBdHRyaWJ1dGUoImxhbmciKSYmYS5zZXRBdHRyaWJ1dGUoImxhbmciLGIpfTsKRHIuYXR0YWNoKDMwNDYsbHYucHJvdG90eXBlLHtvaToxLHJpOjIscGk6Myx0aTo0fSk7dmFyIHZ2PVdxKGNyKSx3dj1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsayxsLG4pe18udS5jYWxsKHRoaXMpO3RoaXMuTz1ifHxudWxsO3RoaXMuSz0hIWM7dGhpcy5HPWR8fCJ0cmFuc3BhcmVudCI7dGhpcy5EPWZ8fCIiO2I9Z3x8e2ZldGNoU3RhcnQ6MCxTazowfTthPWIuZmV0Y2hTdGFydHx8MDtiPWIuZmV0Y2hFbmR8fDA7dGhpcy5GPWEmJmI/Yi1hOjA7dGhpcy5SPURhdGUubm93KCktcnE7dGhpcy5BPSExO3RoaXMuZz1uZXcgUnIoZXx8IiIsdm9pZCAwLGYsbik7dGhpcy5JPW5ldyB6dCgxKTt0aGlzLkI9bmV3IHR0O3RoaXMubD1udWxsO3RoaXMuQz0hMDt0aGlzLm89Xy52LkludGVyc2VjdGlvbk9ic2VydmVyIT1udWxsO3RoaXMuTD1ofHxudWxsO2U9bmV3IGpyO2Y9bmV3IGxyKHRoaXMuZy5pbml0aWFsaXplLmJpbmQodGhpcy5nLGUucmVnaXN0ZXIoKSkpO3RoaXMuemM9bXIoZixlLmRlbGF5KCgwLF8ueSkodGhpcy56Yyx0aGlzKSkpO3RoaXMuUGM9bXIoZixlLmRlbGF5KCgwLF8ueSkodGhpcy5QYywKdGhpcykpKTt0aGlzLnFkPW1yKGYsZS5kZWxheSgoMCxfLnkpKHRoaXMucWQsdGhpcykpKTt0aGlzLnJlc3RvcmU9bXIoZixlLmRlbGF5KCgwLF8ueSkodGhpcy5yZXN0b3JlLHRoaXMpKSk7Zi5maW5pc2goKTtlLmZpbmlzaCgpO3BlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5tYXJrJiZwZXJmb3JtYW5jZS5tYXJrKFJxLHZvaWQgMCk7ZT1kcih2diwxKTtmPW5ldyBRbjtmPV8uVGooZiwxLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO2E6e2lmKHBlcmZvcm1hbmNlJiYoaD1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIiksaC5sZW5ndGg9PTEpKXtoPWhbMF07YnJlYWsgYX1oPW51bGx9aCYmKG49bmV3IEZtLG49Xy5UaihuLDEsIiIpLGE9R20oaC5zdGFydFRpbWUpLG49Xy5MKG4sMixhKSxhPUhtKGguZHVyYXRpb24pLG49Xy5MKG4sMyxhKSxhPW5ldyBQbixhPV8uVGooYSwxLGguaW5pdGlhdG9yVHlwZSksYT1fLlRqKGEsMixoLm5leHRIb3BQcm90b2NvbCksCmI9R20oaC53b3JrZXJTdGFydHx8MCksYT1fLkwoYSwzLGIpLGI9R20oaC5yZWRpcmVjdFN0YXJ0KSxhPV8uTChhLDQsYiksYj1HbShoLnJlZGlyZWN0U3RhcnQpLGE9Xy5MKGEsNCxiKSxiPUdtKGgucmVkaXJlY3RFbmQpLGE9Xy5MKGEsNSxiKSxiPUdtKGguZmV0Y2hTdGFydCksYT1fLkwoYSw2LGIpLGI9R20oaC5kb21haW5Mb29rdXBTdGFydCksYT1fLkwoYSw3LGIpLGI9R20oaC5kb21haW5Mb29rdXBFbmQpLGE9Xy5MKGEsOCxiKSxiPUdtKGguY29ubmVjdFN0YXJ0KSxhPV8uTChhLDksYiksYj1HbShoLmNvbm5lY3RFbmQpLGE9Xy5MKGEsMTAsYiksYj1HbShoLnNlY3VyZUNvbm5lY3Rpb25TdGFydCksYT1fLkwoYSwxMSxiKSxiPUdtKGgucmVzcG9uc2VTdGFydCksYT1fLkwoYSwxMyxiKSxiPUdtKGgucmVzcG9uc2VFbmQpLGE9Xy5MKGEsMTQsYiksYT1fLmprKGEsMTUsaC50cmFuc2ZlclNpemUpLGE9Xy5qayhhLDE2LGguZW5jb2RlZEJvZHlTaXplKSxhPV8uamsoYSwxNyxoLmRlY29kZWRCb2R5U2l6ZSksCm49Sm0obiw2LGEpLF8uTChmLDMsbiksbj1ObShScSkpJiYoaD1PbShVcSx7c3RhcnQ6aC5yZXNwb25zZUVuZCxlbmQ6bi5zdGFydFRpbWV8fHBlcmZvcm1hbmNlLm5vdygpfSkpJiYocGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMmJnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMoVXEpLGg9S20oaCksXy5MKGYsNCxoKSxoPVVuKGUpLF8uTChoLDQsZikpO2ZyKGUsMSl9O18uRyh3dixfLnUpO0RyLmF0dGFjaCgxNDA5Nyx3di5wcm90b3R5cGUse2JlOmZ1bmN0aW9uKCl7UW0odGhpcy5nLlRhKCk/InRlX2FmYXMiOiJ0ZV9hZmF1Iil9fSk7Xy5tPXd2LnByb3RvdHlwZTtfLm0uUGk9ZnVuY3Rpb24oYSl7dGhpcy5vPWF9O18ubS5TYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcuVGEoKX07Cl8ubS56Yz1mdW5jdGlvbihhLGIpe3RoaXMuZy5TYSgpP3RoaXMuZy5vLnNlbmQoe2Rpc3BsYXlfbGFuZ3VhZ2U6YixrZXk6IkFJemFTeUJXRGowUUp2Vkl4OFhPaFJlZ1hYNV9TclJXeGhUNUhzNCJ9LGEpLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIGEoYyl9KToodGhpcy5iZSgpLGEobnVsbCkpfTsKXy5tLlBjPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nO2lmKGIpYShiKTtlbHNlIGlmKHRoaXMuZy5TYSgpKXtiPW5ldyBhcyhkb2N1bWVudC5ib2R5LCExLCExLDEsMSk7Zm9yKHZhciBjPVtdLGQ9MCxlPXRoaXMuZy5oLkhmO2MubGVuZ3RoK2Q8ZTspe3ZhciBmPWIubmV4dCgpO2lmKGYuZG9uZSlicmVhaztmPWYudmFsdWU7Yi5nPT0xJiYkdChmKT9icyhiKTpmLm5vZGVUeXBlPT0zJiYoZj1fLkFjKGpvKGYubm9kZVZhbHVlKSkpJiYoYy5wdXNoKGYpLGQrPWYubGVuZ3RoKX1Tcih0aGlzLmcsYSxjLmpvaW4oIiAiKSkudGhlbihmdW5jdGlvbihnKXthKGcpfSxmdW5jdGlvbihnKXtyZXR1cm4gYShudWxsLGcpfSl9ZWxzZSB0aGlzLmJlKCksYShudWxsLCEwKX07Cl8ubS5xZD1mdW5jdGlvbihhLGIsYyxkLGUpe3Z2LkViPWE7dnYuRmI9Yjt2YXIgZj1kcih2diwyKTtlcih2dixmKTt2YXIgZz1ObShScSk7aWYoZyl7dmFyIGg9Tm0oU3EpO2lmKGgpe3ZhciBrPU9tKFZxLHtzdGFydDpnLnN0YXJ0VGltZSxlbmQ6aC5zdGFydFRpbWV8fHBlcmZvcm1hbmNlLm5vdygpfSk7ayYmKGc9VW4oZiksaD1uZXcgU24saz1LbShrKSxoPV8uTChoLDEsayksXy5MKGcsNSxoKSxwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyYmcGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyhWcSkpfX1mcihmLDIpO2Y9e2RldGFpbDp7c291cmNlTGFuZ3VhZ2U6YSx0YXJnZXRMYW5ndWFnZTpifX07cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm1hcmsmJnBlcmZvcm1hbmNlLm1hcmsoU3EsZik7Zj1EYXRlLm5vdygpO0NyKCk7aWYoIWF8fHhyKGEsYikpYT0iYXV0byI7aWYoZXx8YSE9dGhpcy5ofHxiIT10aGlzLmopdGhpcy5CPW5ldyB0dDt0aGlzLmg9YTt0aGlzLmo9CmI7dGhpcy5nLlNhKCk/KGQ9ZHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMubCYmdGhpcy5sLmRpc3Bvc2UoKSx0aGlzLmw9bmV3IGx2KGQsdGhpcy5nLHRoaXMuTyx0aGlzLkssdGhpcy5HLCEwLHRoaXMuSSx0aGlzLkIsdGhpcy5vLHRoaXMuTCksdGhpcy5sLnlmPXRoaXMuQSx0aGlzLkM9ITAsdGhpcy5sLnRyYW5zbGF0ZShhLGIsYyxlLCgwLF8ueSkodGhpcy55aSx0aGlzLGYsYSxiKSkpOih0aGlzLmJlKCksYygwLCExLCEwKSl9O18ubS5wZz1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5sJiZ0aGlzLmwuZ307Xy5tLllmPWZ1bmN0aW9uKGEpe3RoaXMuQT1hfTtfLm0ucmVzdG9yZT1mdW5jdGlvbigpe3ZhciBhPWRyKHZ2LDMpO2VyKHZ2LGEpO2ZyKGEsMyk7cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm1hcmsmJnBlcmZvcm1hbmNlLm1hcmsoVHEsdm9pZCAwKTtDcigpO3RoaXMuZy5TYSgpJiZ0aGlzLmwmJnRoaXMubC5yZXN0b3JlKCl9OwpfLm0uTT1mdW5jdGlvbigpe0JyKCk7d3YuZWEuTS5jYWxsKHRoaXMpO3RoaXMuZy5kaXNwb3NlKCk7dGhpcy5sPXRoaXMuZz1udWxsO3RoaXMuQj1uZXcgdHR9OwpfLm0ueWk9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5DJiYodGhpcy5DPSExLGI9e3NsOmIsdGw6Yyx0ZXh0bGVuOmR9LHRoaXMuQSYmKGIuY3R0PSIxIiksdGhpcy5EIT0iIiYmKGIuc3A9dGhpcy5EKSxiLnR0dD1EYXRlLm5vdygpLWEsYi50dGw9dGhpcy5SLHRoaXMuRiYmKGIudHRmPXRoaXMuRiksdGhpcy5vJiYoYi5zcj0xKSxhPXBxLGM9W10sXy5vaShfLlppKGEsMikpJiZjLnB1c2goInNkYSIpLF8ub2koXy5aaShhLDMpKSYmYy5wdXNoKCJlZWlzIiksZD1fLmJqKGEsaXEsNiksXy5vaShfLlppKGQsMSkpJiZjLnB1c2goImVzdHMiKSxfLm9pKF8uWmkoYSw3KSkmJmMucHVzaCgiZWhjbSIpLF8ub2koXy5aaShhLDgpKSYmYy5wdXNoKCJlb3BhIiksXy5vaShfLlppKGEsOSkpJiZjLnB1c2goImVhZHQiKSxiLmVmPWMuam9pbigiLCIpLFFtKCJ0ZV90aW1lIixiKSl9O3ZhciB4dj1mdW5jdGlvbihhKXt4bi5jYWxsKHRoaXMsYSk7dGhpcy5BPW5ldyBfLkhiKHRoaXMpfTtfLkIoeHYseG4pO3h2LnByb3RvdHlwZS5TPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpO2EuY2xhc3NOYW1lPSJnb29nLXRlLWNvbWJvIjthLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsUi5FZSk7dGhpcy5PYShhKX07eHYucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7eG4ucHJvdG90eXBlLkxhLmNhbGwodGhpcyk7dGhpcy5aZSgpfTt4di5wcm90b3R5cGUuWmU9ZnVuY3Rpb24oKXtfLngodGhpcy5IKCksImNoYW5nZSIscHIodGhpcywiY2hhbmdlIikpO3RoaXMuZGlzcGF0Y2hFdmVudCgibG9hZCIpfTt4di5wcm90b3R5cGUuc2E9ZnVuY3Rpb24oKXt4bi5wcm90b3R5cGUuc2EuY2FsbCh0aGlzKTt0aGlzLkEuZGlzcG9zZSgpO3RoaXMuQT1udWxsfTsKdmFyIHl2PWZ1bmN0aW9uKGEsYil7YS5IKCkucGFyZW50Tm9kZSE9YiYmKGEuSCgpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYS5IKCkpLGIuYXBwZW5kQ2hpbGQoYS5IKCkpKX07Xy5tPXh2LnByb3RvdHlwZTtfLm0udWM9ZnVuY3Rpb24oYSl7dGhpcy5oLmllKHRoaXMuSCgpKTtmb3IodmFyIGIgaW4gYSlpZihhW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXSl7dmFyIGM9dGhpcy5oLlMoIk9QVElPTiIse3ZhbHVlOmJ9KTt0aGlzLmguU2IoYyxhW2JdKTt0aGlzLkgoKS5hcHBlbmRDaGlsZChjKX10aGlzLkgoKS5zZWxlY3RlZEluZGV4PTB9O18ubS5NYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgoKS52YWx1ZX07Xy5tLmNiPWZ1bmN0aW9uKGEpe2lmKHRoaXMuSCgpLnZhbHVlIT1hKWZvcih2YXIgYj0wLGM7Yz10aGlzLkgoKS5vcHRpb25zLml0ZW0oYik7KytiKWlmKGMudmFsdWU9PWEpe3RoaXMuSCgpLnNlbGVjdGVkSW5kZXg9YjticmVha319OwpfLm0uQWM9ZnVuY3Rpb24oYSl7aWYoXy5vYyhhKT09InVuZGVmaW5lZCIpcmV0dXJuIHRoaXMuSCgpLm9wdGlvbnMuaXRlbSh0aGlzLkgoKS5zZWxlY3RlZEluZGV4KS50ZXh0O2Zvcih2YXIgYj0wLGM7Yz10aGlzLkgoKS5vcHRpb25zLml0ZW0oYik7KytiKWlmKGMudmFsdWU9PWEpcmV0dXJuIGMudGV4dH07Xy5tLlJiPWZ1bmN0aW9uKGEpe3RoaXMuSCgpLmRpc2FibGVkPSFhfTt2YXIgenY9ZnVuY3Rpb24oYSl7eHYuY2FsbCh0aGlzLGEpfTtfLkIoenYseHYpO3p2LnByb3RvdHlwZS5uYj1mdW5jdGlvbihhKXt0aGlzLnVjLmNhbGwodGhpcyxhKX07dmFyIEF2PWZ1bmN0aW9uKGEsYil7eHYuY2FsbCh0aGlzLGIpO3RoaXMuZz1hJiZKbChhKXx8e307dGhpcy5nLm9lPXRoaXMuZy5vZXx8MTE7dGhpcy5nLnBkPXRoaXMuZy5wZCE9MDt0aGlzLmcuZWI9QXF9O18uQihBdix4dik7Xy5tPUF2LnByb3RvdHlwZTtfLm0uS2M9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiR2EiKTt9OwpfLm0uUz1mdW5jdGlvbigpe3RoaXMuS2MoKTt0aGlzLkQ9dGhpcy5IKCk7dGhpcy5sPXdvKCJJRlJBTUUiLHtmcmFtZUJvcmRlcjowLCJjbGFzcyI6IlZJcGdKZC1aVmk5b2QteGwwN09iLU9FVm1jZCBza2lwdHJhbnNsYXRlIix0aXRsZTpSLkVlfSk7dGhpcy5sLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiO21wKHRoaXMubCwhMSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmwpfTsKXy5tLlplPWZ1bmN0aW9uKCl7dmFyIGE9Xy54Zi50ZXN0KG9xKT8icnRsIjoibHRyIixiPV8uTGIodGhpcy5nLmViKSxjPVModGhpcywibWVudUJvZHkiKTt0aGlzLkEuTih0aGlzLmwsImxvYWQiLHRoaXMucWcpO3RyKHRoaXMubCwoMCxfLnkpKGZ1bmN0aW9uKCl7dmFyIGQ9em8odGhpcy5sKSxlPXt9LGY9ZSYmZS5UZTtlPVduKFZuKF8ueWwoKSwiPGhlYWQ+IiksT3UoZSkpO2Y9JzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURjgiPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IicrUCh4cChiKSkrJyInKyhmPycgbm9uY2U9IicrUChZcChmKSkrJyInOiIiKSsnPjwvaGVhZD48Ym9keSBzY3JvbGw9Im5vIiBzdHlsZT0ibWFyZ2luOjBweDtvdmVyZmxvdzpoaWRkZW4iIGRpcj0iJytQKGEpKyciIG1hcmdpbkhlaWdodD0wIG1hcmdpbldpZHRoPTAgbGVmdE1hcmdpbj0wIHRvcE1hcmdpbj0wIGJvcmRlcj0wPjxkaXYgaWQ9IicrClAoYykrJyIgY2xhc3M9JztpZih3cCgiVklwZ0pkLVpWaTlvZC14bDA3T2IiLF8ucWwpKXt2YXIgZz1NcCgiVklwZ0pkLVpWaTlvZC14bDA3T2IiLm1hKCkpO2c9U3RyaW5nKGcpLnJlcGxhY2UoT3AsQ3ApfWVsc2UgZz0iVklwZ0pkLVpWaTlvZC14bDA3T2IiLnJlcGxhY2UoTnAsQ3ApO2U9Vm4oZSxmK2crIj48L2Rpdj48L2JvZHk+IikuVGIoKTtkLndyaXRlKF8ua2ooZSkpO2QuY2xvc2UoKX0sdGhpcykpfTtfLm0ucWc9ZnVuY3Rpb24oKXt0aGlzLmo9bmV3IF8ucmQoem8odGhpcy5sKSk7dGhpcy5MPXRoaXMuai5IKFModGhpcywibWVudUJvZHkiKSk7dGhpcy5BLk4odGhpcy5ELCJjbGljayIsdGhpcy5UZCk7Xy5TYz90aGlzLkEuTih0aGlzLmwsImJsdXIiLHRoaXMuUmMpOnRoaXMuQS5OKEFvKHRoaXMubCksImJsdXIiLHRoaXMuUmMpO3RoaXMuZGlzcGF0Y2hFdmVudCgibG9hZCIpfTsKXy5tLnNhPWZ1bmN0aW9uKCl7eHYucHJvdG90eXBlLnNhLmNhbGwodGhpcyk7Xy5BZCh0aGlzLmwpO3RoaXMuRD10aGlzLlQ9dGhpcy5CPXRoaXMuTD10aGlzLmo9dGhpcy5sPW51bGx9O18ubS5xZj1mdW5jdGlvbihhKXt0aGlzLm8hPWEuY3VycmVudFRhcmdldC52YWx1ZSYmKHRoaXMuY2IoYS5jdXJyZW50VGFyZ2V0LnZhbHVlKSx0aGlzLmRpc3BhdGNoRXZlbnQoImNoYW5nZSIpKTt0aGlzLlJjKCl9O18ubS5UZD1mdW5jdGlvbigpe0J2KHRoaXMpO0FvKHRoaXMubCkuZm9jdXMoKTt0aGlzLnJhPSEwfTtfLm0uUmM9ZnVuY3Rpb24oKXt0aGlzLnJhJiYodGhpcy5yYT0hMSxCdih0aGlzLCExKSxfLm1iKF8uc2QodGhpcy5EKSkuZm9jdXMoKSl9O18ubS5rZT1mdW5jdGlvbigpe307Xy5tLmxlPWZ1bmN0aW9uKCl7fTsKdmFyIEJ2PWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGI9PSJ1bmRlZmluZWQifHxiKXthLmxlKCk7Yj1qcChhLkQsd2luZG93KTt2YXIgYz1iLnkrYS5ELm9mZnNldEhlaWdodCxkPWIueS1hLkcuaGVpZ2h0LGU9Yi54LGY9Yi54K2EuRC5vZmZzZXRXaWR0aC1hLkcud2lkdGg7aWYoXy5TYyYmIXNvKCkpe3ZhciBnPWRvY3VtZW50LmJvZHk7Yy09Zy5vZmZzZXRUb3A7ZC09Zy5vZmZzZXRUb3A7ZS09Zy5vZmZzZXRMZWZ0O2YtPWcub2Zmc2V0TGVmdH1lbHNlIGc9S24oZG9jdW1lbnQpLGMtPWcueSxkLT1nLnksZS09Zy54LGYtPWcueDtnPV8uaWIod2luZG93KTtiLnk9Yi55PD1nLmhlaWdodC1hLkcuaGVpZ2h0P2M6ZDtiLnk+Zy5oZWlnaHQtYS5HLmhlaWdodCYmKGIueT1nLmhlaWdodC1hLkcuaGVpZ2h0KTtiLnk8MCYmKGIueT0wKTtfLnhmLnRlc3Qob3EpP2IueD1mPj0wP2Y6ZTpiLng9ZTw9Zy53aWR0aC1hLkcud2lkdGg/ZTpmO2IueD5nLndpZHRoLWEuRy53aWR0aCYmKGIueD1nLndpZHRoLQphLkcud2lkdGgpO2IueDwwJiYoYi54PTApO2VwKGEubCxiKTttcChhLmwsITApO0N2KGEpfWVsc2UgYS5rZSgpLG1wKGEubCwhMSl9O18ubT1Bdi5wcm90b3R5cGU7Xy5tLk1hPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub307Cl8ubS51Yz1mdW5jdGlvbihhKXt0aGlzLmouaWUodGhpcy5MKTttcCh0aGlzLmwsITApO3RoaXMuSWE9YTt0aGlzLkI9W107Zm9yKHZhciBiIGluIGEpaWYoYVtiXSE9PU9iamVjdC5wcm90b3R5cGVbYl0paWYoYVtiXT09Ii0tLSIpe3ZhciBjPXtsaW5rOnRoaXMuai5TKCJESVYiLHtjbGFzc05hbWU6IlZJcGdKZC1aVmk5b2QtdkgxR21mLWhnRFV3ZSIsdmFsdWU6Yn0pLGdpOiEwfTt0aGlzLkIucHVzaChjKX1lbHNle2M9e2xpbms6dGhpcy5qLlMoIkEiLHtjbGFzc05hbWU6IlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQiLGhyZWY6IiMiLHZhbHVlOmJ9KX07dGhpcy5CLnB1c2goYyk7dmFyIGQ9dGhpcy5qLlMoIkRJViIse3N0eWxlOiJ3aGl0ZS1zcGFjZTpub3dyYXAifSk7dGhpcy5qLmFwcGVuZENoaWxkKGMubGluayxkKTt0aGlzLmcucGQmJnRoaXMuai5hcHBlbmRDaGlsZChkLHRoaXMuai5TKCJTUEFOIix7Y2xhc3NOYW1lOiJpbmRpY2F0b3IifSwiXHUyMDNhIikpOwp0aGlzLmouYXBwZW5kQ2hpbGQoZCx0aGlzLmouUygiU1BBTiIse2NsYXNzTmFtZToidGV4dCJ9LHR5cGVvZiBhW2JdPT09ImZ1bmN0aW9uIj9hW2JdKCk6YVtiXSkpO3RoaXMuQS5OKGMubGluaywiY2xpY2siLHRoaXMucWYpfWE9dGhpcy5CLmxlbmd0aC0xO2E9TWF0aC5yb3VuZCgoYS1hJXRoaXMuZy5vZSkvdGhpcy5nLm9lKSsxO3RoaXMuVD10aGlzLmouUygiVEFCTEUiLHtjZWxsc3BhY2luZzowLGNlbGxwYWRkaW5nOjAsYm9yZGVyOjB9KTtjPXRoaXMuai5TKCJUQk9EWSIpO2I9dGhpcy5qLlMoIlRSIix7dmFsaWduOiJ0b3AifSk7dGhpcy5MLmNsYXNzTmFtZT0iVklwZ0pkLVpWaTlvZC12SDFHbWYiO3RoaXMuai5hcHBlbmRDaGlsZCh0aGlzLkwsdGhpcy5UKTt0aGlzLmouYXBwZW5kQ2hpbGQodGhpcy5ULGMpO3RoaXMuai5hcHBlbmRDaGlsZChjLGIpO2ZvcihkPWM9MDtjPGE7KytjKXt2YXIgZT10aGlzLmouUygiVEQiKTt0aGlzLmouYXBwZW5kQ2hpbGQoYixlKTtmb3IodmFyIGY9CjA7ZjwxMSYmZDx0aGlzLkIubGVuZ3RoOysrZiwrK2QpdGhpcy5qLmFwcGVuZENoaWxkKGUsdGhpcy5CW2RdLmxpbmspO2MhPWEtMSYmKGU9dGhpcy5qLlMoIlREIix7ImNsYXNzIjoiVklwZ0pkLVpWaTlvZC12SDFHbWYtS3JoUE5iIn0sIlx1MDBhMCIpLHRoaXMuai5hcHBlbmRDaGlsZChiLGUpKX10aGlzLm89bnVsbDt0aGlzLmNiKHRoaXMuQlswXS5saW5rLnZhbHVlKTtDdih0aGlzKTttcCh0aGlzLmwsITEpfTtfLm0uQWM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSWFbXy5vYyhhKT09InVuZGVmaW5lZCI/dGhpcy5vOmFdfTtfLm0ubWU9ZnVuY3Rpb24oKXt9OwpfLm0uY2I9ZnVuY3Rpb24oYSl7aWYodGhpcy5vIT1hKXt0aGlzLkFjKGEpJiYodGhpcy5vPWEsdGhpcy5tZSgpKTtmb3IodmFyIGI9MDtiPHRoaXMuQi5sZW5ndGg7KytiKXt2YXIgYz10aGlzLkJbYl07Yy5naXx8KGMubGluay5jbGFzc05hbWU9Yy5saW5rLnZhbHVlPT1hJiZ0aGlzLmcucGQ/IlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQiOiJWSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmIiKX19fTt2YXIgQ3Y9ZnVuY3Rpb24oYSl7cXAoYS5MLG9wKGEuVCkpO3FwKGEubCxvcChhLkwpKTthLkc9b3AoYS5sKX0sRHY9ZnVuY3Rpb24oYSxiKXtBdi5jYWxsKHRoaXMsYSxiKX07Xy5CKER2LEF2KTtfLm09RHYucHJvdG90eXBlOwpfLm0uS2M9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUygiYSIseyJhcmlhLWhhc3BvcHVwIjoidHJ1ZSJ9KTthLmNsYXNzTmFtZT0iVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVkIjtfLm5sKGEsIiMiKTt0aGlzLkk9dGhpcy5oLlMoIlNQQU4iKTthLmFwcGVuZENoaWxkKHRoaXMuSSk7dGhpcy5QPXRoaXMuaC5TKCJJTUciLHtzcmM6Q3EsYWx0OiIiLHN0eWxlOiJiYWNrZ3JvdW5kLWltYWdlOnVybCgiK3hxKyIpO2JhY2tncm91bmQtcG9zaXRpb246LTE0cHggMHB4O2JvcmRlcjpub25lIix3aWR0aDoxNCxoZWlnaHQ6MTR9KTthLmFwcGVuZENoaWxkKHRoaXMuUCk7dGhpcy5PYShhKX07Xy5tLmtlPWZ1bmN0aW9uKCl7Xy5oaih0aGlzLlAsImJhY2tncm91bmRQb3NpdGlvbiIsIi0xNHB4IDBweCIpfTtfLm0ubGU9ZnVuY3Rpb24oKXtfLmhqKHRoaXMuUCwiYmFja2dyb3VuZFBvc2l0aW9uIiwiMHB4IDBweCIpfTsKXy5tLnNhPWZ1bmN0aW9uKCl7QXYucHJvdG90eXBlLnNhLmNhbGwodGhpcyk7dGhpcy5QPXRoaXMuST1udWxsfTtfLm0ubWU9ZnVuY3Rpb24oKXt0aGlzLmguU2IodGhpcy5JLHRoaXMuQWModGhpcy5vKXx8IiIpfTtfLm0ubmI9ZnVuY3Rpb24oYSl7dGhpcy51Yy5jYWxsKHRoaXMsYSl9O3ZhciBFdj1mdW5jdGlvbihhLGIpe0F2LmNhbGwodGhpcyxhLGIpfTtfLkIoRXYsQXYpO18ubT1Fdi5wcm90b3R5cGU7Cl8ubS5LYz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5TKCJhIix7ImFyaWEtaGFzcG9wdXAiOiJ0cnVlIn0pO2EuY2xhc3NOYW1lPSJWSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQiO18ubmwoYSwiIyIpO3RoaXMuST10aGlzLmguUygiU1BBTiIpO2EuYXBwZW5kQ2hpbGQodGhpcy5JKTthLmFwcGVuZENoaWxkKHRoaXMuaC5TKCJJTUciLHtzcmM6Q3EsYWx0OiIiLHdpZHRoOjEsaGVpZ2h0OjF9KSk7YS5hcHBlbmRDaGlsZCh0aGlzLmguUygiU1BBTiIse3N0eWxlOiJib3JkZXItbGVmdDoxcHggc29saWQgI2JiYiJ9LCJcdTIwMGIiKSk7YS5hcHBlbmRDaGlsZCh0aGlzLmguUygiSU1HIix7c3JjOkNxLGFsdDoiIix3aWR0aDoxLGhlaWdodDoxfSkpO3RoaXMuUD10aGlzLmguUygic3BhbiIse3N0eWxlOiJjb2xvcjojNzY3Njc2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sIlx1MjViYyIpO2EuYXBwZW5kQ2hpbGQodGhpcy5QKTt0aGlzLk9hKGEpfTsKXy5tLmtlPWZ1bmN0aW9uKCl7Xy5oaih0aGlzLlAsImNvbG9yIiwiIzliOWI5YiIpfTtfLm0ubGU9ZnVuY3Rpb24oKXtfLmhqKHRoaXMuUCwiY29sb3IiLCIjZDVkNWQ1Iil9O18ubS5zYT1mdW5jdGlvbigpe0F2LnByb3RvdHlwZS5zYS5jYWxsKHRoaXMpO3RoaXMuUD10aGlzLkk9bnVsbH07Xy5tLm1lPWZ1bmN0aW9uKCl7dGhpcy5oLlNiKHRoaXMuSSx0aGlzLkFjKHRoaXMubyl8fCIiKX07Xy5tLm5iPWZ1bmN0aW9uKGEpe3RoaXMudWMuY2FsbCh0aGlzLGEpfTt2YXIgRnY9ZnVuY3Rpb24oYSxiKXtBdi5jYWxsKHRoaXMsYSxiKTt0aGlzLmcucGQ9ITF9O18uQihGdixBdik7CkZ2LnByb3RvdHlwZS5LYz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0iVklwZ0pkLVpWaTlvZC1MZ2JzU2UiO3ZhciBiPXRoaXMuaC5TKCJESVYiLHtzdHlsZToiYmFja2dyb3VuZDogdXJsKCIrd3ErIikgcmVwZWF0LXggMCAtMzlweCJ9KTthLmFwcGVuZENoaWxkKGIpO3RoaXMuST10aGlzLmguY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7Yi5hcHBlbmRDaGlsZCh0aGlzLkkpO3RoaXMuT2EoYSl9O0Z2LnByb3RvdHlwZS5zYT1mdW5jdGlvbigpe0F2LnByb3RvdHlwZS5zYS5jYWxsKHRoaXMpO3RoaXMuST1udWxsfTtGdi5wcm90b3R5cGUucWY9ZnVuY3Rpb24oYSl7dGhpcy5jYihhLmN1cnJlbnRUYXJnZXQudmFsdWUpO3RoaXMuZGlzcGF0Y2hFdmVudCgiY2hhbmdlIik7dGhpcy5SYygpfTt2YXIgR3Y9ZnVuY3Rpb24oYSxiKXt4bi5jYWxsKHRoaXMsYik7dGhpcy5nPWEmJkpsKGEpfHx7fTt0aGlzLmo9bmV3IF8uSGIodGhpcyl9O18uRyhHdix4bik7dmFyIEh2PXt6azowLEtqOjEsaGs6Mn07Xy5tPUd2LnByb3RvdHlwZTsKXy5tLlM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguY3JlYXRlRWxlbWVudCgiZGl2Iik7TnQoYSwic2tpcHRyYW5zbGF0ZSIpO050KGEsImdvb2ctdGUtZ2FkZ2V0Iik7YS5kaXI9Xy54Zi50ZXN0KG9xKT8icnRsIjoibHRyIjttcChhLCExKTtpZih0aGlzLmcubGF5b3V0PT0yKWltKGEsUXUoe2lkOlModGhpcywidGFyZ2V0TGFuZ3VhZ2UiKSxTZjoiIixSZjoiIn0pKTtlbHNle3ZhciBiPW5ldyB0bztpZihzcChfLlNjJiYhc28oKSkpdmFyIGM9IjxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2hlaWdodDoxNXB4OyB3aWR0aDo1MXB4O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlciggc3JjPSciK1N0cmluZyhGcSkucmVwbGFjZShScCxHcCkrIicsc2l6aW5nTWV0aG9kPSdzY2FsZScpO1wiPjwvc3Bhbj4iO2Vsc2UgYz1ocy53ZCxjPSc8aW1nIHNyYz0iJytQKFdwKEZxKSkrCiciIHdpZHRoPSIzN3B4IiBoZWlnaHQ9IjE0cHgiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAzcHgiIGFsdD0iR29vZ2xlICcrUChjKSsnIj4nO3ZhciBkPWhzLndkO3ZhciBlPSgwLF8udGwpKCc8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6bm93cmFwIj48YSBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZCIpKyciIGhyZWY9IicrUChVcChHcSkpKyciIHRhcmdldD0iX2JsYW5rIj4nK2MrS3AoZCkrIjwvYT48L3NwYW4+Iik7Yz1iLmZvcm1hdDtkPVI7dmFyIGY9ZC56ZztlPWUuVGIoKTtlPXVvKGIse3R5cGU6Imh0bWwiLHhmOl8ua2ooZSkudG9TdHJpbmcoKX0pO2I9Yy5jYWxsKGIsZi5jYWxsKGQsZSkpO2ltKGEsUXUoe2lkOlModGhpcywidGFyZ2V0TGFuZ3VhZ2UiKSxTZjoiIixSZjp0aGlzLmcubGF5b3V0PT0xP1JsKFsiXHUwMGEwIiwiXHUwMGEwIixiXSk6Yn0pKX10aGlzLk9hKGEpfTsKXy5tLkxhPWZ1bmN0aW9uKCl7R3YuZWEuTGEuY2FsbCh0aGlzKTt0aGlzLmw9dGhpcy5nLmxheW91dD09Mj9uZXcgRXYobnVsbCx0aGlzLmgpOm5ldyB6dih0aGlzLmgpO3RoaXMuai5OKHRoaXMubCwiY2hhbmdlIixwcih0aGlzLCJjaGdfdGd0X2xhbmciKSk7dGhpcy5qLk4odGhpcy5sLCJsb2FkIix0aGlzLnJnKTt2YXIgYT10aGlzLmguSChTKHRoaXMsInRhcmdldExhbmd1YWdlIikpO2lmKHRoaXMuZy5sYXlvdXQ9PTIpe3ZhciBiPXRoaXMuaC5TKCJJTUciLHtzcmM6Q3EsImNsYXNzIjoiZ29vZy10ZS1nYWRnZXQtaWNvbiIsYWx0OiIifSk7Yi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9InVybCgiK3hxKyIpIjtiLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbj0iLTY1cHggMHB4Ijt2YXIgYz10aGlzLmguUygiU1BBTiIse3N0eWxlOiJ2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlIn0pO2EuYXBwZW5kQ2hpbGQoYik7YS5hcHBlbmRDaGlsZChjKTt0aGlzLmwua2EoYyk7YS5zdHlsZS53aGl0ZVNwYWNlPQoibm93cmFwIjthLmNsYXNzTmFtZT0iZ29vZy10ZS1nYWRnZXQtc2ltcGxlIn1lbHNlIHRoaXMubC5rYShhKSx0aGlzLmcubGF5b3V0PT0xJiYoYS5zdHlsZS5kaXNwbGF5PSJpbmxpbmUiKX07Xy5tLnJnPWZ1bmN0aW9uKCl7aWYodGhpcy5nLmxheW91dD09Mil7dmFyIGE9dGhpcy5sLGI9dGhpcy5oLkgoUyh0aGlzLCJ0YXJnZXRMYW5ndWFnZSIpKTthLkEueWMoYS5ELCJjbGljayIsYS5UZCk7YS5EPWI7YS5BLk4oYS5ELCJjbGljayIsYS5UZCl9dGhpcy5kaXNwYXRjaEV2ZW50KCJsb2FkIil9O18ubS5zYT1mdW5jdGlvbigpe0d2LmVhLnNhLmNhbGwodGhpcyk7dGhpcy5qLmRpc3Bvc2UoKTt0aGlzLmo9bnVsbDt0aGlzLmwuZGlzcG9zZSgpO3RoaXMubD1udWxsfTtfLm0ub2E9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sLk1hKCl9O18ubS5uYT1mdW5jdGlvbihhKXthPT0iIj90aGlzLkwmJnRoaXMubC5uYih0aGlzLkwpOnRoaXMuSSYmdGhpcy5sLm5iKHRoaXMuSSk7dGhpcy5sLmNiKGEpfTsKXy5tLnBhPWZ1bmN0aW9uKGEpe21wKHRoaXMuSCgpLGEpfTtfLm0uUmI9ZnVuY3Rpb24oYSl7dGhpcy5sLlJiKGEpfTtfLm0udWU9ZnVuY3Rpb24oYSxiKXt0aGlzLkw9YTt0aGlzLkk9Yn07dmFyIEl2PWZ1bmN0aW9uKGEsYil7eG4uY2FsbCh0aGlzLGIpO3RoaXMuZz1hJiZKbChhKXx8e307dGhpcy5nLmVifHwodGhpcy5nLmViPUFxKTt0aGlzLmo9bmV3IF8uSGIodGhpcyl9O18uRyhJdix4bik7dmFyIEp2PXtwazoxLHFrOjIsbGo6Myxrajo0fTtfLm09SXYucHJvdG90eXBlO18ubS5TPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3RoaXMuRz0hMTttcChhLCExKTt2YXIgYj1TKHRoaXMsImNvbnRhaW5lciIpO2I9KDAsXy50bCkoJzxpZnJhbWUgaWQ9IicrUChiKSsnIiBmcmFtZUJvcmRlcj0wIHNyYz0iamF2YXNjcmlwdDpcJ1wnIiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLVNtZlotT0VWbWNkIikrJyBza2lwdHJhbnNsYXRlIiBzdHlsZT0idmlzaWJpbGl0eTp2aXNpYmxlIj48L2lmcmFtZT4nKTtpbShhLGIpO3RoaXMuT2EoYSl9OwpfLm0uTGE9ZnVuY3Rpb24oKXtJdi5lYS5MYS5jYWxsKHRoaXMpO3ZhciBhPV8ueGYudGVzdChvcSk/InJ0bCI6Imx0ciIsYj1fLkxiKHRoaXMuZy5lYiksYz1TKHRoaXMsInRyYW5zbGF0ZSIpLGQ9Q3EsZT14cTt0aGlzLkgoKS5pZD1TKHRoaXMsImZsb2F0Q29udGFpbmVyIik7dmFyIGY9e2lkOnRoaXMuSCgpLmlkLGNsYXNzTmFtZToiZ29vZy10ZS1mdGFiLWZsb2F0In07dGhpcy5IKCkuY2xhc3NOYW1lKz0iIGdvb2ctdGUtZnRhYi1mbG9hdCI7c3dpdGNoKHRoaXMuZy5OYyl7Y2FzZSAyOnZhciBnPSJnb29nLXRlLWZsb2F0LXRvcCI7Zi50b3A9MDtmLnJpZ2h0PTIwO2JyZWFrO2Nhc2UgMzpnPSJnb29nLXRlLWZsb2F0LWJvdHRvbSI7Zi5ib3R0b209MDtmLnJpZ2h0PTIwO2JyZWFrO2Nhc2UgNDpnPSJnb29nLXRlLWZsb2F0LWJvdHRvbSI7Zi5ib3R0b209MDtmLmxlZnQ9MjA7YnJlYWs7ZGVmYXVsdDpnPSJnb29nLXRlLWZsb2F0LXRvcCIsZi50b3A9MCxmLmxlZnQ9MjB9bnAoWm4obmV3IF8ueWYsCmYpLHRoaXMuSCgpKTt0aGlzLkI9dGhpcy5oLkgoUyh0aGlzLCJjb250YWluZXIiKSk7dGhpcy5qLk4odGhpcy5CLCJsb2FkIix0aGlzLnNnKTt0cih0aGlzLkIsKDAsXy55KShmdW5jdGlvbigpe3ZhciBoPXpvKHRoaXMuQiksaz1nLGw9e30sbj1sJiZsLlRlLHE9aHMuSWU7az1WbihXbihWbihfLnlsKCksIjxoZWFkPiIpLE91KGwpKSwnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGOCI+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJytQKHhwKGIpKSsnIicrKG4/JyBub25jZT0iJytQKFlwKG4pKSsnIic6IiIpKyc+PC9oZWFkPjxib2R5IGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtU21mWiIpKyIgIitQKGspKyciIHNjcm9sbD0ibm8iIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW4iIGRpcj0iJytQKGEpKyciPjxhIGlkPSInK1AoYykrJyIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iJysKUCgiVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZCIpKyciPjxpbWcgc3JjPSInK1AoV3AoZCkpKyciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnK1AoV3AoZSkpKycpO2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggMHB4Ij48c3Bhbj4nK0twKHEpKyI8L3NwYW4+PC9hPjwvYm9keT4iKS5UYigpO2gud3JpdGUoXy5raihrKSk7aC5jbG9zZSgpfSx0aGlzKSl9O18ubS5zZz1mdW5jdGlvbigpe3RoaXMubD0obmV3IF8ucmQoem8odGhpcy5CKSkpLkgoUyh0aGlzLCJ0cmFuc2xhdGUiKSk7dGhpcy5qLk4odGhpcy5sLCJjbGljayIscHIodGhpcywiY2xrX3RyYW5zIikpO21wKHRoaXMuSCgpLCEwKTt2YXIgYT1vcCh0aGlzLmwpO21wKHRoaXMuSCgpLCExKTtxcCh0aGlzLkIsYSk7cXAodGhpcy5IKCksYSk7dGhpcy5kaXNwYXRjaEV2ZW50KCJsb2FkIil9OwpfLm0uc2E9ZnVuY3Rpb24oKXtJdi5lYS5zYS5jYWxsKHRoaXMpO3RoaXMuai5kaXNwb3NlKCk7dGhpcy5qPW51bGw7Xy5BZCh0aGlzLkIpO3RoaXMubD10aGlzLkI9bnVsbH07Xy5tLmlzVmlzaWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkd9O18ubS5wYT1mdW5jdGlvbihhKXt0aGlzLkc9YTttcCh0aGlzLkgoKSxhKX07dmFyIEt2PWZ1bmN0aW9uKGEsYil7eG4uY2FsbCh0aGlzLGIpO3RoaXMuQT1uZXcgXy5IYih0aGlzKTt0aGlzLmc9YSYmSmwoYSl8fHt9O3RoaXMuZy5lYj1BcTt0aGlzLmcud2U9ITE7Xy5oaih0aGlzLmguZy5ib2R5LCJwb3NpdGlvbiIsInJlbGF0aXZlIik7Xy5NaHx8Xy5oaih0aGlzLmguZy5ib2R5LCJtaW5IZWlnaHQiLCIxMDAlIik7Xy5oaih0aGlzLmguZy5kb2N1bWVudEVsZW1lbnQsImhlaWdodCIsIjEwMCUiKTtfLmhqKHRoaXMuaC5nLmJvZHksInRvcCIsIjBweCIpO18uU2MmJih3aW5kb3cuX2Jhbm5lcnF1aXJrZml4bGVmdD0tcGFyc2VJbnQoIjAiK3RoaXMuaC5nLmJvZHkubGVmdE1hcmdpbiwxMCksd2luZG93Ll9iYW5uZXJxdWlya2ZpeHRvcD0tcGFyc2VJbnQoIjAiK3RoaXMuaC5nLmJvZHkudG9wTWFyZ2luLDEwKS00MCl9O18uRyhLdix4bik7Xy5tPUt2LnByb3RvdHlwZTtfLm0ua2E9ZnVuY3Rpb24oKXt0aGlzLnFjKHRoaXMuaC5nLmJvZHkuZmlyc3RDaGlsZCl9OwpfLm0uUz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLkc9ITE7bXAoYSwhMSk7TnQoYSwic2tpcHRyYW5zbGF0ZSIpO3ZhciBiPVModGhpcywiY29udGFpbmVyIik7Yj0oMCxfLnRsKSgnPGlmcmFtZSBpZD0iJytQKGIpKyciIGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYi1PRVZtY2QiKSsnIHNraXB0cmFuc2xhdGUiIGZyYW1lQm9yZGVyPTAgc3JjPSIjIiBzdHlsZT0idmlzaWJpbGl0eTp2aXNpYmxlIj48L2lmcmFtZT4nKTtpbShhLGIpO3RoaXMuT2EoYSl9OwpfLm0uTGE9ZnVuY3Rpb24oKXtLdi5lYS5MYS5jYWxsKHRoaXMpO3ZhciBhPV8ueGYudGVzdChvcSk/InJ0bCI6Imx0ciIsYj1fLkxiKHRoaXMuZy5lYiksYz1DcSxkPUdxLGU9RHEsZj14cSxnPVModGhpcywicHJvbXB0U2VjdGlvbiIpLGg9Uyh0aGlzLCJjb25maXJtIiksaz1TKHRoaXMsInByb2dyZXNzU2VjdGlvbiIpLGw9Uyh0aGlzLCJwcm9ncmVzc1ZhbHVlIiksbj16cSxxPVModGhpcywiY2FuY2VsIikscD1TKHRoaXMsImZpbmlzaFNlY3Rpb24iKSxyPVModGhpcywicmVzdG9yZSIpLHQ9Uyh0aGlzLCJlcnJvclNlY3Rpb24iKSxBPVModGhpcywiZXJyb3JDb250ZW50IiksRD1TKHRoaXMsImNsb3NlIiksRT1TKHRoaXMsIm5vQXV0b1BvcHVwIiksYmEsWj1bXTt0aGlzLmcud2UmJloucHVzaChQdSh7aWQ6Uyh0aGlzLCJwcm9tcHRTb3VyY2VMYW5nIil9KSk7Wi5wdXNoKFB1KHtpZDpTKHRoaXMsInByb21wdFRhcmdldExhbmciKX0pKTt2YXIgdmk9bW0oUi5KZy5hcHBseShudWxsLApaKSk7Wj1bXTt0aGlzLmcud2UmJloucHVzaChQdSh7aWQ6Uyh0aGlzLCJmaW5pc2hTb3VyY2VMYW5nIil9KSk7Wi5wdXNoKFB1KHtpZDpTKHRoaXMsImZpbmlzaFRhcmdldExhbmciKX0pKTt2YXIgd2k9bW0oUi5EZy5hcHBseShudWxsLFopKTt0aGlzLmcuY2cmJihiYT10aGlzLmcuY2cpO3RoaXMuQj10aGlzLmguSChTKHRoaXMsImNvbnRhaW5lciIpKTt0aGlzLkEuTih0aGlzLkIsImxvYWQiLHRoaXMudGcpO3RyKHRoaXMuQiwoMCxfLnkpKGZ1bmN0aW9uKCl7dmFyIGFnPXpvKHRoaXMuQiksWGM9YmEsTGQ9e30sRGU9TGQmJkxkLlRlLEVlPWhzLndkLHhpPWhzLkllLGJnPWhzLkVnLHlpPWhzLm1nLHppPWhzLkFnLGNnPWhzLkFlLEFpPWhzLkFlO1hjPVZuKFduKFZuKF8ueWwoKSwiPGhlYWQ+IiksT3UoTGQpKSwnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGOCI+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJysKUCh4cChiKSkrJyInKyhEZT8nIG5vbmNlPSInK1AoWXAoRGUpKSsnIic6IiIpKyc+PC9oZWFkPjxib2R5IGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYiIpKyciIHNjcm9sbD0ibm8iIGJvcmRlcj0wIGRpcj0iJytQKGEpKyciPjx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTAgd2lkdGg9MTAwJSBoZWlnaHQ9MTAwJT48dHIgdmFsaWduPW1pZGRsZT48dGQgd2lkdGg9MSBub3dyYXA+PGEgaHJlZj0iJytQKFVwKGQpKSsnIiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZCIpKyciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iJytQKFdwKGUpKSsnIiBhbHQ9Ikdvb2dsZSAnK1AoRWUpKyciPjwvYT48L3RkPicrKHNwKFhjKT8nPHRkIHdpZHRoPTE+PGltZyBzcmM9IicrUChXcChjKSkrJyIgd2lkdGg9IjkiIGhlaWdodD0iMTUiIHRpdGxlPSInK1AoWGMpKyciIGFsdD0iJytQKFhjKSsnIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTp1cmwoJysKUChXcChmKSkrJyk7YmFja2dyb3VuZC1wb3NpdGlvbjotNTZweCAwcHg7bWFyZ2luOjAgNHB4Ij48L3RkPic6IiIpKyc8dGQgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1PUkhiLUtFNnZxZSIpKyciPjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTAgaGVpZ2h0PTEwMCU+PHRyIGlkPSInK1AoZykrJyIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgdmFsaWduPW1pZGRsZT48dGQgbm93cmFwPjxzcGFuIGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYi1iTjk3UGMiKSsnIj4nK0twKHZpKSsnPC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYi1LRTZ2cWUiKSsnIj48L3RkPjx0ZCBub3dyYXA+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLUxnYnNTZSIpKyciPjxkaXY+PGJ1dHRvbiBpZD0iJytQKGgpKyciPjxiPicrS3AoeGkpKyc8L2I+PC9idXR0b24+PC9kaXY+PC9kaXY+PC90ZD48dGQgY2xhc3M9IicrClAoIlZJcGdKZC1aVmk5b2QtT1JIYi1LRTZ2cWUiKSsnIj48L3RkPjx0ZCBub3dyYXA+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLUxnYnNTZSIpKyciPjxkaXY+PGJ1dHRvbiBpZD0iJytQKEUpKyciPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvdGQ+PC90cj48dHIgaWQ9IicrUChrKSsnIiBzdHlsZT0iZGlzcGxheTpub25lIiB2YWxpZ249bWlkZGxlPjx0ZD48c3BhbiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLU9SSGItYk45N1BjIikrJyI+JytLcChiZykrJyZuYnNwOzxzcGFuIGRpcj0ibHRyIj4oPGIgaWQ9IicrUChsKSsnIj48L2I+JSk8L3NwYW4+Jm5ic3A7PGltZyBzcmM9IicrUChXcChuKSkrJyI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYi1LRTZ2cWUiKSsnIj48L3RkPjx0ZCBub3dyYXA+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLUxnYnNTZSIpKyciPjxkaXY+PGJ1dHRvbiBpZD0iJytQKHEpKyciPicrS3AoeWkpKwonPC9idXR0b24+PC9kaXY+PC9kaXY+PC90ZD48L3RyPjx0ciBpZD0iJytQKHApKyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjx0ZD48c3BhbiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLU9SSGItYk45N1BjIikrJyI+JytLcCh3aSkrJzwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLU9SSGItS0U2dnFlIikrJyI+PC90ZD48dGQgbm93cmFwPjxkaXYgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1MZ2JzU2UiKSsnIj48ZGl2PjxidXR0b24gaWQ9IicrUChyKSsnIj4nK0twKHppKSsnPC9idXR0b24+PC9kaXY+PC9kaXY+PC90ZD48L3RyPjx0ciBpZD0iJytQKHQpKyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHZhbGlnbj1taWRkbGU+PHRkPjxzcGFuIGlkPSInK1AoQSkrJyIgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1PUkhiLWJOOTdQYyIpKyciPjwvc3Bhbj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLU9SSGItS0U2dnFlIikrCiciPjwvdGQ+PHRkIHdpZHRoPTEgaWQ9Im9wdGlvbnMiPjwvdGQ+PHRkIHdpZHRoPTE+PGEgaWQ9IicrUChEKSsnIiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLVR2RDlQYy1oU1JHUGQiKSsnIiBocmVmPSIjIiB0aXRsZT0iJytQKGNnKSsnIj48aW1nIHNyYz0iJytQKFdwKGMpKSsnIiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGFsdD0iJytQKEFpKSsnIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTp1cmwoJytQKFdwKGYpKSsnKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yOHB4IDBweCI+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT4nKS5UYigpO2FnLndyaXRlKF8ua2ooWGMpKTthZy5jbG9zZSgpfSx0aGlzKSl9OwpfLm0udGc9ZnVuY3Rpb24oKXt0aGlzLmo9bmV3IF8ucmQoem8odGhpcy5CKSk7THYodGhpcyxSLkNlKTtpZih0aGlzLmcuZWI9PUFxKXt2YXIgYT0idXJsKCIrd3ErIikiO18uaGoodGhpcy5qLmcuYm9keSwiYmFja2dyb3VuZEltYWdlIixhKTtmb3IodmFyIGI9dGhpcy5qLmcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJ1dHRvbiIpLGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXS5wYXJlbnROb2RlO18uaGooZCwiYmFja2dyb3VuZEltYWdlIixhKTtfLmhqKGQsImJhY2tncm91bmRSZXBlYXQiLCJyZXBlYXQteCIpO18uaGooZCwiYmFja2dyb3VuZFBvc2l0aW9uIiwiMCAtMzlweCIpfX10aGlzLmcud2UmJih0aGlzLm89bmV3IER2KHRoaXMuZyx0aGlzLmopKTt0aGlzLmw9bmV3IER2KHRoaXMuZyx0aGlzLmopO3RoaXMuRD1uZXcgRnYodGhpcy5nLHRoaXMuaik7dGhpcy5BLk4odGhpcy5qLkgoUyh0aGlzLCJjb25maXJtIikpLCJjbGljayIscHIodGhpcywiY2xrX2NvbmZpcm0iKSk7CnRoaXMuQS5OKHRoaXMuai5IKFModGhpcywiY2FuY2VsIikpLCJjbGljayIscHIodGhpcywiY2xrX2NhbmNlbCIpKTt0aGlzLkEuTih0aGlzLmouSChTKHRoaXMsInJlc3RvcmUiKSksImNsaWNrIixwcih0aGlzLCJjbGtfcmVzdG9yZSIpKTt0aGlzLkEuTih0aGlzLmouSChTKHRoaXMsImNsb3NlIikpLCJjbGljayIscHIodGhpcywiY2xrX2Nsb3NlIikpO3RoaXMuUD10aGlzLmouSChTKHRoaXMsIm5vQXV0b1BvcHVwIikpO3RoaXMuQS5OKHRoaXMuUCwiY2xpY2siLHByKHRoaXMsImNsa19ub19hcCIpKTt0aGlzLm8mJnRoaXMuQS5OKHRoaXMubywiY2hhbmdlIixwcih0aGlzLCJjaGdfc3JjX2xhbmciKSk7dGhpcy5BLk4odGhpcy5sLCJjaGFuZ2UiLHByKHRoaXMsImNoZ190Z3RfbGFuZyIpKTt0aGlzLkEuTih0aGlzLkQsImNoYW5nZSIsdGhpcy5SaCk7YT1uZXcganIoKDAsXy55KSh0aGlzLnVnLHRoaXMpKTt0aGlzLm8mJnRoaXMuQS5OKHRoaXMubywibG9hZCIsYS5yZWdpc3RlcigpKTsKdGhpcy5BLk4odGhpcy5sLCJsb2FkIixhLnJlZ2lzdGVyKCkpO3RoaXMuQS5OKHRoaXMuRCwibG9hZCIsYS5yZWdpc3RlcigpKTthLmZpbmlzaCgpO3RoaXMubyYmdGhpcy5vLmthKHRoaXMuai5IKFModGhpcywicHJvbXB0U291cmNlTGFuZyIpKSk7dGhpcy5sLmthKHRoaXMuai5IKFModGhpcywicHJvbXB0VGFyZ2V0TGFuZyIpKSk7dGhpcy5ELmthKHRoaXMuai5IKCJvcHRpb25zIikpfTtfLm0udWc9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLkQsYj1SLnlnO18uemQoYS5JKTthLkkuYXBwZW5kQ2hpbGQoYS5oLmNyZWF0ZVRleHROb2RlKGIrIlx1MDBhMFx1MjViYyIpKTt0aGlzLkQudWMoe3R1cm5fb2ZmX3NpdGU6Ui5HZyxzMToiLS0tIixsZWFybl9tb3JlOlIueGd9KTt0aGlzLmRpc3BhdGNoRXZlbnQoImxvYWQiKX07Xy5tLlJoPWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuRC5NYSgpKXtjYXNlICJsZWFybl9tb3JlIjp3aW5kb3cub3BlbihKcSwiX2JsYW5rIik7YnJlYWs7Y2FzZSAidHVybl9vZmZfc2l0ZSI6dGhpcy5kaXNwYXRjaEV2ZW50KCJjbGtfbm9fYXBfc2l0ZSIpfX07Cl8ubS5zYT1mdW5jdGlvbigpe3RoaXMucGEoITEpO0t2LmVhLnNhLmNhbGwodGhpcyk7dGhpcy5BLmRpc3Bvc2UoKTt0aGlzLkE9bnVsbDt0aGlzLm8mJih0aGlzLm8uZGlzcG9zZSgpLHRoaXMubz1udWxsKTt0aGlzLmwuZGlzcG9zZSgpO3RoaXMubD1udWxsO3RoaXMuRC5kaXNwb3NlKCk7dGhpcy5EPW51bGw7Xy5BZCh0aGlzLkIpO3RoaXMuYWM9dGhpcy5qPW51bGx9O18ubS5KYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm8/dGhpcy5vLk1hKCk6IiJ9O18ubS5vYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmwuTWEoKX07Xy5tLk5hPWZ1bmN0aW9uKGEpe3RoaXMubyYmdGhpcy5vLmNiKGEpO3RoaXMuVCYmdGhpcy5UW2FdJiZ0aGlzLmouU2IodGhpcy5QLFIuRmcodGhpcy5UW2FdKSl9O18ubS5uYT1mdW5jdGlvbihhKXt0aGlzLmwuY2IoYSl9Owp2YXIgTXY9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYS5hYyE9Yil7YS5hYz1iO2lmKGI9PTApe2EubyYmeXYoYS5vLGEuai5IKFMoYSwicHJvbXB0U291cmNlTGFuZyIpKSk7aWYoYS5MKXt2YXIgZT1hLm9hKCk7YS5sLm5iKGEuTCk7YS5uYShlKX15dihhLmwsYS5qLkgoUyhhLCJwcm9tcHRUYXJnZXRMYW5nIikpKX1lbHNlIGI9PTImJihhLm8mJnl2KGEubyxhLmouSChTKGEsImZpbmlzaFNvdXJjZUxhbmciKSkpLGEuSSYmKGU9YS5vYSgpLGEubC5uYihhLkkpLGEubmEoZSkpLHl2KGEubCxhLmouSChTKGEsImZpbmlzaFRhcmdldExhbmciKSkpKTtlPXt9O2VbLTFdPWEuai5IKFMoYSwiZXJyb3JTZWN0aW9uIikpO2VbMF09YS5qLkgoUyhhLCJwcm9tcHRTZWN0aW9uIikpO2VbMV09YS5qLkgoUyhhLCJwcm9ncmVzc1NlY3Rpb24iKSk7ZVsyXT1hLmouSChTKGEsImZpbmlzaFNlY3Rpb24iKSk7Zm9yKHZhciBmIGluIGUpZVtmXSE9PU9iamVjdC5wcm90b3R5cGVbZl0mJm1wKGVbZl0sZj09CmIpfWMmJmEucGEoITApO2EuUC5wYXJlbnROb2RlLnBhcmVudE5vZGUuc3R5bGUuZGlzcGxheT1kPyJibG9jayI6Im5vbmUifTtLdi5wcm90b3R5cGUuaXNWaXNpYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuR307Ckt2LnByb3RvdHlwZS5wYT1mdW5jdGlvbihhKXtpZih0aGlzLkchPWEpe3RoaXMuRz1hO2lmKF8uU2MpdmFyIGI9cGFyc2VJbnQoIjAiK3RoaXMuaC5nLmJvZHkubGVmdE1hcmdpbiwxMCksYz1wYXJzZUludCgiMCIrdGhpcy5oLmcuYm9keS50b3BNYXJnaW4sMTApO3ZhciBkPXRoaXMuaC5nLmNvbXBhdE1vZGU9PSJCYWNrQ29tcGF0IjthPyhfLmhqKHRoaXMuaC5nLmJvZHksInRvcCIsIjQwcHgiKSxtcCh0aGlzLkgoKSwhMCksXy5TYyYmKHNvKCk/KHdpbmRvdy5fYmFubmVycXVpcmtmaXhsZWZ0PXdpbmRvdy5fYmFubmVycXVpcmtmaXh0b3A9MCxkJiYodGhpcy5oLmcuYm9keS50b3BNYXJnaW49Yys0MCkpOmQ/KHRoaXMuaC5nLmJvZHkudG9wTWFyZ2luPWMrNDAsd2luZG93Ll9iYW5uZXJxdWlya2ZpeGxlZnQ9d2luZG93Ll9iYW5uZXJxdWlya2ZpeHRvcD0wKTood2luZG93Ll9iYW5uZXJxdWlya2ZpeGxlZnQ9LWIsd2luZG93Ll9iYW5uZXJxdWlya2ZpeHRvcD0tYy00MCkpKTooXy5oaih0aGlzLmguZy5ib2R5LAoidG9wIiwiMHB4IiksbXAodGhpcy5IKCksITEpLGQmJmM+PTQwJiYodGhpcy5oLmcuYm9keS50b3BNYXJnaW49Yy00MCkpfX07dmFyIE52PWZ1bmN0aW9uKGEsYil7YS5qLlNiKGEuai5IKFMoYSwicHJvZ3Jlc3NWYWx1ZSIpKSxiKX0sTHY9ZnVuY3Rpb24oYSxiKXthLmouU2IoYS5qLkgoUyhhLCJlcnJvckNvbnRlbnQiKSksYil9O0t2LnByb3RvdHlwZS51ZT1mdW5jdGlvbihhLGIpe3RoaXMuTD1hO3RoaXMuST1iO3RoaXMubC5uYihhKX07dmFyIFB2PWZ1bmN0aW9uKGEsYil7Xy51LmNhbGwodGhpcyk7Xy5vYyhhKT09InN0cmluZyImJihiPWEsYT17fSk7Xy5vYyhiKT09InN0cmluZyImJihiPWduKFN0cmluZyhiKSkpO3RoaXMuVD1iO3RoaXMuQT1uZXcgXy5IYih0aGlzKTt0aGlzLmxhPXZvaWQgMDthPU9iamVjdChhKTt0aGlzLm89ImF1dG8iOyEoYj13aW5kb3cucGFyZW50IT13aW5kb3cpJiYoYj0oIXdpbmRvdy5leHRlcm5hbHx8IXdpbmRvdy5leHRlcm5hbC5nb29nbGVUb29sYmFyVmVyc2lvbnx8cGFyc2VGbG9hdCh3aW5kb3cuZXh0ZXJuYWwuZ29vZ2xlVG9vbGJhclZlcnNpb24pPDYuMikmJighd2luZG93Lmd0YkV4dGVybmFsfHwhd2luZG93Lmd0YkV4dGVybmFsLmlzVHJhbnNsYXRlRW5hYmxlZHx8IXdpbmRvdy5ndGJFeHRlcm5hbC5pc1RyYW5zbGF0ZUVuYWJsZWQoKSkpJiYoYj1uYXZpZ2F0b3IuYXBwVmVyc2lvbiYmbmF2aWdhdG9yLmFwcFZlcnNpb24ubWF0Y2goL1xzQ2hyb21lXC8oKFxkKylcLihcZCspXC5bXGRcLl0rKVxzLyksCmI9IShiJiZiWzJdJiZiWzNdJiZOdW1iZXIoYlsyXSkqMUUzK051bWJlcihiWzNdKT49NDAwMSkpO3RoaXMuZz17RWQ6YixoZjohMSxGZDpudWxsLEVjOm51bGwsWGQ6W10sY2Y6W10sZGg6ITEsUGI6ITEsYXBpS2V5OiIiLGxheW91dDowLFZlOiExfTt0aGlzLklhPXtlYjpBcSxjZzp2cT09Imh0dHBzOi8vIj9SLkNnOm51bGx9O3RoaXMuUD17ZWI6QXEsTmM6bnVsbH07YSYmKCJhdXRvRGlzcGxheSJpbiBhJiYodGhpcy5nLkVkPXRoaXMuZy5FZCYmISFhLmF1dG9EaXNwbGF5KSwibXVsdGlsYW5ndWFnZVBhZ2UiaW4gYSYmKHRoaXMuZy5QYj0hIWEubXVsdGlsYW5ndWFnZVBhZ2UpLCJsYXlvdXQiaW4gYSYmKHRoaXMuZy5sYXlvdXQ9YS5sYXlvdXQpLGEucGFnZUxhbmd1YWdlJiYodGhpcy5nLmRkPXFyKGEucGFnZUxhbmd1YWdlKSksYS5pbmNsdWRlZExhbmd1YWdlcyYmKHRoaXMuZy5YZD1hLmluY2x1ZGVkTGFuZ3VhZ2VzLnNwbGl0KCIsIikpLGEuZXhjbHVkZWRMYW5ndWFnZXMmJgoodGhpcy5nLmNmPWEuZXhjbHVkZWRMYW5ndWFnZXMuc3BsaXQoIiwiKSksYS5yZW1vdGVBcGlQcm94eUhhbmRsZXJzJiYodGhpcy5sYT1hLnJlbW90ZUFwaVByb3h5SGFuZGxlcnMpLHRoaXMuZy5kZCYmKHRoaXMubz10aGlzLmcuZGQpLGEua2V5JiYodGhpcy5nLmFwaUtleT1hLmtleSksdGhpcy5QLk5jPU51bWJlcihhLmZsb2F0UG9zaXRpb24pfHx0aGlzLlAuTmMsImRpc2FibGVBdXRvVHJhbnNsYXRpb24iaW4gYSYmKHRoaXMuZy5WZT0hIWEuZGlzYWJsZUF1dG9UcmFuc2xhdGlvbikpOyF0aGlzLmcuVmUmJk92KHRoaXMpJiYodGhpcy5nLmhmPSEwKTt0aGlzLkM9e307aWYoKGE9ZG9jdW1lbnQuY29va2llLm1hdGNoKC8oXnw7IClnb29ndHJhbnNvcHQ9KC4qPykoO3wkKS8pKSYmYVsyXSlmb3IodGhpcy5DPXt9LGE9Xy5EYihhWzJdKS5zcGxpdCgifCIpLGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXS5zcGxpdCgiPSIpO2NbMF0mJih0aGlzLkNbY1swXV09Y1sxXSl9dGhpcy53YT0KbmV3IFpzKHthcGlLZXk6dGhpcy5nLmFwaUtleSxoYzoxLHZlOiEwLGdtOkhxfSx7Y2xpZW50OnRxLHU6d2luZG93LmxvY2F0aW9uLmhyZWZ9KTt0aGlzLkY9bmV3IHd2KHZvaWQgMCx0aGlzLndhLHZvaWQgMCx2b2lkIDAsdGhpcy5nLmFwaUtleSx2b2lkIDAsdm9pZCAwLG5ldyBXdSx2b2lkIDAsdm9pZCAwLHRoaXMubGEpO3RoaXMuRz0hMTt0aGlzLkEuTih3aW5kb3csInBhZ2VoaWRlIix0aGlzLmRpc3Bvc2UpO3RoaXMuSz1uZXcganIoKDAsXy55KSh0aGlzLk1oLHRoaXMpKTt0aGlzLkk9bmV3IGpyKCgwLF8ueSkodGhpcy5PaCx0aGlzKSk7dGhpcy5PPW5ldyBscigoMCxfLnkpKHRoaXMua2ksdGhpcykpO3RoaXMuaD1uZXcgS3YodGhpcy5JYSk7dGhpcy5GLnpjKHRoaXMuSy5yZWdpc3RlcigoMCxfLnkpKHRoaXMuSmgsdGhpcykpLG9xKTt0aGlzLlQ/KHRoaXMubD1uZXcgR3YodGhpcy5nKSx0aGlzLkEuTih0aGlzLmwsImxvYWQiLHRoaXMuSy5yZWdpc3RlcigpKSx0aGlzLkEuTih0aGlzLmwsCiJjaGdfdGd0X2xhbmciLG1yKHRoaXMuTyx0aGlzLkkuZGVsYXkoKDAsXy55KSh0aGlzLkloLHRoaXMpKSkpLHRoaXMubC5rYSh0aGlzLlQpKTp0aGlzLlAuTmMmJih0aGlzLkI9bmV3IEl2KHRoaXMuUCksdGhpcy5BLk4odGhpcy5CLCJsb2FkIix0aGlzLksucmVnaXN0ZXIoKSksdGhpcy5BLk4odGhpcy5CLCJjbGtfdHJhbnMiLG1yKHRoaXMuTyx0aGlzLkkuZGVsYXkoKDAsXy55KSh0aGlzLkdoLHRoaXMpKSkpLHRoaXMuQi5rYSgpKTshdGhpcy5nLmRkJiZ0aGlzLmcuZGgmJnRoaXMuRi5QYyh0aGlzLksucmVnaXN0ZXIoKDAsXy55KSh0aGlzLkVoLHRoaXMpKSk7dGhpcy5LLmZpbmlzaCgpfTtfLkIoUHYsXy51KTsKdmFyIE92PWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZixnKXtpZihmPV8uRGIoZikubWF0Y2goIl5cXCgoKFthLXpBLVpcXC1fXSopXFx8KT8oW2EtekEtWlxcLV9dKilcXCl8Xi8oKFthLXpBLVpcXC1fXSopLyk/KFthLXpBLVpcXC1fXSopIikpe2lmKGZbM10pcmV0dXJuIGcuZy5GZD1mWzJdLGcuZy5FYz1mWzNdLCEwO2lmKGZbNl0pcmV0dXJuIGcuZy5GZD1mWzVdLGcuZy5FYz1mWzZdLCEwfXJldHVybiExfXZhciBjPXt1cmw6ZnVuY3Rpb24oKXt2YXIgZj13aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaCgvIy4qZ29vZ3RyYW5zKC4qKS8pO3JldHVybiBmJiZmWzFdfSxjb29raWU6ZnVuY3Rpb24oKXt2YXIgZj1kb2N1bWVudC5jb29raWUubWF0Y2goLyhefDsgKWdvb2d0cmFucz0oLio/KSg7fCQpLyk7cmV0dXJuIGYmJmZbMl19fSxkO2ZvcihkIGluIGMpaWYoY1tkXSE9PU9iamVjdC5wcm90b3R5cGVbZF0pe3ZhciBlPWNbZF0oKTtpZihlJiZiKGUsYSkpcmV0dXJuIGR9cmV0dXJuIiJ9LApRdj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKTtjLmxlbmd0aD4yOyljLnNoaWZ0KCk7Yz0iO2RvbWFpbj0iK2Muam9pbigiLiIpO2IhPW51bGw/YT1hKyI9IitiOihiPW5ldyBEYXRlLGIuc2V0VGltZShiLmdldFRpbWUoKS0xKSxhPWErIj1ub25lO2V4cGlyZXM9IitiLnRvR01UU3RyaW5nKCkpO2ErPSI7cGF0aD0vIjtkb2N1bWVudC5jb29raWU9YTt0cnl7ZG9jdW1lbnQuY29va2llPWErY31jYXRjaChkKXt9fSxSdj1mdW5jdGlvbihhLGIpe3ZhciBjPW51bGw7YiE9PXZvaWQgMCYmKGM9YSE9PXZvaWQgMD8iLyIrYSsiLyIrYjoiLyIrYik7UXYoImdvb2d0cmFucyIsYyl9O18ubT1Qdi5wcm90b3R5cGU7Cl8ubS5KaD1mdW5jdGlvbihhKXt0aGlzLmo9cXIob3EpO2E9YXx8e307dmFyIGI9YS50YXJnZXRMYW5ndWFnZXN8fFtdO3RoaXMuTD17c2w6V20oYS5zb3VyY2VMYW5ndWFnZXN8fFtdKSx0bDpXbShiKX07dGhpcy5EPXt9O3RoaXMuUj17fTthPSF0aGlzLmcuWGQubGVuZ3RoO2I9aXIodGhpcy5nLlhkKTt2YXIgYz1pcih0aGlzLmcuY2YpO3RoaXMuRFtvcV09IiI7dGhpcy5SW29xXT0iIjtmb3IodmFyIGQgaW4gdGhpcy5MLnRsKXRoaXMuTC50bFtkXT09PU9iamVjdC5wcm90b3R5cGVbZF18fCEoYXx8ZCBpbiBiKXx8ZCBpbiBjfHwodGhpcy5SW2RdPXRoaXMuTC50bFtkXSxkPT10aGlzLmcuZGQmJiF0aGlzLmcuUGIpfHwodGhpcy5EW2RdPXRoaXMuTC50bFtkXSk7dGhpcy5EW29xXXx8ZGVsZXRlIHRoaXMuRFtvcV07dGhpcy5SW29xXXx8ZGVsZXRlIHRoaXMuUltvcV07dGhpcy5yYT1KbCh0aGlzLkwuc2wpfTtfLm0uRWg9ZnVuY3Rpb24oYSl7YSYmKHRoaXMubz1xcihhKSl9OwpfLm0uTWg9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5LO2lmKHRoaXMuTCl7dGhpcy5vPXRoaXMub3x8dGhpcy5nLkZkO3RoaXMuaj10aGlzLmcuRWN8fHRoaXMuajt2YXIgYT10aGlzLmcuaGZ8fHRoaXMuZy5FZCYmdGhpcy5vIT10aGlzLmomJiEodGhpcy5vIGluIHNxKSYmdGhpcy5DLm9zIT0iMSImJnRoaXMuQ1sibyIrdGhpcy5vXSE9IjEiO3RoaXMubz09InpoLVRXIiYmKHRoaXMubz0iemgtQ04iKTt0aGlzLnJhW3RoaXMub118fChhPSExLHRoaXMubz0iYXV0byIpO2lmKCF0aGlzLkRbdGhpcy5qXSlpZihhPSExLHRoaXMuRC5lbil0aGlzLmo9ImVuIjtlbHNlIGZvcih2YXIgYiBpbiB0aGlzLkQpaWYodGhpcy5EW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXSl7dGhpcy5qPWI7YnJlYWt9aWYodGhpcy5sKXtiPXRoaXMuRDt2YXIgYz17IiI6Ui5CZ30sZDtmb3IoZCBpbiBiKWJbZF0hPT1PYmplY3QucHJvdG90eXBlW2RdJiYoY1tkXT1iW2RdKTt0aGlzLmwudWUoYyx0aGlzLlIpO3RoaXMubC5uYSgiIil9IXFxJiYKYT90aGlzLmcuRWM/bXIodGhpcy5PLHRoaXMuSS5kZWxheSgoMCxfLnkpKHRoaXMub2QsdGhpcywhMCwhMCkpKS5jYWxsKCk6KHRoaXMuRz0hMCxtcih0aGlzLk8sdGhpcy5JLmRlbGF5KCgwLF8ueSkodGhpcy5vZCx0aGlzKSkpLmNhbGwoKSxRbSgidGVfYXAiLHtzbDp0aGlzLm99KSk6KHRoaXMuQiYmdGhpcy5CLnBhKCEwKSx0aGlzLmwmJnRoaXMubC5wYSghMCkpO3dpbmRvdy5nb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZVNlcnZpY2UmJnRoaXMuUmIoITEpO3RoaXMuTy5maW5pc2goKX19OwpfLm0uT2g9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmgsYj10aGlzLnJhO2EubyYmYS5vLm5iKGIpO2EuVD1iO3RoaXMuaC51ZSh0aGlzLkQsdGhpcy5SKTt0aGlzLmguTmEodGhpcy5vKTt0aGlzLmgubmEodGhpcy5qKTt0aGlzLkEuTih0aGlzLmgsImNsa19jb25maXJtIix0aGlzLnloKTt0aGlzLkEuTih0aGlzLmgsImNsa19jYW5jZWwiLHRoaXMueGgpO3RoaXMuQS5OKHRoaXMuaCwiY2xrX3Jlc3RvcmUiLHRoaXMuUmQpO3RoaXMuQS5OKHRoaXMuaCwiY2xrX2Nsb3NlIix0aGlzLlFjKTt0aGlzLkEuTih0aGlzLmgsImNsa19ub19hcCIsdGhpcy56aCk7dGhpcy5BLk4odGhpcy5oLCJjbGtfbm9fYXBfc2l0ZSIsdGhpcy5BaCk7dGhpcy5BLk4odGhpcy5oLCJjaGdfc3JjX2xhbmciLHRoaXMubWYpO3RoaXMuQS5OKHRoaXMuaCwiY2hnX3RndF9sYW5nIix0aGlzLm1mKTt0aGlzLmwmJnRoaXMubC5wYSghMCl9OwpfLm0ua2k9ZnVuY3Rpb24oKXt0aGlzLkEuTih0aGlzLmgsImxvYWQiLHRoaXMuSS5yZWdpc3RlcigpKTt0aGlzLmgua2EoKTt0aGlzLkkuZmluaXNoKCl9O18ubS5NPWZ1bmN0aW9uKCl7dGhpcy5GLnJlc3RvcmUoKTtfLnUucHJvdG90eXBlLk0uY2FsbCh0aGlzKTt0aGlzLkYuZGlzcG9zZSgpO3RoaXMuQS5kaXNwb3NlKCk7dGhpcy5BPW51bGw7dGhpcy5oJiZ0aGlzLmguZGlzcG9zZSgpO3RoaXMuaD1udWxsO3RoaXMuQiYmdGhpcy5CLmRpc3Bvc2UoKTt0aGlzLkI9bnVsbDt0aGlzLmwmJnRoaXMubC5kaXNwb3NlKCk7dGhpcy5UPXRoaXMubD1udWxsfTtfLm0ueWg9ZnVuY3Rpb24oKXshdGhpcy5oLmlzVmlzaWJsZSgpfHwhdGhpcy5nLlBiJiZ4cih0aGlzLm8sdGhpcy5oLm9hKCkpfHwodGhpcy5HJiZRbSgidGVfYXB0Iix7c2w6dGhpcy5vfSksU3YodGhpcywhMSksdGhpcy5sJiZ0aGlzLmwubmEodGhpcy5oLm9hKCkpKX07Cl8ubS54aD1mdW5jdGlvbigpe3RoaXMuaC5pc1Zpc2libGUoKSYmKFR2KHRoaXMpLE12KHRoaXMuaCwwKSx0aGlzLmwmJnRoaXMubC5uYSgiIikpfTtfLm0uUmQ9ZnVuY3Rpb24oKXt0aGlzLmguaXNWaXNpYmxlKCkmJihUdih0aGlzKSxNdih0aGlzLmgsMCkpO3RoaXMubCYmdGhpcy5sLm5hKCIiKX07Xy5tLlFjPWZ1bmN0aW9uKCl7dGhpcy5oLmlzVmlzaWJsZSgpJiYodGhpcy5HJiYodGhpcy5HPSExLFFtKCJ0ZV9hcGMiLHtzbDp0aGlzLm99KSksVHYodGhpcyksdGhpcy5oLnBhKCExKSx0aGlzLmwmJnRoaXMubC5uYSgiIiksdGhpcy5CJiZ0aGlzLkIucGEoITApKX07Xy5tLnpoPWZ1bmN0aW9uKCl7dGhpcy5oLmlzVmlzaWJsZSgpJiYodGhpcy5DWyJvIit0aGlzLm9dPSIxIixRbSgidGVfYXByIix7c2w6dGhpcy5vfSksdGhpcy5HPSExLHRoaXMuUWMoKSl9OwpfLm0uQWg9ZnVuY3Rpb24oKXtpZih0aGlzLmguaXNWaXNpYmxlKCkpe3RoaXMuRz0hMTt0aGlzLkMub3M9IjEiO3ZhciBhPW51bGw7aWYodGhpcy5DKXthPVtdO2Zvcih2YXIgYiBpbiB0aGlzLkMpdGhpcy5DW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXSYmYS5wdXNoKGIrIj0iK3RoaXMuQ1tiXSk7YT1hLmpvaW4oInwiKX1RdigiZ29vZ3RyYW5zb3B0IixhKTt0aGlzLlFjKCl9fTtfLm0ubWY9ZnVuY3Rpb24oKXt0aGlzLmguaXNWaXNpYmxlKCkmJighdGhpcy5nLlBiJiZ4cih0aGlzLm8sdGhpcy5oLm9hKCkpP3RoaXMuUmQoKToodGhpcy5vPXRoaXMuaC5KYSgpfHx0aGlzLm8sdGhpcy5qPXRoaXMuaC5vYSgpLHRoaXMuaC5hYz09MiYmKHRoaXMubCYmdGhpcy5sLm5hKHRoaXMuaC5vYSgpKSxTdih0aGlzKSkpKX07Xy5tLm9kPWZ1bmN0aW9uKGEsYil7dGhpcy5oLmlzVmlzaWJsZSgpfHwodGhpcy5CJiZ0aGlzLkIucGEoITEpLGE/U3YodGhpcyxiKTpNdih0aGlzLmgsMCwhMCx0aGlzLkcpKX07Cl8ubS5SaT1mdW5jdGlvbihhLGIpe21yKHRoaXMuTyx0aGlzLkkuZGVsYXkoKDAsXy55KSh0aGlzLm9kLHRoaXMsYSxiKSkpLmNhbGwoKX07Xy5tLkdoPWZ1bmN0aW9uKCl7dGhpcy5vZCh0aGlzLmguYWM9PTIpfTtfLm0uSWg9ZnVuY3Rpb24oKXt0aGlzLmwub2EoKT8hdGhpcy5nLlBiJiZ4cih0aGlzLm8sdGhpcy5oLm9hKCkpP3RoaXMuUmQoKToodGhpcy5qPXRoaXMubC5vYSgpLHRoaXMuaC5uYSh0aGlzLmopLFN2KHRoaXMpKTp0aGlzLmwubmEodGhpcy5qKX07CnZhciBTdj1mdW5jdGlvbihhLGIpe2lmKHdpbmRvdy5nb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZVNlcnZpY2UpdHJ5e3dpbmRvdy5nb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZVNlcnZpY2UuZ2V0SW5zdGFuY2UoKS5yZXN0b3JlKCl9Y2F0Y2goYyl7fVJ2KGEubyxhLmopO2EuRz0hMTshYiYmYS5vIGluIHNxJiZRbSgidGVfYXBlIix7c2w6YS5vfSk7TnYoYS5oLDApO012KGEuaCwxLCEwKTthLkYuWWYoISFiKTt3aW5kb3cuc2V0VGltZW91dCgoMCxfLnkpKGEuRi5xZCxhLkYsYS5nLlBiPyJhdXRvIjphLm8sYS5qLCgwLF8ueSkoYS5mYixhKSx2b2lkIDAsdm9pZCAwKSwwKX07ClB2LnByb3RvdHlwZS5mYj1mdW5jdGlvbihhLGIsYyl7dHlwZW9mIHRoaXMuZ2I9PSJmdW5jdGlvbiImJnRoaXMuZ2IoKTt0aGlzLmguaXNWaXNpYmxlKCkmJnRoaXMuaC5hYz09MSYmKGM/KFR2KHRoaXMpLE12KHRoaXMuaCwtMSwhMCksYz09Mj9Mdih0aGlzLmgsUi53Zyk6THYodGhpcy5oLFIuQ2UpKTooTnYodGhpcy5oLGEpLGImJih0aGlzLmwmJnRoaXMubC5uYSh0aGlzLmopLHRoaXMuaC5OYSh0aGlzLm8pLE12KHRoaXMuaCwyKSkpKX07dmFyIFR2PWZ1bmN0aW9uKGEpe1J2KCk7d2luZG93LnNldFRpbWVvdXQoKDAsXy55KShhLkYucmVzdG9yZSxhLkYsbnVsbCksMCl9O1B2LnByb3RvdHlwZS5SYj1mdW5jdGlvbihhKXthfHx0aGlzLlFjKCk7dGhpcy5sJiZ0aGlzLmwuUmIoYSk7dGhpcy5CJiZ0aGlzLkIucGEoYSl9O3ZhciB6bj1mdW5jdGlvbihhKXtpZihhJiYoYT1TdHJpbmcoYSksYT1hLnNwbGl0KCIuIiksYS5sZW5ndGgpKXtmb3IodmFyIGI9d2luZG93LGM9MDtjPGEubGVuZ3RoOysrYyl7dmFyIGQ9YVtjXTtpZighKGQmJmQgaW4gYikpcmV0dXJuO2I9YltkXX1yZXR1cm4gYn19O3ZhciBVdj1udWxsLFZ2PWZ1bmN0aW9uKGEpe2lmKCFVdil7dmFyIGIsYyxkLGU7YSYmKCJrZXkiaW4gYSYmKGI9YS5rZXkpLCJzZXJ2ZXJQYXJhbXMiaW4gYSYmKGM9YS5zZXJ2ZXJQYXJhbXMpLCJ0aW1lSW5mbyJpbiBhJiYoZD1hLnRpbWVJbmZvKSwicmVtb3RlQXBpUHJveHlIYW5kbGVycyJpbiBhJiYoZT1hLnJlbW90ZUFwaVByb3h5SGFuZGxlcnMpLChhPXlyKCkpJiYoYz1hKSk7YT0wO2lmKHRxPT0idGVfbGliInx8Xy5XYylhPTM7VXY9bmV3IHd2KHZvaWQgMCxuZXcgWnMoe2FwaUtleTpiLGhjOmEsdmU6ITAsdHJhY2tWaXNpYmlsaXR5OmM9PSJ0dmlzIn0pLHZvaWQgMCx2b2lkIDAsYixjLGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZSk7VXYuY29uc3RydWN0b3I9ZnVuY3Rpb24oKXt9O1V2LmlzQXZhaWxhYmxlPVV2LlNhO1V2LmdldFN1cHBvcnRlZExhbmd1YWdlcz1Vdi56YztVdi5nZXRQYWdlTGFuZ3VhZ2U9VXYuUGM7VXYuc2V0Q2xpY2tUaHJvdWdoPVV2LllmO1V2LnRyYW5zbGF0ZVBhZ2U9ClV2LnFkO1V2LnJlc3RvcmU9VXYucmVzdG9yZTtVdi5pc1RyYW5zbGF0aW5nPVV2LnBnO1V2LnNldENoZWNrVmlzaWJpbGl0eT1Vdi5QaX1yZXR1cm4gVXZ9O1Z2LmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIFV2fTt2YXIgV3Y9bnVsbCxYdj1mdW5jdGlvbihhLGIpe1d2fHwoV3Y9bmV3IFB2KGEsYiksV3YuY29uc3RydWN0b3I9ZnVuY3Rpb24oKXt9KTtyZXR1cm4gV3Z9O1h2LmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIFd2fTsKdmFyIFl2PWZ1bmN0aW9uKCl7dmFyIGE9em4oImdvb2dsZS50cmFuc2xhdGUubSIpO2F8fChmcygpLF8ucmMoImdvb2dsZS50cmFuc2xhdGUubSIsUSksYT1RKTtpZihhKWZvcih2YXIgYiBpbiBSKWlmKFJbYl0hPT1PYmplY3QucHJvdG90eXBlW1JbYl1dJiZSW2JdKXt2YXIgYz1SW2JdKCk7UltiXT1hW2NdP2FbY106Z3N9Xy5vaShfLlppKHBxLDEpKSYmKGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxiLnRleHRDb250ZW50PSJcbiAgLnRyYW5zbGF0ZWQtbHRye1xuICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC50cmFuc2xhdGVkLXJ0bHtcbiAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgIixhPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0sYXx8KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaGVhZCIpLGM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LApjLmluc2VydEJlZm9yZShhLGMuZmlyc3RDaGlsZCkpLGEuYXBwZW5kQ2hpbGQoYikpO0JuPT0xPyhfLnJjKCJnb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZVNlcnZpY2UiLFZ2KSxRbSgidGVfbGkiKSk6KF8ucmMoImdvb2dsZS50cmFuc2xhdGUuVHJhbnNsYXRlRWxlbWVudCIsWHYpLFB2LnByb3RvdHlwZS5kaXNwb3NlPVB2LnByb3RvdHlwZS5kaXNwb3NlLFB2LnByb3RvdHlwZS5zaG93QmFubmVyPVB2LnByb3RvdHlwZS5SaSxQdi5wcm90b3R5cGUuc2V0RW5hYmxlZD1Qdi5wcm90b3R5cGUuUmIsXy5yYygiZ29vZ2xlLnRyYW5zbGF0ZS5UcmFuc2xhdGVFbGVtZW50LkZsb2F0UG9zaXRpb24iLEp2KSxKdi5UT1BfTEVGVD0xLEp2LlRPUF9SSUdIVD0yLEp2LkJPVFRPTV9SSUdIVD0zLEp2LkJPVFRPTV9MRUZUPTQsXy5yYygiZ29vZ2xlLnRyYW5zbGF0ZS5UcmFuc2xhdGVFbGVtZW50LklubGluZUxheW91dCIsSHYpLEh2LlZFUlRJQ0FMPTAsSHYuSE9SSVpPTlRBTD0xLEh2LlNJTVBMRT0KMik7Q24oKX07CmlmKHdpbmRvdy5nb29nbGUmJndpbmRvdy5nb29nbGUudHJhbnNsYXRlJiZ3aW5kb3cuZ29vZ2xlLnRyYW5zbGF0ZS5fY29uc3QpWXYoKTtlbHNlIGlmKHdpbmRvdy5nb29nbGUmJndpbmRvdy5nb29nbGUudHJhbnNsYXRlJiZ3aW5kb3cuZ29vZ2xlLnRyYW5zbGF0ZS5fcHJvdG9Db25maWcpe3JxPW5ldyBEYXRlO3ZhciBadj1uZXcgbHEod2luZG93Lmdvb2dsZS50cmFuc2xhdGUuX3Byb3RvQ29uZmlnKTtPbj1fLk4oWnYsMjIpfHwiIjttcT1fLk4oWnYsNil8fCJwcm9kIjtucT1fLk4oWnYsMTIpfHwiIjtvcT1fLk4oWnYsMSl8fCJlbiI7QW49Xy5OKFp2LDIpfHwiIjt2YXIgJHY7KCR2PV8uYmooWnYsanEsMykpJiYocHE9JHYpO18uTihadiw4KTtxcT1fLk0oWnYsMTcpO3NxPXt9O3ZhciBhdzthdz1zbShadiwxOCxfLmFqKCkpO2Zvcih2YXIgYnc9MDtidzxhdy5sZW5ndGg7YncrKylzcVthd1tid11dPSEwO0JuPV8uTihadiw1KT09ImxpYiI/MTowO3RxPShfLk4oWnYsNCl8fCJ0ZSIpKwooQm49PTE/Il9saWIiOiIiKTtmcT1fLk4oWnYsOSl8fCIiO3ZhciBjdzsoY3c9Xy5OKFp2LDEwKSl8fChjdz1fLk4oWnYsMTEpKTt1cT1jd3x8IiI7dnE9Imh0dHBzOi8vIjt2YXIgZHc7ZHc9Xy5OKFp2LDEzKTt2YXIgZXc9dnErKGR3fHwiIikrIi90cmFuc2xhdGVfc3RhdGljLyI7d3E9ZXcrImltZy90ZV9iay5naWYiO3hxPWV3KyJpbWcvdGVfY3RybDMuZ2lmIjt6cT1ldysiaW1nL2xvYWRpbmcuZ2lmIjtBcT1fLk4oWnYsMTQpfHwiIjt5cT1fLk4oWnYsMTUpfHwiIjtCcT1fLk4oWnYsMTYpfHwiIjtDcT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvY2xlYXJkb3QuZ2lmIjtEcT0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMXgvZ29vZ2xlbG9nb19jb2xvcl82OHgyOGRwLnBuZyI7RXE9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9wcm9kdWN0LzF4L3RyYW5zbGF0ZV8yNGRwLnBuZyI7RnE9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzF4L2dvb2dsZWxvZ29fY29sb3JfNDJ4MTZkcC5wbmciOwpHcT0iaHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlLmNvbSI7S3EoKTtZdigpfTsKXy5tYSgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF90cik7Ci8vIEdvb2dsZSBJbmMuCg=="}},"time_used":95,"timings":{"blocked":-1,"dns":2,"connect":16,"send":0,"wait":17,"receive":27,"ssl":33},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"static.getbutton.io/widget-send-button/js/init.js","fqdn":"static.getbutton.io","domain":"getbutton.io","tld":"io"},"ip":{"addr":"104.26.14.221","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.584Z","timestamp":1785132838584,"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":"getbutton.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Tue, 16 Jun 2026 00:45:37 GMT","end":"Mon, 14 Sep 2026 01:45:33 GMT"},"fingerprint":{"sha1":"DC:2F:40:2C:2E:8F:A1:FE:B6:A3:D2:1B:01:7E:28:02:66:38:0E:86","sha256":"E1:C6:2E:FD:25:F8:44:CA:B3:2C:26:9B:A5:CB:26:9B:6D:77:7B:CF:2A:52:29:CD:23:39:99:E7:89:F4:41:57"}}},"request":{"raw":"GET /widget-send-button/js/init.js HTTP/1.1\r\nHost: static.getbutton.io\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://farosonglobaltrade.ltd/\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 302 \r\ndate: Mon, 27 Jul 2026 06:14:27 GMT\r\ncontent-type: text/html\r\nlocation: https://static.getbutton.io/widget/bundle.js\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=H%2B%2B4v1KsFN0vEVUpfKhIPm%2Bc2v324KIoLvo0LZsq4am%2BYw4B4UvV26KBxO50D8m9heKOpy6zO8qKK0Psa%2FxHXZDz0LLTvvynF7JXVu83K3yavx5LvFvdv24xV9IvMBAxFYNIp74%3D\"}]}\r\ncf-cache-status: BYPASS\r\ncf-ray: a21980514bf8b509-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"302","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":0,"size_decoded":0,"mime_type":"application/javascript; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T09:47:52.605533Z","times_seen":17560503,"resource_available":true,"data":null}},"time_used":29200,"timings":{"blocked":-1,"dns":3,"connect":3,"send":0,"wait":29177,"receive":0,"ssl":16},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:59.540Z","timestamp":1785132839540,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/rosetta\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"rosetta\"\r\nreport-to: {\"group\":\"rosetta\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/rosetta\"}]}\r\ncontent-length: 3967\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:44 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:44 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 09 Apr 2026 01:12:55 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 406995\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":20284,"size_decoded":4799,"mime_type":"text/css; charset=UTF-8","magic":"ASCII text, with very long lines (20284), with no line terminators","md5":"fde4f72b90fe807270db3c332dd058df","sha1":"7ef4d70af01c38a7f80a7650be25f63aff4ba751","sha256":"ab31c9be358d2107fc1158434c7aeaaf15f82e3e405ed67ab236b5ac232ed159","sha512":"9bef39350af557afeb10cb71068426ab28befaf5295359954787be06a5ce0993d69e8f5018a5a17c44311d294dd1a87a6f82edd0f5743df0149b8e4e53061695","ssdeep":"192:nvqx/EhZINcrXsfg0SgG8CqA3uku9SJFzvQVMbnUIfIxIVVpTrecfzPtcmt4v78l:gMF8Sb3i0JFzourUqWMVpTrdfzPtcBG","tlshash":"c492872057aed01967efa82364d36dff71d444db90123eeaaf5a7352cd821f231ea214","first_seen":"2026-04-13T20:43:22.641436Z","last_seen":"2026-07-27T09:46:57.00481Z","times_seen":17170,"resource_available":false,"data":"LlZJcGdKZC1aVmk5b2QtT1JIYi1PRVZtY2R7bGVmdDowO3RvcDowO2hlaWdodDozOXB4O3dpZHRoOjEwMCU7ei1pbmRleDoxMDAwMDAwMTtwb3NpdGlvbjpmaXhlZDtib3JkZXI6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNkI5MERBO21hcmdpbjowO2JveC1zaGFkb3c6MCAwIDhweCAxcHggIzk5OX0uVklwZ0pkLVpWaTlvZC14bDA3T2ItT0VWbWNke3otaW5kZXg6MTAwMDAwMDI7Ym9yZGVyOm5vbmU7cG9zaXRpb246Zml4ZWQ7Ym94LXNoYWRvdzowIDNweCA4cHggMnB4ICM5OTl9LlZJcGdKZC1aVmk5b2QtU21mWi1PRVZtY2R7ei1pbmRleDoxMDAwMDAwMDtib3JkZXI6bm9uZTttYXJnaW46MH0uZ29vZy10ZS1nYWRnZXR7Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY2Njt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdvb2ctdGUtZ2FkZ2V0IGltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyOm5vbmV9Lmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNENUQ1RDU7Ym9yZGVyLXRvcDoxcHggc29saWQgIzlCOUI5Qjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRThFOEU4O2JvcmRlci1yaWdodDoxcHggc29saWQgI0Q1RDVENTtmb250LXNpemU6MTBwdDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDoxcHg7cGFkZGluZy1ib3R0b206MnB4O2N1cnNvcjpwb2ludGVyfS5nb29nLXRlLWdhZGdldC1pY29ue21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4O3dpZHRoOjE5cHg7aGVpZ2h0OjE5cHg7Ym9yZGVyOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWNvbWJve21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5nb29nLXRlLWdhZGdldCAuZ29vZy10ZS1jb21ib3ttYXJnaW46NHB4IDB9LlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDphY3RpdmUsLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkOmhvdmVyLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDpsaW5rLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDp2aXNpdGVke2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNDQ0O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLVR2RDlQYy1oU1JHUGR7ZGlzcGxheTpibG9jazttYXJnaW46MCAxMHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1Bke3BhZGRpbmctdG9wOjJweDtwYWRkaW5nLWxlZnQ6NHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgKiwuVklwZ0pkLVpWaTlvZC1TbWZaICosLlZJcGdKZC1aVmk5b2QtbDl4a3RmICosLlZJcGdKZC1aVmk5b2QtdkgxR21mICosLlZJcGdKZC1aVmk5b2QteGwwN09iICosLmdvb2ctdGUtY29tYm97Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHR9LlZJcGdKZC1aVmk5b2QtT1JIYnttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNFNEVGRkI7b3ZlcmZsb3c6aGlkZGVufS5WSXBnSmQtWlZpOW9kLU9SSGIgaW1ne2JvcmRlcjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGItYk45N1Bje2NvbG9yOiMwMDB9LlZJcGdKZC1aVmk5b2QtT1JIYi1iTjk3UGMgaW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1PUkhiLVRzd3YxYntjb2xvcjojNjY2O3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW4tdG9wOjA7Zm9udC1zaXplOjdwdH0uVklwZ0pkLVpWaTlvZC1PUkhiLUtFNnZxZXt3aWR0aDo4cHh9LlZJcGdKZC1aVmk5b2QtTGdic1Nle2JvcmRlci1jb2xvcjojRTdFN0U3O2JvcmRlci1zdHlsZTpub25lIHNvbGlkIHNvbGlkIG5vbmU7Ym9yZGVyLXdpZHRoOjAgMXB4IDFweCAwfS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBkaXZ7Ym9yZGVyLWNvbG9yOiNDQ0MgIzk5OSAjOTk5ICNDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOTk5O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2hlaWdodDoyMHB4fS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBidXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vd3JhcH0uVklwZ0pkLVpWaTlvZC1MZ2JzU2UgYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0NDQ30uVklwZ0pkLVpWaTlvZC1TbWZae21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6I0ZGRjt3aGl0ZS1zcGFjZTpub3dyYXB9LlZJcGdKZC1aVmk5b2QtU21mWi1oU1JHUGR7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMHB0O2JvcmRlcjoxcHggb3V0c2V0ICM4ODg7cGFkZGluZzo2cHggMTBweDt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowfS5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1BkIGltZ3ttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0OjJweDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlcjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZCBzcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7bWFyZ2luLWxlZnQ6MnB4O21hcmdpbi1yaWdodDoycHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWZsb2F0LXRvcCAuVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZHtwYWRkaW5nOjJweDtib3JkZXItdG9wLXdpZHRoOjB9Lmdvb2ctdGUtZmxvYXQtYm90dG9tIC5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1Bke3BhZGRpbmc6MnB4O2JvcmRlci1ib3R0b20td2lkdGg6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVke3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMEM7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4fS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgc3Bhbnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgaW1ne21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4fS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZHtjb2xvcjojMDAwfS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZCBzcGFue3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYntiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCAjQzNEOUZGO292ZXJmbG93LXk6c2Nyb2xsO292ZXJmbG93LXg6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItaWJuQzZie3BhZGRpbmc6M3B4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmIsLlZJcGdKZC1aVmk5b2QteGwwN09iLWlibkM2YjpsaW5re2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6dmlzaXRlZHtjb2xvcjojNTUxQThCfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6aG92ZXJ7YmFja2dyb3VuZDojQzNEOUZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6YWN0aXZle2NvbG9yOiMwMEN9LlZJcGdKZC1aVmk5b2QtdkgxR21me2JhY2tncm91bmQtY29sb3I6I0ZGRjt0ZXh0LWRlY29yYXRpb246bm9uZTtib3JkZXI6MXB4IHNvbGlkICM2QjkwREE7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1LcmhQTmJ7d2lkdGg6MTZweH0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaGdEVXdle21hcmdpbjo2cHggMDtoZWlnaHQ6MXB4O2JhY2tncm91bmQtY29sb3I6I2FhYTtvdmVyZmxvdzpoaWRkZW59LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgZGl2e3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmIgLnVERUZnZXtkaXNwbGF5Om5vbmV9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgLmZtY21Te3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo0cHh9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZHt0ZXh0LWRlY29yYXRpb246bm9uZX0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOmFjdGl2ZSBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YjpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOnZpc2l0ZWQgZGl2e2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmI6aG92ZXIgZGl2e2NvbG9yOiNGRkY7YmFja2dyb3VuZDojMzZDfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDphY3RpdmUgZGl2LC5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kOmhvdmVyIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDp2aXNpdGVkIGRpdntjb2xvcjojMDAwO2ZvbnQtd2VpZ2h0OjcwMH0uVklwZ0pkLVpWaTlvZC1sOXhrdGZ7YmFja2dyb3VuZC1jb2xvcjojRkZGO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHh9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLU9FVm1jZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyOjFweCBzb2xpZCAjNkI5MERBO2JveC1zaGFkb3c6MCAzcHggOHB4IDJweCAjOTk5O2JvcmRlci1yYWRpdXM6OHB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0ZiBpbWd7Ym9yZGVyOm5vbmV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLWZtY21Te21hcmdpbi10b3A6NnB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGN7bWFyZ2luLXRvcDo2cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGMgKnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuRFVHSmlle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X21pbnVzX3NtLmdpZil9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuVGR5VERle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X3BsdXNfc20uZ2lmKX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtVmd3SmxjIHNwYW57Y29sb3I6IzAwQzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyO21hcmdpbjowIDRweH0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtSTlHTHB7bWFyZ2luOjZweCAwIDB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm17bWFyZ2luOjB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm0gdGV4dGFyZWF7bWFyZ2luLWJvdHRvbTo0cHg7d2lkdGg6MTAwJX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYteWVQZTVje21hcmdpbjo2cHggMCA0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLXdPSE15Znt6LWluZGV4OjEwMDA7cG9zaXRpb246Zml4ZWQ7dHJhbnNpdGlvbi1kZWxheTouNnM7bGVmdDotMTAwMHB4O3RvcDotMTAwMHB4fS5WSXBnSmQtWlZpOW9kLWFaMndFZS13T0hNeWYtdGk2aEdje3RyYW5zaXRpb24tZGVsYXk6MHM7bGVmdDotMTRweDt0b3A6LTE0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPe2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDRweDtoZWlnaHQ6MTA0cHg7Ym9yZGVyLXJhZGl1czo1MHB4O2JhY2tncm91bmQ6I0ZGRiB1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL3Byb2R1Y3QvMngvdHJhbnNsYXRlXzI0ZHAucG5nKSA1MCUgNTAlIG5vLXJlcGVhdDt0cmFuc2l0aW9uOmFsbCAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKC40KTtvcGFjaXR5OjB9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPLXRpNmhHY3t0cmFuc2Zvcm06c2NhbGUoLjUpO29wYWNpdHk6MX0uVklwZ0pkLVpWaTlvZC1hWjJ3RWV7bWFyZ2luOjJweCAwIDAgMnB4O2FuaW1hdGlvbjpzcGlubmVyLXJvdGF0b3IgMS40cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBzcGlubmVyLXJvdGF0b3J7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9fS5WSXBnSmQtWlZpOW9kLWFaMndFZS1KdDVjS3tzdHJva2UtZGFzaGFycmF5OjE4NztzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZTojNDI4NUY0O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO2FuaW1hdGlvbjpzcGlubmVyLWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNwaW5uZXItZGFzaHswJXtzdHJva2UtZGFzaG9mZnNldDoxODd9NTAle3N0cm9rZS1kYXNob2Zmc2V0OjQ2Ljc1O3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX10b3tzdHJva2UtZGFzaG9mZnNldDoxODc7dHJhbnNmb3JtOnJvdGF0ZSg0NTBkZWcpfX0uVklwZ0pkLXlBV05FYi1MN2xia2IgYSwuVklwZ0pkLXlBV05FYi1MN2xia2IgYm9keSwuVklwZ0pkLXlBV05FYi1MN2xia2IgZGl2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBmb3JtLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoMSwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDIsLlZJcGdKZC15QVdORWItTDdsYmtiIGgzLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoNCwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDUsLlZJcGdKZC15QVdORWItTDdsYmtiIGg2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBodG1sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBpZnJhbWUsLlZJcGdKZC15QVdORWItTDdsYmtiIGltZywuVklwZ0pkLXlBV05FYi1MN2xia2IgbGksLlZJcGdKZC15QVdORWItTDdsYmtiIG9sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBwLC5WSXBnSmQteUFXTkViLUw3bGJrYiBzcGFuLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0YWJsZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgdGJvZHksLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0ciwuVklwZ0pkLXlBV05FYi1MN2xia2IgdWx7YWxsOnVuc2V0O2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0Om5vcm1hbH0uVklwZ0pkLXlBV05FYi1MN2xia2Igb2wsLlZJcGdKZC15QVdORWItTDdsYmtiIHVse2xpc3Qtc3R5bGU6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9LlZJcGdKZC15QVdORWItTDdsYmtiIGNhcHRpb24sLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6NDAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiBpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1kaXY+LlZJcGdKZC15QVdORWItTDdsYmtie3BhZGRpbmc6MTBweCAxNHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYntjb2xvcjojMjIyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlZWU7Ym94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy1tb3otYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy13ZWJraXQtYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpO2Rpc3BsYXk6bm9uZTtmb250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBwdDt3aWR0aDo0MjBweDtwYWRkaW5nOjEycHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TLC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NsZWFyOmJvdGg7Zm9udC1zaXplOjEwcHQ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpqdXN0aWZ5O3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXI0bmtle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46NHB4IDA7dGV4dC1hbGlnbjpsZWZ0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UdkQ5UGMtTGdic1Nle2Rpc3BsYXk6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbDRlSFh7ZmxvYXQ6bGVmdDttYXJnaW46MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLVBMRGJiZntkaXNwbGF5OmlubGluZS1ibG9ja30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItZnc0MlplLVowQXJxZi1oYUFjbGZ7ZGlzcGxheTpub25lO3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1IOXREdHttYXJnaW4tdG9wOjIwcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUxLNXl1e2Zsb2F0OmxlZnR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXF3VThNZXtmbG9hdDpyaWdodH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItY0dNSTJie21pbi1oZWlnaHQ6MTVweDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MSV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLWpPZmtNYi1OZTNzRmZ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjMjk5MTBkIDAsIzIwYWYwZSAxMDAlKTtiYWNrZ3JvdW5kOiMyOTkxMGQ7Ym9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6aW5zZXQgMCAycHggMnB4ICMxZTY2MDk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDJweCAjMWU2NjA5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCAycHggIzFlNjYwOTtjb2xvcjp3aGl0ZTtmb250LXNpemU6OXB0O2ZvbnQtd2VpZ2h0OmJvbGRlcjttYXJnaW4tdG9wOjEycHg7cGFkZGluZzo2cHg7dGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzFlNjYwOX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLWhTUkdQZHtjb2xvcjojMTVjO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMXB4O21hcmdpbi1yaWdodDoxNXB4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYj50ZXh0YXJlYXtmb250LWZhbWlseTphcmlhbDtyZXNpemU6dmVydGljYWw7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLXJhZGl1czoxcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkIHNpbHZlcjtmb250LXNpemU6MTNweDtoZWlnaHQ6YXV0bztvdmVyZmxvdy15OmF1dG87cGFkZGluZzoxcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIHRleHRhcmVhOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTtvdXRsaW5lOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1JYkUwU3ttYXJnaW4tcmlnaHQ6MTBweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwe21pbi1oZWlnaHQ6MjVweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZy10b3A6OHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwe21hcmdpbi1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dHtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6NTRweDsqbWluLXdpZHRoOjcwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZGNkY2RjO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzQ0NDtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjI3cHg7b3V0bGluZTowO3BhZGRpbmc6MCA4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjI3cHg7bWFyZ2luOjAgMTZweCAwIDA7Ym94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpO2JvcmRlci1yYWRpdXM6MnB4O3RyYW5zaXRpb246YWxsIC4yMThzO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSwjZjFmMWYxKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmhvdmVye2JvcmRlcjoxcHggc29saWQgI2M2YzZjNjtjb2xvcjojMjIyO3RyYW5zaXRpb246YWxsIDBzO2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y4ZjhmOCwjZjFmMWYxKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjYzZjNmM2O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjZmNmY2O2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmZvY3VzIC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LkFIbXV3ZSAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXM6YWN0aXZle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjUpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC41KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dC5BSG11d2UsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTt6LWluZGV4OjQhaW1wb3J0YW50fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LmdrNlNNZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNlZWUsI2UwZTBlMCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2NvbG9yOiMzMzN9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZntjb2xvcjp3aGl0ZTtib3JkZXItY29sb3I6IzMwNzllZDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZDkwZmU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzQ3ODdlZCl9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZi5BSG11d2UgLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjpob3ZlciAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3Vze2JvcmRlci1jb2xvcjojMzA3OWVkO2JhY2tncm91bmQtY29sb3I6IzM1N2FlODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjMzU3YWU4KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmhvdmVye2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmYsMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZiwwIDFweCAxcHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmLDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmLkFIbXV3ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3VzLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0IC5WSXBnSmQteUFXTkViLVowQXJxZi1zRmVCcWY6aG92ZXIsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQuQUhtdXdlLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpmb2N1cywuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzMwNzllZH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbXJ4UGdle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZn0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLVcwdkpvLWZtY21Te2NvbG9yOiM5OTk7Zm9udC1zaXplOjExcHg7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46MTVweCAwIDVweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXUwcGpvZS1mbWNtU3tjb2xvcjojODAwO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6OXB0fS5WSXBnSmQteUFXTkViLVZJcGdKZC1mbWNtUy1zbjU0UXtiYWNrZ3JvdW5kLWNvbG9yOiNjOWQ3ZjE7Ym94LXNoYWRvdzoycHggMnB4IDRweCAjOTlhO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQteGwwN09ie2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym94LXNoYWRvdzowIDJweCA0cHggIzk5YTttaW4td2lkdGg6MDtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQtajdMRmxie2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MnB4IDVweCA1cHg7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLXN0eWxlOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYjpob3ZlcntiYWNrZ3JvdW5kOiNkZGR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYiBoMXtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDA7bWFyZ2luOjRweCAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQteGwwN09iIC5WSXBnSmQteUFXTkViLVZJcGdKZC1qN0xGbGIgc3Ryb25ne2NvbG9yOiMzNDVhYWR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVZJcGdKZC1lS201RmMtaEZzYm97dGV4dC1hbGlnbjpyaWdodDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6YXV0b30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYi1TSXNyVGQgLlZJcGdKZC15QVdORWItVklwZ0pkLWVLbTVGYy1oRnNib3t0ZXh0LWFsaWduOmxlZnQ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OmF1dG99LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVRWTHc5Yy1wcEhscmYtc241NFEsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtZm1jbVN7YmFja2dyb3VuZC1jb2xvcjojZjFlYTAwO2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjNweCAzcHggNHB4IHJnYmEoMCwwLDAsLjUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojZjFlYTAwO2N1cnNvcjpwb2ludGVyO21hcmdpbjotMnB4IC0ycHggLTJweCAtM3B4O3BhZGRpbmc6MnB4IDJweCAycHggM3B4O3Bvc2l0aW9uOnJlbGF0aXZlfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2NvbG9yOiMyMjJ9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2JhY2tncm91bmQtY29sb3I6I2M5ZDdmMTtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwOy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggNHB4IDAgMDstbW96LWJvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7Ym94LXNoYWRvdzozcHggM3B4IDRweCByZ2JhKDAsMCwwLC41KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOi0ycHggLTJweCAtMnB4IC0zcHg7cGFkZGluZzoycHggMnB4IDNweCAzcHg7cG9zaXRpb246cmVsYXRpdmV9LlZJcGdKZC15QVdORWItTDdsYmtiIHNwYW46Zm9jdXN7b3V0bGluZTpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtRHlWREF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmU7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowO21hcmdpbjotMnB4O3BhZGRpbmc6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi15QVdORWItVFZMdzljLXNuNTRRLUx6WDNlZntib3JkZXItbGVmdDoycHggc29saWQgcmVkO21hcmdpbi1sZWZ0Oi0ycHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1UVkx3OWMtc241NFEtWUlBaUlie2JvcmRlci1yaWdodDoycHggc29saWQgcmVkO21hcmdpbi1yaWdodDotMnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJme3BhZGRpbmc6MnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21Te2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDJweCAzcHg7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMzMzM7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkICNjMGMwYzA7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO2hlaWdodDoyMXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJvcmRlci1yYWRpdXM6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmhvdmVye2JvcmRlcjoxcHggc29saWQgI2I5YjliOTtib3JkZXItdG9wOjFweCBzb2xpZCAjYTBhMGEwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO291dGxpbmU6bm9uZTtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC1ZUHFqYmYtc0ZlQnFme2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDZweCAzcHg7bWFyZ2luOjAgMCAwIDJweDtoZWlnaHQ6MjFweH0uVklwZ0pkLXlBV05FYi1MN2xia2I+ZGl2e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LWZhbWlseTpHb29nbGUgU2FucyxBcmlhbCxzYW5zLXNlcmlmfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVWQ3ZnJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmVuZDttYXJnaW46MTRweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1TSXNyVGR7bWFyZ2luLXJpZ2h0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1JdWl6V2MtaTNqTThje21hcmdpbi1sZWZ0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1rNzdJaWZ7bWFyZ2luOjAgMTZweCAxNnB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYXhBVjF7d2lkdGg6YXV0bztjb2xvcjojMWYxZjFmO2ZvbnQtc2l6ZToxNnB4O3RleHQtYWxpZ246aW5pdGlhbH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWF4QVYxIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlke2JvcmRlci1yYWRpdXM6MCAwIDEycHggMTJweDttYXJnaW46MDtiYWNrZ3JvdW5kOiNmMWY0Zjk7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDo1MHB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkLUI3STRPZHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6NzclO3BhZGRpbmc6MTJweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLU43RXFpZC1CN0k0T2QgLlZJcGdKZC15QVdORWItU0lzclRke3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1VVHVqQ2J7Y29sb3I6IzFmMWYxZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVVR1akNie3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1lTzltS2V7Y29sb3I6IzQ0NDc0Njtmb250LXNpemU6MTJweDtwYWRkaW5nLXRvcDo0cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtZU85bUtle3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDo1cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NSAuVklwZ0pkLXlBV05FYi1TSXNyVGR7bGVmdDo1cHg7cmlnaHQ6YXV0b30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYntmaWxsOiMwYjU3ZDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1iZ202c2Z7bWFyZ2luOi00cHggMnB4IDAgMDtwYWRkaW5nOjJweCAwIDA7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjI0cHg7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDpub25lfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYmdtNnNmOmhvdmVye2JhY2tncm91bmQ6I2U4ZWJlY30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWFYWVRjZXtkaXNwbGF5Om5vbmV9c2VudGluZWx7fQ=="}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":19,"receive":0,"ssl":0},"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.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:02.393Z","timestamp":1785132842393,"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://farosonglobaltrade.ltd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\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 06:14:05 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a4cb803-891\"\r\nexpires: Tue, 07 Jul 2026 08:35:15 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: kyV99OZZuigkGCIKTI585Gi6Pyfb4a8ESty3gIzPZpRQXlAdGwLJanYhICMdxHEgtyaMnbc\r\nx-77-nzt-ray: fdb541232848488e2df7666ad7daf027\r\nx-77-cache: HIT\r\nx-77-age: 50\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":1034,"mime_type":"application/json","magic":"JSON text data","md5":"88bd6816d4679ef7a63e1e6b61490804","sha1":"a592c82f8688d81c4ff12ddda0f42d842dbcf079","sha256":"1147d96bffe9abe8aa663c63cca281edbff049e2211f810da089a1dd90051df8","sha512":"e583bebb86335657d7cca5065967a4e281280f0b4ab1fe0457de1dee47f12f84922daf5fe938c39bfb8f03e086d706f2b0fd1d86a6e79c4cce053f0943dcb762","ssdeep":"","tlshash":"d9414593c0b80e5317cc262bb89545515d5083c7e88a3d0d366d9a7f2f4cea920e6b7e","first_seen":"2026-07-07T11:50:17.724469Z","last_seen":"2026-07-27T07:27:47.909394Z","times_seen":1802,"resource_available":false,"data":"ewogICJfV2lkZ2V0TWVzc2VuZ2VySW5wdXQtQzBYSFB4ZXYuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtQzBYSFB4ZXYuanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VySW5wdXQiLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLUNnTUNBZm9yLmpzIgogICAgXSwKICAgICJkeW5hbWljSW1wb3J0cyI6IFsKICAgICAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIgogICAgXQogIH0sCiAgIl9zaGFyZWQtQ2dNQ0Fmb3IuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvc2hhcmVkLUNnTUNBZm9yLmpzIiwKICAgICJuYW1lIjogIkljb25CdXR0b24iLAogICAgImR5bmFtaWNJbXBvcnRzIjogWwogICAgICAibm9kZV9tb2R1bGVzLy5wbnBtL0B0aHVtYm1hcmtqcyt0aHVtYm1hcmtqc0AxLjkuMC9ub2RlX21vZHVsZXMvQHRodW1ibWFya2pzL3RodW1ibWFya2pzL2Rpc3QvdGh1bWJtYXJrLmVzbS5qcyIKICAgIF0KICB9LAogICJub2RlX21vZHVsZXMvLnBucG0vQHRodW1ibWFya2pzK3RodW1ibWFya2pzQDEuOS4wL25vZGVfbW9kdWxlcy9AdGh1bWJtYXJranMvdGh1bWJtYXJranMvZGlzdC90aHVtYm1hcmsuZXNtLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL3RodW1ibWFyay5lc20tQ1A0Q1UweUwuanMiLAogICAgIm5hbWUiOiAidGh1bWJtYXJrLmVzbSIsCiAgICAic3JjIjogIm5vZGVfbW9kdWxlcy8ucG5wbS9AdGh1bWJtYXJranMrdGh1bWJtYXJranNAMS45LjAvbm9kZV9tb2R1bGVzL0B0aHVtYm1hcmtqcy90aHVtYm1hcmtqcy9kaXN0L3RodW1ibWFyay5lc20uanMiLAogICAgImlzRHluYW1pY0VudHJ5IjogdHJ1ZQogIH0sCiAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21vZHVsZS1ERDVudlZEMy5qcyIsCiAgICAibmFtZSI6ICJtb2R1bGUiLAogICAgInNyYyI6ICJub2RlX21vZHVsZXMvLnBucG0vZW1vamktbWFydEA1LjYuMC9ub2RlX21vZHVsZXMvZW1vamktbWFydC9kaXN0L21vZHVsZS5qcyIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlCiAgfSwKICAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItREQ3T3l5VDUuanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VyIiwKICAgICJzcmMiOiAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLUNnTUNBZm9yLmpzIiwKICAgICAgIl9XaWRnZXRNZXNzZW5nZXJJbnB1dC1DMFhIUHhldi5qcyIsCiAgICAgICJzcmMvbWFpbi50cyIKICAgIF0KICB9LAogICJzcmMvZnJhbWVzL3BvcHVwL1dpZGdldFBvcHVwLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRQb3B1cC1xZXV3a2NCbi5qcyIsCiAgICAibmFtZSI6ICJXaWRnZXRQb3B1cCIsCiAgICAic3JjIjogInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIiwKICAgICJpc0R5bmFtaWNFbnRyeSI6IHRydWUsCiAgICAiaW1wb3J0cyI6IFsKICAgICAgIl9zaGFyZWQtQ2dNQ0Fmb3IuanMiLAogICAgICAiX1dpZGdldE1lc3NlbmdlcklucHV0LUMwWEhQeGV2LmpzIgogICAgXQogIH0sCiAgInNyYy9tYWluLnRzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21haW4tdDZXeExBQkEuanMiLAogICAgIm5hbWUiOiAibWFpbiIsCiAgICAic3JjIjogInNyYy9tYWluLnRzIiwKICAgICJpc0VudHJ5IjogdHJ1ZSwKICAgICJpbXBvcnRzIjogWwogICAgICAiX3NoYXJlZC1DZ01DQWZvci5qcyIKICAgIF0sCiAgICAiZHluYW1pY0ltcG9ydHMiOiBbCiAgICAgICJzcmMvZnJhbWVzL21lc3Nlbmdlci9XaWRnZXRNZXNzZW5nZXIuc3ZlbHRlIiwKICAgICAgInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIgogICAgXQogIH0sCiAgInN0eWxlLmNzcyI6IHsKICAgICJmaWxlIjogImFzc2V0cy9zdHlsZS1DbGlKd1VUUi5jc3MiLAogICAgInNyYyI6ICJzdHlsZS5jc3MiCiAgfQp9"}},"time_used":3284,"timings":{"blocked":0,"dns":2,"connect":8,"send":0,"wait":8,"receive":0,"ssl":3266},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/widgets/ticker-widget.js","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.336Z","timestamp":1785132838336,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /widgets/ticker-widget.js HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 23 May 2022 09:01:28 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 971\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":2509,"size_decoded":1207,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (1119)","md5":"659e5841c56694a76d4be27b71789c66","sha1":"e44e9d25cbe1527de3a5106c81f181c7570cde72","sha256":"a83104eb189c8f9ded97c9c6678c33964d72bd8a42597b403f6f97e92be2b0ea","sha512":"1e73df50adf8a1b4e9231a9f98706f34cc3470a0ba78ab43d0a4ddf37154fca95fbd2b08160d7cdbce1f81776e0b003edf7b14313bd3cc3b548b99a8e45f7fae","ssdeep":"","tlshash":"3751e99ada004817957711dc903fa31d1d519070ef06c742b61cd5fa3ea8d6e6425fcb","first_seen":"2025-08-12T04:19:48.075932Z","last_seen":"2026-07-27T06:14:42.693066Z","times_seen":3,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7dmFyIGU7aWYodm9pZCAwPT09d2luZG93LmpRdWVyeXx8IjEuNC4yIiE9PXdpbmRvdy5qUXVlcnkuZm4uanF1ZXJ5KXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt0LnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpLHQuc2V0QXR0cmlidXRlKCJzcmMiLCJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjQuMi9qcXVlcnkubWluLmpzIiksdC5yZWFkeVN0YXRlP3Qub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ImNvbXBsZXRlIiE9dGhpcy5yZWFkeVN0YXRlJiYibG9hZGVkIiE9dGhpcy5yZWFkeVN0YXRlfHxuKCl9OnQub25sb2FkPW4sKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQodCl9ZWxzZSBlPXdpbmRvdy5qUXVlcnksaSgpO2Z1bmN0aW9uIG4oKXtlPXdpbmRvdy5qUXVlcnkubm9Db25mbGljdCghMCksaSgpfQpmdW5jdGlvbiBpKCl7ZShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oZSl7dmFyIHdpZHRoO3ZhciBjb2xvcjt2YXIgc3ltYm9sPScnO3ZhciBtY190ZXh0PScnO3ZhciBiY29sb3I9Jyc7dmFyIGNjb2xvcj0nJzt2YXIgcGNvbG9yPScnO3ZhciBtY2FwPScnO3ZhciBhZHRkPScnO2UoIi5jb2lubG9yZS1wcmljZXRpY2tlci13aWRnZXQiKS5lYWNoKGZ1bmN0aW9uKCl7YmNvbG9yPWUodGhpcykuYXR0cigiZGF0YS1iY29sb3IiKTtwY29sb3I9ZSh0aGlzKS5hdHRyKCJkYXRhLXBjb2xvciIpO2Njb2xvcj1lKHRoaXMpLmF0dHIoImRhdGEtY2NvbG9yIik7c2NvbG9yPWUodGhpcykuYXR0cigiZGF0YS1zY29sb3IiKTtlLmdldCgiaHR0cHM6Ly93aWRnZXQuY29pbmxvcmUuY29tL3dpZGdldHMvdG9wLWxpc3QvP3RvcD0iK2UodGhpcykuYXR0cigiZGF0YS10b3AiKSsiJmN1cj0iK2UodGhpcykuYXR0cigiZGF0YS1tY3VycmVuY3kiKSxmdW5jdGlvbih0KXtjYz0nPHN0eWxlPi5tYXJxdWVlY29pbmxvcmV7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7Ym94LXNpemluZzpib3JkZXItYm94O2FuaW1hdGlvbjptYXJxdWVlIDUwcyBsaW5lYXIgaW5maW5pdGV9Lm1hcnF1ZWVjb2lubG9yZTpob3ZlcnthbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWR9QGtleWZyYW1lcyBtYXJxdWVlezAle3RleHQtaW5kZW50OjI3LjVlbX0xMDAle3RleHQtaW5kZW50Oi0xMDVlbX19PC9zdHlsZT4nO2NjKz0nPGRpdiBzdHlsZT0iY29sb3I6ICMzMzM7YmFja2dyb3VuZDogJytiY29sb3IrJztib3gtc2hhZG93OiAwIDFweCAzcHggMCAjY2NjO2ZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjttaW4td2lkdGg6IDMwMHB4O3dpZHRoOiAxMDAlO2xpbmUtaGVpZ2h0OiAzNXB4O2ZvbnQtc2l6ZTogMTZweDsiPic7Y2MrPSc8ZGl2IGNsYXNzPSJtYXJxdWVlY29pbmxvcmUiPic7dC5mb3JFYWNoKGZ1bmN0aW9uKGVudHJ5KXtzeW1ib2w9Jyc7aWYoZW50cnkucGVyY2VudF9jaGFuZ2VfMjRoPDApe2NvbG9yPScjYzIyMjBkIWltcG9ydGFudCc7fWVsc2V7Y29sb3I9JyM4ZGM2NDchaW1wb3J0YW50JztzeW1ib2w9JysnO30KY2MrPSc8YSBzdHlsZT0icGFkZGluZy1sZWZ0OiAxMHB4O3BhZGRpbmctcmlnaHQ6IDEwcHg7IiBocmVmPSJodHRwczovL3d3dy5jb2lubG9yZS5jb20vY29pbi8nK2VudHJ5Lm5hbWVpZCsnIiB0aXRsZT0iJytlbnRyeS5uYW1lKycgJytlbnRyeS5zeW1ib2wrJyBDb2luIFByaWNlIiB0YXJnZXQ9Il9ibGFuayI+XG4nKwonPGltZyBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1YjsgYm9yZGVyLXN0eWxlOiBub25lO3BhZGRpbmc6MnB4Oy13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7IC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7d2lkdGg6IDIwcHg7aGVpZ2h0OiAyMHB4OyIgc3JjPSJodHRwczovL2MxLmNvaW5sb3JlLmNvbS9pbWcvMjB4MjAvJytlbnRyeS5uYW1laWQrJy5wbmciPlxuJysKJzxzcGFuIHN0eWxlPSJjb2xvcjogJytjY29sb3IrJyI+JytlbnRyeS5uYW1lKyc8L3NwYW4+IDxzcGFuIHN0eWxlPSJjb2xvcjogJytzY29sb3IrJyI+KCcrZW50cnkuc3ltYm9sKycpPC9zcGFuPlxuJysKJzxzcGFuIHN0eWxlPSJjb2xvcjogJytwY29sb3IrJzsiPicrZW50cnkucHJpY2VfdXNkKyc8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB4Ij4nK2VudHJ5Lm1jKyc8L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjonK2NvbG9yKyciPiAoJytzeW1ib2wrJycrZW50cnkucGVyY2VudF9jaGFuZ2VfMjRoKyclKSA8L3NwYW4+XG4nKwonPC9hPic7fSk7Y2MrPSc8L2Rpdj4nO2NjKz0nPC9kaXY+JztlKCIuY29pbmxvcmUtcHJpY2V0aWNrZXItd2lkZ2V0IikuY3NzKCJ3aWR0aCIsd2lkdGgpO2UoIi5jb2lubG9yZS1wcmljZXRpY2tlci13aWRnZXQiKS5odG1sKGNjKTt9KX0pfSl9fSgpOw=="}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/fonts/fontawesome-webfont.woff2","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.645Z","timestamp":1785132838645,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/fonts/fontawesome-webfont.woff2 HTTP/1.1\r\nHost: farosonglobaltrade.ltd\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/assets/css/fontawesome.css\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: font/woff2\r\nlast-modified: Mon, 03 Jan 2022 23:40:24 GMT\r\naccept-ranges: bytes\r\ncontent-length: 56780\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":56780,"size_decoded":57047,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 56780, version 4.197","md5":"97493d3f11c0a3bd5cbd959f5d19b699","sha1":"1075231650f579955905bb2f6527148a8e2b4b16","sha256":"aadc3580d2b64ff5a7e6f1425587db4e8b033efcbf8f5c332ca52a5ed580c87c","sha512":"bfe4679bbe5d1db21f6ecb2d6c2810dd02d3b698efdd50004cc355c1d0bc51de8dd102707c796b26e8250c600b4b64db88b67d3f28157777b68e36ad7930bfc0","ssdeep":"1536:zxwdj+K8kLkunGAASpdw6hsxD/G+zSIoiCQN+n:zxmVY6dwJThoiCQE","tlshash":"eb430269f84b577202275a0509ee0d34ef804962eef247fbb1fb90c5d6309ac1ea1b56","first_seen":"2023-04-05T09:41:17Z","last_seen":"2026-07-27T09:01:27.210892Z","times_seen":30087,"resource_available":false,"data":"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"}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"widget-v4.tidiochat.com/fonts/mulish_SGhgqk3wotYKNnBQ.woff2","fqdn":"widget-v4.tidiochat.com","domain":"tidiochat.com","tld":"com"},"ip":{"addr":"104.26.8.139","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.991Z","timestamp":1785132838991,"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":"tidiochat.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 22 Jun 2026 00:15:11 GMT","end":"Sun, 20 Sep 2026 01:15:06 GMT"},"fingerprint":{"sha1":"49:82:83:48:29:F7:56:11:1A:16:1F:DB:82:A9:D7:C1:51:57:D2:6F","sha256":"AF:B4:C8:AE:35:50:AC:7C:42:29:0C:7F:AC:47:8A:59:39:40:B2:F3:6E:1A:D7:59:73:0D:A8:F3:33:D4:7C:9F"}}},"request":{"raw":"GET /fonts/mulish_SGhgqk3wotYKNnBQ.woff2 HTTP/1.1\r\nHost: widget-v4.tidiochat.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://farosonglobaltrade.ltd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\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 06:13:59 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 27400\r\nserver: cloudflare\r\nlast-modified: Thu, 23 Jul 2026 12:30:22 GMT\r\netag: \"6a62095e-6b08\"\r\ncache-control: public, max-age=31536000, immutable\r\naccess-control-allow-origin: *\r\naccept-ranges: bytes\r\nage: 6757\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=5j84Tb0Z7%2FEgXtiNRNpaMLlgeHN5DZMwH0rZlBAuBZyWo6sLfycsQviE0yzme9XYhCtjbUn8AC9NbhXjnQ7qaLlD53T4gBNH7iMWkwpltWuzXKJCTBLsFoM5n1pJExMARKCLvKpSslov\"}]}\r\ncf-ray: a21980552cdfb4eb-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":27400,"size_decoded":28104,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 27400, version 1.0","md5":"d96e6550e1c6b3063f60875bfd4a0870","sha1":"c1b22f0d075bd4413686866134fffcccb3f487b8","sha256":"577db921a554af3596942d3c48b5c91feaac8c767e183d518a8de8de86e5c7d8","sha512":"8446c25d840412230bb91806faab73de9dee5da6a8aae2c980431879d749ca8090d6879e6f42e3be27b416a00ee759dee2febc34df97c3ffa81ae15ce2196802","ssdeep":"768:F4xt+sRZS5Y1nK6uicEP3rhaxoQAoF6jLIRt:F4x3fcUrhOoK63IL","tlshash":"4dc2e10fe287737a5418f23ea969c86e365865503a2e67f1dc1a3ab51e18137b3c4f50","first_seen":"2023-04-08T09:21:33Z","last_seen":"2026-07-27T09:48:29.897394Z","times_seen":9293,"resource_available":false,"data":"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"}},"time_used":249,"timings":{"blocked":-1,"dns":6,"connect":2,"send":0,"wait":18,"receive":1,"ssl":220},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v4.tidiochat.com//tururu.mp3","fqdn":"widget-v4.tidiochat.com","domain":"tidiochat.com","tld":"com"},"ip":{"addr":"104.26.8.139","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"media","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.995Z","timestamp":1785132838995,"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":"tidiochat.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 22 Jun 2026 00:15:11 GMT","end":"Sun, 20 Sep 2026 01:15:06 GMT"},"fingerprint":{"sha1":"49:82:83:48:29:F7:56:11:1A:16:1F:DB:82:A9:D7:C1:51:57:D2:6F","sha256":"AF:B4:C8:AE:35:50:AC:7C:42:29:0C:7F:AC:47:8A:59:39:40:B2:F3:6E:1A:D7:59:73:0D:A8:F3:33:D4:7C:9F"}}},"request":{"raw":"GET //tururu.mp3 HTTP/1.1\r\nHost: widget-v4.tidiochat.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nRange: bytes=0-\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: audio\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nAccept-Encoding: identity\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 206 \r\ndate: Mon, 27 Jul 2026 06:13:59 GMT\r\ncontent-type: audio/mpeg\r\ncontent-length: 7224\r\nserver: cloudflare\r\nlast-modified: Tue, 02 Jun 2026 07:13:31 GMT\r\netag: \"6a1e829b-1c38\"\r\ncache-control: public, max-age=31536000, immutable\r\naccess-control-allow-origin: *\r\nage: 4629881\r\ncontent-range: bytes 0-7223/7224\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=nQvkpc1y0fpkwE0ang2lnLVhj1G2G5yiwjjcKpyDq5sqshosgDor%2FiyX1Fbr59Qsp7Juuk6GhL2Gy7G8x611P0Ym%2BWflz%2BbRwKld6XRwrgcA5hGcCEQJTl2xMg78P%2BLVFDIU6nKAOwg%2F\"}]}\r\ncf-ray: a219805528a7712e-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"206","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":7224,"size_decoded":7950,"mime_type":"audio/mpeg","magic":"MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Monaural","md5":"5061b4d134a7b4d5d744f9a127b757a8","sha1":"c5e240ac60d3914cb3836ba6652105c67720b845","sha256":"12c7687514ca85ba2157ed61914ac526bb9dd15cb5a2a2d9e4d88f919349284f","sha512":"bbd050943fd3129822d687f7733034989faa672e543d5fcc0f1bfc69f5af9c7ff3a4c6e1cd55011383760cef14351527f6de22cfb91b25e8d2ac201fc9b9c7c0","ssdeep":"192:2DjGr+6EnIPwZeM/BCepDxN8XcqOBO+JlRh:CjfxnIPkjpDP8Xcg+JlL","tlshash":"11e18c1937f3e09ed620177642d43664fcd01d8017e2945b25a8baebf13e3cbc26a961","first_seen":"2023-04-05T10:44:18Z","last_seen":"2026-07-27T09:48:29.881571Z","times_seen":9251,"resource_available":false,"data":"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"}},"time_used":232,"timings":{"blocked":0,"dns":2,"connect":2,"send":0,"wait":7,"receive":0,"ssl":220},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"bootstrap.smartsuppchat.com/widget/7b30be55ac2892fe1d8bf7e66458ae7f319e6225.json","fqdn":"bootstrap.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"18.185.198.9","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:02.236Z","timestamp":1785132842236,"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/7b30be55ac2892fe1d8bf7e66458ae7f319e6225.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://farosonglobaltrade.ltd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://farosonglobaltrade.ltd/\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 06:14:02 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: \"4c7-B/6NfaaDpZne/g/uc5qfSnm44ZA\"\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":1223,"size_decoded":879,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"1623b3b9e850c9c1491c70aef8d248c2","sha1":"07fe8d7da683a599defe0fee739a9f4a79b8e190","sha256":"b5b4d35c58c664f860fdab342e28e4f7337c31f56e8da3582e65972af84deb9e","sha512":"bcfb7323cde3f50f57c38880ba4f962f1f35f106a93074f2f3da73256fe2b54698c6065b11f1bc93d6f74811f6d2543fc6f5aa7afea2e5df1ff45b4f25fcc6d2","ssdeep":"","tlshash":"5321766d4a6822fd5245c7d6c5047a036bacdcb371003e7eea0d0a0e70db2e6223646b","first_seen":"2026-06-06T06:44:39.646667Z","last_seen":"2026-07-27T09:46:41.293152Z","times_seen":1769,"resource_available":false,"data":"eyJhaVJhdGluZ0VuYWJsZWQiOnRydWUsImFsbG93ZWREb21haW5zIjpbXSwiYnV0dG9uU3R5bGUiOiJncmVldGluZyIsImNvbG9yIjoiIzEyMzNkZiIsImNvbG9yMiI6bnVsbCwiY29sb3JHcmFkaWVudCI6dHJ1ZSwiY29uc2VudE1vZGVFbmFibGVkIjpmYWxzZSwiY3Jvc3NEb21haW5FbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdFbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdMaW5rIjoiIiwiY3VzdG9tQnJhbmRpbmdUZXh0IjoiIiwiZW1haWxDb250cm9sIjp0cnVlLCJmZWF0dXJlcyI6eyJhcGkiOmZhbHNlLCJjdXN0b21pemUiOmZhbHNlLCJnYSI6ZmFsc2UsImdyb3VwcyI6ZmFsc2UsInJhdGluZyI6ZmFsc2UsIndoaXRlTGFiZWwiOmZhbHNlfSwiZ29vZ2xlQW5hbHl0aWNzRW5hYmxlZCI6ZmFsc2UsImdvb2dsZUFuYWx5dGljc01hbnVhbCI6ZmFsc2UsImdvb2dsZUFuYWx5dGljc01lYXN1cmVtZW50SWRzIjpbXSwiZ3JvdXBTZWxlY3RFbmFibGVkIjpmYWxzZSwiaGVhZGVyU3R5bGUiOiJzdGFuZGFyZCIsImhpZGVPZmZsaW5lQ2hhdCI6ZmFsc2UsImhpZGVXaWRnZXQiOmZhbHNlLCJob3N0Ijoid2Vic29ja2V0LXZpc2l0b3JzLnNtYXJ0c3VwcC5jb20iLCJpbnRlcm5hbEFuYWx5dGljc0VuYWJsZWQiOmZhbHNlLCJpc0Jsb2NrZWQiOmZhbHNlLCJsYW5nIjoiZW4iLCJtb2JpbGVQb3B1cHNFbmFibGVkIjp0cnVlLCJuYW1lQ29udHJvbCI6dHJ1ZSwibnVtYmVyQ29udHJvbCI6ZmFsc2UsIm9wZW5PblRyaWdnZXIiOmZhbHNlLCJvcmllbnRhdGlvbiI6InJpZ2h0IiwicGFja2FnZU5hbWUiOiJmcmVlIiwicG9wdXBUZXh0YXJlYUVuYWJsZWQiOmZhbHNlLCJwcml2YWN5Tm90aWNlQ2hlY2tSZXF1aXJlZCI6ZmFsc2UsInByaXZhY3lOb3RpY2VFbmFibGVkIjp0cnVlLCJwcml2YWN5Tm90aWNlVXJsIjoiIiwicmF0aW5nRW5hYmxlZCI6ZmFsc2UsInJlcXVpcmVMb2dpbiI6ZmFsc2UsInRyYW5zbGF0ZXMiOnt9LCJ1cmxDYXJkc0VuYWJsZWQiOnRydWUsIndpZGdldFZlcnNpb24iOjMsImhhc0ludGVybmFsQXBpIjpmYWxzZSwiY29uZmlnIjp7fSwiYnJvd3NlckxhbmciOiJlbiIsIndpZGdldFRyYWNrZXJVcmwiOiJodHRwczovL3dpZGdldC10cmFja2VyLnNtYXJ0c3VwcC5jb20iLCJ0cmFuc2xhdGlvbnNCYXNlVXJsIjoiaHR0cHM6Ly90cmFuc2xhdGlvbnMuc21hcnRzdXBwY2RuLmNvbSIsIndpZGdldFRyYWNrZXJFbmFibGVkIjpmYWxzZX0="}},"time_used":104,"timings":{"blocked":0,"dns":3,"connect":21,"send":0,"wait":52,"receive":0,"ssl":28},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/bitcoin.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.035Z","timestamp":1785132868035,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/bitcoin.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:44:17 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae2161-261\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\ncf-polished: ok, orig_size=609\r\nx-content-type-options: nosniff\r\ncf-bgj: h2pri,imgq:85\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=1ZMOf4Gz0sUMnVaCwF4v0265AnM95a31VZ%2FnC52e9p6jhhkjxEl9kdhbrXTVItmAWEI%2BrCNEIRnInmk%2BxfTK7WLmSujBrhi8GgkH863ZWNiaOd7Fhza2IgaLkHwwNF%2FM3w%3D%3D\"}]}\r\npriority: u=4,i\r\nvary: accept, accept-encoding\r\nage: 196848\r\ncf-cache-status: HIT\r\ncf-ray: a21981094ece5ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 456\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":456,"size_decoded":1576,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"b450664275686c9ef07404e8d62e7439","sha1":"232096641665f4ffb15d870791855d1c5b9d11b9","sha256":"31cb17b9a5c7010fa79dc5ccdd2bc7a0c06c1500b84df0ef809c4345c3360fb4","sha512":"d6255359ae3c6dc02e351c15ce7df8cc73c56339c217bb46509cef058fed85062caf3bae54f9dc9eb673886d97ca0a671be45dd645b65a6e42bea41e78d6d6af","ssdeep":"","tlshash":"e9f0d44e871414a9c4190e0148571aa5d99f80571481e614f6e7baf618d3d521b23864","first_seen":"2026-07-27T04:22:23.346058Z","last_seen":"2026-07-27T06:14:42.696405Z","times_seen":2,"resource_available":false,"data":"UklGRsABAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSG0AAAABV6CQkSQ2953hQL5KfEQEWbwdUmBgUtu2lLMgAx6JRJJgdFg0igYgIcSk55fzv5shov9q27Zh5Cm9nAHpsE1lBLCamRVAZ4ESuEN6cnOKF092edrHM76e+fecCmWoFNVIXaSuFJerb8gPia8BAFZQOCAsAQAAMAgAnQEqFAAUAD5JII1FIqIhFAQAKASEtgBOmUI4G8A/Bb8o+iF1i7k/qbiLHQBzEvANfrN7AHSN/ul6WBes9icQsAXH0jVJPAAA/upxFuis1ZzgucXPD+CFefeOd4T9zoflHAT7TS38ManA8Ev6QX4s8KYUmD9ytuFlMMrf8dGkXo9tzSfFeNIPQBUQF8Y949H/2gvGT1YILk0qkXr5+CQ/HGXCnpdkfuydu2ZJf/ocO9zvXzYRrvG8JYlKCSaSGe2AVw2zfgj/Bq+jY4iYopH/xBnM/sYr1v3u+2nOfQwF/X+Tq3/Am+TtbiPv/gzxqkzSgzJfnA/8PLHfL0l/T+K3F/g2ZSX/sZAZAu1LDPpPn00zup/cTg2AdDBUub1u/YLZmi83N/3RLlAA"}},"time_used":19,"timings":{"blocked":-1,"dns":5,"connect":1,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"c1.coinlore.com/img/20x20/tron.png","fqdn":"c1.coinlore.com","domain":"coinlore.com","tld":"com"},"ip":{"addr":"172.67.72.144","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:14:28.049Z","timestamp":1785132868049,"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":"coinlore.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Mon, 06 Jul 2026 22:43:33 GMT","end":"Sun, 04 Oct 2026 22:43:32 GMT"},"fingerprint":{"sha1":"3A:14:27:E1:52:FD:0B:31:60:B7:71:2E:00:B6:E6:34:0C:AF:D5:89","sha256":"FD:A1:16:3C:8B:77:6C:C9:08:08:10:75:0D:E7:1F:6D:DE:34:5D:9E:DA:E6:68:88:2E:16:34:F8:F6:46:73:9C"}}},"request":{"raw":"GET /img/20x20/tron.png HTTP/1.1\r\nHost: c1.coinlore.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://farosonglobaltrade.ltd/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, 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\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 06:14:28 GMT\r\ncontent-type: image/webp\r\nserver-timing: cfExtPri\r\nlast-modified: Thu, 13 Feb 2025 16:45:19 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: \"67ae219f-254\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\r\naccept-ranges: bytes\r\npriority: u=4,i\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-bgj: imgq:85,h2pri\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=wNVODahtZoVnVPLbBSu%2BSQpK3FXgeONWCI8znPOdqDcAFKw3OKwPYiPANzyA2cPZelNWOCpfhtf%2B%2BSY%2BEIBjh4zf5%2B%2BpOlXBlJg0cS82C9w7pqmMRNL4J5UM6%2FldGu0B7w%3D%3D\"}]}\r\ncf-polished: ok, orig_size=596\r\nvary: accept, accept-encoding\r\nage: 130375\r\ncf-cache-status: HIT\r\ncf-ray: a21981094ed45ebd-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 512\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"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":512,"size_decoded":1638,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"a0e43c2eb5c7fbfe7b648e254233f41c","sha1":"a5abba7246a1ee08a95e5f2685254c59b6eef0a3","sha256":"9a2104fdfe4184beec7f250379aa49e4bfbca13adfd1a88beacb9a8ea28cee30","sha512":"235ff4f701cbd54bc62ef93814544708301ab53c536a2f3c2647376e91e9838ea9b703e42de2eea32185d1d54ecd436428c517b410763dfd7731e439b5b70417","ssdeep":"","tlshash":"cbf075888f30b930c99dbc801529a351eb73c01b0ce9f69133878ba014c44844512f09","first_seen":"2026-07-27T04:22:23.326096Z","last_seen":"2026-07-27T06:14:42.698062Z","times_seen":2,"resource_available":false,"data":"UklGRvgBAABXRUJQVlA4WAoAAAAQAAAAEwAAEwAAQUxQSG0AAAABV6CQkSQ2953hQL5KfEQEWbwdUmBgUtu2lLMgAx6JRJJgdFg0igYgIcSk55fzv5shov9q27Zh5Cm9nAHpsE1lBLCamRVAZ4ESuEN6cnOKF092edrHM76e+fecCmWoFNVIXaSuFJerb8gPia8BAFZQOCBkAQAAcAkAnQEqFAAUAD5JHoxEIqGhFAaoKASEtgBOmUI4G8W/EbkDNre7n65fzmHQeJz+wG+zdY76AH6zdZb+4/oqlMG/zPKOhUOM/2qPeqB9EqzKvNNgAP7qFl+Zk23p/gxV3C658HeNxT7LG/9QQPRfa8VhPwT9/xwG+7dgj6wPYlr9zF66L/u9jCA1DyxIWLFxckucTNtoHpXGU54g4ecLf1XoGdftIna5TRmVRyDnGRVL8d/+/21qewq517/TQUMf4Erd4IVWseZtPaR8//8L8RIVr+b0SdnoRoWbAKQSjpfpph6/na489UjRHwMyvt8aZhTgwdyQDMUretKDx8npH82+4kgQ3hdKezNv/5/frX/AsHIKLC5na3+V7Thl5X21lYbTGu/y7mVxV8p/83CsWszerK5PiynS93OZTP/n1M211Oe9eSyZ96DzyRlvs/p2J8PLcr39lXUJZ3nC6e5/NnUcgAA="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/css/fontawesome.css","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.043Z","timestamp":1785132838043,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/css/fontawesome.css HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 03 Jan 2022 23:40:18 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 5097\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":23670,"size_decoded":5406,"mime_type":"text/css","magic":"ASCII text, with very long lines (23505), with CRLF line terminators","md5":"52c8b2ea93e62a08bc9da7aa7b191060","sha1":"207957de845a9382828b51bf5ff48ec57cf3cd34","sha256":"d409563e2cdf24e5580f512531d0ad5f95e6dbe42dfac9cc737a1721eb888976","sha512":"21277a96637b4afb5d8104fb101f6189b64f378eef485c033ff79bccd059d64ee1a795ccb458bfeb882d18539673a77935d1af4e3775f89b4ebccd618f70fcc0","ssdeep":"192:U1yiZX8W+ab2edrKeTUKuErArKlcZJVrJ3ee+cR6waYm215bvfhf5DrkHUasT:8s5yWeTUKb+KlkJ5de2UYmyTfhYUasT","tlshash":"afb240f8e54d01d66731c48bff85b36862baf73dd5800d99f01f291c29d22a512c9bba","first_seen":"2025-08-12T04:19:48.021842Z","last_seen":"2026-07-27T06:14:42.699814Z","times_seen":3,"resource_available":false,"data":"LyohDQogKiAgRm9udCBBd2Vzb21lIDQuMy4wIGJ5IEBkYXZlZ2FuZHkgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWUNCiAqICBMaWNlbnNlIC0gaHR0cDovL2ZvbnRhd2Vzb21lLmlvL2xpY2Vuc2UgKEZvbnQ6IFNJTCBPRkwgMS4xLCBDU1M6IE1JVCBMaWNlbnNlKQ0KICovQGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udEF3ZXNvbWUnO3NyYzp1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90Jyk7c3JjOnVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC0xLmVvdCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5zdmcnKSBmb3JtYXQoJ3N2ZycpO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOm5vcm1hbH0uZmF7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7Zm9udC1zaXplOmluaGVyaXQ7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApfS5mYS1sZ3tmb250LXNpemU6MS4zMzMzMzMzM2VtO2xpbmUtaGVpZ2h0Oi43NWVtO3ZlcnRpY2FsLWFsaWduOi0xNSV9LmZhLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLTN4e2ZvbnQtc2l6ZTozZW19LmZhLTR4e2ZvbnQtc2l6ZTo0ZW19LmZhLTV4e2ZvbnQtc2l6ZTo1ZW19LmZhLWZ3e3dpZHRoOjEuMjg1NzE0MjllbTt0ZXh0LWFsaWduOmNlbnRlcn0uZmEtdWx7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6Mi4xNDI4NTcxNGVtO2xpc3Qtc3R5bGUtdHlwZTpub25lfS5mYS11bD5saXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmEtbGl7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMi4xNDI4NTcxNGVtO3dpZHRoOjIuMTQyODU3MTRlbTt0b3A6LjE0Mjg1NzE0ZW07dGV4dC1hbGlnbjpjZW50ZXJ9LmZhLWxpLmZhLWxne2xlZnQ6LTEuODU3MTQyODZlbX0uZmEtYm9yZGVye3BhZGRpbmc6LjJlbSAuMjVlbSAuMTVlbTtib3JkZXI6c29saWQgLjA4ZW0gI2VlZTtib3JkZXItcmFkaXVzOi4xZW19LnB1bGwtcmlnaHR7ZmxvYXQ6cmlnaHR9LnB1bGwtbGVmdHtmbG9hdDpsZWZ0fS5mYS5wdWxsLWxlZnR7bWFyZ2luLXJpZ2h0Oi4zZW19LmZhLnB1bGwtcmlnaHR7bWFyZ2luLWxlZnQ6LjNlbX0uZmEtc3Bpbnstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjthbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXJ9LmZhLXB1bHNley13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7YW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCl9QC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM1OWRlZyl9fUBrZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNTlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKX19LmZhLXJvdGF0ZS05MHtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MSk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmZhLXJvdGF0ZS0xODB7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5mYS1yb3RhdGUtMjcwe2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0uZmEtZmxpcC1ob3Jpem9udGFse2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0wLCBtaXJyb3I9MSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsIDEpOy1tcy10cmFuc2Zvcm06c2NhbGUoLTEsIDEpO3RyYW5zZm9ybTpzY2FsZSgtMSwgMSl9LmZhLWZsaXAtdmVydGljYWx7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsIG1pcnJvcj0xKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLCAtMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxLCAtMSk7dHJhbnNmb3JtOnNjYWxlKDEsIC0xKX06cm9vdCAuZmEtcm90YXRlLTkwLDpyb290IC5mYS1yb3RhdGUtMTgwLDpyb290IC5mYS1yb3RhdGUtMjcwLDpyb290IC5mYS1mbGlwLWhvcml6b250YWwsOnJvb3QgLmZhLWZsaXAtdmVydGljYWx7ZmlsdGVyOm5vbmV9LmZhLXN0YWNre3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjJlbTtoZWlnaHQ6MmVtO2xpbmUtaGVpZ2h0OjJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZhLXN0YWNrLTF4LC5mYS1zdGFjay0yeHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcn0uZmEtc3RhY2stMXh7bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtc3RhY2stMnh7Zm9udC1zaXplOjJlbX0uZmEtaW52ZXJzZXtjb2xvcjojZmZmfS5mYS1nbGFzczpiZWZvcmV7Y29udGVudDoiXGYwMDAifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDAyIn0uZmEtZW52ZWxvcGUtbzpiZWZvcmV7Y29udGVudDoiXGYwMDMifS5mYS1oZWFydDpiZWZvcmV7Y29udGVudDoiXGYwMDQifS5mYS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjAwNSJ9LmZhLXN0YXItbzpiZWZvcmV7Y29udGVudDoiXGYwMDYifS5mYS11c2VyOmJlZm9yZXtjb250ZW50OiJcZjAwNyJ9LmZhLWZpbG06YmVmb3Jle2NvbnRlbnQ6IlxmMDA4In0uZmEtdGgtbGFyZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDA5In0uZmEtdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDBhIn0uZmEtdGgtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwMGIifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1yZW1vdmU6YmVmb3JlLC5mYS1jbG9zZTpiZWZvcmUsLmZhLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjAwZCJ9LmZhLXNlYXJjaC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjAwZSJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1wb3dlci1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDExIn0uZmEtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjAxMiJ9LmZhLWdlYXI6YmVmb3JlLC5mYS1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMDEzIn0uZmEtdHJhc2gtbzpiZWZvcmV7Y29udGVudDoiXGYwMTQifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWZpbGUtbzpiZWZvcmV7Y29udGVudDoiXGYwMTYifS5mYS1jbG9jay1vOmJlZm9yZXtjb250ZW50OiJcZjAxNyJ9LmZhLXJvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE4In0uZmEtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE5In0uZmEtYXJyb3ctY2lyY2xlLW8tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMWEifS5mYS1hcnJvdy1jaXJjbGUtby11cDpiZWZvcmV7Y29udGVudDoiXGYwMWIifS5mYS1pbmJveDpiZWZvcmV7Y29udGVudDoiXGYwMWMifS5mYS1wbGF5LWNpcmNsZS1vOmJlZm9yZXtjb250ZW50OiJcZjAxZCJ9LmZhLXJvdGF0ZS1yaWdodDpiZWZvcmUsLmZhLXJlcGVhdDpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1yZWZyZXNoOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLWxpc3QtYWx0OmJlZm9yZXtjb250ZW50OiJcZjAyMiJ9LmZhLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDIzIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1oZWFkcGhvbmVzOmJlZm9yZXtjb250ZW50OiJcZjAyNSJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDI2In0uZmEtdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDI3In0uZmEtdm9sdW1lLXVwOmJlZm9yZXtjb250ZW50OiJcZjAyOCJ9LmZhLXFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMjkifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyYSJ9LmZhLXRhZzpiZWZvcmV7Y29udGVudDoiXGYwMmIifS5mYS10YWdzOmJlZm9yZXtjb250ZW50OiJcZjAyYyJ9LmZhLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDJkIn0uZmEtYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMDJlIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDJmIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWZvbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDMxIn0uZmEtYm9sZDpiZWZvcmV7Y29udGVudDoiXGYwMzIifS5mYS1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDMzIn0uZmEtdGV4dC1oZWlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM0In0uZmEtdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDoiXGYwMzUifS5mYS1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjAzNiJ9LmZhLWFsaWduLWNlbnRlcjpiZWZvcmV7Y29udGVudDoiXGYwMzcifS5mYS1hbGlnbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzgifS5mYS1hbGlnbi1qdXN0aWZ5OmJlZm9yZXtjb250ZW50OiJcZjAzOSJ9LmZhLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDNhIn0uZmEtZGVkZW50OmJlZm9yZSwuZmEtb3V0ZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2IifS5mYS1pbmRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDNjIn0uZmEtdmlkZW8tY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzZCJ9LmZhLXBob3RvOmJlZm9yZSwuZmEtaW1hZ2U6YmVmb3JlLC5mYS1waWN0dXJlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMDNlIn0uZmEtcGVuY2lsOmJlZm9yZXtjb250ZW50OiJcZjA0MCJ9LmZhLW1hcC1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDQxIn0uZmEtYWRqdXN0OmJlZm9yZXtjb250ZW50OiJcZjA0MiJ9LmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQzIn0uZmEtZWRpdDpiZWZvcmUsLmZhLXBlbmNpbC1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDoiXGYwNDQifS5mYS1zaGFyZS1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDoiXGYwNDUifS5mYS1jaGVjay1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDoiXGYwNDYifS5mYS1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ3In0uZmEtc3RlcC1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNDgifS5mYS1mYXN0LWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OSJ9LmZhLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0YSJ9LmZhLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDRiIn0uZmEtcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDRjIn0uZmEtc3RvcDpiZWZvcmV7Y29udGVudDoiXGYwNGQifS5mYS1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0ZSJ9LmZhLWZhc3QtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTAifS5mYS1zdGVwLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUxIn0uZmEtZWplY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDUyIn0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA1MyJ9LmZhLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDU0In0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU1In0uZmEtbWludXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NiJ9LmZhLXRpbWVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTcifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OSJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1YSJ9LmZhLWNyb3NzaGFpcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDViIn0uZmEtdGltZXMtY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMDVjIn0uZmEtY2hlY2stY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMDVkIn0uZmEtYmFuOmJlZm9yZXtjb250ZW50OiJcZjA1ZSJ9LmZhLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYwIn0uZmEtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYxIn0uZmEtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDYyIn0uZmEtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNjMifS5mYS1tYWlsLWZvcndhcmQ6YmVmb3JlLC5mYS1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGYwNjQifS5mYS1leHBhbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDY1In0uZmEtY29tcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDY2In0uZmEtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwNjcifS5mYS1taW51czpiZWZvcmV7Y29udGVudDoiXGYwNjgifS5mYS1hc3RlcmlzazpiZWZvcmV7Y29udGVudDoiXGYwNjkifS5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZhIn0uZmEtZ2lmdDpiZWZvcmV7Y29udGVudDoiXGYwNmIifS5mYS1sZWFmOmJlZm9yZXtjb250ZW50OiJcZjA2YyJ9LmZhLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZkIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OiJcZjA2ZSJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS13YXJuaW5nOmJlZm9yZSwuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcxIn0uZmEtcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcyIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDczIn0uZmEtcmFuZG9tOmJlZm9yZXtjb250ZW50OiJcZjA3NCJ9LmZhLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc1In0uZmEtbWFnbmV0OmJlZm9yZXtjb250ZW50OiJcZjA3NiJ9LmZhLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDc3In0uZmEtY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA3OCJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc5In0uZmEtc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYwN2EifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDdiIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtYXJyb3dzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMDdkIn0uZmEtYXJyb3dzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMDdlIn0uZmEtYmFyLWNoYXJ0LW86YmVmb3JlLC5mYS1iYXItY2hhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDgwIn0uZmEtdHdpdHRlci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgxIn0uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MiJ9LmZhLWNhbWVyYS1yZXRybzpiZWZvcmV7Y29udGVudDoiXGYwODMifS5mYS1rZXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDg0In0uZmEtZ2VhcnM6YmVmb3JlLC5mYS1jb2dzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWNvbW1lbnRzOmJlZm9yZXtjb250ZW50OiJcZjA4NiJ9LmZhLXRodW1icy1vLXVwOmJlZm9yZXtjb250ZW50OiJcZjA4NyJ9LmZhLXRodW1icy1vLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDg4In0uZmEtc3Rhci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjA4OSJ9LmZhLWhlYXJ0LW86YmVmb3Jle2NvbnRlbnQ6IlxmMDhhIn0uZmEtc2lnbi1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDhiIn0uZmEtbGlua2VkaW4tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4YyJ9LmZhLXRodW1iLXRhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDhkIn0uZmEtZXh0ZXJuYWwtbGluazpiZWZvcmV7Y29udGVudDoiXGYwOGUifS5mYS1zaWduLWluOmJlZm9yZXtjb250ZW50OiJcZjA5MCJ9LmZhLXRyb3BoeTpiZWZvcmV7Y29udGVudDoiXGYwOTEifS5mYS1naXRodWItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5MiJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwOTMifS5mYS1sZW1vbi1vOmJlZm9yZXtjb250ZW50OiJcZjA5NCJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXNxdWFyZS1vOmJlZm9yZXtjb250ZW50OiJcZjA5NiJ9LmZhLWJvb2ttYXJrLW86YmVmb3Jle2NvbnRlbnQ6IlxmMDk3In0uZmEtcGhvbmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5OCJ9LmZhLXR3aXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDk5In0uZmEtZmFjZWJvb2stZjpiZWZvcmUsLmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA5YSJ9LmZhLWdpdGh1YjpiZWZvcmV7Y29udGVudDoiXGYwOWIifS5mYS11bmxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDljIn0uZmEtY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDlkIn0uZmEtcnNzOmJlZm9yZXtjb250ZW50OiJcZjA5ZSJ9LmZhLWhkZC1vOmJlZm9yZXtjb250ZW50OiJcZjBhMCJ9LmZhLWJ1bGxob3JuOmJlZm9yZXtjb250ZW50OiJcZjBhMSJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGEzIn0uZmEtaGFuZC1vLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtby1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhNSJ9LmZhLWhhbmQtby11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1oYW5kLW8tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYTcifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZjBhYyJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS10YXNrczpiZWZvcmV7Y29udGVudDoiXGYwYWUifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtYnJpZWZjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBiMSJ9LmZhLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGIyIn0uZmEtZ3JvdXA6YmVmb3JlLC5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS1jaGFpbjpiZWZvcmUsLmZhLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMGMxIn0uZmEtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGMyIn0uZmEtZmxhc2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGMzIn0uZmEtY3V0OmJlZm9yZSwuZmEtc2Npc3NvcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtY29weTpiZWZvcmUsLmZhLWZpbGVzLW86YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtcGFwZXJjbGlwOmJlZm9yZXtjb250ZW50OiJcZjBjNiJ9LmZhLXNhdmU6YmVmb3JlLC5mYS1mbG9wcHktbzpiZWZvcmV7Y29udGVudDoiXGYwYzcifS5mYS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM4In0uZmEtbmF2aWNvbjpiZWZvcmUsLmZhLXJlb3JkZXI6YmVmb3JlLC5mYS1iYXJzOmJlZm9yZXtjb250ZW50OiJcZjBjOSJ9LmZhLWxpc3QtdWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGNhIn0uZmEtbGlzdC1vbDpiZWZvcmV7Y29udGVudDoiXGYwY2IifS5mYS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZjBjYyJ9LmZhLXVuZGVybGluZTpiZWZvcmV7Y29udGVudDoiXGYwY2QifS5mYS10YWJsZTpiZWZvcmV7Y29udGVudDoiXGYwY2UifS5mYS1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS10cnVjazpiZWZvcmV7Y29udGVudDoiXGYwZDEifS5mYS1waW50ZXJlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMGQyIn0uZmEtcGludGVyZXN0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS1nb29nbGUtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ0In0uZmEtZ29vZ2xlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ1In0uZmEtbW9uZXk6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ2In0uZmEtY2FyZXQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZDcifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJldC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBkOSJ9LmZhLWNhcmV0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBkYSJ9LmZhLWNvbHVtbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGRiIn0uZmEtdW5zb3J0ZWQ6YmVmb3JlLC5mYS1zb3J0OmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLXNvcnQtZG93bjpiZWZvcmUsLmZhLXNvcnQtZGVzYzpiZWZvcmV7Y29udGVudDoiXGYwZGQifS5mYS1zb3J0LXVwOmJlZm9yZSwuZmEtc29ydC1hc2M6YmVmb3Jle2NvbnRlbnQ6IlxmMGRlIn0uZmEtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGUwIn0uZmEtbGlua2VkaW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtcm90YXRlLWxlZnQ6YmVmb3JlLC5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLWxlZ2FsOmJlZm9yZSwuZmEtZ2F2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGUzIn0uZmEtZGFzaGJvYXJkOmJlZm9yZSwuZmEtdGFjaG9tZXRlcjpiZWZvcmV7Y29udGVudDoiXGYwZTQifS5mYS1jb21tZW50LW86YmVmb3Jle2NvbnRlbnQ6IlxmMGU1In0uZmEtY29tbWVudHMtbzpiZWZvcmV7Y29udGVudDoiXGYwZTYifS5mYS1mbGFzaDpiZWZvcmUsLmZhLWJvbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGU3In0uZmEtc2l0ZW1hcDpiZWZvcmV7Y29udGVudDoiXGYwZTgifS5mYS11bWJyZWxsYTpiZWZvcmV7Y29udGVudDoiXGYwZTkifS5mYS1wYXN0ZTpiZWZvcmUsLmZhLWNsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1saWdodGJ1bGItbzpiZWZvcmV7Y29udGVudDoiXGYwZWIifS5mYS1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYwZWMifS5mYS1jbG91ZC1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwZWQifS5mYS1jbG91ZC11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGVlIn0uZmEtdXNlci1tZDpiZWZvcmV7Y29udGVudDoiXGYwZjAifS5mYS1zdGV0aG9zY29wZTpiZWZvcmV7Y29udGVudDoiXGYwZjEifS5mYS1zdWl0Y2FzZTpiZWZvcmV7Y29udGVudDoiXGYwZjIifS5mYS1iZWxsLW86YmVmb3Jle2NvbnRlbnQ6IlxmMGEyIn0uZmEtY29mZmVlOmJlZm9yZXtjb250ZW50OiJcZjBmNCJ9LmZhLWN1dGxlcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMGY1In0uZmEtZmlsZS10ZXh0LW86YmVmb3Jle2NvbnRlbnQ6IlxmMGY2In0uZmEtYnVpbGRpbmctbzpiZWZvcmV7Y29udGVudDoiXGYwZjcifS5mYS1ob3NwaXRhbC1vOmJlZm9yZXtjb250ZW50OiJcZjBmOCJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1tZWRraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZhIn0uZmEtZmlnaHRlci1qZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZiIn0uZmEtYmVlcjpiZWZvcmV7Y29udGVudDoiXGYwZmMifS5mYS1oLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmQifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDAifS5mYS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAxIn0uZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwMiJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0uZmEtYW5nbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1kZXNrdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9LmZhLWxhcHRvcDpiZWZvcmV7Y29udGVudDoiXGYxMDkifS5mYS10YWJsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBhIn0uZmEtbW9iaWxlLXBob25lOmJlZm9yZSwuZmEtbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjEwYiJ9LmZhLWNpcmNsZS1vOmJlZm9yZXtjb250ZW50OiJcZjEwYyJ9LmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtcXVvdGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBlIn0uZmEtc3Bpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYxMTAifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtbWFpbC1yZXBseTpiZWZvcmUsLmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjExMiJ9LmZhLWdpdGh1Yi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTEzIn0uZmEtZm9sZGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTE0In0uZmEtZm9sZGVyLW9wZW4tbzpiZWZvcmV7Y29udGVudDoiXGYxMTUifS5mYS1zbWlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLWZyb3duLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtbWVoLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtZ2FtZXBhZDpiZWZvcmV7Y29udGVudDoiXGYxMWIifS5mYS1rZXlib2FyZC1vOmJlZm9yZXtjb250ZW50OiJcZjExYyJ9LmZhLWZsYWctbzpiZWZvcmV7Y29udGVudDoiXGYxMWQifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS10ZXJtaW5hbDpiZWZvcmV7Y29udGVudDoiXGYxMjAifS5mYS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjEyMSJ9LmZhLW1haWwtcmVwbHktYWxsOmJlZm9yZSwuZmEtcmVwbHktYWxsOmJlZm9yZXtjb250ZW50OiJcZjEyMiJ9LmZhLXN0YXItaGFsZi1lbXB0eTpiZWZvcmUsLmZhLXN0YXItaGFsZi1mdWxsOmJlZm9yZSwuZmEtc3Rhci1oYWxmLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTIzIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMjUifS5mYS1jb2RlLWZvcms6YmVmb3Jle2NvbnRlbnQ6IlxmMTI2In0uZmEtdW5saW5rOmJlZm9yZSwuZmEtY2hhaW4tYnJva2VuOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTI5In0uZmEtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJhIn0uZmEtc3VwZXJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJiIn0uZmEtc3Vic2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYyJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1wdXp6bGUtcGllY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMTJlIn0uZmEtbWljcm9waG9uZTpiZWZvcmV7Y29udGVudDoiXGYxMzAifS5mYS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjEzMSJ9LmZhLXNoaWVsZDpiZWZvcmV7Y29udGVudDoiXGYxMzIifS5mYS1jYWxlbmRhci1vOmJlZm9yZXtjb250ZW50OiJcZjEzMyJ9LmZhLWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9LmZhLXJvY2tldDpiZWZvcmV7Y29udGVudDoiXGYxMzUifS5mYS1tYXhjZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTM2In0uZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMzcifS5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMzgifS5mYS1jaGV2cm9uLWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMzkifS5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEzYSJ9LmZhLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjEzYiJ9LmZhLWNzczM6YmVmb3Jle2NvbnRlbnQ6IlxmMTNjIn0uZmEtYW5jaG9yOmJlZm9yZXtjb250ZW50OiJcZjEzZCJ9LmZhLXVubG9jay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTNlIn0uZmEtYnVsbHNleWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQwIn0uZmEtZWxsaXBzaXMtaDpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1lbGxpcHNpcy12OmJlZm9yZXtjb250ZW50OiJcZjE0MiJ9LmZhLXJzcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0uZmEtcGxheS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ0In0uZmEtdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjE0NSJ9LmZhLW1pbnVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDYifS5mYS1taW51cy1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDoiXGYxNDcifS5mYS1sZXZlbC11cDpiZWZvcmV7Y29udGVudDoiXGYxNDgifS5mYS1sZXZlbC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE0OSJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1wZW5jaWwtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YyJ9LmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1jb21wYXNzOmJlZm9yZXtjb250ZW50OiJcZjE0ZSJ9LmZhLXRvZ2dsZS1kb3duOmJlZm9yZSwuZmEtY2FyZXQtc3F1YXJlLW8tZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNTAifS5mYS10b2dnbGUtdXA6YmVmb3JlLC5mYS1jYXJldC1zcXVhcmUtby11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS10b2dnbGUtcmlnaHQ6YmVmb3JlLC5mYS1jYXJldC1zcXVhcmUtby1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNTIifS5mYS1ldXJvOmJlZm9yZSwuZmEtZXVyOmJlZm9yZXtjb250ZW50OiJcZjE1MyJ9LmZhLWdicDpiZWZvcmV7Y29udGVudDoiXGYxNTQifS5mYS1kb2xsYXI6YmVmb3JlLC5mYS11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtcnVwZWU6YmVmb3JlLC5mYS1pbnI6YmVmb3Jle2NvbnRlbnQ6IlxmMTU2In0uZmEtY255OmJlZm9yZSwuZmEtcm1iOmJlZm9yZSwuZmEteWVuOmJlZm9yZSwuZmEtanB5OmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9LmZhLXJ1YmxlOmJlZm9yZSwuZmEtcm91YmxlOmJlZm9yZSwuZmEtcnViOmJlZm9yZXtjb250ZW50OiJcZjE1OCJ9LmZhLXdvbjpiZWZvcmUsLmZhLWtydzpiZWZvcmV7Y29udGVudDoiXGYxNTkifS5mYS1iaXRjb2luOmJlZm9yZSwuZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS10ZXh0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLXNvcnQtYWxwaGEtYXNjOmJlZm9yZXtjb250ZW50OiJcZjE1ZCJ9LmZhLXNvcnQtYWxwaGEtZGVzYzpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1zb3J0LWFtb3VudC1hc2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtZGVzYzpiZWZvcmV7Y29udGVudDoiXGYxNjEifS5mYS1zb3J0LW51bWVyaWMtYXNjOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy1kZXNjOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9LmZhLXRodW1icy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjQifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS15b3V0dWJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNjYifS5mYS15b3V0dWJlOmJlZm9yZXtjb250ZW50OiJcZjE2NyJ9LmZhLXhpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTY4In0uZmEteGluZy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY5In0uZmEteW91dHViZS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjE2YSJ9LmZhLWRyb3Bib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMTZiIn0uZmEtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTZjIn0uZmEtaW5zdGFncmFtOmJlZm9yZXtjb250ZW50OiJcZjE2ZCJ9LmZhLWZsaWNrcjpiZWZvcmV7Y29udGVudDoiXGYxNmUifS5mYS1hZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTcwIn0uZmEtYml0YnVja2V0OmJlZm9yZXtjb250ZW50OiJcZjE3MSJ9LmZhLWJpdGJ1Y2tldC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTcyIn0uZmEtdHVtYmxyOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9LmZhLXR1bWJsci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc0In0uZmEtbG9uZy1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE3NSJ9LmZhLWxvbmctYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTc2In0uZmEtbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9LmZhLWxvbmctYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxN2EifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWxpbnV4OmJlZm9yZXtjb250ZW50OiJcZjE3YyJ9LmZhLWRyaWJiYmxlOmJlZm9yZXtjb250ZW50OiJcZjE3ZCJ9LmZhLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjE3ZSJ9LmZhLWZvdXJzcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTgwIn0uZmEtdHJlbGxvOmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9LmZhLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxODIifS5mYS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MyJ9LmZhLWdpdHRpcDpiZWZvcmUsLmZhLWdyYXRpcGF5OmJlZm9yZXtjb250ZW50OiJcZjE4NCJ9LmZhLXN1bi1vOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLW1vb24tbzpiZWZvcmV7Y29udGVudDoiXGYxODYifS5mYS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjE4NyJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS12azpiZWZvcmV7Y29udGVudDoiXGYxODkifS5mYS13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxOGEifS5mYS1yZW5yZW46YmVmb3Jle2NvbnRlbnQ6IlxmMThiIn0uZmEtcGFnZWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjE4YyJ9LmZhLXN0YWNrLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9LmZhLWFycm93LWNpcmNsZS1vLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE4ZSJ9LmZhLWFycm93LWNpcmNsZS1vLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkwIn0uZmEtdG9nZ2xlLWxlZnQ6YmVmb3JlLC5mYS1jYXJldC1zcXVhcmUtby1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE5MSJ9LmZhLWRvdC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXZpbWVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTQifS5mYS10dXJraXNoLWxpcmE6YmVmb3JlLC5mYS10cnk6YmVmb3Jle2NvbnRlbnQ6IlxmMTk1In0uZmEtcGx1cy1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDoiXGYxOTYifS5mYS1zcGFjZS1zaHV0dGxlOmJlZm9yZXtjb250ZW50OiJcZjE5NyJ9LmZhLXNsYWNrOmJlZm9yZXtjb250ZW50OiJcZjE5OCJ9LmZhLWVudmVsb3BlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTkifS5mYS13b3JkcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0uZmEtb3BlbmlkOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9LmZhLWluc3RpdHV0aW9uOmJlZm9yZSwuZmEtYmFuazpiZWZvcmUsLmZhLXVuaXZlcnNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTljIn0uZmEtbW9ydGFyLWJvYXJkOmJlZm9yZSwuZmEtZ3JhZHVhdGlvbi1jYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTlkIn0uZmEteWFob286YmVmb3Jle2NvbnRlbnQ6IlxmMTllIn0uZmEtZ29vZ2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMCJ9LmZhLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxYTEifS5mYS1yZWRkaXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFhMiJ9LmZhLXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxYTMifS5mYS1zdHVtYmxldXBvbjpiZWZvcmV7Y29udGVudDoiXGYxYTQifS5mYS1kZWxpY2lvdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0uZmEtZGlnZzpiZWZvcmV7Y29udGVudDoiXGYxYTYifS5mYS1waWVkLXBpcGVyOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9LmZhLXBpZWQtcGlwZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9LmZhLWRydXBhbDpiZWZvcmV7Y29udGVudDoiXGYxYTkifS5mYS1qb29tbGE6YmVmb3Jle2NvbnRlbnQ6IlxmMWFhIn0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9LmZhLWNoaWxkOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9LmZhLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxYjAifS5mYS1zcG9vbjpiZWZvcmV7Y29udGVudDoiXGYxYjEifS5mYS1jdWJlOmJlZm9yZXtjb250ZW50OiJcZjFiMiJ9LmZhLWN1YmVzOmJlZm9yZXtjb250ZW50OiJcZjFiMyJ9LmZhLWJlaGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWI0In0uZmEtYmVoYW5jZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI1In0uZmEtc3RlYW06YmVmb3Jle2NvbnRlbnQ6IlxmMWI2In0uZmEtc3RlYW0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNyJ9LmZhLXJlY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI4In0uZmEtYXV0b21vYmlsZTpiZWZvcmUsLmZhLWNhcjpiZWZvcmV7Y29udGVudDoiXGYxYjkifS5mYS1jYWI6YmVmb3JlLC5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRyZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMWJiIn0uZmEtc3BvdGlmeTpiZWZvcmV7Y29udGVudDoiXGYxYmMifS5mYS1kZXZpYW50YXJ0OmJlZm9yZXtjb250ZW50OiJcZjFiZCJ9LmZhLXNvdW5kY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJlIn0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZmlsZS1wZGYtbzpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXdvcmQtbzpiZWZvcmV7Y29udGVudDoiXGYxYzIifS5mYS1maWxlLWV4Y2VsLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1wb3dlcnBvaW50LW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS1waG90by1vOmJlZm9yZSwuZmEtZmlsZS1waWN0dXJlLW86YmVmb3JlLC5mYS1maWxlLWltYWdlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM1In0uZmEtZmlsZS16aXAtbzpiZWZvcmUsLmZhLWZpbGUtYXJjaGl2ZS1vOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtc291bmQtbzpiZWZvcmUsLmZhLWZpbGUtYXVkaW8tbzpiZWZvcmV7Y29udGVudDoiXGYxYzcifS5mYS1maWxlLW1vdmllLW86YmVmb3JlLC5mYS1maWxlLXZpZGVvLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM4In0uZmEtZmlsZS1jb2RlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM5In0uZmEtdmluZTpiZWZvcmV7Y29udGVudDoiXGYxY2EifS5mYS1jb2RlcGVuOmJlZm9yZXtjb250ZW50OiJcZjFjYiJ9LmZhLWpzZmlkZGxlOmJlZm9yZXtjb250ZW50OiJcZjFjYyJ9LmZhLWxpZmUtYm91eTpiZWZvcmUsLmZhLWxpZmUtYnVveTpiZWZvcmUsLmZhLWxpZmUtc2F2ZXI6YmVmb3JlLC5mYS1zdXBwb3J0OmJlZm9yZSwuZmEtbGlmZS1yaW5nOmJlZm9yZXtjb250ZW50OiJcZjFjZCJ9LmZhLWNpcmNsZS1vLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLXJhOmJlZm9yZSwuZmEtcmViZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWQwIn0uZmEtZ2U6YmVmb3JlLC5mYS1lbXBpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQxIn0uZmEtZ2l0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZDIifS5mYS1naXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWQzIn0uZmEtaGFja2VyLW5ld3M6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ0In0uZmEtdGVuY2VudC13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxZDUifS5mYS1xcTpiZWZvcmV7Y29udGVudDoiXGYxZDYifS5mYS13ZWNoYXQ6YmVmb3JlLC5mYS13ZWl4aW46YmVmb3Jle2NvbnRlbnQ6IlxmMWQ3In0uZmEtc2VuZDpiZWZvcmUsLmZhLXBhcGVyLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjFkOCJ9LmZhLXNlbmQtbzpiZWZvcmUsLmZhLXBhcGVyLXBsYW5lLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWQ5In0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1nZW5kZXJsZXNzOmJlZm9yZSwuZmEtY2lyY2xlLXRoaW46YmVmb3Jle2NvbnRlbnQ6IlxmMWRiIn0uZmEtaGVhZGVyOmJlZm9yZXtjb250ZW50OiJcZjFkYyJ9LmZhLXBhcmFncmFwaDpiZWZvcmV7Y29udGVudDoiXGYxZGQifS5mYS1zbGlkZXJzOmJlZm9yZXtjb250ZW50OiJcZjFkZSJ9LmZhLXNoYXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxZTAifS5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFlMSJ9LmZhLWJvbWI6YmVmb3Jle2NvbnRlbnQ6IlxmMWUyIn0uZmEtc29jY2VyLWJhbGwtbzpiZWZvcmUsLmZhLWZ1dGJvbC1vOmJlZm9yZXtjb250ZW50OiJcZjFlMyJ9LmZhLXR0eTpiZWZvcmV7Y29udGVudDoiXGYxZTQifS5mYS1iaW5vY3VsYXJzOmJlZm9yZXtjb250ZW50OiJcZjFlNSJ9LmZhLXBsdWc6YmVmb3Jle2NvbnRlbnQ6IlxmMWU2In0uZmEtc2xpZGVzaGFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTcifS5mYS10d2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWU4In0uZmEteWVscDpiZWZvcmV7Y29udGVudDoiXGYxZTkifS5mYS1uZXdzcGFwZXItbzpiZWZvcmV7Y29udGVudDoiXGYxZWEifS5mYS13aWZpOmJlZm9yZXtjb250ZW50OiJcZjFlYiJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9LmZhLWdvb2dsZS13YWxsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWVlIn0uZmEtY2MtdmlzYTpiZWZvcmV7Y29udGVudDoiXGYxZjAifS5mYS1jYy1tYXN0ZXJjYXJkOmJlZm9yZXtjb250ZW50OiJcZjFmMSJ9LmZhLWNjLWRpc2NvdmVyOmJlZm9yZXtjb250ZW50OiJcZjFmMiJ9LmZhLWNjLWFtZXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWYzIn0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLWNjLXN0cmlwZTpiZWZvcmV7Y29udGVudDoiXGYxZjUifS5mYS1iZWxsLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmNiJ9LmZhLWJlbGwtc2xhc2gtbzpiZWZvcmV7Y29udGVudDoiXGYxZjcifS5mYS10cmFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjgifS5mYS1jb3B5cmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY5In0uZmEtYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWZhIn0uZmEtZXllZHJvcHBlcjpiZWZvcmV7Y29udGVudDoiXGYxZmIifS5mYS1wYWludC1icnVzaDpiZWZvcmV7Y29udGVudDoiXGYxZmMifS5mYS1iaXJ0aGRheS1jYWtlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9LmZhLWFyZWEtY2hhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWZlIn0uZmEtcGllLWNoYXJ0OmJlZm9yZXtjb250ZW50OiJcZjIwMCJ9LmZhLWxpbmUtY2hhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjAxIn0uZmEtbGFzdGZtOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9LmZhLWxhc3RmbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0uZmEtdG9nZ2xlLW9mZjpiZWZvcmV7Y29udGVudDoiXGYyMDQifS5mYS10b2dnbGUtb246YmVmb3Jle2NvbnRlbnQ6IlxmMjA1In0uZmEtYmljeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMDYifS5mYS1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0uZmEtaW94aG9zdDpiZWZvcmV7Y29udGVudDoiXGYyMDgifS5mYS1hbmdlbGxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMjA5In0uZmEtY2M6YmVmb3Jle2NvbnRlbnQ6IlxmMjBhIn0uZmEtc2hla2VsOmJlZm9yZSwuZmEtc2hlcWVsOmJlZm9yZSwuZmEtaWxzOmJlZm9yZXtjb250ZW50OiJcZjIwYiJ9LmZhLW1lYW5wYXRoOmJlZm9yZXtjb250ZW50OiJcZjIwYyJ9LmZhLWJ1eXNlbGxhZHM6YmVmb3Jle2NvbnRlbnQ6IlxmMjBkIn0uZmEtY29ubmVjdGRldmVsb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMjBlIn0uZmEtZGFzaGN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0uZmEtZm9ydW1iZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjExIn0uZmEtbGVhbnB1YjpiZWZvcmV7Y29udGVudDoiXGYyMTIifS5mYS1zZWxsc3k6YmVmb3Jle2NvbnRlbnQ6IlxmMjEzIn0uZmEtc2hpcnRzaW5idWxrOmJlZm9yZXtjb250ZW50OiJcZjIxNCJ9LmZhLXNpbXBseWJ1aWx0OmJlZm9yZXtjb250ZW50OiJcZjIxNSJ9LmZhLXNreWF0bGFzOmJlZm9yZXtjb250ZW50OiJcZjIxNiJ9LmZhLWNhcnQtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMTcifS5mYS1jYXJ0LWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMjE4In0uZmEtZGlhbW9uZDpiZWZvcmV7Y29udGVudDoiXGYyMTkifS5mYS1zaGlwOmJlZm9yZXtjb250ZW50OiJcZjIxYSJ9LmZhLXVzZXItc2VjcmV0OmJlZm9yZXtjb250ZW50OiJcZjIxYiJ9LmZhLW1vdG9yY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjFjIn0uZmEtc3RyZWV0LXZpZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjFkIn0uZmEtaGVhcnRiZWF0OmJlZm9yZXtjb250ZW50OiJcZjIxZSJ9LmZhLXZlbnVzOmJlZm9yZXtjb250ZW50OiJcZjIyMSJ9LmZhLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIyIn0uZmEtbWVyY3VyeTpiZWZvcmV7Y29udGVudDoiXGYyMjMifS5mYS10cmFuc2dlbmRlcjpiZWZvcmV7Y29udGVudDoiXGYyMjQifS5mYS10cmFuc2dlbmRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjI1In0uZmEtdmVudXMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNiJ9LmZhLW1hcnMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNyJ9LmZhLXZlbnVzLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjI4In0uZmEtbWFycy1zdHJva2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjI5In0uZmEtbWFycy1zdHJva2UtdjpiZWZvcmV7Y29udGVudDoiXGYyMmEifS5mYS1tYXJzLXN0cm9rZS1oOmJlZm9yZXtjb250ZW50OiJcZjIyYiJ9LmZhLW5ldXRlcjpiZWZvcmV7Y29udGVudDoiXGYyMmMifS5mYS1mYWNlYm9vay1vZmZpY2lhbDpiZWZvcmV7Y29udGVudDoiXGYyMzAifS5mYS1waW50ZXJlc3QtcDpiZWZvcmV7Y29udGVudDoiXGYyMzEifS5mYS13aGF0c2FwcDpiZWZvcmV7Y29udGVudDoiXGYyMzIifS5mYS1zZXJ2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjMzIn0uZmEtdXNlci1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIzNCJ9LmZhLXVzZXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM1In0uZmEtaG90ZWw6YmVmb3JlLC5mYS1iZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjM2In0uZmEtdmlhY29pbjpiZWZvcmV7Y29udGVudDoiXGYyMzcifS5mYS10cmFpbjpiZWZvcmV7Y29udGVudDoiXGYyMzgifS5mYS1zdWJ3YXk6YmVmb3Jle2NvbnRlbnQ6IlxmMjM5In0uZmEtbWVkaXVtOmJlZm9yZXtjb250ZW50OiJcZjIzYSJ9"}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/service-icon-01.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.376Z","timestamp":1785132838376,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/service-icon-01.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Mon, 03 Jan 2022 23:40:38 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3530\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3530,"size_decoded":3795,"mime_type":"image/png","magic":"PNG image data, 60 x 60, 8-bit/color RGBA, non-interlaced","md5":"07c0028efa76ee473042be6c3f795335","sha1":"f1c95b02dde7bb1c281eeacedae443c1e61da229","sha256":"96b1382acba3617a98277ce13dbb8aba56380f7c3df3c77d27bc25f09082817c","sha512":"b2778b189cc262b5ffe661ddb77773dc2ab486f6a506efbf380557aaa5a0eed1b83112e5cb1e176984fdc1d9e84c3023ffff63cfb432d16c7564b18edc91a78b","ssdeep":"","tlshash":"e2716c9586e821469068d6a8d8f19137fa8d1d30fd6ce838f87b91fc0a612f0986e4cd","first_seen":"2025-05-07T22:52:20.924666Z","last_seen":"2026-07-27T06:14:42.700693Z","times_seen":26,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjgxOTREODdCMjAzNzExRUI5RDM2RjYxNDg5NjkzMDhEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjgxOTREODdDMjAzNzExRUI5RDM2RjYxNDg5NjkzMDhEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODE5NEQ4NzkyMDM3MTFFQjlEMzZGNjE0ODk2OTMwOEQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODE5NEQ4N0EyMDM3MTFFQjlEMzZGNjE0ODk2OTMwOEQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4fLhjyAAAKPUlEQVR42sybC5RV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"}},"time_used":29,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"farosonglobaltrade.ltd/assets/images/service-icon-02.png","fqdn":"farosonglobaltrade.ltd","domain":"farosonglobaltrade.ltd","tld":"ltd"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://farosonglobaltrade.ltd/","date":"2026-07-27T06:13:58.378Z","timestamp":1785132838378,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"www.farosonglobaltrade.ltd.farossonglobaltrade.ltd","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 14 Jul 2026 21:24:16 GMT","end":"Mon, 12 Oct 2026 21:24:15 GMT"},"fingerprint":{"sha1":"5C:96:1F:BA:DB:34:E9:A1:5F:53:E9:76:39:C6:20:DF:7D:56:C1:B0","sha256":"3D:84:A0:C3:59:DC:AE:00:77:D7:84:D9:16:D2:F2:E9:3B:24:80:68:FA:C9:0A:73:74:87:FC:B9:B8:5E:E5:D8"}}},"request":{"raw":"GET /assets/images/service-icon-02.png HTTP/1.1\r\nHost: farosonglobaltrade.ltd\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://farosonglobaltrade.ltd/\r\nCookie: PHPSESSID=257f853cb65b6be74dfd8cb7fc141754\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 06:13:58 GMT\r\ncontent-type: image/png\r\nlast-modified: Mon, 03 Jan 2022 23:40:38 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3600\r\ndate: Mon, 27 Jul 2026 06:13:58 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3600,"size_decoded":3865,"mime_type":"image/png","magic":"PNG image data, 60 x 60, 8-bit/color RGBA, non-interlaced","md5":"2cc9199cdf2b1770f53223170585c9a7","sha1":"b2f2ea8b557f0f303d7f46a11ef730f36ada19c3","sha256":"d36d08a59ccdbdb4a3b447c24117360ab179c5bce47c6bddd3074e2a36027569","sha512":"89c6d2ef7fd486e091a45cc7f908f2f64385cd999b64089628037692fc3a90622e12f87d0c90a46c5784d1c3694a162dc4b989b59f5113070434ea68388aeb58","ssdeep":"","tlshash":"7d714cebbf912801b2549ac124f114b9de2b0b501fe4c8a7e1c5de176bf02f844994ee","first_seen":"2025-05-07T22:52:20.907594Z","last_seen":"2026-07-27T06:14:42.701651Z","times_seen":26,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJDM0E2NTZEMjI1MjExRUI5N0ExREE4NDIwODBBQjlGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJDM0E2NTZFMjI1MjExRUI5N0ExREE4NDIwODBBQjlGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkMzQTY1NkIyMjUyMTFFQjk3QTFEQTg0MjA4MEFCOUYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkMzQTY1NkMyMjUyMTFFQjk3QTFEQTg0MjA4MEFCOUYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4cRx9PAAAKg0lEQVR42sybC5QW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"}},"time_used":30,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"farosonglobaltrade.ltd","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}}]}
